.page-shell{--panel-max-height: calc(100vh - clamp(1rem, 2vw, 2rem) - 5rem) ;display:flex;flex-direction:column;gap:1rem;margin:0 auto;max-width:100%;min-height:100vh;padding:0 clamp(1rem,2vw,2rem) 0}.workspace{align-items:start;display:flex;flex:1;gap:1.1rem;min-height:0}.left-column{display:flex;flex-direction:column;flex-shrink:0;gap:1.1rem;min-width:0;overflow:hidden;width:300px;transition:width .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1),margin .35s cubic-bezier(.4,0,.2,1)}.right-column{display:flex;flex-direction:column;flex-shrink:0;gap:1.1rem;min-width:0;overflow:hidden;width:360px;transition:width .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1),margin .35s cubic-bezier(.4,0,.2,1)}.canvas-column{flex:1;min-width:0}.workspace>.canvas-column>.canvas-panel{width:100%}.panel-col-collapsed{margin-left:-1.1rem;opacity:0;pointer-events:none;width:0}.right-column.panel-col-collapsed{margin-left:0;margin-right:-1.1rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:1.05rem;box-shadow:0 18px 34px #07142c17;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.canvas-panel{display:flex;flex-direction:column;gap:1.1rem;padding:1.1rem}.canvas-header h1{font-size:clamp(1.35rem,2.5vw,1.8rem);margin:0}.canvas-header-row{align-items:center;display:flex;gap:.65rem;justify-content:space-between}.canvas-header p{color:var(--muted);margin:.3rem 0 0}.canvas-counters{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.step-counter,.sps-counter{background:var(--step-counter-bg);border:1px solid var(--step-counter-border);border-radius:999px;color:var(--step-counter-text);font-size:.82rem;font-weight:700;padding:.2rem .6rem}.sps-counter{background:#10b9811f;border-color:#10b9814d;color:#10b981}.dark .sps-counter{background:#10b98126;color:#34d399}.canvas-frame{align-items:flex-start;background:radial-gradient(circle at 0% 0%,rgba(112,151,255,.15),transparent 56%),linear-gradient(180deg,#ffffffd9,#f5f9ffe6);border:1px solid rgba(130,152,185,.26);border-radius:.85rem;display:flex;justify-content:flex-start;min-height:480px;overflow:auto;padding:clamp(.75rem,1.8vw,1.25rem);scrollbar-width:thin}.dark .canvas-frame{background:radial-gradient(circle at 0% 0%,rgba(60,80,180,.1),transparent 56%),linear-gradient(180deg,#0f1423e6,#0a0f1cf2);border-color:#50648c33}.dnd-dropzone{display:flex;align-items:center;justify-content:center;min-height:480px;background:#6078aa0d;border:3px dashed rgba(96,120,170,.4);border-radius:.85rem;color:var(--text-secondary);font-weight:700;font-size:1.25rem}.panel.dragging{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-subtle)}.canvas-stage{margin:auto;min-width:max-content;position:relative}.canvas-frame canvas{background:var(--canvas-bg);border-radius:.5rem;box-shadow:0 18px 32px #040a1866;cursor:crosshair;display:block;image-rendering:pixelated;image-rendering:crisp-edges}.canvas-meta{color:var(--muted);margin:0}.panel-scrollable{max-height:var(--panel-max-height);overflow:auto;scrollbar-width:thin}.inspector{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:.8rem;display:grid;gap:.8rem;padding:.85rem}.inspector-header h3{font-size:1rem;margin:0}.inspector-header-row{align-items:center;display:flex;gap:.7rem;justify-content:space-between}.inspector-header p{color:var(--muted);font-size:.9rem;margin:.2rem 0 0}.inspector-view-toggle{background:var(--toggle-bg);border-radius:.62rem;display:inline-grid;gap:.3rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:.2rem}.inspector-view-option{background:transparent;border:0;border-radius:.46rem;color:var(--muted);cursor:pointer;font-size:.76rem;font-weight:700;padding:.36rem .5rem;white-space:nowrap}.inspector-view-option:hover{background:var(--accent-subtle)}.inspector-view-option-active{background:var(--toggle-active-bg);box-shadow:var(--toggle-active-shadow);color:var(--text)}.inspector-empty{color:var(--muted);margin:0}.inspector-stop-btn{margin-top:.4rem;padding:.25rem .6rem;font-size:.78rem;cursor:pointer;background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);border-radius:.4rem;color:var(--btn-secondary-text)}.inspector-block{display:grid;gap:.75rem}.inspector-table-wrap{border:1px solid var(--table-border);border-radius:.65rem;overflow:auto;max-width:100%}.inspector-table,.inspector-gene-table,.inspector-legend-table{border-collapse:collapse}.inspector-table{table-layout:fixed;width:100%}.inspector-table th[scope=row]{max-width:0;overflow:hidden;text-overflow:ellipsis;width:55%}.inspector-gene-table,.inspector-legend-table{min-width:100%;width:max-content}.inspector-table th,.inspector-table td,.inspector-gene-table th,.inspector-gene-table td,.inspector-legend-table th,.inspector-legend-table td{border-bottom:1px solid var(--table-border);font-size:.83rem;padding:.42rem .55rem;text-align:left;white-space:nowrap}.inspector-table th,.inspector-gene-table th,.inspector-legend-table th{background:var(--table-header-bg);color:var(--text-secondary);font-weight:700}.inspector-gene-table td{color:var(--text);font-weight:600}.inspector-gene-table th,.inspector-gene-table td,.inspector-legend-table th,.inspector-legend-table td{min-width:max-content}.inspector-gene-table thead th{position:sticky;top:0}.inspector-gene-table thead th:first-child{left:0;z-index:5}.inspector-gene-table tbody th{left:0;position:sticky;z-index:3}.inspector-gene-row-active td,.inspector-gene-row-active th{background:var(--table-active-row)!important;border-left:3px solid var(--accent);font-weight:700}.inspector-gene-row-active th{border-left:3px solid var(--accent)}.status{border-radius:999px;display:inline-block;font-size:.77rem;font-weight:700;letter-spacing:.02em;padding:.14rem .48rem;text-transform:uppercase}.status-idle{background:#6c758529;color:#4b5563}.status-ready{background:#10b9812e;color:#047857}.status-failed{background:#ef444429;color:#b91c1c}.dark .status-idle{color:#8a9bb8}.dark .status-ready{color:#34d399}.dark .status-failed{color:#f87171}.run-panel,.controls-panel{display:flex;flex-direction:column;gap:.95rem;padding:1.1rem}.run-panel .scale-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.controls-header h2{font-size:clamp(1.15rem,2vw,1.45rem);margin:0}.controls-header-title-row{display:flex;justify-content:space-between;align-items:center}.reset-defaults-btn{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);border-radius:.5rem;color:var(--btn-secondary-text);cursor:pointer;font-size:.78rem;font-weight:600;padding:.3rem .6rem;transition:background .15s ease}.reset-defaults-btn:hover{background:var(--accent-subtle)}.kebab-menu-container{position:relative}.kebab-menu-btn{background:transparent;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted);padding:0 .5rem;margin-right:-.5rem;opacity:.6;border-radius:4px}.kebab-menu-btn:hover{opacity:1;background:var(--accent-subtle)}.kebab-dropdown{position:absolute;top:100%;right:0;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px #07142c26;min-width:max-content;z-index:100;display:flex;flex-direction:column;padding:.25rem;margin-top:.25rem}.kebab-dropdown button{background:transparent;border:none;text-align:left;padding:.5rem 1rem;font-size:.85rem;color:var(--text);cursor:pointer;border-radius:.25rem;white-space:nowrap}.kebab-dropdown button:hover:not(:disabled){background:var(--table-header-bg)}.kebab-dropdown button:disabled{opacity:.4;cursor:not-allowed}.controls-header p{color:var(--muted);margin:.22rem 0 0}.control-form{display:grid;gap:.85rem}.field{display:grid;gap:.4rem;min-width:0}.field span{color:var(--text-secondary);font-size:.92rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-hint{color:var(--muted);font-size:.76rem!important;font-weight:400!important;white-space:normal!important;line-height:1.35}.field input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:.62rem;color:var(--text);font-size:.96rem;outline:none;padding:.64rem .7rem}.field textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:.62rem;color:var(--text);font-family:inherit;font-size:.96rem;outline:none;padding:.64rem .7rem}.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.field input:disabled{background:var(--input-disabled-bg);color:var(--input-disabled-text);cursor:not-allowed}.field input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--toggle-bg);border:none;border-radius:.3rem;cursor:pointer;height:6px;padding:0;width:100%}.field input[type=range]:focus{box-shadow:none}.field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:none;border-radius:50%;cursor:pointer;height:16px;width:16px}.field input[type=range]::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;cursor:pointer;height:16px;width:16px}.field-group{border:1px solid var(--field-group-border);border-radius:.75rem;margin:0;padding:.75rem}.field-group legend{color:var(--text-secondary);font-size:.9rem;font-weight:700;padding:0 .35rem}.range-grid{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.energy-caps-grid .field span{line-height:1.25;min-height:2.5em}.scale-selector{background:var(--toggle-bg);border-radius:.7rem;display:grid;gap:.4rem;grid-template-columns:repeat(5,minmax(0,1fr));padding:.28rem}.world-model-selector,.sun-position-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.scale-option{background:transparent;border:0;border-radius:.52rem;color:var(--muted);cursor:pointer;display:block;font-size:.85rem;font-weight:600;max-width:100%;min-width:0;overflow:hidden;padding:.46rem .5rem;text-overflow:ellipsis;white-space:nowrap;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.scale-option:hover{background:var(--accent-subtle)}.scale-option:focus-visible{outline:0;box-shadow:0 0 0 3px var(--accent-subtle)}.scale-option-active{background:var(--toggle-active-bg);box-shadow:var(--toggle-active-shadow);color:var(--text)}.checkbox-field{align-items:center;color:var(--text-secondary);display:inline-flex;gap:.55rem;font-size:.9rem;font-weight:600;overflow:hidden}.checkbox-field span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkbox-field input[type=checkbox]{accent-color:var(--accent);height:1rem;width:1rem}.actions{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.5rem}.actions button{background:linear-gradient(160deg,var(--btn-primary-from),var(--btn-primary-to));border:1px solid transparent;border-radius:.62rem;color:var(--btn-primary-text);cursor:pointer;display:block;font-size:.93rem;font-weight:700;max-width:100%;min-width:0;padding:.62rem .78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}.actions button:hover{filter:brightness(1.07);transform:translateY(-1px)}.actions button:active{transform:translateY(0)}.actions button:focus-visible{outline:0;box-shadow:0 0 0 3px #425fad40}.actions button:disabled{cursor:not-allowed;filter:none;opacity:.55;transform:none}.actions button:nth-child(2),.actions button:nth-child(3),.actions button:nth-child(4){background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);color:var(--btn-secondary-text)}.control-status{color:var(--status-text);font-size:.86rem;font-weight:600;margin:0}.control-section{border:1px solid var(--field-group-border);border-radius:.75rem;overflow:hidden}.control-section>summary{background:var(--table-header-bg);color:var(--text-secondary);cursor:pointer;font-size:.92rem;font-weight:700;padding:.65rem .85rem;-webkit-user-select:none;user-select:none}.control-section-content{display:grid;gap:.85rem;padding:.85rem}.control-subsection{border:1px solid var(--field-group-border);border-radius:.6rem;overflow:hidden}.control-subsection>summary{background:var(--toggle-bg);color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-weight:700;padding:.5rem .75rem;-webkit-user-select:none;user-select:none}.gene-toggle-actions{display:flex;gap:.4rem}.gene-toggle-btn{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);border-radius:.4rem;color:var(--btn-secondary-text);cursor:pointer;font-size:.78rem;font-weight:600;padding:.25rem .55rem}.gene-toggle-btn:hover{background:var(--accent-subtle)}.gene-toggle-list{display:grid;gap:.3rem;grid-template-columns:1fr}.gene-toggle-list .checkbox-field{font-size:.82rem}.gene-disabled{opacity:.5}.gene-section{border-top:1px solid var(--border-color);padding-top:.55rem}.gene-section-title{color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.06em;margin-bottom:.4rem;text-transform:uppercase}.gene-subsection-title{color:var(--text-secondary);font-size:.7rem;font-weight:600;margin-bottom:.3rem;margin-top:.55rem}.gene-dir-table{display:grid;gap:.15rem 0;margin-top:.2rem}.gene-dir-table-header,.gene-dir-table-row{align-items:center;display:grid;gap:0;grid-template-columns:1fr repeat(4,1.6rem)}.gene-dir-table-header{color:var(--text-secondary);font-size:1.35rem;font-weight:600;margin-bottom:.1rem;text-align:center}.gene-dir-table-header span:first-child{text-align:left}.gene-dir-action-label{font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gene-dir-cell{align-items:center;cursor:pointer;display:flex;flex-direction:column;gap:.05rem;justify-content:center;padding:.08rem 0}.gene-dir-cell input{cursor:pointer;margin:0}.gene-dir-cell-code{color:var(--text-secondary);font-size:.62rem;line-height:1;opacity:.7}.overlay-section{display:grid;gap:.55rem}.overlay-legend{align-items:center;display:flex;gap:.4rem;margin-left:1.55rem}.overlay-legend-label{color:var(--muted);font-size:.72rem;font-weight:600}.overlay-legend-bar{border-radius:3px;flex:1;height:8px}.overlay-legend-sun{background:linear-gradient(to right,#1a1a2e,#ff8c00,#fd0)}.overlay-legend-energy{background:linear-gradient(to right,#333,#fff)}.overlay-legend-viewmode{background:linear-gradient(to right,#e6001e,#1e1e1e,#00c800)}.import-export-section{border:1px solid var(--field-group-border);border-radius:.6rem;overflow:hidden}.import-export-section>summary{background:var(--toggle-bg);color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-weight:700;padding:.5rem .75rem;-webkit-user-select:none;user-select:none}.import-export-buttons{display:grid;gap:.45rem;padding:.65rem}.import-export-buttons button{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);border-radius:.5rem;color:var(--btn-secondary-text);cursor:pointer;font-size:.83rem;font-weight:600;padding:.45rem .65rem;text-align:left;transition:background .15s ease}.import-export-buttons button:hover:not(:disabled){background:var(--accent-subtle)}.import-export-buttons button:disabled{cursor:not-allowed;opacity:.4}.status-initializing{color:var(--accent)}.spinner{animation:spin .8s linear infinite;border:2px solid var(--accent-subtle);border-radius:50%;border-top-color:var(--accent);display:inline-block;height:.85rem;margin-left:.45rem;vertical-align:middle;width:.85rem}@keyframes spin{to{transform:rotate(360deg)}}.error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.5rem;color:#dc2626;font-size:.83rem;padding:.5rem .7rem}.dark .error-message{color:#f87171}.mobile-tabs{display:none}@media(max-width:1024px){.workspace{flex-wrap:wrap}.left-column,.right-column{width:100%}.canvas-frame{min-height:350px}.mobile-tabs{background:var(--toggle-bg);border-radius:.7rem;display:flex;gap:.3rem;margin-bottom:.8rem;padding:.2rem}.mobile-tab{background:transparent;border:0;border-radius:.52rem;color:var(--muted);cursor:pointer;flex:1;font-size:.88rem;font-weight:600;padding:.5rem;transition:background .2s ease,color .2s ease}.mobile-tab-active{background:var(--toggle-active-bg);box-shadow:var(--toggle-active-shadow);color:var(--text)}.mobile-hidden,.panel-col-collapsed{display:none!important}}@media(max-width:640px){.inspector-header-row{align-items:flex-start;flex-direction:column}.actions,.range-grid,.scale-selector{grid-template-columns:1fr}.actions button,.scale-option{min-height:44px}}.overlay-grid{position:absolute;top:0;left:0;pointer-events:none;background-image:linear-gradient(to right,rgba(0,0,0,.3) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.3) 1px,transparent 1px)}
