:root{--bg-color:#1a1a1a;--panel-color:#2a2a2a;--primary-color:#4caf50;--primary-hover:#45a049;--text-color:#fff;--text-muted:#aaa;--border-color:#444;--input-bg:#333}body{background-color:var(--bg-color);color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe\ UI,Roboto,Helvetica,Arial,sans-serif;height:100vh;margin:0}.sidebar,body{display:flex;overflow:hidden}.sidebar{background-color:var(--panel-color);border-right:1px solid var(--border-color);flex-direction:column;width:300px}.sidebar-header{background:#333;border-bottom:1px solid var(--border-color);flex-shrink:0;padding:15px}.sidebar-scroll{flex:1;overflow-y:auto;padding:15px}.main-content{display:flex;flex:1;flex-direction:column;min-height:0;overflow:auto;padding:15px}h2,h3{color:var(--text-color);font-size:1em;margin-top:0}h2{font-size:1.2em;margin-bottom:15px}.control-group{margin-bottom:12px}.control-group label{color:var(--text-muted);display:block;font-size:.8em;font-weight:500;margin-bottom:4px}.input-row{align-items:center;display:flex;gap:10px}input[type="number"],input[type="text"],select{background:var(--input-bg);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);font-size:.9em;padding:8px;position:relative;width:100%;z-index:10}select{cursor:pointer}select option{background:var(--input-bg);color:var(--text-color)}input[type="number"]:focus,input[type="text"]:focus,select:focus{border-color:var(--primary-color);outline:none}input.unit-input{font-family:Consolas,Monaco,monospace}input.unit-parsed{background-color:#3a4a3a}input.unit-input.invalid{border-color:#f44336;box-shadow:0 0 0 2px rgba(244,67,54,.3)}button{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 15px;transition:background-color .2s;width:100%}button:hover{background-color:var(--primary-hover)}button:disabled{background-color:#666;cursor:wait}button.stop-mode{background-color:#f44336}button.stop-mode:hover{background-color:#da190b}.canvas-container{align-items:center;background:var(--panel-color);border:1px solid var(--border-color);border-radius:8px;display:flex;flex:1;justify-content:center;overflow:hidden;position:relative}#sim_canvas{height:100%;position:relative;width:100%;z-index:1}.output-panel{background:#1e1e1e;border:1px solid var(--border-color);border-radius:6px;color:var(--primary-color);flex-shrink:0;font-family:Consolas,Monaco,monospace;font-size:.8em;height:120px;margin-top:15px;overflow-y:auto;padding:12px;white-space:pre-wrap}.progress-container{background:#444;border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.progress-bar{background:var(--primary-color);height:100%;transition:width .1s;width:0}.tab-bar{background:#333;border-bottom:1px solid var(--border-color);border-radius:6px 6px 0 0;display:flex;margin-bottom:0}.tab-button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s;width:auto}.tab-button:hover{background:#3a3a3a;color:var(--text-color)}.tab-button.active{background:var(--panel-color);border-bottom:2px solid var(--primary-color);color:var(--primary-color)}.tab-content{display:none;flex:1;min-height:0;overflow-y:auto}.tab-content.active{display:flex;flex-direction:column}.results-controls{align-items:center;background:#333;border-bottom:1px solid var(--border-color);display:flex;gap:15px;padding:10px 15px}.results-controls.bottom{border-bottom:none;border-top:1px solid var(--border-color);flex-wrap:wrap}.results-controls.bottom button{padding:8px 16px;width:auto}.results-controls select{background:var(--input-bg);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);font-size:.9em;padding:6px 12px}.plot-container{flex:1;min-height:400px}.sparam-controls{align-items:center;background:#333;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:20px;padding:10px 15px}.sparam-controls label{align-items:center;color:var(--text-muted);display:flex;font-size:.9em;gap:8px}.sparam-controls input[type="number"],.sparam-controls input[type="text"]{padding:6px 8px;width:80px}.sparam-controls button{padding:8px 16px;width:auto}.sparam-controls button:disabled{background-color:#555;cursor:not-allowed}.checkbox-label{align-items:center;color:var(--text-muted);cursor:pointer;display:flex;font-size:.9em;gap:5px}.checkbox-label input[type="checkbox"]{accent-color:var(--primary-color);margin:0;width:auto}.results-controls .checkbox-label{margin-left:0}.help-icon{border:1px solid var(--text-muted);border-radius:50%;color:var(--text-muted);cursor:pointer;display:inline-block;font-size:10px;font-weight:700;height:14px;line-height:12px;margin-left:5px;text-align:center;transition:all .2s;vertical-align:middle;width:14px}.help-icon:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.help-modal{background-color:rgba(0,0,0,.7);display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.help-modal-content{background-color:var(--panel-color);border:1px solid var(--border-color);border-radius:8px;margin:10% auto;max-width:500px;padding:20px}.help-modal-close{color:var(--text-muted);cursor:pointer;float:right;font-size:28px;font-weight:700;line-height:20px}.help-modal h3,.help-modal-close:hover{color:var(--text-color)}.help-modal h3{margin-top:0}.help-modal p{color:var(--text-muted);line-height:1.6}.help-modal a{color:var(--primary-color);text-decoration:none}.help-modal a:hover{text-decoration:underline}.about-content{line-height:1.6;max-width:800px;overflow-y:auto;padding:30px}.about-content h2{color:var(--text-color);margin-bottom:15px}.about-content h3{color:var(--text-muted);font-size:1.1em;margin-bottom:10px;margin-top:25px}.about-content p,.about-content ul{color:var(--text-muted);margin-bottom:12px}.about-content a{color:var(--primary-color);text-decoration:none}.about-content a:hover{text-decoration:underline}.section-header{align-items:center;border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;justify-content:space-between;margin:5px 0;padding:10px 0;user-select:none}.section-header h3{flex:1;font-size:.9em;letter-spacing:.5px;margin:0;text-transform:uppercase}.section-header:after{color:var(--text-muted);content:"▼";font-size:.6em;transition:transform .2s}.section-header.collapsed:after{transform:rotate(-90deg)}.section-content{max-height:1000px;overflow:hidden;padding-top:10px;transition:max-height .3s ease-out}.section-content.collapsed{max-height:0;padding-top:0}.nested-options{border-left:2px solid var(--border-color);margin-left:10px;padding-left:10px}.mobile-menu-toggle{background-color:var(--primary-color);border:none;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:none;font-size:14px;font-weight:600;left:10px;padding:10px 15px;position:fixed;top:10px;transition:opacity .3s ease , transform .3s ease;z-index:1001}.mobile-menu-toggle:hover{background-color:var(--primary-hover)}.mobile-menu-toggle.hidden{opacity:0;pointer-events:none;transform:translateX(-50px)}@media (max-width:768px){body{flex-direction:column;height:100vh;overflow:hidden}.mobile-menu-toggle{display:block}.sidebar{box-shadow:2px 0 10px rgba(0,0,0,.3);height:100vh;left:0;max-width:85vw;position:fixed;top:0;transform:translateX(-100%);transition:transform .3s ease;width:280px;z-index:1000}.sidebar.mobile-open{transform:translateX(0)}.mobile-backdrop{background:rgba(0,0,0,.5);display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:999}.mobile-backdrop.active{display:block}.main-content{box-sizing:border-box;display:flex;flex-direction:column;height:calc(100vh - 50px);margin-top:50px;min-height:0;overflow:hidden;padding:10px;width:100%}.tab-bar{flex-shrink:0;flex-wrap:nowrap;overflow-x:auto;position:sticky;top:0;z-index:10;-webkit-overflow-scrolling:touch}.tab-button{flex-shrink:0;font-size:.85em;padding:8px 12px;white-space:nowrap}.tab-content{display:none;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.tab-content.active{display:flex!important;flex-direction:column}.canvas-container{flex:1;max-height:calc(100vh - 200px);min-height:300px}#tab-geometry{overflow:hidden}#tab-geometry .canvas-container{margin-bottom:10px}#tab-results.active,#tab-sparams.active{display:flex;flex-direction:column;overflow-y:auto}#results-plot,#sparam-plot{flex:0 1 auto;max-height:400px;min-height:300px;overflow:hidden}.plot-container{flex:1;min-height:300px}.output-panel{flex-shrink:0;font-size:.7em;height:100px;margin-top:10px}.results-controls{align-items:stretch;flex-direction:column;flex-shrink:0;gap:10px}.results-controls select{width:100%}.results-controls.bottom{flex-wrap:nowrap}.results-controls.bottom button{width:auto}.sparam-controls{align-items:stretch;flex-direction:column;flex-shrink:0;gap:10px}.sparam-controls button,.sparam-controls input,.sparam-controls label{width:100%}.about-content{flex:1;overflow-y:auto;padding:15px}#scaleDialog{right:10px;top:60px;width:150px}.help-modal-content{margin:5% auto;max-width:90%;width:90%}}@media (max-width:400px){.sidebar{width:90vw}.mobile-menu-toggle{font-size:12px;padding:8px 12px}.main-content{padding:8px}.tab-button{font-size:.8em;padding:6px 10px}}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}.js-plotly-plot .plotly .modebar{position:absolute;right:0;top:0}.js-plotly-plot .plotly .modebar-group{align-items:center;display:flex;float:left}.js-plotly-plot .plotly .modebar-btn{cursor:pointer;font-size:20px;padding:3px 5px;position:relative}.js-plotly-plot .plotly .modebar-btn svg{pointer-events:none;position:relative}