/* Falcons Blue r15 — neutral, minimal */
:root{--bg:#0b0b0c;--panel:#111113;--elev:#18181b;--hover:#1f1f23;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.14);--text:#ececef;--muted:#8b8b93;--faint:#5f5f67;
 --accent:#3b6fe0;--accent-soft:rgba(59,111,224,.16);--def:#a1a1aa;--danger:#e5484d;--r:8px;--r-sm:6px;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);--font:Inter,"Inter var",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif}
body.light{--bg:#f4f4f5;--panel:#ffffff;--elev:#ffffff;--hover:#f1f1f3;--line:rgba(0,0,0,.08);--line2:rgba(0,0,0,.14);--text:#18181b;--muted:#6b6b74;--faint:#a1a1aa;--accent:#2457d6;--accent-soft:rgba(36,87,214,.10);--def:#71717a;--shadow:0 1px 2px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.08)}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.4 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
body{display:flex;flex-direction:column;overflow:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
button,select,input{font:inherit;color:inherit}
.i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 14px;border-radius:var(--r);border:1px solid var(--line2);background:var(--elev);color:var(--text);font-weight:500;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:hover{background:var(--hover)}
button:active{transform:translateY(.5px)}
button:disabled{opacity:.4;cursor:default}
button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
button.primary{background:var(--accent);border-color:transparent;color:#fff}
button.primary:hover{filter:brightness(1.08)}
button.danger{color:var(--danger)}
button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
body:not(.light) button.on{color:#9db8ff}
button.ib{width:44px;padding:0}
select,input[type=text],input[type=number],.cardBody input{min-height:44px;width:100%;padding:0 12px;border-radius:var(--r);border:1px solid var(--line2);background:var(--panel);color:var(--text)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b8b93' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px;padding-right:34px}
/* header */
#top{flex:none;height:60px;display:flex;align-items:center;gap:8px;padding:0 12px;padding-top:env(safe-area-inset-top);box-sizing:content-box;border-bottom:1px solid var(--line);background:var(--panel)}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;letter-spacing:-.01em}
.logo{width:30px;height:30px;border-radius:7px}
.sp{flex:1}
.vsep{width:1px;height:24px;background:var(--line2);margin:0 2px}
#top>button.ib{border-color:transparent;background:transparent;color:var(--muted)}
#top>button.ib:hover{background:var(--hover);color:var(--text)}
#top>button.ib.on{color:var(--accent);background:var(--accent-soft)}
/* segmented control */
.seg{display:inline-flex;padding:3px;gap:2px;border-radius:var(--r);background:var(--bg);border:1px solid var(--line)}
.seg button{min-height:38px;padding:0 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);font-weight:500}
.seg button:hover{background:var(--hover);color:var(--text)}
.seg button.on{background:var(--elev);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.25),0 0 0 1px var(--line2)}
.seg.wide{display:flex}.seg.wide button{flex:1}
/* layout */
main{flex:1;min-height:0;display:flex}
#side{width:260px;flex:none;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line);padding:6px 12px 16px;touch-action:pan-y;overscroll-behavior:contain}
body.sideOff #side{display:none}
.box{padding:12px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.box:last-of-type{border-bottom:0}
h6{margin:0 0 2px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
h6 small{text-transform:none;letter-spacing:0;font-weight:400;margin-left:4px}
h6.sub{margin-top:6px}
.row{display:flex;gap:8px}.row button{flex:1}
.row.icons button{flex:1;width:auto}
.chk{display:flex;align-items:center;gap:10px;min-height:36px;color:var(--text);font-size:13.5px;cursor:pointer}
.chk input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.hint{color:var(--muted);font-size:12.5px;line-height:1.5;margin:12px 0 0}
#renBox{display:flex;flex-direction:column;gap:6px}#renBox[hidden]{display:none}#renBox label{font-size:12px;color:var(--muted)}
#bench{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
#bench .bp{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border-radius:var(--r);border:1px solid transparent;cursor:pointer;font-size:11.5px;color:var(--muted);text-align:center}
#bench .bp:hover{background:var(--hover)}
#bench .bp.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}
#bench small{color:var(--faint)}
.bp .av{width:36px;height:36px}
/* stage */
#stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;perspective:1400px;background:var(--bg);user-select:none;-webkit-user-select:none;touch-action:none}
#tilt{width:100%;height:100%}
canvas{width:100%;height:100%;display:block;touch-action:none;cursor:default}
#toast{position:absolute;left:50%;bottom:18px;transform:translate(-50%,8px);opacity:0;pointer-events:none;background:var(--elev);color:var(--text);border:1px solid var(--line2);box-shadow:var(--shadow);padding:9px 14px;border-radius:var(--r);font-size:13px;font-weight:500;transition:opacity .18s,transform .18s;max-width:80%;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}
#zoomCtl{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:2px;padding:3px;background:var(--elev);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
#zoomCtl button{border:0;background:transparent;width:40px;min-height:40px;color:var(--muted)}
#zoomCtl button:hover{color:var(--text);background:var(--hover)}
#zLvl{font-size:12px;color:var(--muted);min-width:36px;text-align:center;font-variant-numeric:tabular-nums}
#armChip{position:absolute;top:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:4px 4px 4px 14px;background:var(--elev);border:1px solid var(--accent);border-radius:var(--r);box-shadow:var(--shadow);font-size:13px;font-weight:500}
#armChip[hidden]{display:none}#armChip button{border:0;background:transparent;width:36px;min-height:36px}
/* bubble = compact toolbar */
#bubble{position:fixed;z-index:6;display:flex;align-items:center;gap:2px;padding:4px;max-width:min(92vw,760px);flex-wrap:wrap;background:var(--elev);border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow)}
#bubble[hidden]{display:none}
#bubble .bgrip{display:flex;align-items:center;color:var(--faint);cursor:grab;padding:0 2px;touch-action:none;min-height:44px}
#bubble .bgrip .i{width:16px}
#bubble .bname{font-size:12px;font-weight:600;color:var(--muted);padding:0 8px 0 2px}
#bubble button{min-height:44px;padding:0 10px;border:0;background:transparent;border-radius:var(--r-sm);font-size:13px;color:var(--text);gap:6px}
#bubble button:hover{background:var(--hover)}
#bubble button.on{background:var(--accent-soft);color:var(--accent)}
body:not(.light) #bubble button.on{color:#9db8ff}
#bubble button.dim{opacity:.38}
#bubble button.bx{width:40px;padding:0;color:var(--muted)}
#bubble .bsep{width:1px;height:22px;background:var(--line2);margin:0 3px}
/* frames */
#frames{flex:none;background:var(--panel);border-top:1px solid var(--line);padding:6px 12px 8px}
#frHead{display:flex;align-items:center;gap:6px;min-height:44px}
#frHead button{min-height:40px}#frHead button.ib{width:40px;border-color:transparent;background:transparent;color:var(--muted)}#frHead button.ib:hover{background:var(--hover);color:var(--text)}#frHead button.danger{color:var(--danger)}
#tmToggle{border-color:var(--line2)}
#frCap{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto;padding-left:6px}
#strip{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:4px 2px 2px;touch-action:pan-x;overscroll-behavior:contain;scrollbar-width:thin}
.fth{flex:none;position:relative;width:100px;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;background:var(--bg);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-x;transition:border-color .12s,box-shadow .12s}
.fth canvas{display:block;width:98px;height:68px;pointer-events:none}
.fth span{position:absolute;left:5px;top:5px;background:var(--elev);color:var(--text);font-weight:600;font-size:11px;border-radius:4px;padding:1px 6px;pointer-events:none;border:1px solid var(--line)}
.fth.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.fth.dragging{z-index:5;opacity:.9;box-shadow:var(--shadow)}
.fadd{flex:none;width:76px;min-height:70px;border:1px dashed var(--line2);background:transparent;color:var(--muted);flex-direction:column;gap:2px;font-size:12px}
.fadd small{font-size:11.5px}
#timing{max-height:min(30vh,240px);overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;padding:6px 0 2px;border-top:1px solid var(--line);margin-top:6px}
#timing[hidden]{display:none}
.tmRow{display:flex;align-items:center;gap:10px;height:36px}
.tmL{flex:none;width:220px;font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
.tmL .i{width:15px;height:15px;color:var(--muted)}
.tmL button{min-height:28px;padding:0 8px;font-size:12px}.tmL button.ib{width:28px}
.tmTrack{position:relative;flex:1;height:24px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm)}
.tmBar{position:absolute;top:2px;height:18px;border-radius:4px;min-width:14px;color:#fff;font-size:10.5px;font-weight:600;display:flex;align-items:center;padding-left:6px;touch-action:none;cursor:grab;overflow:hidden}
.tmBar.ball{background:#c2410c}
.tmBar .tmH{position:absolute;right:0;top:0;bottom:0;width:14px;background:rgba(255,255,255,.25);cursor:ew-resize}
.tmEmpty{color:var(--muted);font-size:13px;padding:6px 2px}
.tmFoot{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;padding-top:6px}.tmFoot button{min-height:32px;padding:0 10px;font-size:12.5px}
/* playback bar */
#pb{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line)}
#pb>button.ib{border-color:transparent;background:transparent;color:var(--muted)}#pb>button.ib:hover{background:var(--hover);color:var(--text)}
#pauseBtn{color:var(--text)!important}
#scrub{flex:1;min-width:80px;accent-color:var(--accent);height:44px}
.loop{min-height:44px}
/* present */
body.present #top,body.present #side,body.present #pb,body.present #frames,body.present #zoomCtl{display:none}
#floatBar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:4px;padding:5px;background:var(--elev);border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow)}
#floatBar[hidden]{display:none}
#floatBar button{border:0;background:transparent;min-height:44px}#floatBar button.ib{width:44px}#floatBar button:hover{background:var(--hover)}#floatBar button.on{background:var(--accent-soft)}
#fbGrip{color:var(--faint);padding:0 6px;cursor:grab;touch-action:none;font-weight:700;letter-spacing:-2px}
/* roster + card */
#rosterWrap,#cardWrap{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:8;display:flex;align-items:center;justify-content:center}
#rosterWrap[hidden],#cardWrap[hidden]{display:none}
#rosterBox{background:var(--panel);border:1px solid var(--line2);border-radius:12px;width:min(92vw,900px);max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--shadow)}
#rosterBox .rh{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 18px;border-bottom:1px solid var(--line);font-size:15px}
#rosterBox .rh button{border-color:transparent;background:transparent}
#rosterGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:14px;overflow:auto;touch-action:pan-y}
#rosterGrid .rc{background:var(--elev);border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;text-align:center;position:relative}
#rosterGrid .rc:hover{border-color:var(--line2)}
#rosterGrid .rc .rn{position:absolute;top:8px;right:10px;font-weight:600;font-size:13px;color:var(--muted)}
#rosterGrid .rc .av{width:72px;height:72px}
#rosterGrid .rc small{color:var(--muted);font-size:12px}
#card{width:360px;max-height:94vh;overflow:auto;border-radius:12px;background:var(--panel);border:1px solid var(--line2);position:relative;box-shadow:var(--shadow);touch-action:pan-y}
#cardClose{position:absolute;right:8px;top:8px;z-index:2;border-color:transparent;background:transparent}
.cardTop{height:170px;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(180deg,var(--accent-soft),transparent);border-bottom:1px solid var(--line)}
#cardAvatar{width:132px;height:132px}
.pn{position:absolute;left:16px;top:14px;font-size:34px;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.pn small{display:block;font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--faint)}
.cardBody{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}
.cardBody label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.av{border-radius:50%;overflow:hidden;background:var(--elev);border:1px solid var(--line)}
.av img{width:100%;height:100%;object-fit:cover}.av svg{width:100%;height:100%}
.bob,.blink,.ballspin{animation:none}
#cardWrap:not([hidden]) #card .bob{animation:bob 1.6s ease-in-out infinite}
#cardWrap:not([hidden]) #card .blink{animation:blink 4s infinite;transform-origin:center 42%}
@keyframes bob{50%{transform:translateY(-4px)}}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
#top,#pb,#frames,#floatBar,button,#bench{user-select:none;-webkit-user-select:none}
@media (max-width:1100px){#side{width:220px}.brand span{display:none}#pb .seg button{padding:0 9px}#playFrame,#presentBtn{padding:0 10px}}
@media (max-width:900px){.tmL{width:150px}}
@media (pointer:coarse){.seg button,#frHead button,#frHead button.ib,#zoomCtl button{min-height:44px}#frHead button.ib,#zoomCtl button{width:44px}.seg{padding:2px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* r15: Falcons blue glow panels */
:root{--glow-c:59,130,246;--glow:0 0 0 1px rgba(var(--glow-c),.35),0 0 14px rgba(var(--glow-c),.22),0 8px 24px rgba(0,0,0,.35);--glow-strong:0 0 0 1px rgba(var(--glow-c),.75),0 0 12px rgba(var(--glow-c),.45);--accent:#3b82f6;--accent-soft:rgba(59,130,246,.16)}
body.light{--glow-c:37,99,235;--glow:0 0 0 1px rgba(var(--glow-c),.22),0 0 10px rgba(var(--glow-c),.10),0 6px 18px rgba(0,0,0,.06);--glow-strong:0 0 0 1px rgba(var(--glow-c),.6),0 0 8px rgba(var(--glow-c),.22);--accent:#2563eb;--accent-soft:rgba(37,99,235,.10)}
#bubble,#floatBar,#armChip,#zoomCtl,#toast,#card,#rosterBox,#timing,dialog,.dlg,.sec,#side .box{border-radius:8px;border-color:rgba(var(--glow-c),.4)!important;box-shadow:var(--glow)!important}
#frames,#pb{box-shadow:0 -1px 0 rgba(var(--glow-c),.35),0 -6px 16px rgba(var(--glow-c),.08)}
#side{box-shadow:1px 0 0 rgba(var(--glow-c),.35),6px 0 16px rgba(var(--glow-c),.07)}
#top{box-shadow:0 1px 0 rgba(var(--glow-c),.35),0 6px 16px rgba(var(--glow-c),.07)}
.fth{border-radius:6px}
.fth.sel,button.on,#bubble button.on,.seg button.on,#bench .bp.sel{border-color:rgba(var(--glow-c),.9)!important;box-shadow:var(--glow-strong)!important}
#side h3,#side h4,#side .lbl,#side label>span:first-child,.secT{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:rgb(var(--glow-c))}
body #side .box{border:1px solid rgba(var(--glow-c),.4);padding:12px;margin:10px 8px;background:var(--elev)}
#side h6{color:rgb(var(--glow-c));text-shadow:0 0 8px rgba(var(--glow-c),.35)}
/* r16: real neon bloom — multi-layer soft glow, inner glow, gradient sheen borders */
:root{--glow-c:56,132,255;--gl-hi:120,175,255;
 --glow:0 0 0 1px rgba(var(--glow-c),.55),0 0 10px rgba(var(--glow-c),.38),0 0 28px rgba(var(--glow-c),.22),0 0 60px rgba(var(--glow-c),.10),inset 0 0 14px rgba(var(--glow-c),.14),inset 0 1px 0 rgba(var(--gl-hi),.25),0 10px 28px rgba(0,0,0,.45);
 --glow-strong:0 0 0 1px rgba(var(--gl-hi),.95),0 0 8px rgba(var(--glow-c),.75),0 0 22px rgba(var(--glow-c),.5),0 0 48px rgba(var(--glow-c),.28),inset 0 0 12px rgba(var(--glow-c),.35);
 --sheen:linear-gradient(135deg,rgba(var(--gl-hi),.95),rgba(var(--glow-c),.25) 35%,rgba(var(--glow-c),.18) 65%,rgba(var(--gl-hi),.8))}
body.light{--glow-c:37,99,235;--gl-hi:96,150,250;
 --glow:0 0 0 1px rgba(var(--glow-c),.30),0 0 10px rgba(var(--glow-c),.16),0 0 26px rgba(var(--glow-c),.09),inset 0 0 10px rgba(var(--glow-c),.05),0 6px 18px rgba(15,23,42,.08);
 --glow-strong:0 0 0 1px rgba(var(--glow-c),.75),0 0 8px rgba(var(--glow-c),.35),0 0 20px rgba(var(--glow-c),.18),inset 0 0 8px rgba(var(--glow-c),.10);
 --sheen:linear-gradient(135deg,rgba(var(--glow-c),.75),rgba(var(--glow-c),.15) 40%,rgba(var(--glow-c),.12) 60%,rgba(var(--glow-c),.55))}
#bubble,#floatBar,#armChip,#zoomCtl,#toast,#timing,#side .box,body #side .box{border:1px solid transparent!important;background:linear-gradient(var(--elev),var(--elev)) padding-box,var(--sheen) border-box!important;box-shadow:var(--glow)!important}
#card,#rosterBox,.dlg,dialog{border:1px solid transparent!important;background:linear-gradient(var(--panel),var(--panel)) padding-box,var(--sheen) border-box!important;box-shadow:var(--glow)!important}
.fth.sel,#bench .bp.sel{border-color:transparent!important;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--sheen) border-box!important;box-shadow:var(--glow-strong)!important}
button.on,#bubble button.on,.seg button.on{box-shadow:var(--glow-strong)!important;border-color:rgba(var(--gl-hi),.9)!important}
#bubble button:hover,#floatBar button:hover{box-shadow:0 0 0 1px rgba(var(--glow-c),.5),0 0 12px rgba(var(--glow-c),.35)}
/* glowing connector / accent lines on bars */
#top,#frames,#pb,#side{position:relative}
#top::after,#frames::before,#pb::before{content:"";position:absolute;left:0;right:0;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(var(--gl-hi),.9) 20%,rgba(var(--glow-c),.9) 50%,rgba(var(--gl-hi),.9) 80%,transparent);box-shadow:0 0 8px rgba(var(--glow-c),.8),0 0 20px rgba(var(--glow-c),.45)}
#top::after{bottom:0}#frames::before,#pb::before{top:0}
#side::after{content:"";position:absolute;top:0;bottom:0;right:0;width:1px;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(var(--glow-c),.9) 25%,rgba(var(--glow-c),.9) 75%,transparent);box-shadow:0 0 8px rgba(var(--glow-c),.7),0 0 18px rgba(var(--glow-c),.35)}
body.light #top::after,body.light #frames::before,body.light #pb::before,body.light #side::after{opacity:.55}
#side h6,.secT{text-shadow:0 0 6px rgba(var(--glow-c),.6),0 0 16px rgba(var(--glow-c),.3)}
body.light #side h6,body.light .secT{text-shadow:none}

/* r20: no-overflow rows + settings */
#side .box{min-width:0}#side .row button{flex:1 1 0;min-width:0;padding:0 8px;overflow:hidden;text-overflow:ellipsis}
#side .row button .i{flex:none}#side select,#side input[type=text]{width:100%;min-width:0;box-sizing:border-box}
#setBtn{border-color:transparent;background:transparent;color:var(--muted)}#setBtn:hover{color:var(--text);background:var(--hover)}
#setWrap{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:8;display:flex;align-items:center;justify-content:center}
#setWrap[hidden]{display:none}
#setBox{background:var(--panel);border:1px solid rgba(var(--glow-c),.5);border-radius:12px;width:min(92vw,620px);max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--glow)}
#setBox .rh{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 18px;border-bottom:1px solid var(--line);font-size:15px}
#setBox .rh button{border-color:transparent;background:transparent}
.setBody{display:flex;min-height:0;overflow:auto}
#setNav{display:flex;flex-direction:column;gap:4px;padding:12px;border-right:1px solid var(--line);flex:none;width:130px}
#setNav button{justify-content:flex-start;border-color:transparent;background:transparent}#setNav button.on{background:var(--accent-soft);color:var(--accent);box-shadow:var(--glow-strong)}
.setSecs{flex:1;min-width:0;padding:14px 18px}.setSec{display:flex;flex-direction:column;gap:10px}.setSec[hidden]{display:none}
.setSec select{min-height:44px;border-radius:var(--r);border:1px solid var(--line2);background:var(--elev);padding:0 10px}
.setSec small{color:var(--muted)}
#frTip{color:var(--muted);font-size:12px;margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
@media (max-width:700px){.setBody{flex-direction:column}#setNav{flex-direction:row;width:auto;border-right:0;border-bottom:1px solid var(--line)}}
#side .row{gap:6px}#side .row button{gap:4px;padding:0 6px;font-size:13px}#side .row button .i{width:16px;height:16px}
@media (max-width:900px){#side{width:248px;padding-left:10px;padding-right:10px}}
#pb{flex-wrap:wrap;row-gap:6px}#pb #scrub{min-width:120px}
.setSec .chk{flex-wrap:wrap}.setSec .chk small{flex-basis:100%;padding-left:26px}

/* r23 selected frame: obvious */
#strip{padding:8px 6px 10px}
.fth{opacity:.55;transition:opacity .15s,transform .15s,box-shadow .15s}
.fth:hover{opacity:.85}
.fth.sel,body.light .fth.sel{opacity:1;transform:translateY(-3px) scale(1.06);z-index:2;border:3px solid #3b9bff!important;background:var(--bg)!important;box-shadow:0 0 0 1px rgba(59,155,255,.9),0 0 14px 3px rgba(59,155,255,.75),0 0 30px 6px rgba(59,155,255,.35)!important}
body.light .fth.sel{border-color:#1d6fe8!important;box-shadow:0 0 0 1px rgba(29,111,232,.9),0 0 12px 3px rgba(29,111,232,.55),0 0 26px 6px rgba(29,111,232,.25)!important}
.fth.sel span{background:#2f80ff;color:#fff;border-color:#2f80ff;font-size:12px;padding:2px 7px}
.tmPhRow .tmPhT{background:transparent;border:none}
#tmPh{margin:0;accent-color:#3b9bff}
.tmPhTxt{font-size:11px;color:var(--muted);margin:-4px 0 6px 2px}
/* r24 timeline */
#tl{flex:1;min-width:200px;display:flex;flex-direction:column;gap:3px}
#tlTrack{position:relative;height:30px;border-radius:8px;background:var(--bg);border:1px solid var(--line2);overflow:hidden;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}
.tlSeg{position:absolute;top:6px;bottom:6px;background:rgba(59,155,255,.28);border-radius:3px;transition:background .15s,opacity .15s}
.tlSeg.hi{background:rgba(59,155,255,.6);box-shadow:0 0 10px rgba(59,155,255,.6)}
.tlSeg.out{opacity:.35;background:repeating-linear-gradient(45deg,rgba(148,163,184,.35) 0 4px,rgba(148,163,184,.12) 4px 8px)}
#tl.zoomed #tlTrack{border-color:#3b9bff;box-shadow:0 0 0 1px rgba(59,155,255,.6),0 0 12px rgba(59,155,255,.45)}
.tlTick{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:rgba(226,232,240,.75);pointer-events:none}
body.light .tlTick{background:rgba(30,41,59,.6)}
.tlTick span{position:absolute;left:4px;top:0;font-size:10px;font-weight:700;color:var(--muted)}
#tlHead{position:absolute;top:-1px;bottom:-1px;width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 8px #3b9bff,0 0 2px #000;pointer-events:none;border-radius:2px}
body.light #tlHead{background:#1d4ed8}
#tlBar{display:flex;align-items:center;gap:6px;min-height:26px}
#tlChip{font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--elev);border:1px solid var(--line);color:var(--text)}
#tl.zoomed #tlChip{background:#2f80ff;border-color:#2f80ff;color:#fff}
#tl.editing #tlChip{background:#f59e0b;border-color:#f59e0b;color:#111}
#tlBar button{height:26px;padding:0 9px;font-size:12px}
#editBtn.on{background:#2f80ff!important;color:#fff!important}
body.editing #stage{box-shadow:inset 0 0 0 3px #3b9bff,inset 0 0 26px rgba(59,155,255,.55)}
#tl.editing #tlTrack{border-color:#3b9bff;box-shadow:0 0 0 2px rgba(59,155,255,.9),0 0 16px rgba(59,155,255,.7)}
#tlBar [hidden]{display:none!important}
.tlTick span{color:var(--text);opacity:.85;font-size:11px}

/* r27 styled tooltips + frame chip */
#fbTip{position:fixed;z-index:9999;pointer-events:none;max-width:260px;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:600;line-height:1.3;color:#eaf2ff;background:#0d1a33;border:1px solid #2f80ff;box-shadow:0 0 0 1px rgba(47,128,255,.35),0 0 14px rgba(47,128,255,.55);white-space:normal}
#fbTip[hidden]{display:none}
button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
#tlBar button#tlChip{height:auto;min-height:0;gap:0;white-space:normal;text-align:left;flex:0 1 auto;min-width:0;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--elev);border:1px solid var(--line);color:var(--text);opacity:1;cursor:default}
#tlBar button#tlChip.go{cursor:pointer;border-color:#2f80ff}
#tl.zoomed #tlChip{background:#2f80ff;border-color:#2f80ff;color:#fff}
#tl.editing #tlChip{background:#f59e0b;border-color:#f59e0b;color:#111}
#tl{min-width:330px}
/* r29 Lock all + Guards picker */
#top>button.lkall{min-height:36px;padding:0 10px;gap:6px;border-color:transparent;background:transparent;color:var(--muted);font-size:13px;white-space:nowrap}
#top>button.lkall:hover{background:var(--hover);color:var(--text)}
#bubble .bguard{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);padding:0 4px;min-height:44px}
#bubble .bguard select{min-height:34px;font-size:13px;border-radius:var(--r-sm);border:1px solid var(--line2);background:var(--elev);color:var(--text);padding:0 4px;max-width:150px}

.rosterBig{width:100%;padding:14px;font-size:16px;font-weight:800;letter-spacing:.12em}
.rtip{display:block;text-align:center;margin-top:6px;color:var(--muted);font-size:11.5px}
.av.sh{background:#0a0d16;position:relative}.av.sh .tint{position:absolute;inset:0}.av.sh img{position:absolute;left:50%;top:0;width:240%;transform:translate(-50%,6%);object-fit:contain;filter:drop-shadow(0 0 1.5px rgba(255,255,255,.8))}
#rosterGrid .tcw{display:flex;flex-direction:column;align-items:center;gap:4px}#rosterGrid .tcn{font:600 12px var(--font);color:#fff;text-align:center}

#frBtn svg{transition:transform .25s ease;transform:rotate(-90deg)}body.framesOff #frBtn svg{transform:rotate(90deg)}
#strip{transition:max-height .28s ease,opacity .2s ease,padding .28s ease;max-height:400px}body.framesOff #strip{padding-top:0;padding-bottom:0}
body.framesOff #strip{max-height:0;opacity:0;pointer-events:none}body.framesOff #timing{display:none}
#side,#rosterGrid,#strip,#timing,#tcForm,#tcPick .th,.scroll,*{scrollbar-width:thin;scrollbar-color:rgba(160,175,210,.35) transparent}
::-webkit-scrollbar{width:6px;height:6px;background:transparent}
::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-button{display:none;width:0;height:0}
::-webkit-scrollbar-thumb{background:rgba(160,175,210,.32);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:rgba(190,205,240,.6)}
::-webkit-scrollbar-corner{background:transparent}
body.light *{scrollbar-color:rgba(0,0,0,.25) transparent}body.light ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.22)}body.light ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.4)}
#side .rosterBig{color:rgb(var(--glow-c));text-shadow:0 0 6px rgba(var(--glow-c),.6),0 0 16px rgba(var(--glow-c),.3)}body.light #side .rosterBig{text-shadow:none}

/* r67 cloud accounts */
.cloudBtn{min-height:36px;padding:0 12px;font-weight:600}#userBtn .rb{font-size:10px;padding:1px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);margin-left:6px;text-transform:uppercase;letter-spacing:.05em}
.fbm{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:12px}
.fbm>.dlg{background:var(--panel);color:var(--text);border:1px solid rgba(var(--glow-c),.55);box-shadow:0 0 0 1px rgba(var(--glow-c),.25),0 0 24px rgba(var(--glow-c),.25),var(--shadow);border-radius:12px;width:min(560px,96vw);max-height:88vh;overflow:auto;padding:16px 18px}
.dlg h3{margin:0 0 10px;font-size:16px;display:flex;align-items:center;gap:8px}.dlg h3 .sp{flex:1}.dlg h4{margin:14px 0 6px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--glow-c),1)}
.dlg .pr{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;margin-bottom:5px}.dlg .pr.cur{border-color:rgba(var(--glow-c),.8)}
.dlg .pr b{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dlg .pr small{color:var(--muted)}
.dlg .pr button{min-height:34px;padding:0 10px;font-size:13px}
.dlg label{display:block;font-size:12px;color:var(--muted);margin:8px 0 3px}.dlg input,.dlg select{width:100%;box-sizing:border-box;font-size:16px;padding:8px;border-radius:8px}
.dlg .row{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}.dlg .err{color:var(--danger);font-size:13px;min-height:18px;margin-top:6px}
.dlg .muted{color:var(--muted);font-size:13px}

.rchk{display:inline-flex;gap:8px;flex-wrap:wrap}.rchk label{display:inline-flex!important;align-items:center;gap:3px;margin:0!important;font-size:12px;color:var(--text)}.rchk input{width:auto!important}
.pinv{display:inline-flex;align-items:center;gap:2px}.pinv code{font-size:12px;min-width:44px;text-align:right;color:var(--muted)}.pinv .ib{width:30px;min-height:30px}
#lgEye.on,.pinv .ib.on{color:var(--accent)}

.labBadge{margin-left:8px;font-size:10px;font-weight:800;letter-spacing:.12em;padding:2px 7px;border-radius:6px;background:#f59e0b;color:#111;box-shadow:0 0 10px rgba(245,158,11,.6)}
#lkLanes{position:relative;margin-top:2px}#lkLanes .ln{position:relative;height:18px;margin:2px 0;border-radius:4px;background:rgba(255,255,255,.04);opacity:.35;transition:opacity .15s}#lkLanes .ln.on,#lkLanes.all .ln{opacity:1}
#lkLanes .ln .lb{position:absolute;left:0;top:1px;z-index:1;font:700 10px var(--font);padding:2px 4px;border-radius:4px;color:#fff;white-space:nowrap}
#lkLanes .ln .bar{position:absolute;inset:8px 0 auto 0;height:2px;border-radius:2px;opacity:.6}
#lkLanes .mk{position:absolute;top:0;width:18px;height:18px;margin-left:-9px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:grab;touch-action:none;color:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.4)}
#lkLanes .mk.dr{cursor:grabbing;transform:scale(1.2)}
#lkTools{display:flex;justify-content:flex-end;margin-top:2px}#lkTools button{min-height:24px;font-size:11px;padding:0 8px}
#lkBadges{position:fixed;inset:0;pointer-events:none;z-index:5}#lkBadges i{position:absolute;font-style:normal;font-size:11px;line-height:1;padding:2px 3px;border-radius:6px;background:rgba(10,14,24,.85);transform:translate(-50%,-50%)}

