/* CI/Design uebernommen aus der bestehenden App (Invariante 8) — Fachanwendungs-Optik,
   Arial, Anthrazit #262C33, Akzent Orange #D6761F, hell+dunkel. */

:root{
    --bg:#EFF1F3; --surface:#FFFFFF; --surface-2:#F6F7F9; --surface-3:#E9ECEF;
    --border:#D6DADE; --border-strong:#BFC5CC; --rule:#E4E7EA;
    --text:#15181C; --text-2:#39414A; --muted:#5E666E; --faint:#767E86;
    --primary:#262C33; --accent:#D6761F; --accent-2:#B45F14; --accent-tint:#FBF0E3;
    --crit:#B32D22; --crit-bg:#FAEAE8; --warn:#96690C; --warn-bg:#F9F1DF;
    --info:#245F8F; --info-bg:#E8F0F6; --ok:#256E2C; --ok-bg:#E9F1E9;
    --rev:#6B3FA0; --rev-bg:#F0EAF7;
    --neutral:#5E666E; --neutral-bg:#ECEEF0;
    --r:5px; --r-lg:7px; --nav-h:56px;
  }
  :root[data-theme="dark"]{
    --bg:#101315; --surface:#181C1F; --surface-2:#1E2327; --surface-3:#262C31;
    --border:#2C3338; --border-strong:#3B444B; --rule:#252B30;
    --text:#E4E8EB; --text-2:#BFC6CC; --muted:#98A1A9; --faint:#6E777F;
    --primary:#E4E8EB; --accent:#E08A34; --accent-2:#E08A34; --accent-tint:#2A2117;
    --crit:#E4796D; --crit-bg:#2E1B18; --warn:#D9A445; --warn-bg:#2C2415;
    --info:#6FA6D4; --info-bg:#16242F; --ok:#6FB374; --ok-bg:#172619;
    --rev:#B79BDB; --rev-bg:#221B2E;
    --neutral:#98A1A9; --neutral-bg:#22282C;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{background:var(--bg);color:var(--text);font-family:Arial,"Helvetica Neue",Helvetica,system-ui,sans-serif;
    font-size:15px;line-height:1.42;-webkit-text-size-adjust:100%;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}
  @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
  .wrap{max-width:1320px;margin:0 auto;padding:0 14px}
  button,input,select,textarea{font-family:inherit}
  .num{font-variant-numeric:tabular-nums}

  header{position:sticky;top:0;z-index:35;background:var(--surface);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top)}
  .topbar{max-width:1320px;margin:0 auto;padding:9px 14px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
  .org{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
  .org b{color:var(--text-2);font-weight:700}
  .hbtns{display:flex;gap:6px;align-items:center}
  .iconbtn{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--r);
    width:31px;height:31px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.1s}
  .iconbtn:hover{border-color:var(--border-strong);color:var(--text)}
  .iconbtn svg{width:16px;height:16px}
  .titleblock{max-width:1320px;margin:0 auto;padding:3px 14px 10px}
  .titleblock h1{margin:0;font-size:19px;font-weight:700;letter-spacing:-.01em}
  .titleblock .meta{font-size:11.5px;color:var(--muted);margin-top:2px}
  .rolebadge{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:3px;
    background:var(--surface-3);color:var(--text-2);white-space:nowrap;cursor:pointer;border:1px solid var(--border)}
  .rolebadge.bl{background:var(--primary);color:var(--surface);border-color:var(--primary)}
  :root[data-theme="dark"] .rolebadge.bl{background:var(--surface-3);color:var(--text)}
  .rolebadge.gw{background:var(--accent);color:#fff;border-color:var(--accent)}

  .ctxbar{border-top:1px solid var(--rule);background:var(--surface-2)}
  .ctxin{max-width:1320px;margin:0 auto;padding:7px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .gsel{display:flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);
    border-radius:var(--r);padding:5px 9px;cursor:pointer;font-size:12.5px;font-weight:700;color:var(--text)}
  .gsel .code{background:var(--primary);color:var(--surface);border-radius:3px;font-size:10px;font-weight:700;padding:2px 5px}
  :root[data-theme="dark"] .gsel .code{background:var(--surface-3);color:var(--text)}
  .gsel .car{color:var(--faint);font-size:10px}
  .ctxstat{margin-left:auto;font-size:11.5px;color:var(--muted)} .ctxstat b{color:var(--text)}

  .banner{display:flex;align-items:center;gap:11px;background:var(--warn-bg);border:1px solid var(--warn);
    border-radius:var(--r);padding:10px 13px;margin-top:11px;font-size:13px}
  .banner .bt{flex:1;color:var(--text)} .banner .bt b{color:var(--warn)}
  .banner.rev{background:var(--rev-bg);border-color:var(--rev)} .banner.rev .bt b{color:var(--rev)}

  .stats{display:flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface);margin-top:10px}
  .stat{flex:1;border-right:1px solid var(--rule);padding:8px 5px;text-align:center;cursor:pointer;transition:.1s}
  .stat:last-child{border-right:0} .stat:hover{background:var(--surface-2)}
  .stat.sel{background:var(--accent-tint);box-shadow:inset 0 -2px 0 var(--accent)}
  .stat .v{font-size:17px;font-weight:700;line-height:1.1}
  .stat .k{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:2px}
  .stat.s-off .v{color:var(--crit)} .stat.s-arb .v{color:var(--info)} .stat.s-drg .v{color:var(--warn)}
  .stat.s-gem .v{color:var(--rev)} .stat.s-erl .v{color:var(--ok)}
  .progline{display:flex;align-items:center;gap:9px;margin-top:8px;font-size:11px;color:var(--muted)}
  .progline .track{flex:1;height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden}
  .progline .track i{display:block;height:100%;background:var(--accent);transition:width .5s ease}

  .toolbar{display:flex;gap:8px;align-items:center;margin-top:11px;flex-wrap:wrap}
  .field{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);padding:0 10px;flex:1;min-width:180px}
  .field:focus-within{border-color:var(--accent)}
  .field svg{width:15px;height:15px;color:var(--faint);flex:none}
  .field input{border:0;outline:0;background:transparent;color:var(--text);font-size:14px;padding:9px 0;width:100%}
  .selwrap{position:relative}
  select.tsel{appearance:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    padding:9px 26px 9px 10px;font-size:13px;color:var(--text);cursor:pointer;font-weight:600}
  select.tsel:focus{outline:0;border-color:var(--accent)}
  .selwrap::after{content:"";position:absolute;right:10px;top:50%;transform:translateY(-25%);
    border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--faint);pointer-events:none}
  .btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r);padding:9px 13px;
    font-size:13.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;
    transition:.1s;white-space:nowrap;text-decoration:none}
  .btn:hover{border-color:var(--border-strong)} .btn:active{transform:translateY(1px)}
  .btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}
  .btn.pri:hover{background:var(--accent-2)}
  .btn.dark{background:var(--primary);border-color:var(--primary);color:var(--surface)}
  :root[data-theme="dark"] .btn.dark{background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}
  .btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
  .btn.rev{background:var(--rev);border-color:var(--rev);color:#fff}
  .btn.crit{background:var(--crit);border-color:var(--crit);color:#fff}
  .btn.wa{background:#1FA855;border-color:#1FA855;color:#fff}
  .btn.sm{padding:6px 10px;font-size:12.5px} .btn.full{width:100%} .btn.ghost{background:transparent}
  .btn:disabled{opacity:.45;cursor:not-allowed}
  :root[data-theme="light"]{color-scheme:light}
  :root[data-theme="dark"]{color-scheme:dark}
  :root[data-theme="dark"] .btn.pri,:root[data-theme="dark"] .btn.ok,:root[data-theme="dark"] .btn.crit,:root[data-theme="dark"] .btn.rev,:root[data-theme="dark"] .btn.wa{color:#141311}
  :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .row:focus-visible,.menuitem:focus-visible,.gitem:focus-visible,.stat:focus-visible,tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .resultline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;font-size:11.5px;
    color:var(--muted);border-bottom:1px solid var(--rule);padding-bottom:7px}
  .resultline b{color:var(--text)}
  .linkbtn{background:none;border:0;color:var(--muted);font-size:11.5px;cursor:pointer;text-decoration:underline;padding:2px 0}
  .linkbtn:hover{color:var(--text)}

  .list{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface);margin-top:11px}
  .row{display:block;padding:11px 13px 11px 14px;border-bottom:1px solid var(--rule);cursor:pointer;position:relative;transition:background .1s}
  .row:last-child{border-bottom:0} .row:hover{background:var(--surface-2)}
  .row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}
  .row.d-dringend::before{background:var(--crit)} .row.d-mittel::before{background:var(--warn)}
  .row.s-erl::before{background:var(--ok)} .row.s-gem::before{background:var(--rev)}
  .row.s-zg{opacity:.62}
  .r1{display:flex;align-items:center;gap:7px;margin-bottom:4px;flex-wrap:wrap}
  .pos{font-size:11.5px;font-weight:700}
  .gcode{background:var(--surface-3);color:var(--text-2);border-radius:3px;font-size:9.5px;font-weight:700;padding:2px 5px;letter-spacing:.05em}
  .tag{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:3px;padding:2px 6px;white-space:nowrap}
  .tag.s1{background:var(--crit-bg);color:var(--crit)}
  .tag.s2{background:var(--info-bg);color:var(--info)}
  .tag.s3{background:var(--rev-bg);color:var(--rev)}
  .tag.s4{background:var(--ok-bg);color:var(--ok)}
  .tag.s5{background:var(--crit-bg);color:var(--crit)}
  .tag.s6{background:var(--neutral-bg);color:var(--neutral)}
  .tag.s7{background:var(--warn-bg);color:var(--warn)}
  .tag.dr{background:var(--surface-3);color:var(--muted)}
  .tag.dr.hi{background:var(--crit-bg);color:var(--crit)} .tag.dr.md{background:var(--warn-bg);color:var(--warn)}
  .rdue{margin-left:auto;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
  .rdue.over{color:var(--crit)} .rdue.today{color:var(--warn)}
  .rtitle{font-size:14.5px;font-weight:700;line-height:1.32;color:var(--text)}
  .row.s-erl .rtitle{color:var(--muted)}
  .r3{font-size:11.5px;color:var(--muted);margin-top:4px;display:flex;flex-wrap:wrap;gap:2px 12px}
  .r3 .lbl{color:var(--faint)}
  .r4{font-size:11.5px;margin-top:5px;display:flex;gap:12px;flex-wrap:wrap;color:var(--muted)}
  .r4 .mark{color:var(--accent-2);font-weight:700}
  :root[data-theme="dark"] .r4 .mark{color:var(--accent)}
  .r4 .wait{color:var(--rev);font-weight:700}

  .tablewrap{border:1px solid var(--border);border-radius:var(--r);overflow:auto;background:var(--surface);margin-top:11px;max-height:calc(100vh - 210px)}
  table{width:100%;border-collapse:collapse;font-size:13px}
  thead th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:10px;letter-spacing:.08em;
    text-transform:uppercase;color:var(--muted);font-weight:700;padding:9px 10px;border-bottom:1px solid var(--border);
    white-space:nowrap;cursor:pointer;z-index:1}
  thead th:hover{color:var(--text)} thead th .ar{color:var(--accent);margin-left:3px}
  tbody td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
  tbody tr{cursor:pointer} tbody tr:hover td{background:var(--surface-2)} tbody tr:last-child td{border-bottom:0}
  td.c-pos{white-space:nowrap;font-weight:700;font-size:12px;position:relative;padding-left:13px}
  td.c-pos::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}
  tr.d-dringend td.c-pos::before{background:var(--crit)} tr.d-mittel td.c-pos::before{background:var(--warn)}
  tr.s-erl td.c-pos::before{background:var(--ok)} tr.s-gem td.c-pos::before{background:var(--rev)}
  tr.s-zg{opacity:.62}
  td.c-tit{font-weight:600;min-width:260px;line-height:1.35}
  td.c-tit .sn{display:block;font-weight:400;color:var(--muted);font-size:11.5px;margin-top:3px}
  td.c-nw{white-space:nowrap}
  .hide-sm{display:none}
  @media(min-width:920px){.hide-sm{display:table-cell}}

  .empty{text-align:center;color:var(--muted);padding:40px 20px;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);margin-top:11px}
  .empty b{display:block;color:var(--text);font-size:14px;margin-bottom:3px}

  .sechead{display:flex;align-items:baseline;gap:9px;margin-top:20px;padding-bottom:6px;border-bottom:1px solid var(--border)}
  .sechead h2{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
  .sechead .cnt{font-size:11.5px;color:var(--muted)}
  .sechead .sq{width:9px;height:9px;border-radius:2px;background:var(--muted)}
  .sechead .sq.over{background:var(--crit)} .sechead .sq.today{background:var(--warn)} .sechead .sq.drg{background:var(--accent)}

  .panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:15px;margin-top:11px}
  .panel h3{margin:0 0 3px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
  .panel .ptxt{font-size:12.5px;color:var(--muted);line-height:1.55;margin-top:6px}
  .kpirow{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:1px;background:var(--border);
    border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-top:11px}
  .kpi{background:var(--surface);padding:13px}
  .kpi .v{font-size:23px;font-weight:700;line-height:1}
  .kpi .k{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:4px}
  .gtable{width:100%;border-collapse:collapse;font-size:13px;margin-top:4px}
  .gtable td{padding:9px 0;border-bottom:1px solid var(--rule);vertical-align:middle}
  .gtable tr:last-child td{border-bottom:0}
  .gtable .gname{font-weight:600;white-space:nowrap;padding-right:12px}
  .gcode2{background:var(--surface-3);color:var(--text-2);border-radius:3px;font-size:9.5px;font-weight:700;padding:2px 5px;margin-right:7px}
  .gtable .track{height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden;min-width:70px}
  .gtable .track i{display:block;height:100%;background:var(--accent);transition:width .5s ease}
  .gtable tr.done .track i{background:var(--ok)}
  .gtable .gnum{text-align:right;white-space:nowrap;color:var(--muted);font-size:12px;padding-left:12px}
  .gtable .gdrg{color:var(--crit);font-weight:700}

  nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--nav-h) + env(safe-area-inset-bottom));
    padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:flex}
  .tab{flex:1;border:0;background:transparent;color:var(--faint);display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:3px;font-size:10px;font-weight:700;cursor:pointer;position:relative;border-top:2px solid transparent;margin-top:-1px}
  .tab svg{width:19px;height:19px}
  .tab.on{color:var(--accent);border-top-color:var(--accent)}
  .tab .bdg{position:absolute;top:5px;right:50%;margin-right:-22px;background:var(--crit);color:#fff;font-size:9px;font-weight:700;
    min-width:15px;height:15px;border-radius:3px;display:flex;align-items:center;justify-content:center;padding:0 3px}
  .tab .bdg.rev{background:var(--rev)}
  @media(min-width:920px){
    nav.tabs{position:sticky;top:0;bottom:auto;height:auto;border-top:0;border-bottom:1px solid var(--border);
      max-width:1320px;margin:0 auto;padding:0 14px;background:var(--surface)}
    .tab{flex:0 0 auto;flex-direction:row;gap:7px;font-size:12.5px;padding:11px 15px;border-top:0;border-bottom:2px solid transparent;margin-top:0}
    .tab.on{border-bottom-color:var(--accent)}
    .tab .bdg{position:static;margin:0 0 0 2px}
    body{padding-bottom:30px}
  }

  .scrim{position:fixed;inset:0;background:rgba(15,20,25,.55);z-index:60;opacity:0;pointer-events:none;transition:.18s}
  .scrim.on{opacity:1;pointer-events:auto}
  .sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--bg);border-top:1px solid var(--border-strong);
    border-radius:var(--r-lg) var(--r-lg) 0 0;transform:translateY(100%);transition:transform .24s cubic-bezier(.2,.8,.25,1);
    max-height:94vh;overflow-y:auto}
  .sheet.on{transform:translateY(0)}
  @media(min-width:760px){
    .sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-46%) scale(.98);width:660px;max-width:94vw;
      max-height:88vh;border-radius:var(--r-lg);border:1px solid var(--border-strong);opacity:0}
    .sheet.on{transform:translate(-50%,-50%) scale(1);opacity:1}
    .grab{display:none}
  }
  .sheet-in{padding:4px 17px calc(20px + env(safe-area-inset-bottom))}
  .grab{width:34px;height:3px;border-radius:2px;background:var(--border-strong);margin:9px auto 6px}
  .shead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:8px;border-bottom:1px solid var(--border);
    padding-bottom:11px}
  .shead h2{font-size:16px;margin:3px 0 0;font-weight:700}
  .shead .eyebrow{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700}
  .xbtn{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--r);width:29px;height:29px;
    flex:none;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center}
  .xbtn:hover{color:var(--text);border-color:var(--border-strong)}
  label.fld{display:block;margin-top:13px}
  label.fld>span{display:block;font-size:10.5px;font-weight:700;color:var(--muted);margin-bottom:5px;letter-spacing:.07em;text-transform:uppercase}
  input[type=text],input[type=password],textarea,select.blk{width:100%;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);padding:10px 11px;font-size:15px;color:var(--text);outline:0;transition:.1s}
  input:focus,textarea:focus,select.blk:focus{border-color:var(--accent)}
  textarea{min-height:84px;resize:vertical;line-height:1.45}
  .pinin{letter-spacing:.5em;font-size:20px;font-weight:700;text-align:center;padding:12px!important}
  .segrow{display:flex;gap:6px;flex-wrap:wrap}
  .seg{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--r);padding:9px 12px;
    font-size:13px;font-weight:700;cursor:pointer;flex:1;text-align:center;min-width:76px;transition:.1s}
  .seg:hover{border-color:var(--border-strong)}
  .seg.on{background:var(--primary);border-color:var(--primary);color:var(--surface)}
  :root[data-theme="dark"] .seg.on{background:var(--surface-3);color:var(--text)}
  .seg.ok.on{background:var(--ok);border-color:var(--ok);color:#fff}
  .seg.warn.on{background:var(--warn);border-color:var(--warn);color:#fff}
  .seg.info.on{background:var(--info);border-color:var(--info);color:#fff}
  .seg.crit.on{background:var(--crit);border-color:var(--crit);color:#fff}
  .photo{display:flex;align-items:center;gap:11px}
  .photobtn{border:1px dashed var(--border-strong);background:var(--surface-2);border-radius:var(--r);padding:13px;font-size:12.5px;
    font-weight:700;color:var(--muted);cursor:pointer;flex:1;text-align:center}
  .photobtn:hover{border-color:var(--accent);color:var(--text)}
  .photoprev{width:66px;height:66px;border-radius:var(--r);object-fit:cover;border:1px solid var(--border);flex:none}
  .actionsrow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
  .actionsrow .sp2{grid-column:1/3}
  .pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:11px 12px;font-size:12px;
    color:var(--text-2);white-space:pre-wrap;margin-top:13px;font-family:Consolas,monospace;line-height:1.5;max-height:170px;overflow:auto;
    word-break:break-word}
  .hint{margin-top:10px;font-size:10.5px;color:var(--faint);line-height:1.55}
  .hint a{color:var(--accent-2)} :root[data-theme="dark"] .hint a{color:var(--accent)}
  .dl{display:grid;grid-template-columns:112px 1fr;gap:6px 12px;margin-top:13px;font-size:13.5px}
  .dl .k{color:var(--faint);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding-top:2px}
  .note{margin-top:13px;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--border-strong);
    border-radius:0 var(--r) var(--r) 0;padding:10px 12px;font-size:13.5px;line-height:1.5;color:var(--text-2)}
  .note.lock{color:var(--faint);font-style:italic}
  .note.rej{border-left-color:var(--crit);background:var(--crit-bg);color:var(--text)}
  .vlog{margin-top:6px}
  .vrow{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--rule)}
  .vrow .vm{width:3px;background:var(--border-strong);border-radius:2px;flex:none}
  .vrow.ok .vm{background:var(--ok)} .vrow.q .vm{background:var(--warn)} .vrow.g .vm{background:var(--rev)}
  .vrow.x .vm{background:var(--crit)} .vrow.n .vm{background:var(--accent)}
  .vrow .vc{flex:1;min-width:0}
  .vrow .va{font-weight:700;font-size:13px}
  .vrow .vt{font-size:10.5px;color:var(--faint);margin-top:1px}
  .vrow .vk{font-size:13px;color:var(--text-2);margin-top:4px;line-height:1.45}
  .vrow img{width:58px;height:58px;border-radius:var(--r);object-fit:cover;border:1px solid var(--border);margin-top:7px}
  .menulist{margin-top:4px}
  .menuitem{display:flex;align-items:center;gap:11px;padding:12px 2px;border-bottom:1px solid var(--rule);cursor:pointer}
  .menuitem:last-child{border-bottom:0}
  .menuitem .mt{flex:1} .menuitem .mt b{display:block;font-size:13.5px}
  .menuitem .mt span{font-size:11.5px;color:var(--muted)}
  .menuitem .car{color:var(--faint)}
  .qrpane{display:flex;flex-direction:column;align-items:center;gap:11px;margin-top:11px}
  .qrpane img{width:178px;height:178px;background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:7px;image-rendering:pixelated}
  .pintable{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
  .pintable td,.pintable th{padding:7px 6px;border-bottom:1px solid var(--rule);text-align:left}
  .pintable th{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
  .pintable .p{font-weight:700;letter-spacing:.14em;font-variant-numeric:tabular-nums}

  .toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 16px);transform:translateX(-50%) translateY(12px);z-index:80;
    background:var(--primary);color:var(--surface);padding:10px 16px;border-radius:var(--r);font-size:13px;font-weight:700;
    opacity:0;pointer-events:none;transition:.18s;max-width:90vw;text-align:center}
  :root[data-theme="dark"] .toast{background:var(--surface-3);color:var(--text);border:1px solid var(--border-strong)}
  .toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
  @media(min-width:920px){.toast{bottom:22px}}

  .gate{position:fixed;inset:0;z-index:90;background:var(--bg);display:none;overflow-y:auto}
  .gate.on{display:block}
  .gate-in{max-width:520px;margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) 20px 30px}
  .gate .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px}
  .gate .org{margin-bottom:14px}
  .gate h1{font-size:20px;font-weight:700;margin:0 0 3px}
  .gate .sub{font-size:12.5px;color:var(--muted);margin:0 0 15px;padding-bottom:13px;border-bottom:1px solid var(--border)}
  .gate .instr{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
  .glist{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;max-height:38vh;overflow-y:auto}
  .gitem{display:flex;align-items:center;gap:10px;padding:10px 11px;border-bottom:1px solid var(--rule);cursor:pointer;background:var(--surface)}
  .gitem:last-child{border-bottom:0} .gitem:hover{background:var(--surface-2)}
  .gitem.on{background:var(--accent-tint);box-shadow:inset 3px 0 0 var(--accent)}
  .gitem .code{background:var(--primary);color:var(--surface);border-radius:3px;font-size:10px;font-weight:700;padding:3px 6px;flex:none}
  :root[data-theme="dark"] .gitem .code{background:var(--surface-3);color:var(--text)}
  .gitem .gt{flex:1;min-width:0} .gitem .gt b{display:block;font-size:13.5px}
  .gitem .gt span{font-size:11.5px;color:var(--muted)}
  .gitem .n{font-size:11.5px;color:var(--faint)}
  .gate .acts{display:flex;flex-direction:column;gap:8px;margin-top:15px}
  .gate .fine{font-size:10.5px;color:var(--faint);text-align:center;margin-top:13px;line-height:1.55}
  .err{color:var(--crit);font-size:12px;font-weight:700;margin-top:8px;text-align:center;min-height:16px}