:root{
    --bg:#f4f6f8; --card:#fff; --ink:#101820; --dim:#6b7c8d; --line:#e4e9ef; --line2:#ccd6e0;
    --accent:#0e7490; --ok:#0d9c6c; --warn:#a9701f;
    --hdr:0px; --sat:env(safe-area-inset-top,0px);
  }
  [data-theme="dark"]{
    --bg:#0a0f15; --card:#111a23; --ink:#e8eff7; --dim:#8b9db0; --line:#1c2733; --line2:#2b3a4a;
    --accent:#45c0d8; --ok:#3ad39a; --warn:#d3a061;
  }
  [data-theme="dark"] .tgroup{border-color:#2f4053}
  [data-theme="dark"] .cbtn{background:rgba(255,255,255,.045);border-left-color:#2f4053}
  [data-theme="dark"] .tick{border-color:#3a4c60}
  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{
    margin:0;background:var(--bg);color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;
    font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  body.lock{overflow:hidden}
  button{font:inherit;color:inherit;touch-action:manipulation}
  a{color:inherit}
  :is(button,a,input):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  [data-theme="dark"]{color-scheme:dark}

  /* ---------------- header ---------------- */
  header{position:sticky;top:0;z-index:40;background:var(--card);border-bottom:1px solid var(--line);
         padding-top:var(--sat)}
  .bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px 6px 14px;width:100%;min-width:0;max-width:940px;margin:0 auto;position:relative}
  .brand{margin:0;min-width:0;font-size:15.5px;font-weight:800;letter-spacing:.01em;white-space:nowrap}
  .home{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:transparent;font:inherit;cursor:pointer}
  .menu-anchor{position:relative;flex:0 0 auto}
  .brand .bico{width:18px;height:18px;color:var(--accent);flex-shrink:0}
  .brand i{font-style:normal;font-size:10px;font-weight:600;color:var(--dim);letter-spacing:.08em;margin-left:1px}

  .prog{display:flex;align-items:center;gap:7px;margin-left:auto;flex-shrink:0}
  .ring{width:24px;height:24px;flex-shrink:0;transform:rotate(-90deg)}
  .ring circle{fill:none;stroke-width:3.4}
  .ring .bgc{stroke:var(--line)}
  .ring .fg{stroke:var(--ok);stroke-linecap:round;transition:stroke-dashoffset .35s ease}
  .prog b{font-size:13px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:.01em}
  .prog b span{color:var(--dim);font-weight:600}

  .ib{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border:0;background:transparent;
      color:var(--dim);border-radius:9px;cursor:pointer;position:relative}
  .ib:hover{background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}
  .ib svg{width:18px;height:18px}
  .filterBtn{display:none}
  .filterBtn[data-active="1"],header.filters-open .filterBtn{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}

  /* search */
  .search{display:none;flex:1 1 auto;min-width:0;position:relative}
  .search input{width:100%;height:34px;padding:0 30px 0 30px;font:inherit;font-size:14px;color:var(--ink);
    background:var(--bg);border:1px solid var(--line2);border-radius:9px;outline:none}
  .search input::-webkit-search-cancel-button{display:none}
  .search .si{position:absolute;left:9px;top:9px;width:16px;height:16px;color:var(--dim);pointer-events:none}
  .search .sc{position:absolute;right:4px;top:4px;width:26px;height:26px;border:0;background:transparent;color:var(--dim);
    font-size:19px;line-height:1;cursor:pointer;border-radius:7px}
  header.searching .brand,header.searching .prog,header.searching .searchBtn{display:none}
  header.searching .search{display:block}

  /* filter & region rows */
  .fgroup{
    order:10;flex:1 1 100%;min-width:0;max-width:100%;display:flex;align-items:center;gap:6px;
    overflow-x:auto;scrollbar-width:none;padding-top:2px;
  }
  .fgroup::-webkit-scrollbar{display:none}
  .rnav{
    display:flex;align-items:center;gap:6px;padding:0 12px 8px 14px;
    overflow-x:auto;scrollbar-width:none;width:100%;min-width:0;max-width:940px;margin:0 auto;
  }
  .rnav::-webkit-scrollbar{display:none}
  .chip{
    flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:29px;padding:0 10px;
    border:1px solid var(--line);background:transparent;color:var(--dim);border-radius:15px;
    font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s,color .15s;
  }
  .chip:hover{color:var(--ink);border-color:var(--line2)}
  .chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
  .chip .n{font-size:11px;font-variant-numeric:tabular-nums;opacity:.65;font-weight:650}
  .chip.effsel{
    padding:0 8px 0 10px;background-color:var(--card);color:var(--dim);
    font-family:inherit;max-width:162px;
  }
  .chip.effsel[data-active="1"]{
    background-color:color-mix(in srgb,var(--accent) 12%,var(--card));
    border-color:color-mix(in srgb,var(--accent) 42%,transparent);
    color:var(--accent);
  }
  .chip.jump{gap:6px;padding:0 10px}
  .chip.jump::before{content:"";width:6.5px;height:6.5px;border-radius:50%;background:var(--c,var(--accent));flex:0 0 auto;transition:transform .15s}
  .chip.jump .jc{font-size:10.5px;font-variant-numeric:tabular-nums;opacity:.6;font-weight:600}
  .chip.jump[data-active="1"]{
    background:color-mix(in srgb,var(--c,var(--accent)) 14%,var(--card));
    border-color:color-mix(in srgb,var(--c,var(--accent)) 48%,var(--line));
    color:var(--ink);font-weight:700;
  }
  .chip.jump[data-active="1"]::before{transform:scale(1.2)}
  .chip.jump[data-active="1"] .jc{opacity:.9;color:var(--c,var(--accent));font-weight:750}

  .menu{
    position:absolute;right:0;top:calc(100% + 4px);width:210px;max-width:calc(100vw - 24px);padding:6px;z-index:60;
    background:var(--card);border:1px solid var(--line);border-radius:11px;box-shadow:0 12px 34px rgba(10,20,32,.16);
  }
  .menu[hidden]{display:none}
  .menu button{
    display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;
    border:0;background:transparent;color:var(--ink);font-size:13.5px;text-align:left;
    padding:10px 11px;border-radius:8px;cursor:pointer;
  }
  .menu button:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}
  .menu button.danger{color:#c0392b}
  .menu hr{border:0;border-top:1px solid var(--line);margin:5px 5px}
  .menu kbd{font-family:inherit;font-size:11px;color:var(--dim)}

  /* ---------------- list ---------------- */
  main{max-width:940px;margin:0 auto}
  .rhead{
    position:sticky;top:var(--hdr,94px);z-index:20;display:flex;align-items:center;gap:8px;width:100%;
    padding:7px 14px 7px 12px;background:color-mix(in srgb,var(--c,var(--accent)) 8%,var(--card));
    border:0;border-bottom:1px solid var(--line);border-left:3px solid var(--c,var(--accent));
    text-align:left;cursor:pointer;
  }
  @media (hover:hover){ .rhead:hover{background:color-mix(in srgb,var(--c,var(--accent)) 13%,var(--card))} }
  .region.closed .rows{display:none}
  .region.closed .rhead{border-bottom-color:transparent}
  .rhead .cv{width:6px;height:6px;border-right:1.5px solid var(--dim);border-bottom:1.5px solid var(--dim);
    transform:rotate(45deg);margin:-3px 2px 0 4px;flex-shrink:0;transition:transform .18s}
  .region.closed .rhead .cv{transform:rotate(-45deg);margin-top:1px}
  .rhead h2{margin:0;font-size:12.5px;font-weight:750;letter-spacing:.02em}
  .rhead .rprog{margin-left:auto;font-size:11.5px;color:var(--dim);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:7px}
  .rhead .rprog b{color:var(--ink);font-weight:700}
  .rbar{width:34px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--ink) 10%,transparent);overflow:hidden}
  .rbar i{display:block;height:100%;width:0;background:var(--c,var(--accent));border-radius:2px;transition:width .3s}

  .row{
    display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:7px;
    padding:10px 14px 11px 10px;border-bottom:1px solid var(--line);
    position:relative;-webkit-tap-highlight-color:transparent;
  }
  @media (hover:hover){ .row:hover{background:color-mix(in srgb,var(--accent) 2.5%,transparent)} }
  .row.hide,.region.hide{display:none}
  .row.done{background:color-mix(in srgb,var(--ink) 2.2%,transparent)}
  .row.ready{background:color-mix(in srgb,var(--ok) 6.5%,transparent)}
  @media (hover:hover){ .row.ready:hover{background:color-mix(in srgb,var(--ok) 8%,transparent)} }
  .row.ready.done{background:color-mix(in srgb,var(--ink) 2.2%,transparent)}

  .dchk{
    width:34px;height:34px;margin-top:-4px;padding:0;border:0;border-radius:8px;
    background:transparent;display:grid;place-items:center;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .dchk:active{background:color-mix(in srgb,var(--ink) 8%,transparent)}
  @media (hover:hover){ .dchk:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)} .dchk:hover .tick{border-color:var(--ok)} }
  .tick{
    width:19px;height:19px;border:1.7px solid var(--line2);border-radius:6px;
    background:var(--card);display:grid;place-items:center;transition:.14s;
  }
  .tick::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;
    transform:rotate(-45deg) scale(.4);opacity:0;transition:.14s;margin-top:-1px}
  .row.done .tick{background:var(--ok);border-color:var(--ok)}
  .row.done .tick::after{transform:rotate(-45deg) scale(1);opacity:1}
  .row.ready:not(.done) .tick{border-color:color-mix(in srgb,var(--ok) 55%,var(--line2))}

  .body{min-width:0}
  .l1{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center}
  .identity{grid-column:1 / -1;display:flex;align-items:center;gap:6px;min-width:0}
  .nm{
    display:inline-flex;align-items:center;gap:3px;flex:0 1 auto;font-size:15px;font-weight:660;
    line-height:1.35;color:var(--ink);text-decoration:none;min-width:0;max-width:100%;overflow-wrap:anywhere;
  }
  .nm > span{min-width:0;text-wrap:balance;overflow-wrap:anywhere}
  a.nm:active{color:var(--accent)}
  @media (hover:hover){
    a.nm:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
    a.nm:hover .ex{opacity:.85;color:var(--accent)}
  }
  .nm .ex{width:10.5px;height:10.5px;flex:0 0 auto;color:var(--dim);opacity:.4;transition:opacity .12s}
  .row.done .nm{color:var(--dim);text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--dim) 45%,transparent)}
  .badge{display:none;flex:0 0 auto;font-size:9.5px;font-weight:800;letter-spacing:.04em;color:var(--ok);
    border:1px solid color-mix(in srgb,var(--ok) 40%,transparent);border-radius:4px;padding:0 4px;vertical-align:1.5px}
  .row.ready:not(.done) .badge{display:inline-block}
  .eff{grid-column:2;grid-row:2;justify-self:end;font-size:11.5px;color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums;
    display:inline-flex;align-items:center;gap:3px;text-decoration:none;padding:0;border-radius:4px}
  a.eff:hover{color:var(--accent)}
  .eff .ex{width:10px;height:10px;flex:0 0 auto;opacity:.35;transition:opacity .12s}
  a.eff:hover .ex{opacity:.85}
  .row.done .eff{opacity:.55}
  .meta{grid-column:1;grid-row:2;min-width:0;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}
  .row.done .meta{opacity:.55}

  .acts{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:7px;min-width:0}
  .reqnote{margin:3px 0 0;font-size:11px;line-height:1.55;color:var(--dim);overflow-wrap:anywhere}
  .dev{font-style:normal;font-size:10px;font-weight:750;border:1px solid currentColor;border-radius:3px;padding:0 3px;line-height:1.4;flex:0 0 auto;white-space:nowrap;font-variant-numeric:tabular-nums}
  .dev[data-level="1"]{color:#166534;background:#dcfce7}
  .dev[data-level="2"]{color:#0f766e;background:#ccfbf1}
  .dev[data-level="3"]{color:#1d4ed8;background:#dbeafe}
  .dev[data-level="4"]{color:#92400e;background:#fef3c7}
  .dev[data-level="5"]{color:#9f1239;background:#ffe4e6}
  [data-theme="dark"] .dev[data-level="1"]{color:#86efac;background:#143322}
  [data-theme="dark"] .dev[data-level="2"]{color:#5eead4;background:#133632}
  [data-theme="dark"] .dev[data-level="3"]{color:#93c5fd;background:#182d4a}
  [data-theme="dark"] .dev[data-level="4"]{color:#fcd34d;background:#3a2d14}
  [data-theme="dark"] .dev[data-level="5"]{color:#fda4af;background:#3c1d2b}
  .tgroup{
    display:flex;align-items:stretch;width:100%;max-width:100%;min-width:0;
    border:1px solid var(--line);border-radius:9px;background:var(--card);overflow:hidden;
    transition:border-color .14s,background .14s;
  }
  .tgroup.on{border-color:color-mix(in srgb,var(--ok) 34%,var(--line));background:color-mix(in srgb,var(--ok) 7%,var(--card))}
  .tchk{
    width:34px;flex:0 0 auto;min-height:34px;padding:0;display:grid;place-items:center;
    border:0;border-right:1px solid var(--line);background:transparent;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .tchk:active{background:color-mix(in srgb,var(--ink) 8%,transparent)}
  @media (hover:hover){ .tchk:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)} .tchk:hover .pbox{border-color:var(--ok)} }
  .tchk:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
  .tname{
    display:flex;align-items:center;flex-wrap:nowrap;gap:4px;min-width:0;flex:1 1 auto;min-height:34px;padding:6px 8px;
    font-size:13px;font-weight:600;color:var(--ink);text-decoration:none;
    -webkit-tap-highlight-color:transparent;
  }
  .tname > span{min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
  .tname .ex{width:10px;height:10px;flex:0 0 auto;opacity:.4}
  .tname:active{color:var(--accent)}
  @media (hover:hover){
    .tname:hover > span{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
    .tname:hover .ex{opacity:.85;color:var(--accent)}
  }
  .tname:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
  .tgroup.on .tname > span{color:var(--dim);text-decoration:line-through;text-decoration-thickness:1px}
  .pbox{width:16px;height:16px;flex:0 0 auto;border:1.5px solid var(--line2);border-radius:4px;
    background:var(--card);display:grid;place-items:center}
  .pbox::after{content:"";width:7px;height:4px;border-left:1.8px solid #fff;border-bottom:1.8px solid #fff;
    transform:rotate(-45deg) scale(.4);opacity:0;transition:.12s;margin-top:-1px}
  .tgroup.on .pbox{background:var(--ok);border-color:var(--ok)}
  .tgroup.on .pbox::after{transform:rotate(-45deg) scale(1);opacity:1}
  .cbtn{
    display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:6px 8px;flex:0 1 auto;min-width:0;max-width:44%;
    border:0;border-left:1px solid var(--line);background:color-mix(in srgb,var(--ink) 5%,transparent);
    font-size:12px;font-weight:600;color:color-mix(in srgb,var(--ink) 72%,transparent);cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .cbtn:active{background:color-mix(in srgb,var(--ink) 8%,transparent)}
  @media (hover:hover){ .cbtn:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)} }
  .tgroup.on .cbtn{color:color-mix(in srgb,var(--ok) 80%,var(--ink));border-left-color:color-mix(in srgb,var(--ok) 24%,transparent);background:transparent}
  .cbtn .cname{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
  .cbtn .ci{width:13px;height:13px;flex:0 0 auto;opacity:.65}
  .tt{font-style:normal;font-size:9.5px;font-weight:800;color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 34%,transparent);
    border-radius:3px;padding:0 3px;line-height:1.4;flex:0 0 auto;white-space:nowrap}
  .noreq{display:inline-flex;align-items:center;height:34px;font-size:12.5px;color:var(--dim);opacity:.8}

  @keyframes rowflash{0%{background:color-mix(in srgb,var(--ok) 24%,transparent)}100%{background:transparent}}
  .row.flash{animation:rowflash 1.1s ease}

  .empty{display:none;padding:64px 20px;text-align:center;color:var(--dim);font-size:13px}
  .empty.on{display:block}

  footer{max-width:940px;margin:0 auto;padding:18px 16px 44px;color:var(--dim);font-size:11px;line-height:1.8}
  footer a{text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:2px}
  footer .ver{opacity:.55;font-variant-numeric:tabular-nums}

  .toast{
    position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,14px);
    opacity:0;pointer-events:none;background:var(--ink);color:var(--bg);font-size:12.5px;font-weight:650;
    padding:9px 16px;border-radius:20px;transition:.22s ease;z-index:120;max-width:calc(100vw - 32px);
    text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.22)
  }
  .toast.on{opacity:1;transform:translate(-50%,0)}
  body.lock .toast{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 62px)}

  /* ---------------- sheets ---------------- */
  .scrim{position:fixed;inset:0;background:rgba(6,12,20,.42);z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}
  .scrim.on{opacity:1;pointer-events:auto}
  .sheet{
    position:fixed;left:0;right:0;bottom:0;z-index:110;background:var(--card);
    border-radius:16px 16px 0 0;box-shadow:0 -10px 40px rgba(6,12,20,.2);
    transform:translateY(102%);transition:transform .26s cubic-bezier(.32,.72,0,1);
    padding:6px 0 calc(14px + env(safe-area-inset-bottom,0px));max-height:88vh;overflow-y:auto;
  }
  .sheet.on{transform:translateY(0)}
  .grab{width:36px;height:4px;border-radius:3px;background:var(--line2);margin:6px auto 10px}
  .sh{padding:0 20px;position:relative}
  .xclose{
    position:absolute;right:14px;top:-2px;width:34px;height:34px;border:0;background:transparent;
    color:var(--dim);border-radius:50%;cursor:pointer;display:grid;place-items:center;z-index:2;
  }
  .xclose:hover{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}
  .xclose svg{width:16px;height:16px}
  .sh .k{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--dim);margin:0 0 4px}
  .sh h2{margin:0 0 4px;font-size:20px;font-weight:800;letter-spacing:.01em;line-height:1.3}
  .sh .sub{margin:0 0 2px;font-size:12.5px;color:var(--dim);line-height:1.6}
  .sh .sub b{color:var(--ink);font-weight:650}
  .sh .sub a{text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:2px}

  .block{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
  .block .k{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--dim);margin:0 0 8px}
  .tlist{list-style:none;margin:0;padding:0}
  .tlist li{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:13.5px}
  .tlist li + li{border-top:1px solid var(--line)}
  .tlist a{display:flex;align-items:center;gap:8px;flex:1;min-width:0;text-decoration:none;padding:2px 0}
  .tlist a:hover .dn{color:var(--accent)}
  .tlist a::after{content:"↗";font-size:10px;color:var(--dim);opacity:.6;margin-left:2px}
  .tlist .dn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
  .tlist .dst{font-size:11.5px;color:var(--dim);font-variant-numeric:tabular-nums;flex:0 0 auto}
  .tlist .dst.ok{color:var(--ok)}
  .tlist .dot{width:7px;height:7px;border-radius:50%;background:var(--line2);flex:0 0 auto}
  .tlist .dot.ok{background:var(--ok)}

  .sbtns{display:flex;flex-direction:column;gap:8px;margin-top:18px}
  .btn{
    display:flex;align-items:center;justify-content:center;gap:7px;height:46px;border-radius:11px;
    border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;font-weight:700;
    cursor:pointer;text-decoration:none;
  }
  .btn.primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}
  .btn.primary.on{background:color-mix(in srgb,var(--ok) 16%,var(--card));border-color:color-mix(in srgb,var(--ok) 34%,transparent);color:var(--ok)}
  .btn.ghost{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 26%,var(--line))}

  @media (min-width:820px){
    .bar{flex-wrap:nowrap;height:48px;padding:2px 16px 0;gap:10px}
    .search{display:block;max-width:260px;margin-left:2px;flex:1 1 200px}
    .search input{height:30px;font-size:13px;border-radius:8px}
    .search .si{top:7px}
    .search .sc{top:2px}
    header.searching .brand,header.searching .prog{display:flex}
    .ib.searchBtn{display:none}
    .fgroup{order:0;flex:0 0 auto;padding-top:0;gap:6px;margin-left:auto}
    .prog{margin-left:4px}
    .rnav{padding:2px 16px 8px;gap:7px}
    .rnav .chip.jump{flex:1 1 auto;justify-content:center;height:28px;padding:0 7px;gap:4px}
    .chip{height:28px;padding:0 10px;font-size:12px}
    .rhead{padding:7px 16px 7px 13px}
    .rhead h2{font-size:13px}
    .row{grid-template-columns:34px minmax(0,1fr);column-gap:9px;padding:10px 16px 11px 11px;align-items:start}
    .body{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);column-gap:26px;align-items:start}
    .body > .l1,.body > .reqnote{grid-column:1}
    .acts{grid-column:2;grid-row:1 / span 3;margin-top:0;gap:6px;flex-direction:column;align-items:flex-start}
    .row{min-height:56px}
    .nm{font-size:14.5px}
    .eff{font-size:12px}
    .meta{font-size:11px}
    .sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-46%) scale(.98);opacity:0;
      width:min(460px,calc(100% - 40px));border-radius:16px;max-height:84vh}
    .sheet.on{transform:translate(-50%,-50%) scale(1);opacity:1}
    .grab{display:none}
    .sh{padding-top:18px}
  }
  @media (max-width:819px){
    .brand i{display:none}
    .filterBtn{display:grid}
    .fgroup,.rnav{display:none}
    header.filters-open .fgroup,header.filters-open .rnav{display:flex}
    .tname,.cbtn{font-size:13px}
    .tchk{min-height:34px}
    .rnav .jc{display:none}
    .eff .ex{opacity:.45}
    .cbtn{font-size:12.5px}
    .req + .req{margin-top:2px}
    .acts{gap:6px}
    .tick{width:21px;height:21px}
  }
  @media (min-width:820px) and (max-width:999px){
    .rnav .jc{display:none}
  }
  @media (hover:hover){
    a:hover,.home:hover,.chip.jump:hover .jn{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
    .row.done a.nm:hover{text-decoration:underline line-through}
  }
  @media (max-width:380px){
    .rnav,.fgroup{gap:5px}
    .rnav{padding:0 10px 8px}
    .chip{height:28px;padding:0 7px;font-size:12px}
    .chip .n{font-size:10.5px}
    .bar{padding-left:10px;padding-right:10px;gap:6px}
    .brand{font-size:14.5px}
    .brand i{display:none}
    .row{padding-left:8px;padding-right:12px}
    .nm{font-size:14.5px}
    .tchk{width:32px}
    .tname{padding:0 8px;font-size:12.5px}
    .cbtn{padding:0 8px;font-size:11.5px;gap:4px}
    .cbtn .ci{display:none}
    .pbox{width:14px;height:14px}
  }
  @media (prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important} }
  @media print{
    header,.toast,.scrim,.sheet,footer{display:none!important}
    .tgroup{border-color:#ccc!important;background:#fff!important}
    .cbtn{background:#fff!important;border-left-color:#ccc!important;color:#555!important}
    .tchk,.tname{cursor:default}
    .pbox{display:none}
    .rhead{position:static;background:#fff}
    body{background:#fff}
    .row{break-inside:avoid;page-break-inside:avoid}
  }
