:root{--white:#fff;--pink:#fe69ad;--yellow:#fcd800;--green:#2c8555;--blush:#fea4ad;--blue:#1490e8;--ink:#0c2620;--font-display:"Fredoka", "Trebuchet MS", system-ui, sans-serif;--font-body:"Outfit", "Segoe UI", system-ui, sans-serif;--bg:#f4f6f4;--surface:#fff;--surface-sunken:#eef1ef;--surface-inverse:var(--ink);--border:#0c262017;--border-strong:#0c262029;--text:var(--ink);--text-muted:#0c26209e;--text-subtle:#0c26206b;--text-inverse:#fff;--success:var(--green);--success-soft:#2c85551f;--danger:#cf3328;--danger-soft:#cf33281a;--warn:#9a6a05;--warn-soft:#fcd80042;--info-soft:#1490e81f;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-full:999px;--shadow-sm:0 1px 2px #0c26200f;--shadow-md:0 4px 16px #0c262014;--shadow-rail:-1px 0 0 var(--border);--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.625rem;--fs-2xl:2.125rem;--sidebar-w:248px;--rail-w:370px;--header-h:68px;--ease:cubic-bezier(.2, .7, .3, 1);--dur:.18s}@media (prefers-reduced-motion:reduce){:root{--dur:1ms}}@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/fredoka-500.woff2)format("woff2")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fredoka-600.woff2)format("woff2")}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/fredoka-700.woff2)format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/outfit-400.woff2)format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/outfit-500.woff2)format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/outfit-700.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.2}h1{font-size:var(--fs-xl)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}h4{font-size:var(--fs-base)}p{margin:0}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--yellow);color:var(--ink)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);background-clip:content-box;border:3px solid #0000}.btn{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-md);padding:0 var(--s-4);height:40px;font-family:var(--font-body);font-size:var(--fs-base);white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border:1px solid #0000;font-weight:500;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--ink);color:var(--text-inverse)}.btn--primary:hover:not(:disabled){background:#14392f}.btn--accent{background:var(--yellow);color:var(--ink);font-weight:700}.btn--accent:hover:not(:disabled){background:#ffe22e}.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--surface-sunken)}.btn--ghost{color:var(--text-muted);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.btn--danger{background:var(--danger-soft);color:var(--danger);border-color:#cf332838}.btn--danger:hover:not(:disabled){background:var(--danger);color:var(--white)}.btn--sm{height:32px;padding:0 var(--s-3);font-size:var(--fs-sm);border-radius:var(--r-sm)}.btn--lg{height:52px;padding:0 var(--s-5);font-size:var(--fs-md);border-radius:var(--r-lg)}.btn--block{width:100%}.btn--icon{border-radius:var(--r-sm);width:32px;height:32px;padding:0}.badge{align-items:center;gap:var(--s-1);padding:2px var(--s-3);border-radius:var(--r-full);font-size:var(--fs-xs);letter-spacing:.01em;font-weight:600;display:inline-flex}.badge--success{background:var(--success-soft);color:var(--success)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--warn{background:var(--warn-soft);color:var(--warn)}.badge--neutral{background:var(--surface-sunken);color:var(--text-muted)}.badge--info{background:var(--info-soft);color:var(--blue)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card__header{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex}.card__title{font-size:var(--fs-md)}.card__body{padding:var(--s-5)}.card__body--flush{padding:0}.input,.select{width:100%;height:40px;padding:0 var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease)}.input:hover,.select:hover{border-color:#0c262047}.input:focus,.select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--info-soft);outline:none}.input--lg{height:52px;font-size:var(--fs-lg);font-family:var(--font-display);font-weight:600}.input[type=file]{padding:var(--s-2);height:auto;font-size:var(--fs-sm)}.field{gap:var(--s-1);flex-direction:column;display:flex}.field__label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:500}.field__hint{font-size:var(--fs-xs);color:var(--text-subtle)}.field__error{font-size:var(--fs-sm);color:var(--danger);font-weight:500}.alert{gap:var(--s-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:500;display:flex}.alert--error{background:var(--danger-soft);color:var(--danger)}.alert--success{background:var(--success-soft);color:var(--success)}.search{align-items:center;display:flex;position:relative}.search__icon{left:var(--s-3);color:var(--text-subtle);pointer-events:none;position:absolute}.search .input{padding-left:calc(var(--s-4) + 20px)}.chip{height:34px;padding:0 var(--s-4);border-radius:var(--r-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);font-family:var(--font-body);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:all var(--dur) var(--ease);font-weight:500}.chip:hover{border-color:var(--ink);color:var(--text)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--text-inverse)}.stat{gap:var(--s-1);padding:var(--s-4) var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.stat__label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);font-weight:600}.stat__value{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600}.stat__meta{font-size:var(--fs-sm);color:var(--text-muted)}.empty{justify-content:center;align-items:center;gap:var(--s-2);min-height:220px;padding:var(--s-6);text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:#ffffff73;flex-direction:column;display:flex}.empty__icon{border-radius:var(--r-full);background:var(--surface-sunken);width:46px;height:46px;color:var(--text-subtle);place-items:center;display:grid}.empty__title{font-family:var(--font-display);color:var(--text);font-weight:600}.empty__text{font-size:var(--fs-sm);max-width:32ch}.qty{align-items:center;gap:var(--s-1);border:1px solid var(--border-strong);border-radius:var(--r-full);background:var(--surface);padding:2px;display:inline-flex}.qty__btn{border-radius:var(--r-full);width:26px;height:26px;color:var(--text-muted);font-size:var(--fs-md);cursor:pointer;background:0 0;border:none;place-items:center;line-height:1;display:grid}.qty__btn:hover{background:var(--surface-sunken);color:var(--text)}.qty__value{text-align:center;min-width:24px;font-weight:600;font-size:var(--fs-sm)}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:100%;display:grid}.sidebar{gap:var(--s-5);padding:var(--s-5) var(--s-4);background:var(--surface-inverse);color:var(--text-inverse);flex-direction:column;display:flex;overflow-y:auto}.sidebar__brand{align-items:center;gap:var(--s-2);padding:0 var(--s-2);font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:-.01em;font-weight:700;display:flex}.sidebar__brand em{color:var(--yellow);font-style:normal}.sidebar__group{flex-direction:column;gap:2px;display:flex}.sidebar__grouplabel{padding:0 var(--s-2) var(--s-2);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:#ffffff61;font-weight:600}.sidebar__footer{gap:var(--s-3);flex-direction:column;margin-top:auto;display:flex}.sidebar__user{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:#ffffff12;display:flex}.sidebar__avatar{border-radius:var(--r-full);background:var(--pink);width:34px;height:34px;color:var(--ink);font-family:var(--font-display);flex:none;place-items:center;font-weight:700;display:grid}.sidebar__userinfo{flex-direction:column;min-width:0;display:flex}.sidebar__username{font-weight:500;font-size:var(--fs-sm)}.sidebar__role{font-size:var(--fs-xs);color:#ffffff8c;text-transform:capitalize}.navitem{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3);border-radius:var(--r-md);color:#ffffffb8;text-align:left;font-family:var(--font-body);font-size:var(--fs-base);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;font-weight:500;text-decoration:none;display:flex;position:relative}.navitem:hover{color:var(--text-inverse);background:#ffffff14}.navitem[aria-current=page]{color:var(--text-inverse);background:#ffffff1f}.navitem[aria-current=page]:before{content:"";border-radius:var(--r-full);background:var(--yellow);width:3px;position:absolute;top:20%;bottom:20%;left:0}.navitem__icon{flex:none;place-items:center;display:grid}.workspace{background:radial-gradient(60rem 30rem at 85% -10%, #fe69ad12, transparent 70%), radial-gradient(50rem 26rem at 5% 105%, #1490e80f, transparent 70%), var(--bg);flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.pageheader{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffb3;flex-wrap:wrap;display:flex}.pageheader__text{flex-direction:column;gap:2px;min-width:0;display:flex}.pageheader__desc{font-size:var(--fs-sm);color:var(--text-muted)}.pageheader__actions{align-items:flex-end;gap:var(--s-3);flex-wrap:wrap;display:flex}.pagebody{min-height:0;padding:var(--s-5) var(--s-6) var(--s-6);flex:1;overflow-y:auto}.pagebody--flush{padding:0;overflow:hidden}.split{grid-template-columns:minmax(0, 1fr) var(--rail-w);gap:var(--s-5);align-items:start;height:100%;display:grid}.split__rail{gap:var(--s-4);flex-direction:column;display:flex;position:sticky;top:0}.stack{gap:var(--s-4);flex-direction:column;display:flex}.stack--tight{gap:var(--s-2)}.row{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.row--end{justify-content:flex-end}.row--between{justify-content:space-between}.grid-stats{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.table{border-collapse:collapse;width:100%;font-size:var(--fs-base)}.table th,.table td{padding:var(--s-3) var(--s-4);text-align:left}.table thead th{z-index:1;background:var(--surface-sunken);font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);white-space:nowrap;font-weight:600;position:sticky;top:0}.table tbody tr{border-top:1px solid var(--border)}.table tbody tr:hover{background:#1490e808}.table .td--num{text-align:right;font-variant-numeric:tabular-nums}.table .td--actions{text-align:right;white-space:nowrap}.table__primary{font-weight:500}.table__sub{font-size:var(--fs-sm);color:var(--text-muted)}.pos{grid-template-columns:minmax(0, 1fr) var(--rail-w);flex:1;min-height:0;display:grid}.pos__catalog{flex-direction:column;min-width:0;display:flex;overflow:hidden}.pos__toolbar{gap:var(--s-3);padding:var(--s-4) var(--s-6);border-bottom:1px solid var(--border);align-items:center;display:flex}.pos__filters{gap:var(--s-2);padding:var(--s-3) var(--s-6);border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.pos__products{min-height:0;padding:var(--s-5) var(--s-6) var(--s-6);flex:1;overflow-y:auto}.productgrid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(212px,1fr));display:grid}.productcard{gap:var(--s-2);padding:var(--s-3);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);cursor:pointer;font-family:var(--font-body);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;display:flex}.productcard:hover:not(:disabled){box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.productcard:disabled{opacity:.55;cursor:not-allowed}.productcard__media{aspect-ratio:4/3;border-radius:var(--r-md);background:var(--surface-sunken);position:relative;overflow:hidden}.productcard__media img{object-fit:cover;width:100%;height:100%;display:block}.productcard__placeholder{width:100%;height:100%;font-family:var(--font-display);font-size:var(--fs-2xl);color:var(--ink);place-items:center;font-weight:700;display:grid}.productcard__placeholder[data-tint="0"]{background:#fe69ad2e}.productcard__placeholder[data-tint="1"]{background:#fcd80042}.productcard__placeholder[data-tint="2"]{background:#2c855526}.productcard__placeholder[data-tint="3"]{background:#1490e826}.productcard__placeholder[data-tint="4"]{background:#fea4ad3d}.productcard__stock{top:var(--s-2);right:var(--s-2);position:absolute}.productcard__name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.productcard__brand{font-size:var(--fs-xs);color:var(--text-subtle)}.productcard__price{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:600}.cartrail{background:var(--surface);min-height:0;box-shadow:var(--shadow-rail);flex-direction:column;display:flex}.cartrail__header{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex}.cartrail__lines{min-height:0;padding:var(--s-3) var(--s-4);flex:1;overflow-y:auto}.cartrail__checkout{padding:var(--s-4) var(--s-5) var(--s-5);border-top:1px solid var(--border);background:var(--surface);gap:var(--s-3);flex-direction:column;display:flex}.cartrail__list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.cartline{gap:var(--s-2);padding:var(--s-3);border-radius:var(--r-md);flex-direction:column;display:flex}.cartline:hover{background:var(--surface-sunken)}.cartline__name{font-weight:500;line-height:1.3}.cartline__row{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.cartline__unit{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.cartline__actions{align-items:center;gap:var(--s-2);display:flex}.cartline__total{text-align:right;min-width:78px;font-weight:600}.cartline__discount{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--success);font-weight:600;display:inline-flex}.cartline__discountremove{border-radius:var(--r-full);width:20px;height:20px;color:var(--text-subtle);font-size:var(--fs-base);cursor:pointer;background:0 0;border:none;place-items:center;line-height:1;display:grid}.cartline__discountremove:hover{background:var(--surface-sunken);color:var(--danger)}.summary{gap:var(--s-2);flex-direction:column;display:flex}.summary__row{justify-content:space-between;align-items:baseline;gap:var(--s-3);font-size:var(--fs-sm);color:var(--text-muted);display:flex}.summary__row--discount,.summary__row--discount .summary__value{color:var(--success)}.summary__row--total{padding-top:var(--s-2);border-top:1px solid var(--border);font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text);font-weight:600}.summary__value{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.summary__change{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--success-soft);color:var(--success);font-family:var(--font-display);justify-content:space-between;align-items:baseline;font-weight:600;display:flex}.quickcash{gap:var(--s-2);flex-wrap:wrap;display:flex}.dialog{width:min(420px, calc(100vw - var(--s-5)));border-radius:var(--r-xl);background:var(--surface);color:var(--text);border:none;padding:0;box-shadow:0 24px 60px #0c262047}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c262073}.dialog__form{gap:var(--s-4);padding:var(--s-5);flex-direction:column;display:flex}.dialog__title{font-size:var(--fs-lg)}.dialog__message{font-size:var(--fs-base);color:var(--text-muted)}.dialog__details{gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-md);background:var(--surface-sunken);flex-direction:column;margin:0;display:flex}.dialog__detail{justify-content:space-between;gap:var(--s-3);display:flex}.dialog__detail dt{color:var(--text-muted);font-size:var(--fs-sm)}.dialog__detail dd{margin:0;font-weight:600}.dialog__actions{justify-content:flex-end;gap:var(--s-2);display:flex}.auth{height:100%;padding:var(--s-5);background:radial-gradient(40rem 26rem at 20% 20%, #fed8002e, transparent 65%), radial-gradient(44rem 30rem at 80% 85%, #fe69ad38, transparent 65%), var(--blue);place-items:center;display:grid}.auth__card{width:min(400px,100%);padding:var(--s-6);background:var(--surface);border-radius:var(--r-xl);box-shadow:0 24px 60px #0c262038}.auth__brand{font-family:var(--font-display);font-size:var(--fs-xl);text-align:center;font-weight:700}.auth__brand em{color:var(--pink);font-style:normal}.auth__tagline{margin-top:var(--s-1);text-align:center;font-size:var(--fs-sm);color:var(--text-muted)}.auth__form{gap:var(--s-4);margin-top:var(--s-6);flex-direction:column;display:flex}.receipt{width:58mm;padding:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);margin:0 auto;font-size:12px;line-height:1.45}.receipt__brand{text-align:center;font-family:var(--font-display);font-weight:700;font-size:var(--fs-md)}.receipt__meta{text-align:center;color:var(--text-muted);font-size:11px}.receipt__rule{border:none;border-top:1px dashed var(--border-strong);margin:var(--s-3) 0}.receipt__line{justify-content:space-between;gap:var(--s-2);font-variant-numeric:tabular-nums;display:flex}.receipt__line--total{font-size:13px;font-weight:700}.receipt__line--muted{color:var(--text-muted);white-space:pre;font-size:11px}.receipt__thanks{margin-top:var(--s-3);text-align:center;font-weight:500}@media (width<=1180px){.split{grid-template-columns:minmax(0,1fr)}.split__rail{position:static}.pos{flex-direction:column;display:flex;overflow-y:auto}.pos__catalog{flex:none;overflow:visible}.pos__products{overflow:visible}.cartrail{box-shadow:0 -1px 0 var(--border);flex:none}.cartrail__lines{overflow:visible}}@media (width<=860px){:root{--sidebar-w:72px}.sidebar{padding:var(--s-4) var(--s-2);align-items:center}.sidebar__brand span,.sidebar__grouplabel,.navitem span,.sidebar__userinfo{display:none}.navitem{justify-content:center}.pageheader,.pagebody,.pos__toolbar,.pos__filters,.pos__products{padding-left:var(--s-4);padding-right:var(--s-4)}}@media print{@page{size:58mm auto;margin:2mm}.sidebar,.pageheader,.no-print{display:none!important}.app{height:auto;display:block}.workspace{background:0 0;overflow:visible}.pagebody{padding:0;overflow:visible}.receipt{border:none;border-radius:0;width:auto;margin:0;padding:0}}
