:root{--bg:#f3f5f4;--surface:#fff;--sunk:#e8ecea;--fg:#18211e;--muted:#5d6a65;--line:#d3dbd7;--accent:#0f6e5a;--accent-fg:#fff;--astro:#6b3fd1;--astro-soft:#efe9fd;--good:#1d7a3a;--warn:#a85c00;--warn-soft:#fdf0dc;--bad:#b3261e;--display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--body:"Atkinson Hyperlegible", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--radius:10px;--sidebar:220px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111715;--surface:#19211e;--sunk:#222c28;--fg:#e7eeeb;--muted:#9aa9a3;--line:#2f3b37;--accent:#3fbf9c;--accent-fg:#06221b;--astro:#a98bff;--astro-soft:#2a2342;--good:#5fd07e;--warn:#f0a845;--warn-soft:#3a2c14;--bad:#ff8a80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111715;--surface:#19211e;--sunk:#222c28;--fg:#e7eeeb;--muted:#9aa9a3;--line:#2f3b37;--accent:#3fbf9c;--accent-fg:#06221b;--astro:#a98bff;--astro-soft:#2a2342;--good:#5fd07e;--warn:#f0a845;--warn-soft:#3a2c14;--bad:#ff8a80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[hidden]{display:none!important}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--fg);font:16px/1.45 var(--body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;margin:0}h1{font-size:1.35rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0}.muted{color:var(--muted)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:40px;padding:.5rem .8rem}button:hover{border-color:var(--muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:700}button.danger{color:var(--bad)}button:disabled{opacity:.45;cursor:not-allowed}.center{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px;place-items:center;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:14px;width:min(100%,560px);padding:20px;display:grid}.roles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.role{text-align:left;border-radius:var(--radius);align-content:start;gap:4px;min-height:92px;padding:.9rem;display:grid}.role b{font-family:var(--display);font-size:1.05rem}.role span{color:var(--muted);font-size:.88rem}.shell{grid-template-columns:var(--sidebar) minmax(0, 1fr);grid-template-rows:auto 1fr;min-height:100dvh;display:grid}.demo-banner{background:var(--warn-soft);color:var(--warn);flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px 14px;padding:6px 16px;font-size:.88rem;font-weight:700;display:flex}.demo-banner button{min-height:32px;padding:.2rem .7rem;font-size:.85rem}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:14px 10px;display:flex}.sidebar .store{gap:2px;padding:4px 10px 12px;display:grid}.sidebar .store small{color:var(--muted)}.sidebar a{color:var(--muted);border-radius:8px;padding:.55rem .75rem;font-weight:700;text-decoration:none;display:block}.sidebar a:hover{background:var(--sunk);color:var(--fg)}.sidebar a[aria-current=page]{background:var(--sunk);color:var(--fg);box-shadow:inset 3px 0 0 var(--accent)}.sidebar .who{border-top:1px solid var(--line);gap:6px;margin-top:auto;padding:10px;font-size:.88rem;display:grid}.main{padding:16px max(16px, env(safe-area-inset-right)) 40px 20px;align-content:start;gap:14px;min-width:0;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:10px;max-width:75ch;padding:16px;display:grid}.slideover{background:var(--surface);border-left:1px solid var(--line);z-index:10;width:min(100%,460px);padding:16px;position:fixed;inset:0 0 0 auto;overflow-y:auto;box-shadow:-8px 0 24px #0000001f}input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:8px;width:100%;min-width:0;min-height:40px;padding:.5rem .65rem}label{color:var(--muted);gap:.25rem;font-size:.85rem;display:grid}label.check{color:var(--fg);white-space:nowrap;align-items:center;gap:8px;font-size:.95rem;display:flex}label.check input{width:auto;min-height:0}label.check>span{white-space:normal;min-width:0}label.check:has(>span .sub){align-items:flex-start}label.check:has(>span .sub) input{margin-top:3px}.form{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.field-error{color:var(--bad);font-size:.82rem}[aria-invalid=true]{border-color:var(--bad)}.actions,.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar input,.toolbar select{flex:160px;width:auto;max-width:260px}.error-box{border:1px solid var(--bad);color:var(--bad);border-radius:8px;padding:.5rem .7rem;font-size:.92rem}.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}table.wide{min-width:720px}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:.55rem .6rem;font-size:.75rem;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.55rem .6rem}tr:last-child td{border-bottom:0}td.r,th.r{text-align:right}.num,.mono{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:.82rem}.sub{color:var(--muted);font-size:.82rem;display:block}.tag{letter-spacing:.02em;white-space:nowrap;border-radius:99px;padding:.1rem .45rem;font-size:.72rem;font-weight:700;display:inline-block}.tag.astro{background:var(--astro-soft);color:var(--astro)}.tag.low{background:var(--warn-soft);color:var(--warn)}.tag.out{background:var(--bad);color:var(--surface)}.tag.ok{background:var(--sunk);color:var(--good)}.tag.muted{background:var(--sunk);color:var(--muted)}.note{background:var(--astro-soft);border-radius:10px;gap:6px;max-width:75ch;padding:.8rem;font-size:.92rem;display:grid}.scrim{z-index:9;background:#00000040;position:fixed;inset:0}.slideover{align-content:start;gap:14px;display:grid}.slideover .head{justify-content:space-between;align-items:center;gap:8px;display:flex}.toast{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--bg);z-index:20;border-radius:8px;max-width:calc(100vw - 32px);padding:.6rem 1rem;font-weight:700;position:fixed;transform:translate(-50%)}.count-scan{gap:8px;display:flex}.count-lines{gap:8px;display:grid}.count-line{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.diff.up{color:var(--good);font-weight:700}.diff.down{color:var(--bad);font-weight:700}.store-header{align-items:center;gap:10px;padding:10px;display:flex}.sidebar .store-header{border-radius:10px;margin-bottom:8px}.store-header span{gap:2px;min-width:0;display:grid}.store-header b{overflow-wrap:anywhere}.store-header small{opacity:.85}.store-logo{object-fit:contain;background:#fff;border-radius:8px;flex:none;width:40px;height:40px}.store-logo.initial{font-family:var(--display);background:0 0;border:2px solid;place-items:center;font-size:1.2rem;font-weight:700;display:grid}.kpis{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.kpi{background:var(--sunk);border-radius:10px;padding:.7rem}.kpi b{font-family:var(--display);font-size:1.4rem;display:block}details summary{cursor:pointer;font-weight:700}.cards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px;display:grid}.ccard{background:var(--surface);border:1px solid var(--line);border-radius:10px;align-content:start;gap:6px;padding:.75rem;display:grid}.ccard .top{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.small{font-size:.88rem}.petchip{background:var(--sunk);border-radius:99px;align-items:baseline;gap:4px;margin:0 4px 4px 0;padding:.15rem .6rem;font-size:.85rem;display:inline-flex}.petchip .k{color:var(--muted)}.punch{vertical-align:middle;flex-wrap:wrap;gap:3px;display:inline-flex}.punch i{border:1.5px solid var(--astro);border-radius:50%;width:13px;height:13px}.punch i.on{background:var(--astro)}.astro-name{color:var(--astro);font-weight:700}.petrow{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:end;gap:8px 12px;padding:10px;display:flex}.petrow>label{flex:150px}.ptype{border:0;flex:none;gap:4px;margin:0;padding:0;display:flex}.ptype legend{color:var(--muted);margin-bottom:4px;padding:0;font-size:.85rem}.ptype label{border:1px solid var(--line);color:var(--fg);cursor:pointer;border-radius:8px;align-items:center;gap:6px;min-height:40px;padding:.45rem .7rem;display:flex}.ptype label:has(input:checked){border-color:var(--accent);background:var(--sunk);font-weight:700}.ptype input{width:auto;min-height:0;accent-color:var(--accent);margin:0}.panel.danger{border:2px solid var(--bad)}button.dangerbtn{background:var(--bad);color:var(--surface);border-color:var(--bad);font-weight:700}.warn-line{color:var(--bad);font-size:.92rem;font-weight:700}.vacc-row{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.vacc-row label{flex:150px}@media (width<=760px){.shell{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(0,1fr)}.sidebar{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;gap:2px;padding:6px 10px;overflow-x:auto}.sidebar .store,.sidebar .who{display:none}.sidebar a{white-space:nowrap}.sidebar a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--accent)}.main{padding:14px 16px 40px}}.scanner{z-index:30;background:var(--surface);padding:max(12px, env(safe-area-inset-top)) 16px 16px;grid-template-rows:auto 1fr auto;gap:10px;display:grid;position:fixed;inset:0}.scanner-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.scanner-view{background:#000;border-radius:12px;min-height:0;position:relative;overflow:hidden}.scanner-view video{object-fit:cover;width:100%;height:100%;display:block}.scanner-guide{border:3px solid #fff;border-radius:10px;position:absolute;inset:35% 10%;box-shadow:0 0 0 9999px #00000059}.scanner-hint{text-align:center;color:#fff;text-shadow:0 1px 3px #000;font-weight:700;position:absolute;bottom:12px;left:0;right:0}.register{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:16px;display:grid}@media (width<=960px){.register{grid-template-columns:minmax(0,1fr)}}.scan{flex-wrap:wrap;gap:8px;display:flex}.scan input{flex:200px;min-height:48px;font-size:1.05rem}.cat-tabs{gap:4px;margin-top:10px;display:flex;overflow-x:auto}.cat-tabs button{white-space:nowrap;min-height:36px;padding:.3rem .8rem}.cat-tabs button[aria-pressed=true]{background:var(--sunk);border-color:var(--accent);font-weight:700}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:12px;display:grid}.prod{text-align:left;background:var(--surface);border-radius:10px;align-content:start;gap:4px;min-height:118px;padding:.7rem;display:grid}.prod .nm{font-weight:700;line-height:1.25}.prod .row{justify-content:space-between;align-items:center;gap:6px;margin-top:auto;display:flex}.ticket{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:12px;padding:14px;display:grid;position:sticky;top:8px}.cust{background:var(--sunk);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:8px;padding:.55rem .7rem;display:flex}button.link{color:var(--accent);background:0 0;border:0;min-height:0;padding:.2rem .3rem;text-decoration:underline}.lines{gap:8px;max-height:44vh;display:grid;overflow:auto}.line{border-bottom:1px dashed var(--line);grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding-bottom:8px;display:grid}.line .qty{align-items:center;gap:4px;display:flex}.line .qty button{min-height:34px;padding:.1rem .6rem}.disc{color:var(--astro);font-size:.88rem}.store-disc{color:var(--accent);font-size:.88rem}.totals{gap:3px;display:grid}.totals div{justify-content:space-between;gap:8px;display:flex}.totals .grand{font-family:var(--display);border-top:2px solid var(--fg);padding-top:6px;font-size:1.5rem;font-weight:700}.pay{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.pay button,button.big{min-height:52px;font-size:1.05rem}.astro-box{border:1px solid var(--astro);border-radius:10px;gap:6px;padding:.6rem .7rem;font-size:.9rem;display:grid}.astro-box h3{color:var(--astro);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem}.change-due{font-size:1.2rem}.change-due b{font-family:var(--display);font-size:1.6rem}.terminal{border:2px dashed var(--accent);border-radius:12px;justify-items:start;gap:8px;padding:14px;display:grid}.terminal-amount{font-family:var(--display);font-size:2rem;font-weight:700}.receipt{font-family:var(--mono);white-space:pre-wrap;background:var(--sunk);border-radius:8px;padding:.8rem;font-size:.8rem}.discount-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.discount-btn{text-align:left;align-content:start;gap:2px;min-height:84px;padding:.7rem;display:grid}@media print{body *{visibility:hidden}.receipt-print,.receipt-print *{visibility:visible}.receipt-print{color:#000;background:0 0;position:absolute;top:0;left:0}}.cash-offer{z-index:11;width:min(92vw,420px);position:fixed;top:30%;left:50%;transform:translate(-50%)}.seg{background:var(--sunk);border-radius:9px;flex-wrap:wrap;gap:3px;padding:3px;display:flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:.4rem .8rem;font-weight:700}.seg button[aria-pressed=true]{background:var(--surface);color:var(--fg)}.sizegrid{grid-template-columns:70px repeat(4,minmax(0,1fr));align-items:center;gap:6px;max-width:560px;font-size:.85rem;display:grid}.calwrap{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow-x:auto}.cal{min-width:min-content;display:grid}.cal .hd{background:var(--surface);border-bottom:1px solid var(--line);z-index:2;padding:.5rem .6rem;font-size:.9rem;font-weight:700;position:sticky;top:0}.cal .hd small{color:var(--muted);font-size:.78rem;font-weight:400;display:block}.cal .times{border-right:1px solid var(--line);position:relative}.cal .times span{color:var(--muted);font-size:.72rem;position:absolute;right:6px;transform:translateY(-50%)}.cal .col{border-right:1px solid var(--line);position:relative}.cal .slot{border:0;border-bottom:1px dashed var(--line);cursor:pointer;background:0 0;border-radius:0;width:100%;min-height:0;padding:0;display:block}.cal .slot:hover{background:var(--sunk)}.cal .slot.hour{border-bottom-style:solid}.cal .off{background:repeating-linear-gradient(135deg, var(--sunk) 0 6px, transparent 6px 12px);cursor:not-allowed}.cal .timeoff{background:repeating-linear-gradient(135deg, var(--sunk) 0 6px, transparent 6px 12px);color:var(--muted);pointer-events:none;padding:2px 6px;font-size:.75rem;position:absolute;left:0;right:0}.appt{text-align:left;border:1px solid var(--accent);background:var(--surface);min-height:0;color:var(--fg);z-index:1;border-radius:8px;padding:4px 7px;font-size:.8rem;line-height:1.25;display:block;position:absolute;left:4px;right:4px;overflow:hidden}.appt b{font-size:.85rem}.appt.booked{border-left:4px solid var(--accent)}.appt.checked_in,.appt.in_progress{border-left:4px solid var(--astro);background:var(--astro-soft);border-color:var(--astro)}.appt.ready{border-left:4px solid var(--warn);background:var(--warn-soft);border-color:var(--warn)}.appt.done{border-color:var(--line);border-left:4px solid var(--good);color:var(--muted)}.appt.held{background:var(--surface);opacity:.85;border-style:dashed}.appt.no_show{border-color:var(--line);color:var(--muted);text-decoration:line-through}.chip{background:var(--sunk);color:var(--muted);border-radius:99px;padding:.1rem .45rem;font-size:.72rem;font-weight:700;display:inline-block}.chip.booked{color:var(--accent)}.chip.checked_in,.chip.in_progress{background:var(--astro-soft);color:var(--astro)}.chip.ready{background:var(--warn-soft);color:var(--warn)}.chip.done{color:var(--good)}.chip.no_show,.chip.canceled{color:var(--bad)}.myday{gap:10px;display:grid}.mycard{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:6px;padding:.8rem;display:grid}.mycard .when{font-family:var(--display);font-size:1.2rem;font-weight:700}.mycard button.big{width:100%}.photos{flex-wrap:wrap;gap:8px;display:flex}.photos figure{color:var(--muted);gap:2px;margin:0;font-size:.78rem;display:grid}.photos img{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:96px;height:72px;display:block}.photo-full{border-radius:10px;max-width:min(92vw,1280px);max-height:88vh;margin:4vh auto;display:block}label.button{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--fg);border-radius:8px;align-items:center;padding:.45rem .9rem;font-weight:700;display:inline-flex}.photo-view{z-index:30;background:#000c}.toast-action{color:var(--bg);cursor:pointer;background:0 0;border:0;min-height:0;padding:0;font-weight:700;text-decoration:underline}.week{min-width:min-content;display:grid}.week .cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);align-content:start;gap:3px;min-width:120px;min-height:64px;padding:4px;display:grid}.week .cell.off{background:repeating-linear-gradient(135deg, var(--sunk) 0 6px, transparent 6px 12px)}.week .wk-hd{border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface);padding:.4rem .5rem;font-size:.88rem;font-weight:700}.week .wk-hd small{color:var(--muted);font-weight:400;display:block}.wk-chip{text-align:left;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface);border-radius:6px;min-height:0;padding:2px 6px;font-size:.78rem;line-height:1.25;display:block}.wk-chip.checked_in,.wk-chip.in_progress{border-left-color:var(--astro);background:var(--astro-soft)}.wk-chip.ready{border-left-color:var(--warn);background:var(--warn-soft)}.wk-chip.done{border-left-color:var(--good);color:var(--muted)}.wk-chip.no_show{color:var(--muted);text-decoration:line-through}.appt.dragging{opacity:.35}.appt.ghost{pointer-events:none;opacity:.9;z-index:3;border-style:dashed}.appt.movable{cursor:grab}.book{background:var(--bg);min-height:100vh}.book-head{align-items:center;gap:12px;padding:14px 16px;display:flex}.book-head small{opacity:.85;display:block}.book-main{gap:14px;max-width:680px;margin:0 auto;padding:16px;display:grid}.book .demo-banner a{color:inherit;font-weight:700}
