
:root{
  --paper:#F2F4F3; --surface:#FFFFFF; --ink:#16202E; --muted:#5A6572; --text2:#3A4553; --line:#D8DEE0;
  --accent:#2F8A24; --yamanote:#80C241; --accent-soft:#E6F2DE;
  --trad:#D2462E; --neon:#D6337F; --lux:#A67E22; --anime:#6A56D0; --indie:#1D8585; --nature:#3F8F3A;
  --land:#E8ECE5; --water:#C6DCE7; --park:#CFE3C1; --ward:#CBD3C8; --maplabel:#243140; --halo:#F4F6F2;
  --shadow:0 10px 30px rgba(22,32,46,.12);
  --display:"Dela Gothic One","Zen Kaku Gothic New","Hiragino Sans",system-ui,sans-serif;
  --body:"Zen Kaku Gothic New","Noto Sans TC","Hiragino Sans","PingFang TC",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --paper:#0E131A; --surface:#171F29; --ink:#E7EBEE; --muted:#98A4B0; --text2:#C3CBD3; --line:#29333F;
    --accent:#8FD35E; --accent-soft:#1E2E1A;
    --land:#1A232E; --water:#0D1B27; --park:#1D3224; --ward:#2A3643; --maplabel:#D2DAE2; --halo:#1A232E;
    --shadow:0 10px 30px rgba(0,0,0,.45);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#0E131A; --surface:#171F29; --ink:#E7EBEE; --muted:#98A4B0; --text2:#C3CBD3; --line:#29333F;
  --accent:#8FD35E; --accent-soft:#1E2E1A;
  --land:#1A232E; --water:#0D1B27; --park:#1D3224; --ward:#2A3643; --maplabel:#D2DAE2; --halo:#1A232E;
  --shadow:0 10px 30px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.65;padding:0 16px}
.wrap{max-width:1180px;margin:0 auto}
h1,h2,h3{text-wrap:balance;margin:0}
h2{font-family:var(--display);font-weight:400;font-size:clamp(22px,3vw,28px);letter-spacing:.01em}
h3{font-size:16px;font-weight:700}
p{margin:0}
a{color:var(--accent)}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.urlbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.urlbar .u b{color:var(--ink);font-weight:500}
.urlbar .hl{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip-mono{padding:2px 8px;border:1px solid var(--line);border-radius:99px;white-space:nowrap}
.aeo-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--ink)}

header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--line);margin:12px -16px 0;padding:10px 16px}
.hdr{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.brand .bname{white-space:nowrap}
.brand .btag{font-family:var(--body);font-size:11.5px;font-weight:700;letter-spacing:0;color:var(--accent);border-left:1px solid var(--line);padding-left:9px;white-space:nowrap}
@media (max-width:1440px){.brand .btag{display:none}}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--display);font-size:18px;letter-spacing:.04em;text-decoration:none;color:var(--ink)}
nav.main{display:flex;gap:4px;flex-wrap:wrap}
nav.main a{text-decoration:none;color:var(--muted);padding:4px 10px;border-radius:6px;font-weight:500}
nav.main a:hover{color:var(--ink);background:var(--surface)}
.langs{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.langs button{border:0;background:none;padding:5px 11px;cursor:pointer;font-size:13px;font-weight:700;color:var(--muted)}
.langs button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}

.hero{padding-block:36px 20px;display:grid;gap:14px;max-width:760px}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(30px,5vw,48px);line-height:1.15}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero p{color:var(--muted);font-size:16.5px;max-width:62ch}

.qa{border-left:3px solid var(--accent);background:var(--accent-soft);padding:12px 14px;border-radius:0 8px 8px 0;position:relative}
.qa .lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}
body:not(.is-admin) .devonly{display:none!important}
.show-aeo .qa{outline:2px dashed var(--neon);outline-offset:3px}
.show-aeo .qa::after{content:attr(data-schema);position:absolute;top:-11px;right:8px;background:var(--neon);color:#fff;font-family:var(--mono);font-size:10.5px;padding:1px 7px;border-radius:4px}

section.block{padding-block:40px;border-top:1px solid var(--line);display:grid;gap:18px}
.sec-head{display:grid;gap:8px;max-width:760px}

/* ---------- map ---------- */
.map-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{border:1px solid var(--line);background:var(--surface);padding:5px 12px;border-radius:99px;cursor:pointer;font-size:13.5px;font-weight:500}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip.sw{display:flex;align-items:center;gap:7px}
.chip.sw::before{content:"";width:10px;height:10px;border-radius:50%;border:2px solid var(--muted)}
.chip.sw[aria-pressed="true"]{background:var(--surface);color:var(--ink);border-color:var(--ink)}
.chip.sw[aria-pressed="true"]::before{background:var(--yamanote);border-color:var(--yamanote)}
.sep{width:1px;height:22px;background:var(--line)}
.daynight{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:99px;overflow:hidden;background:var(--surface)}
.daynight button{border:0;background:none;padding:5px 12px;cursor:pointer;font-size:13.5px;color:var(--muted)}
.daynight button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.map-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
.mapbox{position:relative;height:clamp(380px,68vh,660px);background:var(--water);border:1px solid var(--line);border-radius:14px;overflow:hidden;user-select:none;-webkit-user-select:none}
.mapbox.night{--land:#131B26;--water:#08121C;--park:#16281C;--ward:#26313E;--maplabel:#CFD8E1;--halo:#131B26}
#map{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
#map.dragging{cursor:grabbing}
.m-land{fill:var(--land);stroke:var(--ward);stroke-width:.8px;vector-effect:non-scaling-stroke}
.m-park{fill:var(--park)}
.m-river{fill:none;stroke:var(--water);stroke-linecap:round;stroke-linejoin:round}
.m-rail{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.m-rail.sub{stroke-width:1.6px;opacity:.5}
.m-rail.jr{stroke-width:2.4px;opacity:.85}
.m-rail.air{stroke-width:3.2px;opacity:.9}
.m-rail.sk{stroke:var(--ink);stroke-width:4.5px}
.m-rail.sk-dash{stroke:var(--paper);stroke-width:1.6px;stroke-dasharray:7 7;stroke-linecap:butt}
.area text.skb{stroke:none;text-anchor:middle;dominant-baseline:central}
.area.airport text.ic{fill:#fff;stroke:none;font-weight:700;text-anchor:middle}
.acc{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:13.5px}
.acc li{display:flex;gap:8px;align-items:flex-start}
.acc li i{width:14px;height:4px;border-radius:2px;flex:none;margin-top:10px}
.m-rail.jy-halo{stroke:var(--halo);stroke-width:8px}
.m-rail.jy{stroke-width:5px}
.mapbox.night .m-rail.sub{opacity:.35}
.area{cursor:pointer;outline:none}
.area .dot{transition:transform .15s, opacity .25s;transform-box:fill-box;transform-origin:center}
.area:hover .dot,.area:focus-visible .dot,.area.sel .dot{transform:scale(1.3)}
.area .ring{fill:none;opacity:0}
.area.sel .ring{opacity:1}
.area.dim{opacity:.2}
.area text{font-family:var(--body);font-weight:700;fill:var(--maplabel);paint-order:stroke;stroke:var(--halo);stroke-linejoin:round;pointer-events:none;dominant-baseline:central}
.area.main text{font-weight:700}
.area.town text,.area.spot text{font-weight:500}
.mapbox.night .area.glow .dot{filter:drop-shadow(0 0 5px currentColor) drop-shadow(0 0 12px currentColor)}
.mapctl{position:absolute;right:10px;bottom:34px;display:grid;gap:4px}
.mapctl button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:18px;line-height:1;display:grid;place-items:center;box-shadow:var(--shadow)}
.mapctl button.fit{font-size:13px}
.hint{position:absolute;left:10px;bottom:8px;font-size:11.5px;color:var(--maplabel);background:var(--halo);opacity:.9;padding:2px 8px;border-radius:6px;pointer-events:none;max-width:calc(100% - 20px)}
.credit{position:absolute;right:10px;bottom:8px;font-size:10px;color:var(--maplabel);opacity:.7;pointer-events:none}
.legend{position:absolute;top:10px;left:10px;display:grid;gap:3px;font-size:11.5px;color:var(--maplabel);background:var(--halo);border:1px solid var(--line);border-radius:8px;padding:6px 9px;pointer-events:none;opacity:.94}
.legend span{display:flex;align-items:center;gap:7px}
.legend svg{flex:none}
.tip{position:absolute;z-index:3;width:240px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:10px 12px;pointer-events:none;font-size:13px;line-height:1.5}
.tip .nm{font-weight:700;font-size:14.5px}
.tip .nm span{color:var(--muted);font-weight:500;margin-left:6px}
.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.tag{font-size:11.5px;padding:1px 8px;border-radius:99px;background:var(--paper);border:1px solid var(--line);color:var(--muted)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:12px;max-height:clamp(380px,68vh,660px);overflow:auto}
.panel .top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.panel .swatch{width:12px;height:12px;border-radius:50%;flex:none;align-self:center}
.panel h3{font-family:var(--display);font-weight:400;font-size:clamp(30px,3vw,38px);line-height:1.15;letter-spacing:.02em}
.panel .jp{font-size:16px}
.panel .jp{color:var(--muted);font-size:15px}
.panel .tagline{font-size:17px;font-weight:700}
.panel .close{display:none}
.kick{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted)}
.meters{display:grid;gap:8px}
.meter{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:12.5px;color:var(--muted)}
.meter .bar{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.meter .bar i{height:6px;border-radius:2px;background:var(--line)}
.meter .bar i.on{background:var(--ink)}
.kv{display:flex;gap:8px;font-size:13.5px}
.kv b{white-space:nowrap}
.more{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:17px;text-decoration:none;color:var(--paper);background:var(--accent);border-radius:10px;padding:11px 16px}
.more:hover{filter:brightness(1.08)}
.rel{display:grid;gap:6px;border-top:1px solid var(--line);padding-top:10px}
.rel .h{font-size:12.5px;font-weight:700;color:var(--muted)}
.rel .row{display:flex;gap:6px;flex-wrap:wrap}
.rel button{border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:3px 10px 3px 7px;cursor:pointer;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px}
.rel button i{width:9px;height:9px;border-radius:50%}
.rel button i.sq{border-radius:2px;transform:rotate(45deg) scale(.85)}

.ph{margin:0;display:grid;gap:4px}
.ph img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;display:block;background:var(--line)}
.ph figcaption{font-size:10.5px;color:var(--muted);line-height:1.4}
.ph figcaption a{color:inherit}
.tip img{width:100%;height:110px;object-fit:cover;border-radius:6px;display:block;margin-bottom:6px;background:var(--line)}

/* ---------- other sections ---------- */
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:10px;align-content:start}
.card .kicker{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.04em}
.badges{display:flex;flex-wrap:wrap;gap:5px}
.lb{width:28px;height:28px;border-radius:50%;border:3px solid var(--c);display:grid;place-items:center;font-family:var(--mono);font-weight:500;font-size:12.5px;background:var(--surface)}
.loop-mini{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
ol.steps{margin:0;padding-left:20px;display:grid;gap:4px;font-size:14px}
.warn{font-size:12.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tabs button{border:0;background:none;padding:8px 14px;cursor:pointer;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--accent)}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.food .nm{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.25;letter-spacing:.02em}
.food .nm small{font-family:var(--body);color:var(--muted);font-weight:500;margin-left:6px;font-size:13px;letter-spacing:0}
.food>p,.food p.how,.stcard dd{color:var(--text2)}
.food dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:13.5px}
.food dt{color:var(--muted)}
.food dd{margin:0}
.rich{display:flex;gap:3px;align-items:center;font-size:12px;color:var(--muted)}
.rich i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.rich i.on{background:var(--trad)}
.food .ph img{aspect-ratio:4/3}
.food h4{margin:0;font-size:12px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.food .tagl{font-size:13.5px;color:var(--muted);margin-top:-6px}
.food p.how{font-size:13.5px}
.pricepill{font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;background:var(--accent-soft);color:var(--accent);justify-self:start}
.guide{display:grid;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.guide ol{margin:0;padding-left:20px;display:grid;gap:3px;font-size:14px}
.photorow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.credits{margin:10px 0 0;padding-left:18px;font-size:12px;color:var(--muted);columns:2;column-gap:28px}
.credits li{break-inside:avoid;margin-bottom:3px}
.credits a{color:inherit}
@media (max-width:760px){.credits{columns:1}.photorow{grid-template-columns:1fr}}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
thead th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
tbody th{color:var(--muted);font-weight:500;white-space:nowrap}
.note{font-size:13px;color:var(--muted);background:var(--surface);border:1px dashed var(--line);padding:8px 12px;border-radius:8px}
.spot-col h3{display:flex;align-items:center;gap:8px}
.spot-col h3 .sw{width:10px;height:10px;border-radius:50%}
.spot-col ul{list-style:none;margin:0;padding:0;display:grid}
.spot-col li{padding:0;border-bottom:1px solid var(--line)}
.slink{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center;padding:10px 6px;margin:0 -6px;border-radius:10px;text-decoration:none;color:var(--ink)}
.slink:hover,.slink:focus-visible{background:var(--paper)}
.slink:hover b{color:var(--accent)}
.slink>b,.slink>span{grid-column:1}
.slink>span{color:var(--muted)}
.sthumb{grid-column:2;grid-row:1/span 2;width:92px;height:68px;object-fit:cover;border-radius:8px;background:var(--line)}
.spot-col li:last-child{border-bottom:0}
.spot-col li b{font-size:14.5px}
.spot-col li span{font-size:13px;color:var(--muted)}
.apps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.app{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}
.app .ic{width:34px;height:34px;border-radius:9px;flex:none;display:grid;place-items:center;font-family:var(--mono);font-weight:500;color:#fff;font-size:13px}
.app b{display:block;font-size:14px}
.app span{font-size:12.5px;color:var(--muted);line-height:1.45;display:block}
details.hood{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 16px}
details.hood summary{cursor:pointer;font-weight:700}
pre{font-family:var(--mono);font-size:12px;line-height:1.55;overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px;margin:10px 0 0}
footer{padding-block:28px 40px;color:var(--muted);font-size:12.5px;border-top:1px solid var(--line)}

.muted{color:var(--muted);max-width:62ch}
.adminonly:not(.isadmin){display:none!important}
nav.main a.active{color:var(--ink);background:var(--surface)}
nav.main{align-items:center}
nav.main a{padding:4px 8px}
.morenav{position:relative}
.morenav summary{list-style:none;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px;font-weight:500}
.morenav summary::-webkit-details-marker{display:none}
.morenav summary::after{content:" ▾";font-size:11px}
.morenav summary.active,.morenav[open] summary,.morenav summary:hover{color:var(--ink);background:var(--surface)}
.morelist{position:absolute;top:calc(100% + 6px);left:0;z-index:25;display:grid;min-width:170px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px}
.morelist a{padding:8px 10px!important;border-radius:6px}
.navsaved em{font-style:normal;font-size:11px;font-weight:700;background:var(--neon);color:#fff;border-radius:99px;padding:0 6px;margin-left:2px}
/* home */
.home{border-top:0;padding-top:0}
.search{position:relative;max-width:720px}
.search input{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px 14px 44px;box-shadow:var(--shadow);background-image:radial-gradient(circle at 20px 50%,transparent 6px,var(--muted) 6.5px,var(--muted) 8px,transparent 8.5px);}
.qres{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:15;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;display:grid}
.qitem{display:flex;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;text-decoration:none;color:var(--ink)}
.qitem:hover,.qitem:focus-visible{background:var(--paper)}
.qitem img,.qdot{width:44px;height:32px;object-fit:cover;border-radius:6px;flex:none;background:var(--line)}
.qitem span{display:grid}.qitem small{color:var(--muted);font-size:12px}
.qnone{padding:8px;color:var(--muted);margin:0}
.entries{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.entry{position:relative;display:grid;gap:4px;padding:16px 16px 16px 20px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);border-left:5px solid var(--ec);transition:transform .15s}
.entry:hover{transform:translateY(-2px)}
.entry b{font-size:16px}.entry span{font-size:13px;color:var(--muted)}
.entry i{position:absolute;right:14px;top:14px;font-style:normal;color:var(--ec);font-weight:700}
.popular{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.pcard{position:relative;scroll-snap-align:start;display:grid;gap:4px;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 8px 12px}
.pcard img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.pcard b,.pcard span,.pcard em{padding:0 4px}.pcard span{font-size:12.5px;color:var(--muted)}
.pcard em{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--lux)}
.pcard .fav{position:absolute;top:14px;right:14px}
/* fav */
.fav{border:1px solid var(--line);background:var(--surface);color:var(--neon);border-radius:99px;min-width:32px;height:32px;padding:0 9px;cursor:pointer;font-size:16px;line-height:1;display:inline-flex;align-items:center;gap:6px;justify-content:center}
.fav[aria-pressed="true"]{background:var(--neon);color:#fff;border-color:var(--neon)}
.fav.big{height:38px;padding:0 14px;font-weight:700;font-size:15px}
.fav.big span{font-size:14px}
.panel .top .fav{margin-left:auto;align-self:center}
/* view bar */
.viewbar{gap:10px}
.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.seg button{border:0;background:none;padding:6px 16px;cursor:pointer;font-weight:700;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.yenchip{font-family:var(--mono);font-weight:500}
.sortl{display:flex;gap:6px;align-items:center;margin-left:auto}
.sortl select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
/* list */
.lgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.lrow{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px}
.lrow img,.lrow .noimg{width:120px;height:90px;object-fit:cover;border-radius:8px}
.lmain{display:grid;gap:2px}.lmain p{font-size:13px;color:var(--muted)}
.lname{font-weight:700;font-size:16px;text-decoration:none;color:var(--ink)}
.lname small{font-weight:500;color:var(--muted);font-size:12.5px}
.lmeta{display:flex;gap:12px;font-size:12px;color:var(--muted);align-items:center}
.yen{font-family:var(--mono);color:var(--lux);font-weight:500}.yen i{font-style:normal;opacity:.25}
.lact{display:grid;gap:6px;justify-items:end}
.lbtn{display:inline-block;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:5px 12px;cursor:pointer;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}
/* place page */
.place{border-top:0}
.back{font-weight:700;text-decoration:none;font-size:14px}
.pgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:12px}
.pmedia .ph img{aspect-ratio:4/3;border-radius:14px}
.noimg.big{aspect-ratio:4/3;border-radius:14px;opacity:.5}
.pinfo{display:grid;gap:12px}
.pinfo h3{font-family:var(--display);font-weight:400;font-size:clamp(26px,4vw,38px)}
.pinfo .top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pinfo .swatch{width:14px;height:14px;border-radius:50%;align-self:center}
.pinfo .tagline{font-size:18px;font-weight:700}
.pacts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.hotel{display:grid;gap:2px;text-decoration:none;color:var(--ink);border:1px dashed var(--lux);border-radius:12px;padding:12px 14px;background:var(--surface)}
.hotel small{font-size:11px;color:var(--muted)}
/* area map */
:root{--road:#FFFFFF;--worship:#F1D3CA}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--road:#2B3645;--worship:#3A2622}}
:root[data-theme="dark"]{--road:#2B3645;--worship:#3A2622}
.area.main text{pointer-events:auto;cursor:pointer}
.area.main text:hover{text-decoration:underline}
.amap{display:grid;gap:12px;margin:8px 0 28px}
.amlegend{display:flex;flex-wrap:wrap;gap:6px}
.amlegend button{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:5px 12px;cursor:pointer;font-size:13px;font-weight:500}
.amlegend button[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.amlegend i{width:11px;height:11px;flex:none}
.amlegend i.dot{border-radius:50%}.amlegend i.sq{border-radius:3px;border:1px solid var(--line)}
.amlegend i.st{border-radius:3px;background:var(--surface)!important;border:2.5px solid var(--ink)}
.amlegend i.dia{transform:rotate(45deg) scale(.8)}
.ambox{position:relative;height:clamp(420px,72vh,720px);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--land)}
#amSvg{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.am-minor{fill:none;stroke:var(--road);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.am-ped{fill:none;stroke:var(--road);stroke-width:6;stroke-dasharray:10 7}
.am-major{fill:none;stroke:var(--road);stroke-width:13;stroke-linecap:round;stroke-linejoin:round}
.am-rail{fill:none;stroke:var(--ink);stroke-width:7;opacity:.7}
.am-rail-dash{fill:none;stroke:var(--land);stroke-width:3;stroke-dasharray:14 14}
.am-st rect{fill:var(--surface);stroke:var(--ink)}
.am-st text,.am-si text{font-family:var(--body);font-weight:700;fill:var(--maplabel);paint-order:stroke;stroke:var(--land);stroke-width:calc(3.5px * var(--u,1));dominant-baseline:central}
.am-si text{font-weight:500}
.am-si.link text{text-decoration:underline}
.am-hot text{font-family:var(--body);font-weight:700;fill:#fff;text-anchor:middle;dominant-baseline:central}
.am-hot rect{opacity:.92}
/* store guide */
.stgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.stcard h3 a{color:var(--ink);text-decoration:none}.stcard h3 a:hover{color:var(--accent)}
.stmore{justify-self:start}
.why h3{margin-bottom:4px}
.whygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.whygrid div{display:grid;gap:2px}.whygrid b{font-size:15px}.whygrid span{font-size:13.5px;color:var(--muted)}
@media (max-width:760px){.whygrid{grid-template-columns:1fr}}
.sthub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sthubcard{display:grid;gap:4px;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--cc);border-radius:12px;padding:14px 16px}
.sthubcard b{font-size:17px}.sthubcard span{font-size:13px;color:var(--muted)}
.sthubcard:hover{transform:translateY(-2px)}
.stdetail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px;align-items:start}
.stdmedia .ph img{aspect-ratio:4/3;border-radius:14px}
.stph{aspect-ratio:4/3;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cc),transparent 85%);font-size:clamp(24px,4vw,40px);font-family:var(--display);color:var(--ink)}
.stph b{font-weight:400}
.stdinfo{display:grid;gap:12px}
.stdl{margin:0;display:grid;gap:4px}.stdl dt{font-size:12px;font-weight:700;color:var(--muted)}.stdl dd{margin:0 0 8px}
a.acat{text-decoration:none}
.stmapbox{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--water)}
#stMap{display:block;width:100%;height:auto;aspect-ratio:1150/760}
.stlbl{font-family:var(--body);font-weight:700;font-size:15px;fill:var(--maplabel);paint-order:stroke;stroke:var(--halo);stroke-width:4px}
@media (max-width:900px){.sthub{grid-template-columns:repeat(2,minmax(0,1fr))}.stdetail{grid-template-columns:1fr}}
@media (max-width:560px){.sthub{grid-template-columns:1fr}}
.stcard{border-top:5px solid var(--cc)}
.sthead{display:flex;gap:12px;align-items:center;justify-content:space-between}
.sthead img{width:132px;height:88px;object-fit:cover;border-radius:8px;flex:none;background:var(--line)}
.stcard h3{font-family:var(--display);font-weight:400;font-size:21px;letter-spacing:.02em}.stcard h3 small{font-family:var(--body);font-size:12px;color:var(--muted);font-weight:500;letter-spacing:0}
.stcard dl{margin:0;display:grid;gap:4px}
.stcard dt{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.stcard dd{margin:0 0 8px;font-size:14px}
.nexth{margin-top:24px}
.food .nm a{color:var(--ink);text-decoration:none}.food .nm a:hover{color:var(--accent)}
.food>a{display:block}
.dtitle{font-family:var(--display);font-weight:400;font-size:clamp(28px,4vw,40px)}
.dtitle small{font-family:var(--body);font-size:15px;color:var(--muted)}
#dishHead{display:grid;gap:12px}
#dishChains{display:grid;gap:12px;margin-top:10px}
#dishGen{display:grid;gap:14px}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.vcard{gap:4px;align-content:start}
.vcard img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;margin-bottom:6px;background:var(--line)}.vcard b{font-size:16px}.vcard small{font-size:12px;color:var(--muted)}.vcard span{font-size:13.5px}
@media (max-width:900px){.stgrid{grid-template-columns:1fr}}
/* stories */
.agrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.agrid.agrid4{grid-template-columns:repeat(4,minmax(0,1fr))}
#homeStories{display:grid;gap:14px}
.hshead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.more2{font-weight:700;text-decoration:none;font-size:14px}
.featured{position:relative}
.featured .acard2{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto;align-items:center;padding:10px}
.featured .acard2>img,.featured .acard2>.acover{grid-row:1/span 5}
.featured .acard2 b{font-size:22px}
.ftag{position:absolute;top:18px;left:18px;z-index:1;background:var(--trad);color:#fff;font-size:12px;font-weight:700;border-radius:99px;padding:3px 10px}
@media (max-width:760px){.featured .acard2{grid-template-columns:1fr}.featured .acard2>img,.featured .acard2>.acover{grid-row:auto}}
.acard2{display:grid;gap:6px;align-content:start;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 8px 14px}
.acard2 img,.acover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px}
.acover{background:linear-gradient(135deg,var(--cc),transparent);opacity:.5}
.acard2 b{font-size:16px;padding:0 6px;line-height:1.4}.acard2 span{padding:0 6px}.acard2>span{font-size:13px;color:var(--muted)}
.acard2 small{padding:0 6px;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.ameta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:0 6px}
.acat{font-size:11.5px;font-weight:700;color:#fff;background:var(--cc);border-radius:99px;padding:1px 9px}
.akind{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:0 8px}
.adraft{font-size:11.5px;font-weight:700;color:var(--trad);border:1px dashed var(--trad);border-radius:99px;padding:0 8px}
.aempty{grid-column:1/-1;border:1px dashed var(--line);border-radius:14px;padding:40px 20px;text-align:center;color:var(--muted);background:var(--surface)}
.story{display:grid;gap:14px;max-width:760px}
.story .ameta{padding:0}
.stitle{font-family:var(--display);font-weight:400;font-size:clamp(26px,4vw,40px);line-height:1.25}
.sdates{font-family:var(--mono);font-size:12px;color:var(--muted)}
.spgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.spcard{position:relative;gap:8px}
.spcard>.fav{position:absolute;top:26px;right:26px}
.spimg img,.spimg .noimg{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;display:block}
.spk{justify-self:start;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:var(--cc);border:1px solid var(--cc);border-radius:99px;padding:1px 9px}
.spn{font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:.02em;line-height:1.25}
.spn a{color:var(--ink);text-decoration:none}.spn a:hover{color:var(--accent)}
.spn small{font-family:var(--body);font-size:12.5px;color:var(--muted);letter-spacing:0}
.spt{margin:0;color:var(--text2)}.spb{margin:0;font-size:13px;color:var(--muted)}.spb b{color:var(--ink);margin-right:6px}
.spfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}
.spnear{font-size:13px;font-weight:700;color:var(--ink);text-decoration:none}.spnear:hover{color:var(--accent)}
.sph2{margin-top:30px}
.card.food{position:relative}.card.food>.fav{position:absolute;top:26px;right:26px}
.stcard .sthead .fav{flex:none}
.dtitle-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.svh{margin:18px 0 10px;font-size:15px;color:var(--muted);letter-spacing:.04em}
.rf{gap:16px}
.rfpick{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:center}
.rfbody{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:18px;align-items:start}
.rfsteps{list-style:none;margin:10px 0;padding:0;display:grid;gap:4px}
.rfsteps li{border-left:5px solid var(--lc);padding:6px 12px;display:grid;gap:2px;background:var(--paper);border-radius:0 8px 8px 0}
.rfsteps li span{font-size:13.5px;color:var(--text2)}
.rfsteps li.rfx{border:0;background:none;font-size:12.5px;color:var(--muted);padding:2px 12px}
.rfdirect{margin:0;font-weight:700;color:var(--accent)}
.rfnote{margin:6px 0 0;font-size:13.5px;color:var(--text2)}
.rfmapbox{margin:0;display:grid;gap:6px}.rfmapbox figcaption{font-size:12px}
#rfMap{width:100%;aspect-ratio:4/3;border-radius:12px;border:1px solid var(--line);display:block}
.rfglow{filter:drop-shadow(0 0 3px rgba(255,255,255,.7))}
@media (max-width:900px){.spgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.rfbody{grid-template-columns:1fr}}
@media (max-width:560px){.spgrid{grid-template-columns:1fr}.rfpick{grid-template-columns:1fr}}
.legalnav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.legalnav a{padding:7px 14px;border:1px solid var(--line);border-radius:99px;text-decoration:none;color:var(--ink);font-weight:700;font-size:13.5px;background:var(--surface)}
.legalnav a.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.legalsecs{display:grid;gap:14px;max-width:820px}
.legalsecs .card{display:grid;gap:10px}
.legalsecs p{margin:0;color:var(--text2);line-height:1.8}
.legalul{margin:0;padding-left:1.2em;display:grid;gap:6px;color:var(--text2);line-height:1.7}
.legaldl{margin:0;display:grid;grid-template-columns:minmax(90px,max-content) 1fr;gap:8px 18px}
.legaldl dt{color:var(--muted);font-size:13px;font-weight:700}.legaldl dd{margin:0}
.legalsecs .lbtn{justify-self:start}
mark.fill{background:rgba(214,51,127,.16);color:var(--neon);border:1px dashed var(--neon);border-radius:4px;padding:0 4px}
.authorcard{display:flex;gap:14px;align-items:flex-start;padding:12px;border-radius:12px;background:var(--paper)}
.authorcard .av{flex:none;width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--paper);display:grid;place-items:center;font-family:var(--display);font-size:16px}
.authorcard>div:last-child{display:grid;gap:2px}.authorcard span{font-size:12.5px}
.byline{font-size:13px;color:var(--muted)}.byline a{color:var(--ink);font-weight:700}
.footlinks{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:10px}
.footlinks a{color:var(--ink);font-weight:700;font-size:13px;text-decoration:none}.footlinks a:hover{color:var(--accent)}
.bnlegal{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center;padding-top:4px}
.bnsheet-in .bnlegal a{padding:4px 0;background:none;font-weight:500;font-size:12.5px;color:var(--muted)}
.stale{border-color:var(--trad);color:var(--trad)}
.slead{font-size:17px;font-weight:700}
.sbody{display:grid;gap:12px;font-size:16px;line-height:1.85}
.sbody h3{font-size:20px;margin-top:10px}
.sbody ul{margin:0;padding-left:22px;display:grid;gap:4px}
.edform h2{margin-bottom:6px}
.edform .cfield{font-size:13px;font-weight:700;color:var(--muted)}
.edform input[type=date]{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
.edform textarea{font-family:var(--body);font-size:15px;line-height:1.7}
#edSave{border:0;background:var(--ink);color:var(--paper);border-radius:8px;padding:9px 22px;font-weight:700;cursor:pointer}
@media (max-width:900px){.agrid,.agrid.agrid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.agrid{grid-template-columns:1fr}}
/* mobile bottom nav */
.bottomnav,.bnsheet{display:none}
@media (pointer:coarse){#map,#amSvg{touch-action:pan-y}}
@media (max-width:760px){
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  nav.main{display:none}
  .brand .bname{font-size:16px}
  .bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:28;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
  .bottomnav a,.bottomnav button{display:grid;justify-items:center;gap:2px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:700;background:none;border:0;padding:4px 0;cursor:pointer}
  .bottomnav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .bottomnav .active{color:var(--accent)}
  .bnsheet{display:block;position:fixed;inset:0;z-index:27;background:rgba(0,0,0,.35)}
  .bnsheet[hidden]{display:none}
  .bnsheet-in{position:absolute;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);border-radius:16px 16px 0 0;padding:10px 12px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .bnsheet-in a{padding:12px;border-radius:10px;background:var(--paper);text-decoration:none;color:var(--ink);font-weight:700;font-size:14px}
  .bnsheet-in .bnhelp{grid-column:1/-1;background:var(--trad);color:#fff;text-align:center}
  .panel{bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .map-tools>*{min-width:0;max-width:100%}
  .map-tools{flex-wrap:wrap}
  .daynight{margin-left:0}
}
/* help & manners */
.helpbtn{margin-left:auto;text-decoration:none;font-weight:700;font-size:13.5px;color:#fff;background:var(--trad);border-radius:99px;padding:6px 14px}
.helpbtn+.langs{margin-left:0}
.emcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.emcard{display:grid;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.emcard.big{border-color:var(--trad);border-width:2px}
.emnum{font-family:var(--mono);font-weight:500;font-size:clamp(26px,4vw,40px);color:var(--trad);user-select:all;line-height:1.1}
.emcard:not(.big) .emnum{font-size:clamp(20px,2.6vw,26px);color:var(--ink)}
.emcard span:last-child{font-size:13px;color:var(--muted)}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hlist{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px}
.mlist{list-style:none;margin:0;padding:0;display:grid}
.mlist li{display:grid;gap:2px;padding:9px 0;border-bottom:1px solid var(--line)}
.mlist li:last-child{border-bottom:0}
.mlist b{font-size:14.5px}.mlist span{font-size:13.5px;color:var(--muted)}
.phrases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.phrase{display:grid;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}
.phrase b{font-size:clamp(18px,2.4vw,24px);line-height:1.35}
.phrase span{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.phrase small{font-size:13px}
@media (max-width:760px){.emcards,.cols2,.phrases{grid-template-columns:1fr}.helpbtn{margin-left:0}}
/* transport airport cards */
.acards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.acard{display:grid;gap:4px;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 8px 12px}
.acard img,.acard .noimg{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;opacity:1}
.acard .noimg{opacity:.35}
.acard b,.acard span{padding:0 4px}.acard span{font-size:12.5px;color:var(--muted)}
@media (max-width:900px){.entries{grid-template-columns:repeat(2,minmax(0,1fr))}.lgrid{grid-template-columns:1fr}.acards{grid-template-columns:repeat(2,minmax(0,1fr))}.pgrid{grid-template-columns:1fr}}
@media (max-width:480px){.entries{grid-template-columns:1fr}.lrow{grid-template-columns:88px minmax(0,1fr)}.lrow img,.lrow .noimg{width:88px;height:70px}.lact{grid-column:1/-1;display:flex;justify-items:start}.sortl{margin-left:0}}
.cform{display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;max-width:880px}
.cfield{display:grid;gap:6px}
.clabel{font-size:13px;font-weight:700;color:var(--muted)}
.cform input[type=text],.cform input[type=email],.cform select,.cform textarea,.ibctl select,.ibmemo,.ibdrafttext{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
.cform textarea{resize:vertical}
.crow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.catchips{display:flex;flex-wrap:wrap;gap:6px}
.catchip{border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:5px 12px;cursor:pointer;font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:6px}
.catchip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cc)}
.catchip[aria-pressed="true"]{border-color:var(--cc);box-shadow:inset 0 0 0 1px var(--cc);font-weight:700}
.csuggest{font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.csuggest button{border:1px solid var(--accent);color:var(--accent);background:none;border-radius:99px;padding:2px 10px;cursor:pointer;font-size:12.5px;font-weight:700}
.cconsent{display:flex;gap:8px;align-items:flex-start;font-size:13.5px}
.cconsent input{margin-top:4px}
.csend{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
#cSend{border:0;background:var(--ink);color:var(--paper);border-radius:8px;padding:9px 22px;font-weight:700;cursor:pointer}
#cSend:disabled{opacity:.6;cursor:default}
.cstatus{font-size:13.5px}
.cstatus[data-kind="ok"]{color:var(--accent)}
.cstatus[data-kind="err"]{color:var(--trad)}
.ibtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.ibtile{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 12px;cursor:pointer;display:grid;gap:2px;border-left:4px solid var(--cc,var(--ink))}
.ibtile b{font-size:22px;font-variant-numeric:tabular-nums}
.ibtile span{font-size:12.5px;font-weight:700}
.ibtile small{font-size:11px;color:var(--muted)}
.ibtile[aria-pressed="true"]{outline:2px solid var(--cc,var(--ink));outline-offset:-1px}
.iblist{display:grid;gap:12px}
.ibempty{color:var(--muted);font-size:14px}
.ibitem{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:10px}
.ibitem[data-status="done"]{opacity:.65}
.ibhead{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ibcat{font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;color:#fff;background:var(--cc)}
.ibst{font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;border:1px solid var(--line)}
.ibitem[data-status="new"] .ibst{border-color:var(--trad);color:var(--trad)}
.ibitem[data-status="doing"] .ibst{border-color:var(--lux);color:var(--lux)}
.ibmeta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.ibmsg{white-space:pre-wrap;font-size:14.5px}
.ibfrom{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px}
.ibemail{font-family:var(--mono);user-select:all}
.ibctl{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px}
.ibctl select{width:auto;padding:4px 8px}
.ibfrom button,.ibctl button,.ibdraftbox button{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:4px 12px;cursor:pointer;font-size:13px;font-weight:700}
.ibdraft{border-color:var(--accent)!important;color:var(--accent)}
.ibdraftbox{display:grid;gap:6px}
@media (max-width:760px){.crow{grid-template-columns:1fr}}
@media (max-width:900px){.grid4,.apps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .map-grid{grid-template-columns:1fr}
  .cols3,.grid3{grid-template-columns:1fr}
  .panel{position:fixed;left:0;right:0;bottom:0;z-index:30;border-radius:18px 18px 0 0;max-height:72vh;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateY(110%);transition:transform .28s ease;box-shadow:0 -10px 30px rgba(0,0,0,.2)}
  .panel.open{transform:none}
  .panel .close{display:block;justify-self:end;border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:3px 12px;cursor:pointer;font-size:13px}
  .tip{display:none}
  .daynight{margin-left:0}
  .urlbar .hl{margin-left:0}
  .legend{font-size:10.5px}
}
@media (max-width:480px){.grid4,.apps{grid-template-columns:1fr} nav.main{order:3;width:100%}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
