/* KibbleDesk theme - change these colours to rebrand (see documentation > Rebranding). */
:root{--bg:#f5f6fb;--bg2:#eceef8;--card:#fff;--ink:#1c1f3a;--mut:#636889;--line:#e1e4f2;--pri:#4f46e5;--pri2:#4338ca;--pri-ink:#fff;--soft:#eceafe;--acc:#f59e0b;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--info:#2563eb;--violet:#7c3aed;--sh:0 1px 2px rgba(30,30,80,.06),0 4px 16px rgba(30,30,80,.06);--r:14px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--glow1:#dcd9ff;--glow2:#ffe9c2;--g1:#6366f1;--g2:#4338ca}
[data-theme=dark]{--bg:#0f1020;--bg2:#181a30;--card:#1a1c34;--ink:#eceefe;--mut:#a2a6c8;--line:#2c2f52;--pri:#818cf8;--pri2:#a5b4fc;--pri-ink:#11123a;--soft:#25275a;--acc:#fbbf24;--sh:0 1px 2px rgba(0,0,0,.3);--glow1:#262a6b;--glow2:#3d2c0b;--g1:#5b5ff0;--g2:#3730a3}
*{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%}}
.btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* ---------- KibbleDesk specific ---------- */
.ptile{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:12px;background:var(--card);border:1px solid var(--line);cursor:pointer;text-align:left;font:inherit;color:inherit;min-height:92px;position:relative;box-shadow:var(--sh)}
.ptile:hover{border-color:var(--pri)}.ptile .nm{font-weight:650;font-size:.88rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ptile .pr{font-weight:750;color:var(--pri2);margin-top:auto}.ptile .st{font-size:.72rem;color:var(--mut)}.ptile .st.low{color:var(--bad);font-weight:700}
.ptile .dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}
.pos{display:grid;gap:12px}@media(min-width:1000px){.pos{grid-template-columns:minmax(0,1fr) 380px;align-items:start}.pos .cartp{position:sticky;top:70px}}
.cartp .cl{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.cartp .cl .main{flex:1;min-width:0}.cartp .cl .t{font-weight:600;font-size:.9rem}.cartp .cl .s{font-size:.78rem;color:var(--mut)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}.qty button{border:0;background:var(--bg2);width:30px;height:30px;font:inherit;font-weight:700;cursor:pointer;color:var(--ink)}.qty input{width:42px;border:0;text-align:center;font:inherit;background:var(--card);color:var(--ink);padding:0;height:30px}
.tot{display:grid;grid-template-columns:1fr auto;gap:3px 10px;font-size:.92rem;margin-top:10px}.tot .big{font-size:1.35rem;font-weight:800}
.paybtns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.paybtns button.on{background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}
.cashq{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.cartbar{position:fixed;left:12px;right:12px;bottom:calc(70px + var(--safe-b));z-index:25;display:flex;justify-content:space-between;align-items:center;background:var(--pri);color:var(--pri-ink);border-radius:14px;padding:12px 16px;font-weight:700;box-shadow:0 8px 24px rgba(40,30,120,.3);cursor:pointer}@media(min-width:1000px){.cartbar{display:none}}
.receipt{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.4;background:#fff;color:#111;padding:14px;border-radius:8px;max-width:330px;margin:0 auto;border:1px dashed #bbb}.receipt .c{text-align:center}.receipt .r{display:flex;justify-content:space-between;gap:8px}.receipt hr{border:0;border-top:1px dashed #999;margin:6px 0}.receipt b{font-weight:800}
#printArea{display:none}
@media print{#printArea{display:block;position:absolute;left:0;top:0;width:72mm}#printArea .receipt{border:0;max-width:none;padding:0}@page{margin:4mm}}
.bk{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:10px;border-left:4px solid var(--c,var(--pri));background:color-mix(in srgb,var(--c,var(--pri)) 9%,var(--card));margin-bottom:6px;cursor:pointer}.bk .main{flex:1;min-width:0}.bk .t{font-weight:650;font-size:.9rem}.bk .s{font-size:.8rem;color:var(--mut)}
.staffcols{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.board{display:grid;gap:12px}@media(min-width:900px){.board{grid-template-columns:repeat(3,minmax(0,1fr))}}
.kennel{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--card)}
.vrow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,.6fr) auto;gap:6px;align-items:end;margin-bottom:6px}.vrow label.f{margin:0}
@media(max-width:700px){.vrow{grid-template-columns:1fr 1fr;padding:8px;border:1px solid var(--line);border-radius:10px}.vrow>:first-child{grid-column:1/-1}}
.rolebadge{font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:var(--acc);color:#3b2400}
.who{display:flex;align-items:center;gap:8px;padding:10px 12px;margin-top:6px;border-radius:10px;background:var(--bg2);font-size:.85rem}
.who svg{width:20px;height:20px;flex:none;color:var(--mut)}
.scanbox{position:relative;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:4/3}.scanbox video{width:100%;height:100%;object-fit:cover}.scanbox i{position:absolute;left:10%;right:10%;top:50%;height:2px;background:#f43f5e;box-shadow:0 0 12px #f43f5e}
.month{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:600px){.li .sample-tag{display:none}.hide-sm{display:none}}
