:root{
  --bg:#f3f6f5;--surface:#fff;--surface2:#eaf0ee;--text:#14201f;--muted:#4b5b59;--line:#cfdad7;
  --brand:#0b6f6a;--brand-ink:#fff;--brand-soft:#d9eeec;
  --bad:#b3261e;--bad-bg:#fde7e5;--warn:#8a4b00;--warn-bg:#fff0d1;--good:#17693a;--good-bg:#dff3e6;--info-bg:#e3edfb;--info:#1c4a8c;
  --field:#7d8e8b;--soon:#b86e00;--shadow:0 1px 2px rgba(0,0,0,.08),0 4px 14px rgba(0,0,0,.06);--radius:16px;--fs:17px;--nav-h:68px;--top-h:56px;
  --safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);
  color-scheme:light;
}
:root[data-theme=dark]{
  --bg:#0e1514;--surface:#172220;--surface2:#1f2e2c;--text:#eaf2f0;--muted:#a9bdb9;--line:#2f4340;
  --brand:#4fd1c5;--brand-ink:#062523;--brand-soft:#173a37;
  --bad:#ff8a80;--bad-bg:#3d1b19;--warn:#ffc266;--warn-bg:#3a2a0c;--good:#7be0a0;--good-bg:#12301f;--info-bg:#15283f;--info:#9cc4ff;
  --field:#8aa39e;--soon:#e69b00;--shadow:0 1px 2px rgba(0,0,0,.5);color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){
    --bg:#0e1514;--surface:#172220;--surface2:#1f2e2c;--text:#eaf2f0;--muted:#a9bdb9;--line:#2f4340;
    --brand:#4fd1c5;--brand-ink:#062523;--brand-soft:#173a37;
    --bad:#ff8a80;--bad-bg:#3d1b19;--warn:#ffc266;--warn-bg:#3a2a0c;--good:#7be0a0;--good-bg:#12301f;--info-bg:#15283f;--info:#9cc4ff;
    --field:#8aa39e;--soon:#e69b00;--shadow:0 1px 2px rgba(0,0,0,.5);color-scheme:dark;
  }
}
:root[data-size=large]{--fs:19.5px}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:var(--fs)/1.45 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;min-height:100vh;min-height:100dvh}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:var(--brand-ink);padding:.6rem 1rem;z-index:100}
.skip:focus{left:8px;top:8px}
h1,h2,h3{line-height:1.2;margin:0}
h2{font-size:1.15rem;margin:1.2rem 0 .5rem}
h3{font-size:1rem}
p{margin:.3rem 0}
a{color:var(--brand)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}
.ic{width:1.4em;height:1.4em;flex:none;vertical-align:middle}
.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.right{text-align:right}.grow{flex:1}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.topbar{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:.25rem;min-height:calc(var(--top-h) + var(--safe-t));padding:var(--safe-t) .5rem 0}
.topbar h1{font-size:1.2rem;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 .5rem}
.iconbtn{min-width:48px;min-height:48px;border:0;background:transparent;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text)}
.iconbtn:hover{background:var(--surface2)}
main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:1rem 1rem calc(var(--nav-h) + var(--safe-b) + 96px);outline:none}
.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:var(--safe-b)}
.bottomnav a{flex:1;max-width:150px;min-height:var(--nav-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--muted);font-size:.78rem;position:relative;font-weight:600}
.bottomnav a[aria-current=page]{color:var(--brand)}
.bottomnav a[aria-current=page]::before{content:"";position:absolute;top:0;left:25%;right:25%;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}
.badge{position:absolute;top:6px;left:calc(50% + 6px);min-width:22px;height:22px;border-radius:11px;background:#b3261e;color:#fff;font-size:.75rem;display:flex;align-items:center;justify-content:center;padding:0 5px;font-weight:700}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);margin:.65rem 0}
.card.flat{box-shadow:none}
.row{display:flex;align-items:center;gap:.6rem}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}.top{align-items:flex-start}
.stack>*+*{margin-top:.6rem}
.grid{display:grid;gap:.65rem}
.grid.cols2{grid-template-columns:1fr 1fr}.grid.cols3{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.grid.cols3 .btn{padding-inline:.4rem;min-width:0}
@media (min-width:700px){.grid.auto{grid-template-columns:repeat(2,1fr)}main{padding-left:1.5rem;padding-right:1.5rem}}
.btn{min-height:48px;padding:.55rem 1.1rem;border-radius:14px;border:2px solid var(--brand);background:var(--brand);color:var(--brand-ink);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;text-decoration:none;text-align:center}
.btn:hover{filter:brightness(1.07)}
.btn.sec{background:transparent;color:var(--brand)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--brand)}
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.btn.block{display:flex;width:100%}
.btn.sm{min-height:48px;padding:.35rem .8rem;font-size:.92rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.fab{position:fixed;right:max(16px,calc(50% - 360px));bottom:calc(var(--nav-h) + var(--safe-b) + 14px);z-index:25;box-shadow:0 6px 20px rgba(0,0,0,.28);border-radius:30px;min-height:56px;padding:0 1.3rem}
.chip{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.15rem .65rem;font-size:.82rem;font-weight:700;background:var(--surface2);color:var(--text);white-space:nowrap}
.chip.overdue{background:var(--bad-bg);color:var(--bad)}.chip.soon{background:var(--warn-bg);color:var(--warn)}.chip.ok{background:var(--good-bg);color:var(--good)}.chip.none,.chip.done{background:var(--surface2);color:var(--muted)}
.chip.info{background:var(--info-bg);color:var(--info)}
.stat{border-radius:var(--radius);padding:1rem .6rem;text-align:center;border:2px solid transparent;text-decoration:none;color:inherit;display:block;min-height:96px}
.stat b{display:block;font-size:2.2rem;line-height:1.1}
.stat span{font-weight:700;font-size:.9rem}
.stat.overdue{background:var(--bad-bg);color:var(--bad)}.stat.soon{background:var(--warn-bg);color:var(--warn)}.stat.ok{background:var(--good-bg);color:var(--good)}
.item{display:flex;gap:.7rem;align-items:center;padding:.8rem 0;border-top:1px solid var(--line)}
.item:first-child{border-top:0}
.item .body{flex:1;min-width:0}
.item .title{font-weight:700;overflow-wrap:anywhere}
.dot{width:14px;height:14px;border-radius:50%;flex:none;background:var(--muted)}
.dot.overdue{background:var(--bad)}.dot.soon{background:var(--soon)}.dot.ok{background:var(--good)}
.kv{display:grid;grid-template-columns:minmax(110px,40%) 1fr;gap:.35rem .8rem}
.kv dt{color:var(--muted);font-size:.9rem}.kv dd{margin:0;overflow-wrap:anywhere}
.tabs{display:flex;gap:.3rem;overflow-x:auto;scrollbar-width:none;margin:0 -1rem .5rem;padding:.25rem 1rem;position:sticky;top:calc(var(--top-h) + var(--safe-t));background:var(--bg);z-index:10}
.tabs::-webkit-scrollbar{display:none}
.tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}
.tabs.end{-webkit-mask-image:none;mask-image:none}
.tabs a{flex:none;min-height:48px;padding:.5rem .8rem;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:700;display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--surface)}
.tabs a[aria-selected=true]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
label.lbl{display:block;font-weight:700;font-size:.92rem;margin:.9rem 0 .25rem}
.hint{font-size:.85rem;color:var(--muted);margin-top:.2rem}
.hint.soft{background:var(--info-bg);color:var(--info);padding:.4rem .6rem;border-radius:10px;display:flex;gap:.5rem;align-items:center;justify-content:space-between}
input[type=text],input[type=number],input[type=date],input[type=tel],input[type=password],input[type=search],input[type=url],select,textarea{width:100%;min-height:48px;padding:.55rem .75rem;border:2px solid var(--field);border-radius:12px;background:var(--surface);color:var(--text)}
textarea{min-height:96px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}
.switch{display:flex;align-items:center;gap:.7rem;min-height:48px;cursor:pointer}
.switch input{width:26px;height:26px;accent-color:var(--brand);flex:none}
.seg{display:flex;border:2px solid var(--brand);border-radius:14px;overflow:hidden}
.seg button{flex:1;min-height:48px;border:0;background:transparent;color:var(--brand);font-weight:700;cursor:pointer}
.seg button[aria-pressed=true]{background:var(--brand);color:var(--brand-ink)}
.photo-btn{position:relative;overflow:hidden}
.photo-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:0}
.photo-btn:focus-within{outline:3px solid var(--brand);outline-offset:2px}
dialog.sheet{border:0;padding:0;background:var(--surface);color:var(--text);width:100%;max-width:640px;max-height:92dvh;margin:auto auto 0;border-radius:22px 22px 0 0;box-shadow:0 -8px 40px rgba(0,0,0,.35);overflow:hidden}
dialog.sheet[open]{display:flex;flex-direction:column}
dialog.sheet::backdrop{background:rgba(0,0,0,.5)}
dialog.sheet.full{height:96dvh;max-height:96dvh}
@media (min-width:700px){dialog.sheet{margin:auto;border-radius:22px;max-height:88dvh}}
.sheet header{display:flex;align-items:center;padding:.3rem .5rem .3rem 1.1rem;border-bottom:1px solid var(--line);gap:.5rem}
.sheet header h2{margin:0;flex:1;font-size:1.15rem}
.sheet .sbody{padding:0 1.1rem 1rem;overflow-y:auto;flex:1;overscroll-behavior:contain}
.sheet footer{display:flex;gap:.6rem;padding:.7rem 1.1rem calc(.7rem + var(--safe-b));border-top:1px solid var(--line);background:var(--surface)}
.sheet footer .btn{flex:1}
.toasts{position:fixed;inset:auto 0 calc(var(--nav-h) + var(--safe-b) + 12px) 0;margin:0;padding:0;border:0;background:transparent;width:auto;height:auto;max-height:none;overflow:visible;color:inherit;display:flex;flex-direction:column;align-items:center;gap:.4rem;z-index:200;pointer-events:none}
.toast{background:#14201f;color:#fff;border-radius:14px;padding:.7rem 1.1rem;max-width:90vw;box-shadow:var(--shadow);font-weight:600;display:flex;align-items:center;gap:.8rem}
.toast.act{pointer-events:auto}
.toast button{background:transparent;border:2px solid #9be6df;color:#9be6df;border-radius:10px;min-height:44px;padding:0 .9rem;font-weight:700;cursor:pointer}
.toast.err{background:#7a1b15}
.lock{position:fixed;inset:0;z-index:300;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:1.5rem}
.lock[hidden]{display:none}
.lock .box{width:100%;max-width:360px;text-align:center}
.lock input{text-align:center;font-size:1.6rem;letter-spacing:.4em}
.thumb{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:var(--surface2);display:block}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}
@media (min-width:560px){.gallery{grid-template-columns:repeat(3,1fr)}}
.gallery button{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:.4rem;text-align:left;cursor:pointer}
.mask{font-variant-numeric:tabular-nums;letter-spacing:.05em}
.reveal{border:0;background:transparent;color:var(--brand);font-weight:700;cursor:pointer;min-height:48px;min-width:48px;padding:0 .4rem;display:inline-flex;align-items:center;gap:.25rem}
.lockic{border:2px solid var(--field);background:var(--surface);border-radius:12px;min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted)}
.lockic[aria-pressed=true]{border-color:var(--good);color:var(--good);background:var(--good-bg)}
.lockic.priv{border-color:var(--line)}
.bar{fill:var(--brand)}
.chart text{fill:var(--muted);font-size:12px}
.empty{text-align:center;padding:2rem 1rem;color:var(--muted)}
.empty .ic{width:3rem;height:3rem;color:var(--brand)}
.progress{height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;margin:.4rem 0 1rem}
.progress i{display:block;height:100%;background:var(--brand)}
.footer{margin:2rem 0 0;text-align:center;font-size:.85rem;color:var(--muted)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal .dow{font-size:.75rem;text-align:center;color:var(--muted);font-weight:700}
.cal button{min-height:52px;border:1px solid var(--line);background:var(--surface);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:4px 0;cursor:pointer;font-size:.9rem}
.cal button.out{opacity:1;color:var(--muted);background:transparent}.cal button.today{border:2px solid var(--brand)}.cal button[aria-pressed=true]{background:var(--brand-soft)}
.cal .dots{display:flex;gap:2px;margin-top:3px}.cal .dots i{width:8px;height:8px;border-radius:50%}
.who{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--muted)}
.avatar{width:1.5rem;height:1.5rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;color:#fff;font-weight:700;flex:none}
.diff{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.diff>div{background:var(--surface2);border-radius:12px;padding:.6rem;overflow-wrap:anywhere;font-size:.9rem}
.diff .mine{border-left:4px solid var(--brand)}.diff .theirs{border-left:4px solid var(--warn)}
.partrow{border:1px solid var(--line);border-radius:14px;padding:.7rem;margin:.6rem 0;background:var(--surface2)}
.photos{display:flex;gap:.5rem;flex-wrap:wrap}
.photos img{width:84px;height:84px;object-fit:cover;border-radius:10px}
.record h1{font-size:1.5rem}
.record table{width:100%;border-collapse:collapse;font-size:.9rem}
.record th,.record td{border-bottom:1px solid var(--line);padding:.4rem .3rem;text-align:left;vertical-align:top}
details>summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:700}
@media print{
  .topbar,.bottomnav,.fab,.noprint,.skip,.toasts,.tabs{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  :root{--surface:#fff;--text:#000;--muted:#333;--line:#999;--bg:#fff}
  main{padding:0;max-width:none}
  .card{box-shadow:none;break-inside:avoid}
  .record img{max-width:180px}
}
/* ---- Splash (first open + brief cold start): logbook cover art with the title as real text over its blank plate ---- */
.splash{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;padding:max(.6rem,env(safe-area-inset-top)) .5rem max(.6rem,env(safe-area-inset-bottom));background:#140c08;color:#f6e7bd;opacity:0;transition:opacity .35s ease}
.splash[hidden]{display:none}
.splash.on{opacity:1}
.splash-book{position:relative;aspect-ratio:2/3;width:min(100%,calc((100dvh - 7rem) * 2 / 3));width:min(100%,calc((100vh - 7rem) * 2 / 3));container-type:inline-size}
.splash-book img{display:block;width:100%;height:100%;object-fit:cover;border-radius:.5rem;box-shadow:0 .5rem 1.5rem #000a}
.splash-plate{position:absolute;left:24%;top:16.7%;width:53%;height:16%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;isolation:isolate;font-size:9vw;font-size:9.2cqw}
.splash-plate::before{content:"";position:absolute;inset:-6% -3%;z-index:-1;background:radial-gradient(ellipse at center,rgba(18,7,3,.55),rgba(18,7,3,0) 72%)}
.splash-title{margin:0;font:700 1em/1 Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;letter-spacing:.14em;padding-left:.14em;color:#f6e7bd;text-shadow:0 .04em 0 rgba(0,0,0,.7),0 0 .35em rgba(0,0,0,.8)}
.splash-tag{margin:.45em 0 0;font:italic 400 .36em/1.2 Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;font-size:max(.72rem,3.4cqw);letter-spacing:.04em;color:#f0dfb0;text-shadow:0 0 .5em rgba(0,0,0,.9),0 1px 0 rgba(0,0,0,.7)}
.splash-go{min-width:12rem}
.splash-hint{margin:0;font-size:.85rem;color:#e6d6ad}
.splash:not(.cold) .splash-hint{display:none}
.splash.cold .splash-go{display:none}
@media (orientation:landscape){
  .splash-book{aspect-ratio:16/9;width:min(100%,calc((100dvh - 6rem) * 16 / 9));width:min(100%,calc((100vh - 6rem) * 16 / 9))}
  .splash-plate{left:40.4%;top:16.3%;width:19.8%;height:16.1%;font-size:3vw;font-size:3cqw}
  .splash-tag{font-size:max(.68rem,1.2cqw)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.noscript{padding:2rem;font:18px sans-serif}
.warn{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn);border-radius:12px;padding:.6rem .75rem;display:flex;gap:.5rem;align-items:flex-start;font-weight:600;margin:.6rem 0}
.warn .ic{flex:none;margin-top:.15rem}
.selfrep{font-size:.78rem;color:var(--muted);font-style:italic;white-space:nowrap}
.lock details.forgot{margin-top:1.2rem;text-align:left}
.lock details.forgot summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
progress{width:100%;height:12px;margin:.5rem 0}

.inlinemsg{color:var(--bad);font-weight:700;margin:.5rem 0}

.actionbar{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + var(--safe-b));z-index:24;display:flex;gap:.5rem;padding:.5rem 1rem;max-width:760px;margin:0 auto;background:var(--bg);border-top:1px solid var(--line)}
.actionbar>*{flex:1 1 0;min-width:0}
.actionbar .btn{padding-inline:.4rem}
.tabs a[aria-selected=true]{box-shadow:0 0 0 2px var(--brand-soft)}
.sheet footer .stackbtns{display:flex;flex-direction:column;gap:.5rem;width:100%}
.sheet footer .stackbtns .btn{flex:none;width:100%}
.card.slim{display:flex;align-items:center;gap:.6rem;padding:.4rem .7rem;border-color:var(--brand)}
.card.slim .btn{min-height:48px}
.wiznav{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + var(--safe-b));z-index:24;display:flex;justify-content:space-between;gap:.6rem;padding:.5rem 1rem;max-width:760px;margin:0 auto;background:var(--bg);border-top:1px solid var(--line)}
.wiznav>:last-child{flex:1}
details.more{margin:.9rem 0;border:1px solid var(--line);border-radius:12px;padding:0 .8rem;background:var(--surface)}
details.more[open]{padding-bottom:.8rem}
.wiznav>:first-child{flex:0 0 7rem;min-width:0}
.wiznav>:last-child{flex:1;min-width:0}

/* ---- logbook ---- */
.secnav{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .6rem}
.secnav a{min-height:48px;display:inline-flex;align-items:center;padding:0 .9rem;border:2px solid var(--brand);border-radius:14px;color:var(--brand);font-weight:700;text-decoration:none;background:var(--surface)}
.secnav a[aria-current=true]{background:var(--brand);color:var(--brand-ink)}
.entry .entryno{font-size:.88rem;color:var(--muted)}
.entry .entryno b{color:var(--text);font-size:1rem}
.entry .ref{font-family:ui-monospace,monospace;font-size:.75rem;opacity:.8}
.entry .etitle{font-weight:800}
.entry.superseded{background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(127,127,127,.06) 10px 20px)}
.struck{text-decoration:line-through;text-decoration-thickness:2px}
.entry .reason{border-left:4px solid var(--soon);padding-left:.5rem}
.reading.flagged{border-color:var(--soon)}
.reading .reason{border-left:4px solid var(--soon);padding-left:.5rem}
ul.plain{list-style:none;padding:0;margin:.3rem 0}
.chip.bad{background:var(--bad-bg,#fde7e7);color:var(--bad,#8c1d18);border:1px solid currentColor}
.lbtable{width:100%;border-collapse:collapse;font-size:.85rem}
.lbtable th,.lbtable td{border-bottom:1px solid var(--line);padding:.3rem .25rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.lbtable tr.struck td{text-decoration:line-through}
.lbtable tr.lbsubrow td{text-decoration:none!important;font-size:.8rem;color:var(--muted);border-bottom:2px solid var(--line)}
.lbsec{overflow-x:auto}
.lbhead .notice{border:1px solid var(--line);padding:.4rem;border-radius:8px}
@media print{
  @page{size:letter;margin:14mm}
  .secnav,.actionbar{display:none!important}
  .lbsec.pagebreak{break-before:page}
  .lbtable{font-size:9pt}.lbtable thead{display:table-header-group}.lbtable tr{break-inside:avoid}
  .lbtable tr.struck td{text-decoration:line-through}
  .lbsec{overflow:visible}
}

/* long unbroken text (a pasted URL, a hostile string) must wrap inside its card and never overlap the fixed buttons */
main,.card,.sbody,dd,dt,.item .body,.etitle,.edesc,.kv{overflow-wrap:anywhere;min-width:0}
.kv dd{margin-left:0}

/* ---- photos ---- */
.spotgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.spot{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.4rem;min-height:44px}
.spot .spotimg{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--surface2);display:flex;align-items:center;justify-content:center;color:var(--muted)}
.spot .spotimg.ph svg{width:28px;height:28px;opacity:.6}
.spot .spotname{font-weight:700;overflow-wrap:anywhere;line-height:1.2}
.spot:not(.has){border-style:dashed}
.photorow{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex;gap:.7rem;align-items:center}
.thumb.sm{width:64px;height:64px;aspect-ratio:1/1;flex:none}
.detailimg{width:100%;max-height:60vh;object-fit:contain;border-radius:12px;background:var(--surface2);display:block;margin-bottom:.6rem}
.cmpgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.6rem 0}
.cmpside{margin:0}.cmpimg{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px;background:var(--surface2);display:block}
.cmpside figcaption{padding:.3rem 0}
.pending .thumb{border-radius:10px}
.note.superseded{opacity:.75}
.lbphoto{display:flex;gap:.8rem;padding:.5rem 0;border-top:1px solid var(--line);break-inside:avoid}
.lbphoto .lbthumb{width:120px;height:90px;object-fit:cover;border-radius:6px;flex:none;background:var(--surface2)}
.lbphotoText{min-width:0;overflow-wrap:anywhere}.lbnote{margin-top:.2rem}
@media print{.lbphoto{border-color:#999}.lbphoto .lbthumb{border-radius:0}}
.card.inset{background:var(--surface2);box-shadow:none}.linkish{background:none;border:0;padding:0;margin:.25rem 0;cursor:pointer;display:inline-block}.linkish .thumb{max-height:72px;border-radius:8px}
