.poisson-app{min-height:100vh;background:linear-gradient(135deg,#0a0a1a,#1a1a2e);color:#eee;font-family:system-ui,-apple-system,sans-serif}.poisson-header{padding:20px 30px;background:#0000004d;border-bottom:1px solid #333;display:flex;align-items:center;gap:20px}.poisson-header h1{margin:0;font-size:1.5rem;color:#00d4ff}.poisson-header .subtitle{margin:0;color:#888;font-size:.9rem}.back-btn{background:transparent;border:1px solid #555;color:#aaa;padding:8px 16px;border-radius:4px;cursor:pointer;transition:all .3s ease}.back-btn:hover{background:#333;color:#fff;border-color:#00d4ff}.poisson-main{display:grid;grid-template-columns:350px 1fr;gap:20px;padding:20px;min-height:calc(100vh - 100px)}@media (max-width: 1024px){.poisson-main{grid-template-columns:1fr}}.control-panel{display:flex;flex-direction:column;gap:20px;max-height:calc(100vh - 140px);overflow-y:auto}.poisson-form{background:#1e1e32cc;border-radius:8px;padding:15px;border:1px solid #333}.poisson-form h3{margin:0 0 15px;color:#00d4ff;font-size:1.1rem}.form-section{margin-bottom:10px;border:1px solid #333;border-radius:6px;overflow:hidden}.section-header{width:100%;padding:12px 15px;background:#0000004d;border:none;color:#eee;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:.95rem;transition:background .3s ease}.section-header:hover{background:#00d4ff1a}.section-header .toggle{color:#00d4ff;font-weight:700}.section-content{padding:15px;background:#0003}.form-group{margin-bottom:12px}.form-group label{display:block;margin-bottom:5px;color:#aaa;font-size:.85rem}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:8px 12px;background:#1a1a2e;border:1px solid #444;border-radius:4px;color:#eee;font-size:.9rem;box-sizing:border-box}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group select:focus{border-color:#00d4ff;outline:none}.form-group input[type=range]{width:100%;height:6px;border-radius:3px;background:#333;cursor:pointer;-webkit-appearance:none}.form-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#00d4ff;cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-group.checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer}.form-group.checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.boundary-selector{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.boundary-btn{padding:8px;background:#2a2a4a;border:1px solid #444;border-radius:4px;color:#aaa;cursor:pointer;font-size:.85rem;transition:all .3s ease}.boundary-btn:hover{background:#3a3a5a}.boundary-btn.selected{background:#00d4ff;color:#000;border-color:#00d4ff}.form-actions{display:flex;gap:10px;margin-top:15px}.btn-preview,.btn-submit{flex:1;padding:12px;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .3s ease}.btn-preview{background:#2a2a4a;color:#00d4ff;border:1px solid #00d4ff}.btn-preview:hover:not(:disabled){background:#00d4ff33}.btn-submit{background:linear-gradient(135deg,#00d4ff,#0f8);color:#000;font-weight:700}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #00d4ff66}.btn-preview:disabled,.btn-submit:disabled{opacity:.5;cursor:not-allowed}.simulation-history{background:#1e1e32cc;border-radius:8px;padding:15px;border:1px solid #333}.simulation-history h3{margin:0 0 15px;color:#00d4ff;font-size:1rem}.no-simulations{color:#666;text-align:center;padding:20px}.simulation-list{list-style:none;padding:0;margin:0;max-height:300px;overflow-y:auto}.simulation-item{padding:12px;background:#0003;border-radius:6px;margin-bottom:8px;cursor:pointer;position:relative;transition:all .3s ease;border:1px solid transparent}.simulation-item:hover{background:#00d4ff1a;border-color:#333}.simulation-item.selected{border-color:#00d4ff;background:#00d4ff26}.sim-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.sim-name{font-weight:500;color:#eee;font-size:.9rem}.sim-details{display:flex;gap:15px;font-size:.8rem;color:#888}.delete-btn{position:absolute;top:8px;right:8px;width:24px;height:24px;background:transparent;border:none;color:#666;font-size:1.2rem;cursor:pointer;border-radius:4px;opacity:0;transition:all .3s ease}.simulation-item:hover .delete-btn{opacity:1}.delete-btn:hover{background:#ff6b6b;color:#fff}.status{padding:3px 8px;border-radius:4px;font-size:.75rem;text-transform:uppercase}.visualization-panel{display:flex;flex-direction:column;background:#1e1e32cc;border-radius:8px;border:1px solid #333;overflow:hidden}.view-tabs{display:flex;background:#0000004d;border-bottom:1px solid #333}.tab{flex:1;padding:12px 20px;background:transparent;border:none;color:#888;cursor:pointer;font-size:.9rem;transition:all .3s ease;border-bottom:2px solid transparent}.tab:hover:not(:disabled){color:#eee;background:#ffffff0d}.tab.active{color:#00d4ff;border-bottom-color:#00d4ff}.tab:disabled{opacity:.5;cursor:not-allowed}.viewer-container{flex:1;position:relative;min-height:500px}.mesh-viewer-3d,.solution-viewer,.animation-player{height:100%;display:flex;flex-direction:column}.mesh-viewer-3d canvas,.solution-viewer .canvas-container canvas,.animation-player .canvas-container canvas{flex:1}.canvas-container{flex:1;position:relative}.viewer-controls{display:flex;align-items:center;gap:20px;padding:10px 15px;background:#0000004d;border-bottom:1px solid #333}.viewer-controls label{display:flex;align-items:center;gap:6px;color:#aaa;font-size:.85rem;cursor:pointer}.viewer-controls input[type=checkbox]{width:16px;height:16px}.viewer-controls .info{margin-left:auto;color:#666;font-size:.8rem}.control-group{display:flex;flex-direction:column;gap:4px}.control-group input[type=range]{width:100px}.view-mode-toggle{display:flex;gap:2px;background:#1a1a2e;border-radius:4px;overflow:hidden}.view-mode-toggle button{padding:6px 12px;background:transparent;border:none;color:#888;cursor:pointer;transition:all .3s ease}.view-mode-toggle button.active{background:#00d4ff;color:#000}.colorbar{position:absolute;right:20px;top:50%;transform:translateY(-50%);width:25px;height:200px;display:flex;flex-direction:column}.colorbar-gradient{flex:1;display:flex;flex-direction:column-reverse;border-radius:4px;overflow:hidden;border:1px solid #444}.colorbar-labels{display:flex;flex-direction:column-reverse;justify-content:space-between;padding-left:30px;margin-top:-200px;height:200px;font-size:.7rem;color:#aaa}.viewer-help{padding:8px 15px;background:#0000004d;border-top:1px solid #333;color:#666;font-size:.8rem;text-align:center}.stats-bar{display:flex;justify-content:space-around;padding:15px;background:#0000004d;border-top:1px solid #333}.stat{text-align:center}.stat .label{display:block;color:#666;font-size:.75rem;text-transform:uppercase;margin-bottom:4px}.stat .value{color:#00d4ff;font-size:1rem;font-weight:500}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0a0a1ae6;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100}.spinner{width:50px;height:50px;border:3px solid #333;border-top-color:#00d4ff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{margin-top:15px;color:#888}.placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#666;text-align:center;padding:40px}.placeholder p{margin:5px 0}.animation-controls{padding:15px;background:#0000004d;border-top:1px solid #333}.playback-controls{display:flex;gap:5px}.playback-controls button{width:40px;height:40px;background:#2a2a4a;border:1px solid #444;border-radius:4px;color:#eee;cursor:pointer;font-size:1.1rem;transition:all .3s ease}.playback-controls button:hover{background:#3a3a5a;border-color:#00d4ff}.frame-info{color:#888;font-size:.85rem}.loop-toggle{display:flex;align-items:center;gap:6px;color:#aaa;font-size:.85rem}.control-row{display:flex;gap:20px;margin-top:10px}.timeline-slider{width:100%!important}.dangvan-app{min-height:100vh;background:linear-gradient(135deg,#0a0a1a,#1a1a2e);color:#eee;font-family:system-ui,-apple-system,sans-serif}.dangvan-header{padding:20px 30px;background:#0000004d;border-bottom:1px solid #333;display:flex;align-items:center;gap:20px}.dangvan-header h1{margin:0;font-size:1.5rem;color:#ff9f43}.dangvan-header .subtitle{margin:0;color:#888;font-size:.9rem}.dangvan-main{display:grid;grid-template-columns:350px 1fr;gap:20px;padding:20px;min-height:calc(100vh - 100px)}@media (max-width: 1024px){.dangvan-main{grid-template-columns:1fr}}.dangvan-form{background:#1e1e32cc;border-radius:8px;padding:15px;border:1px solid #333}.dangvan-form h3{margin:0 0 15px;color:#ff9f43;font-size:1.1rem}.quick-examples{display:flex;gap:8px;align-items:center;margin-bottom:15px;flex-wrap:wrap}.quick-examples span{color:#888;font-size:.85rem}.quick-examples button{padding:5px 12px;background:#2a2a4a;border:1px solid #444;border-radius:4px;color:#aaa;cursor:pointer;font-size:.8rem;transition:all .3s ease}.quick-examples button:hover{background:#3a3a5a;border-color:#ff9f43;color:#ff9f43}.formula-display{background:#0000004d;padding:10px;border-radius:4px;text-align:center;color:#ff9f43;font-family:Courier New,monospace;margin-top:10px}.dangvan-form textarea{width:100%;padding:10px;background:#1a1a2e;border:1px solid #444;border-radius:4px;color:#eee;font-family:Courier New,monospace;font-size:.85rem;resize:vertical;box-sizing:border-box}.dangvan-form textarea:focus{border-color:#ff9f43;outline:none}.calculation-history{background:#1e1e32cc;border-radius:8px;padding:15px;border:1px solid #333;margin-top:20px}.calculation-history h3{margin:0 0 15px;color:#ff9f43;font-size:1rem}.history-list{list-style:none;padding:0;margin:0;max-height:250px;overflow-y:auto}.history-item{display:flex;align-items:center;gap:10px;padding:10px;background:#0003;border-radius:6px;margin-bottom:8px;cursor:pointer;border:1px solid transparent;transition:all .3s ease}.history-item:hover{background:#ff9f431a;border-color:#333}.history-item.selected{border-color:#ff9f43;background:#ff9f4326}.history-info{display:flex;flex-direction:column;gap:2px}.history-params{font-size:.85rem;color:#eee}.history-time{font-size:.75rem;color:#666}.status-badge{padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:700}.status-badge.safe{background:#0f83;color:#0f8}.status-badge.unsafe{background:#ff6b6b33;color:#ff6b6b}.dangvan-chart{display:flex;flex-direction:column;height:100%}.dangvan-chart canvas{width:100%;height:100%;min-height:400px;background:#1a1a2e;border-radius:8px}.chart-help{padding:8px;text-align:center;color:#666;font-size:.85rem}.results-panel{border-top:1px solid #333}.result-summary{padding:15px;text-align:center}.result-summary.safe{background:#00ff881a}.result-summary.unsafe{background:#ff6b6b1a}.result-status{display:flex;align-items:center;justify-content:center;gap:10px}.status-icon{font-size:1.5rem;font-weight:700}.result-summary.safe .status-icon{color:#0f8}.result-summary.unsafe .status-icon{color:#ff6b6b}.status-text{font-size:1.1rem;font-weight:500}.result-summary.safe .status-text{color:#0f8}.result-summary.unsafe .status-text{color:#ff6b6b}.stat .value.positive{color:#0f8}.stat .value.negative{color:#ff6b6b}.error-message{padding:30px;text-align:center;color:#ff6b6b}.error-message h3{margin:0 0 10px}.placeholder-icon{font-size:4rem;color:#ff9f43;margin-bottom:20px;font-family:serif}.dangvan-form .section-header:hover{background:#ff9f431a}.dangvan-form .section-header .toggle{color:#ff9f43}.dangvan-form .btn-submit{background:linear-gradient(135deg,#ff9f43,#ff6b6b)}.dangvan-form .btn-submit:hover:not(:disabled){box-shadow:0 4px 15px #ff9f4366}.dangvan-form input[type=range]::-webkit-slider-thumb{background:#ff9f43}.dangvan-form input[type=text]:focus,.dangvan-form input[type=number]:focus,.dangvan-form select:focus{border-color:#ff9f43}.thermique-app{min-height:100vh;background:linear-gradient(135deg,#0a0a1a,#1a1a2e);color:#eee;font-family:system-ui,-apple-system,sans-serif}.thermique-header{padding:20px 30px;background:#0000004d;border-bottom:1px solid #333;display:flex;align-items:center;gap:20px}.thermique-header h1{margin:0;font-size:1.5rem;color:#ff6b6b}.thermique-header .subtitle{margin:0;color:#888;font-size:.9rem}.thermique-main{display:grid;grid-template-columns:350px 1fr;gap:20px;padding:20px;min-height:calc(100vh - 100px)}@media (max-width: 1024px){.thermique-main{grid-template-columns:1fr}}.thermique-form{background:#1e1e32cc;border-radius:8px;padding:15px;border:1px solid #333}.thermique-form h3{margin:0 0 15px;color:#ff6b6b;font-size:1.1rem}.thermique-form .section-header:hover{background:#ff6b6b1a}.thermique-form .section-header .toggle{color:#ff6b6b}.thermique-form .btn-preview{color:#ff6b6b;border-color:#ff6b6b}.thermique-form .btn-preview:hover:not(:disabled){background:#ff6b6b33}.thermique-form .btn-submit{background:linear-gradient(135deg,#ff6b6b,#ff9f43)}.thermique-form .btn-submit:hover:not(:disabled){box-shadow:0 4px 15px #ff6b6b66}.thermique-form input[type=range]::-webkit-slider-thumb{background:#ff6b6b}.thermique-form input[type=text]:focus,.thermique-form input[type=number]:focus,.thermique-form select:focus{border-color:#ff6b6b}.thermique-form .boundary-btn.selected{background:#ff6b6b;border-color:#ff6b6b}.help-text{display:block;font-size:.75rem;color:#666;margin-top:4px}.thermique-app .placeholder-icon{font-size:3rem;color:#ff6b6b;margin-bottom:20px;font-family:serif;font-style:italic}.thermique-app .simulation-history h3{color:#ff6b6b}.thermique-app .simulation-item.selected{border-color:#ff6b6b;background:#ff6b6b26}.thermique-app .simulation-item:hover{background:#ff6b6b1a}.thermique-app .stat .value{color:#ff6b6b}.thermique-app .tab.active{color:#ff6b6b;border-bottom-color:#ff6b6b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:linear-gradient(135deg,#0a0a1a,#1a1a2e);min-height:100vh;color:#eee}.home-page{min-height:100vh;display:flex;flex-direction:column}.home-header{text-align:center;padding:60px 20px 40px}.home-header h1{font-size:3rem;background:linear-gradient(135deg,#00d4ff,#0f8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:10px}.home-header p{color:#888;font-size:1.2rem}.app-selector{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:25px;padding:20px 40px;max-width:1200px;margin:0 auto;width:100%}.app-card{background:#1e1e32cc;border-radius:12px;padding:30px;border:1px solid #333;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.app-card:not(.disabled):hover{transform:translateY(-5px);border-color:#00d4ff;box-shadow:0 10px 40px #00d4ff33}.app-card.disabled{opacity:.6;cursor:not-allowed}.app-icon{font-size:2.5rem;color:#00d4ff;margin-bottom:15px;font-family:Times New Roman,serif}.app-card h2{font-size:1.4rem;margin-bottom:10px;color:#eee}.app-card p{color:#888;font-size:.95rem;margin-bottom:15px;line-height:1.5}.app-card ul{list-style:none;margin-bottom:15px}.app-card ul li{color:#aaa;font-size:.85rem;padding:4px 0 4px 20px;position:relative}.app-card ul li:before{content:"✓";position:absolute;left:0;color:#0f8}.app-tag{display:inline-block;padding:4px 12px;background:#00d4ff33;color:#00d4ff;border-radius:20px;font-size:.75rem;text-transform:uppercase}.coming-soon{position:absolute;top:15px;right:15px;padding:4px 10px;background:#ffc10733;color:#ffc107;border-radius:4px;font-size:.7rem;text-transform:uppercase}.home-footer{text-align:center;padding:30px;color:#555;font-size:.85rem}.app{max-width:1200px;margin:0 auto;padding:20px}header{text-align:center;margin-bottom:30px}main{display:grid;grid-template-columns:1fr 1fr;gap:20px}.simulation-form,.simulation-list,.result-section{background:#1e1e32cc;padding:20px;border-radius:8px;border:1px solid #333}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:700;color:#aaa}.form-group input[type=text]{width:100%;padding:8px;border:1px solid #444;border-radius:4px;box-sizing:border-box;background:#1a1a2e;color:#eee}.form-group input[type=range]{width:100%}button{background:#00d4ff;color:#000;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:1rem;transition:all .3s ease}button:hover:not(:disabled){background:#0f8}button:disabled{background:#555;cursor:not-allowed}table{width:100%;border-collapse:collapse}th,td{padding:10px;text-align:left;border-bottom:1px solid #333}tr:hover{cursor:pointer;background:#00d4ff1a}.status{padding:4px 8px;border-radius:4px;font-size:.9em}.status-completed{background:#0f83;color:#0f8}.status-running{background:#ffc10733;color:#ffc107}.status-failed{background:#ff6b6b33;color:#ff6b6b}.status-pending{background:#96969633;color:#999}.result-image img{max-width:100%;border-radius:4px}.error{background:#ff6b6b33;color:#ff6b6b;padding:10px;border-radius:4px;margin-bottom:15px}.result-section{grid-column:1 / -1}@media (max-width: 768px){main{grid-template-columns:1fr}.app-selector{padding:20px}}
