:root{
  color-scheme:light;
  --bg:#F3F5F3;--surface:#FFFFFF;--surface-2:#E9EDE9;--surface-3:#DDE3DD;
  --ink:#17211C;--ink-2:#485350;--muted:#76817B;--line:#D3DAD4;--line-strong:#AEB8B0;
  --accent:#1F4E8C;--accent-soft:#E2EBF7;--edge:#AEB8B0;
  --d-year:#2a78d6;--d-kind:#1baf7a;--d-status:#eb6834;--d-flags:#4a3aa7;--d-pref:#b07d00;--d-closed:#0e8f9a;--d-kw:#6b7a1f;--d-jpx:#8a4fc2;--d-field:#c9558a;
  --d-year-soft:#E3EDFB;--d-kind-soft:#DCF3E9;--d-status-soft:#FCE9E0;--d-flags-soft:#E6E2F5;--d-pref-soft:#F5EDD6;--d-closed-soft:#DDF1F3;--d-kw-soft:#ECF0D8;--d-jpx-soft:#EEE4F8;--d-field-soft:#F8E3EC;
  /* chart tokens (charts.js) */
  --page:var(--bg);--grid:var(--line);--axis:var(--line-strong);--border:var(--line);--link:var(--accent);--deemph:#c3c2b7;
  --s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;--s7:#4a3aa7;--s8:#e34948;
  --seq-250:#86b6ef;--seq-300:#6da7ec;--seq-350:#5598e7;--seq-400:#3987e5;--seq-450:#2a78d6;--seq-500:#256abf;--seq-550:#1c5cab;--seq-600:#184f95;
  --font-display:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --font-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --font-mono:"IBM Plex Mono","SFMono-Regular",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#101412;--surface:#181E1B;--surface-2:#202723;--surface-3:#2A322D;
    --ink:#ECF0EC;--ink-2:#B7C0BA;--muted:#8B958F;--line:#2C3530;--line-strong:#4A554F;
    --accent:#7FB0F0;--accent-soft:#1B2A3E;--edge:#4A554F;--deemph:#383835;
    --d-year:#3987e5;--d-kind:#199e70;--d-status:#d95926;--d-flags:#9085e9;--d-pref:#c98500;--d-closed:#2fb3bf;--d-kw:#a3b53a;--d-jpx:#b184e0;--d-field:#d55181;
    --d-year-soft:#1A2A40;--d-kind-soft:#13302A;--d-status-soft:#3B2118;--d-flags-soft:#26223E;--d-pref-soft:#3A2E12;--d-closed-soft:#12333A;--d-kw-soft:#2A3016;--d-jpx-soft:#2C2140;--d-field-soft:#3C1F2C;
    --s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s7:#9085e9;--s8:#e66767;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#101412;--surface:#181E1B;--surface-2:#202723;--surface-3:#2A322D;
  --ink:#ECF0EC;--ink-2:#B7C0BA;--muted:#8B958F;--line:#2C3530;--line-strong:#4A554F;
  --accent:#7FB0F0;--accent-soft:#1B2A3E;--edge:#4A554F;--deemph:#383835;
  --d-year:#3987e5;--d-kind:#199e70;--d-status:#d95926;--d-flags:#9085e9;--d-pref:#c98500;--d-closed:#2fb3bf;--d-kw:#a3b53a;--d-jpx:#b184e0;--d-field:#d55181;
  --d-year-soft:#1A2A40;--d-kind-soft:#13302A;--d-status-soft:#3B2118;--d-flags-soft:#26223E;--d-pref-soft:#3A2E12;--d-closed-soft:#12333A;--d-kw-soft:#2A3016;--d-jpx-soft:#2C2140;--d-field-soft:#3C1F2C;
  --s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s7:#9085e9;--s8:#e66767;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.3;margin:0;text-wrap:balance}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.mono{font-family:var(--font-mono)}.tnum{font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.app{max-width:1440px;margin:0 auto;padding:22px 28px 40px}
/* top */
.top{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px 12px;align-items:end;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:18px}
.top .brand{grid-row:1;grid-column:1}.top>.srcbtn{grid-row:1}.top .crumb{grid-row:2;grid-column:1/-1}
.top h1{font-size:1.35rem;margin-top:4px}
.top h1 a{color:inherit}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:13px;min-height:28px}
.crumb button{padding:3px 9px;border-radius:4px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}
.crumb button:hover{border-color:var(--line-strong);color:var(--ink)}
.crumb button.cur{color:var(--ink);border-color:var(--sw);background:var(--surface)}
.crumb button.skip{border-style:dashed;color:var(--muted)}
.crumb .sep{color:var(--muted);padding:0 2px}
.crumb .chipdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sw);margin-right:6px;vertical-align:1px}
.srcbtn{font-size:12.5px;padding:6px 11px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink);white-space:nowrap;display:inline-block}
.srcbtn:hover{background:var(--surface-2);text-decoration:none}
.srcbtn.cur{background:var(--surface-2);font-weight:700}
@media (max-width:900px){.top{grid-template-columns:1fr auto auto}}
/* board */
.board-wrap{display:grid;grid-template-columns:170px minmax(0,1fr) 340px;gap:20px;align-items:start}
.palette{position:sticky;top:16px;display:flex;flex-direction:column;gap:8px;padding:12px 10px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.palette .eyebrow{margin:0 0 4px 4px}
.pnode{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;border:1px solid var(--line);background:var(--surface);text-align:left;color:var(--ink-2);transition:border-color .12s,background .12s}
.pnode .c{width:30px;height:30px;border-radius:50%;border:2px solid var(--sw);background:var(--surface);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;color:var(--muted)}
.pnode .t{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink);line-height:1.2}
.pnode .s{display:block;font-size:10.5px;color:var(--muted);font-weight:400;font-family:var(--font-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:104px}
.pnode:hover{border-color:var(--sw)}
.pnode.on{border-color:var(--sw);background:var(--soft)}
.pnode.on .c{background:var(--sw);color:#fff;border-color:var(--sw)}
.dim-year{--sw:var(--d-year);--soft:var(--d-year-soft)}.dim-kind{--sw:var(--d-kind);--soft:var(--d-kind-soft)}.dim-status{--sw:var(--d-status);--soft:var(--d-status-soft)}.dim-flags{--sw:var(--d-flags);--soft:var(--d-flags-soft)}.dim-pref{--sw:var(--d-pref);--soft:var(--d-pref-soft)}.dim-closed_year{--sw:var(--d-closed);--soft:var(--d-closed-soft)}.dim-kw{--sw:var(--d-kw);--soft:var(--d-kw-soft)}.dim-jpx{--sw:var(--d-jpx);--soft:var(--d-jpx-soft)}.dim-field{--sw:var(--d-field);--soft:var(--d-field-soft)}
.palette .hint{font-size:11px;color:var(--muted);line-height:1.5;margin:6px 4px 0}
.board-empty{display:flex;align-items:center;justify-content:center;min-height:260px;border:1px dashed var(--line-strong);border-radius:8px;color:var(--muted);font-size:13px;text-align:center;padding:20px;line-height:1.7}
.board-empty[hidden]{display:none}
.board-scroll{overflow-x:auto;padding-bottom:6px}
.board{position:relative;display:flex;gap:30px;align-items:flex-start;padding:6px 4px;min-height:280px}
.col{flex:0 0 auto;width:var(--column-width,280px);max-width:calc(100vw - 48px);position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch}
.col.dim-pref{--column-width:240px}.col.dim-kind{--column-width:230px}.col.dim-year{--column-width:230px}.col.dim-closed_year{--column-width:230px}.col.dim-jpx{--column-width:300px}.col.dim-field{--column-width:300px}.col.dim-flags{--column-width:320px}.col.dim-kw{--column-width:280px}.col.dim-status{--column-width:280px}
.col[hidden]{display:none}
.edges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.edges path{fill:none;stroke:var(--edge);stroke-linecap:round;transition:opacity .15s,stroke-width .15s}
.edges path.fan{stroke:var(--sw);opacity:.42}.edges path.fan.hot{opacity:.95}.edges path.fan.sel{opacity:1}
.edges path.chain{stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:4 4}
.hubwrap{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px;position:relative}
.hubx{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:var(--surface);border:1px solid var(--line-strong);color:var(--muted);font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}
.hubx:hover{color:var(--ink);border-color:var(--ink)}
.hub{width:78px;height:78px;border-radius:50%;border:2.5px solid var(--sw);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-family:var(--font-display);font-weight:700;font-size:13px;line-height:1.15;color:var(--ink);transition:transform .12s,box-shadow .12s;position:relative;text-align:center;padding:0 4px}
.hub small{font-family:var(--font-mono);font-weight:500;font-size:11px;color:var(--muted)}
.hub:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.12)}
.hub.focus{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--sw)}
.hubcap{font-size:12px;color:var(--ink-2);text-align:center;min-height:18px;line-height:1.4;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.hubcap b{font-weight:500;color:var(--ink)}
.list{background:var(--surface);border:1px solid var(--line);border-radius:7px;overflow-y:auto;max-height:calc(100vh - 300px);min-height:200px;padding:4px;scroll-behavior:smooth}
.list .grp{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);padding:8px 8px 2px;letter-spacing:.05em}
.row{display:grid;grid-template-columns:14px minmax(0,1fr) 40px 62px;align-items:center;gap:6px;width:100%;text-align:left;padding:4px 6px;border-radius:5px;font-size:12.5px;line-height:1.3;position:relative}
.row:hover{background:var(--surface-2)}
.row.sel{background:var(--soft)}.row.sel .nm{font-weight:700}
.row.focus{box-shadow:inset 0 0 0 1.5px var(--sw)}
.row.zero{opacity:.45}
.row .dot{width:9px;height:9px;border-radius:50%;background:var(--sw);justify-self:center;box-shadow:0 0 0 2px var(--surface)}
.row.sel .dot{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--sw)}
.row .nm{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
.row .nm small{color:var(--muted);font-family:var(--font-mono);font-size:10.5px;margin-left:5px;display:inline-block;white-space:nowrap}
.row .bar{height:7px;border-radius:2px;background:var(--surface-2);overflow:hidden}
.row .bar i{display:block;height:100%;background:var(--sw);border-radius:2px;min-width:1px}
.row .v{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.2}
.row .v small{display:block;font-size:9.5px;color:var(--muted)}
.row.skip{grid-template-columns:14px minmax(0,1fr) auto;border:1px dashed var(--line-strong);margin:2px 0 6px;color:var(--ink-2);background:var(--surface)}
.row.skip .dot{background:transparent;border:1.5px dashed var(--sw);box-shadow:none}
.row.skip .arr{font-family:var(--font-mono);font-size:12px;color:var(--muted);padding-right:2px}
.row.skip:hover{border-color:var(--sw);color:var(--ink)}
.row.skip.sel{border-style:solid;border-color:var(--sw);background:var(--soft);color:var(--ink)}
.row.skip.sel .dot{background:var(--sw);border-style:solid}
/* panel */
.panel{position:sticky;top:16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:18px 20px 16px;min-height:300px;max-height:calc(100vh - 32px);overflow-y:auto;border-top:4px solid var(--sw,var(--line-strong))}
.panel .eyebrow{display:flex;align-items:center;gap:8px}
.panel .eyebrow::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sw,var(--muted))}
.panel h2{font-size:1.2rem;margin:6px 0 2px}
.panel .sub{font-size:12.5px;color:var(--muted);font-family:var(--font-mono);margin-bottom:12px}
.panel h3{font-size:.95rem;margin:14px 0 6px;padding-top:10px;border-top:1px solid var(--line)}
.panel h3:first-of-type{border-top:0;padding-top:0}
.panel dl{display:grid;grid-template-columns:minmax(0,44%) minmax(0,1fr);gap:5px 14px;margin:0 0 14px;font-size:13px}
.panel dt{color:var(--muted)}.panel dd{margin:0;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12.5px}
.panel .big{font-family:var(--font-display);font-size:30px;font-weight:700;line-height:1.1;margin:4px 0 2px}
.panel .big small{font-family:var(--font-mono);font-size:12px;color:var(--muted);font-weight:500;margin-left:6px}
.panel p{margin:0 0 10px;font-size:13px;color:var(--ink-2);line-height:1.65}
.panel .note{font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:8px}
.panel .mini{display:grid;grid-template-columns:auto 1fr auto;gap:3px 8px;align-items:center;font-size:11.5px;margin:4px 0 12px}
.panel .mini .l{color:var(--ink-2);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}
.panel .mini .b{height:6px;background:var(--surface-2);border-radius:2px;overflow:hidden}
.panel .mini .b i{display:block;height:100%;background:var(--sw,var(--accent));border-radius:2px}
.panel .mini .n{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}
.panel .action{display:inline-block;margin:4px 6px 4px 0;font-size:12.5px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:4px;color:var(--ink);background:var(--surface)}
.panel .action:hover{background:var(--surface-2);text-decoration:none}
.panel .path{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 10px}
.panel .path span{font-size:11.5px;padding:2px 8px;border-radius:3px;border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface)}
.panel .path span i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sw);margin-right:5px;vertical-align:1px}
.sheetbar{display:none}
/* cards & charts (overall section, category pages) */
.section-h{font-family:var(--font-display);font-size:1rem;margin:28px 0 10px;color:var(--ink)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 16px 10px}
.card h3{font-size:13.5px;margin:0 0 6px}
.card .tools{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
button.ghost{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2);border-radius:4px;padding:3px 10px;font-size:12px}
button.ghost:hover{background:var(--surface-2)}
.chart{position:relative;width:100%;min-height:200px}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text{font-family:var(--font-mono);fill:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums}
.chart .lbl{fill:var(--ink-2);font-family:var(--font-body);font-size:11px}
.chart .axis line,.chart .grid line{stroke:var(--line);stroke-width:1;shape-rendering:crispEdges}
.chart .baseline{stroke:var(--line-strong);stroke-width:1;shape-rendering:crispEdges}
.chart .hit{fill:transparent}
.chart .mark:hover,.chart .mark.on{filter:brightness(1.12)}
.tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;font-size:12px;box-shadow:0 6px 24px rgba(0,0,0,.14);min-width:140px;z-index:5}
.tip .t{color:var(--ink-2);margin-bottom:4px}.tip .r{display:flex;align-items:center;gap:6px;justify-content:space-between}
.tip .r .k{display:inline-block;width:12px;height:2px}.tip .r b{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 8px;font-size:12px;color:var(--ink-2)}
.legend span i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.legend span i.line{height:2px;width:14px;border-radius:0;vertical-align:2px}
table.data{width:100%;border-collapse:collapse;font-size:12.5px}
table.data th,table.data td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
table.data th{color:var(--muted);font-weight:500;font-size:11.5px;background:var(--surface);position:sticky;top:0}
table.data td.n,table.data th.n{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.hidden{display:none !important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* category pages */
.catgroups{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.catlist a{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.catlist a span.n{color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px}
.badge{display:inline-block;font-family:var(--font-mono);font-size:11px;padding:1px 7px;border-radius:3px;border:1px solid var(--line-strong);color:var(--ink-2)}
.note{color:var(--muted);font-size:12.5px}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.filters select{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink)}
.pager{display:flex;gap:8px;align-items:center;margin:14px 0;font-size:13px}
.status{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.status.A{background:var(--d-kind)}.status.L{background:var(--muted)}.status.M{background:var(--d-status)}.status.R,.status.O{background:var(--line-strong)}
.page h1{font-size:1.35rem;margin:6px 0 10px}
.page h2{font-size:1rem;margin:22px 0 8px}
.page ul{padding-left:18px}.page li{margin:0 0 6px;font-size:13px;color:var(--ink-2)}
.page p{font-size:13px;color:var(--ink-2)}
footer{margin-top:26px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.6}
footer a{color:var(--ink-2)}
@media (max-width:1100px){.board-wrap{grid-template-columns:1fr}.panel{position:static}.palette{position:static;flex-direction:row;flex-wrap:wrap}.pnode{grid-template-columns:auto 1fr}}
@media (max-width:640px){
 .app{padding:14px 14px 96px}
 .top{grid-template-columns:1fr 1fr;gap:8px 10px;padding-bottom:12px;margin-bottom:12px}
 .top .brand{grid-column:1/-1}.top h1{font-size:1.02rem;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}
 .top .crumb{grid-column:1/-1;min-height:0}
 .board-wrap{gap:10px}
 .palette{position:sticky;top:0;z-index:5;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:8px;margin:0 -14px;border-radius:0;border-left:0;border-right:0;scrollbar-width:none}
 .palette::-webkit-scrollbar{display:none}
 .palette .eyebrow,.palette .hint{display:none}
 .pnode{flex:0 0 auto;grid-template-columns:auto auto;padding:5px 8px;gap:6px}
 .pnode .c{width:24px;height:24px;font-size:9px}.pnode .t{font-size:12px}.pnode .s{max-width:72px;font-size:10px}
 .board-scroll{margin:0 -14px;padding:0 14px 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
 .board{gap:22px}.col{scroll-snap-align:start}
 .board-empty{min-height:160px;font-size:12.5px}
 .row{font-size:12px;padding:6px 6px}
 .panel{position:fixed;top:auto;left:0;right:0;bottom:0;z-index:20;margin:0;border-radius:14px 14px 0 0;border-left:0;border-right:0;max-height:min(74vh,calc(100vh - 56px));min-height:0;padding:14px 16px 24px;box-shadow:0 -8px 30px rgba(0,0,0,.18);transform:translateY(100%);visibility:hidden;pointer-events:none;transition:transform .22s ease-out,visibility 0s linear .22s}
 body.sheet-open .panel{transform:translateY(0);visibility:visible;pointer-events:auto;transition:transform .22s ease-out,visibility 0s}
 .sheetbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:21;padding:10px 16px;background:var(--surface);border-top:1px solid var(--line-strong);box-shadow:0 -4px 18px rgba(0,0,0,.10);font-size:13px;color:var(--ink);cursor:pointer;padding-bottom:max(10px,env(safe-area-inset-bottom))}
 .sheetbar .sbt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheetbar .sbt b{font-weight:700}
 .sheetbar .sbx{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);border:1px solid var(--line-strong);border-radius:4px;padding:4px 8px;background:var(--surface)}
 body.sheet-open .panel{padding-bottom:calc(52px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.panel{transition:none}}
