/* Pawlanner theme - change these colours to rebrand (see documentation > Rebranding). */
:root{--bg:#fbf6f2;--bg2:#f4ebe5;--card:#fff;--ink:#2b1d19;--mut:#7c6861;--line:#efe1da;--pri:#f2643d;--pri2:#d4491f;--pri-ink:#fff;--soft:#ffece4;--acc:#7c5cff;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--info:#2563eb;--violet:#7c3aed;--sh:0 1px 2px rgba(60,30,20,.06),0 4px 16px rgba(60,30,20,.06);--r:16px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--glow1:#ffd3c2;--glow2:#e4dcff;--g1:#ff8a5c;--g2:#e2482a}
[data-theme=dark]{--bg:#16100e;--bg2:#211814;--card:#251b17;--ink:#f7ebe6;--mut:#b59d94;--line:#3a2b25;--pri:#ff8456;--pri2:#ff9a73;--pri-ink:#2a0f05;--soft:#3b2016;--acc:#a08bff;--sh:0 1px 2px rgba(0,0,0,.3);--glow1:#4a1f10;--glow2:#2b2152;--g1:#ff7a45;--g2:#c2381a}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
a{color:var(--pri2)}[data-theme=dark] a{color:var(--pri)}
h1,h2,h3{margin:0 0 .5em;line-height:1.2}h2{font-size:1.25rem}h3{font-size:1.02rem}
.mut{color:var(--mut)}.small{font-size:.84rem}.tiny{font-size:.75rem}.b{font-weight:600}.r{text-align:right}.nowrap{white-space:nowrap}
.hidden,[hidden]{display:none!important}
/* boot / login */
#boot{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg)}#boot img{width:84px;animation:pulse 1.2s infinite alternate}@keyframes pulse{to{transform:scale(1.08);opacity:.7}}
#login{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 10% -10%,var(--glow1) 0,transparent 60%),radial-gradient(900px 500px at 110% 110%,var(--glow2) 0,transparent 55%),var(--bg)}
.login-card{width:100%;max-width:380px;background:var(--card);border-radius:22px;box-shadow:var(--sh);padding:28px 24px;border:1px solid var(--line)}
.login-card .wm{width:230px;max-width:80%;display:block;margin:4px auto 6px}.login-card p.sub{text-align:center;margin:0 0 18px}
/* layout */
#app{min-height:100%;display:flex}
#side{display:none}
#main{flex:1;min-width:0;padding-bottom:calc(74px + var(--safe-b))}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(10px + var(--safe-t)) 14px 10px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar .ttl{font-weight:700;font-size:1.08rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .logo{width:30px;height:30px;border-radius:8px}
.page{padding:14px;max-width:1180px;margin:0 auto}
#tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:var(--safe-b);box-shadow:0 -4px 18px rgba(0,0,0,.05)}
#tabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 7px;font-size:.7rem;color:var(--mut);text-decoration:none;font-weight:600}
#tabs a svg,#side a svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#tabs a.on{color:var(--pri2)}[data-theme=dark] #tabs a.on{color:var(--pri)}
@media(min-width:900px){
 #side{display:flex;flex-direction:column;width:232px;flex:none;position:sticky;top:0;height:100vh;background:var(--card);border-right:1px solid var(--line);padding:16px 12px;gap:2px;overflow:auto}
 #side .wm{width:170px;margin:4px 8px 16px}
 #side a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:500}
 #side a:hover{background:var(--bg2)}#side a.on{background:var(--soft);color:var(--pri2);font-weight:650}[data-theme=dark] #side a.on{color:var(--pri)}
 #side .grow{flex:1}#tabs{display:none}#main{padding-bottom:20px}.topbar .logo,.topbar .menuonly{display:none}.page{padding:22px}
}
/* cards & grid */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:14px;margin-bottom:14px}
.card>h3:first-child{display:flex;align-items:center;gap:8px}
.grid{display:grid;gap:12px}.grid>*{min-width:0}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:700px){.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.md2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.lg3{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;box-shadow:var(--sh)}
.kpi .v{font-size:1.35rem;font-weight:750;letter-spacing:-.01em}.kpi .l{font-size:.78rem;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.kpi.pri{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;border:0}.kpi.pri .l{color:rgba(255,255,255,.82)}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.sp{justify-content:space-between}.grow{flex:1}
/* buttons */
.btn{appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-weight:600;padding:9px 14px;border-radius:11px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;min-height:40px;white-space:nowrap}
.btn:hover{border-color:var(--pri)}.btn:active{transform:translateY(1px)}
.btn.pri{background:var(--pri);border-color:var(--pri);color:var(--pri-ink)}.btn.pri:hover{background:var(--pri2)}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{padding:5px 10px;min-height:32px;font-size:.85rem;border-radius:9px}.btn.wide{width:100%;justify-content:center}
.ib{appearance:none;border:0;background:transparent;color:var(--ink);width:40px;height:40px;border-radius:10px;display:grid;place-items:center;cursor:pointer;font-size:1.1rem}.ib:hover{background:var(--bg2)}
.ib svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fab{position:fixed;right:18px;bottom:calc(86px + var(--safe-b));z-index:25;width:56px;height:56px;border-radius:18px;border:0;background:var(--pri);color:var(--pri-ink);font-size:28px;box-shadow:0 8px 24px color-mix(in srgb,var(--pri) 40%,transparent);cursor:pointer}
@media(min-width:900px){.fab{bottom:28px;right:28px}}
/* forms */
label.f{display:block;font-size:.8rem;font-weight:600;color:var(--mut);margin-bottom:10px}
label.f>input,label.f>select,label.f>textarea,.inp{display:block;width:100%;margin-top:4px;font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 11px;min-height:42px}
label.f>textarea{min-height:76px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--pri) 55%,transparent);outline-offset:0;border-color:var(--pri)}
label.chk{display:flex;align-items:flex-start;gap:8px;font-size:.92rem;margin:6px 0;cursor:pointer}label.chk input{width:18px;height:18px;margin-top:2px;accent-color:var(--pri)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;font-size:.75rem;font-weight:650;background:var(--bg2);color:var(--mut);border:1px solid var(--line);white-space:nowrap}
.chip.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}.chip.warn{background:#fef3c7;color:#92400e;border-color:#fde68a}.chip.bad{background:#fee2e2;color:#991b1b;border-color:#fecaca}.chip.info{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.chip.pri{background:var(--soft);color:var(--pri2);border-color:transparent}.chip.vio{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}
[data-theme=dark] .chip.ok{background:#11331f;color:#86efac;border-color:#14532d}[data-theme=dark] .chip.warn{background:#3a2a0b;color:#fcd34d;border-color:#78350f}[data-theme=dark] .chip.bad{background:#3b1212;color:#fca5a5;border-color:#7f1d1d}[data-theme=dark] .chip.info{background:#0f2147;color:#93c5fd;border-color:#1e3a8a}[data-theme=dark] .chip.vio{background:#2a1b4d;color:#c4b5fd;border-color:#4c1d95}[data-theme=dark] .chip.pri{color:var(--pri)}
.seg{display:inline-flex;background:var(--bg2);border-radius:11px;padding:3px;gap:2px;border:1px solid var(--line)}.seg button{border:0;background:transparent;font:inherit;font-weight:600;font-size:.85rem;color:var(--mut);padding:6px 12px;border-radius:8px;cursor:pointer}.seg button.on{background:var(--card);color:var(--ink);box-shadow:var(--sh)}
.search{position:relative}.search input{padding-left:36px}.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--mut);fill:none;stroke-width:2}
/* lists & tables */
.list{display:flex;flex-direction:column}.li{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line);cursor:pointer;color:inherit;text-decoration:none}.li:last-child{border-bottom:0}.li:hover{background:var(--bg2)}
.av{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;font-weight:700;color:#fff;font-size:.9rem}
.li .main{flex:1;min-width:0}.li .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.li .s{font-size:.82rem;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700;padding:8px 8px;border-bottom:1px solid var(--line)}.tbl td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}.tbl tr.void td{text-decoration:line-through;color:var(--mut)}.tbl .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch}
.empty{padding:26px 10px;text-align:center;color:var(--mut)}
.alert{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:.9rem;border:1px solid}.alert.bad{background:#fef2f2;border-color:#fecaca;color:#991b1b}.alert.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.alert.info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
[data-theme=dark] .alert.bad{background:#2a1010;border-color:#7f1d1d;color:#fecaca}[data-theme=dark] .alert.warn{background:#2a1f08;border-color:#78350f;color:#fde68a}[data-theme=dark] .alert.info{background:#0d1a36;border-color:#1e3a8a;color:#bfdbfe}
/* patient header & tabs */
.phead{display:flex;gap:14px;align-items:center}.phead .av{width:56px;height:56px;border-radius:16px;font-size:1.2rem}.phead h2{margin:0}
.ptabs{display:flex;gap:4px;overflow-x:auto;padding:2px;margin:12px -2px 12px;scrollbar-width:none}.ptabs::-webkit-scrollbar{display:none}
.ptabs a{flex:none;padding:8px 13px;border-radius:99px;font-weight:600;font-size:.87rem;color:var(--mut);text-decoration:none;background:var(--card);border:1px solid var(--line)}.ptabs a.on{background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:.92rem}.kv dt{color:var(--mut)}.kv dd{margin:0;font-weight:500;overflow-wrap:anywhere}
/* calendar */
.cal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.cal-head .ttl{font-weight:700;font-size:1.05rem;flex:1;min-width:160px}
.month{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month .dow{font-size:.72rem;font-weight:700;color:var(--mut);text-align:center;padding:4px}
.month .d{min-height:70px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px;cursor:pointer;font-size:.8rem}.month .d.o{opacity:.45}.month .d.today{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri)}.month .d.closed{background:repeating-linear-gradient(45deg,var(--card) 0 6px,var(--bg2) 6px 12px)}
.month .d .dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.month .d .dots i{width:7px;height:7px;border-radius:50%;background:var(--pri)}.month .d .cnt{font-size:.7rem;font-weight:700;color:var(--pri2)}
/* modal */
#modal{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:rgba(10,10,20,.45);backdrop-filter:blur(2px)}
#modal .sheet{background:var(--card);width:100%;max-width:640px;max-height:92vh;border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:up .2s ease-out;padding-bottom:var(--safe-b)}
#modal.wide .sheet{max-width:900px}
@keyframes up{from{transform:translateY(30px);opacity:0}}
#modal .mh{display:flex;align-items:center;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}#modal .mh h3{margin:0;flex:1;font-size:1.05rem}
#modal .mb{padding:14px 16px;overflow:auto;flex:1}#modal .mf{display:flex;gap:8px;justify-content:flex-end;padding:10px 16px 14px;border-top:1px solid var(--line);flex-wrap:wrap}
@media(min-width:700px){#modal{align-items:center}#modal .sheet{border-radius:20px;max-height:88vh}}
#toast{position:fixed;left:50%;bottom:calc(90px + var(--safe-b));transform:translateX(-50%);z-index:200;background:#1f2430;color:#fff;padding:10px 16px;border-radius:12px;font-size:.9rem;box-shadow:var(--sh);max-width:90vw;text-align:center}
.sig{border:1.5px dashed var(--mut);border-radius:12px;background:#fff;touch-action:none;width:100%;height:180px;display:block}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.thumb{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg2);cursor:pointer}.thumb .im{aspect-ratio:4/3;display:grid;place-items:center;background:#0b1517 center/cover no-repeat;color:#fff;font-weight:700}.thumb .c{padding:6px 8px;font-size:.78rem}
.form-body{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:.92rem;max-height:280px;overflow:auto}
.check-step{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.check-step:last-child{border-bottom:0}.check-step .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:.75rem;flex:none}.check-step.done .dot{background:var(--ok);border-color:var(--ok);color:#fff}
.bar{height:8px;border-radius:99px;background:var(--bg2);overflow:hidden}.bar i{display:block;height:100%;background:var(--pri);border-radius:99px}
.hbar{display:flex;align-items:center;gap:8px;font-size:.85rem;margin:6px 0}.hbar .lb{width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar .bar{flex:1}.hbar .vv{width:90px;text-align:right;font-variant-numeric:tabular-nums}
.sample-tag{font-size:.65rem;font-weight:800;letter-spacing:.05em;background:var(--acc);color:#fff;border-radius:6px;padding:1px 6px;vertical-align:2px}
.more-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:700px){.more-grid{grid-template-columns:repeat(4,1fr)}}
.more-grid a{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:650;box-shadow:var(--sh)}.more-grid a svg{width:28px;height:28px;stroke:var(--pri2);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.more-grid a span{font-weight:400;font-size:.8rem;color:var(--mut)}

.xrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center;margin-bottom:8px}.xrow select{grid-column:1/-1}
@media(min-width:700px){.xrow{grid-template-columns:minmax(0,2fr) minmax(0,.7fr) minmax(0,.7fr) minmax(0,1fr) auto}.xrow select{grid-column:auto}}
.k3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:600px){.k3 .kpi{padding:10px}.k3 .kpi .v{font-size:1rem}.k3 .kpi .l{font-size:.66rem}}

.pwwrap{position:relative;display:block}.pwwrap>input{display:block;width:100%;margin-top:4px;font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 64px 9px 11px;min-height:42px}.pweye{position:absolute;right:4px;top:50%;transform:translateY(-50%);margin-top:2px;border:0;background:transparent;color:var(--pri2);font:inherit;font-size:.8rem;font-weight:700;padding:8px 10px;cursor:pointer}[data-theme=dark] .pweye{color:var(--pri)}.btn:disabled{opacity:.55;cursor:not-allowed}
/* charts */
.chart{width:100%;height:auto;display:block}.chart .cl{font-size:10px;fill:var(--mut)}.chart .cv{font-size:10px;fill:var(--ink);font-weight:700}.chart .ax{stroke:var(--line)}.chart .gr{stroke:var(--line);stroke-dasharray:3 4}
.chart .ln{fill:none;stroke:var(--pri);stroke-width:2.5;stroke-linejoin:round}.chart .area{fill:color-mix(in srgb,var(--pri) 14%,transparent)}.chart .dot{fill:var(--card);stroke:var(--pri);stroke-width:2.2}
.donut{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.donut svg{width:150px;height:150px;flex:none}.donut .dt{font-size:14px;font-weight:800;fill:var(--ink)}.donut .cl{font-size:9px;fill:var(--mut)}
.donut .lg{flex:1;min-width:170px;font-size:.85rem}.donut .lg div{display:flex;gap:8px;align-items:center;padding:3px 0}.donut .lg i{width:11px;height:11px;border-radius:3px;flex:none}
.sample-tag{font-size:.62rem;font-weight:800;letter-spacing:.05em;background:var(--acc);color:#fff;border-radius:6px;padding:1px 6px;vertical-align:2px}
.cal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.cal-head .ttl{font-weight:700;font-size:1.05rem;flex:1;min-width:160px}
.wk{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:6px;min-width:840px}.wk .col{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;min-height:220px}.wk .col.today{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri)}
.wk .hd{font-size:.78rem;font-weight:700;text-align:center;padding:2px 0 6px;color:var(--mut)}.wk .it{font-size:.76rem;border-radius:8px;padding:4px 6px;margin-bottom:4px;cursor:pointer;background:var(--soft);border-left:3px solid var(--pri);line-height:1.25}.wk .it.done{opacity:.55;text-decoration:line-through}
.wk .it b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media print{body *{visibility:hidden}#printArea,#printArea *{visibility:visible}#printArea{position:absolute;left:0;top:0;width:100%}}
/* ---------- Pawlanner specific ---------- */
.tico{width:38px;height:38px;border-radius:12px;flex:none;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c)}.tico svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tick{width:30px;height:30px;border-radius:50%;border:2px solid var(--line);background:var(--card);flex:none;display:grid;place-items:center;cursor:pointer;color:transparent;padding:0}.tick svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.tick.on{background:var(--ok);border-color:var(--ok);color:#fff}
.li.occ.isdone .t{text-decoration:line-through;opacity:.6}.li.occ.isskip{opacity:.55}
.grp{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin:12px 0 2px}
.av.pet{border-radius:50%;overflow:hidden;font-size:1.25rem}.av.pet img{width:100%;height:100%;object-fit:cover}.av.pet.lg{width:58px;height:58px;font-size:1.7rem}.av.pet.xl{width:72px;height:72px;font-size:2.1rem}.av.pet.add{background:var(--bg2)!important;color:var(--pri2);border:2px dashed var(--line);font-size:1.6rem}
.petstrip{display:flex;gap:14px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:none}.petstrip::-webkit-scrollbar{display:none}.petstrip a{display:flex;flex-direction:column;align-items:center;gap:5px;text-decoration:none;color:var(--ink);font-size:.8rem;font-weight:600;flex:none}.petstrip .av{box-shadow:0 0 0 3px var(--card),0 0 0 5px var(--soft)}
.petgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.petcard{display:flex;gap:14px;align-items:center;text-decoration:none;color:inherit;margin:0}.petcard:hover{border-color:var(--pri)}
.pethead{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:linear-gradient(120deg,var(--soft),var(--card) 60%)}
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:10px}.file{border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;background:var(--card);padding-bottom:6px}.file img,.file .fi{width:100%;aspect-ratio:4/3;object-fit:cover;display:grid;place-items:center;background:var(--bg2);color:var(--pri2)}.file .fi svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:1.6}.file .fi span{font-size:.72rem;font-weight:800}.file .fn{font-size:.8rem;font-weight:600;padding:5px 8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file .tiny{padding:0 8px}
.swatch{width:28px;height:28px;border-radius:50%;cursor:pointer;display:inline-block;position:relative}.swatch input{position:absolute;opacity:0}.swatch:has(input:checked){box-shadow:0 0 0 3px var(--card),0 0 0 5px var(--ink)}
.chip.pick{cursor:pointer;user-select:none}.chip.pick input{display:none}.chip.pick:has(input:checked){background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}
.tm{display:inline-flex;align-items:center;gap:2px;background:var(--bg2);border-radius:10px;padding:2px 2px 2px 4px}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.78rem;color:var(--mut)}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}
.bar.lite{background:rgba(255,255,255,.3);margin-top:8px;height:6px}.bar.lite i{background:#fff}
.month{grid-template-columns:repeat(7,minmax(0,1fr))}.month .d{min-height:78px;min-width:0;overflow:hidden}
.btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
@media(max-width:600px){.occ .sample-tag{display:none}}
@media(max-width:600px){.pethead>.row,.pethead>div:last-child:not(.grow){width:100%;justify-content:flex-end}.pethead .grow{min-width:0;flex:1 1 150px}}
