:root{
  --bg:#f4f2ed;--card:#fffdf9;--card2:#faf8f3;--field:#ffffff;--ink:#25241f;--ink2:#4a4842;--muted:#807b70;--line:#e7e2d7;--line2:#efebe3;
  --accent:#4e8a6a;--accent-ink:#fff;--accent-soft:#e2eee6;--accent-2:#3d7356;
  --amber:#a8741f;--amber-soft:#f6ecd7;--red:#c4554a;--red-soft:#f8e3df;--blue:#4f739b;--blue-soft:#e3ebf4;--gray-soft:#ece9e2;
  --shadow:0 1px 2px rgba(60,50,30,.05),0 4px 16px rgba(60,50,30,.06);--shadow-lg:0 10px 40px rgba(40,30,10,.18);
  --r:16px;--r-sm:11px;--tab-h:64px;--safe-b:env(safe-area-inset-bottom,0px);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#131412;--card:#1c1e1b;--card2:#20231f;--field:#232622;--ink:#ecebe5;--ink2:#cfcdc4;--muted:#99968c;--line:#2d302b;--line2:#262925;
  --accent:#6cad89;--accent-ink:#0f1a13;--accent-soft:#1f3328;--accent-2:#86c4a1;
  --amber:#e0ad57;--amber-soft:#3a2f1a;--red:#e58377;--red-soft:#3b221f;--blue:#8fb2d8;--blue-soft:#1f2b38;--gray-soft:#2a2c28;
  --shadow:0 1px 2px rgba(0,0,0,.3);--shadow-lg:0 10px 40px rgba(0,0,0,.5);color-scheme:dark;
}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink)}
body{font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans Thai","Noto Sans Thai UI","Sukhumvit Set","Leelawadee UI",Tahoma,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent);text-decoration:none}
.num{font-variant-numeric:tabular-nums}
svg.i{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.hidden{display:none!important}

/* ---------- shell ---------- */
#app{min-height:100vh}
.side{display:none}
main{padding:16px 16px calc(var(--tab-h) + 28px + var(--safe-b));max-width:720px;margin:0 auto}
.tabs{position:fixed;left:0;right:0;bottom:0;height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 76px 1fr 1fr;z-index:20}
.tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:12px;min-height:48px}
.tabs a.on{color:var(--accent)}
.fab{position:relative;top:-18px;justify-self:center;width:60px;height:60px;border-radius:20px;border:0;background:var(--accent);color:var(--accent-ink);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 45%,transparent);display:grid;place-items:center;cursor:pointer}
.fab svg.i{width:28px;height:28px;stroke-width:2.2}
.fab:active{transform:scale(.95)}

@media (min-width:768px){
  .tabs{display:none}
  .side{display:flex;flex-direction:column;gap:4px;position:fixed;top:0;bottom:0;left:0;width:76px;padding:16px 10px;background:var(--card);border-right:1px solid var(--line);z-index:20;align-items:center}
  .side .brand{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--accent);color:var(--accent-ink);font-weight:700;margin-bottom:14px}
  .side .brand span{display:none}
  .side a.nav{display:flex;flex-direction:column;align-items:center;gap:2px;width:60px;padding:9px 0;border-radius:14px;color:var(--muted);font-size:11.5px}
  .side a.nav.on{background:var(--accent-soft);color:var(--accent)}
  .side a.nav:hover{color:var(--ink)}
  .side .new{margin-top:10px;width:52px;height:52px;border-radius:16px;border:0;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;cursor:pointer}
  .side .new span{display:none}
  .side .who{margin-top:auto;font-size:11px;color:var(--muted);text-align:center;word-break:break-all}
  main{margin-left:76px;max-width:none;padding:24px 24px 40px}
  main.narrow>*{max-width:760px;margin-left:auto;margin-right:auto}
}
@media (min-width:1100px){
  .side{width:232px;align-items:stretch;padding:22px 14px}
  .side .brand{width:auto;height:auto;background:none;color:var(--ink);display:flex;align-items:center;gap:10px;place-items:initial;margin:0 6px 18px;font-size:17px}
  .side .brand b{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent);color:var(--accent-ink)}
  .side .brand span{display:block;line-height:1.25}
  .side .brand small{display:block;color:var(--muted);font-weight:400;font-size:12px}
  .side a.nav{flex-direction:row;gap:12px;width:auto;padding:11px 14px;font-size:15px}
  .side .new{width:auto;height:48px;display:flex;gap:8px;align-items:center;justify-content:center;font-weight:600;margin:14px 4px 0}
  .side .new span{display:inline}
  .side .who{text-align:left;padding:0 10px;font-size:13px}
  main{margin-left:232px;padding:28px 32px 48px}
}

/* ---------- common ---------- */
.top{display:flex;align-items:center;gap:10px;margin:4px 0 16px;min-height:44px}
.top h1{font-size:24px;line-height:1.2;margin:0;font-weight:700;letter-spacing:-.01em;flex:1;min-width:0}
.top h1 small{display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:2px}
.iconbtn{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--ink2);flex:none}
.iconbtn:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.pad{padding:16px}
.sec{margin:22px 0 10px;display:flex;align-items:center;gap:8px}
.sec h2{font-size:16px;margin:0;font-weight:650;flex:1}
.sec .lnk{font-size:14px}
.muted{color:var(--muted)}
.small{font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:14px;border:1px solid var(--line);background:var(--card);font-weight:600;cursor:pointer;color:var(--ink);text-align:center;line-height:1.2}
.btn:active{transform:translateY(1px)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.pri:hover{background:var(--accent-2);border-color:var(--accent-2)}
.btn.soft{background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.btn.danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 30%,var(--line))}
.btn.block{width:100%}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn.sm{min-height:38px;padding:0 12px;font-size:14px;border-radius:11px}
.row{display:flex;gap:10px;align-items:center}
.grow{flex:1;min-width:0}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;line-height:1.5}
.chip.pending{background:var(--amber-soft);color:var(--amber)}
.chip.partial{background:var(--blue-soft);color:var(--blue)}
.chip.cleared{background:var(--accent-soft);color:var(--accent)}
.chip.direct{background:var(--gray-soft);color:var(--ink2)}
.chip.plain{background:var(--gray-soft);color:var(--ink2);font-weight:500}
.empty{text-align:center;padding:36px 16px;color:var(--muted)}
.empty svg.i{width:40px;height:40px;stroke-width:1.4;margin-bottom:6px;color:var(--line)}
.spin{width:22px;height:22px;border:2.5px solid color-mix(in srgb,var(--accent) 25%,transparent);border-top-color:var(--accent);border-radius:50%;animation:sp .8s linear infinite;display:inline-block}
@keyframes sp{to{transform:rotate(360deg)}}

/* ---------- dashboard ---------- */
.hello{font-size:14px;color:var(--muted)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat{padding:14px 14px 13px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);min-width:0}
.stat .k{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.stat .v{font-size:22px;font-weight:700;margin-top:4px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat .s{font-size:12.5px;color:var(--muted);margin-top:2px}
.stat.hero{grid-column:1/-1;background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.stat.hero .k,.stat.hero .s{color:color-mix(in srgb,var(--accent-ink) 80%,transparent)}
.stat.hero .v{font-size:30px}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.quick .btn{min-height:56px}
.bars{display:flex;flex-direction:column;gap:12px}
.bar .t{display:flex;justify-content:space-between;font-size:14px;margin-bottom:5px;gap:8px}
.bar .track{height:8px;border-radius:99px;background:var(--line2);overflow:hidden}
.bar .fill{height:100%;border-radius:99px;background:var(--accent)}
.dash-grid{display:block}
@media (min-width:768px){
  .stats{grid-template-columns:repeat(4,1fr)}
  .quick{display:none}
  .dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:start}
}
@media (min-width:1100px){.stat .v{font-size:25px}}

/* ---------- list ---------- */
.filters{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.search{position:relative}
.search svg.i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);width:20px;height:20px}
.search input.in{padding-left:46px}
.seg-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}
.seg-scroll::-webkit-scrollbar{display:none}
.pill{flex:none;min-height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:14px;cursor:pointer;color:var(--ink2);white-space:nowrap}
.pill.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.selects{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.list{display:flex;flex-direction:column;gap:8px}
.ri{display:flex;gap:12px;align-items:center;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;min-height:72px;color:var(--ink);box-shadow:var(--shadow)}
.ri:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.ri.sel{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
.ri .av{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-weight:700;flex:none;overflow:hidden;font-size:17px}
.ri .av img{width:100%;height:100%;object-fit:cover;object-position:top}
.ri .av svg.i{width:22px;height:22px}
.ri .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ri .m{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ri .amt{text-align:right;flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.ri .amt b{font-size:16px}
.month-h{font-size:13px;color:var(--muted);margin:14px 4px 2px;font-weight:600}
.split{display:block}
.detail-pane{display:none}
@media (min-width:768px){
  .split{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}
  .split .list-col{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;padding:2px 4px 8px 2px;margin:-2px}
  .split .seg-scroll{margin:0;padding:0}
  .detail-pane{display:block}
  .detail-pane .placeholder{min-height:60vh;display:grid;place-items:center;color:var(--muted);text-align:center;border:1.5px dashed var(--line);border-radius:var(--r)}
  .split.has-detail .list-col .top .iconbtn.back{display:none}
}
@media (min-width:1100px){.split{grid-template-columns:400px 1fr;gap:28px}}
@media (max-width:767px){.split.has-detail .list-col{display:none}.split.has-detail .detail-pane{display:block}}

/* ---------- detail ---------- */
.dhead{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.money{display:grid;grid-template-columns:repeat(3,1fr);gap:0;overflow:hidden}
.money>div{padding:14px 12px;min-width:0}
.money>div+div{border-left:1px solid var(--line2)}
.money .k{font-size:12.5px;color:var(--muted)}
.money .v{font-size:19px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.money .diff.refund .v{color:var(--amber)}
.money .diff.topup .v{color:var(--blue)}
.money .diff.zero .v{color:var(--accent)}
.detail-pane,.dwrap{container-type:inline-size}
@container (max-width:480px){.money .v{font-size:16.5px}.money>div{padding:12px 10px}}
@container (max-width:340px){
  .money{grid-template-columns:1fr!important}
  .money>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 14px}
  .money>div+div{border-left:0;border-top:1px solid var(--line2)}
  .money .v{font-size:18px}
}
.prog{height:6px;background:var(--line2)}
.prog i{display:block;height:100%;background:var(--accent);transition:width .4s}
.prog i.over{background:var(--blue)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:9px 16px;font-size:15px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;text-align:right;word-break:break-word}
.thumbs{display:flex;gap:8px;flex-wrap:wrap}
.thumb{width:76px;height:76px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--card2);position:relative;flex:none;cursor:zoom-in;padding:0}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .x{position:absolute;top:3px;right:3px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;border:0;display:grid;place-items:center;cursor:pointer}
.thumb .x svg.i{width:15px;height:15px;stroke-width:2.4}
.thumb.add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;color:var(--muted);border-style:dashed;cursor:pointer;background:transparent}
.thumb.busy{display:grid;place-items:center;cursor:default}
.items{display:flex;flex-direction:column}
.it{display:flex;gap:12px;padding:14px 16px;cursor:pointer;align-items:flex-start}
.it+.it{border-top:1px solid var(--line2)}
.it:hover{background:var(--card2)}
.it .t{font-weight:600}
.it .tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.it .tot{font-weight:700;text-align:right;white-space:nowrap}
.it .mini{display:flex;gap:4px;margin-top:6px}
.it .mini img{width:34px;height:34px;border-radius:7px;object-fit:cover;border:1px solid var(--line)}
.totals{border-top:1px solid var(--line);padding:12px 16px;background:var(--card2);border-radius:0 0 var(--r) var(--r);font-size:14px}
.totals .r{display:flex;justify-content:space-between;padding:3px 0}
.totals .r.big{font-size:17px;font-weight:700;padding-top:8px;margin-top:5px;border-top:1px dashed var(--line)}
.settle{padding:16px;display:flex;flex-direction:column;gap:12px}
.settle .big{font-size:22px;font-weight:700}
.settle.refund{background:var(--amber-soft);border-color:transparent}
.settle.topup{background:var(--blue-soft);border-color:transparent}
.settle.done{background:var(--accent-soft);border-color:transparent}
.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.actions .btn{flex:1}
.warn{font-size:13px;color:var(--red);display:flex;gap:6px;align-items:flex-start}

/* ---------- forms ---------- */
.form{display:flex;flex-direction:column;gap:14px}
.f label,.flabel{display:block;font-size:14px;color:var(--ink2);margin:0 0 6px;font-weight:550}
.f .hint{font-size:12.5px;color:var(--muted);margin-top:5px}
input.in,select.in,textarea.in{width:100%;min-height:50px;padding:12px 14px;border-radius:13px;border:1px solid var(--line);background:var(--field);outline:none;font-size:16px;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
select.in{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23807b70' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
textarea.in{min-height:84px;resize:vertical}
input.in:focus,select.in:focus,textarea.in:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
input.in.big{font-size:26px;font-weight:700;min-height:60px;letter-spacing:-.01em}
input.in.flash{animation:fl 1.6s ease}
@keyframes fl{0%,40%{background:color-mix(in srgb,var(--accent) 22%,var(--field))}}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.seg{display:flex;background:var(--line2);border-radius:13px;padding:4px;gap:4px}
.seg button{flex:1;min-height:42px;border:0;background:transparent;border-radius:10px;font-size:14px;cursor:pointer;color:var(--ink2);padding:0 6px;line-height:1.15}
.seg button.on{background:var(--card);color:var(--ink);font-weight:650;box-shadow:var(--shadow)}
.calc{background:var(--card2);border:1px solid var(--line2);border-radius:13px;padding:10px 14px;font-size:14px}
.calc .r{display:flex;justify-content:space-between;padding:2px 0}
.calc .r.big{font-weight:700;font-size:16px;border-top:1px dashed var(--line);margin-top:4px;padding-top:6px}
.ocrnote{font-size:13px;padding:9px 12px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:flex;gap:8px;align-items:center}
.ocrnote.err{background:var(--amber-soft);color:var(--amber)}
.formbar{position:sticky;bottom:calc(var(--tab-h) + var(--safe-b) + 8px);display:flex;gap:10px;padding-top:6px}
@media (min-width:768px){.formbar{bottom:16px}}
/* full-page new/edit form: no tab bar / floating + under the sticky save bar (phones) */
body.formopen .tabs{display:none}
body.formopen main{padding-bottom:calc(24px + var(--safe-b))}
body.formopen .formbar{bottom:calc(12px + var(--safe-b))}
body.formopen .toast{bottom:calc(88px + var(--safe-b))}
.formbar .btn{flex:1;box-shadow:var(--shadow)}
.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;cursor:pointer}
.switch input{appearance:none;-webkit-appearance:none;width:52px;height:32px;border-radius:99px;background:var(--line);position:relative;cursor:pointer;transition:background .2s;flex:none;margin:0}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.switch input:checked{background:var(--accent)}
.switch input:checked::after{transform:translateX(20px)}
.catrow{display:flex;align-items:center;gap:8px;padding:6px 0}
.catrow+.catrow{border-top:1px solid var(--line2)}

/* ---------- sheet / modal ---------- */
.scrim{position:fixed;inset:0;background:rgba(20,18,12,.42);z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s}
.sheet{background:var(--bg);width:100%;max-height:94vh;overflow:auto;border-radius:22px 22px 0 0;padding:8px 16px calc(18px + var(--safe-b));box-shadow:var(--shadow-lg);animation:up .24s cubic-bezier(.2,.8,.2,1)}
.sheet .grab{width:40px;height:5px;border-radius:9px;background:var(--line);margin:4px auto 10px}
.sheet .top{margin:0 0 12px}
.sheet .top h1{font-size:20px}
.sheet .formbar{bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding-bottom:4px;margin-top:4px}
@media (min-width:768px){
  .scrim{align-items:center;padding:24px}
  .sheet{max-width:560px;border-radius:22px;padding:18px 22px 22px}
  .sheet .grab{display:none}
}
@keyframes up{from{transform:translateY(40px);opacity:.4}}
@keyframes fade{from{opacity:0}}
.choice{display:flex;flex-direction:column;gap:10px;padding-bottom:6px}
.choice button{display:flex;gap:14px;align-items:center;text-align:left;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:var(--card);cursor:pointer;min-height:72px}
.choice button .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}
.choice button b{display:block;font-size:16px}
.choice button span{font-size:13px;color:var(--muted)}

/* lightbox */
.lb{position:fixed;inset:0;background:#0b0b09;z-index:80;display:flex;align-items:center;justify-content:center;animation:fade .15s;touch-action:pan-y pinch-zoom}
.lb img{max-width:100%;max-height:100%;object-fit:contain;user-select:none}
.lb .bar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;color:#fff;font-size:14px}
.lb button{width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer}
.lb .nav{position:absolute;top:50%;transform:translateY(-50%)}
.lb .prev{left:12px}.lb .next{right:12px}
.lb a{color:#fff}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + 24px + var(--safe-b));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:14px;font-size:14.5px;z-index:90;box-shadow:var(--shadow-lg);max-width:calc(100vw - 32px);animation:up .2s}
@media (min-width:768px){.toast{bottom:28px}}

/* auth */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px 18px}
.auth .box{width:100%;max-width:400px}
.auth .logo{width:64px;height:64px;border-radius:20px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;margin:0 auto 16px}
.auth .logo svg.i{width:34px;height:34px}
.auth h1{text-align:center;font-size:24px;margin:0 0 4px}
.auth p.sub{text-align:center;color:var(--muted);margin:0 0 22px;font-size:15px}
.err{color:var(--red);font-size:14px;min-height:20px}

.thumb .pdftag,.pdftag{position:absolute;left:4px;bottom:4px;font-size:10px;font-weight:700;letter-spacing:.04em;line-height:1;padding:3px 5px;border-radius:6px;background:#b4472f;color:#fff;pointer-events:none}
.mini img.ispdf{outline:2px solid #b4472f;outline-offset:-2px}
.lb .pdfopen{position:absolute;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:999px;background:#fff;color:#1b1c19;font-weight:600;font-size:16px;text-decoration:none;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.lb .pdfopen svg.i{width:18px;height:18px}
