
:root {
  --bg:#08090a; --panel:#111214; --card:#17181b; --card-hi:#1e1f23;
  --border:transparent; --line:#26282d; --border-hi:#34343a;
  --ctl:color-mix(in srgb, var(--text) 9%, var(--card-hi));
  --ctl-hi:color-mix(in srgb, var(--text) 15%, var(--card-hi));
  --text:#f7f8f8; --muted:#8a8f98; --gray:#62666d;
  --brand:#ffffff;
  --accent:#7170ff;          
  --accent-2:#8b5cf6;        
  --accent-soft:rgba(113,112,255,.14);
  --green:#34d399; --amber:#fbbf24; --red:#f87171;
  --r:4px; --r-sm:4px; --r-pill:999px;
  --pad:14px;                
  --t-xs:12px;               
  --t-sm:13px;               
  --t-md:14px;               
  --t-lg:16px;               
  --t-xl:22px;               
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px;
  --rail-l:228px; --rail-r:330px;
  --sb-size:14px;
  --sb-track:var(--card-hi);
  --sb-edge:var(--border-hi);
  --sb-thumb:var(--muted);
  --sb-thumb-hi:var(--text);
  --sb-arrow:var(--muted);
  --ui: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
        "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code",
          Menlo, Consolas, monospace;
}
* { box-sizing:border-box; }
html, body { height:100%; }
body {
  margin:0; background:var(--bg); color:var(--text);
  font:14px/1.45 var(--ui); -webkit-font-smoothing:antialiased;
  display:grid; grid-template-rows:1fr auto;
  grid-template-columns:var(--rail-l) minmax(0,1fr) var(--rail-r);
  grid-template-areas:"nav main plug" "nav bar bar";
}
body[data-screen="bot"] { }
body:not([data-screen="bot"]) {
  grid-template-columns:var(--rail-l) minmax(0,1fr);
  grid-template-areas:"nav main";
}
body:not([data-screen="bot"]) .plug,
body:not([data-screen="bot"]) .bar { display:none; }
body[data-bar="off"] .bar { display:none; }
body[data-bar="off"][data-screen="bot"] { grid-template-areas:"nav main plug"; }
body[data-bar="off"][data-plugbar="off"][data-screen="bot"] {
  grid-template-columns:var(--rail-l) minmax(0,1fr);
  grid-template-areas:"nav main";
}
body:not([data-screen="bot"]),
body[data-bar="off"] { grid-template-rows:1fr; }
input:where(:not([type=checkbox], [type=radio], [type=range], [type=color])),
select, textarea {
  background:var(--bg); border:1px solid var(--border); border-radius:var(--r-sm);
  color:var(--text); padding:var(--s-2) var(--s-3);
  font:var(--t-md)/1.4 var(--ui); outline:none;
}
input:where(:not([type=checkbox], [type=radio], [type=range], [type=color])):focus,
select:focus, textarea:focus { border-color:var(--accent); }
input::placeholder, textarea::placeholder { color:var(--gray); }
body[data-plugbar="off"][data-screen="bot"] {
  grid-template-columns:var(--rail-l) minmax(0,1fr);
  grid-template-areas:"nav main" "nav bar";
}
body[data-plugbar="off"] .plug { display:none; }
body[data-plugbar="off"][data-screen="bot"] .plugTab { display:flex; }
.dsBtn { display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; margin-top:8px; }
.dsBtn svg { width:15px; height:15px; fill:currentColor; flex:none; }
::-webkit-scrollbar { width:var(--sb-size); height:var(--sb-size); }
::-webkit-scrollbar-track { background:var(--sb-track); }
::-webkit-scrollbar-track:vertical { box-shadow:inset 1px 0 0 var(--sb-edge); }
::-webkit-scrollbar-track:horizontal { box-shadow:inset 0 1px 0 var(--sb-edge); }
::-webkit-scrollbar-corner { background:var(--sb-track); }
::-webkit-scrollbar-thumb { background:var(--sb-thumb); border-radius:var(--r-sm);
  border:3px solid transparent; background-clip:padding-box; min-height:32px; min-width:32px; }
::-webkit-scrollbar-thumb:hover { background-color:var(--sb-thumb-hi); }
::-webkit-scrollbar-thumb:active { background-color:var(--accent); }
::-webkit-scrollbar-button:single-button { display:block; background-color:var(--sb-track);
  width:var(--sb-size); height:var(--sb-size); background-repeat:no-repeat;
  background-position:center; background-size:8px 5px; }
::-webkit-scrollbar-button:vertical:start:increment,
::-webkit-scrollbar-button:vertical:end:decrement,
::-webkit-scrollbar-button:horizontal:start:increment,
::-webkit-scrollbar-button:horizontal:end:decrement { display:none; }
::-webkit-scrollbar-button:vertical { box-shadow:inset 1px 0 0 var(--sb-edge); }
::-webkit-scrollbar-button:horizontal { box-shadow:inset 0 1px 0 var(--sb-edge); }
::-webkit-scrollbar-button:vertical:decrement {
  background-image:conic-gradient(from 141deg at 50% 0, var(--sb-arrow) 0 78deg, transparent 0); }
::-webkit-scrollbar-button:vertical:increment {
  background-image:conic-gradient(from -39deg at 50% 100%, var(--sb-arrow) 0 78deg, transparent 0); }
::-webkit-scrollbar-button:horizontal { background-size:5px 8px; }
::-webkit-scrollbar-button:horizontal:decrement {
  background-image:conic-gradient(from 51deg at 0 50%, var(--sb-arrow) 0 78deg, transparent 0); }
::-webkit-scrollbar-button:horizontal:increment {
  background-image:conic-gradient(from 231deg at 100% 50%, var(--sb-arrow) 0 78deg, transparent 0); }
::-webkit-scrollbar-button:hover { background-color:var(--card-hi); }
@supports (-moz-appearance:none) {
  * { scrollbar-color:var(--sb-thumb) var(--sb-track); }
}
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:6px; }
.col { min-width:0; flex:1; }
.trunc { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scenHead b, .runRow .nm, .userRow .nm, .swItem .nm, .me .nm,
.bar .nm, .bar .op { min-width:0; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; }
.nav { grid-area:nav; background:color-mix(in srgb, var(--panel) 72%, var(--bg));
  border-right:1px solid var(--border);
  display:flex; flex-direction:column; min-height:0; }
.logo { display:block; width:100%; height:auto; }
.brand { display:flex; align-items:center; gap:10px; padding:16px 16px 12px; }
.mark { flex:none; width:52px; color:var(--text); display:grid; place-items:center; }
.mark .logo { width:52px; }
.brand b { font-size:var(--t-lg); font-weight:650; letter-spacing:-.2px; }
.brand small { color:var(--gray); font-size:var(--t-xs); font-family:var(--mono); }
.chev { color:var(--gray); font-size:var(--t-xs); }
.navScroll { flex:1; overflow-y:auto; padding:0 12px 12px; min-height:0; }
.navLabel { font-size:var(--t-xs); font-weight:600; color:var(--gray); letter-spacing:.06em;
  text-transform:uppercase; padding:14px 8px 7px; }
.navItem { display:flex; align-items:center; gap:11px; padding:8px 10px;
  border-radius:var(--r-sm); color:var(--muted); cursor:pointer; user-select:none;
  font-size:var(--t-md); font-weight:500; position:relative;
  transition:background .12s,color .12s; }
.navItem:hover { background:var(--card); color:var(--text); }
.navItem.on { background:var(--card); color:var(--text); font-weight:600;
  box-shadow:inset 0 0 0 1px var(--border); }
.navItem.on::before { content:""; position:absolute; left:-12px; top:50%;
  translate:0 -50%; width:3px; height:17px; border-radius:0 3px 3px 0;
  background:linear-gradient(var(--accent),var(--accent-2)); }
.navItem svg { width:16px; height:16px; flex:none; stroke:currentColor; fill:none;
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.navItem .count { margin-left:auto; font:500 var(--t-xs)/1 var(--mono); color:var(--gray);
  background:var(--bg); border:1px solid var(--border); padding:3px 6px; border-radius:6px; }
.navItem .count.alert { color:#0b0d0e; background:var(--amber);
  border-color:var(--amber); font-weight:700; }
.pill { margin-left:auto; font-size:var(--t-xs); font-weight:700; padding:2.5px 6px;
  border-radius:5px; background:var(--accent-soft); color:var(--accent); }
.navFoot { min-width:0; border-top:1px solid var(--border); padding:10px 12px; }
.me { display:flex; align-items:center; gap:10px; padding:7px 8px;
  border-radius:var(--r-sm); cursor:pointer; }
.me:hover { background:var(--card); }
.me .nm { font-size:var(--t-md); font-weight:600; }
.me .sub { font-size:var(--t-xs); color:var(--muted); }
.ava { width:26px; height:26px; border-radius:50%; flex:none; position:relative;
  display:grid; place-items:center; font:700 var(--t-xs)/1 var(--ui);
  color:rgba(255,255,255,.92); text-shadow:0 1px 2px rgba(0,0,0,.45);
  overflow:visible; }
.ava > span { position:absolute; inset:0; display:grid; place-items:center; }
.ava > img { position:absolute; inset:0; width:100%; height:100%; border-radius:50%;
  image-rendering:pixelated; opacity:0; transition:opacity .18s; }
.ava > img.ready { opacity:1; }
.ava::after { content:""; position:absolute; inset:-3px; border-radius:50%;
  border:1.5px solid var(--ring,transparent); }
.ava.sq, .ava.sq > img { border-radius:7px; }
.ava.sq::after { border-radius:var(--r-sm); }
.ava.lg { width:34px; height:34px; font-size:var(--t-sm); }
.ava.xl { width:46px; height:46px; font-size:var(--t-lg); }
.ava.xl::after { inset:-4px; border-width:2px; }
.ava.pulse::after { animation:ring 2.4s ease-in-out infinite; }
@keyframes ring { 0%,100% { opacity:1; } 50% { opacity:.28; } }
body[data-rings="off"] .ava.pulse::after { animation:none; }
.main { grid-area:main; display:flex; flex-direction:column; min-width:0; min-height:0; }
.viewAs { display:flex; align-items:center; gap:var(--s-3); flex:none;
  padding:var(--s-2) var(--s-5); background:var(--card);
  border-bottom:1px solid var(--amber); font-size:var(--t-sm); }
.viewAs[hidden] { display:none; }
.viewAs b { color:var(--amber); font-weight:650; }
.viewAs .spacer { flex:1; }
.head { display:flex; align-items:center; gap:var(--s-4); padding:var(--s-3) var(--s-5);
  border-bottom:1px solid var(--border); }
.head h1 { margin:0; font-size:var(--t-xl); font-weight:650; letter-spacing:-.2px; }
.head .sub { font-size:var(--t-sm); color:var(--muted); font-variant-numeric:tabular-nums; }
.spacer { flex:1; }
.back { width:32px; height:32px; border-radius:var(--r-sm); flex:none; display:grid;
  place-items:center; border:1px solid var(--border); background:var(--card);
  color:var(--muted); cursor:pointer; transition:color .12s,background .12s; }
.back:hover { color:var(--text); background:var(--card-hi); }
.back svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; }
.switcher { position:relative; }
.swBtn { display:flex; align-items:center; gap:11px; padding:5px 9px 5px 5px;
  border-radius:var(--r-sm); border:1px solid transparent; background:none;
  cursor:pointer; color:inherit; font:inherit; text-align:left;
  transition:background .12s,border-color .12s; }
.swBtn:hover { background:var(--card); border-color:var(--border); }
.swBtn .chev { transition:rotate .16s; }
.switcher.open .swBtn { background:var(--card); border-color:var(--border-hi); }
.switcher.open .swBtn .chev { rotate:180deg; }
.swMenu { position:absolute; top:calc(100% + 6px); left:0; z-index:40; width:308px;
  background:var(--panel); border:1px solid var(--border-hi); border-radius:var(--r);
  box-shadow:0 12px 32px rgba(0,0,0,.55); padding:6px; display:none;
  max-height:70vh; overflow-y:auto; }
.switcher.open .swMenu { display:block; }
.swMenu .lbl { font-size:var(--t-xs); font-weight:600; color:var(--gray);
  letter-spacing:.06em; text-transform:uppercase; padding:8px 9px 6px; }
.swItem { display:flex; align-items:center; gap:10px; padding:7px 9px;
  border-radius:var(--r-sm); cursor:pointer; }
.swItem:hover { background:var(--card); }
.swItem.on { background:var(--card); box-shadow:inset 0 0 0 1px var(--border); }
.swItem .nm { font-size:var(--t-md); font-weight:600; }
.swItem .st { font-size:var(--t-xs); color:var(--muted); overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.swItem .tick { color:var(--accent); font-size:var(--t-md); }
.swMenu .all { border-top:1px solid var(--line); margin-top:5px; padding-top:5px; }
.state { display:inline-flex; align-items:center; gap:6px; flex:none;
  min-width:0; max-width:50%;
  padding:var(--s-1) 9px var(--s-1) 7px;
  border-radius:var(--r-pill); font:600 var(--t-xs)/1.45 var(--ui);
  border:1px solid var(--border); background:var(--card); }
.state span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.state i { width:6px; height:6px; border-radius:50%; background:currentColor; }
.state.live { color:var(--green); } .state.wait { color:var(--amber); }
.state.down { color:var(--red); }   .state.idle { color:var(--muted); }
.btn { border:1px solid var(--border); background:var(--card); color:var(--text);
  padding:var(--s-2) var(--s-3); border-radius:var(--r-sm);
  font:550 var(--t-md)/1.2 var(--ui); cursor:pointer;
  display:inline-flex; align-items:center; gap:var(--s-2);
  transition:background .12s,border-color .12s; }
.btn:hover { background:var(--card-hi); border-color:var(--border-hi); }
.btn.primary, .btn.accent { background:var(--brand); color:var(--bg); border-color:var(--brand); font-weight:650; }
.btn.primary:hover, .btn.accent:hover { background:color-mix(in srgb, var(--brand) 88%, var(--bg));
  border-color:color-mix(in srgb, var(--brand) 88%, var(--bg)); }
.btn.sel { background:var(--accent-soft); border-color:var(--accent); color:var(--text); }
.btn.sel:hover { background:var(--accent-soft); border-color:var(--accent); }
.btn.danger:hover { color:var(--red); border-color:rgba(248,113,113,.4); }
.btn.sm { padding:var(--s-1) var(--s-2); font-size:var(--t-sm); }
.btn svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.scroll { flex:1; overflow-y:auto; padding:var(--s-4) var(--s-5) var(--s-5); min-height:0; }
.wip { min-height:0; }
.tools { display:flex; align-items:center; gap:var(--s-2); margin-bottom:var(--s-4);
  flex-wrap:wrap; }
.search { flex:1; min-width:200px; position:relative; }
.search input { width:100%; background:var(--card); border:1px solid var(--border);
  border-radius:var(--r-sm); color:var(--text); padding:var(--s-2) var(--s-3) var(--s-2) 34px;
  font:var(--t-md)/1.45 var(--ui); outline:none; }
.search input:focus { border-color:var(--border-hi); }
.search input::placeholder { color:var(--gray); }
.search svg { position:absolute; left:11px; top:50%; translate:0 -50%; width:15px;
  height:15px; stroke:var(--gray); fill:none; stroke-width:1.9; }
.chips { display:flex; gap:var(--s-1); flex-wrap:wrap; }
.chip { padding:var(--s-1) var(--s-3); border-radius:var(--r-pill);
  border:1px solid var(--border); background:var(--card); color:var(--muted);
  font:550 var(--t-sm)/1.5 var(--ui); cursor:pointer; user-select:none;
  display:inline-flex; align-items:center; gap:var(--s-2);
  transition:background .12s,color .12s,border-color .12s; }
.chip:hover { color:var(--text); border-color:var(--border-hi); }
.chip.on { background:var(--text); color:var(--bg); border-color:var(--text); font-weight:650; }
.chip b { font:600 var(--t-xs)/1 var(--mono); opacity:.6; }
.cards { display:grid; gap:var(--s-3);
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); align-content:start; }
.bc { background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  padding:var(--pad); cursor:pointer; display:grid; gap:var(--s-2);
  transition:background .12s,border-color .12s; }
.bc:hover { background:var(--card-hi); border-color:var(--border-hi); }
.bc.needs { border-color:rgba(251,191,36,.38); }
.bc.dead { border-color:rgba(248,113,113,.32); }
.bc { min-width:0; overflow:hidden; }
.bc .bcHead { display:flex; align-items:center; gap:var(--s-2); min-width:0; }
.bc .meta { flex:1; min-width:0; font:var(--t-xs)/1.4 var(--mono); color:var(--gray);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bc .bcIcons { display:flex; align-items:center; gap:3px; flex:none; margin-left:auto; }
.bcI { --ic:var(--muted); position:relative; width:22px; height:22px; flex:none;
  display:grid; place-items:center; border-radius:var(--r-sm);
  border:1px solid transparent; color:var(--gray); opacity:.5; }
.bcI svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.bcI.on, .bcI.ok, .bcI.warn, .bcI.bad { opacity:1; color:var(--ic);
  background:color-mix(in srgb, var(--ic) 13%, transparent);
  border-color:color-mix(in srgb, var(--ic) 38%, transparent); }
.bcI.ok   { --ic:var(--green); }
.bcI.warn { --ic:var(--amber); }
.bcI.bad  { --ic:var(--red); }
.bcI.mod.tone-green  { --ic:var(--green); }
.bcI.mod.tone-blue   { --ic:#60a5fa; }
.bcI.mod.tone-violet { --ic:#a78bfa; }
.bcI.mod.tone-amber  { --ic:var(--amber); }
.bcI.re.on, .bcI.idle.on { --ic:var(--text); }
.bcI.ping.ok { background:none; border-color:transparent; }
.bcI b { position:absolute; right:-4px; bottom:-4px; min-width:13px; height:13px; padding:0 3px;
  border-radius:7px; background:var(--card-hi); border:1px solid var(--border-hi);
  font:700 9px/11px var(--mono); color:var(--ic); text-align:center; }
.bcI.bad b { background:var(--red); border-color:var(--red); color:#fff; }
.bcI.radar.bad { animation:bcPulse 1.6s ease-in-out infinite; }
@keyframes bcPulse { 50% { box-shadow:0 0 0 3px color-mix(in srgb, var(--red) 25%, transparent); } }
@media (prefers-reduced-motion:reduce) { .bcI.radar.bad { animation:none; } }
.bc .bcBody { display:flex; align-items:flex-start; gap:var(--s-2); min-width:0; }
.bc .st { width:15px; height:15px; flex:none; margin-top:2px;
  fill:none; stroke:currentColor; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.bc .st.live   { color:var(--green); }
.bc .st.wait   { color:var(--amber); }
.bc .st.down   { color:var(--red); }
.bc .st.busy   { color:var(--accent); }
.bc .st.paused,
.bc .st.idle   { color:var(--gray); }
.bc .bcBody .col { flex:1; min-width:0; }
.bc .nm { font:650 var(--t-md)/1.35 var(--ui); letter-spacing:-.1px; color:var(--text); }
.bc .now { font:var(--t-sm)/1.45 var(--ui); color:var(--muted); min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bc .now.bad { color:var(--amber); }
.bc .bcFoot { display:flex; align-items:center; gap:var(--s-1); min-width:0; flex-wrap:wrap; }
.bc .bcActs { display:flex; align-items:center; gap:var(--s-1);
  flex:none; flex-wrap:nowrap; margin-left:auto; }
.bcTag { display:inline-flex; align-items:center; gap:5px; flex:none;
  max-width:100%; padding:2px 7px; border-radius:var(--r-sm);
  border:1px solid var(--border); background:var(--card-hi); color:var(--muted);
  font:500 var(--t-xs)/1.5 var(--mono);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bcTag svg { width:11px; height:11px; flex:none; fill:none; stroke:currentColor;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round; color:var(--gray); }
.bcTag i { width:6px; height:6px; border-radius:50%; flex:none; background:var(--tone, var(--gray)); }
.bcTag.up { --tone:var(--green); color:var(--muted); }
.bcTag.re.warn { color:var(--amber); }
.bcTag.re.warn svg { color:var(--amber); }
.bcTag.ping.ok   { --tone:var(--green); }
.bcTag.ping.warn { --tone:var(--amber); color:var(--amber); }
.bcTag.ping.bad  { --tone:var(--red);   color:var(--red); }
.bcTag.mod { color:var(--muted); font-family:var(--ui); font-weight:600; }
.bcTag.mod[data-tone="green"]  { --tone:var(--green); }
.bcTag.mod[data-tone="blue"]   { --tone:#60a5fa; }
.bcTag.mod[data-tone="violet"] { --tone:#a78bfa; }
.bcTag.mod[data-tone="amber"]  { --tone:var(--amber); }
.bcTag.mod[data-tone="gray"]   { --tone:var(--gray); }
.bcTag.hub.warn { --tone:var(--amber); color:var(--amber);
   font-family:var(--ui); font-weight:600; }
.bcTag.idle.warn { color:var(--amber); }
.bcTag.idle.warn svg { color:var(--amber); }
.views { display:flex; gap:3px; padding:9px 20px 0; }
.view { padding:7px 12px; border-radius:var(--r-sm) var(--r-sm) 0 0; font-size:var(--t-md);
  font-weight:550; color:var(--muted); cursor:pointer; user-select:none;
  border:1px solid transparent; border-bottom:none; position:relative; top:1px; }
.view:hover { color:var(--text); }
.view.on { color:var(--text); background:var(--panel); border-color:var(--border);
  font-weight:600; }
.pane { flex:1; margin:0 20px; border:1px solid var(--border);
  border-radius:0 var(--r) var(--r) var(--r); background:var(--panel);
  overflow:hidden; display:none; flex-direction:column; min-height:0; }
.pane.on { display:flex; }
#pane-console { position:relative; }
#pane-console.on { display:grid; grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto minmax(0,1fr) auto; }
#pane-console > .logFind { grid-column:1; grid-row:1; }
#pane-console > .logWrap { grid-column:1; grid-row:2; }
#pane-console > .cmd { grid-column:1 / -1; grid-row:3; position:relative; z-index:22; background:var(--panel); }
.invDock { --cell:34px; grid-column:2; grid-row:1 / 3; display:none; min-height:0;
  width:calc(9 * var(--cell) + 8 * 4px + 2 * 12px + 2 * 7px);
  margin:var(--s-2) 0 0 var(--s-2); border-radius:var(--r); background:var(--card); overflow:hidden; }
#pane-console.docked .invDock { display:flex; animation:dockIn .16s ease-out; }
@keyframes dockIn { from { opacity:0; transform:translateX(16px); } to { opacity:1; transform:none; } }
.invDock .winWrap { flex:1; min-height:0; padding:12px; overflow-y:auto; overscroll-behavior:contain;
  display:flex; flex-direction:column; gap:10px; }
.dockHead { display:flex; align-items:center; gap:var(--s-2); min-height:32px; flex:none; }
.dockHead b { font-size:var(--t-lg); font-weight:650; }
.dockHead .sz { font-size:var(--t-sm); color:var(--muted); white-space:nowrap; }
.invDock .winStack { width:100%; flex:none; gap:10px; }
.invDock .winBox { background:transparent; }
.invDock .winBox .winBody { padding:0; }
.invDock .winBox.server { padding:6px; box-shadow:none; border-radius:var(--r-sm); }
.invDock .winBox.server .winTop { padding:2px 2px 8px; min-height:0; }
.invDock .winHint { flex:none; margin:0; padding:0; border:0; background:none; font-size:var(--t-xs); line-height:1.45; color:var(--gray); }
.invDock .winHint.act { color:var(--text); }
.invDock .winHint.withWin:not(.act) { display:none; }
.dockActs { display:flex; gap:var(--s-2); }
.dockMore { flex:none; display:grid; gap:10px; }
.dockMore > summary { cursor:pointer; font-size:var(--t-sm); font-weight:550; color:var(--muted); padding:4px 0; }
.dockMore > summary:hover { color:var(--text); }
.dockMore[open] { gap:10px; }
.dockMore .winSumList { grid-template-columns:minmax(0,1fr); }
.dockMore .reqLog { max-height:220px; }
.dockMore .winExpWarn { margin:0; }
body[data-dock="squeeze"][data-plugbar="off"][data-screen="bot"] .plugTab { display:none; }
@media (min-width:761px) {
  body[data-plugbar="off"][data-screen="bot"]:not([data-dock="squeeze"]) #pane-console.docked .invDock { margin-right:40px; }
}
#invBtn svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.logWrap { flex:1; overflow-y:auto; padding:12px 4px 12px 0; min-height:0; }
.log { font:var(--t-md)/1.65 var(--mono); display:grid;
  grid-template-columns:max-content 1fr; column-gap:14px; }
.log dt { color:var(--gray); padding-left:16px; white-space:nowrap; }
.log dd { position:relative; margin:0 0 0 -10px; padding:0 16px 0 62px;
  color:#c3cacf; border-left:2px solid transparent; }
.log dd.ok { color:var(--green); } .log dd.warn { color:var(--amber); }
.log dd.err { color:var(--red); } .log dd.chat { color:var(--muted); }
.log dd b { color:var(--text); font-weight:600; }
@media (max-width:760px) {
  .log { column-gap:8px; }
  .log dt { padding-left:6px; }
  .log dd { padding-left:58px; padding-right:8px; }
}
.logFind { display:flex; align-items:center; gap:var(--s-2);
  padding:var(--s-2) var(--s-3); border-bottom:1px solid var(--border);
  min-width:0; }
.logFind .search { flex:1; min-width:0; }
.logFound { font:var(--t-xs)/1.4 var(--mono); color:var(--gray); flex:none;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:40%; }
.cmd { border-top:1px solid var(--border); padding:10px 12px; display:flex; gap:8px; }
.cmd input { flex:1; min-width:0; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); color:var(--text); padding:9px 12px; font:var(--t-md) var(--mono);
  outline:none; }
.cmd input:focus { border-color:var(--border-hi); }
.cmd input::placeholder { color:var(--gray); }
.cmd { position:relative; }
.cmdHints { position:absolute; left:12px; right:12px; bottom:calc(100% - 4px); z-index:30;
  max-height:260px; overflow-y:auto; background:var(--panel); border:1px solid var(--border-hi);
  border-radius:var(--r-sm); box-shadow:0 12px 32px rgba(0,0,0,.5); padding:4px; }
.cmdHints[hidden] { display:none; }
.cmdHint { display:flex; align-items:baseline; gap:var(--s-3); padding:6px 10px; border-radius:6px;
  cursor:pointer; min-width:0; }
.cmdHint .t { font:var(--t-sm) var(--mono); color:var(--text); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; min-width:0; }
.cmdHint .h { margin-left:auto; flex:none; font-size:var(--t-xs); color:var(--gray); }
.cmdHint.on, .cmdHint:hover { background:var(--card-hi); }
.qk { position:fixed; inset:0; z-index:160; background:rgba(4,5,6,.6); display:grid;
  justify-items:center; align-items:start; padding:12vh 16px 16px; }
.qk[hidden] { display:none; }
.qkBox { width:min(560px,100%); background:var(--panel); border:1px solid var(--border-hi);
  border-radius:var(--r); box-shadow:0 20px 60px rgba(0,0,0,.6); overflow:hidden;
  display:flex; flex-direction:column; max-height:70vh; }
.qkIn { border:0; border-bottom:1px solid var(--border); background:transparent; color:var(--text);
  font:var(--t-lg) var(--ui); padding:14px 16px; outline:none; }
.qkIn::placeholder { color:var(--gray); }
.qkList { overflow-y:auto; padding:6px; min-height:0; }
.qkGroup { font-size:var(--t-xs); color:var(--gray); padding:8px 10px 4px; }
.qkRow { display:flex; align-items:center; gap:var(--s-3); padding:8px 10px; border-radius:6px;
  cursor:pointer; min-width:0; }
.qkRow.on, .qkRow:hover { background:var(--card-hi); }
.qkLabel { font-size:var(--t-md); color:var(--text); }
.qkSub { margin-left:auto; flex:none; font-size:var(--t-xs); color:var(--muted); }
.qkEmpty { padding:16px; font-size:var(--t-sm); color:var(--muted); }
.qkFoot { border-top:1px solid var(--border); padding:8px 14px; font-size:var(--t-xs); color:var(--gray); }
.qkFoot b { color:var(--muted); font-weight:600; }
.invPad, .setPad { flex:1; min-height:0; padding:var(--s-4) var(--s-5) var(--s-5); overflow-y:auto; }
.winCard { border:1px solid var(--border); border-radius:var(--r); background:var(--card);
  padding:10px 12px 12px; display:grid; gap:10px; min-width:0; }
.winCardHead { display:flex; align-items:center; gap:10px; min-height:26px; }
.winCardHead b { font-size:var(--t-md); font-weight:650; }
.winCardHead .btn { margin-left:auto; }
.winCtlRow { display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-size:var(--t-sm); color:var(--muted); }
.winCtl .curBadge { margin-top:0; }
.winSumFree { margin-left:auto; font:var(--t-xs) var(--mono); color:var(--gray); }
.winSumFree.full { color:var(--amber); }
.winSumBar { height:4px; border-radius:var(--r-pill); background:var(--bg); }
.winSumBar i { display:block; height:100%; background:var(--border-hi); border-radius:inherit; }
.winSumList { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:2px 12px; min-width:0; }
.winSumRow { display:flex; align-items:center; gap:8px; padding:4px 6px; border-radius:var(--r-sm);
  min-width:0; font-size:var(--t-sm); cursor:default; }
.winSumRow:hover { background:var(--card-hi); }
.winSumRow .ico { width:20px; flex:none; aspect-ratio:1; overflow:hidden; }
.winSumRow .ico img { width:100%; height:auto; display:block; image-rendering:pixelated; }
.winSumRow .nm { flex:1; color:var(--text); }
.winSumRow .st { font:var(--t-xs) var(--mono); color:var(--gray); flex:none; }
.winSumRow .ct { font:600 var(--t-sm) var(--mono); color:var(--text); flex:none;
  min-width:3ch; text-align:right; font-variant-numeric:tabular-nums; }
.winSumEmpty { font-size:var(--t-sm); color:var(--muted); }
.slot.lit { border-color:var(--accent); background:var(--accent-soft); }
.winNone .noWin { border:0; padding:14px 6px; text-align:left; line-height:1.5; }
.povWrap { flex:1; min-height:0; display:flex; flex-direction:column;
  padding:10px 12px 12px; }
.povStage { position:relative; flex:1; min-height:0; }
.povFrame { position:absolute; inset:0; z-index:1; width:100%; height:100%;
  border:1px solid var(--border); border-radius:var(--r-sm);
  background:#000; display:block; }
.winStack { --cell:44px; display:flex; flex-direction:column; gap:12px;
  width:calc(9 * var(--cell) + 8 * 4px + 2 * 12px + 2px); max-width:100%; }
.winStack .winTop { flex-wrap:nowrap; min-height:44px; padding-top:6px; padding-bottom:6px; }
.winStack .winTop .ttl { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.winStack .winTop .sz { flex:0 1000 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.winStack .winTop > .btn:last-child, .winStack .winTop > .iconBtn:last-child { margin-left:auto; flex:none; }
.winStack .grid9 { grid-template-columns:repeat(9,minmax(0,var(--cell))); max-width:none; }
.winStack .gearCells { grid-template-columns:repeat(5,minmax(0,var(--cell))); max-width:none; }
.winStack .tradeHead { grid-template-columns:repeat(9,minmax(0,var(--cell))); max-width:none; }
.winStack .slot { font-size:20px; }
.hotbar .slot .num { position:absolute; left:3px; top:1px; font:600 9px/1 var(--mono); color:var(--gray); }
.winBox { border:1px solid var(--border); border-radius:var(--r); background:var(--card); min-width:0; }
.winBox.server { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.winTop { display:flex; align-items:center; gap:10px; padding:9px 12px;
  border-bottom:1px solid var(--border); flex-wrap:wrap; }
.winTop .ttl { font-size:var(--t-md); font-weight:650; }
.winTop .sz { font:var(--t-sm) var(--mono); color:var(--gray); }
.winBody { padding:12px; }
.grid9 { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:4px;
  max-width:376px; }   
.slot { aspect-ratio:1; min-width:0; border-radius:7px; background:#101315;
  border:1px solid var(--border); display:grid; place-items:center; position:relative;
  font-size:17px; }
.slot.has { background:var(--card-hi); border-color:var(--border-hi); cursor:pointer; }
@media (hover:hover) {
  .slot.has:hover { border-color:var(--accent); background:var(--accent-soft); }
}
.slot.held { position:relative; opacity:.32; border-style:dashed; }
.slot.drop { border-color:var(--accent); background:var(--accent-soft); }
.slot .n { position:absolute; right:3px; bottom:1px; font:700 10px/1 var(--mono);
  color:#fff; text-shadow:0 1px 2px #000; }
.vitals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-3);
  margin-top:var(--s-3); }
.vt { min-width:0; display:grid; gap:var(--s-1); }
.vtHead { display:flex; align-items:baseline; gap:var(--s-2); min-width:0;
  font-size:var(--t-xs); color:var(--gray); }
.vtHead span { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vtHead b { margin-left:auto; font:600 var(--t-sm) var(--mono); color:var(--text);
  font-variant-numeric:tabular-nums; }
.vtPips { display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:2px; }
.vtPips i { height:6px; border-radius:1px; background:var(--bg); box-shadow:inset 0 0 0 1px var(--line); }
.vtPips i.f { background:var(--muted); box-shadow:none; }
.vtPips i.h { background:linear-gradient(90deg, var(--muted) 50%, var(--bg) 50%); }
.vtBar { height:6px; border-radius:1px; background:var(--bg); box-shadow:inset 0 0 0 1px var(--line); }
.vtBar i { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.vt.vtWarn .vtHead b { color:var(--amber); }
.vt.vtWarn .vtPips i.f { background:var(--amber); }
.vt.vtWarn .vtPips i.h { background:linear-gradient(90deg, var(--amber) 50%, var(--bg) 50%); }
.vt.vtCrit .vtHead b { color:var(--red); }
.vt.vtCrit .vtPips i.f { background:var(--red); }
.vt.vtCrit .vtPips i.h { background:linear-gradient(90deg, var(--red) 50%, var(--bg) 50%); }
.hotbar { margin-top:8px; box-shadow:inset 0 0 0 1px var(--accent-soft);
  border-radius:8px; padding:4px; }
.invLabel { font-size:var(--t-xs); color:var(--gray); text-transform:uppercase;
  letter-spacing:.06em; font-weight:600; margin:0 0 8px; }
.heldChip { position:fixed; z-index:90; pointer-events:none; width:40px; height:40px;
  border-radius:8px; background:var(--card-hi); border:1px solid var(--accent);
  display:grid; place-items:center; font-size:16px; translate:-50% -50%;
  box-shadow:0 6px 20px rgba(0,0,0,.6); }
.heldChip .n { position:absolute; right:3px; bottom:1px; font:700 10px/1 var(--mono);
  color:#fff; }
.tradeHead { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:4px;
  margin-bottom:3px; max-width:376px; }
.tradeHead div { font-size:var(--t-xs); font-weight:600; color:var(--gray); line-height:1.3; }
.tradeHead .a { grid-column:1/5; }
.tradeHead .b { grid-column:6/10; text-align:right; }
.slot.divider { background:#0b0d0e; border-style:dashed; cursor:default; opacity:.5; }
.slot.theirs  { cursor:not-allowed; }
.slot.theirs.has { border-color:#33393e; }
.slot.theirs:hover { border-color:var(--red); }
.slot.money   { border-color:var(--amber); box-shadow:0 0 0 2px rgba(251,191,36,.15);
  cursor:default; }
.slot.ready   { border-color:var(--red); box-shadow:0 0 0 2px rgba(248,113,113,.15); }
.slot.ready:hover { border-color:var(--red); }
.moneyRow { display:grid; gap:1px; margin-top:4px; font-size:var(--t-xs); line-height:1.4; }
.moneyCell { display:flex; gap:6px; min-width:0; }
.moneyCell .k { min-width:38px; }
.moneyCell .k { color:var(--gray); font-weight:600; flex:none; }
.moneyCell .v { min-width:0; font-family:var(--mono); }
.moneyCell .v.a { color:var(--amber); }
.moneyCell .v.dim { color:var(--gray); }
.accWrap { display:grid; gap:var(--s-3); }
.fld { display:grid; gap:var(--s-1); padding:var(--s-2) 0;
  border-top:1px solid var(--border); }
.fld:first-of-type { border-top:0; padding-top:0; }
.fld > label { font-size:var(--t-md); font-weight:550; }
.fld .hint { font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.fld .warn { font-size:var(--t-xs); color:var(--amber); line-height:1.45;
  display:flex; gap:var(--s-2); align-items:flex-start; }
.fld input[type=text], .fld input[type=password], .fld input[type=number], .fld select {
  background:var(--bg); border:1px solid var(--border); border-radius:var(--r-sm);
  color:var(--text); padding:var(--s-2) var(--s-3); font:var(--t-md) var(--ui);
  outline:none; width:100%; }
.fld input:focus, .fld select:focus { border-color:var(--accent); }
.fld.row { grid-template-columns:1fr auto; align-items:center; }
.fld.dim input, .fld.dim select { opacity:.5; }
.dangerZone { border-color:rgba(248,113,113,.3); }
.winHint { display:flex; align-items:center; gap:9px; padding:8px 12px;
  border:1px dashed var(--border-hi); border-radius:var(--r-sm);
  font-size:var(--t-md); color:var(--muted); }
.winHint b { color:var(--text); font-weight:600; }
.winHint.act { border-style:solid; border-color:var(--accent); color:var(--text); }
.winExpWarn { display:flex; align-items:flex-start; gap:8px; padding:8px 12px;
  border:1px dashed var(--amber); border-radius:var(--r-sm);
  font-size:var(--t-sm); line-height:1.5; color:var(--amber); margin:0 0 10px; }
.reqBox { border:1px solid var(--border); border-radius:var(--r-sm); background:var(--card); }
.reqBox summary { cursor:pointer; padding:8px 12px; font-size:var(--t-sm); color:var(--muted);
  list-style:none; display:flex; align-items:center; gap:8px; }
.reqBox summary::-webkit-details-marker { display:none; }
.reqBox summary::before { content:"▸"; color:var(--gray); transition:rotate .16s; }
.reqBox[open] summary::before { rotate:90deg; }
.reqBox summary b { color:var(--text); font-weight:600; }
.reqLog { font:var(--t-sm)/1.7 var(--mono); color:var(--gray); background:var(--bg);
  border-top:1px solid var(--line); padding:9px 12px; max-height:110px; overflow-y:auto; }
.reqLog b { color:var(--accent); font-weight:600; }
.noWin { padding:22px; text-align:center; color:var(--muted); font-size:var(--t-md);
  border:1px dashed var(--line); border-radius:var(--r); }
.wip { flex:1; display:grid; place-items:center; padding:40px 20px; }
.wipCard { max-width:440px; text-align:center; }
.wipIcon { width:56px; height:56px; margin:0 auto 18px; border-radius:16px;
  display:grid; place-items:center; background:var(--card);
  border:1px solid var(--border); }
.wipIcon svg { width:26px; height:26px; stroke:var(--amber); fill:none;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.wipCard h2 { margin:0 0 8px; font-size:var(--t-xl); font-weight:650; letter-spacing:-.2px; }
.wipCard p { margin:0 0 16px; color:var(--muted); font-size:var(--t-md); line-height:1.6; }
.wipList { text-align:left; display:grid; gap:7px; background:var(--card);
  border:1px solid var(--border); border-radius:var(--r); padding:14px 16px; }
.wipList div { display:flex; gap:9px; font-size:var(--t-md); color:var(--muted); }
.wipList div::before { content:"—"; color:var(--gray); }
.setWrap { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--s-3); }
.sec { background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  padding:var(--s-4); }
.sec h3 { margin:0 0 var(--s-1); font-size:var(--t-lg); font-weight:650; }
.sec .lead { margin:0 0 var(--s-3); font-size:var(--t-sm); color:var(--muted);
  line-height:1.55; }
.opt { display:grid; grid-template-columns:1fr auto; gap:var(--s-4); align-items:center;
  padding:var(--s-3) 0; border-top:1px solid var(--line); }
.opt:first-of-type { border-top:0; padding-top:0; }
.opt .t { font-size:var(--t-md); font-weight:550; }
.opt .h { font-size:var(--t-sm); color:var(--muted); margin-top:2px; line-height:1.45; }
.opt .h.dcWarn { color:var(--amber); }
.seg { display:inline-flex; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); padding:2px; gap:2px; }
.seg button { border:0; background:none; color:var(--muted); font:550 var(--t-md) var(--ui);
  padding:5px 11px; border-radius:calc(var(--r-sm) - 3px); cursor:pointer;
  transition:background .12s,color .12s; }
.seg button:hover { color:var(--text); }
.seg button.on { background:var(--card-hi); color:var(--text); font-weight:650;
  box-shadow:inset 0 0 0 1px var(--border); }
.swatches { display:flex; gap:6px; align-items:center; }
.sw2 { width:24px; height:24px; border-radius:50%; cursor:pointer; border:2px solid transparent;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14); transition:scale .12s; }
.sw2:hover { scale:1.12; }
.sw2.on { border-color:var(--text); }
input[type=color] { width:28px; height:28px; padding:0; border:1px solid var(--border);
  border-radius:8px; background:var(--bg); cursor:pointer; }
input[type=range] { width:150px; accent-color:var(--accent); }
.txtIn { background:var(--bg); border:1px solid var(--border); border-radius:var(--r-sm);
  color:var(--text); padding:8px 11px; font:var(--t-md) var(--mono); outline:none; width:100%; }
.txtIn:focus { border-color:var(--border-hi); }
.val { font:550 var(--t-md) var(--mono); color:var(--muted); min-width:42px; text-align:right; }
.preview { display:flex; gap:10px; align-items:center; margin-top:12px;
  padding:12px; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); flex-wrap:wrap; }
.preview .cap { font-size:var(--t-sm); color:var(--gray); width:100%; }
.sw { position:relative; width:34px; height:20px; flex:none; cursor:pointer; }
.sw input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.sw i { position:absolute; inset:0; border-radius:var(--r-pill); background:#23282c;
  border:1px solid var(--border); transition:background .16s,border-color .16s;
  pointer-events:none; }
.sw i::after { content:""; position:absolute; left:2px; top:50%; translate:0 -50%;
  width:14px; height:14px; border-radius:50%; background:#6c757c;
  transition:translate .16s,background .16s; }
.sw input:checked + i { background:rgba(52,211,153,.2); border-color:rgba(52,211,153,.5); }
.sw input:checked + i::after { translate:14px -50%; background:var(--green); }
.sw input:focus-visible + i { outline:2px solid var(--accent); outline-offset:2px; }
.plug { grid-area:plug; background:var(--panel); border-left:1px solid var(--border);
  display:flex; flex-direction:column; min-height:0; }
.plugHead { min-width:0; padding:14px 16px 12px; border-bottom:1px solid var(--border); }
.plugHead .t { display:flex; align-items:center; gap:9px; }
.plugHead h2 { margin:0; font-size:var(--t-lg); font-weight:650; }
.plugHead p { margin:7px 0 0; font-size:var(--t-sm); color:var(--muted); line-height:1.5; }
.plugList { flex:1; overflow-y:auto; padding:12px; display:grid; gap:9px; align-content:start; }
.pc { background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  overflow:hidden; }
.pc.on { border-color:#2c3f52; }
.pc .top { display:flex; align-items:center; gap:11px; padding:10px 12px; }
.pc .col { cursor:pointer; }
.pc .nm { font-size:var(--t-md); font-weight:600; display:flex; align-items:center; gap:7px; }
.pc .ds { font-size:var(--t-sm); color:var(--muted); margin-top:2px; line-height:1.4;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pc .ds.now { color:var(--text); }
.pc .ds.now.bad { color:var(--amber); }
.pc .fold { background:none; border:0; color:var(--gray); cursor:pointer; padding:2px 4px;
  font-size:var(--t-xs); transition:rotate .16s; }
.pc.open .fold { rotate:90deg; }
.pc .body { display:none; padding:12px 13px 13px; border-top:1px solid var(--border); }
.pc.open .body { display:block; }
.pc .row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center;
  padding:5px 0; font-size:var(--t-md); }
.pc .row span { color:var(--muted); }
.pc .row b { font-family:var(--mono); font-weight:550; font-size:var(--t-sm); }
.pc .body .btn { width:100%; justify-content:center; margin-top:10px; }
.beat { width:6px; height:6px; border-radius:50%; background:var(--green);
  box-shadow:0 0 0 3px rgba(52,211,153,.15); }
.bar { grid-area:bar; border-top:1px solid var(--border); background:var(--panel);
  display:flex; align-items:center; gap:14px; padding:10px 20px; }
.bar .who { display:flex; align-items:center; gap:10px; min-width:0; }
.bar .nm { font-size:var(--t-md); font-weight:600; }
.bar .op { font-size:var(--t-sm); color:var(--muted); }
.bar .metrics { display:flex; gap:20px; margin-left:auto; }
.bar { container:bar / inline-size; }
@container bar (max-width: 820px) { .bar .m.mem { display:none; } }
.bar .m { text-align:right; }
.bar .m .k { font-size:var(--t-xs); color:var(--gray); text-transform:uppercase;
  letter-spacing:.05em; font-weight:600; }
.bar .m .v { font:550 var(--t-md) var(--mono); font-variant-numeric:tabular-nums; }
.bar .m.day .v { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.dayStrip { display:inline-flex; gap:2px; }
.dayStrip i { width:4px; height:12px; border-radius:1px; background:var(--line); }
.dayStrip i.ok      { background:var(--green); }
.dayStrip i.lobby   { background:var(--amber); }
.dayStrip i.away    { background:var(--red); }
.dayStrip i.restart { background:var(--gray); }
.iconBtn { width:32px; height:32px; border-radius:var(--r-sm); display:grid;
  place-items:center; border:1px solid var(--border); background:var(--card);
  color:var(--muted); cursor:pointer; transition:color .12s,background .12s; }
.iconBtn:hover { color:var(--text); background:var(--card-hi); }
.iconBtn svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.note { padding:var(--s-2) var(--s-4); font-size:var(--t-xs); color:var(--gray);
  line-height:1.55; border-top:1px solid var(--border); }
.screen { display:none; flex:1; flex-direction:column; min-width:0; min-height:0; }
.screen.on { display:flex; }
body[data-density="compact"] { --pad:10px; }
body[data-density="compact"] .navItem { padding:6px 10px; }
body[data-density="compact"] .head { padding:9px 16px; }
body[data-density="compact"] .scroll, body[data-density="compact"] .setPad,
body[data-density="compact"] .invPad { padding:14px 16px 18px; }
body[data-density="compact"] .cards { gap:8px; }
@media (max-width:1180px) {
  body,
  body:not([data-screen="bot"]),
  body[data-screen="bot"],
  body[data-bar="off"][data-screen="bot"],
  body[data-plugbar="off"][data-screen="bot"],
  body[data-bar="off"][data-plugbar="off"][data-screen="bot"] {
    grid-template-columns:206px minmax(0,1fr);
    grid-template-areas:"nav main" "nav bar"; }
  .plug { position:fixed; right:0; top:0; bottom:0; width:min(340px,92vw); z-index:75;
    translate:102% 0; transition:translate .2s ease-out;
    box-shadow:-8px 0 32px rgba(0,0,0,.5); }
  body[data-plug="open"] .plug { translate:0 0; }
  body[data-plug="open"] .plugScrim { display:block; }
  body[data-screen="bot"] .plugTab { display:flex; }
}
@media (max-width:760px) {
  body,
  body:not([data-screen="bot"]),
  body[data-screen="bot"],
  body[data-bar="off"][data-screen="bot"],
  body[data-plugbar="off"][data-screen="bot"],
  body[data-bar="off"][data-plugbar="off"][data-screen="bot"] {
    grid-template-columns:1fr;
    grid-template-areas:"main" "bar"; }
  .bar .metrics { display:none; }
  .invPad, .winWrap,
  body[data-density="compact"] .invPad, body[data-density="compact"] .winWrap { padding:10px; }
  .grid9, .winStack .grid9 { grid-template-columns:repeat(9,minmax(38px,1fr)); gap:3px;
    overflow-x:auto; overscroll-behavior-x:contain; padding-bottom:2px; }
  .winStack { width:auto; }
  .slot .n { font-size:9.5px; }
  #s-bot .head { flex-wrap:wrap; row-gap:var(--s-2); }
  #s-bot .head .switcher { flex:1 1 100%; min-width:0; }
  #s-bot .head .spacer { display:none; }
  .views { overflow-x:auto; overscroll-behavior-x:contain;
    scrollbar-width:none; padding-left:var(--s-3); padding-right:var(--s-3); }
  .views::-webkit-scrollbar { display:none; }
  .view { flex:none; }
  .pane { margin:0 var(--s-3); }
  .opt { grid-template-columns:minmax(0,1fr); gap:var(--s-2); }
  .seg { flex-wrap:wrap; }
  .head { padding-left:56px; }
  .nav { position:fixed; left:0; top:0; bottom:0; width:min(276px,86vw); z-index:75;
    translate:-102% 0; transition:translate .2s ease-out;
    box-shadow:8px 0 32px rgba(0,0,0,.5); }
  body[data-nav="open"] .nav { translate:0 0; }
  body[data-nav="open"] .navScrim { display:block; }
  body[data-nav="open"] .navBtn { display:none; }
}
@media (prefers-reduced-motion:reduce) { * { animation:none !important; transition:none !important; } }
.slot .ico, .heldChip .ico { width:78%; aspect-ratio:1; overflow:hidden;
  display:block; line-height:0; }
.slot .ico img, .heldChip .ico img { width:100%; height:auto; display:block; }
.slot .txt { font:700 var(--t-xs)/1 var(--ui); color:var(--muted); letter-spacing:-.3px; }
.slot.inHand { box-shadow:0 0 0 2px var(--accent); }
.toast { position:fixed; left:50%; bottom:60px; translate:-50% 12px; z-index:190;
  background:var(--card-hi); border:1px solid var(--border-hi); color:var(--text);
  padding:10px 16px; border-radius:var(--r-sm); font-size:var(--t-md); font-weight:550;
  box-shadow:0 8px 24px rgba(0,0,0,.5); opacity:0; pointer-events:none;
  transition:opacity .16s, translate .16s; }
.toast.on { opacity:1; translate:-50% 0; }
.toast.bad { border-color:rgba(248,113,113,.55); color:var(--red); }
.modalBack { position:fixed; inset:0; z-index:150; background:rgba(4,5,6,.72);
  display:none; place-items:center; padding:20px; }
.modalBack.on { display:grid; }
.modal { width:min(420px,100%); background:var(--panel); border:1px solid var(--border-hi);
  border-radius:var(--r); padding:20px; box-shadow:0 20px 60px rgba(0,0,0,.6);
  max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); overflow-y:auto; }
.modal h3 { margin:0 0 8px; font-size:var(--t-lg); font-weight:650; letter-spacing:-.2px; }
.modalHead { display:flex; align-items:flex-start; gap:10px; }
.modalHead h3 { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.modalHead .popX { font-size:20px; margin-top:-2px; }
.modal p { margin:0 0 16px; font-size:var(--t-md); color:var(--muted); line-height:1.55; }
.modalForm { display:grid; gap:10px; }
.modalLead { font-size:var(--t-md); color:var(--muted); line-height:1.5;
  padding:10px 12px; background:var(--card-hi); border-radius:var(--r-sm); }
.modalRow { display:flex; gap:8px; justify-content:flex-end; margin-top:14px; }
.modalErr { color:var(--red); font-size:var(--t-md); margin-bottom:10px; }
.btn.danger.solid { background:var(--red); border-color:var(--red); color:#12080a;
  font-weight:650; }
.btn.danger.solid:hover { filter:brightness(1.08); color:#12080a; }
.btn[disabled] { opacity:.5; pointer-events:none; }
.state.paused { color:var(--muted); }
.bc .state.paused i { background:var(--gray); }
body[data-float="on"] { gap:12px; padding:12px; background:var(--bg); }
body[data-float="on"] .nav,
body[data-float="on"] .main,
body[data-float="on"] .plug,
body[data-float="on"] .bar {
  border:1px solid var(--border); border-radius:var(--r);
  background:var(--panel); overflow:hidden;
}
body[data-float="on"] .nav  { border-right:1px solid var(--border); }
body[data-float="on"] .plug { border-left:1px solid var(--border); }
body[data-float="on"] .bar  { border-top:1px solid var(--border); }
body[data-float="on"] .pane { margin:0 16px 16px; }
body[data-float="on"] .views { padding:10px 16px 0; }
.main { position:relative; isolation:isolate; }
.main::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; }
body[data-pattern="grid"] .main::before {
  background-image:
    linear-gradient(var(--border-hi) 1px, transparent 1px),
    linear-gradient(90deg, var(--border-hi) 1px, transparent 1px);
  background-size:34px 34px; opacity:.55;
  mask-image:radial-gradient(ellipse at 50% 0%, #000 30%, transparent 85%);
}
body[data-pattern="dots"] .main::before {
  background-image:radial-gradient(var(--border-hi) 1.3px, transparent 1.5px);
  background-size:22px 22px; opacity:.8;
  mask-image:radial-gradient(ellipse at 50% 10%, #000 25%, transparent 82%);
}
body[data-pattern="glow"] .main::before {
  background:
    radial-gradient(60% 45% at 18% 12%, color-mix(in srgb, var(--accent) 26%, transparent), transparent 70%),
    radial-gradient(50% 40% at 84% 78%, color-mix(in srgb, var(--accent-2) 22%, transparent), transparent 72%);
  filter:blur(20px);
}
body[data-palette="paper"][data-float="on"] .nav,
body[data-palette="paper"][data-float="on"] .main,
body[data-palette="paper"][data-float="on"] .plug,
body[data-palette="paper"][data-float="on"] .bar { border-color:var(--border-hi); }
body[data-palette="paper"] .log dd { color:#2b3238; }
body[data-palette="paper"] .log dd .tag.dim { background:rgba(20,24,28,.07); }
.pc .col { cursor:pointer; }
.pc .nm { font-size:var(--t-md); font-weight:600; display:flex; align-items:center; gap:7px; }
.pc .ds { font-size:var(--t-sm); color:var(--muted); margin-top:2px; line-height:1.4;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pc .ds.now { color:var(--text); }
.pc .ds.now.bad { color:var(--amber); }
.pc .fold { background:none; border:0; color:var(--gray); cursor:pointer; padding:2px 4px;
  font-size:var(--t-xs); transition:rotate .16s; }
.pc.open .fold { rotate:90deg; }
.pc .body { display:none; padding:12px 13px 13px; border-top:1px solid var(--border); }
.pc.open .body { display:block; }
.pc .row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center;
  padding:5px 0; font-size:var(--t-md); }
.pc .row span { color:var(--muted); }
.pc .row b { font-family:var(--mono); font-weight:550; font-size:var(--t-sm); }
.pc .body .btn { width:100%; justify-content:center; margin-top:10px; }
.beat { width:6px; height:6px; border-radius:50%; background:var(--green);
  box-shadow:0 0 0 3px rgba(52,211,153,.15); }
.pc .gear { background:none; border:0; color:var(--gray); cursor:pointer;
  font-size:15px; padding:2px 5px; border-radius:6px; line-height:1; }
.pc .gear:hover { background:var(--card-hi); color:var(--text); }
.myPack { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); padding:var(--pad); margin-bottom:12px; }
.mpHead { font-size:var(--t-sm); font-weight:650; color:var(--muted);
  text-transform:uppercase; letter-spacing:.06em; }
.mpRow { display:flex; flex-wrap:wrap; gap:24px; margin-top:12px; }
.mpCell { min-width:80px; }
.mpV { font:650 25px/1.25 var(--mono); letter-spacing:-.5px;
  font-variant-numeric:tabular-nums; }
.mpV.warn { color:var(--amber); }
.mpK { font-size:var(--t-sm); color:var(--gray); margin-top:4px; }
.mpNote { font-size:var(--t-sm); color:var(--muted); margin-top:12px; line-height:1.5; }
.myPack > div > .btn[data-pcheck] { margin-top:var(--s-3); }
.pcBody { display:grid; gap:var(--s-2); }
.pcBody p { margin:0; font-size:var(--t-sm); color:var(--muted); line-height:1.5; }
.pcRow { border:1px solid var(--border); border-radius:var(--r-sm); padding:var(--s-2) var(--s-3);
  display:grid; gap:var(--s-1); background:var(--bg); }
.pcHead { display:flex; align-items:baseline; gap:var(--s-3); min-width:0; }
.pcHead b { font-size:var(--t-md); font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pcState { margin-left:auto; flex:none; font-size:var(--t-xs); }
.pcRow.good .pcState { color:var(--green); }
.pcRow.warn .pcState { color:var(--amber); }
.pcRow.bad .pcState, p.pcRow.bad { color:var(--red); }
.pcNums { display:flex; flex-wrap:wrap; gap:var(--s-1) var(--s-4); font-size:var(--t-sm); color:var(--muted); }
.pcNums i { font:600 var(--t-sm) var(--mono); font-style:normal; color:var(--text); }
.pcLine { font-size:var(--t-xs); color:var(--amber); line-height:1.45; }
.pcLine.dim, .pcRow.bad .pcLine { color:var(--muted); }
.pcBody .pcFoot { font-size:var(--t-xs); color:var(--gray); }
.userList { display:grid; gap:9px; }
.userRow { min-width:0; display:flex; align-items:center; gap:12px; padding:12px 14px;
  flex-wrap:wrap;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r); }
.userRow > .col { flex:1 1 180px; min-width:0; }
.userRow .nm { font-size:var(--t-md); font-weight:650; }
.userRow .rl { font-size:var(--t-sm); color:var(--muted); margin-top:2px; }
.userRow .tag { font-size:var(--t-xs); font-weight:600; color:var(--muted);
  background:var(--card-hi); padding:2px 6px; border-radius:5px; }
.modal.wide { width:min(640px,100%); }
.modal textarea { width:100%; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); color:var(--text); padding:10px 12px;
  font:var(--t-md)/1.55 var(--mono); outline:none; resize:vertical; }
.modal textarea:focus { border-color:var(--accent); }
.modal.withForm { display:flex; flex-direction:column; overflow:hidden; }
.modal.withForm > .modalHead,
.modal.withForm > .modalErr,
.modal.withForm > .modalRow { flex:none; }
.modal.withForm > .modalForm { flex:1 1 auto; min-height:0; overflow-y:auto;
  scrollbar-gutter:stable; margin-right:-20px; padding-right:calc(20px - var(--sb-size)); }
.slot.dragOver { border-color:var(--accent); background:var(--accent-soft); }
.slot[draggable="true"] { cursor:grab; }
.pals { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.pal { display:flex; align-items:center; gap:7px; padding:7px 11px; cursor:pointer;
  border:1px solid var(--border); border-radius:var(--r-sm); font:550 var(--t-sm) var(--ui);
  transition:scale .12s, box-shadow .12s; }
.pal:hover { scale:1.04; }
.pal.on { box-shadow:0 0 0 2px var(--accent); }
.pal i { width:11px; height:11px; border-radius:50%; flex:none; }
.scenPad { flex:1; min-height:0; overflow-y:auto; scrollbar-gutter:stable; padding:16px;
  display:flex; flex-direction:column; gap:14px; }
.scenPad > * { flex:0 0 auto; }
.scenRuns { background:var(--card); border:1px solid var(--accent);
  border-radius:var(--r); padding:12px 14px; }
.runRow { display:flex; align-items:center; gap:11px; padding:7px 0; }
.runRow + .runRow { border-top:1px solid var(--line); }
.runRow .nm { font-size:var(--t-md); font-weight:600; }
.runRow .st { font-size:var(--t-sm); color:var(--muted); font-family:var(--mono); }
.runPill { width:26px; height:26px; border-radius:8px; flex:none; display:grid;
  place-items:center; background:var(--accent-soft); color:var(--accent); font-size:var(--t-sm); }
.runPill.wait { background:rgba(251,191,36,.16); color:var(--amber); }
.scenPart { margin-bottom:var(--s-3); }
.scenList { display:grid; gap:10px; }
.scenCard { min-width:0; background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); }
.scenCard.open { border-color:var(--border-hi); }
.scenHead { display:grid; grid-template-columns:36px minmax(0,1fr) auto;
  align-items:center; column-gap:var(--s-3); padding:var(--s-3) var(--s-4);
  cursor:pointer; user-select:none; }
.scenHead .chev { justify-self:center; }
.scenWhat { min-width:0; display:flex; align-items:baseline; gap:var(--s-2); }
.scenWhat b { flex:none; max-width:60%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scenHead:hover { background:var(--card-hi); border-radius:var(--r); }
.scenHead .chev { color:var(--muted); font-size:var(--t-md); transition:rotate .16s; }
.scenCard.open .scenHead .chev { rotate:90deg; }
.scenHead b { font-size:var(--t-md); font-weight:650; }
.scenHead .meta { flex:1 1 auto; min-width:0; font-size:var(--t-sm); color:var(--muted);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.scenBody { display:none; border-top:1px solid var(--border);
  padding:var(--s-4) var(--s-4) var(--s-4) calc(var(--s-4) + 36px + var(--s-3)); }
.scenCard.open .scenBody { display:block; }
.scenWhen { margin:var(--s-4) 0; padding:var(--s-3) 0 0; border-top:1px solid var(--border); }
.scenWhenTop { display:flex; align-items:center; gap:var(--s-3); }
.scenWhenTtl { flex:1; min-width:0; font-size:var(--t-xs); font-weight:650; color:var(--muted);
  text-transform:uppercase; letter-spacing:.06em; }
.scenWhenSw { display:flex; align-items:center; gap:var(--s-2); flex:none;
  font-size:var(--t-sm); color:var(--muted); cursor:pointer; }
.scenWhen.off .scenTrigs { opacity:.6; }
.scenTrigs { display:grid; margin-top:var(--s-2); }
.scenTrig { padding:var(--s-2) 0; }
.scenTrig + .scenTrig { border-top:1px solid var(--line); }
.scenTrigBody { margin-top:var(--s-2); padding-left:25px; }
.scenTrigBody > input[type=text] { width:100%; }
.scenTrigHint { margin-top:var(--s-1); padding-left:25px; font-size:var(--t-xs);
  color:var(--gray); line-height:1.45; }
.scenSole { margin-top:var(--s-2); padding-top:var(--s-3);
  border-top:1px solid var(--border); }
.scenEvery { display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap; }
.scenEvery .lbl { font-size:var(--t-sm); color:var(--muted); }
.scenEvery .pair { display:inline-flex; align-items:center; gap:var(--s-2); }
.scenEvery .pair.gap { margin-left:var(--s-2); }
.scenEvery .num { width:82px; flex:none; }
.scenMode { display:grid; gap:var(--s-2); justify-items:start; }
.scenWhen .seg { background:var(--card); }
.scenMode .scenEvery { margin-top:2px; }
.scenModeHint { font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.scenModeVs { font-size:var(--t-xs); color:var(--gray); line-height:1.45;
  margin-top:-2px; }
.scenNote { margin-top:var(--s-1); font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.scenWarn { margin-top:var(--s-1); font-size:var(--t-xs); color:var(--amber);
  line-height:1.45; }
.scenWhen input[type=text], .scenWhen input[type=number] {
  background:var(--card); border:1px solid transparent; border-radius:var(--r-sm);
  color:var(--text); padding:6px 10px; font-size:var(--t-md);
  font-family:var(--ui); outline:none; min-width:0;
  transition:border-color .12s, background .12s; }
.scenWhen input:hover { background:var(--card-hi); }
.scenWhen input:focus { border-color:var(--accent); background:var(--card); }
.chk { display:inline-flex; align-items:center; gap:var(--s-2); cursor:pointer;
  font-size:var(--t-md); color:var(--muted); min-height:22px;
  transition:color .12s; }
.chk:hover { color:var(--text); }
.chk:has(input:checked) { color:var(--text); font-weight:550; }
.chk > span { min-width:0; }
.chk input[type=checkbox], .pickLoot input[type=checkbox] {
  appearance:none; -webkit-appearance:none; margin:0; flex:none; cursor:pointer;
  width:17px; height:17px; border-radius:5px;
  border:1.5px solid var(--border-hi); background:var(--card);
  display:grid; place-items:center;
  transition:background .12s, border-color .12s; }
.chk:hover input[type=checkbox], .pickLoot:hover input[type=checkbox] {
  border-color:var(--muted); }
.chk input[type=checkbox]:checked, .pickLoot input[type=checkbox]:checked {
  background:var(--accent); border-color:var(--accent); }
.chk input[type=checkbox]::after, .pickLoot input[type=checkbox]::after {
  content:''; width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0;
  rotate:45deg; translate:0 -1px; opacity:0; transition:opacity .1s; }
.chk input[type=checkbox]:checked::after,
.pickLoot input[type=checkbox]:checked::after { opacity:1; }
.chk input[type=checkbox]:focus-visible,
.pickLoot input[type=checkbox]:focus-visible {
  outline:2px solid var(--accent); outline-offset:2px; }
.presetServers { display:grid; gap:var(--s-2);
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); }
.stepHead, .stepRow { display:grid; gap:8px; align-items:center;
  grid-template-columns:28px 1fr 110px 30px 30px 30px; }
.stepHead { font-size:var(--t-xs); color:var(--gray); font-weight:550; padding:0 0 6px; }
.stepRow { padding:4px 0; }
.stepRow .num { font:600 var(--t-sm) var(--mono); color:var(--gray); text-align:center; }
.stepRow input { background:var(--bg); border:1px solid transparent;
  border-radius:var(--r-sm); color:var(--text); padding:7px 10px;
  font:var(--t-md) var(--mono); outline:none; width:100%;
  transition:border-color .12s, background .12s; }
.stepRow input:hover { background:var(--card-hi); }
.stepRow input:focus { border-color:var(--accent); background:var(--bg); }
.mini { width:30px; height:30px; border-radius:var(--r-sm); border:1px solid var(--border);
  background:var(--card-hi); color:var(--muted); cursor:pointer; font-size:var(--t-sm);
  display:grid; place-items:center; }
.mini:hover { color:var(--text); border-color:var(--border-hi); }
.mini[disabled] { opacity:.35; pointer-events:none; }
.mini.del:hover { color:var(--red); border-color:rgba(248,113,113,.45); }
.noSteps { padding:10px 0; color:var(--muted); font-size:var(--t-md); }
.scenFoot { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.scenFoot .dirty { font-size:var(--t-sm); color:var(--amber); font-weight:550; }
.scenBody > .scenFoot { padding-top:10px; }
.isBody { display:grid; gap:var(--s-2); max-height:60vh; overflow-y:auto; }
.isGroup { font-size:var(--t-xs); color:var(--gray); padding-top:var(--s-2); }
.isEmpty { margin:0; font-size:var(--t-sm); color:var(--muted); }
.isRow { border:1px solid var(--border); border-radius:var(--r-sm); background:var(--bg);
  padding:var(--s-2) var(--s-3); display:grid; gap:4px; min-width:0; }
.isHead { display:flex; align-items:baseline; gap:var(--s-3); min-width:0; }
.isHead b { font-size:var(--t-sm); font-weight:600; }
.isHead span { margin-left:auto; flex:none; font:var(--t-xs) var(--mono); color:var(--gray); }
.isText { font-size:var(--t-sm); color:var(--text); white-space:pre-wrap; word-break:break-word; }
.isMeta { font-size:var(--t-xs); color:var(--muted); word-break:break-word; }
.isCode { display:block; font:var(--t-xs) var(--mono); color:var(--amber); white-space:pre-wrap; word-break:break-word; }
.tplBody { display:grid; gap:var(--s-2); }
.tplGroup { font-size:var(--t-xs); color:var(--gray); padding-top:var(--s-2); }
.tplEmpty { margin:0; font-size:var(--t-sm); color:var(--muted); line-height:1.5; }
.tplRow { border:1px solid var(--border); border-radius:var(--r-sm); background:var(--bg);
  padding:var(--s-2) var(--s-3); display:grid; gap:var(--s-1); min-width:0; }
.tplHead { display:flex; align-items:baseline; gap:var(--s-3); min-width:0; }
.tplHead b { font-size:var(--t-md); font-weight:600; }
.tplMeta { margin-left:auto; flex:none; font-size:var(--t-xs); color:var(--gray); }
.tplDesc { font-size:var(--t-sm); color:var(--muted); }
.tplSteps summary { cursor:pointer; font-size:var(--t-xs); color:var(--muted); }
.tplSteps ol { margin:var(--s-1) 0 0; padding-left:22px; display:grid; gap:2px; }
.tplSteps li { font-size:var(--t-xs); color:var(--gray); }
.tplSteps li code { font:var(--t-xs) var(--mono); color:var(--text); margin-right:var(--s-2); }
.tplBtns { display:flex; flex-wrap:wrap; gap:var(--s-2); padding-top:var(--s-1); }
.tplBtns .danger { margin-left:auto; }
@media (max-width:820px) {
  .stepHead, .stepRow { grid-template-columns:24px 1fr 78px 28px 28px 28px; }
  .mini { width:28px; height:28px; }
}
.modalBack.side { place-items:center end; padding-right:calc(var(--rail-r) + 24px); }
@media (max-width:1180px) { .modalBack.side { place-items:center; padding-right:20px; } }
.quick { flex:none; border:1px solid var(--border); background:var(--bg);
  color:var(--muted); border-radius:var(--r-sm); padding:5px 9px;
  font:550 var(--t-xs)/1.45 var(--ui); cursor:pointer; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
  transition:color .12s, border-color .12s, background .12s; }
.quick:hover { color:var(--text); border-color:var(--accent); background:var(--card-hi); }
.quick.stop:hover { color:var(--red); border-color:var(--red);
  background:rgba(248,113,113,.08); }
.tagClaimer { flex:none; font-style:normal; font:600 var(--t-xs) var(--ui);
  text-transform:uppercase; letter-spacing:.06em; padding:2px 6px;
  border-radius:var(--r-pill); color:var(--amber); background:rgba(251,191,36,.13);
  border:1px solid rgba(251,191,36,.32); }
.bc .nm { display:flex; align-items:center; gap:7px; flex:1; min-width:0;
  overflow:visible; text-overflow:clip; white-space:normal; }
.bc .nm .who { min-width:0; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; }
.cards.shelved { display:flex; flex-direction:column; gap:0;
  grid-template-columns:none; }
.grp { display:flex; flex-direction:column; gap:var(--s-2); min-width:0; }
.grpCards { min-width:0; }
.grp + .grp { margin-top:var(--s-4); }
.grpHead { display:flex; align-items:center; gap:var(--s-2); min-width:0; }
.grpName { font:600 var(--t-xs)/1 var(--ui); color:var(--gray);
  letter-spacing:.06em; text-transform:uppercase; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.grpN { font:600 var(--t-xs)/1 var(--mono); color:var(--gray); flex:none;
  font-variant-numeric:tabular-nums; }
.grpActs { display:flex; gap:2px; margin-left:auto; flex:none;
  opacity:0; transition:opacity .12s; }
.grp:hover .grpActs, .grpActs:focus-within { opacity:1; }
@media (hover:none) { .grpActs { opacity:1; } }
.grpBtn { width:22px; height:22px; padding:0; display:grid; place-items:center;
  border:1px solid var(--border); border-radius:var(--r-sm);
  background:var(--bg); color:var(--muted); cursor:pointer;
  font:500 var(--t-sm)/1 var(--ui); }
.grpBtn:hover { color:var(--text); border-color:var(--border-hi); }
.grpBtn[data-gdel]:hover { color:var(--red); border-color:var(--red); }
.grpEmpty { grid-column:1/-1; padding:var(--s-4); text-align:center;
  border:1px dashed var(--border-hi); border-radius:var(--r);
  color:var(--gray); font-size:var(--t-sm); }
.grpAdd { margin-top:var(--s-4); align-self:flex-start;
  border:1px dashed var(--border-hi); background:transparent; color:var(--muted);
  border-radius:var(--r-sm); padding:var(--s-2) var(--s-3); cursor:pointer;
  font:550 var(--t-sm)/1.2 var(--ui); }
.grpAdd:hover { color:var(--text); border-color:var(--accent); }
.cardsNone { padding:60px 20px; text-align:center; color:var(--muted); }
.cardsNone b { display:block; color:var(--text); font-size:var(--t-lg);
  margin-bottom:6px; }
.bc.dragging { opacity:.35; }
.bc.dropTo { box-shadow:inset 3px 0 0 var(--accent); }
.grpCards.dropTo { outline:1px dashed var(--accent); outline-offset:3px;
  border-radius:var(--r); }
.palGroups { display:flex; flex-wrap:wrap; gap:4px; }
.palGroup { border:1px solid var(--border); background:var(--bg);
  color:var(--muted); border-radius:var(--r-pill); cursor:pointer;
  padding:4px 10px; font:550 var(--t-xs)/1.4 var(--ui);
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.palGroup:hover { color:var(--text); border-color:var(--border-hi); }
.palGroup.on { background:var(--card); border-color:var(--accent); color:var(--text); }
.bc::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  border-radius:inherit; opacity:.6;
}
.bc { position:relative; }
.bc > * { position:relative; z-index:1; }
body[data-cards="plain"] .bc::after { content:none; }
body[data-cards="grid"] .bc::after {
  background-image:
    linear-gradient(var(--border-hi) 1px, transparent 1px),
    linear-gradient(90deg, var(--border-hi) 1px, transparent 1px);
  background-size:16px 16px;
  mask-image:linear-gradient(180deg, #000 0%, transparent 85%);
}
body[data-cards="dots"] .bc::after {
  background-image:radial-gradient(var(--border-hi) 1px, transparent 1px);
  background-size:12px 12px;
  mask-image:linear-gradient(180deg, #000 0%, transparent 85%);
}
body[data-cards="lines"] .bc::after {
  background-image:repeating-linear-gradient(135deg,
    var(--border-hi) 0 1px, transparent 1px 9px);
  mask-image:linear-gradient(180deg, #000 0%, transparent 80%);
}
body[data-cards="glow"] .bc::after {
  background:radial-gradient(120% 90% at 0% 0%,
    var(--accent-soft), transparent 62%);
  opacity:1;
}
body[data-cards="edge"] .bc::after {
  background:linear-gradient(180deg, var(--border-hi) 0 2px, transparent 2px);
  opacity:1;
}
.palette.card { flex-direction:column; align-items:stretch; gap:var(--s-2);
  width:min(260px, calc(100vw - 24px)); }
.palRow { display:flex; gap:6px; flex-wrap:wrap; }
.palLab { font:600 var(--t-xs)/1 var(--ui); color:var(--gray);
  letter-spacing:.06em; text-transform:uppercase; }
.palHint { font-size:var(--t-xs); color:var(--gray); line-height:1.45; }
.palSep { height:1px; background:var(--line); margin:var(--s-1) 0; }
.palStyles { display:grid; gap:4px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.palStyle { display:flex; align-items:center; gap:7px; min-width:0;
  padding:5px 7px; border-radius:var(--r-sm); cursor:pointer;
  border:1px solid transparent; background:transparent; color:var(--muted);
  font:550 var(--t-xs)/1.3 var(--ui); text-align:left; }
.palStyle:hover { background:var(--card); color:var(--text); }
.palStyle.on { background:var(--card); border-color:var(--border-hi); color:var(--text); }
.palStyle span:last-child { min-width:0; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.palSwatch { width:26px; height:18px; flex:none; border-radius:4px;
  border:1px solid var(--border); background:var(--card); }
.palSwatch[data-cards="grid"] {
  background-image:
    linear-gradient(var(--border-hi) 1px, transparent 1px),
    linear-gradient(90deg, var(--border-hi) 1px, transparent 1px);
  background-size:6px 6px; }
.palSwatch[data-cards="dots"] {
  background-image:radial-gradient(var(--border-hi) 1px, transparent 1px);
  background-size:5px 5px; }
.palSwatch[data-cards="lines"] {
  background-image:repeating-linear-gradient(135deg,
    var(--border-hi) 0 1px, transparent 1px 5px); }
.palSwatch[data-cards="glow"] {
  background:radial-gradient(120% 90% at 0% 0%, var(--accent-soft), var(--card) 70%); }
.palSwatch[data-cards="edge"] {
  background:linear-gradient(180deg, var(--border-hi) 0 3px, var(--card) 3px); }
.bc.locked { background-image:repeating-linear-gradient(135deg,
  transparent 0 7px, color-mix(in srgb, var(--muted) 7%, transparent) 7px 8px); }
.btn.off, .quick.off, .paint.off { opacity:.4; cursor:not-allowed; }
.btn.off:hover, .quick.off:hover, .paint.off:hover {
  border-color:var(--border); background:var(--card); }
.tagLock { flex:none; font-style:normal; font:600 var(--t-xs) var(--ui);
  text-transform:uppercase; letter-spacing:.06em; padding:2px 6px;
  border-radius:var(--r-pill); color:var(--muted); background:rgba(121,131,138,.13);
  border:1px solid var(--border-hi); white-space:nowrap; }
.lockBar { margin:9px 20px 0; padding:8px 12px; border-radius:var(--r-sm);
  font-size:var(--t-sm); line-height:1.45; color:var(--amber);
  background:rgba(251,191,36,.09); border:1px solid rgba(251,191,36,.28); }
.lockBar[hidden] { display:none; }
.botPick { margin:-4px 0 4px; }
.botPick[hidden] { display:none; }
.botPickHead { display:flex; align-items:center; gap:8px; margin-bottom:8px;
  flex-wrap:wrap; }
.botPickHead .lbl { font-size:var(--t-sm); font-weight:650; color:var(--muted);
  text-transform:uppercase; letter-spacing:.05em; }
.botPickHead .cnt { font:var(--t-sm) var(--mono); color:var(--gray); margin-right:auto; }
.botGrid { display:grid; gap:7px; max-height:260px; overflow-y:auto;
  grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); }
.botOpt { position:relative; min-width:0; display:flex; align-items:center; gap:9px;
  padding:8px 10px; border:1px solid var(--border); border-radius:var(--r-sm);
  background:var(--bg); cursor:pointer; user-select:none;
  transition:border-color .12s, background .12s; }
.botOpt:hover { border-color:var(--border-hi); background:var(--card); }
.botOpt input { position:absolute; opacity:0; width:0; height:0; }
.botOpt .col { min-width:0; display:flex; flex-direction:column; }
.botOpt .nm { font-size:var(--t-md); font-weight:600; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.botOpt .st { font:var(--t-xs) var(--mono); color:var(--gray); min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.botOpt .tick { flex:none; margin-left:auto; width:16px; height:16px;
  display:grid; place-items:center; border-radius:5px; font-size:var(--t-xs);
  color:transparent; border:1px solid var(--border-hi); background:var(--bg); }
.botOpt.on { border-color:var(--accent); background:var(--accent-soft); }
.botOpt.on .tick { color:#0b0d0e; background:var(--accent); border-color:var(--accent); }
.botOpt:focus-within { border-color:var(--accent); }
.userRow .tag.lock { color:var(--muted); background:rgba(121,131,138,.13); }
.userRow .tag.warn { color:var(--amber); background:var(--card-hi); }
.paint { flex:none; width:24px; height:24px; padding:0; display:grid;
  place-items:center; border:1px solid var(--border); border-radius:var(--r-sm);
  background:var(--bg); cursor:pointer; transition:border-color .12s; }
.paint:hover { border-color:var(--accent); }
.paint i { width:11px; height:11px; border-radius:50%; display:block;
  background:var(--dab, transparent); border:1.5px solid var(--dab, var(--gray)); }
.paint[data-color="red"]    { --dab:var(--red); }
.paint[data-color="amber"]  { --dab:var(--amber); }
.paint[data-color="green"]  { --dab:var(--green); }
.paint[data-color="blue"]   { --dab:#60a5fa; }
.paint[data-color="violet"] { --dab:#a78bfa; }
.paint[data-color="gray"]   { --dab:var(--gray); }
.palette { position:fixed; z-index:400; display:flex; gap:6px; padding:7px;
  background:var(--card-hi); border:1px solid var(--border-hi);
  border-radius:var(--r-sm); box-shadow:0 10px 30px rgba(0,0,0,.5); }
.dab { width:20px; height:20px; padding:0; border-radius:50%; cursor:pointer;
  border:2px solid transparent; }
.dab.on { outline:2px solid var(--text); outline-offset:2px; }
.dab[data-color="red"]    { background:var(--red); }
.dab[data-color="amber"]  { background:var(--amber); }
.dab[data-color="green"]  { background:var(--green); }
.dab[data-color="blue"]   { background:#60a5fa; }
.dab[data-color="violet"] { background:#a78bfa; }
.dab[data-color="gray"]   { background:var(--gray); }
.dab.none { background:var(--bg); border-color:var(--border-hi); position:relative; }
.dab.none::after { content:''; position:absolute; inset:3px 1px; margin:auto;
  height:1.5px; background:var(--gray); rotate:-45deg; }
#logDetails { flex:none; justify-content:center; padding:7px 0; width:38px;
  font-size:16px; line-height:1; letter-spacing:0; color:var(--gray); }
#logDetails.on { color:var(--accent); border-color:var(--accent);
  background:var(--accent-soft); }
#logDetails:hover { color:var(--text); }
#logDetails.on:hover { color:var(--accent); }
.auditList { display:grid; gap:1px; background:var(--line);
  border:1px solid var(--border); border-radius:var(--r); overflow:hidden; }
.auditRow { display:grid; gap:12px; align-items:start; padding:10px 13px;
  background:var(--card); grid-template-columns:max-content 130px minmax(0,1fr) max-content; }
.auditRow:hover { background:var(--card-hi); }
.auditRow .at { font:var(--t-sm) var(--mono); color:var(--gray); }
.auditRow .who { font-size:var(--t-md); font-weight:600; min-width:0; }
.auditRow .who i { display:block; font-style:normal; font-size:var(--t-xs);
  color:var(--muted); font-weight:500; }
.auditRow .what { min-width:0; font-size:var(--t-md); }
.auditRow .what b { font-weight:600; }
.auditRow .tg { color:var(--accent); font-family:var(--mono); font-size:var(--t-sm);
  margin-left:6px; }
.auditRow .own { color:var(--amber); font-size:var(--t-sm); margin-left:6px;
  white-space:nowrap; }
.auditRow .det { color:var(--muted); font-size:var(--t-sm); margin-top:3px;
  line-height:1.45; word-break:break-word; }
.auditRow .ip { font:var(--t-sm) var(--mono); color:var(--gray); text-align:right; }
.auditRow.auditGrp { cursor:pointer; }
.auditRow .auditN { margin-left:6px; padding:1px 6px; border-radius:var(--r-pill);
  background:var(--accent-soft); color:var(--accent); font:var(--t-xs) var(--mono); white-space:nowrap; }
.auditRow .auditMore { margin-top:4px; padding-left:8px; border-left:2px solid var(--line); }
@media (max-width:900px) {
  .auditRow { grid-template-columns:1fr; gap:4px; }
  .auditRow .ip { text-align:left; }
}
.astLog { display:grid; gap:var(--s-3); max-width:820px; }
.astMsg { min-width:0; font-size:var(--t-md); line-height:1.5; }
.astMine { justify-self:end; max-width:min(560px, 92%); padding:var(--s-2) var(--s-3);
  border-radius:var(--r); background:var(--accent-soft); }
.astBot { max-width:100%; padding:var(--s-3); border-radius:var(--r);
  background:var(--card); border:1px solid var(--line); }
.astWait .astText { color:var(--muted); }
.astMeta { font:var(--t-xs) var(--mono); color:var(--gray); margin-bottom:3px; }
.astText { white-space:pre-wrap; word-break:break-word; }
.astText b { font-weight:650; }
.astTools { margin-top:var(--s-2); font:var(--t-xs) var(--mono); color:var(--muted);
  word-break:break-word; }
.astSrc { display:flex; flex-wrap:wrap; gap:var(--s-1) var(--s-3); margin-top:var(--s-2);
  font-size:var(--t-sm); }
.astSrc span { color:var(--muted); }
.astSrc a { color:var(--accent); text-decoration:none; max-width:100%; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.astSrc a:hover { text-decoration:underline; }
.astEv { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--s-2);
  font-size:var(--t-sm); color:var(--muted); padding:0 var(--s-1); }
.astTag { padding:1px 7px; border-radius:var(--r-pill); color:var(--amber);
  background:rgba(251,191,36,.13); font:600 var(--t-xs)/1.5 var(--ui); }
.astTime { font:var(--t-xs) var(--mono); color:var(--gray); margin-left:auto; }
.astAsk { margin-top:var(--s-3); padding-top:var(--s-3); border-top:1px solid var(--line); }
.astAsk.done { color:var(--muted); font-size:var(--t-sm); }
.astWhy { color:var(--amber); font-size:var(--t-sm); margin-bottom:var(--s-2); }
.astAskRow { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2); }
.astLeft { font:var(--t-xs) var(--mono); color:var(--gray); }
.astEmpty { color:var(--muted); font-size:var(--t-md); max-width:560px; line-height:1.55; }
#s-assistant .head .btn { white-space:nowrap; }
#s-assistant .head { flex-wrap:wrap; row-gap:var(--s-2); }
.astNotes { display:grid; gap:var(--s-2); margin:var(--s-2) 0; }
.astNote { display:flex; align-items:flex-start; gap:var(--s-2); padding:var(--s-2) var(--s-3);
  border-radius:var(--r); background:var(--card); border:1px solid var(--line); font-size:var(--t-md); }
.astNote span { flex:1; min-width:0; line-height:1.45; word-break:break-word; }
.astBar { display:flex; align-items:flex-end; gap:var(--s-2); padding:var(--s-3) var(--s-5);
  border-top:1px solid var(--line); background:var(--panel); }
.astBar textarea { flex:1; min-width:0; max-width:820px; resize:none; min-height:38px;
  box-sizing:border-box; overflow-y:hidden;
  max-height:160px; padding:9px 12px; border-radius:var(--r); border:1px solid var(--line);
  background:var(--card); color:var(--text); font:var(--t-md)/1.4 var(--ui); }
.astBar textarea:focus { outline:none; border-color:var(--border-hi); }
.astBar textarea::placeholder { color:var(--gray); }
@media (max-width:760px) {
  .astBar { padding:var(--s-2) var(--s-3); }
  .astMine { max-width:100%; }
}
.drawerBack { position:fixed; inset:0; z-index:150; display:none;
  background:rgba(4,5,6,.5); }
.drawerBack.on { display:block; }
.drawerBack { display:none; align-items:center; justify-content:flex-end;
  padding:24px; }
.drawerBack.on { display:flex; }
.drawer { position:relative; width:min(420px,100%); max-height:min(78vh,720px);
  background:var(--panel); border:1px solid var(--border-hi);
  border-radius:var(--r); box-shadow:0 24px 70px rgba(0,0,0,.6);
  display:flex; flex-direction:column; overflow:hidden;
  animation:slideIn .18s ease-out; }
@keyframes slideIn { from { translate:16px 0; opacity:.6; } to { translate:0 0; opacity:1; } }
.drawerHead { display:flex; align-items:flex-start; gap:12px; padding:16px 18px;
  border-bottom:1px solid var(--border); flex:none; }
.drawerHead .t { font-size:var(--t-lg); font-weight:650; letter-spacing:-.2px; }
.drawerHead .s { font-size:var(--t-sm); color:var(--muted); margin-top:3px; line-height:1.45; }
.drawerBody { flex:1; min-height:0; overflow-y:auto; padding:16px 18px;
  display:grid; gap:12px; align-content:start; }
.drawerBody input[type=text], .drawerBody input[type=password],
.drawerBody input[type=number], .drawerBody select {
  width:100%; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); color:var(--text); padding:9px 11px;
  font:var(--t-md) var(--ui); outline:none; }
.drawerBody textarea { width:100%; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); color:var(--text); padding:10px 12px;
  font:var(--t-md)/1.55 var(--mono); outline:none; resize:vertical; }
.drawerBody input:focus, .drawerBody select:focus, .drawerBody textarea:focus {
  border-color:var(--accent); }
.drawerErr { color:var(--red); font-size:var(--t-md); }
.drawerFoot { display:flex; gap:8px; justify-content:flex-end; padding:14px 18px;
  border-top:1px solid var(--border); }
@media (prefers-reduced-motion:reduce) { .drawer { animation:none; } }
.seg.sm button { padding:4px 8px; font-size:var(--t-sm); }
.opt.dim { opacity:.5; }
.presets { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r-sm); padding:12px 13px; }
.presets .pt { font-size:var(--t-md); font-weight:650; }
.presets .ph { font-size:var(--t-sm); color:var(--muted); margin:3px 0 9px; line-height:1.45; }
.presets .pl { display:flex; flex-wrap:wrap; gap:6px; }
.drawerBody .fld .hint { font-size:var(--t-sm); color:var(--muted); line-height:1.45; }
.itemTip { position:fixed; z-index:180; pointer-events:none; max-width:280px;
  background:var(--panel); border:1px solid var(--border-hi); border-radius:var(--r-sm);
  padding:9px 11px; box-shadow:0 10px 30px rgba(0,0,0,.55);
  opacity:0; transition:opacity .1s; }
.itemTip.on { opacity:1; }
.itemTip .ti { font-size:var(--t-md); font-weight:650; line-height:1.35; }
.itemTip .ti.custom { color:var(--accent); }
.itemTip .tid { font:var(--t-xs) var(--mono); color:var(--gray); margin-top:2px; }
.itemTip .tench { font-size:var(--t-sm); color:#a9a2e8; margin-top:6px; line-height:1.45; }
.itemTip .tdur { font-size:var(--t-sm); color:var(--muted); margin-top:5px; font-family:var(--mono); }
.itemTip .tlore { font-size:var(--t-sm); color:var(--muted); margin-top:6px; line-height:1.5; }
.itemTip .ttip { font-size:var(--t-xs); color:var(--gray); margin-top:8px;
  border-top:1px solid var(--line); padding-top:6px; }
.itemTip .tattr { margin-top:8px; border-top:1px solid var(--line); padding-top:6px; }
.itemTip .tattrHead { font-size:var(--t-xs); letter-spacing:.04em; text-transform:uppercase;
  color:var(--gray); margin-bottom:4px; }
.itemTip .tattrSlot { font-size:var(--t-xs); color:var(--muted); margin:5px 0 2px; }
.itemTip .tattrSlot:first-of-type { margin-top:0; }
.itemTip .tattrRow { display:flex; justify-content:space-between; gap:14px;
  font-size:var(--t-sm); line-height:1.5; }
.itemTip .tattrRow span { color:#c3cacf; }
.itemTip .tattrRow b { font-family:var(--mono); font-weight:700; color:#7ee2b8; }
.itemTip .teff { margin-top:8px; border-top:1px solid var(--line); padding-top:6px; }
.itemTip .teffRow { display:flex; justify-content:space-between; gap:14px;
  font-size:var(--t-sm); line-height:1.5; }
.itemTip .teffRow.good span { color:#7ee2b8; }
.itemTip .teffRow.bad span { color:#f4a3a8; }
.itemTip .teffRow b { font-family:var(--mono); font-weight:600; color:var(--muted); }
.log dd.mine { color:var(--text); background:var(--accent-soft);
  border-left-color:var(--accent); border-radius:0 4px 4px 0; }
.log dd .tag { position:absolute; left:8px; top:2.5px; width:46px;
  font:700 var(--t-xs)/1 var(--ui); letter-spacing:.02em; padding:3px 0;
  border-radius:4px; text-align:center;
  overflow:hidden; white-space:nowrap;
  background:transparent; color:transparent; }
@media (max-width:760px) { .log dd .tag { left:4px; } }
.log dd .tag.dim { background:rgba(255,255,255,.055); color:var(--gray); }
.log dd.ch-g .tag.dim { background:rgba(52,211,153,.10); color:var(--green); }
.log dd.ch-l .tag.dim { background:rgba(251,191,36,.11); color:var(--amber); }
.log dd.mine .tag { background:var(--accent); color:#0b0d0e; }
.log dd.mine.tpa { background:rgba(251,191,36,.13); border-left-color:var(--amber); }
.log dd.mine.tpa .tag { background:var(--amber); }
.log dd.mine.pm-out, .log dd.mine.tpa-out {
  background:transparent; border-left-color:var(--gray); }
.log dd.mine.pm-out .tag, .log dd.mine.tpa-out .tag {
  background:var(--gray); color:var(--panel); }
.navBtn, .navScrim { display:none; }
.navBtn { position:fixed; z-index:80; left:10px; top:10px; width:36px; height:36px;
  border-radius:var(--r-sm); border:1px solid var(--border); background:var(--card);
  color:var(--text); cursor:pointer; place-items:center; }
.navBtn svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; }
@media (max-width:760px) { .navBtn { display:grid; } }
.navScrim, .plugScrim { position:fixed; inset:0; z-index:70; background:rgba(4,5,6,.6); }
.plugTab { display:none; position:fixed; right:0; top:50%; translate:0 -50%;
  z-index:50; flex-direction:column; align-items:center; gap:6px;
  padding:14px 6px; border:1px solid var(--border-hi); border-right:none;
  border-radius:var(--r) 0 0 var(--r); background:var(--card); color:var(--muted);
  cursor:pointer; box-shadow:-6px 0 22px rgba(0,0,0,.32);
  transition:color .12s, background .12s, padding-right .12s; }
.plugTab b { writing-mode:vertical-rl; text-orientation:upright;
  font:600 var(--t-xs) var(--ui); letter-spacing:.14em; text-transform:uppercase; }
.plugTab .chev { font-size:15px; line-height:1; color:var(--accent); }
.plugTab:hover { background:var(--card-hi); color:var(--text); padding-right:9px; }
body[data-float="on"] .plugTab { right:12px; border-right:1px solid var(--border-hi);
  border-radius:var(--r); }
.plugClose, .plugScrim { display:none; }
.plugHide { display:inline-flex; flex:none; }
@media (max-width:1180px) { .plugHide { display:none; } }
@media (max-width:1180px) { .plugClose { display:grid; } }
.plugHead .t { min-width:0; }
.linkCode { display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--r-sm);
  padding:12px 14px; margin-top:10px; }
.linkCode b { font:700 24px/1 var(--mono); letter-spacing:.22em; color:var(--accent); }
.linkCode .h { font-size:var(--t-sm); color:var(--muted); line-height:1.5; flex:1; min-width:180px; }
.botPick { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.evList { display:grid; gap:0; margin-top:4px; }
.linked { display:flex; align-items:center; gap:9px; font-size:var(--t-md); }
.linked .beat { flex:none; }
.linked.off .beat { background:var(--gray); box-shadow:0 0 0 3px rgba(120,130,140,.12); }
.evGroup { margin-top:6px; }
.evTitle { font-size:var(--t-xs); font-weight:600; color:var(--gray); letter-spacing:.06em;
  text-transform:uppercase; margin:14px 0 2px; }
.evGroup:first-child .evTitle { margin-top:6px; }
.opt.idle .t { color:var(--muted); }
.navFoot { position:relative; }
.me[aria-expanded="true"], .me:hover { background:var(--card); }
.navFoot .chev { transition:rotate .16s; }
.navFoot.open .chev { rotate:180deg; }
.meMenu { display:none; position:absolute; left:8px; right:8px; bottom:calc(100% + 6px);
  z-index:60; background:var(--panel); border:1px solid var(--border-hi);
  border-radius:var(--r); box-shadow:0 14px 36px rgba(0,0,0,.55); padding:6px;
  max-height:min(70vh,420px); overflow-y:auto; }
.navFoot.open .meMenu { display:block; }
.meHead { display:flex; align-items:center; gap:10px; padding:9px 9px 11px;
  border-bottom:1px solid var(--line); margin-bottom:5px; }
.meHead .nm { font-size:var(--t-md); font-weight:650; }
.meHead .sub { font-size:var(--t-xs); color:var(--muted); }
.meItem { display:flex; align-items:flex-start; gap:10px; padding:8px 9px;
  border-radius:var(--r-sm); cursor:pointer; color:var(--muted);
  transition:background .12s, color .12s; }
.meItem:hover, .meItem:focus-visible { background:var(--card); color:var(--text); }
.meItem svg { width:16px; height:16px; flex:none; margin-top:1px; stroke:currentColor;
  fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.meItem .t { font-size:var(--t-md); font-weight:550; color:var(--text); }
.meItem .h { font-size:var(--t-xs); color:var(--muted); margin-top:2px; line-height:1.4; }
.meItem.danger .t { color:var(--red); }
.meItem.danger:hover { background:rgba(248,113,113,.1); }
.meSep { height:1px; background:var(--line); margin:5px 2px; }
.aboutList { display:grid; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--r-sm); overflow:hidden; margin-bottom:16px; }
.aboutRow { display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  padding:9px 12px; background:var(--card); font-size:var(--t-md); }
.aboutRow span { color:var(--muted); flex:none; }
.aboutRow b { font:550 var(--t-sm) var(--mono); min-width:0; text-align:right;
  overflow-wrap:anywhere; }
.aboutSub { padding:12px 12px 6px; background:var(--card); color:var(--gray);
  font:600 var(--t-xs)/1 var(--ui); letter-spacing:.06em; text-transform:uppercase; }
.aboutRow:has(> .btn) { align-items:center; }
.sessBox { display:grid; gap:8px; }
.sessRow { display:flex; align-items:center; gap:12px; min-width:0;
  padding:10px 12px; border-radius:var(--r-sm);
  background:var(--card); border:1px solid var(--border); }
.sessRow.on { border-color:var(--accent); background:var(--card-hi); }
.sessRow .col { flex:1; min-width:0; }
.sessRow .t { font-size:var(--t-md); font-weight:550; display:flex; align-items:center; gap:8px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sessRow .h { font:var(--t-xs) var(--mono); color:var(--muted); margin-top:3px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sessNow { font:var(--t-xs) var(--ui); font-style:normal; flex:none;
  padding:1px 7px; border-radius:var(--r-pill); color:var(--accent);
  background:var(--accent-soft); }
.sessHint { font-size:var(--t-sm); color:var(--gray); line-height:1.55; margin-top:4px; }
.sessActs { display:flex; gap:8px; flex-wrap:wrap; margin-top:4px; }
.botCards { display:grid; gap:8px; margin-top:14px; }
.botCard { min-width:0; background:var(--card); border:1px solid var(--border); border-radius:var(--r); }
.botCard.open { border-color:var(--border-hi); }
.botCard.off { opacity:.62; }
.botHead { display:flex; align-items:center; gap:10px; padding:11px 13px;
  cursor:pointer; user-select:none; }
.botHead:hover { background:var(--card-hi); border-radius:var(--r); }
.botHead .chev { color:var(--gray); font-size:var(--t-xs); transition:rotate .16s; flex:none; }
.botCard.open .botHead .chev { rotate:90deg; }
.botHead .nm { font-size:var(--t-md); font-weight:650; }
.botHead .h { font-size:var(--t-xs); color:var(--muted); margin-top:2px; }
.botBody { display:none; border-top:1px solid var(--border); padding:4px 13px 13px; }
.botCard.open .botBody { display:block; }
.tagOwn { font-size:var(--t-xs); font-weight:700; color:var(--accent);
  background:var(--accent-soft); padding:1.5px 5px; border-radius:5px;
  vertical-align:1px; margin-left:4px; }
.gearRow { margin-bottom:12px; display:flex; align-items:center; gap:var(--s-3); }
.gearRow .invLabel { margin:0; min-width:0; flex:1; line-height:1.4; }
.gearCells { display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:4px; max-width:212px; flex:none; }
.slot.ghost { cursor:default; }
.slot.ghost .ico { opacity:.22; filter:grayscale(1); }
.slot.locked { pointer-events:none; opacity:.55; }
.curBadge { display:flex; align-items:center; gap:9px; margin-top:10px;
  padding:7px 10px; background:var(--bg); border:1px solid var(--border-hi);
  border-radius:var(--r-sm); font-size:var(--t-sm); color:var(--muted); }
.curBadge .ico { width:22px; flex:none; }
.curBadge b { color:var(--text); font-weight:600; }
.resGrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:10px; margin-bottom:14px; }
.resCard { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); padding:12px 14px; }
.resCard.wide { grid-column:1/-1; }
.resCard h4 { margin:0 0 8px; font-size:var(--t-xs); font-weight:700; color:var(--gray);
  text-transform:uppercase; letter-spacing:.06em; }
.resRow { display:flex; align-items:baseline; justify-content:space-between;
  gap:12px; padding:4px 0; font-size:var(--t-md); color:var(--muted); }
.resRow b { color:var(--text); font:550 var(--t-md) var(--mono);
  font-variant-numeric:tabular-nums; text-align:right; min-width:0; }
.logWrap { position:relative; }
.logJump { position:sticky; bottom:8px; left:50%; transform:translateX(-50%);
  display:block; z-index:5; border:1px solid var(--border-hi);
  background:var(--accent); color:#fff; font:600 var(--t-sm)/1 var(--ui);
  padding:7px 12px; border-radius:var(--r-pill); cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.45); max-width:calc(100% - 24px); }
.logJump:hover { filter:brightness(1.08); }
.logJump[hidden] { display:none; }
.log dd.mine.trade { background:rgba(52,211,153,.13); border-left-color:var(--green); }
.log dd.mine.mention { background:rgba(96,165,250,.14); border-left-color:#60a5fa; }
.log dd.mine.notice { background:rgba(167,139,250,.15); border-left-color:#a78bfa; }
.log dd.mine.notice .tag { background:#a78bfa; color:#14101f; }
.log dd.mine.event { background:rgba(34,211,238,.12); border-left-color:#22d3ee; }
.log dd.mine.event .tag { background:#22d3ee; color:#08222a; }
.log dd.mine.mod { background:rgba(251,113,133,.12); border-left-color:#fb7185; }
.log dd.mine.mod .tag { background:#fb7185; color:#2a0d13; }
.log dd.mine.ch-g, .log dd.mine.ch-l { color:var(--text); }
.chatBtns { display:inline-flex; flex-wrap:wrap; gap:6px; margin-left:8px;
  vertical-align:middle; }
.chatBtn { display:inline-flex; align-items:baseline; gap:6px; cursor:pointer;
  border:1px solid var(--border-hi); border-radius:7px; padding:3px 9px;
  background:var(--accent); color:#fff; font:600 var(--t-xs)/1.35 var(--ui); }
.chatBtn code { font:var(--t-xs)/1 var(--mono); opacity:.72; }
.chatBtn:hover:not(:disabled) { filter:brightness(1.1); }
.chatBtn.sug { background:transparent; color:var(--text); }
.chatBtn.open { background:var(--amber); border-color:var(--amber);
  color:var(--bg); text-decoration:none; }
.chatBtn:disabled { cursor:default; opacity:.55; }
.chatBtn.done { background:var(--green); border-color:var(--green); }
.chatBtn.done::after { content:'✓'; font-weight:700; }
.rawHint { color:var(--muted); font-size:var(--t-sm); line-height:1.5; margin:0 0 10px; }
.modalRow.left { justify-content:flex-start; align-items:center; gap:10px; }
.rawNote { color:var(--gray); font-size:var(--t-sm); line-height:1.4; }
.rawVia { margin:0 0 10px; padding-left:9px; border-left:2px solid var(--amber);
  color:var(--muted); font-size:var(--t-sm); line-height:1.5; }
.rawVia b { color:var(--text); font-weight:600; }
.rawBox { margin:0; max-height:52vh; overflow:auto; background:var(--bg);
  border:1px solid var(--border); border-radius:var(--r-sm); padding:10px 12px;
  font:var(--t-sm)/1.55 var(--mono); color:#c3cacf; white-space:pre; }
.wip { display:none; flex:1; min-height:0; align-items:center; justify-content:center;
  padding:24px; }
body[data-pov=off] .povWrap { display:none; }
body[data-pov=off] .wip { display:flex; }
.wipCard { max-width:420px; text-align:center; background:var(--panel);
  border:1px solid var(--border); border-radius:var(--r); padding:26px 24px; }
.wipIcon { width:34px; height:34px; margin-bottom:12px; display:block;
  margin-inline:auto; fill:none; stroke:var(--amber); stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round; }
.wipCard h3 { margin:0 0 8px; font-size:var(--t-lg); font-weight:650; letter-spacing:-.2px; }
.wipCard p { margin:0 0 14px; font-size:var(--t-md); color:var(--muted); line-height:1.55; }
.wipNote { font-size:var(--t-sm); color:var(--gray); line-height:1.5;
  border-top:1px solid var(--border); padding-top:12px; }
.clog { max-height:58vh; overflow-y:auto; margin-bottom:14px; }
.clEntry { border-top:1px solid var(--line); padding:12px 0; }
.clEntry:first-child { border-top:0; padding-top:0; }
.clEntry > summary { cursor:pointer; list-style:none; }
.clEntry > summary::-webkit-details-marker { display:none; }
.clHead { display:flex; align-items:baseline; gap:10px; margin-bottom:4px; }
.clHead b { font:550 var(--t-sm) var(--mono); color:var(--accent); }
.clHead span { font-size:var(--t-sm); color:var(--gray); }
.clTitle { font-size:var(--t-md); font-weight:600; line-height:1.45; }
.clLead { margin:8px 0 0; font-size:var(--t-md); color:var(--muted); line-height:1.6; }
.clItems { margin:9px 0 0; padding-left:18px; font-size:var(--t-md); line-height:1.6;
  color:var(--muted); }
.clItems li { margin-bottom:5px; }
.clMore, .clPrev { margin-top:10px; }
.clMore > summary, .clPrev > summary { cursor:pointer; font-size:var(--t-sm);
  color:var(--gray); padding:6px 0; }
.clPrev { border-top:1px solid var(--border); padding-top:6px; }
#s-map .scroll { overflow:hidden; padding:0; }
#s-map .setWrap { max-width:none; height:100%; display:flex; flex-direction:column;
  gap:10px; padding:12px; box-sizing:border-box; }
.mapBar { display:flex; align-items:center; gap:8px; flex:none; flex-wrap:wrap; }
.barSep { width:1px; height:18px; background:var(--border-hi); flex:none; margin:0 2px; }
.mapAt { font:var(--t-sm) var(--mono); color:var(--muted); padding:0 6px; }
.mapSel { background:var(--card); border:1px solid var(--border); color:var(--text);
  border-radius:var(--r); padding:5px 8px; font-size:var(--t-sm); cursor:pointer; }
.mapSel:hover { border-color:var(--accent); }
.mapProgress:empty { display:none; }
.mapBarLine { display:flex; align-items:center; gap:10px; font-size:var(--t-sm);
  color:var(--muted); }
.mapBarTrack { flex:1; height:6px; border-radius:3px; background:var(--card-hi);
  overflow:hidden; }
.mapBarTrack i { display:block; height:100%; background:var(--accent);
  transition:width .3s; }
.mapBody { flex:1; min-height:0; display:grid; grid-template-columns:1fr auto;
  gap:10px; }
.mapSide { width:260px; }
.mapBody:not(:has(.mapSide .mapCard:not(:empty))) { grid-template-columns:1fr; }
.mapSide:not(:has(.mapCard:not(:empty))) { display:none; }
.mapCanvas { width:100%; height:100%; border-radius:var(--r);
  border:1px solid var(--border); background:#0b0f16; touch-action:none;
  cursor:grab; display:block; }
.mapCanvas:active { cursor:grabbing; }
.mapSide { overflow-y:auto; display:flex; flex-direction:column; gap:10px;
  min-width:0; }
.mapCard { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); padding:10px 12px; }
.mapCard h4 { margin:0 0 8px; font-size:var(--t-sm); font-weight:600; color:var(--muted); }
.mapCard.wide { padding:8px 12px; }
.mapRow { display:flex; align-items:center; gap:8px; font-size:var(--t-sm);
  padding:3px 0; min-width:0; }
.mapRow span:first-child { color:var(--muted); flex:none; }
.mapRow b { font:var(--t-sm) var(--mono); margin-left:auto; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.mapRow .tag { flex:none; }
.wipeRow { flex-wrap:wrap; }
.wipeRow .tag { margin-left:auto; }
.crewLine { display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
.crewChip { display:inline-flex; align-items:center; gap:6px; font-size:var(--t-sm);
  padding:3px 8px; border-radius:var(--r-pill); background:var(--card-hi);
  border:1px solid var(--border); max-width:100%; min-width:0; }
.crewChip > span:first-of-type { color:var(--muted); flex:none; }
.crewChip b { font:var(--t-sm) var(--mono); overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; min-width:0; }
@media (max-width:900px) {
  .mapBody { grid-template-columns:1fr; grid-template-rows:1fr auto; }
  .mapSide { max-height:38vh; }
}
@media (max-width:760px) {
  .mapBar { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
  .mapBar::-webkit-scrollbar { display:none; }
  .mapBar > * { flex:none; }
  .mapBar .spacer { display:none; }
}
.mapCrewRow { cursor:pointer; border-radius:var(--r-sm); padding:4px 6px;
  margin:0 -6px; }
.mapCrewRow:hover { background:var(--card-hi); }
.mapCrewRow.quiet { opacity:.55; }
.mapCrewRow.on { background:var(--accent-soft); }
.mapCrewRow.on span { color:var(--accent); font-weight:600; }
.mapCard .dot { width:8px; height:8px; border-radius:50%; flex:none;
  background:var(--gray); }
.mapCard .dot.on { background:var(--green); box-shadow:0 0 6px var(--green); }
.mapCard .btn { margin-top:8px; }
.mapCard button.tag { cursor:pointer; border:1px solid var(--border-hi);
  background:transparent; color:inherit; font:inherit; }
.mapCard button.tag:hover { border-color:var(--accent); }
.mapNearRow { cursor:pointer; border-radius:var(--r-sm); padding:4px 6px;
  margin:0 -6px; }
.mapNearRow:hover { background:var(--card-hi); }
.mapNearRow i { width:10px; height:10px; border-radius:3px; flex:none; }
.mapCard:empty { display:none; }
.adminBox { display:flex; flex-direction:column; gap:10px; text-align:left;
  max-height:min(68vh,620px); overflow-y:auto; padding-right:4px; }
.adminBox .mapRow { justify-content:flex-start; gap:8px; }
.huntRow { border-radius:var(--r-sm); padding:4px 6px; margin:0 -6px; }
.huntRow.on { background:rgba(251,191,36,.12); }
.huntRow.quiet { opacity:.55; }
.huntArrow { display:inline-block; font-style:normal; color:var(--amber);
  transform-origin:50% 50%; margin-left:4px; }
.huntPick { border-top:1px solid var(--border); margin-top:8px; padding-top:8px; }
.huntPickBtns { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.huntSub { color:var(--muted); font-size:var(--t-xs); margin-left:6px; }
.mapLegend { position:absolute; z-index:4; top:var(--s-2); left:var(--s-2);
  width:212px; max-height:calc(100% - 56px); display:flex; flex-direction:column;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  border:1px solid var(--border); border-radius:var(--r); backdrop-filter:blur(6px); }
.legHead { display:flex; align-items:center; justify-content:space-between; gap:var(--s-2);
  padding:var(--s-2) var(--s-3); background:none; border:0; color:var(--text);
  font:600 var(--t-sm) var(--ui); cursor:pointer; }
.legHead svg { width:14px; height:14px; fill:none; stroke:var(--muted); stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; transform:rotate(180deg); transition:transform .15s; }
.legHead:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; border-radius:var(--r); }
.mapLegend.shut { width:auto; }
.mapLegend.shut .legHead svg { transform:none; }
.mapLegend.shut .mapRibbon { display:none; }
.mapRibbon { min-height:0; display:flex; flex-direction:column;
  border-top:1px solid var(--border); }
.mapRibbon:empty { display:none; }
.ribNote { font-size:var(--t-sm); color:var(--amber); padding:var(--s-2) var(--s-3); }
.ribList { overflow-y:auto; padding:var(--s-1) 0; }
.ribBtn { width:100%; display:grid; grid-template-columns:16px minmax(0,1fr) auto;
  align-items:center; gap:var(--s-2); padding:5px var(--s-3); cursor:pointer;
  background:none; border:0; color:var(--text); font:var(--t-sm) var(--ui); text-align:left;
  transition:opacity .12s, background .12s; }
.ribBtn:hover { background:var(--card-hi); }
.ribBtn:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.ribBtn span { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ribBtn i { font:var(--t-xs) var(--mono); font-style:normal; color:var(--muted);
  font-variant-numeric:tabular-nums; }
.ribBtn:not(.on) { opacity:.4; }
.botSq { width:12px; height:12px; border-radius:3px; background:#a78bfa;
  box-shadow:0 0 0 2px rgba(0,0,0,.5); justify-self:center; }
.ribBtn:not(.on) span { text-decoration:line-through; text-decoration-color:var(--gray); }
.ico { display:block; image-rendering:pixelated; image-rendering:crisp-edges; }
.icoDot { width:10px; height:10px; border-radius:3px; display:block; }
.ribFoot { display:flex; gap:var(--s-1); padding:var(--s-2) var(--s-3);
  border-top:1px solid var(--border); }
.ribAll { flex:1; cursor:pointer; font:var(--t-xs) var(--ui); padding:4px 8px;
  border-radius:var(--r-sm); border:1px solid var(--border);
  background:transparent; color:var(--muted); }
.ribAll:hover { border-color:var(--border-hi); color:var(--text); }
.mapNote { position:absolute; right:var(--s-2); top:var(--s-2); max-width:calc(100% - 240px);
  padding:5px 10px; border-radius:var(--r-sm);
  background:color-mix(in srgb, var(--panel) 88%, transparent);
  border:1px solid var(--border); font-size:var(--t-xs); color:var(--muted);
  pointer-events:none; }
.mapNote:empty { display:none; }
@media (max-width:760px) {
  .mapNote { top:auto; bottom:44px; left:var(--s-2); max-width:none; }
}
.mapStage { position:relative; min-width:0; min-height:0; }
.mapHud { position:absolute; left:8px; bottom:8px; pointer-events:none;
  display:flex; align-items:center; gap:8px; font:var(--t-sm) var(--mono);
  padding:5px 9px; border-radius:var(--r-sm);
  background:rgba(9,12,18,.82); border:1px solid var(--border);
  color:var(--text); white-space:nowrap; max-width:calc(100% - 16px);
  overflow:hidden; text-overflow:ellipsis; }
.mapHud b { color:var(--accent); font-weight:600; }
.mapHud span { color:var(--muted); overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; min-width:0; }
.mapHud .hudDim { color:var(--gray); }
.mapPop { position:absolute; z-index:5; width:272px; box-sizing:border-box;
  background:var(--card); border:1px solid var(--border-hi);
  border-radius:var(--r); padding:10px 12px;
  box-shadow:0 12px 32px rgba(0,0,0,.45); }
.mapPop[hidden] { display:none; }
.popHead { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.popHead span { font-size:var(--t-sm); font-weight:600; color:var(--muted);
  text-transform:uppercase; letter-spacing:.06em;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; flex:1; }
.popX { flex:none; cursor:pointer; border:0; background:transparent;
  color:var(--gray); font-size:16px; line-height:1; padding:0 2px; }
.popX:hover { color:var(--text); }
.pickTop { display:flex; align-items:flex-start; gap:10px; margin-bottom:8px; }
.pickIcon { flex:none; width:52px; height:52px; display:flex;
  align-items:center; justify-content:center; border-radius:var(--r-sm);
  border:1px solid var(--border); background:rgba(9,12,18,.6); }
.pickWhere { min-width:0; flex:1; }
.pickXZ { display:block; font:var(--t-md) var(--mono); color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pickDist { display:block; margin-top:2px; font-size:var(--t-sm); color:var(--muted);
  overflow-wrap:anywhere; }
.pickDist b { font:var(--t-md) var(--mono); color:var(--text); }
.pickHint { display:block; margin-top:6px; font-size:var(--t-sm); color:var(--gray);
  line-height:1.35; overflow-wrap:anywhere; }
.pickLoot { display:flex; align-items:center; gap:8px; cursor:pointer;
  border-top:1px solid var(--border); margin-top:8px; padding-top:8px;
  font-size:var(--t-md); }
.pickLoot input[type=checkbox] { width:15px; height:15px; border-radius:4px; }
.pickLoot span { min-width:0; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; }
.pickLoot i { font-style:normal; font-size:var(--t-xs); color:var(--gray);
  margin-left:auto; flex:none; }
.pickLoot.on span { color:var(--green); }
.pickBy { font-size:var(--t-xs); color:var(--gray); margin-top:4px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pickUse { margin-top:8px; padding-top:8px; border-top:1px solid var(--border); }
.pickDrops { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
.pickDrops i { width:30px; height:30px; display:flex; align-items:center;
  justify-content:center; border-radius:var(--r-sm);
  border:1px solid var(--border); background:rgba(9,12,18,.6); }
.pickDrops img { image-rendering:pixelated; image-rendering:crisp-edges; }
.pickUseNote { font-size:var(--t-sm); line-height:1.45; color:var(--gray);
  overflow-wrap:anywhere; }
.pickBtns { display:grid; gap:6px; margin-top:10px; }
.pickBtns .pickMain { width:100%; justify-content:center; }
.pickBtns .pickCopy { justify-self:start; }
.pickPart { margin-top:8px; padding-top:8px; border-top:1px solid var(--border);
  min-width:0; }
.pickPart .h { font:600 var(--t-xs) var(--ui); letter-spacing:.06em;
  text-transform:uppercase; color:var(--gray); margin-bottom:4px; }
.pickPart .n { font-size:var(--t-sm); color:var(--text); }
.pickPart .n b { font:var(--t-md) var(--mono); }
.pickPart .n i { font-style:normal; color:var(--gray); }
.pickPart .o { margin-top:3px; font-size:var(--t-sm); color:var(--muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.claimBad { color:var(--amber); font-size:var(--t-sm); line-height:1.45; }
.claimQueue { margin-top:var(--s-2); padding-top:var(--s-2);
  border-top:1px solid var(--border); display:grid; gap:var(--s-1);
  justify-items:start; }
.claimQueue .note.dim { color:var(--gray); overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.claimBox { display:flex; flex-direction:column; gap:12px; text-align:left; }
.claimHead { display:flex; align-items:center; gap:10px; min-width:0; }
.claimWho { display:flex; flex-direction:column; gap:1px; min-width:0; }
.claimWho b { font-size:var(--t-md); }
.claimWho span { font:var(--t-xs) var(--mono); color:var(--gray);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.claimPart { display:flex; flex-direction:column; gap:6px; min-width:0; }
.claimPart > label { font-size:var(--t-xs); color:var(--muted); text-transform:uppercase;
  letter-spacing:.06em; display:flex; align-items:center; gap:8px; }
.claimPart input[type="text"], .claimPart select { width:100%; }
.claimShiftVal { font:var(--t-xs) var(--mono); color:var(--accent);
  text-transform:none; letter-spacing:0; }
.claimStep { cursor:pointer; border:1px solid var(--border-hi); background:transparent;
  color:var(--text); font:15px/1 var(--mono); min-width:34px; height:30px;
  border-radius:var(--r-sm); display:inline-flex; align-items:center;
  justify-content:center; padding:0 8px; }
.claimStep:hover { border-color:var(--accent); color:var(--accent); }
.claimSize { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.claimSize input { width:72px; text-align:center; }
.claimPad { display:flex; gap:12px; align-items:flex-start; flex-wrap:wrap; }
.claimPadGrid { display:grid; grid-template-columns:repeat(3, 34px);
  grid-template-rows:repeat(2, 30px); gap:4px; flex:none; }
.claimPadGrid button:nth-child(1) { grid-column:2; grid-row:1; }
.claimPadGrid button:nth-child(2) { grid-column:1; grid-row:2; }
.claimPadGrid button:nth-child(3) { grid-column:2; grid-row:2; }
.claimPadGrid button:nth-child(4) { grid-column:3; grid-row:2; }
.claimPadGrid button:nth-child(5) { grid-column:2; grid-row:3; }
.claimPadNote { flex:1; min-width:120px; display:flex; flex-direction:column; gap:6px; }
.claimPadNote .tag { align-self:flex-start; cursor:pointer;
  border:1px solid var(--border-hi); background:transparent; color:inherit;
  font:inherit; font-size:var(--t-xs); padding:4px 8px; border-radius:var(--r-sm); }
.claimPadNote .tag:hover { border-color:var(--accent); color:var(--accent); }
.claimNums { display:flex; flex-direction:column; gap:6px;
  padding:10px; border-radius:var(--r-sm); background:var(--card-hi);
  border:1px solid var(--border); }
.claimStats { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.claimStats span { display:flex; flex-direction:column; gap:1px; min-width:0; }
.claimStats b { font:600 var(--t-lg) var(--mono); font-variant-numeric:tabular-nums;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.claimStats i { font-style:normal; font-size:var(--t-xs); color:var(--gray);
  text-transform:uppercase; letter-spacing:.04em;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.claimNums .note { margin:0; }
.claimLog { margin-top:8px; padding:6px 8px; border-radius:var(--r-sm);
  background:var(--bg); border:1px solid var(--border);
  max-height:132px; overflow-y:auto; display:flex; flex-direction:column; gap:2px; }
.claimLog i { font:var(--t-xs)/1.45 var(--mono); font-style:normal; color:var(--muted);
  word-break:break-word; }
.claimLog i:last-child { color:var(--text); }
.claimGroup { display:flex; flex-direction:column; gap:8px; }
.claimGroup h4 { margin:0; display:flex; align-items:center; gap:8px;
  font-size:var(--t-sm); font-weight:600; color:var(--muted);
  text-transform:uppercase; letter-spacing:.06em; }
.claimGroup h4 b { margin-left:auto; font:var(--t-xs) var(--mono); color:var(--gray);
  text-transform:none; letter-spacing:0; }
.claimRow { display:flex; flex-direction:column; gap:8px;
  background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); padding:10px 12px; min-width:0; }
.claimRow.on { border-color:var(--accent); }
.claimRow.bad { border-left:2px solid var(--amber); }
.claimRowHead { display:flex; align-items:center; gap:10px; min-width:0; }
.claimCount { margin-left:auto; text-align:right; flex:none; }
.claimCount b { display:block; font:600 var(--t-lg) var(--mono); }
.claimCount i { font-style:normal; font-size:var(--t-xs); color:var(--gray);
  text-transform:uppercase; letter-spacing:.04em; }
.claimPeople { display:flex; flex-direction:column; gap:4px; }
.claimPeople > div { display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  min-width:0; }
.claimPeople > div > span { font-size:var(--t-xs); color:var(--muted); flex:none;
  min-width:78px; }
.claimChip { font:var(--t-xs) var(--mono); font-style:normal; padding:2px 3px 2px 7px;
  border-radius:var(--r-pill); background:var(--card-hi); border:1px solid var(--border);
  display:inline-flex; align-items:center; gap:2px; }
.claimChip.empty { color:var(--gray); font-family:inherit; font-size:var(--t-xs);
  border-style:dashed; padding:2px 7px; }
.chipX { width:18px; height:18px; flex:none; display:grid; place-items:center;
  padding:0; border:0; border-radius:var(--r-pill); background:transparent; cursor:pointer;
  color:var(--gray); font:var(--t-md)/1 var(--ui); }
.chipX:hover { background:var(--card); color:var(--amber); }
.claimMeta { font:var(--t-xs) var(--mono); color:var(--gray);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.claimBtns { display:flex; flex-wrap:wrap; gap:6px; }
.claimBtns .tag { cursor:pointer; border:1px solid var(--border-hi);
  background:transparent; color:inherit; font:inherit; font-size:var(--t-sm);
  padding:4px 9px; border-radius:var(--r-sm); }
.claimBtns .tag:hover { border-color:var(--accent); color:var(--accent); }
.claimBtns .tag.warn { color:var(--amber); border-color:rgba(251,191,36,.35); }
.claimBtns .tag.warn:hover { border-color:var(--amber); color:var(--amber); }
.clanRow { display:flex; align-items:center; gap:var(--s-3); padding:11px var(--s-3);
  background:var(--card); border:1px solid var(--border); border-radius:var(--r-sm);
  margin-bottom:var(--s-2); }
.clanRow .col { flex:1; min-width:0; }
.clanRow .nm { font-size:var(--t-md); font-weight:650; min-width:0; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.clanRow .rl { font-size:var(--t-sm); color:var(--muted); }
.clanRow .id { font-family:var(--mono); font-size:var(--t-xs); color:var(--gray); }
.clmBar { display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap;
  margin-bottom:var(--s-3); }
.clmKinds { flex:1; min-width:0; max-width:100%; overflow-x:auto;
  scrollbar-width:none; }
.clmKinds::-webkit-scrollbar { display:none; }
.clmKinds button { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.clmKinds button b { font-size:var(--t-xs); color:var(--gray); font-weight:650; }
.clmKinds button.on b { color:var(--accent); }
.clmTools { display:flex; gap:var(--s-2); align-items:center; flex:none; }
.clmTools .txtIn { width:220px; }
.clmTools select { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r-sm); color:var(--text); padding:7px 10px;
  font-size:var(--t-md); font-family:var(--ui); outline:none; }
.clmTools select:focus { border-color:var(--accent); }
.clmView { flex:none; }
.clmPeopleList { display:grid; gap:var(--s-2); }
.scnForm { display:flex; flex-wrap:wrap; align-items:flex-end; gap:var(--s-3);
  margin:var(--s-3) 0; }
.scnForm label:not(.chk) { display:grid; gap:var(--s-1); font-size:var(--t-sm); color:var(--muted); }
.scnForm .txtIn { width:160px; }
.scnForm select { background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-sm); color:var(--text); padding:7px 10px;
  font-size:var(--t-md); font-family:var(--ui); }
.scnModes { display:flex; flex-wrap:wrap; gap:var(--s-2) var(--s-3); }
.scnJob { background:var(--card); border-radius:var(--r-sm); padding:var(--s-3);
  margin-bottom:var(--s-3); display:grid; gap:var(--s-2); }
.scnJobHead { display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap;
  font-size:var(--t-md); }
.scnJobHead span { color:var(--muted); flex:1; min-width:0; }
.scnBad { color:var(--red); }
.scnList { display:grid; gap:var(--s-2); }
.scnMode { background:var(--card); border-radius:var(--r-sm); overflow:hidden; }
.scnHead { all:unset; box-sizing:border-box; width:100%; cursor:pointer;
  display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--s-1) var(--s-3);
  padding:var(--s-3); }
.scnHead:hover { background:var(--card-hi); }
.scnHead:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.scnHead b { font-size:var(--t-lg); }
.scnNums { font-size:var(--t-md); }
.scnSub { font-size:var(--t-sm); color:var(--muted); flex-basis:100%; }
.scnTable { border-top:1px solid var(--line); max-height:520px; overflow:auto; }
.scnRow { display:grid; grid-template-columns:120px minmax(0,1fr) minmax(0,1fr) 150px auto;
  align-items:center; gap:var(--s-3); padding:6px var(--s-3);
  font-size:var(--t-md); border-bottom:1px solid var(--line); }
.scnRow.head { position:sticky; top:0; background:var(--card); color:var(--muted);
  font-size:var(--t-sm); }
.scnRow.free .scnName b { color:var(--green); }
.scnRow.stray .scnName { color:var(--amber); }
.scnXZ { display:grid; grid-template-columns:1fr 1fr; gap:var(--s-2);
  font-family:var(--mono); font-variant-numeric:tabular-nums; }
.scnName, .scnOwn { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scnOwn { color:var(--muted); }
.scnRoom { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s-1);
  font-family:var(--mono); font-variant-numeric:tabular-nums; }
.scnRoom.muted { display:block; color:var(--muted); font-family:var(--ui); }
.scnRoom .scnShort { color:var(--red); }
@media (max-width:760px) {
  .scnRow { grid-template-columns:110px minmax(0,1fr) auto; }
  .scnRow .scnOwn, .scnRow .scnRoom { grid-column:2 / 3; }
  .scnForm .txtIn { width:120px; }
}
.clmPerson { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); padding:var(--s-3); display:grid; gap:var(--s-2); }
.clmPerson.gap { border-color:var(--border-hi); }
.clmPersonTop { display:flex; align-items:baseline; gap:var(--s-3); flex-wrap:wrap; }
.clmPersonTop b { font:600 var(--t-md)/1.2 var(--mono); }
.clmPersonTop span { flex:1; min-width:0; font-size:var(--t-xs); color:var(--muted); }
.clmPersonTop i { font-style:normal; font-size:var(--t-xs); color:var(--gray); }
.clmGap { color:var(--amber) !important; font-weight:600; }
.clmPersonActs { display:flex; gap:6px; flex-wrap:wrap; }
.clmBulk { margin-bottom:var(--s-3); padding:var(--s-3);
  background:var(--card); border:1px solid var(--border-hi); border-radius:var(--r);
  display:grid; gap:var(--s-2); }
.clmBulk.quiet { justify-items:start; }
.clmBulk.quiet { background:none; border:0; padding:0; }
.clmBulkHead { display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap; }
.clmBulkHead b { flex:1; min-width:0; font-size:var(--t-sm); font-weight:600; }
.clmBulkActs { display:flex; gap:6px; flex-wrap:wrap; }
.clmTable { --clm-cols: 28px 32px minmax(170px,1.5fr) 128px minmax(96px,.7fr) 76px
    minmax(130px,1fr) 118px 116px;
  border:1px solid var(--border); border-radius:var(--r); background:var(--panel);
  overflow:hidden; }
.clmHead, .clmLine { display:grid; grid-template-columns:var(--clm-cols);
  align-items:center; column-gap:var(--s-3); padding:0 var(--s-4) 0 var(--s-3); }
.clmHead { min-height:36px; border-bottom:1px solid var(--border);
  font-size:var(--t-xs); color:var(--gray); font-weight:550; }
.clmHead .clmWhat { grid-column:span 2; }
.clmHead .clmNum, .clmHead .clmXZ { text-align:right; }
.clmPick { flex:none; }
.clmGrid { display:grid; }
.clmRow { min-width:0; }
.clmNums { display:contents; }
.clmRow + .clmRow { border-top:1px solid var(--line); }
.clmLine { min-height:56px; cursor:pointer; transition:background .12s; }
.clmLine:hover { background:var(--card); }
.clmLine:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.clmRow.open > .clmLine { background:var(--card); }
.clmRow.on > .clmLine { box-shadow:inset 3px 0 0 var(--accent); }
.clmRow.bad > .clmLine { box-shadow:inset 3px 0 0 var(--amber); }
.clmGlyph { flex:none; width:32px; height:32px; border-radius:var(--r-sm);
  display:grid; place-items:center; background:var(--card-hi);
  border:1px solid var(--border); }
.clmGlyph .ico { width:20px; height:20px; }
.clmKindPick .ico { width:18px; height:18px; }
.clmCol { min-width:0; display:grid; gap:2px; }
.clmCol b { min-width:0; font-size:var(--t-md); font-weight:600; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.clmCol small { min-width:0; font-size:var(--t-xs); color:var(--gray);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.clmWhat small { font-family:var(--mono); }
.clmWhat small.note { font-family:var(--ui); color:var(--muted); }
.clmFacts code { font:var(--t-xs) var(--mono); color:var(--muted); word-break:break-all; }
.clmXZ { display:grid; grid-template-columns:1fr 1fr; column-gap:var(--s-2); text-align:right; }
.clmXZ b { font:550 var(--t-md) var(--mono); font-variant-numeric:tabular-nums; }
.clmNum { text-align:right; }
.clmNum b { font:600 var(--t-lg) var(--mono); font-variant-numeric:tabular-nums; }
.clmOwn b.none { color:var(--gray); font-weight:500; }
.clmOwn i { font-style:normal; color:var(--muted); font-weight:500; }
.clmState { display:inline-flex; align-items:center; gap:6px; font-size:var(--t-sm);
  color:var(--gray); white-space:nowrap; min-width:0; max-width:100%;
  overflow:hidden; text-overflow:ellipsis; }
.clmState i { width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.clmState.ok { color:var(--muted); }
.clmState.ok i { background:var(--green); }
.clmState.bad { color:var(--amber); font-weight:600; }
.clmGo { display:flex; align-items:center; justify-content:flex-end; gap:var(--s-2); }
.clmChev { width:20px; height:20px; display:grid; place-items:center; color:var(--gray);
  transition:transform .15s; }
.clmChev svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; }
.clmRow.open .clmChev { transform:rotate(180deg); color:var(--text); }
.clmMore { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);
  gap:var(--s-5); padding:var(--s-4) var(--s-4) var(--s-5) 88px;
  background:var(--card); border-top:1px solid var(--border); }
.clmMore section { min-width:0; display:grid; gap:var(--s-2); align-content:start; }
.clmMore h4 { margin:var(--s-2) 0 0; font-size:var(--t-xs); font-weight:600; color:var(--muted); }
.clmMore h4:first-child { margin-top:0; }
.clmChips { display:flex; gap:6px; flex-wrap:wrap; }
.clmMore .btn { justify-self:start; }
.clmMore .linkBtn { justify-self:start; font-size:var(--t-sm); }
.clmFacts { display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--s-2) var(--s-4);
  margin:0; font-size:var(--t-sm); }
.clmFacts dt { color:var(--gray); }
.clmFacts dd { margin:0; min-width:0; color:var(--text); display:flex; flex-wrap:wrap;
  gap:4px var(--s-2); align-items:baseline; }
.clmFacts .dim { color:var(--gray); }
.linkBtn { background:none; border:0; padding:0; font:inherit; color:var(--accent);
  cursor:pointer; }
.linkBtn:hover { text-decoration:underline; }
.linkBtn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:2px; }
.clmCheck { color:var(--muted); }
.clmCheck.none { color:var(--gray); }
.clmDanger { padding-left:var(--s-4); border-left:1px solid rgba(248,113,113,.28); }
.clmDangerRow { display:grid; gap:var(--s-1); justify-items:start; }
.clmDangerRow + .clmDangerRow { margin-top:var(--s-2); }
.clmDangerRow span { font-size:var(--t-xs); color:var(--gray); line-height:1.45; }
.clmDanger .btn.danger { color:var(--red); border-color:rgba(248,113,113,.35); }
.clmKindPick { display:flex; flex-wrap:wrap; }
.clmKindPick button { display:inline-flex; align-items:center; gap:6px;
  padding:9px 12px; }
.clmWipe { margin-top:var(--s-5); padding:var(--s-3);
  background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  display:grid; gap:var(--s-2); }
.clmWipe.on { border-color:var(--amber); }
.clmWipeHead { display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap;
  min-width:0; }
.clmWipeHead b { flex:1; min-width:0; font-size:var(--t-sm); font-weight:650; }
.clmWipeText { font-size:var(--t-xs); color:var(--gray); line-height:1.5; }
.clmWipeActs { display:flex; gap:6px; flex-wrap:wrap; }
@media (max-width:1180px) {
  .clmTable { --clm-cols: 28px 32px minmax(150px,1.5fr) 118px 70px minmax(110px,1fr) 108px; }
  .clmTable .clmWorld, .clmTable .clmSt { display:none; }
  .clmMore { grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding-left:var(--s-4); }
  .clmDanger { grid-column:1 / -1; padding-left:0; border-left:0;
    padding-top:var(--s-3); border-top:1px solid rgba(248,113,113,.28); }
}
@media (max-width:760px) {
  .clmTools { width:100%; }
  .clmTools .txtIn { flex:1; width:auto; }
  .clmHead { display:none; }
  .clmLine { grid-template-columns:28px 32px minmax(0,1fr) auto; row-gap:6px;
    padding:var(--s-3); }
  .clmLine .clmGo { grid-column:4; grid-row:1; }
  .clmNums { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px var(--s-3);
    grid-column:3 / 5; }
  .clmNums .clmCol { display:flex; align-items:baseline; gap:6px; }
  .clmLine .clmNum b { font-size:var(--t-md); }
  .clmMore { grid-template-columns:1fr; padding:var(--s-3) var(--s-3) var(--s-4); }
}
.nowRow { width:100%; display:grid; grid-template-columns:20px minmax(0,1fr) auto;
  align-items:center; gap:var(--s-3); padding:10px 12px; text-align:left;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  color:var(--text); font:inherit; }
button.nowRow { cursor:pointer; }
button.nowRow:hover { border-color:var(--border-hi); }
button.nowRow:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.nowRow .col { min-width:0; display:grid; gap:2px; }
.nowRow b { font-size:var(--t-md); font-weight:600; display:flex; align-items:center; gap:7px;
  min-width:0; }
.nowRow small { font-size:var(--t-xs); color:var(--muted); min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nowRow small.bad { color:var(--amber); }
.nowEmpty { display:grid; gap:var(--s-3); justify-items:start; padding:var(--s-3);
  font-size:var(--t-sm); color:var(--muted); border:1px dashed var(--line);
  border-radius:var(--r); }
.radarBox { display:grid; gap:var(--s-1); margin-top:var(--s-4); padding-top:var(--s-3);
  border-top:1px solid var(--border); }
.radarH { width:100%; display:flex; align-items:center; gap:var(--s-2); padding:6px 4px;
  margin:0; border:0; border-radius:var(--r-sm); background:none; cursor:pointer; text-align:left;
  font:600 var(--t-xs)/1.4 var(--ui); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.radarH:hover { background:var(--card); color:var(--text); }
.radarH + .radarRow, .radarRow + .radarH, .radarNone + .radarH { margin-top:2px; }
.radarH .chev { width:10px; color:var(--gray); letter-spacing:0; }
.radarH .cnt { margin-left:auto; font:500 var(--t-xs) var(--mono); letter-spacing:0; text-transform:none; color:var(--gray); }
.radarH .cnt.alert { color:var(--red); }
.radarRow { display:grid; grid-template-columns:8px minmax(0,1fr) auto auto; align-items:center;
  gap:var(--s-2); padding:6px 10px; border-radius:var(--r-sm); font-size:var(--t-sm);
  background:var(--card); border:1px solid var(--border); }
.radarRow .dot { width:7px; height:7px; border-radius:50%; background:var(--gray); }
.radarRow.stranger { border-color:color-mix(in srgb, var(--red) 45%, var(--border)); }
.radarRow.stranger .dot { background:var(--red); box-shadow:0 0 0 3px color-mix(in srgb, var(--red) 25%, transparent); }
.radarRow .dist { font:var(--t-xs) var(--mono); color:var(--muted); white-space:nowrap; }
.radarRow.past { grid-template-columns:8px minmax(0,1fr) auto; background:none; border-style:dashed; }
.radarRow .col { min-width:0; display:grid; gap:1px; }
.radarRow .col small { font:var(--t-xs) var(--mono); color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.radarRow.past.stranger { border-color:color-mix(in srgb, var(--red) 30%, var(--border)); }
.radarRow.past.stranger .dot { box-shadow:none; }
.radarRow .btn { height:22px; padding:0 8px; }
.radarNone { font-size:var(--t-sm); color:var(--muted); }
.bbBox { display:grid; gap:var(--s-1); margin-top:var(--s-4); padding-top:var(--s-3);
  border-top:1px solid var(--border); }
.bbH { padding:6px 4px; font:600 var(--t-xs)/1.4 var(--ui); letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted); }
.bbRow { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:var(--s-2);
  width:100%; padding:6px 10px; border-radius:var(--r-sm); background:var(--card);
  border:1px solid var(--border); color:var(--text); font:var(--t-sm) var(--ui); text-align:left; cursor:pointer; }
.bbRow:hover { border-color:var(--border-hi); }
.bbRow small { font:var(--t-xs) var(--mono); color:var(--muted); white-space:nowrap; }
.bbRow.death, .bbRow.ban { border-color:color-mix(in srgb, var(--red) 45%, var(--border)); }
.bbTag { display:inline-block; padding:1px 6px; border-radius:var(--r-pill); font:600 var(--t-xs)/1.5 var(--ui);
  background:var(--bg); color:var(--muted); border:1px solid var(--border); vertical-align:2px; }
.bbTag.death, .bbTag.ban { color:var(--red); border-color:color-mix(in srgb, var(--red) 50%, var(--border)); }
.bbTag.alert { color:var(--amber, var(--yellow)); }
.bbBack .bbPanel { width:min(600px,100%); max-height:min(90vh,980px); }
.bbBody { gap:var(--s-4); }
.bbBody h4 { margin:0 0 var(--s-2); font:600 var(--t-xs)/1.4 var(--ui); letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted); }
.bbBody .hint { display:block; margin:-4px 0 var(--s-2); font-size:var(--t-xs); color:var(--gray); }
.bbFacts { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:6px var(--s-4); margin:0; }
.bbFacts dt { color:var(--muted); font-size:var(--t-sm); }
.bbFacts dd { margin:0; font-size:var(--t-md); overflow-wrap:anywhere; }
.bbFacts dd.big { font-size:var(--t-lg); font-weight:650; }
.bbChart { width:100%; height:110px; display:block; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); }
.bbChart .grid { stroke:var(--border); stroke-width:1; }
.bbChart text { fill:var(--gray); font:10px var(--mono); }
.bbChart .hp { fill:none; stroke:var(--red); stroke-width:2; vector-effect:non-scaling-stroke; }
.bbChart .food { fill:none; stroke:var(--muted); stroke-width:1.5; stroke-dasharray:4 3; vector-effect:non-scaling-stroke; }
.bbChart .hit { stroke:var(--red); stroke-width:3; vector-effect:non-scaling-stroke; }
.bbHits, .bbNear { display:grid; gap:2px; }
.bbHit, .bbNearRow { display:grid; align-items:center; gap:var(--s-2); padding:4px 8px; border-radius:var(--r-sm);
  background:var(--card); font-size:var(--t-sm); }
.bbHit { grid-template-columns:52px minmax(0,1fr) auto 28px; }
.bbHit .ago, .bbHit .type, .bbHit .hp, .bbNearRow .dist { font:var(--t-xs) var(--mono); color:var(--muted); white-space:nowrap; }
.bbHit .hp { text-align:right; color:var(--red); }
.bbNearRow { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; }
.bbNearRow .held { color:var(--muted); }
.bbNearRow.player b { color:var(--text); }
.bbNearRow.past { background:none; border:1px dashed var(--border); }
.bbNearRow.past b { color:var(--muted); }
.bbNone { font-size:var(--t-sm); color:var(--muted); }
.bbTwo { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:var(--s-4); align-items:start; }
.bbTrack { width:220px; height:220px; display:block; background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-sm); }
.bbTrack .me { fill:none; stroke:var(--accent); stroke-width:2; }
.bbTrack .meEnd { fill:var(--accent); }
.bbTrack .other circle { fill:var(--muted); }
.bbTrack .other.bad circle { fill:var(--red); }
.bbTrack text { fill:var(--muted); font:10px var(--mono); }
.bbTrack .other.bad text { fill:var(--red); }
.bbLines { margin:0; max-height:260px; overflow:auto; padding:8px 10px; background:var(--bg);
  border:1px solid var(--border); border-radius:var(--r-sm); font:var(--t-xs)/1.55 var(--mono);
  color:var(--muted); white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:640px) {
  .bbTwo { grid-template-columns:1fr; }
  .bbTrack { width:100%; height:auto; aspect-ratio:1; }
}
.autoSec + .autoSec { margin-top:var(--s-5); }
.autoSec h3 { margin:0 0 var(--s-3); font-size:var(--t-lg); font-weight:650; }
.autoSec { container-type:inline-size; }
.autoSecHead { display:flex; align-items:center; gap:var(--s-2); margin-bottom:var(--s-3); }
.autoSecHead h3 { margin:0; flex:1; min-width:0; }
.autoSw { display:flex; align-items:center; gap:var(--s-2); font-size:var(--t-sm);
  color:var(--muted); cursor:pointer; }
.modGrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:var(--s-3); }
.modTile { display:flex; flex-direction:column; gap:var(--s-2); min-width:0; min-height:172px;
  padding:var(--s-4); background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  transition:border-color .15s; }
.modTile:hover { border-color:var(--border-hi); }
.modTile.open { border-color:var(--accent); }
.modTop { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--s-2);
  margin-bottom:var(--s-1); }
.modIco { width:44px; height:44px; flex:none; display:grid; place-items:center;
  border-radius:var(--r); background:var(--card-hi); border:1px solid var(--border); }
.modTile:not(.on) .modIco img { opacity:.5; filter:grayscale(.6); }
.modSw { display:flex; align-items:center; gap:var(--s-2); min-width:0; }
.modName { font-size:var(--t-lg); font-weight:650; letter-spacing:-.01em; }
.modState { display:flex; align-items:flex-start; gap:8px; font-size:var(--t-sm); color:var(--muted);
  line-height:1.45; min-width:0; }
.modState > i { width:7px; height:7px; border-radius:50%; flex:none; margin-top:.5em; background:var(--gray); }
.modTile.on .modState > i { background:var(--green); box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 20%, transparent); }
.modState.bad { color:var(--amber); }
.modState.bad > i { background:var(--amber); }
.modState > span { min-width:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.modState q { color:var(--text); quotes:'«' '»'; }
.modActs { display:flex; flex-wrap:wrap; gap:var(--s-2); margin-top:auto; padding-top:var(--s-2); }
.modActs:empty { display:none; }
.modPanel { margin-top:var(--s-3); background:var(--card); border:1px solid var(--accent);
  border-radius:var(--r); overflow:hidden; }
.modPanelHead { display:flex; align-items:center; gap:var(--s-2); padding:var(--s-3) var(--s-4);
  border-bottom:1px solid var(--border); background:var(--card-hi); }
.modPanelHead b { font-size:var(--t-md); font-weight:650; }
.modPanelSub { font-size:var(--t-sm); color:var(--muted); }
.modPanel .autoForm { padding:var(--s-4); border-top:0; }
.fldSwRow { display:flex; align-items:center; justify-content:space-between; gap:var(--s-3); }
.fldSwRow > label:first-child { font-size:var(--t-md); font-weight:550; }
.autoActs { display:flex; align-items:center; justify-content:flex-end; gap:var(--s-2); min-width:0; }
.autoLive { display:inline-flex; align-items:center; gap:6px; flex:0 1 auto; min-width:0; max-width:260px;
  font-size:var(--t-sm); color:var(--green); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; }
.autoLive i { width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.autoLive.wait { color:var(--muted); }
.scenHead .autoLive { max-width:220px; }
.autoForm { display:grid; gap:var(--s-3); align-items:start;
  padding:var(--s-4) var(--s-4) var(--s-4) calc(var(--s-4) + 36px + var(--s-3));
  border-top:1px solid var(--border); }
.autoForm .fld { margin:0; }
.autoForm .seg { display:inline-flex; width:auto; justify-self:start; }
.autoForm .fld .seg { align-self:start; }
.autoForm .scenNote { margin:0; padding:0; }
.adServers { display:flex; flex-wrap:wrap; gap:var(--s-2) var(--s-4); }
.autoFacts { display:grid; gap:var(--s-1); font-size:var(--t-sm); color:var(--muted); }
.autoFormBtns { display:flex; gap:var(--s-2); flex-wrap:wrap; }
.autoFormBtns .danger { margin-left:auto; }
.adHead { display:flex; align-items:baseline; gap:var(--s-2); }
.adHead label { font-size:var(--t-md); font-weight:550; }
.adCount { font:var(--t-xs) var(--mono); color:var(--gray); }
.adTexts { display:grid; gap:var(--s-1); }
.adText { display:grid; grid-template-columns:20px minmax(0,1fr) auto; align-items:center; gap:var(--s-2); }
.adTextN { font:600 var(--t-xs) var(--mono); color:var(--gray); text-align:right; }
.adTextFoot { display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap; padding-left:28px; }
.adTextFoot .hint { flex:1; min-width:220px; }
.adSets { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2); }
.adSetsNote { font-size:var(--t-xs); color:var(--gray); }
.adSet { display:inline-flex; }
.adSet .btn:first-child { border-top-right-radius:0; border-bottom-right-radius:0; }
.adSet .btn:last-child { border-top-left-radius:0; border-bottom-left-radius:0; margin-left:-1px;
  color:var(--gray); padding-left:7px; padding-right:7px; }
.adSet .btn:last-child:hover { color:var(--red); }
.adSet .btn i { font:var(--t-xs) var(--mono); font-style:normal; color:var(--gray); margin-left:6px; }
.adPreview summary { cursor:pointer; font-size:var(--t-sm); color:var(--muted); }
.adPreview[open] summary { margin-bottom:var(--s-2); }
.adPreviewWrap { overflow-x:auto; border:1px solid var(--border); border-radius:var(--r-sm); }
.adPreviewWrap table { width:100%; border-collapse:collapse; font-size:var(--t-xs); table-layout:fixed; min-width:520px; }
.adPreviewWrap th, .adPreviewWrap td { padding:6px 8px; border-bottom:1px solid var(--line); text-align:left;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.adPreviewWrap thead th { color:var(--gray); font-weight:600; background:var(--bg); }
.adPreviewWrap tbody th { color:var(--muted); font-weight:550; width:110px; }
.adPreviewWrap td { font-family:var(--mono); color:var(--text); }
.adPreviewWrap tr:last-child th, .adPreviewWrap tr:last-child td { border-bottom:0; }
.adCustom { display:flex; flex-wrap:wrap; gap:var(--s-2) var(--s-4); }
.adCustom label { display:inline-flex; align-items:center; gap:var(--s-2); font-size:var(--t-sm); color:var(--muted); }
.fld .adCustom input[type=number] { width:96px; }
.autoEmpty { padding:var(--s-4); border:1px dashed var(--line); border-radius:var(--r);
  font-size:var(--t-sm); color:var(--muted); line-height:1.5; }
.autoOff { display:flex; align-items:center; gap:var(--s-3); margin-bottom:var(--s-4);
  padding:var(--s-3) var(--s-4); border:1px solid rgba(251,191,36,.35); border-radius:var(--r);
  font-size:var(--t-sm); color:var(--amber); }
.autoOff span { flex:1; min-width:0; }
.autoSave { position:sticky; bottom:0; z-index:3; margin-top:var(--s-4);
  display:flex; align-items:center; gap:var(--s-2); padding:var(--s-3) var(--s-4);
  background:var(--card-hi); border:1px solid var(--border-hi); border-radius:var(--r); }
.autoSave span { flex:1; min-width:0; font-size:var(--t-sm); color:var(--muted); }
.autoSave[hidden] { display:none; }
.autoForm .linkBtn { justify-self:start; width:max-content; }
.sn { container-type:inline-size; display:grid; gap:var(--s-4); min-width:0; }
.snBack { justify-self:start; border:0; background:none; padding:0; cursor:pointer;
  color:var(--muted); font:500 var(--t-sm) var(--ui); }
.snBack:hover { color:var(--text); }
.snHead { display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap; min-width:0; }
.snHeadIco { flex:none; width:44px; height:44px; display:grid; place-items:center;
  border-radius:var(--r); background:var(--card-hi); border:1px solid var(--border); }
.snHeadWhat { flex:1 1 240px; min-width:0; display:grid; gap:var(--s-1); }
.snHeadWhat h2 { margin:0; font-size:var(--t-xl); font-weight:650; }
.snState { display:flex; align-items:center; gap:var(--s-2); min-width:0;
  font-size:var(--t-sm); color:var(--muted); }
.snState span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snState i { flex:none; width:8px; height:8px; border-radius:50%; background:var(--gray); }
.snState.on { color:var(--green); }
.snState.on i { background:var(--green); box-shadow:0 0 0 3px rgba(52,211,153,.18); }
.snState.dry { color:var(--accent); }
.snState.dry i { background:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.snState.warn { color:var(--amber); }
.snState.warn i { background:var(--amber); }
.snState.wait i { background:var(--muted); }
.snDry { display:flex; align-items:center; gap:var(--s-3); cursor:pointer; min-width:0;
  padding:var(--s-2) var(--s-3); border:1px solid var(--border); border-radius:var(--r);
  background:var(--card); }
.snDry:has(input:checked) { border-color:var(--accent); background:var(--accent-soft); }
.snDryTxt { display:grid; gap:2px; min-width:0; }
.snDryTxt b { font-size:var(--t-md); font-weight:600; }
.snDryTxt small { font-size:var(--t-xs); color:var(--muted); }
.snHeadBtns { display:flex; gap:var(--s-2); flex:none; min-width:180px; }
.snHeadBtns .btn { flex:1; justify-content:center; padding:var(--s-2) var(--s-4); }
.snStats { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--s-2); }
.snStat { min-width:0; display:grid; gap:var(--s-1); align-content:start;
  padding:var(--s-3) var(--s-4); background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); }
.snStat small { min-width:0; font-size:var(--t-xs); color:var(--muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snStat b { font:650 var(--t-xl)/1.2 var(--mono); font-variant-numeric:tabular-nums; }
.snBar { height:6px; border-radius:var(--r-pill); background:var(--card-hi); overflow:hidden; }
.snBar i { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.snBar.full i { background:var(--amber); }
.snFreeze { margin-top:calc(-1 * var(--s-2)); font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.snCols { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:var(--s-4); align-items:start; }
.snSec { min-width:0; display:grid; gap:var(--s-2); align-content:start; }
.snSecHead { display:flex; align-items:center; gap:var(--s-3); min-height:28px; }
.snSecHead h3 { flex:1; min-width:0; margin:0; font-size:var(--t-lg); font-weight:650; }
.snIco { flex:none; width:36px; height:36px; display:grid; place-items:center; overflow:hidden;
  border-radius:var(--r-sm); background:var(--card-hi); border:1px solid var(--border); }
.snIco img { width:26px; height:26px; object-fit:cover; object-position:top; }
.snIco.sm { width:28px; height:28px; }
.snIco.sm img { width:20px; height:20px; }
.snIco.lg { width:48px; height:48px; }
.snIco.lg img { width:36px; height:36px; }
.snItems, .snBuys, .snList { display:grid; min-width:0; background:var(--card);
  border:1px solid var(--border); border-radius:var(--r); }
.snItem { display:grid; grid-template-columns:36px minmax(0,1fr) auto 30px;
  grid-template-areas:"ico what sw del" "ico price price price";
  gap:var(--s-2) var(--s-3); align-items:center;
  min-width:0; padding:var(--s-3); transition:background .6s; }
.snItem > .snIco { align-self:start; }
.snItemLine { grid-area:price; display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap; min-width:0; }
.snItem + .snItem, .snBuy + .snBuy, .snRow + .snRow { border-top:1px solid var(--line); }
.snItem > .snIco { grid-area:ico; }
.snItem > .snItemWhat { grid-area:what; }
.snItem > .sw { grid-area:sw; }
.snItem > .mini { grid-area:del; }
.snItem.off .snIco, .snItem.off .snItemWhat, .snItem.off .snItemLine { opacity:.45; }
.snItem.flash { background:var(--accent-soft); }
.snItemWhat, .snRowWhat, .snBuyWhat, .snSideWhat { min-width:0; display:grid; gap:2px; }
.snItemWhat b, .snRowWhat b, .snBuyWhat b, .snSideWhat b { min-width:0; font-size:var(--t-md);
  font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snItemWhat small, .snRowWhat small, .snBuyWhat small { min-width:0; font-size:var(--t-xs);
  color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snItemWhat small.bad { color:var(--amber); }
.snPrice { display:flex; align-items:center; gap:var(--s-2); font-size:var(--t-sm); color:var(--muted);
  white-space:nowrap; }
.snPrice input { width:130px; padding:var(--s-1) var(--s-2); text-align:right;
  font-family:var(--mono); font-variant-numeric:tabular-nums; }
.snPrice.need input { border-color:var(--amber); }
.snGot { font-size:var(--t-xs); color:var(--green); white-space:nowrap; }
.snEmpty { padding:var(--s-4); border:1px dashed var(--line); border-radius:var(--r);
  font-size:var(--t-sm); color:var(--muted); line-height:1.5; }
.snEmptyBig { display:grid; justify-items:start; gap:var(--s-3); padding:var(--s-5);
  border:1px dashed var(--border-hi); border-radius:var(--r); }
.snEmptyBig p { margin:0; max-width:56ch; font-size:var(--t-sm); color:var(--muted); line-height:1.5; }
.snBuy { display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:var(--s-3);
  align-items:center; padding:var(--s-2) var(--s-3); min-width:0; }
.snBuyWhat b { font-weight:550; }
.snBuyPrice { display:grid; gap:2px; justify-items:end; }
.snBuyPrice b { font:600 var(--t-md) var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
.snBuyPrice small { font-size:var(--t-xs); color:var(--muted); white-space:nowrap; }
.snBuyPrice em { font-style:normal; font-size:var(--t-xs); color:var(--accent); }
.snBuy.dry .snBuyPrice b { color:var(--muted); }
.snSet { min-width:0; background:var(--card); border:1px solid var(--border); border-radius:var(--r); }
.snSetHead { display:flex; align-items:center; gap:var(--s-3); width:100%; min-width:0;
  padding:var(--s-3) var(--s-4); border:0; background:none; color:var(--text); cursor:pointer;
  font:inherit; text-align:left; }
.snSetHead .chev { flex:none; color:var(--muted); transition:rotate .15s; }
.snSet.open .snSetHead .chev { rotate:90deg; }
.snSetHead b { flex:none; font-size:var(--t-lg); font-weight:650; }
.snSetHead small { flex:1; min-width:0; font-size:var(--t-sm); color:var(--muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snSetBody { display:grid; gap:var(--s-4); padding:var(--s-3) var(--s-4) var(--s-4);
  border-top:1px solid var(--border); }
.snSetBody .fld, .snManual .fld, .snAhSide .fld { border-top:0; padding:0; }
.snSetBody .seg, .snManual .seg { justify-self:start; flex-wrap:wrap; }
.snSetGrid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--s-4); align-items:start; }
.snUnit { display:flex; align-items:center; gap:var(--s-2); min-width:0; }
.snUnit input { flex:1; min-width:0; font-family:var(--mono); font-variant-numeric:tabular-nums; }
.snUnit span { flex:none; font-size:var(--t-sm); color:var(--muted); }
.snAddHead { display:flex; align-items:center; gap:var(--s-4); flex-wrap:wrap; }
.snAddHead h2 { margin:0; font-size:var(--t-xl); font-weight:650; }
.snPick { display:grid; gap:var(--s-3); min-width:0; }
.snSearch { width:100%; }
.snRow.sel { background:var(--card-hi); }
.snRowTop { display:flex; align-items:center; gap:var(--s-2); min-width:0; padding-right:var(--s-3); }
.snRowBtn { flex:1; min-width:0; display:flex; align-items:center; gap:var(--s-3);
  padding:var(--s-2) var(--s-3); border:0; background:none; color:var(--text); cursor:pointer;
  font:inherit; text-align:left; }
@media (hover:hover) { .snRowBtn:hover .snRowWhat b { color:var(--accent); } }
.snRowWhat { flex:1; }
.snHave { flex:none; font-style:normal; font-size:var(--t-xs); color:var(--green); white-space:nowrap; }
.snPriceForm { display:grid; gap:var(--s-2); padding:0 var(--s-3) var(--s-3) calc(36px + var(--s-3) * 2); }
.snPriceForm > label { font-size:var(--t-sm); font-weight:550; }
.snPriceLine { display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap; min-width:0; }
.snPriceLine .snUnit { flex:0 1 280px; }
.snPriceForm .hint { font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.snPriceForm .linkBtn { font-size:var(--t-xs); }
.snPickFoot { display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap;
  font-size:var(--t-sm); color:var(--muted); }
.snDot { color:var(--gray); }
.snManual { display:grid; gap:var(--s-3); padding:var(--s-4); border:1px dashed var(--border-hi);
  border-radius:var(--r); }
.snManual h4 { margin:0; font-size:var(--t-lg); font-weight:650; }
.snManual .snPriceForm, .snAhSide .snPriceForm { padding:0; }
.snManual > .linkBtn { justify-self:start; }
.snSetRows { display:grid; gap:var(--s-2); justify-items:start; }
.snPair { display:flex; align-items:center; gap:var(--s-2); width:100%; min-width:0; }
.snPair > :first-child { flex:1 1 auto; width:auto; min-width:0; }
.snPair > select:not(:first-child) { flex:none; width:76px; }
.snPair > .mini { flex:none; }
.snUse { display:grid; gap:var(--s-2); padding:var(--s-2) var(--s-3); border:1px solid var(--border);
  border-radius:var(--r-sm); }
.snUse + .snUse { margin-top:var(--s-2); }
.snUse.on { border-color:var(--border-hi); background:var(--bg); }
.snUse > .chk { font-size:var(--t-sm); font-weight:550; }
.snUseBody { display:grid; gap:var(--s-2); min-width:0; }
.snUseBody .hint { font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.snSum { font-size:var(--t-sm); line-height:1.5; overflow-wrap:anywhere; }
.snSum b { font-weight:600; }
.snSum .snWarn { margin-top:var(--s-1); }
.snWarnTxt { color:var(--amber); }
.snAh { display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--s-4); align-items:start; }
.snAhMain, .snAhSide { min-width:0; display:grid; gap:var(--s-3); align-content:start;
  padding:var(--s-4); background:var(--card); border:1px solid var(--border); border-radius:var(--r); }
.snAhSide { position:sticky; top:0; }
.snAhEmpty { display:grid; gap:var(--s-2); justify-items:start; max-width:520px; padding:var(--s-2) 0; }
.snAhEmpty b, .snSideEmpty b { font-size:var(--t-lg); font-weight:650; }
.snAhEmpty p, .snSideEmpty p { margin:0; font-size:var(--t-sm); color:var(--muted); line-height:1.5; }
.snSideEmpty { display:grid; gap:var(--s-2); }
.snAhOpen { display:flex; gap:var(--s-2); width:100%; min-width:0; }
.snAhOpen input { flex:1; min-width:0; }
.snAhBar { display:flex; align-items:center; gap:var(--s-3); min-width:0; }
.snAhBar b { flex:1; min-width:0; font-size:var(--t-md); font-weight:650;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.snAhNav { display:flex; gap:var(--s-1); flex:none; }
.snAhNote { font-size:var(--t-xs); color:var(--amber); line-height:1.45; }
.snAhHint { font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.snGrid { display:grid; grid-template-columns:repeat(9, 44px); gap:var(--s-1); }
.snSlot { position:relative; width:44px; height:44px; padding:3px 0 0; display:grid;
  justify-items:center; align-content:start; border-radius:var(--r-sm); cursor:default;
  background:var(--bg); border:1px solid var(--border); color:var(--text); }
.snSlot.has:not(.lot) { opacity:.35; }
.snSlot.lot { cursor:pointer; background:var(--card-hi); border-color:var(--border-hi); }
@media (hover:hover) { .snSlot.lot:hover { border-color:var(--text); } }
.snSlot.hit { border-color:var(--green); background:rgba(52,211,153,.14); }
.snSlot.cur { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.snSlot .ico { display:block; width:26px; height:26px; overflow:hidden; line-height:0; }
.snSlot .ico img { width:100%; height:auto; display:block; }
.snSlot .n { position:absolute; top:2px; right:3px; font:700 var(--t-xs)/1 var(--mono);
  color:#fff; text-shadow:0 1px 2px #000; }
.snSlot .p { position:absolute; left:2px; right:2px; bottom:2px; font:600 var(--t-xs)/1.2 var(--mono);
  text-align:center; color:var(--muted); white-space:nowrap; overflow:hidden; }
.snSlot.hit .p { color:var(--green); }
.snSideHead { display:flex; align-items:center; gap:var(--s-3); min-width:0; }
.snSideWhat b { font-size:var(--t-lg); }
.snSideWhat small { font:var(--t-xs) var(--mono); color:var(--muted); }
.snSideLot { font-size:var(--t-sm); color:var(--muted); }
.snSigns { display:grid; gap:var(--s-2); padding:var(--s-3); background:var(--bg);
  border:1px solid var(--border); border-radius:var(--r); }
.snSignsHead { font-size:var(--t-sm); font-weight:600; }
.snSign { align-items:flex-start; font-size:var(--t-sm); line-height:1.4; }
.snEnchMode { justify-self:start; margin-left:calc(17px + var(--s-2)); }
.snUseBody .snEnchMode { margin-left:0; }
.snAttr > input[type=text] { flex:none; width:76px; }
.snAttr > select:nth-of-type(2) { flex:none; width:auto; max-width:150px; }
.snSign span { min-width:0; overflow-wrap:anywhere; }
.snSign code { padding:1px var(--s-1); border-radius:var(--r-sm); background:var(--card-hi);
  font:var(--t-xs) var(--mono); color:var(--text); }
.snSigns .hint { font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
.snWarn { font-size:var(--t-sm); color:var(--amber); line-height:1.45; }
.snNote { font-size:var(--t-sm); color:var(--green); line-height:1.45; }
@container (max-width:740px) {
  .snAh { grid-template-columns:minmax(0,1fr); }
  .snAhSide { position:static; }
}
@container (max-width:760px) {
  .snCols { grid-template-columns:minmax(0,1fr); }
  .snSetGrid { grid-template-columns:minmax(0,1fr); }
}
@container (max-width:560px) {
  .snStats { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .snStats .snStat:first-child { grid-column:1 / -1; }
  .snHeadBtns { width:100%; }
  .snHeadBtns .btn { flex:1; }
  .snGrid { grid-template-columns:repeat(9, minmax(0,1fr)); }
  .snSlot { width:auto; height:auto; aspect-ratio:1; }
  .snSlot .ico { width:62%; height:auto; aspect-ratio:1; }
  .snSlot .p { display:none; }
  .snPriceForm { padding-left:var(--s-3); }
}
@media (max-width:760px) {
  .autoForm { padding:var(--s-3); }
  .autoLive { max-width:100%; }
}
#wipeWrap { container-type:inline-size; }
.wpSecHead { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2) var(--s-3);
  margin-bottom:var(--s-3); }
.wpSecHead h3 { margin:0; }
.wpWho { font:600 var(--t-md) var(--mono); color:var(--muted); }
.wpPick { display:flex; align-items:center; gap:var(--s-2); margin-left:auto;
  font-size:var(--t-sm); color:var(--muted); }
.wpK { font-size:var(--t-sm); color:var(--muted); }
.wpNow { display:grid; gap:4px; padding:var(--s-3) var(--s-4); border-radius:var(--r-sm);
  background:var(--accent-soft); border:1px solid color-mix(in srgb, var(--accent) 40%, transparent); }
.wpNow.live { background:color-mix(in srgb, var(--green) 12%, transparent);
  border-color:color-mix(in srgb, var(--green) 45%, transparent); }
.wpNowK { font-size:var(--t-xs); font-weight:650; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.wpNow b { font-size:var(--t-xl); font-weight:650; line-height:1.35; }
.wpClock { font-family:var(--mono); font-weight:600; font-variant-numeric:tabular-nums; color:var(--muted); }
.wpFacts { display:flex; flex-wrap:wrap; gap:var(--s-2) var(--s-5); margin-top:var(--s-3); }
.wpFact { display:inline-flex; align-items:center; gap:var(--s-2); min-width:0; font-size:var(--t-md); }
.wpFact b { font-weight:650; }
.wpCmd { padding:1px 7px; border-radius:var(--r-sm); background:var(--card-hi);
  border:1px solid var(--border); font:600 var(--t-sm) var(--mono); }
.wpFact .state { max-width:none; }
.wpVer { font-size:var(--t-xs); color:var(--muted); }
.wpVer.wait { color:var(--amber); }
.wpCompass { flex:none; display:block; }
.wpCompass path { fill:var(--card-hi); stroke:var(--border-hi); stroke-width:.8; }
.wpCompass path.on { fill:var(--accent); stroke:var(--accent); }
.wpCompass .mid { fill:var(--text); }
.wpTeamRow { display:grid; grid-template-columns:90px 170px minmax(0,1fr); align-items:center;
  gap:var(--s-2) var(--s-4); padding:var(--s-2) 0; border-top:1px solid var(--line); font-size:var(--t-sm); }
.wpTeamRow:first-of-type { border-top:0; }
.wpTeamTaken { display:flex; align-items:center; gap:var(--s-2); color:var(--muted); white-space:nowrap; }
.wpBar { position:relative; display:block; width:60px; height:5px; border-radius:3px; background:var(--card-hi); overflow:hidden; flex:none; }
.wpBar i { position:absolute; left:0; top:0; display:block; height:100%; background:var(--green); border-radius:3px; }
.wpBar i.chk { background:var(--green); opacity:.35; }
.wpChips { display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
.wpChip { --c:var(--gray); display:inline-flex; align-items:center; gap:6px; padding:2px 9px 2px 8px;
  border-radius:var(--r-pill); background:var(--card-hi); border:1px solid var(--border);
  font-size:var(--t-sm); font-weight:550; }
.wpChip > i { width:6px; height:6px; border-radius:50%; background:var(--c); }
.wpChip small { font:var(--t-xs) var(--mono); color:var(--muted); }
.wpChip.live { --c:var(--green); } .wpChip.wait { --c:var(--amber); } .wpChip.down { --c:var(--red); }
.wpChip.plain { font:var(--t-xs) var(--mono); }
.wpSeedRow { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2) var(--s-3); }
.wpSeedRow h3 { margin:0; }
.wpSeedRow .note { flex:1 1 100%; margin:0; }
.wpSeedRow .state { max-width:100%; }
.wpSeedRow .state span { white-space:normal; }
.wpSeedVal { font:600 var(--t-md) var(--mono); padding:2px 8px; border-radius:var(--r-sm);
  background:var(--bg); border:1px solid var(--border); overflow-wrap:anywhere; }
.wpManage > summary { display:flex; align-items:baseline; gap:var(--s-3); cursor:pointer; list-style:none; }
.wpManage > summary::-webkit-details-marker { display:none; }
.wpManage > summary::before { content:'▸'; color:var(--muted); transition:rotate .15s; }
.wpManage[open] > summary::before { rotate:90deg; }
.wpManage > summary h3 { margin:0; }
.wpManageBody { margin-top:var(--s-3); }
.wpManageBody h4 { display:flex; align-items:center; gap:var(--s-2); margin:var(--s-4) 0 var(--s-2);
  font-size:var(--t-md); font-weight:650; }
.wpBtns { display:flex; flex-wrap:wrap; gap:6px; }
.wpPlanRow { display:grid; grid-template-columns:110px minmax(0,1fr); align-items:center; gap:var(--s-3);
  padding:var(--s-2) 0; border-top:1px solid var(--line); font-size:var(--t-sm); }
.wpPlanRow > span:first-child { color:var(--muted); }
.wpGrief { padding:var(--s-2) 0; border-top:1px solid var(--line); }
.wpGriefHead { font-size:var(--t-sm); margin-bottom:4px; }
.wpPerson { display:grid; grid-template-columns:18px minmax(110px,1fr) minmax(0,1.4fr) minmax(0,1.1fr) auto;
  align-items:center; gap:6px var(--s-3); padding:5px 0; font-size:var(--t-sm); }
.wpPQuad { display:grid; place-items:center; }
.wpNick { font-weight:600; min-width:0; overflow-wrap:anywhere; }
.wpNick small { margin-left:6px; font:500 var(--t-xs) var(--ui); color:var(--muted); }
.wpTgt { color:var(--muted); min-width:0; }
.wpAct { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.wpPerson .state { max-width:100%; justify-self:start; }
.wpKeyMsg { margin:var(--s-2) 0 0; padding:var(--s-3); background:var(--bg);
  border:1px solid var(--border); border-radius:var(--r-sm); font:var(--t-sm) var(--mono);
  white-space:pre-wrap; word-break:break-all; user-select:all; }
@container (max-width:620px) {
  .wpNow b { font-size:var(--t-lg); }
  .wpFacts { flex-direction:column; align-items:flex-start; }
  .wpPick { margin-left:0; flex:1 1 100%; }
  .wpTeamRow { grid-template-columns:minmax(0,1fr) auto; }
  .wpTeamRow .wpChips { grid-column:1 / -1; }
  .wpPerson { grid-template-columns:18px minmax(0,1fr) auto; padding:var(--s-2) 0; }
  .wpPerson .state { justify-self:end; }
  .wpTgt, .wpAct { grid-column:2 / -1; }
  .wpAct { justify-content:flex-start; }
  .wpPlanRow { grid-template-columns:minmax(0,1fr); gap:var(--s-1); }
}
@media (max-width:760px) {
  body[data-float="on"] { gap:0; padding:0; }
  body[data-float="on"] .main { border:none; border-radius:0; }
  body[data-float="on"] .pane { margin:0 var(--s-2) var(--s-2); }
  body[data-float="on"] .views { padding:var(--s-2) var(--s-2) 0; }
  .head { padding:var(--s-2) var(--s-3); }
  .head { padding-left:56px; }
  .scroll { padding:var(--s-3) var(--s-2) var(--s-4); }
  #s-list .head { flex-wrap:wrap; row-gap:var(--s-2); }
  #s-list .head > div:first-child { flex:1 1 100%; }
  #s-list .head .spacer { display:none; }
  .chips { flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain;
    scrollbar-width:none; padding-bottom:2px; }
  .chips::-webkit-scrollbar { display:none; }
  .chip { flex:none; }
  .tools { flex-wrap:wrap; margin-bottom:var(--s-3); }
  .cards { gap:var(--s-2); }
  .bc { padding:var(--s-3); gap:var(--s-1); }
}
.logHour { display:inline-flex; align-items:center; gap:var(--s-1); }
.logHour b { font-weight:600; color:var(--text); }
.logHour .btn { padding:0 var(--s-2); }
@media (max-width:760px) {
  .btn, .btn.sm { min-height:40px; }
  .quick { min-height:40px; }
  .paint { width:36px; height:36px; }
  .chip { min-height:36px; }
  .seg button, .seg.sm button { min-height:36px; }
  .view { min-height:40px; display:inline-flex; align-items:center; }
  .sw2 { width:32px; height:32px; }
  input[type=checkbox]:not(.sw input) { width:20px; height:20px; }
}
:where(.btn, .chip, .view, .bc, .sw2, .scenHead, .auditGrp, .seg button,
       .navItem, [role="button"], [role="tab"]):focus-visible {
  outline:2px solid var(--accent); outline-offset:2px;
}
@media (max-width:760px) {
  #s-bot .head { padding-left:var(--s-3); column-gap:var(--s-2); }
  #s-bot .head .back { margin-left:44px; flex:none; }
  #s-bot .head .switcher { flex:1 1 0; min-width:0; margin-right:96px; }
  #s-bot .head .swBtn { max-width:100%; min-width:0; }
  #s-bot .head .swBtn > div { min-width:0; }
  #s-bot .head #hMeta { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  #s-bot .head .state { display:none; }
  #s-bot .head .spacer { display:block; flex:0 0 100%; height:0; }
  #s-bot .head .btn { flex:1 1 0; justify-content:center; }
  body[data-screen="bot"] .plugTab,
  body[data-float="on"][data-screen="bot"] .plugTab {
    top:10px; right:10px; translate:none; flex-direction:row; gap:6px;
    height:36px; padding:0 12px; border:1px solid var(--border-hi);
    border-radius:var(--r-sm); box-shadow:none; }
  body[data-screen="bot"] .plugTab b,
  body[data-float="on"][data-screen="bot"] .plugTab b {
    writing-mode:horizontal-tb; text-orientation:mixed; letter-spacing:.04em; }
  body[data-screen="bot"] .plugTab:hover { padding-right:12px; }
}
.accWrap { container-type:inline-size; }
@container (min-width:680px) {
  .accWrap .sec { display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
    column-gap:var(--s-5); row-gap:var(--s-3); align-items:start; }
  .accWrap .sec > :not(.fld) { grid-column:1 / -1; }
  .accWrap .sec > .fld { border-top:0; padding:0; }
}
@media (max-width:760px) {
  #s-list .head { padding-left:var(--s-3); }
  #s-list .head > div:first-child { padding-left:44px; }
  #s-list .head .btn { flex:1 1 0; justify-content:center; }
}
@container (max-width:560px) {
  .modGrid { grid-template-columns:minmax(0,1fr); gap:var(--s-2); }
  .modTile { display:grid; grid-template-columns:44px minmax(0,1fr) auto; column-gap:var(--s-3);
    row-gap:var(--s-1); min-height:0; padding:var(--s-3); align-items:center; }
  .modTop { display:contents; }
  .modIco { grid-column:1; grid-row:1 / span 2; align-self:start; }
  .modSw { grid-column:3; grid-row:1; }
  .modName { grid-column:2; grid-row:1; font-size:var(--t-md); }
  .modState { grid-column:2 / -1; grid-row:2; }
  .modActs { grid-column:2 / -1; grid-row:3; padding-top:var(--s-1); }
  .autoForm, .scenBody { padding-left:var(--s-4); }
  .autoSecHead { flex-wrap:wrap; row-gap:var(--s-2); }
  .autoSecHead h3, .autoSecHead .autoSw { flex:1 1 100%; }
  .autoSecHead .btn { flex:1 1 0; justify-content:center; }
  .scenWhat { flex-direction:column; align-items:flex-start; gap:0; }
  .scenWhat b { max-width:100%; }
}
@container (min-width:720px) {
  .autoForm.two { grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:var(--s-5); }
  .autoForm.two > .autoFormBtns { grid-column:1 / -1; }
  .autoForm.two > .fld { border-top:0; padding:0; }
}
.mapPlan { position:absolute; z-index:6; top:12px; right:12px; bottom:12px; width:340px;
  display:flex; flex-direction:column; gap:var(--s-3); padding:var(--s-4);
  background:var(--card); border:1px solid var(--border-hi); border-radius:var(--r);
  box-shadow:0 16px 40px rgba(0,0,0,.45); overflow-y:auto; overscroll-behavior:contain; }
.mapPlan[hidden] { display:none; }
.planHead { display:flex; align-items:flex-start; gap:var(--s-3); }
.planIco { flex:none; width:46px; height:46px; display:grid; place-items:center;
  border-radius:var(--r-sm); background:var(--card-hi); border:1px solid var(--border); }
.planWho { flex:1; min-width:0; display:grid; gap:2px; }
.planWho b { font-size:var(--t-lg); font-weight:650; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.planK { font-size:var(--t-xs); font-weight:650; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.planXZ { font:var(--t-sm) var(--mono); color:var(--muted); }
.planPart { display:grid; gap:var(--s-2); padding-top:var(--s-3); border-top:1px solid var(--border); }
.planSizes { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); width:100%; }
.planSizes button { display:grid; justify-items:center; gap:1px; padding:7px 4px; }
.planSizes button small { font:var(--t-xs) var(--mono); color:var(--muted); }
.planArrows { display:flex; gap:6px; }
.planShift { margin-left:6px; font:var(--t-xs) var(--mono); color:var(--accent); text-transform:none; letter-spacing:0; }
.planHint { font-size:var(--t-sm); color:var(--muted); line-height:1.45; }
.planStatus { display:flex; align-items:flex-start; gap:8px; padding:10px 12px; border-radius:var(--r-sm);
  background:var(--card-hi); border:1px solid var(--border); font-size:var(--t-sm); line-height:1.45; }
.planStatus > i { width:8px; height:8px; border-radius:50%; flex:none; margin-top:.45em; background:var(--gray); }
.planStatus.ok > i { background:var(--green); }
.planStatus.bad { color:var(--amber); border-color:color-mix(in srgb, var(--amber) 40%, var(--border)); }
.planStatus.bad > i { background:var(--amber); }
.planMore > summary { cursor:pointer; font-size:var(--t-sm); color:var(--muted); }
.planMore > summary:hover { color:var(--text); }
.planMoreBody { display:grid; gap:var(--s-3); margin-top:var(--s-3); }
.planNums { display:grid; gap:6px; }
.planNums .note { margin:0; }
.planField { display:grid; gap:6px; font-size:var(--t-xs); color:var(--muted); }
.planField input, .planField select { width:100%; }
.planMoreBody > .btn { justify-self:start; }
.planBtns { display:flex; gap:var(--s-2); margin-top:auto; padding-top:var(--s-2); }
.planBtns .btn.accent { flex:1; justify-content:center; }
.farmDims { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); width:100%; }
.farmSize { display:flex; align-items:center; gap:var(--s-2); }
.farmSize input { width:64px; text-align:center; font-family:var(--mono); }
.farmSize span { color:var(--muted); }
.farmCheck { display:flex; align-items:center; gap:var(--s-2); font-size:var(--t-sm); color:var(--muted); }
.farmList { display:grid; gap:6px; }
.farmList:empty { display:none; }
.farmList .note { margin:0; }
.farmRow { display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:baseline; column-gap:var(--s-2);
  row-gap:2px; padding:8px 10px; text-align:left; cursor:pointer; color:var(--text);
  background:var(--card-hi); border:1px solid var(--border); border-radius:var(--r-sm); }
.farmRow:hover { border-color:var(--border-hi); }
.farmRow.on { border-color:var(--amber); }
.farmN { font:var(--t-xs) var(--mono); color:var(--muted); }
.farmPct { font:650 var(--t-md) var(--mono); color:var(--amber); }
.farmPct.full { color:var(--green); }
.farmXZ { font:var(--t-xs) var(--mono); color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.farmMeta { grid-column:2 / -1; font-size:var(--t-xs); color:var(--muted); line-height:1.45; }
@media (max-width:760px) {
  .mapPlan { top:auto; left:8px; right:8px; bottom:8px; width:auto; max-height:60%; }
  .planBtns { position:sticky; bottom:calc(-1 * var(--s-4)); margin:0 calc(-1 * var(--s-4)) calc(-1 * var(--s-4));
    padding:var(--s-3) var(--s-4); background:var(--card); border-top:1px solid var(--border); }
}
body { font-size:15px; }
body[data-float="on"] .nav { background:transparent; }
.navItem.on { box-shadow:none; }
.navItem.on::before { background:var(--accent); }
.navItem .count { font-family:var(--ui); font-weight:600; background:var(--card); }
.btn, .back, .iconBtn, .navBtn, .grpBtn { background:var(--ctl); }
.btn:hover, .back:hover, .iconBtn:hover, .grpBtn:hover { background:var(--ctl-hi); border-color:transparent; }
.quick, .paint { background:var(--ctl); }
.quick:hover { background:var(--ctl-hi); border-color:transparent; }
.paint:hover { background:var(--ctl-hi); border-color:transparent; }
.chip:not(.on):hover { background:var(--card-hi); border-color:transparent; }
.swBtn:hover, .switcher.open .swBtn { border-color:transparent; }
.sw i { background:var(--ctl); }
.sw input:checked + i { border-color:transparent; }
.bc:hover { border-color:transparent; }
.bc.needs { border-color:transparent; background:color-mix(in srgb, var(--amber) 8%, var(--card)); }
.bc.dead  { border-color:transparent; background:color-mix(in srgb, var(--red) 9%, var(--card)); }
.bc.needs:hover { background:color-mix(in srgb, var(--amber) 12%, var(--card)); }
.bc.dead:hover  { background:color-mix(in srgb, var(--red) 13%, var(--card)); }
.bcTag { font-family:var(--ui); }
.bcI b { border-color:transparent; font-family:var(--ui); }
.views { gap:var(--s-1); padding-bottom:var(--s-3); }
.view { top:0; border-radius:var(--r-sm); }
.view:hover { background:var(--card); }
.view.on { background:var(--card-hi); }
.pane { border-radius:var(--r); background:transparent; }
@media (min-width:761px) { body[data-float="on"] .pane { margin:0 4px 16px; } }
.navLabel, .swMenu .lbl, .invLabel, .tradeHead div, .moneyCell .k, .bar .m .k, .mpHead,
.scenWhenTtl, .tagClaimer, .grpName, .palLab, .tagLock, .botPickHead .lbl,
.itemTip .tattrHead, .evTitle, .aboutSub, .resCard h4, .popHead span, .pickPart .h,
.claimPart > label, .claimStats i, .claimGroup h4, .claimCount i, .radarH, .wpNowK, .planK, .plugTab b {
  text-transform:none; letter-spacing:0; }
.navLabel { font-size:var(--t-sm); font-weight:550; color:var(--muted); }
.bar .m .k { font-size:var(--t-sm); font-weight:500; color:var(--muted); }
.brand small, .chip b, .bc .meta, .val, .pc .row b, .bar .m .v, .mpV, .pcNums i, .grpN,
.botPickHead .cnt, .botOpt .st, .aboutRow b, .resRow b, .mapRow b, .crewChip b, .ribBtn i,
.claimStats b, .claimCount b, .claimChip, .claimGroup h4 b, .clmNum b, .radarH .cnt,
.snStat b, .winSumFree, .winSumRow .st, .winSumRow .ct, .vtHead b, .moneyCell .v,
.adCount, .adTextN, .wpChip small, .planSizes button small, .clmPersonTop b,
.claimMeta, .isHead span, .runRow .st, .stepRow .num, .sessRow .h, .heldChip .n {
  font-family:var(--ui); font-variant-numeric:tabular-nums; }
@media (min-width:761px) { .bc { padding:18px 20px; gap:var(--s-3); } }
.bc .nm { font-size:var(--t-lg); }
.bc .now { font-size:var(--t-md); }
.bcI.on, .bcI.ok, .bcI.warn, .bcI.bad { border-color:transparent; }
.chip, .state, .bcTag, .tagClaimer { border-radius:var(--r-sm); }
.tagClaimer { color:var(--text); background:var(--ctl); border-color:transparent; }
@media (max-width:760px) {
  #pane-console.on { grid-template-columns:minmax(0,1fr); }
  .invDock { grid-area:auto; position:absolute; left:0; right:0; bottom:var(--dockBottom, 64px); z-index:23; width:auto;
    max-height:62%; margin:0; border-radius:var(--r) var(--r) 0 0; box-shadow:0 -12px 32px rgba(0,0,0,.5); }
  #pane-console.docked .invDock { animation:dockUp .18s ease-out; }
  @keyframes dockUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
  #invBtn span { display:none; }
}
.claimCardBtns { flex-wrap:wrap; }
.claimCardBtns .btn { flex:1 1 40%; justify-content:center; }
.planBots { display:grid; gap:var(--s-1); }
.planBot { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:var(--s-2);
  padding:6px 10px; border-radius:var(--r-sm); background:var(--card-hi); cursor:pointer; font-size:var(--t-sm); }
.planBot span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.planBot small { font-size:var(--t-xs); color:var(--muted); white-space:nowrap; }
.planBot:has(input:checked) { outline:1px solid var(--accent); outline-offset:-1px; }
.mapJob { width:400px; }
.jobSteps { display:flex; gap:4px; margin:0; padding:0; list-style:none; counter-reset:jobStep; }
.jobSteps li { flex:1; min-width:0; padding:6px 4px 0; border-top:2px solid var(--border);
  font-size:var(--t-xs); color:var(--gray); text-align:center;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jobSteps li.past { border-color:color-mix(in srgb, var(--green) 55%, var(--border)); color:var(--muted); }
.jobSteps li.now { border-color:var(--accent); color:var(--text); font-weight:600; }
.jobSteps li.ok { border-color:var(--green); color:var(--text); font-weight:600; }
.jobSteps li.bad, .jobSteps li.rev.now { border-color:var(--amber); color:var(--amber); font-weight:600; }
.jobNow { display:grid; gap:var(--s-2); }
.jobNow[hidden] { display:none; }
.jobNowHead { display:flex; align-items:baseline; justify-content:space-between; gap:var(--s-2); }
.jobNowHead b { font-size:var(--t-md); font-weight:600; }
.jobNowHead span { font:var(--t-xs) var(--mono); color:var(--muted); white-space:nowrap; }
.jobNow .note { margin:0; }
.jobResult { display:grid; gap:6px; padding:var(--s-3); border-radius:var(--r-sm);
  background:var(--card-hi); font-size:var(--t-sm); line-height:1.5; }
.jobResult[hidden] { display:none; }
.jobResult > b { font-size:var(--t-lg); font-weight:650; }
.jobResult.ok > b::before { content:''; display:inline-block; width:8px; height:8px; margin:0 8px 2px 0;
  border-radius:50%; background:var(--green); }
.jobResult.bad { background:color-mix(in srgb, var(--amber) 9%, var(--card-hi)); }
.jobResult.bad > b { color:var(--amber); }
.jobResult p { margin:0; }
.jobResult q { display:block; margin-top:4px; padding:6px 8px; border-radius:var(--r-sm); background:var(--bg);
  font:var(--t-xs)/1.45 var(--mono); color:var(--text); quotes:none; word-break:break-word; }
.jobTip { color:var(--muted); }
.jobGrid { width:100%; max-height:240px; display:grid; place-items:center; }
.jobGrid svg { width:100%; height:100%; max-height:240px; display:block; }
.rs { fill:var(--c, var(--card-hi)); stroke:var(--card); stroke-width:1px; vector-effect:non-scaling-stroke;
  transition:fill .2s, opacity .15s; }
.rs.off { opacity:.15; }
.rs-w { --c:color-mix(in srgb, var(--gray) 16%, var(--card)); }
.rs-n { --c:var(--accent); }
.rs-s { --c:color-mix(in srgb, var(--accent) 45%, var(--card-hi)); }
.rs-c { --c:color-mix(in srgb, var(--green) 50%, var(--card-hi)); }
.rs-v { --c:var(--green); }
.rs-m { --c:var(--red); }
.rs-x { --c:var(--amber); }
.rs-f { --c:var(--red); }
.rs-r { --c:color-mix(in srgb, var(--muted) 45%, var(--card)); }
.rs-p { --c:#38bdf8; }
.rs-q { --c:color-mix(in srgb, var(--amber) 45%, var(--card-hi)); }
.jobCounts { display:flex; flex-wrap:wrap; gap:4px var(--s-3); font-size:var(--t-xs); color:var(--muted); }
.jobCounts span { display:inline-flex; align-items:center; gap:6px; }
.jobCounts i { width:10px; height:10px; border-radius:2px; background:var(--c); }
.jobCounts b { color:var(--text); font-family:var(--mono); font-weight:500; }
.jobLanes { display:grid; gap:var(--s-2); }
.jobLane { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; align-items:center;
  column-gap:var(--s-2); row-gap:4px; padding:8px 10px; border-radius:var(--r-sm); background:var(--card-hi); }
.jobLane b { font-size:var(--t-sm); font-weight:600; white-space:nowrap; }
.jobPhase { font-size:var(--t-xs); color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jobCount { font:var(--t-xs) var(--mono); color:var(--text); white-space:nowrap; }
.jobLane .mapBarTrack { grid-column:1 / -1; }
.jobLane small { grid-column:1 / -1; font:var(--t-xs)/1.4 var(--mono); color:var(--gray);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jobDot { width:8px; height:8px; border-radius:50%; background:var(--gray); flex:none; }
.jobFeed { max-height:200px; margin-top:0; }
.jobFeed i { color:var(--muted); }
.jobFeed i:last-child { color:var(--text); }
.jobFeed i.k-ok { color:color-mix(in srgb, var(--green) 70%, var(--muted)); }
.jobFeed i.k-bad { color:var(--amber); }
.jobFeed i.k-del { color:var(--gray); }
.jobFeed i b { font-weight:600; }
.jobMini { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:var(--s-2); }
.jobMini > span { display:grid; font-size:var(--t-sm); min-width:0; }
.jobMini small { font:var(--t-xs) var(--mono); color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jobMini .mapBarTrack { grid-column:1 / -1; }
.jobMini.st-running .jobDot, .jobMini.st-starting .jobDot, .jobMini.st-warping .jobDot { background:var(--accent);
  animation:ring 1.6s ease-in-out infinite; }
.jobMini.st-rollback .jobDot, .jobMini.st-failed .jobDot { background:var(--amber); }
.jobMini.st-done .jobDot { background:var(--green); }
@media (prefers-reduced-motion:reduce) { .jobMini .jobDot { animation:none; } }
@media (max-width:760px) {
  .mapJob { width:auto; }
  .jobGrid, .jobGrid svg { max-height:160px; }
  .jobFeed { max-height:120px; }
}
.farmClaim { justify-self:start; margin:-2px 0 var(--s-2) 34px; }
