:root{--bg:#080a0e;--panel:#101319;--panel2:#151920;--line:#252b35;--line2:#333b48;--text:#edf1f7;--muted:#8f99a8;--accent:#edf1f7;--accentText:#101319;--danger:#ff8b8b;--radius:12px;--shadow:0 14px 40px rgba(0,0,0,.24)}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{overflow:hidden}button,input,select{font:inherit}button{color:inherit;border:0;cursor:pointer}.hidden{display:none!important}.app-shell{height:100%;display:flex;flex-direction:column;min-width:0}.topbar{height:58px;flex:0 0 58px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:#0b0e12}.brand-wrap,.top-actions,.panel-title-row,.mini-actions,.node-actions,.shot-toolbar,.viewer-hud,.smart-tools,.curve-tabs,.mask-type-row{display:flex;align-items:center}.brand-wrap{gap:9px}.brand-mark{width:34px;height:34px;border-radius:10px;background:#eef2f7;color:#101319;display:grid;place-items:center;font-weight:950;text-decoration:none}.brand{font-size:14px;font-weight:900}.version{font-size:10px;background:#28303b;padding:2px 5px;border-radius:5px;color:#c8d0dc}.brand-sub{font-size:10px;color:#747e8e}.top-actions{gap:7px}.badge{font-size:10px;color:#98a1af;border:1px solid var(--line);border-radius:99px;padding:5px 8px}.badge-ok{border-color:rgba(109,220,152,.32)!important;color:#9de3b6!important;background:rgba(39,114,68,.12)}.badge-error{border-color:rgba(242,117,117,.34)!important;color:#ffaaaa!important;background:rgba(130,46,46,.13)}
.btn,.icon-btn,.mini-btn,.wide-btn,.smart-btn,.hud-btn,.transport-btn,.text-btn{transition:.12s ease}.btn{padding:8px 11px;border-radius:9px;font-size:12px;font-weight:800}.btn.primary{background:var(--accent);color:var(--accentText)}.btn.ghost{background:#171b22;border:1px solid var(--line)}.icon-btn{width:35px;height:35px;border-radius:9px;background:#171b22;border:1px solid var(--line)}button:hover:not(:disabled){filter:brightness(1.15)}button:disabled{opacity:.36;cursor:not-allowed}.text-btn{background:transparent;color:#aab4c2;font-size:11px}.mini-btn{background:#181d24;border:1px solid var(--line);padding:6px 8px;border-radius:7px;font-size:10px}.wide-btn{width:100%;padding:8px;border-radius:8px;background:#171b22;border:1px solid var(--line);margin-top:6px;font-size:11px}.wide-btn.danger{color:#ffb0b0}.select{background:#161a21;color:#d8dee8;border:1px solid var(--line);border-radius:8px;padding:7px}.select.full{width:100%;margin-top:5px}
.workspace{display:grid;grid-template-columns:250px minmax(420px,1fr) 355px;gap:9px;padding:9px;min-height:0;flex:1}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.left-panel,.right-panel{min-height:0;overflow:auto}.left-panel{padding:12px}.right-panel{padding:11px}.side-section{border-top:1px solid var(--line);padding-top:13px;margin-top:14px}.side-section.first{border-top:0;padding-top:0;margin-top:0}.panel-title-row{justify-content:space-between;gap:8px}.panel-title-row h2{font-size:11px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.09em;color:#bcc5d2}.micro-note{font-size:10px;color:#768191;line-height:1.4}.field{display:block;margin:10px 0;color:#aeb6c2;font-size:11px}.field.compact{margin:5px 0}.empty-mini{font-size:10px;color:#677180;padding:8px;border:1px dashed #2b323d;border-radius:8px;text-align:center}
.node-list{display:flex;flex-direction:column;gap:6px}.node-card{border:1px solid var(--line);border-radius:9px;padding:8px;background:#13171d;display:grid;grid-template-columns:24px 1fr auto;gap:7px;align-items:center;cursor:pointer}.node-card.active{border-color:#dce3ed;background:#1b2028}.node-toggle{width:18px;height:18px;border-radius:5px;background:#2c3440;display:grid;place-items:center;font-size:10px}.node-toggle.on{background:#dfe5ed;color:#111}.node-name{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-meta{font-size:9px;color:#7c8796}.node-mix{font-size:9px;color:#909aa9}.node-actions{gap:5px}.node-actions .wide-btn{flex:1}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gallery-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#151920;cursor:pointer}.gallery-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#050607}.gallery-card div{padding:5px 6px;font-size:9px;color:#bdc5d1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reference-preview{margin-top:7px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.reference-preview img{display:block;width:100%;max-height:105px;object-fit:cover}.reference-preview span{display:block;padding:6px;font-size:9px;color:#8e98a6}.diagnostics summary{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#aab4c2;cursor:pointer}.diag-text{white-space:pre-wrap;font:9px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#8f99a7;max-height:120px;overflow:auto;background:#0b0e12;border:1px solid var(--line);padding:7px;border-radius:7px}
.viewer-area{min-width:0;display:flex;flex-direction:column;gap:8px;min-height:0}.viewer-card{position:relative;flex:1;min-height:310px;background:#020304;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.drop-zone.drag{outline:2px solid #dce2ee;outline-offset:-4px}.empty-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px;background:radial-gradient(circle at 50% 40%,#171b22 0,#07090c 45%,#030405 78%)}.upload-icon{width:60px;height:60px;border-radius:17px;border:1px solid #323846;display:grid;place-items:center;font-size:31px;background:#11151a;margin-bottom:11px}.empty-state h1{font-size:20px;margin:4px 0}.empty-state p{color:var(--muted);margin:0 0 14px;font-size:12px}.upload-label{display:inline-flex}.file-help{margin-top:11px;font-size:10px;color:#687180}.video-stage{position:absolute;inset:0;display:grid;place-items:center;background:#000}.source-video{position:absolute;width:2px;height:2px;opacity:.001;pointer-events:none;left:-10px;top:-10px}.source-video.fallback-visible{inset:0;width:100%;height:100%;opacity:1;left:0;top:0;object-fit:contain;z-index:1}.gl-canvas{position:relative;z-index:2;display:block;width:auto;height:auto;max-width:100%;max-height:100%;background:#000}.viewer-hud{position:absolute;gap:5px;z-index:8}.viewer-hud.top-left{top:9px;left:9px;background:rgba(8,10,13,.75);padding:6px 8px;border-radius:7px;font-size:9px;color:#cbd2dc}.viewer-hud.top-right{top:9px;right:9px;flex-wrap:wrap;justify-content:flex-end}.hud-btn{background:rgba(15,18,23,.85);border:1px solid rgba(255,255,255,.11);border-radius:7px;padding:6px 7px;font-size:9px}.hud-btn.active{background:#eceff5;color:#101216}.split-overlay{position:absolute;inset:0;pointer-events:none;z-index:6}.split-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 12px #000}.split-handle span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#111;font-weight:900}.mask-overlay{position:absolute;z-index:7;pointer-events:none}.mask-shape{position:absolute;border:2px solid rgba(255,221,91,.95);box-shadow:0 0 0 1px rgba(0,0,0,.7);pointer-events:auto;cursor:move}.mask-shape.ellipse{border-radius:50%}.mask-shape.gradient{border:0;border-left:2px solid rgba(255,221,91,.95);width:2px!important}.mask-handle{position:absolute;width:12px;height:12px;border-radius:50%;background:#ffe05f;border:2px solid #151515;right:-7px;bottom:-7px;cursor:nwse-resize}.preview-status{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:12;max-width:min(680px,calc(100% - 30px));display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(10,13,17,.92);color:#eef2f7;font-size:11px}.preview-status.hidden{display:none}.preview-status.error{border-color:rgba(255,132,98,.35);background:rgba(32,16,12,.94)}.preview-status strong{display:block;font-size:11px;margin-bottom:2px}#previewStatusDetail{color:#c4ccd7;line-height:1.35}.preview-status-spinner{width:15px;height:15px;flex:0 0 15px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .75s linear infinite}.preview-status-spinner.hidden{display:none}@keyframes spin{to{transform:rotate(360deg)}}
.transport{height:52px;flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:8px 9px}.transport-btn{height:32px;min-width:34px;padding:0 8px;border-radius:7px;background:#1a1f27;border:1px solid var(--line);font-size:10px}.timecode{font-variant-numeric:tabular-nums;color:#aeb7c5;font-size:10px}.seek{flex:1;accent-color:#e6ebf3}.disabled-area{opacity:.45}.shot-panel{flex:0 0 110px;padding:7px}.shot-toolbar{gap:6px;margin-bottom:6px}.shot-toolbar strong{font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-right:2px}.shot-toolbar .micro-note{margin-left:auto}.shot-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:3px;min-height:72px}.shot-card{flex:0 0 104px;border:1px solid var(--line);background:#12161c;border-radius:7px;overflow:hidden;cursor:pointer}.shot-card.active{border-color:#e8edf5}.shot-card img{width:100%;height:48px;object-fit:cover;display:block;background:#030405}.shot-card .shot-info{padding:4px 5px;font-size:8px;color:#8994a3}.shot-card .shot-name{color:#d0d7e1;font-weight:800}.scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:0 0 250px}.scope-card{padding:7px 8px;min-width:0}.scope-head{display:flex;justify-content:space-between;color:#7f8998;font-size:9px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}.scope-card canvas{width:100%;height:98px;background:#090b0e;border-radius:7px;display:block}
.mode-switch{display:grid;grid-template-columns:1fr 1fr;background:#0d1014;border:1px solid var(--line);border-radius:9px;padding:3px;position:sticky;top:0;z-index:5}.mode-btn{padding:7px;border-radius:7px;background:transparent;color:#8f98a6;font-weight:800;font-size:11px}.mode-btn.active{background:#232932;color:#fff}.smart-tools{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}.smart-btn{background:#171c23;border:1px solid var(--line);border-radius:8px;padding:7px;font-size:10px;color:#c3ccd8}.selected-node-title{margin:10px 0 0;font-size:11px;font-weight:900;color:#e6ebf2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.controls{padding-top:3px}.control-section{border-top:1px solid var(--line);padding-top:11px;margin-top:11px}.control-section:first-child{border-top:0}.section-label{font-size:10px;text-transform:uppercase;color:#788291;letter-spacing:.08em;margin-bottom:7px;display:flex;justify-content:space-between;align-items:center}.control{margin:8px 0}.control-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.control-name{color:#d4d9e2;font-size:10px}.control-value{font-size:9px;color:#8f98a6;font-variant-numeric:tabular-nums}.control input[type=range],.channel-row input[type=range]{width:100%;accent-color:#e8edf5}.channel-row{display:grid;grid-template-columns:27px 1fr 43px;align-items:center;gap:6px;margin:6px 0}.channel-dot{width:7px;height:7px;border-radius:50%;margin:auto}.channel-value{color:#9099a7;text-align:right;font-size:9px}.hsl-group{margin:6px 0;border:1px solid var(--line);border-radius:8px;padding:6px 7px}.hsl-group summary{cursor:pointer;font-size:10px;color:#cdd3dc}.hsl-group summary span{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.toggle-row{display:flex;align-items:center;justify-content:space-between;margin:7px 0;font-size:10px;color:#c7cfda}.toggle{accent-color:#e8edf5}.curve-wrap{border:1px solid var(--line);border-radius:9px;padding:7px;background:#0b0e12}.curve-tabs{gap:4px;flex-wrap:wrap;margin-bottom:6px}.curve-tab{font-size:8px;padding:4px 6px;border-radius:5px;background:#171c23;border:1px solid var(--line)}.curve-tab.active{background:#e7ebf2;color:#111}.curve-canvas{width:100%;height:160px;display:block;cursor:crosshair;border-radius:6px;background:#080a0e}.curve-help{font-size:9px;color:#687281;margin-top:5px}.mask-type-row{gap:4px;flex-wrap:wrap}.mask-type-btn{font-size:9px;background:#171c23;border:1px solid var(--line);border-radius:6px;padding:5px 7px}.mask-type-btn.active{background:#e8edf5;color:#111}.qualifier-range{display:grid;grid-template-columns:1fr 1fr;gap:6px}.qualifier-swatch{height:18px;border-radius:5px;border:1px solid var(--line2)}
.modal{border:0;padding:0;background:transparent}.modal::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(3px)}.modal-card{width:min(480px,calc(100vw - 30px));background:#111419;border:1px solid var(--line);border-radius:15px;padding:17px;color:var(--text);box-shadow:0 30px 90px rgba(0,0,0,.5)}.modal-head{display:flex;justify-content:space-between;gap:18px}.modal-head h2{margin:0;font-size:18px}.modal-head p{margin:4px 0 11px;color:var(--muted);font-size:11px}.export-note{font-size:10px;color:#808a98;background:#0b0e12;border:1px solid var(--line);padding:9px;border-radius:8px}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}.progress-wrap{margin-top:11px}.progress-bar{height:7px;border-radius:99px;background:#242a33;overflow:hidden}.progress-fill{height:100%;width:0;background:#ecf1f8}.progress-wrap span{display:block;margin-top:5px;color:#929ba8;font-size:10px}.command-input{width:100%;background:#090c10;color:#edf2f8;border:1px solid #303845;border-radius:9px;padding:12px;font-size:13px;outline:none}.command-input:focus{border-color:#cdd5df}.command-examples{font-size:10px;color:#778292;line-height:1.5;margin-top:7px}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#eef2f7;color:#101319;padding:8px 12px;border-radius:8px;font-weight:800;font-size:11px;z-index:9999;box-shadow:0 12px 30px rgba(0,0,0,.35)}
@media(max-width:1200px){.workspace{grid-template-columns:220px minmax(380px,1fr) 315px}.scope-grid{flex-basis:220px}.scope-card canvas{height:82px}.brand-sub{display:none}}
@media(max-width:900px){body{overflow:auto}.app-shell{height:auto;min-height:100%}.workspace{display:flex;flex-direction:column}.left-panel{order:3}.right-panel{order:2}.viewer-area{order:1;min-height:900px}.left-panel,.right-panel{overflow:visible}.scope-grid{grid-template-columns:1fr 1fr}.viewer-card{min-height:440px}.topbar{position:sticky;top:0;z-index:20}.badge,.brand-sub,.commandBtn{display:none}.shot-toolbar .micro-note{display:none}}

.smart-btn.active{background:#e8edf5;color:#111;border-color:#e8edf5}

/* Mobile-first editor shell */
.mobile-sheet-head,.mobile-nav,.mobile-scrim{display:none}
@media (pointer:coarse){
  button,.btn,.icon-btn,.mini-btn,.wide-btn,.smart-btn,.hud-btn,.transport-btn,.mode-btn,.curve-tab,.mask-type-btn{min-height:44px}
  input[type="range"]{height:34px;touch-action:pan-x}
  input[type="range"]::-webkit-slider-thumb{width:24px;height:24px}
  .mask-shape,.mask-handle{touch-action:none}
}

@media(max-width:900px){
  :root{--radius:10px;--shadow:0 8px 28px rgba(0,0,0,.28)}
  html,body{height:100%;min-height:100%;overscroll-behavior:none}
  body{overflow:hidden;padding:0;background:#05070a}
  .app-shell{height:100dvh;min-height:100dvh;overflow:hidden;padding-bottom:calc(58px + env(safe-area-inset-bottom))}
  .topbar{height:54px;flex:0 0 54px;padding:0 max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));position:relative;z-index:40}
  .brand-wrap{gap:7px;min-width:0}.brand-mark{width:32px;height:32px;border-radius:9px}.brand{font-size:13px;white-space:nowrap}.version{font-size:8px}
  .brand-sub,.badge,#commandBtn,#resetBtn{display:none!important}
  .top-actions{gap:5px;min-width:0}.top-actions .icon-btn{width:34px;height:34px;padding:0}.top-actions .btn{height:34px;min-height:34px;padding:0 9px;font-size:10px}
  #openVideoBtn{font-size:0;width:48px;padding:0}#openVideoBtn::after{content:"Open";font-size:10px}#exportBtn{padding:0 10px}

  .workspace{display:block;min-height:0;height:calc(100dvh - 54px - 58px - env(safe-area-inset-bottom));padding:0;overflow:hidden}
  .viewer-area{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:7px 7px calc(18px + env(safe-area-inset-bottom));gap:7px;scrollbar-width:none}
  .viewer-area::-webkit-scrollbar{display:none}
  .viewer-card{flex:0 0 auto;width:100%;height:clamp(210px,56vw,42dvh);min-height:0;border-radius:9px}
  .empty-state{padding:18px}.upload-icon{width:50px;height:50px;font-size:26px;border-radius:14px}.empty-state h1{font-size:18px}.empty-state p{font-size:11px;max-width:260px}.file-help{font-size:9px}
  .gl-canvas{max-width:100%;max-height:100%;touch-action:manipulation}
  .viewer-hud.top-left{top:6px;left:6px;max-width:calc(100% - 12px);font-size:8px;padding:5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .viewer-hud.top-right{left:6px;right:6px;top:auto;bottom:6px;display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:0 1px;scrollbar-width:none;mask-image:linear-gradient(to right,transparent 0,#000 8px,#000 calc(100% - 8px),transparent 100%)}
  .viewer-hud.top-right::-webkit-scrollbar{display:none}.hud-btn{flex:0 0 auto;min-height:38px;padding:7px 10px;font-size:10px;background:rgba(12,15,20,.9);backdrop-filter:blur(8px)}
  .split-handle span{width:34px;height:34px}.mask-handle{width:18px;height:18px;right:-10px;bottom:-10px}
  .preview-status{bottom:52px;width:calc(100% - 20px);max-width:none;font-size:10px;padding:8px 9px}

  .transport{height:auto;min-height:92px;display:grid;grid-template-columns:44px 44px 44px 1fr auto;grid-template-rows:40px 34px;gap:5px;padding:6px;position:sticky;top:0;z-index:15;background:rgba(16,19,25,.96);backdrop-filter:blur(12px)}
  .transport-btn{height:40px;min-width:0;padding:0;font-size:10px}.timecode{font-size:9px;align-self:center}.transport #currentTime{justify-self:start}.transport #duration{justify-self:end}.transport .seek{grid-column:1 / -1;grid-row:2;width:100%;height:30px;margin:0}.transport #previewQuality{grid-column:4 / 6;grid-row:1;min-width:0;height:40px;padding:5px 7px;font-size:9px}
  #playBtn{grid-column:1;grid-row:1}#prevFrameBtn{grid-column:2;grid-row:1}#nextFrameBtn{grid-column:3;grid-row:1}
  #currentTime,#duration{display:none}

  .shot-panel{flex:none;min-height:104px;padding:7px;border-radius:9px;transition:max-height .2s ease}
  .shot-toolbar{display:grid;grid-template-columns:auto 1fr 1fr;gap:6px}.shot-toolbar strong{grid-column:1}.shot-toolbar .mini-btn{min-height:38px;padding:6px;font-size:9px}.shot-toolbar #detectShotsBtn{grid-column:2}.shot-toolbar #addShotBtn{grid-column:3}.shot-toolbar #matchPrevShotBtn{grid-column:2 / 4}.shot-toolbar .micro-note{display:none}
  .shot-strip{min-height:67px;gap:7px;scroll-snap-type:x proximity;padding:2px 1px 4px}.shot-card{flex-basis:118px;scroll-snap-align:start}.shot-card img{height:54px}.shot-card .shot-info{font-size:9px}
  .shot-panel.mobile-expanded{min-height:230px}.shot-panel.mobile-expanded .shot-card{flex-basis:150px}.shot-panel.mobile-expanded .shot-card img{height:84px}

  .scope-grid{display:none;grid-template-columns:1fr;gap:7px;flex:none}.scope-grid.mobile-expanded{display:grid}.scope-card{padding:7px;border-radius:9px}.scope-card canvas{height:150px}.scope-head{font-size:9px}

  .left-panel,.right-panel{display:block;position:fixed;z-index:70;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;height:min(72dvh,680px);max-height:calc(100dvh - 44px - env(safe-area-inset-top));padding:0 12px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-shadow:0 -18px 60px rgba(0,0,0,.52);transform:translateY(105%);transition:transform .22s cubic-bezier(.2,.8,.2,1);pointer-events:none;background:#101319}
  .left-panel.mobile-open,.right-panel.mobile-open{transform:translateY(0);pointer-events:auto}
  .mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;height:48px;margin:0 -12px 10px;padding:0 12px;background:rgba(16,19,25,.98);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
  .mobile-sheet-head strong{font-size:12px;text-transform:uppercase;letter-spacing:.06em}.mobile-sheet-close{width:38px;height:38px;border-radius:10px;background:#1b2027;border:1px solid var(--line);font-size:15px}
  .left-panel .side-section.first{margin-top:0}.node-list{flex-direction:row;overflow-x:auto;gap:7px;padding-bottom:5px;scroll-snap-type:x proximity}.node-card{flex:0 0 190px;scroll-snap-align:start;min-height:62px}.node-actions{position:sticky;bottom:0;background:linear-gradient(transparent,#101319 25%);padding-top:12px;padding-bottom:3px;z-index:5}
  .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reference-preview img{max-height:160px}
  .right-panel{padding-left:12px;padding-right:12px}.mode-switch{top:48px;margin-bottom:7px}.smart-tools{grid-template-columns:1fr 1fr}.smart-btn{min-height:44px;font-size:11px}.selected-node-title{font-size:12px;margin-top:12px}
  .control{margin:13px 0}.control-name{font-size:12px}.control-value{font-size:11px}.control input[type=range],.channel-row input[type=range]{height:36px}.channel-row{grid-template-columns:32px 1fr 48px;gap:8px;margin:10px 0}.hsl-group{padding:10px}.hsl-group summary{font-size:12px}.curve-canvas{height:220px;touch-action:none}.curve-tab,.mask-type-btn{font-size:10px;min-height:38px;padding:7px 9px}.qualifier-range{gap:8px}

  .mobile-scrim{display:block;position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.56);opacity:0;pointer-events:none;transition:opacity .2s ease}.mobile-scrim.open{opacity:1;pointer-events:auto}
  .mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:55;left:0;right:0;bottom:0;height:calc(58px + env(safe-area-inset-bottom));padding:5px max(5px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(5px,env(safe-area-inset-left));background:rgba(11,14,18,.97);border-top:1px solid var(--line);backdrop-filter:blur(16px)}
  .mobile-nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;border-radius:9px;background:transparent;color:#8792a2;touch-action:manipulation}.mobile-nav-btn span{font-size:17px;line-height:1}.mobile-nav-btn small{font-size:8px;font-weight:800}.mobile-nav-btn.active{color:#fff;background:#1c222b}
  body.mobile-sheet-open .viewer-area{overflow:hidden}

  .modal{max-width:100vw;max-height:100dvh}.modal-card{width:calc(100vw - 14px);max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;border-radius:16px;padding:14px}.modal-head h2{font-size:16px}.modal-head p{font-size:10px}.modal-actions{position:sticky;bottom:-14px;background:#111419;padding:10px 0 calc(4px + env(safe-area-inset-bottom));margin-top:12px}.modal-actions .btn{min-height:44px;flex:1}.command-input{font-size:16px;min-height:48px}
  .toast{bottom:calc(68px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);text-align:center}
}

@media(max-width:480px){
  .topbar{height:50px;flex-basis:50px}.workspace{height:calc(100dvh - 50px - 58px - env(safe-area-inset-bottom))}.brand-mark{width:29px;height:29px}.brand{font-size:12px}.top-actions .icon-btn{width:31px;height:31px}#openVideoBtn{width:43px}#exportBtn{padding:0 8px}
  .viewer-area{padding:5px 5px calc(14px + env(safe-area-inset-bottom));gap:5px}.viewer-card{height:clamp(190px,58vw,36dvh)}
  .viewer-hud.top-left{font-size:7px}.hud-btn{min-height:36px;font-size:9px;padding:6px 8px}
  .transport{grid-template-columns:42px 42px 42px 1fr auto;padding:5px}.transport-btn{height:38px}.transport #previewQuality{height:38px}
  .shot-card{flex-basis:108px}.shot-card img{height:48px}.scope-card canvas{height:132px}
  .left-panel,.right-panel{height:min(76dvh,700px)}.gallery-grid{grid-template-columns:1fr 1fr}.node-card{flex-basis:175px}.curve-canvas{height:190px}
}

@media(min-width:901px) and (max-width:1180px){
  .workspace{grid-template-columns:210px minmax(360px,1fr) 300px;gap:7px;padding:7px}.left-panel{padding:10px}.right-panel{padding:9px}.scope-grid{flex-basis:210px}.scope-card canvas{height:80px}
}

@media(orientation:landscape) and (max-height:600px) and (max-width:900px){
  .app-shell{padding-bottom:52px}.mobile-nav{height:52px;grid-template-columns:repeat(5,1fr)}.mobile-nav-btn{flex-direction:row;gap:5px}.mobile-nav-btn span{font-size:14px}.mobile-nav-btn small{font-size:8px}
  .workspace{height:calc(100dvh - 50px - 52px)}.viewer-area{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,.9fr);grid-auto-rows:min-content;align-content:start;overflow:auto}.viewer-card{grid-column:1;grid-row:1 / span 3;height:calc(100dvh - 116px);min-height:220px}.transport{grid-column:2;grid-row:1;position:static}.shot-panel{grid-column:2;grid-row:2}.scope-grid.mobile-expanded{grid-column:2;grid-row:3}.scope-card canvas{height:108px}.left-panel,.right-panel{left:auto;width:min(430px,56vw);height:calc(100dvh - 4px);top:4px;right:4px;border-radius:16px 0 0 16px;transform:translateX(105%)}.left-panel.mobile-open,.right-panel.mobile-open{transform:translateX(0)}
}
