:root{--gold:#E3C27D;--bg:#FBEFEC;--surface:#FFFFFF;--text:#2A1426;--muted:#7A5F72;--line:#EBD3CF;--accent:#8E3B6B;--accent-text:#FFFFFF;--side:#3B1230;--side-text:#FBEFEC;--warn:#B3412F;--ok:#2F7A58}
@media (prefers-color-scheme:dark){:root{--bg:#1B0C18;--surface:#2A1426;--text:#F6E6E2;--muted:#B99BB0;--line:#43264A;--accent:#C98B7A;--accent-text:#2A1426;--side:#12060F;--warn:#E8836F;--ok:#6FC79B}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.5 "DM Sans",system-ui,sans-serif;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
aside{background:var(--side);color:var(--side-text);padding:22px 16px;display:flex;flex-direction:column;gap:22px}
.brand{display:flex;align-items:center;gap:10px}.brand b{font:700 25px/1 "Cormorant Garamond",Georgia,serif}
nav{display:flex;flex-direction:column;gap:4px}
nav button{background:none;border:0;color:inherit;text-align:left;padding:10px 12px;border-radius:10px;font:500 15px "DM Sans",sans-serif;cursor:pointer;opacity:.8}
nav button[aria-current="page"]{background:rgba(227,194,125,.16);opacity:1;box-shadow:inset 3px 0 0 var(--gold)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.who{margin-top:auto;font-size:13px;opacity:.8}.who button{margin-top:6px;background:none;border:1px solid var(--gold);color:var(--gold);border-radius:8px;padding:5px 10px;cursor:pointer}
main{padding:26px;max-width:1100px;width:100%}
h1{font:700 32px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 18px}h2{font:700 20px/1.2 "Cormorant Garamond",Georgia,serif;margin:0 0 10px}
.grid{display:grid;gap:14px}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.two{grid-template-columns:1fr 1fr}.pos{grid-template-columns:1.5fr 1fr}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px}
.stat small{color:var(--muted)}.stat div{font:700 28px/1.2 "Cormorant Garamond",serif;color:var(--accent)}
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.prod{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:left;cursor:pointer;color:var(--text);font:inherit}.prod:hover{border-color:var(--accent)}.prod span{display:block;color:var(--muted);font-size:13px}
.btn{background:var(--accent);color:var(--accent-text);border:0;border-radius:10px;padding:10px 16px;font:700 14px "DM Sans",sans-serif;cursor:pointer}.btn.ghost{background:none;color:var(--accent);border:1px solid var(--accent)}.btn:disabled{opacity:.5}
input,select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font:inherit}
label{display:block;font-size:13px;color:var(--muted);margin:8px 0 3px}
.row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.row>*{flex:1 1 130px}.tabs{display:flex;gap:6px;margin-bottom:10px}.tabs .btn{flex:1}
.wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:520px}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:13px}
.pill{display:inline-block;padding:1px 9px;border-radius:99px;font-size:12px;font-weight:700}.bad{background:var(--warn);color:#fff}.soon{background:var(--gold);color:#3B1230}.good{background:var(--ok);color:#fff}
.line{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.q{display:flex;gap:6px;align-items:center}.q button{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}
.total{font:700 26px "Cormorant Garamond",serif;display:flex;justify-content:space-between;margin:12px 0}
.auth{max-width:400px;margin:8vh auto;padding:0 16px}.logobox{background:#fff;border-radius:18px;margin-bottom:16px;padding:6px}.logobox img{display:block;width:min(260px,75%);height:auto;margin:0 auto}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:#3B1230;color:#fff;padding:11px 18px;border-radius:12px;border:1px solid var(--gold);opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw}#toast.on{opacity:1}
.empty{color:var(--muted);padding:12px 0}
html{-webkit-text-size-adjust:100%}
button,.btn,select,input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
main{min-width:0}
nav button{display:flex;align-items:center;gap:10px}
nav button svg{flex:0 0 auto}
.who{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.who button{margin-top:0}
.netbar{display:none;position:fixed;top:0;left:0;right:0;z-index:50;background:var(--warn);color:#fff;text-align:center;padding:calc(6px + env(safe-area-inset-top,0px)) 8px 6px;font-weight:700}
.netbar.on{display:block}
.topbar{display:flex;align-items:center;gap:10px}
.hamburger{display:none;background:none;border:1px solid rgba(227,194,125,.45);color:var(--side-text);width:44px;height:44px;border-radius:12px;cursor:pointer;place-items:center;flex:0 0 auto}
.drawer{display:flex;flex-direction:column;gap:22px;flex:1}
.scrim{display:none}
@media (pointer:coarse){.btn,select,input{min-height:44px}nav button{min-height:48px}}
@media (min-width:701px) and (max-width:820px){.pos{grid-template-columns:1.4fr 1fr}.two{grid-template-columns:1fr 1fr}}
@media (max-width:820px){
 body{padding-top:0}
 .auth{padding-top:calc(env(safe-area-inset-top,0px) + 8px)}
 .app{display:block}
 aside{padding:0;display:block;background:transparent}
 .topbar{position:sticky;top:0;z-index:30;background:var(--side);color:var(--side-text);padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top,0px))}
 .hamburger{display:inline-grid}
 aside .brand b{font-size:22px}
 .drawer{position:fixed;top:0;bottom:0;left:0;width:min(84vw,310px);z-index:50;background:var(--side);color:var(--side-text);padding:calc(18px + env(safe-area-inset-top,0px)) 14px calc(18px + env(safe-area-inset-bottom,0px));overflow-y:auto;transform:translateX(-102%);visibility:hidden;transition:transform .25s ease,visibility .25s;box-shadow:8px 0 30px rgba(0,0,0,.35)}
 .menu-open .drawer{transform:none;visibility:visible}
 .scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}
 .menu-open .scrim{display:block}
 body.menu-open{overflow:hidden}
 main{padding:16px}
 input,select{font-size:16px}
}
@media (max-width:700px){.two,.pos{grid-template-columns:1fr}.prods{max-height:46vh;overflow:auto}.stats{grid-template-columns:1fr 1fr}.stat div{font-size:22px}h1{font-size:28px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

@media print{aside,.noprint,#toast{display:none!important}.app{display:block}main{padding:0;max-width:none}
body,.card,.invoice,table,th,td{background:#fff!important;color:#000!important}.card{border:0!important;padding:0!important}
.stat div,.total{color:#000!important}.line,th,td{border-color:#ccc!important}}

.receipt{display:none;font:12px/1.4 ui-monospace,Menlo,Consolas,monospace;max-width:76mm;color:#000}
.receipt .rl{display:flex;justify-content:space-between;gap:8px}
.receipt hr{border:0;border-top:1px dashed #000;margin:6px 0}
@page receipt{size:80mm auto;margin:3mm}
@media print{body.print-receipt .receipt{display:block;page:receipt}body.print-receipt .invoice{display:none!important}}

@media print{.topbar,.scrim{display:none!important}}
.btn-link{display:inline-block;text-decoration:none}
