:root{color-scheme:light;--brand-primary:#E11D48;--brand-secondary:#0F766E;--brand-accent-1:#F59E0B;--brand-accent-2:#6366F1;--brand:#e11d48;--brand-dark:#be123c;--bg:#f5f7fb;--surface:#fff;--surface-alt:#fafbfe;--text:#182334;--sub:#69768b;--border:#e4e9f1;--shadow:0 10px 32px rgba(24,35,52,.045);--radius:14px;--sidebar:#fff;--focus:#f43f5e;--success:#059669;--warn:#a16207}:root[data-theme=dark]{color-scheme:dark;--bg:#090d16;--surface:#111827;--surface-alt:#151e2e;--text:#f8fafc;--sub:#94a3b8;--border:#293347;--shadow:0 12px 30px rgba(0,0,0,.12);--sidebar:#0f172a;--brand:#fb4568;--brand-dark:#e11d48;--success:#34d399;--warn:#fbbf24}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--bg);font:13px/1.52 system-ui,-apple-system,"Segoe UI","Be Vietnam Pro",sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{max-width:100%}input:not([type=checkbox]),select,textarea{display:block;width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 11px;background:var(--surface);color:var(--text);min-height:40px;outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}textarea{resize:vertical}label{display:block;font-size:12px;font-weight:650;color:var(--sub)}label>input,label>select,label>textarea{margin-top:6px}h1,h2,h3,p{margin-top:0}h1{font-size:25px;line-height:1.2;letter-spacing:-.65px}h2{font-size:15px;letter-spacing:-.15px;margin-bottom:15px}h3{font-size:14px;margin-bottom:8px}small,.muted{color:var(--sub)}.muted{font-size:12px;line-height:1.7}.eyebrow{font-size:10px;font-weight:850;color:var(--brand);letter-spacing:2px;margin-bottom:10px}.brand{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;font-weight:850;font-size:clamp(12px,1vw,16px);letter-spacing:-.4px;color:color-mix(in srgb,var(--brand-secondary) 55%,var(--text))!important;text-decoration:none!important;overflow:hidden}.brand small{display:block;color:var(--sub);font-size:9px;letter-spacing:2px;font-weight:750}.brandmark{display:grid;place-items:center;width:38px;height:38px;flex:none;background:linear-gradient(135deg,#fb4568,#be123c);border-radius:11px;color:white;font-size:14px;font-weight:900;box-shadow:0 5px 13px rgba(225,29,72,.22)}.btn{display:inline-flex;justify-content:center;align-items:center;gap:7px;border:1px solid var(--border);border-radius:10px;min-height:40px;padding:9px 14px;background:var(--surface);color:var(--text);font-weight:750;text-decoration:none!important}.btn:hover{filter:brightness(.97)}.btn.primary{background:linear-gradient(135deg,#e11d48,#be123c);border-color:transparent;color:#fff}.btn.outline{border-color:var(--brand);color:var(--brand);background:transparent}.notice{border:1px solid var(--border);border-left:4px solid var(--success);border-radius:10px;padding:12px 16px;background:var(--surface);margin-bottom:18px}.notice.error{border-left-color:#ef4444}.checks{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.checks>div{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border)}.checks>div:last-child{border-bottom:0}.pass{color:var(--success)}.fail{color:#ef4444}.shell{display:flex;min-height:100vh;min-width:0}.sidebar{position:fixed;z-index:50;inset:0 auto 0 0;width:242px;display:flex;flex-direction:column;background:var(--sidebar);border-right:1px solid var(--border);box-shadow:var(--shadow);overscroll-behavior:contain;padding:13px 10px 10px;overflow-y:hidden;}.sidebar>.brand{margin:0 10px 30px;flex:none;}.navgroup{padding:0 14px;margin:5px 0 10px;font-size:10px;font-weight:900;letter-spacing:1.5px;color:var(--sub)}.navlink{display:flex;align-items:center;gap:11px;min-height:38px;padding:7px 11px;margin:1px 0;border-radius:10px;color:var(--sub);font-weight:650;white-space:nowrap}.navlink:hover{background:var(--surface-alt);text-decoration:none;color:var(--text)}.navlink.active{background:rgba(225,29,72,.10);color:var(--brand);font-weight:800}.navicon{width:26px;height:26px;display:grid;place-items:center;background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;color:inherit;font-size:12px;font-weight:900}.navlink.active .navicon{background:rgba(225,29,72,.1);border-color:rgba(225,29,72,.1)}.sidebarbottom{padding-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--sidebar);position:relative;bottom:auto;padding-bottom:0;margin-top:auto;}.sidebarbottom a,.sidebarbottom form button{text-align:center;display:grid;place-items:center;height:36px;background:var(--surface-alt);border:1px solid var(--border);border-radius:9px;color:var(--sub);font-size:12px;font-weight:750}.sidebarbottom form{margin:0}.sidebarbottom form button{cursor:pointer;width:100%;font:inherit}.sidebarbottom a:hover{color:var(--brand);text-decoration:none}.workspace{width:calc(100% - 242px);margin-left:242px;min-width:0;transition:margin-left .16s ease,width .16s ease;}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;background:var(--surface);border-bottom:1px solid var(--border);padding:8px clamp(12px,2vw,26px);min-height:60px;justify-content:initial;gap:14px;}.topbar strong{font-size:13px}.topbar small{display:block;font-size:11px}.topactions{color:var(--sub);font-size:12px;display:flex;align-items:center;gap:10px;margin-left:auto;white-space:nowrap;min-width:0;}.topactions button,.publicheader button{border:1px solid var(--border);background:var(--surface-alt);color:var(--text);border-radius:9px;width:35px;height:35px}.menu-toggle{display:none;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px}.main{margin:0 auto;padding:17px clamp(12px,2vw,28px) 70px;max-width:1650px;}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 23px}.pagehead h1{margin:0 0 6px}.pagehead p{margin:0;color:var(--sub);font-size:12px}.date-chip{color:var(--sub);white-space:nowrap;font-size:11px;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:8px 12px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:19px}.metric{padding:15px;min-height:114px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.metric>span,.metric small{display:block;color:var(--sub);font-size:11px}.metric strong{display:block;font-size:clamp(19px,1.6vw,26px);font-variant-numeric:tabular-nums;letter-spacing:-.7px;margin:7px 0;color:var(--text)}.metric:first-child{background:linear-gradient(128deg,rgba(225,29,72,.09),var(--surface) 80%);border-color:rgba(225,29,72,.2)}.panel{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:19px;margin-bottom:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.split>.panel{min-height:235px}.threecols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;align-items:start}.formstack{display:grid;gap:13px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tablewrap{width:100%;overflow-x:auto}.tablewrap table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;white-space:nowrap}.tablewrap th{background:var(--surface-alt);color:var(--sub);font-weight:800;font-size:10px;letter-spacing:.5px}.tablewrap td,.tablewrap th{padding:12px 11px;border-bottom:1px solid var(--border)}.tablewrap tr:last-child td{border-bottom:0}.quicklinks{display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-width:0}.quicklinks a{padding:11px 12px;border:1px solid var(--border);background:var(--surface-alt);border-radius:9px;color:var(--text);font-weight:650}.quicklinks a:hover{border-color:var(--brand);text-decoration:none}.installer{max-width:880px;margin:45px auto;padding:28px clamp(15px,4vw,35px);background:var(--surface);border:1px solid var(--border);border-radius:18px}.installer-actions{display:flex;gap:10px;flex-wrap:wrap}.installer-actions>.btn{flex:0 1 auto}.installer>.brand{margin-bottom:35px}.installer h2{margin:28px 0 13px}.installer .formstack>.btn{justify-self:start;margin-top:6px}.loginpanel{width:min(100%,430px);margin:10vh auto;padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.loginpanel>.brand{margin-bottom:38px}.loginpanel>p{color:var(--sub)}.loginpanel form{margin:30px 0}.count{font-size:11px;color:var(--sub)}.producttile{border:1px solid var(--border);border-radius:12px;padding:11px;min-width:0;display:flex;flex-direction:column;gap:4px;background:var(--surface-alt)}.producttile[hidden]{display:none}.tileicon{display:grid;place-items:center;background:linear-gradient(130deg,rgba(225,29,72,.07),rgba(251,191,36,.17));border-radius:9px;height:52px;font-size:25px;margin-bottom:4px}.producttile strong{font-size:12px;min-height:32px;line-height:1.3}.producttile .tiny,.producttile small{font-size:10px;color:var(--sub)}.producttile b{font-size:13px;color:var(--brand);margin:3px 0}.qtycontrol{display:flex;align-items:center;margin-top:auto;gap:4px}.qtycontrol button{flex:none;width:27px;height:30px;border:1px solid var(--border);background:var(--surface);border-radius:7px;color:var(--text);font-weight:800}.qtycontrol input[type=number]{min-width:0;min-height:30px;height:30px;text-align:center;padding:0 2px;border-radius:6px}.billtotal{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:18px}.billtotal strong{font-size:24px;color:var(--brand)}.orderrow{padding:16px}.ordermain{display:flex;justify-content:space-between;align-items:center;gap:16px}.ordermain h2{margin:0 0 4px}.ordermain>strong{font-size:19px;color:var(--brand)}.orderitems{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.orderitems span{border-radius:6px;border:1px solid var(--border);padding:5px 9px;color:var(--sub);font-size:11px}.payform{display:flex;gap:9px;justify-content:flex-end}.payform select{max-width:280px}.publicheader{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px clamp(18px,4vw,60px);background:#f9f6ef;color:#352b21;border-bottom:1px solid #e9dfd1;box-shadow:0 3px 18px rgba(57,36,16,.04);}.publicheader nav{display:flex;align-items:center;gap:clamp(10px,2vw,30px);font-weight:650}.publicheader nav a{color:#513b2d;font-weight:700;}.publicheader nav a:hover{color:#a15329;}.publicmain{min-height:65vh;max-width:none;margin:0;padding:0;color:#34271e;background:#fffcf7;font-size:14px;}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center;min-height:480px}.hero h1{font-size:clamp(35px,5vw,64px);letter-spacing:-2px;line-height:1.07;max-width:800px}.hero h1 em{font-style:normal;color:var(--brand)}.hero p{font-size:15px;color:var(--sub);max-width:550px}.heroactions{display:flex;gap:12px;margin-top:26px}.herovisual{display:flex;justify-content:center;align-items:center;flex-direction:column;min-height:380px;border-radius:35px;background:radial-gradient(ellipse at 30% 20%,rgba(225,29,72,.22),transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(251,191,36,.25),transparent 60%),var(--surface);border:1px solid var(--border);transform:rotate(1deg)}.heroemoji{font-size:155px;line-height:1.2;filter:drop-shadow(8px 14px 7px rgba(0,0,0,.09))}.herovisual>strong{font-size:22px;letter-spacing:4px}.herovisual>small{font-size:11px;letter-spacing:3px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:26px 0 20px}.sectionhead h2{font-size:25px;margin:0}.publicproducts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.publicproduct{border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--surface);padding:13px 16px 20px}.foodicon{height:155px;display:grid;place-items:center;font-size:78px;background:linear-gradient(130deg,rgba(225,29,72,.1),rgba(251,191,36,.18));border-radius:12px;margin-bottom:15px}.publicproduct small{font-size:11px}.publicproduct h3{font-size:16px;margin:6px 0 12px}.publicproduct b{font-size:17px;color:var(--brand)}.featurestrip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--border);margin-top:50px;padding-top:35px}.featurestrip>div{display:grid;gap:5px}.featurestrip span{color:var(--sub)}.footer{border-top:1px solid var(--border);background:#33251b;color:#d6c0ae;padding:27px 22px;text-align:center;font-size:12px;}.scrim{display:none}#backtop{position:fixed;right:20px;bottom:24px;z-index:49;width:41px;height:41px;border:0;border-radius:12px;background:var(--brand);color:#fff;box-shadow:0 5px 18px rgba(225,29,72,.22);font-size:19px}#backtop[hidden]{display:none}@media(max-width:1380px){}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.threecols{grid-template-columns:repeat(2,minmax(0,1fr))}.publicproducts{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar{width:215px}.workspace{width:calc(100% - 215px);margin-left:215px}}@media(max-width:790px){.sidebar{width:min(80vw,360px);bottom:calc(68px + env(safe-area-inset-bottom,0px));height:auto;max-height:calc(100dvh - 68px - env(safe-area-inset-bottom,0px));overflow:hidden;transform:translateX(-105%);transition:transform .2s ease}.workspace{margin:0;width:100%}.menu-open .sidebar{transform:translateX(0)}.menu-open .scrim{display:block;position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.52)}.menu-toggle{display:block}.topactions>span{display:none}.split,.threecols{grid-template-columns:1fr}.hero{grid-template-columns:1fr;min-height:0;padding:35px 0}.herovisual{min-height:240px}.heroemoji{font-size:85px}.publicproducts{grid-template-columns:repeat(2,minmax(0,1fr))}.publicheader nav a:nth-child(3){display:none}}@media(max-width:500px){h1{font-size:22px}.main{padding:16px 12px 75px}.pagehead{align-items:flex-start}.date-chip{display:none}.metrics{gap:9px}.metric{padding:13px}.metric strong{font-size:19px}.panel{padding:14px}.publicheader{padding:11px 13px}.publicheader nav{gap:10px;font-size:11px}.publicheader nav a:nth-child(2){display:none}.publicmain{padding:0 13px 40px}.hero h1{font-size:36px;letter-spacing:-1.5px}.publicproduct{padding:9px}.foodicon{height:110px;font-size:54px}.publicproduct h3{font-size:13px}.publicproduct b{font-size:14px}.featurestrip{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.installer{margin:10px;border-radius:10px}.payform{flex-wrap:wrap}.payform select{max-width:none}.ordermain>strong{font-size:15px}}@media print{.sidebar,.topbar,.sidebarbottom,.publicheader,.footer,#backtop,.payform,.menu-toggle{display:none!important}.workspace{margin:0;width:100%}.main{max-width:none;padding:0}.panel{break-inside:avoid;box-shadow:none}body{background:white;color:black}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.pos-active .sidebar,.pos-active .topbar,.pos-active #backtop{display:none}.pos-active .workspace{width:100%;margin:0}.pos-active{height:100dvh;overflow:hidden}.pos-active .shell,.pos-active .workspace{height:100dvh;min-height:0;overflow:hidden}.pos-active .main{max-width:none;padding:8px;height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}.pos-head{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px}.pos-head strong{display:block;font-size:16px;color:var(--brand)}.pos-head small{display:block;font-size:11px;color:var(--sub)}.pos-head>div:last-child{display:flex;gap:8px;flex-wrap:wrap}@keyframes tko-unpaid-pulse{50%{opacity:.3;transform:scale(1.3)}}.product-add{border:0;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:6px;width:100%;flex:1;padding:10px;min-height:140px;}.product-add .tileicon{display:grid;width:100%;height:38px;}.product-add strong{line-height:1.3;font-size:13px;min-height:33px}.product-add small{font-size:10px;color:var(--sub)}.product-add b{margin-top:auto;color:var(--brand);font-size:13px}.add-caption{font-size:10px;color:var(--success);font-weight:800}.product-add:hover{background:rgba(225,29,72,.045)}.modifier-edit{background:var(--surface);color:var(--brand);width:100%;border:0;border-top:1px solid var(--border);padding:8px;font-size:11px;font-weight:700}.category-list button.category-active{color:var(--brand);border-color:var(--brand);font-weight:800}.cart-lines{display:grid;gap:6px;overflow:auto;max-height:40dvh}.cart-line{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.cart-line>div:first-child{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.cart-line strong{font-size:12px}.cart-line small{font-size:10px;color:var(--sub)}.cart-line span{font-weight:750;color:var(--brand)}.cart-qty{display:flex;align-items:center;gap:7px}.cart-qty button{border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;color:var(--text);width:33px;height:33px}.cart-qty b{font-size:13px;min-width:17px;text-align:center}.modifier-dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:18px;padding:20px;width:min(92vw,490px);max-height:90dvh;overflow:auto;box-shadow:0 24px 80px rgba(0,0,0,.22)}.modifier-dialog::backdrop{background:rgba(0,0,0,.55)}.modifier-dialog header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}.modifier-dialog header strong{font-size:18px}.modifier-dialog header button{background:transparent;border:0;color:var(--text);font-size:25px}.modifier-dialog form{display:grid;gap:13px}.modifier-group{border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;gap:8px}.modifier-group legend{font-weight:800}.modifier-group label{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:500;padding:6px 0;min-height:36px}.modifier-group input{width:20px;height:20px;flex:none;accent-color:var(--brand)}.modifier-group small{color:var(--sub)}#modifier-error{color:#dc2626;margin:0}.checklabel{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:600}.checklabel input{width:18px;height:18px;accent-color:var(--brand)}.approval-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.approval-row p{margin:5px 0}.approval-actions{display:flex;gap:8px}.order-approval-toggle{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}.order-approval-toggle summary{cursor:pointer;color:var(--brand);font-weight:800}.approval-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:10px;padding:10px;background:var(--surface-alt);border-radius:10px}.approval-form label{flex:1;min-width:125px}.approval-form input[type=number]{max-width:100px}.dashboard-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:end;gap:10px}.dashboard-filters .btn{min-height:40px}.analytics-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.chartcard{padding:12px;min-height:295px;display:flex;flex-direction:column}.chartcard header{display:flex;align-items:center;gap:8px;min-height:38px}.chartcard header h2{font-size:12px;margin:0;line-height:1.25}.chartnum{display:grid;place-items:center;flex:none;width:26px;height:26px;background:rgba(225,29,72,.09);border-radius:7px;color:var(--brand);font-size:10px;font-weight:850}.chartbody{display:grid;place-items:center;min-height:206px;flex:1;width:100%;overflow:hidden}.chartbody svg{display:block;width:100%;height:auto;max-height:214px;color:var(--sub)}.chart-empty{text-align:center;padding:25px 8px;font-size:12px;color:var(--sub)}.chart-footer{min-height:18px;margin-top:6px;border-top:1px solid var(--border)}@media(max-width:1560px){.analytics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1050px){.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-list{flex-direction:row;overflow-x:auto;max-width:100%;gap:5px}.category-list button{white-space:nowrap}}@media(max-width:790px){.dashboard-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:530px){.analytics-grid{grid-template-columns:1fr}.chartcard{min-height:275px}.chartbody svg{max-height:225px}.dashboard-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-filters .btn{grid-column:1/-1}.pos-head{padding:8px;gap:7px;}.pos-head small{font-size:10px}.pos-head .btn{font-size:11px;padding:7px;min-height:37px}.approval-row{flex-direction:column;align-items:stretch}}@media(prefers-reduced-motion:reduce){}.role-matrix{display:grid;gap:10px}.role-matrix details{border:1px solid var(--border);border-radius:12px;padding:11px}.role-matrix summary{cursor:pointer;font-weight:850}.role-matrix form{padding-top:15px}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-toolbar h2{margin:0}.cell-sub{display:block;font-size:11px;margin-top:4px}.state{font-size:10px;font-weight:800;padding:4px 8px;border-radius:7px;display:inline-block}.state.good{color:#047857;background:#d1fae5}.state.off{color:#b45309;background:#fef3c7}.metric-inline{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.metric-inline strong{font-size:32px;color:var(--brand)}.metric-inline span{color:var(--sub)}.pager{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:13px}.inline-editor{max-width:300px}.inline-editor summary{cursor:pointer;font-weight:750;color:var(--brand)}.editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px;min-width:min(60vw,320px);background:var(--surface-alt);border-radius:9px;margin-top:10px}.editor-fields .btn{grid-column:1/-1}.editor-fields input,.editor-fields select{min-width:0}.setup-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.setup-steps a{display:flex;align-items:center;min-height:44px;background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font-weight:700}.setup-steps a:hover{border-color:var(--brand);text-decoration:none}.excel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.excel-card{border:1px solid var(--border);background:var(--surface-alt);border-radius:12px;padding:15px;min-width:0}.excel-card h3{margin:0 0 7px}.excel-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.excel-actions .btn{font-size:11px;padding:6px 10px;min-height:34px}.excel-import{display:grid;gap:12px;border-top:1px solid var(--border);padding-top:12px}.excel-import label{min-width:0}.excel-import .btn{justify-self:start}.publicheader .brand{color:#302217!important;font-weight:900}.publicheader .brandmark{background:#6b3924;box-shadow:none}.publicheader .brand small{color:#a57959}.publicheader button{border-color:#d6c5b3;color:#533d2d;background:#fffaf4}.publicmain,.publicmain input,.publicmain button{font-family:system-ui,-apple-system,"Segoe UI","Be Vietnam Pro",sans-serif}.public-inner{width:min(100% - 56px,1400px);margin:0 auto}.pub-kicker{display:inline-block;color:#a66a41;font-size:11px;font-weight:900;letter-spacing:2.1px}.pub-hero{background:linear-gradient(105deg,#f8efdf 0%,#fff9ee 55%,#e7d4bb);overflow:hidden}.pub-hero-grid{display:grid;grid-template-columns:1.06fr .94fr;min-height:590px;align-items:center;gap:30px}.pub-hero-copy{padding:66px 0;position:relative;z-index:1}.pub-hero-copy h1{font-size:clamp(42px,4.4vw,76px);font-weight:950;max-width:700px;line-height:1.07;color:#34251a;letter-spacing:-2px;margin:24px 0}.pub-hero-copy p{font-size:16px;line-height:1.8;color:#7d6552;max-width:540px}.pub-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:27px}.pub-button{display:inline-flex;align-items:center;justify-content:center;gap:15px;background:#805132;color:#fff!important;border-radius:8px;font-size:13px;font-weight:850;padding:15px 21px;min-height:48px;text-decoration:none!important;border:1px solid #805132;transition:transform .2s}.pub-button:hover{transform:translateY(-2px);background:#5c3420}.pub-button.ghost{background:transparent;color:#644630!important}.pub-button.light{background:#fff9ef;color:#63371c!important;border:0}.pub-hero-points{display:flex;flex-wrap:wrap;gap:18px;margin-top:37px;color:#745842;font-size:12px;font-weight:700}.pub-hero-visual{position:relative;display:grid;place-items:center;min-height:530px;background:radial-gradient(circle at 45% 53%,rgba(255,248,230,.92) 0,rgba(213,176,131,.4) 35%,transparent 68%)}.pub-hero-orbit{width:min(80%,480px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(116,82,54,.26);box-shadow:0 0 0 28px rgba(156,104,52,.055),0 0 0 68px rgba(156,104,52,.045);position:absolute}.pub-hero-emblem{font-size:clamp(170px,19vw,290px);filter:drop-shadow(0 20px 23px rgba(80,46,13,.17));transform:rotate(-8deg);line-height:1}.pub-hero-stamp{position:absolute;right:3%;bottom:14%;border-radius:15px;padding:16px 20px;background:#fff9ef;border:1px solid rgba(104,61,24,.2);box-shadow:0 10px 30px rgba(89,53,24,.12);font-weight:900;font-size:11px;letter-spacing:1px}.pub-hero-stamp small{display:block;letter-spacing:0;font-size:11px;margin-top:4px;color:#a07452}.pub-decor-star{position:absolute;color:#a57746;font-size:30px}.star-one{top:14%;left:19%}.star-two{right:16%;top:22%}.pub-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:#fff;border:1px solid #efe4d8;border-radius:14px;margin:-36px 0 50px;position:relative;z-index:2;box-shadow:0 9px 24px rgba(69,48,21,.07)}.pub-features article{padding:21px 27px;display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:start}.pub-features article:not(:last-child){border-right:1px solid #efe4d8}.pub-features article>span{grid-row:span 2;font-size:24px;font-weight:900;color:#a77652}.pub-features article strong{font-size:14px;color:#4c3526}.pub-features article small{font-size:12px;color:#967e68;margin-top:3px}.pub-section{margin:48px 0 72px}.pub-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.pub-section-head h2,.pub-menu-heading h1{font-size:clamp(28px,3vw,43px);line-height:1.16;letter-spacing:-1px;font-weight:900;color:#37291f;margin:9px 0 0}.pub-section-head h2 em,.pub-menu-heading em,.pub-contact h1 em,.pub-end-cta h2 em{color:#a56a3c;font-style:normal}.pub-section-head a{color:#805132;font-weight:850;font-size:12px;text-decoration:none}.pub-categories{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.pub-category{background:#fff;border:1px solid #ecdfd2;border-radius:13px;padding:23px 15px;color:#493629!important;display:flex;flex-direction:column;gap:5px;min-height:154px;box-shadow:0 2px 11px rgba(91,56,25,.035);text-decoration:none!important;position:relative}.pub-category:hover{border-color:#b38664;transform:translateY(-2px)}.pub-category>span{font-size:36px;line-height:1.3}.pub-category strong{font-size:13px;line-height:1.3}.pub-category small{color:#a68b76;font-size:11px}.pub-category b{position:absolute;right:14px;top:18px;color:#b49a83}.pub-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.pub-product{border:1px solid #eee2d6;background:#fff;border-radius:14px;overflow:hidden;min-width:0;transition:border-color .2s,transform .2s}.pub-product:hover{border-color:#c49e7f;transform:translateY(-3px)}.pub-product[hidden],.pub-group[hidden]{display:none}.pub-product-art{height:172px;background:radial-gradient(circle at 50% 48%,#f7eacb 0,#e4c8a8 38%,#e7d8bf 62%,#cfa885 100%);display:grid;place-items:center;position:relative;overflow:hidden}.pub-product:nth-child(4n/**/+2) .pub-product-art{background:radial-gradient(circle at 50% 48%,#f0e4d3,#c9bb9e 65%,#aa977c)}.pub-product:nth-child(4n/**/+3) .pub-product-art{background:radial-gradient(circle at 50% 48%,#f7eac5,#ded4a8 65%,#c9c092)}.pub-product:nth-child(4n) .pub-product-art{background:radial-gradient(circle at 50% 48%,#f9e0d1,#e7bba5 65%,#c89479)}.pub-product-art>span{font-size:83px;position:relative;z-index:1;filter:drop-shadow(0 11px 9px rgba(53,37,22,.16))}.pub-art-rays{position:absolute;border:1px solid rgba(255,255,255,.62);width:140px;height:140px;border-radius:50%;box-shadow:0 0 0 16px rgba(255,255,255,.11),0 0 0 34px rgba(255,255,255,.08)}.pub-product-art small{position:absolute;bottom:12px;left:12px;font-size:10px;letter-spacing:1px;color:#775b42;font-weight:800;background:rgba(255,255,255,.8);padding:4px 8px;border-radius:4px}.pub-product-info{padding:16px 16px 17px}.pub-product-category{display:inline-block;font-size:10px;letter-spacing:1px;color:#aa7b54;text-transform:uppercase;font-weight:800}.pub-product-info h3{margin:8px 0 15px;min-height:36px;color:#39291d;font-weight:850;font-size:15px;line-height:1.35}.pub-product-info>div{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f2eae1;padding-top:12px}.pub-product-info strong{font-weight:950;font-size:16px;color:#805132}.pub-product-spark{color:#bea081}.pub-feature-banner{background:linear-gradient(110deg,#53341f 5%,#765039 55%,#9f7854);color:#fff;border-radius:18px;display:grid;grid-template-columns:1fr .5fr;align-items:center;gap:20px;padding:34px 8%;overflow:hidden;min-height:240px}.pub-feature-banner .pub-kicker{color:#f3c79a}.pub-feature-banner h2{font-size:clamp(26px,3vw,40px);line-height:1.2;margin:12px 0}.pub-feature-banner p{color:#f7e6d7;max-width:580px}.pub-banner-art{font-size:160px;opacity:.88;text-align:center;filter:drop-shadow(0 10px 14px rgba(0,0,0,.18))}.pub-group{margin:36px 0}.pub-group-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9d9c8;padding-bottom:12px;margin-bottom:16px}.pub-group-head h3{font-size:21px;margin:0}.pub-group-head small{color:#92765e}.pub-end-cta{background:#f4eadd;border:1px solid #ead9c6;border-radius:16px;padding:30px 36px;display:flex;align-items:center;justify-content:space-between;gap:22px;margin:60px 0 70px}.pub-end-cta h2{font-size:clamp(24px,3vw,36px);margin:9px 0}.pub-end-cta p{color:#8f7560;margin:0}.publicheader+.publicmain{min-height:55vh}.footer a{color:#f7d7b4}.pub-breadcrumb{margin:25px 0;color:#977c67;font-size:12px}.pub-breadcrumb a{color:#79583e}.pub-menu-heading{padding:38px 0 25px;text-align:center}.pub-menu-heading p{color:#957e6a}.pub-menu-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid #eaded3;border-radius:12px;padding:14px 16px;margin:16px 0}.pub-menu-toolbar label{max-width:490px;display:flex;align-items:center;gap:11px;font-size:18px;width:100%;color:#8c6649}.pub-menu-toolbar input{border:0!important;background:transparent!important;min-height:32px;color:#47392e}.pub-menu-toolbar input:focus-visible{outline:0}.pub-menu-toolbar>span{white-space:nowrap;font-size:12px;color:#90755f}.pub-menu-filters{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}.pub-menu-filters button{border:1px solid #ddcbb9;background:#fffaf5;color:#74523a;border-radius:25px;padding:10px 14px;font-weight:750}.pub-menu-filters button.selected{background:#755035;color:#fff;border-color:#755035}.pub-empty{text-align:center;padding:42px;border:1px dashed #dbc7af;border-radius:14px;font-size:40px}.pub-empty h3{font-size:20px}.pub-empty p{font-size:13px;color:#997a60}.pub-contact{display:grid;grid-template-columns:1fr 1fr;background:#f5eddf;border-radius:22px;overflow:hidden;margin:30px 0 90px}.pub-contact-main{padding:75px clamp(25px,5vw,80px)}.pub-contact h1{font-size:clamp(35px,4vw,55px);margin:15px 0}.pub-contact-main>p{color:#846c5a;line-height:1.7}.pub-contact-list{display:grid;gap:25px;margin:32px 0}.pub-contact-list>div{display:flex;gap:14px}.pub-contact-list>div>span{display:grid;place-items:center;background:#e5cfb5;color:#765039;width:43px;height:43px;border-radius:9px;flex:none;font-size:22px}.pub-contact-list strong{color:#3d2f24}.pub-contact-list p{color:#826950;margin:4px 0}.pub-contact-list a{color:#805132}.pub-contact-art{background:radial-gradient(circle at 40% 50%,#ad8662,#805739 70%,#5a3826);display:grid;place-items:center}.pub-cup-scene{display:flex;align-items:center;flex-direction:column;gap:30px;color:#fff2e3;font-size:13px;letter-spacing:2px;text-align:center}.pub-cup{font-size:230px;filter:drop-shadow(0 15px 26px rgba(0,0,0,.2))}@media(min-width:1561px){.analytics-grid{grid-template-columns:repeat(15,minmax(0,1fr))}.analytics-grid>.chartcard{grid-column:span 3}.analytics-grid>.chartcard:nth-child(n/**/+6){grid-column:span 5}}@media(max-width:1250px){.pub-categories{grid-template-columns:repeat(3,minmax(0,1fr))}.pub-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pub-hero-copy h1{font-size:clamp(38px,4vw,58px)}.excel-grid{grid-template-columns:1fr}}@media(max-width:790px){.public-inner{width:min(100% - 30px,1400px)}.publicheader{padding:12px 15px;gap:12px}.publicheader nav{gap:10px;overflow-x:auto;max-width:65%;font-size:12px}.publicheader .brand{font-size:12px}.publicheader .brand small{font-size:8px}.publicheader .brandmark{width:32px;height:32px;font-size:11px}.pub-hero-grid{grid-template-columns:1fr;min-height:0;gap:0}.pub-hero-copy{padding:55px 0 10px}.pub-hero-visual{min-height:270px}.pub-hero-emblem{font-size:150px}.pub-hero-orbit{width:220px}.pub-hero-stamp{bottom:9%}.pub-features{margin:20px 0 35px}.pub-features article{padding:15px 12px;grid-template-columns:1fr}.pub-features article>span{grid-row:auto;font-size:19px}.pub-categories{grid-template-columns:repeat(2,minmax(0,1fr))}.pub-category{min-height:130px}.pub-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pub-product-art{height:125px}.pub-product-art>span{font-size:65px}.pub-product-info{padding:11px}.pub-product-info h3{font-size:13px}.pub-product-info strong{font-size:14px}.pub-feature-banner{grid-template-columns:1fr .3fr;padding:23px}.pub-banner-art{font-size:78px}.pub-contact{grid-template-columns:1fr}.pub-contact-main{padding:33px}.pub-contact-art{min-height:250px}.pub-cup{font-size:145px}.pub-end-cta{flex-direction:column;align-items:flex-start;padding:21px}.pub-menu-toolbar{flex-wrap:wrap}.setup-steps{grid-template-columns:1fr}.excel-grid{grid-template-columns:1fr}}@media(max-width:430px){.pub-hero-copy h1{font-size:38px;letter-spacing:-1.5px}.pub-hero-copy p{font-size:14px}.pub-hero-points{gap:8px}.pub-features{grid-template-columns:1fr}.pub-features article{border-right:0!important;border-bottom:1px solid #eee4d8;grid-template-columns:28px 1fr;padding:13px}.pub-features article>span{grid-row:span 2}.pub-categories{gap:8px}.pub-category{padding:12px}.pub-category>span{font-size:29px}.pub-product-art{height:109px}.pub-product-art>span{font-size:55px}.pub-feature-banner{grid-template-columns:1fr}.pub-banner-art{display:none}.publicheader nav a{font-size:11px}.publicheader nav a:last-of-type{display:none}.pub-menu-toolbar{padding:9px}.editor-fields{grid-template-columns:1fr;min-width:260px}}.dash-intro{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px;border-radius:12px;padding:12px 15px;background:linear-gradient(120deg,rgba(225,29,72,.09),var(--surface));border:1px solid var(--border)}.dash-intro strong{font-size:12px;color:var(--brand);letter-spacing:.5px}.dash-intro span{flex:1;color:var(--sub);font-size:11px}.dash-intro a{font-size:11px;font-weight:800;white-space:nowrap}.dash-secondary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:-3px 0 18px;color:var(--sub);font-size:12px}.dash-secondary a{margin-left:auto;font-weight:700}.dash-secondary b{color:var(--text)}.metrics:has(+.dash-secondary){grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.metrics:has(+.dash-secondary){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:530px){.metrics:has(+.dash-secondary){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{padding:11px;min-height:108px}.metric strong{font-size:18px}}.public-bottom-nav{display:none}[data-theme=dark] .publicmain{background:#191512;color:#eadccf}[data-theme=dark] .publicheader{background:#221b17;border-color:#382c24}[data-theme=dark] .publicheader .brand,[data-theme=dark] .publicheader nav a{color:#f6e5d2!important}[data-theme=dark] .publicheader .brand small{color:#c3aa90}[data-theme=dark] .pub-hero{background:linear-gradient(105deg,#251b15,#3b281c,#412b1c)}[data-theme=dark] .pub-hero-copy h1,[data-theme=dark] .pub-section-head h2,[data-theme=dark] .pub-menu-heading h1,[data-theme=dark] .pub-contact h1,[data-theme=dark] .pub-end-cta h2{color:#f8e6d1}[data-theme=dark] .pub-hero-copy p,[data-theme=dark] .pub-hero-points,[data-theme=dark] .pub-menu-heading p{color:#d6bca1}[data-theme=dark] .pub-features,[data-theme=dark] .pub-category,[data-theme=dark] .pub-product,[data-theme=dark] .pub-menu-toolbar{background:#30261e;border-color:#51402f}[data-theme=dark] .pub-features article:not(:last-child){border-color:#51402f}[data-theme=dark] .pub-features article strong,[data-theme=dark] .pub-category strong,[data-theme=dark] .pub-product-info h3,[data-theme=dark] .pub-contact-list strong{color:#f3e5d5}[data-theme=dark] .pub-product-info>div,[data-theme=dark] .pub-group-head{border-color:#534334}[data-theme=dark] .pub-contact,[data-theme=dark] .pub-end-cta{background:#30251d;border-color:#5c4938}[data-theme=dark] .pub-menu-toolbar input{color:#f5e3d1}[data-theme=dark] .pub-menu-filters button{background:#33261b;color:#dfcbb8;border-color:#69533c}[data-theme=dark] .pub-menu-filters button.selected{background:#a36e46;color:white}[data-theme=dark] .pub-button.ghost{border-color:#b38b6b;color:#f1d4b5!important}[data-theme=dark] .pub-contact-main>p,[data-theme=dark] .pub-contact-list p,[data-theme=dark] .pub-end-cta p{color:#c8a98c}@media(max-width:790px){.public-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:55;align-items:stretch;background:#f9f3eb;border-top:1px solid #e7d7c6;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -5px 14px rgba(77,50,23,.08)}.public-bottom-nav a{flex:1;display:grid;place-items:center;text-align:center;gap:1px;color:#79513a!important;font-size:20px;padding:5px 0;text-decoration:none!important}.public-bottom-nav span{font-size:10px;font-weight:700}.footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))}[data-theme=dark] .public-bottom-nav{background:#211a16;border-color:#4a382c}[data-theme=dark] .public-bottom-nav a{color:#e8c8a7!important}}.ui-icon{display:inline-block;flex:none;vertical-align:middle}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sidebar-brand-row{display:flex;align-items:center;justify-content:space-between;min-height:50px;margin:0 4px 14px;gap:6px}.sidebar-brand-row>.brand{margin:0;min-width:0;overflow:hidden}.sidebar-brand-row .brand-text{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(12px,1vw,16px)}.brand-text small{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(8px,.68vw,10px)}.sidebar-collapse{display:grid;place-items:center;width:31px;height:34px;flex:none;border:1px solid var(--border);border-radius:9px;background:var(--surface-alt);color:var(--sub)}.admin-nav{display:block;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;min-height:0;flex:1;padding-bottom:8px}.admin-nav .navsection{margin-bottom:10px}.admin-nav .navgroup{margin:0 0 3px;padding:6px 12px;font-size:10px}.admin-nav .navlink{font-size:12px;min-height:37px}.admin-nav .navicon{display:grid;place-items:center;flex:0 0 23px}.sidebarbottom a,.sidebarbottom button{display:flex!important;align-items:center;justify-content:center;gap:6px;padding:0 4px}.topbar-identity{display:grid;gap:1px;min-width:120px;max-width:220px;flex:none}.topbar-identity strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.topbar-identity small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-search{position:relative;display:flex;align-items:center;gap:9px;background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;flex:1;max-width:550px;min-width:0;padding:0 11px}.topbar-search:focus-within{border-color:var(--brand)}.topbar-search>input{border:0!important;background:transparent!important;min-height:38px!important;padding:5px 0!important;box-shadow:none!important;min-width:0}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:75;max-height:min(65vh,430px);overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 18px 36px rgba(0,0,0,.15);font-size:12px}.search-results[hidden]{display:none}.search-results a{display:flex;flex-direction:column;gap:1px;padding:8px 10px;color:var(--text);border-radius:8px}.search-results a:hover,.search-results a:focus{background:var(--surface-alt);text-decoration:none}.search-results a small{color:var(--brand);font-size:10px}.vn-clock{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;font-size:11px;color:var(--text);white-space:nowrap}.vn-clock small{font-size:10px;color:var(--sub)}.top-user{max-width:100px;overflow:hidden;text-overflow:ellipsis}.metric-link{display:block;color:var(--text)!important;text-decoration:none!important;position:relative;transition:border-color .12s,box-shadow .12s}.metric-link:hover,.metric-link:focus-visible{border-color:var(--brand);box-shadow:0 5px 20px rgba(225,29,72,.1)}.metric-arrow{position:absolute;right:13px;top:10px;color:var(--brand);font-size:16px}.pos-quicksearch{min-width:0}.pos-saved{max-width:1250px}.pos-saved-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.9fr);gap:12px;align-items:start}.pos-saved .panel{min-width:0}.pos-saved-detail{padding:22px}.pos-order-grand{font-size:clamp(20px,3vw,32px);color:var(--brand)}.pos-receipt-lines{margin:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.pos-receipt-line{display:flex;align-items:start;justify-content:space-between;gap:10px;padding:12px 2px;border-bottom:1px solid var(--border)}.pos-receipt-line:last-child{border:0}.pos-receipt-line>div{display:grid;gap:4px}.pos-receipt-line small{color:var(--sub);font-size:11px}.pos-receipt-line b{white-space:nowrap;color:var(--text)}.pos-receipt-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:12px}.pos-saved-actions{display:grid;gap:12px}.pos-saved-actions h2{margin:0}.pos-approval-form{margin-top:12px;border-top:1px solid var(--border);padding:12px 0}.pos-approval-form summary{cursor:pointer;font-weight:750}.pos-approval-form form{margin:12px 0;padding:10px;border-radius:10px;background:var(--surface-alt)}.pos-order-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:12px}.pos-order-card{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;padding:15px;border:1px solid var(--border);border-radius:12px;color:var(--text);background:var(--surface-alt);text-decoration:none!important}.pos-order-card:hover{border-color:var(--brand)}.pos-order-card span{display:grid;gap:6px}.pos-order-card small{font-size:11px;color:var(--sub)}.pos-order-card b{color:var(--brand);white-space:nowrap}.order-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(min-width:791px){body.sidebar-compact .sidebar{width:70px}body.sidebar-compact .workspace{margin-left:70px;width:calc(100% - 70px)}body.sidebar-compact .sidebar-brand-row{justify-content:center;flex-direction:column;gap:9px}body.sidebar-compact .sidebar-brand-row .brand-text,body.sidebar-compact .navgroup,body.sidebar-compact .navtext,body.sidebar-compact .sidebarbottom span{display:none}body.sidebar-compact .sidebar-brand-row .brandmark{width:36px;height:36px}body.sidebar-compact .sidebar-collapse{height:26px;width:36px}body.sidebar-compact .sidebar-collapse svg{transform:rotate(180deg)}body.sidebar-compact .navlink{justify-content:center;padding:7px}body.sidebar-compact .navsection{margin:5px 0 12px;border-bottom:1px solid var(--border);padding-bottom:7px}body.sidebar-compact .sidebarbottom{grid-template-columns:1fr;gap:5px}}@media(max-width:1100px){.topbar-identity{max-width:140px}.vn-clock small,.top-user{display:none}}@media(max-width:790px){.sidebar-collapse{display:none}.topbar{justify-content:flex-start;min-height:55px;gap:8px;}.topbar-identity{min-width:0;max-width:120px}.topbar-search{max-width:none;flex:1}.topbar-search>input{font-size:11px!important}.topbar-search .ui-icon{width:15px}.vn-clock{font-size:10px}.vn-clock .ui-icon{display:none}.topactions{margin-left:auto;gap:5px;}.pos-saved-grid{grid-template-columns:1fr}.pos-active .main{padding:4px 6px 0}.pos-head{flex-wrap:wrap;padding:8px}}@media(max-width:480px){.topbar-identity small{display:none}.topbar-identity{max-width:70px}.topbar-identity strong{font-size:11px}.vn-clock{display:none}.topbar{padding:8px}.topbar-search{padding:0 6px}.pos-head strong{font-size:12px}.pos-head small{display:none}.pos-head .btn{font-size:10px;padding:5px 8px;min-height:34px}.pos-saved-detail{padding:14px}.pos-order-list{grid-template-columns:1fr}.pos-order-grand{font-size:22px}}@media print{.pos-saved .pos-head,.pos-saved .pos-saved-actions,.pos-receipt-actions,.pos-active .sidebar,.pos-active .topbar,.pos-active #backtop{display:none!important}.pos-saved-grid{display:block!important}.pos-saved-detail{border:0;box-shadow:none;padding:0}.pos-receipt-line{break-inside:avoid}}


/* V0.4.0: canonical POS workspace (single responsive implementation, no override stack). */
.pos-workspace{width:100%;max-width:1920px;height:100%;min-height:0;margin:auto;display:flex;flex-direction:column;overflow:hidden}
.pos-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:5px 10px;margin-bottom:6px;min-height:46px}
.pos-head strong{font-size:15px;color:var(--brand);display:block}.pos-head small{font-size:11px;color:var(--sub);display:block}.pos-head>div:last-child{display:flex;gap:7px;flex-wrap:wrap}
.pos-workspace #pos-form{display:flex;flex-direction:column;flex:1;min-height:0}
.pos-workspace.pos-saved{overflow-y:auto;overscroll-behavior:contain}.pos-workspace [hidden]{display:none!important}
.pos-context{flex:1;min-height:0;width:100%;max-width:none;margin:0;overflow:hidden;padding:clamp(8px,1vw,13px);display:flex;flex-direction:column;gap:6px}.pos-context>h2{font-size:16px;margin:3px 0 12px}
.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mode-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--surface-alt);color:var(--text);border:2px solid var(--border);border-radius:13px;padding:8px;min-height:80px;cursor:pointer}.mode-choice span{font-size:26px}.mode-choice strong{font-size:14px}.mode-choice.selected{border-color:var(--brand);background:rgba(225,29,72,.08)}.pos-context-details{margin-top:3px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.pos-context.pos-mode-selected>.mode-grid,.pos-context.pos-mode-selected>h2{display:none}.pos-context #pos-table-context{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.pos-floor-toolbar{display:flex;flex:none;align-items:center;gap:12px;justify-content:space-between;padding:3px 2px}.pos-floor-toolbar h3{margin:0;white-space:nowrap}.pos-floor-filters{display:flex;gap:7px;align-items:center;min-width:0;flex:1;max-width:610px}.pos-floor-filters select{width:min(45%,215px);flex:none;min-height:36px}.pos-floor-filters input[type=search]{min-width:0;min-height:36px}.pos-context #pos-delivery-context{flex:1;min-height:0;overflow-y:auto}.pos-context-confirm{flex:none}.pos-context-details h3{margin:4px 0 8px}.pos-context-confirm{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.pos-context-confirm span{font-size:12px;font-weight:650}
.floor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));grid-auto-rows:minmax(65px,auto);gap:7px;flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;align-content:start;margin:6px 0;padding:2px 4px 3px 0}.floor-table{border-inline-start-width:5px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--zone-accent,#64748b) 15%,transparent);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:65px;padding:5px;background:var(--surface-alt);color:var(--text);border:2px solid var(--border);border-radius:11px;cursor:pointer}.floor-table small{font-size:10px;color:var(--sub)}.floor-table strong{font-size:14px}.floor-table span{font-size:11px;font-weight:700;text-align:center}.floor-table.available{border-color:var(--zone-accent,#64748b)}.floor-table.available span{color:var(--text)}.floor-table.unpaid{border-color:var(--zone-accent,#64748b);background:color-mix(in srgb,var(--zone-accent,#64748b) 12%,var(--surface))}.floor-table.unpaid span{color:#dc2626}.floor-table.unpaid:before{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;background:#dc2626;border-radius:50%;animation:unpaidPulse 2s ease-in-out infinite}.floor-table.reserved{border-color:var(--zone-accent,#64748b);background:color-mix(in srgb,var(--zone-accent,#64748b) 12%,var(--surface))}.floor-table.selected{outline:3px solid var(--brand);outline-offset:1px}.floor-table:disabled{opacity:.62;cursor:not-allowed}
.poslayout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,28%);gap:8px;flex:1;min-height:0;overflow:hidden}.poslayout>.panel{margin:0;min-height:0}.posproducts{min-width:0;display:flex;flex-direction:column;overflow:hidden;padding:9px!important}.pos-sales-toprow{flex:none;display:flex;align-items:center;gap:7px;min-width:0;border-bottom:1px solid var(--border);padding-bottom:5px}.pos-sales-toolbar{display:flex;align-items:center;gap:5px;flex:none}.pos-sales-toolbar .btn{min-height:38px;white-space:nowrap;padding-inline:9px}.pos-search-icon{display:grid;place-items:center;width:40px;min-width:40px;height:38px;border:1px solid var(--brand);border-radius:9px;background:color-mix(in srgb,var(--brand) 7%,var(--surface));color:var(--brand);font-size:26px;line-height:1;cursor:pointer}.category-list{display:flex;flex-direction:row;flex:1 1 0;min-width:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:5px;padding:3px 0;scrollbar-width:thin}.category-list button{flex:none;white-space:nowrap;background:var(--surface-alt);color:var(--text);border:1px solid var(--border);border-radius:8px;text-align:center;padding:8px 11px;min-height:36px;font-size:12px}.pos-sales-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;flex:none;padding:2px 0 6px}.pos-sales-heading h2{font-size:14px;margin:0}.pos-sales-heading small{font-size:11px;color:var(--sub)}
.productgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;align-content:start;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 3px 9px 0}.posbill{display:flex;flex-direction:column;gap:7px;min-width:0;min-height:0;overflow:hidden;padding:12px!important}.posbill h2{margin:0;font-size:15px}.posbill-title{display:flex;justify-content:space-between;align-items:center}.posbill-title button{display:none}.posbill .cart-lines{flex:1;min-height:30px;overflow-y:auto;overscroll-behavior:contain}.posbill .billtotal{margin-top:auto;padding-top:8px;flex:none}.posbill .billtotal strong{font-size:clamp(20px,2vw,28px)}.posbill-actions{display:grid;grid-template-columns:1fr;gap:6px;flex:none}.posbill-actions .btn{width:100%;min-height:42px}.pos-checkout-dialog{max-width:min(410px,calc(100vw - 24px))}.pos-checkout-dialog .checkout-inner{display:grid;gap:14px}.pos-checkout-dialog header{display:flex;align-items:center;justify-content:space-between}.pos-checkout-dialog .checkout-amount{font-size:32px;font-weight:800;color:var(--brand);text-align:center;padding:18px 0;border-block:1px solid var(--border)}.pos-checkout-dialog .btn{width:100%;min-height:48px}
#mobile-cart-toggle{display:none}
/* Operations: compact high-density admin panels without horizontal viewport overflow. */
.ops-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:10px}.ops-kpi{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);display:grid;gap:5px;min-width:0}.ops-kpi small{color:var(--sub);font-size:11px}.ops-kpi strong{font-size:22px;font-variant-numeric:tabular-nums}
.ops-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:12px}.ops-tabs a{color:var(--sub);font-size:12px;font-weight:650;white-space:nowrap;text-decoration:none;padding:9px 12px;border-radius:9px}.ops-tabs a.is-active{background:rgba(225,29,72,.11);color:var(--brand)}
.ops-filters{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:11px}.ops-filters label{flex:1 1 150px;min-width:0;font-size:11px}.ops-filters label input,.ops-filters label select{width:100%;min-width:0}.ops-filters>.btn{min-height:38px}.ops-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.ops-tools>.panel{min-width:0;margin-bottom:0}.ops-tools summary,.admin-table-editor summary,.staff-editor summary,.role-editor summary{cursor:pointer;list-style:revert}.ops-tools summary{margin-bottom:6px;font-size:12px}.ops-tools .formstack{margin-top:9px}
.admin-floor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px;max-height:450px;overflow-y:auto}.admin-table-card{border:2px solid var(--border);border-radius:12px;min-height:100px;padding:9px;display:grid;gap:6px;text-align:center;align-content:center;background:var(--surface-alt);color:var(--text);cursor:pointer}.admin-table-card strong{font-size:14px}.admin-table-card small{font-size:11px;color:var(--sub)}.admin-table-card span{font-size:11px}.admin-table-card.available{border-color:var(--zone-accent,#64748b)}.admin-table-card.unpaid{border-color:var(--zone-accent,#64748b);background:color-mix(in srgb,var(--zone-accent,#64748b) 13%,var(--surface))}.admin-table-card.reserved{border-color:var(--zone-accent,#64748b);background:color-mix(in srgb,var(--zone-accent,#64748b) 13%,var(--surface))}.admin-table-card.off{opacity:.62}.admin-table-card[hidden]{display:none}.admin-table-editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:7px;max-height:390px;overflow-y:auto}.admin-table-editor{border:1px solid var(--border);border-radius:9px;padding:10px;min-width:0}.admin-table-editor small{display:block;color:var(--sub)}.admin-table-editor .editor-fields{display:grid;gap:7px;padding-top:9px}.admin-table-editor .inlineform{margin-top:8px}.ops-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px}.ops-legend>span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.legend-available:before{background:#059669}.legend-unpaid:before{background:#dc2626}.legend-reserved:before{background:#f59e0b}.legend-off:before{background:#94a3b8}
.staff-editor-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px}.staff-editor{border:1px solid var(--border);padding:9px;border-radius:10px;min-width:0}.staff-editor>summary{display:grid;gap:2px}.staff-editor>summary small{color:var(--sub);font-size:11px}.staff-editor[open]{grid-column:1/-1}.staff-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:12px}.staff-editor-grid .editor-fields{display:grid;gap:7px}.staff-account-tools{display:grid;align-content:start;gap:12px}.staff-account-tools .editor-fields{display:grid;gap:7px}.role-editor{border-top:1px solid var(--border);padding:9px 0}
@media(max-width:1050px){.poslayout{grid-template-columns:minmax(0,1fr) minmax(250px,34%)}.productgrid{grid-template-columns:repeat(auto-fill,minmax(135px,1fr))}.ops-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:790px){.pos-workspace{height:100dvh;min-height:0}.poslayout{display:block;position:relative}.pos-products,.posproducts{height:100%;overflow:hidden}.posbill{position:fixed;z-index:80;left:0;right:0;bottom:0;top:auto;max-height:84dvh;transform:translateY(110%);transition:transform .2s ease;border-radius:18px 18px 0 0;box-shadow:0 -12px 34px rgba(0,0,0,.16)}.posbill.cart-open{transform:translateY(0)}.posbill-title button{display:inline-flex;border:0;background:transparent;color:var(--text);font-size:24px;cursor:pointer}.posbill .cart-lines{min-height:90px}.pos-sales-heading{padding-top:3px}.productgrid{padding-bottom:65px;grid-template-columns:repeat(2,minmax(0,1fr))}#mobile-cart-toggle{display:none;position:relative;z-index:2;bottom:auto;left:auto;right:auto;width:calc(100% - 16px);margin:5px 8px;flex:none;border:0;border-radius:12px;background:var(--brand);color:#fff;min-height:50px;padding:8px 12px;align-items:center;justify-content:space-between;gap:8px}#mobile-cart-toggle.show{display:flex}.ops-tools{grid-template-columns:1fr}.ops-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-editor-grid{grid-template-columns:1fr}}
@media(max-width:530px){.pos-head{min-height:44px;padding:5px 8px}.pos-head strong{font-size:12px}.pos-head small{display:none}.pos-head .btn{font-size:11px;padding:6px}.pos-context{padding:10px}.mode-grid{gap:6px}.mode-choice{min-height:76px;padding:7px}.mode-choice span{font-size:23px}.mode-choice strong{font-size:12px}.pos-context-confirm{align-items:stretch;flex-direction:column}.pos-sales-toolbar .btn{font-size:11px;padding-inline:7px}.productgrid{gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.ops-kpi{padding:9px}.ops-kpi strong{font-size:19px}}

/* POS operation bar: one stable row for touch devices; no second global page scroll. */
.pos-transfer-guide{border:1px solid var(--border);background:var(--surface-alt);border-radius:10px;padding:10px;display:grid;gap:8px;margin:9px 0;min-width:0}
.pos-transfer-guide>small{font-size:11px;color:var(--sub)}
.pos-pay-provider{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--border);padding-top:9px;min-width:0}
.pos-pay-provider>img{width:min(140px,35vw);height:auto;aspect-ratio:1;object-fit:contain;flex:none}
.pos-pay-provider>div{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}
.pos-pay-provider small{color:var(--sub);font-size:11px}
.receipt-print-body{background:#e9edf3;color:#101820;font:13px/1.43 Arial,sans-serif;padding:20px;margin:0}
.receipt-actions{max-width:750px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.receipt-actions form{display:flex;align-items:center;gap:7px}
.receipt-actions select{width:auto!important;min-width:135px}
.receipt-paper{box-sizing:border-box;width:min(var(--receipt-width),100%);max-width:100%;margin:auto;padding:3.5mm 2.5mm;border:1.5px solid #141414;background:#fff;box-shadow:0 2px 15px #0002;color:#111;overflow-wrap:anywhere}
.receipt-print-body.size-A5 .receipt-paper,.receipt-print-body.size-A4 .receipt-paper{padding:9mm 8mm}
.receipt-heading{text-align:center;display:grid;justify-items:center;gap:2px;margin-bottom:10px}
.receipt-heading img{max-height:48px;max-width:72%;object-fit:contain;margin-bottom:3px}
.receipt-heading>strong{font-size:17px}
.receipt-heading>small{font-size:10px}
.receipt-heading h1{font-size:15px;margin:9px 0 0;letter-spacing:.3px}
.receipt-meta{display:grid;gap:2px;font-size:11px;border-top:1px dashed #777;padding:8px 0}
.receipt-items{width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed}
.receipt-items th{text-align:left;border-bottom:1px dashed #777;padding:6px 3px}
.receipt-items td{border-bottom:1px dotted #ccc;vertical-align:top;padding:7px 3px}
.receipt-items th:nth-child(1),.receipt-items td:nth-child(1){width:55%}
.receipt-items th:nth-child(2),.receipt-items td:nth-child(2){width:10%;text-align:center}
.receipt-items th:nth-child(3),.receipt-items td:nth-child(3){width:35%;text-align:right}
.receipt-items td small{display:block;color:#555;font-size:9px}
.receipt-fee{display:flex;justify-content:space-between;gap:8px;padding:5px 3px;font-size:11px}
.receipt-total{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:11px 0 8px;border-top:1px solid #333;font-weight:700}
.receipt-total strong{font-size:19px;white-space:nowrap}
.receipt-method{font-size:11px}
.receipt-qr{text-align:center;display:grid;justify-items:center;gap:4px}
.receipt-qr img{width:min(170px,80%);max-height:180px;object-fit:contain}
.receipt-qr small{font-size:10px}
.receipt-paper footer{text-align:center;font-size:11px;line-height:1.5;border-top:1px dashed #777;padding-top:12px;margin-top:12px}
.receipt-paper footer small{display:block;font-size:9px;margin-top:8px}
@media(max-width:790px){

 
 
 
 .pos-context{padding:6px}
 .pos-context-details{min-height:0;flex:1}
 .pos-floor-toolbar{flex-wrap:wrap;gap:5px}
 .pos-floor-toolbar h3{font-size:12px}
 .pos-floor-filters{flex:1 1 100%;max-width:none}
 .pos-floor-filters select{width:38%}
 .floor-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:66px;gap:5px}
 .floor-table{min-height:64px}
 .pos-context-confirm{gap:4px;padding-top:5px;margin-top:3px}
 .pos-context-confirm .btn{min-height:38px}
 .pos-head{margin-bottom:4px}
 .mode-choice{min-height:74px;padding:5px}
 .posbill{bottom:calc(58px + env(safe-area-inset-bottom));max-height:calc(100dvh - 76px - env(safe-area-inset-bottom))}
 .productgrid{padding-bottom:calc(65px + env(safe-area-inset-bottom))}
}
@media print{
 .receipt-print-body{margin:0;padding:0;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .receipt-actions{display:none!important}
 .receipt-paper{box-shadow:none!important;max-width:100%;padding:2mm 1.5mm;border:1.5px solid #111}
 .receipt-print-body.size-A5 .receipt-paper,.receipt-print-body.size-A4 .receipt-paper{padding:8mm}
 .receipt-paper tr,.receipt-paper .receipt-total,.receipt-paper .receipt-qr{break-inside:avoid}
}
@media(prefers-reduced-motion:reduce){.posbill{transition:none}.floor-table.unpaid:before{animation:none}}

@media(max-width:790px){.pos-active .main{padding-bottom:0!important;height:100dvh;min-height:0;overflow:hidden}}

/* V0.5.0 — POS design tokens: exclusive modes, one business engine. */
.pos-workspace{--pos-accent:#e11d48;background:var(--pos-workspace-bg,var(--bg));border-radius:12px}
.pos-workspace[data-pos-background=clean]{--pos-workspace-bg:linear-gradient(145deg,#f9fbfd,#edf1f7)}
.pos-workspace[data-pos-background=ocean]{--pos-workspace-bg:linear-gradient(135deg,#e8f6fe,#dfeafa)}
.pos-workspace[data-pos-background=rose]{--pos-workspace-bg:linear-gradient(135deg,#fff3f5,#ffe4ec)}
.pos-workspace[data-pos-background=midnight]{--pos-workspace-bg:linear-gradient(125deg,#111b31,#23334a);--surface:#18243a;--surface-alt:#222e43;--text:#f8fafc;--sub:#c0ccdc;--border:#3b4a60;color:var(--text)}
.pos-workspace[data-pos-background=aurora]{--pos-workspace-bg:radial-gradient(ellipse at 18% 20%,rgba(196,181,253,.56),transparent 58%),radial-gradient(ellipse at 85% 75%,rgba(125,211,252,.5),transparent 62%),#f8fafc}
.pos-workspace .mode-choice.selected,.pos-workspace .floor-table.selected{border-color:var(--pos-accent)}
.pos-workspace .posbill-actions .btn.primary{background:var(--pos-accent)}
.pos-workspace[data-pos-table-style=status] .floor-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.pos-workspace[data-pos-table-style=status] .floor-table{min-height:110px;font-size:14px;border-width:2px}
.pos-workspace[data-pos-table-style=list] .floor-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-rows:auto;align-content:start}
.pos-workspace[data-pos-table-style=list] .floor-table{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:10px}
.pos-workspace[data-pos-table-style=area] .floor-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}
.pos-workspace[data-pos-table-style=area] .floor-table{border-left-width:5px}
.pos-workspace[data-pos-table-style=floorplan] .floor-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:16px;align-content:start;background-image:linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px);background-size:28px 28px}
.pos-workspace[data-pos-table-style=floorplan] .floor-table{border-radius:28px;min-height:94px;box-shadow:0 5px 12px #0000000d}
.pos-workspace[data-pos-product-style=photo] .producttile .tileicon{font-size:36px;min-height:60px;display:grid;place-items:center}
.pos-workspace[data-pos-product-style=photo] .productgrid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.pos-workspace[data-pos-product-style=list] .productgrid{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}
.pos-workspace[data-pos-product-style=list] .product-add{display:flex;align-items:center;gap:12px;min-height:58px;text-align:left}
.pos-workspace[data-pos-product-style=list] .product-add .tileicon{font-size:21px}.pos-workspace[data-pos-product-style=list] .product-add small,.pos-workspace[data-pos-product-style=list] .product-add .add-caption{display:none}
.pos-workspace[data-pos-product-style=category] .posproducts{display:flex;flex-direction:column}
.pos-workspace[data-pos-product-style=category] #pos-cats{flex-direction:row;overflow-x:auto;max-height:none}
.pos-workspace[data-pos-product-style=favorites] .producttile:nth-child(-n+6){border-color:var(--pos-accent);background:rgba(225,29,72,.04)}
.pos-config-jump{display:flex;gap:7px;flex-wrap:wrap;position:sticky;top:54px;background:var(--bg);z-index:8;padding:5px 0 10px}
.pos-config-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(0,1.3fr);gap:14px;align-items:start}
.pos-config-grid>.panel{margin:0;min-width:0}
.vietqr-preview-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,.8fr);gap:12px;margin:10px 0 18px}
.vietqr-picker{display:grid;gap:9px;align-content:start}
.vietqr-preview-frame{aspect-ratio:1;display:grid;place-items:center;text-align:center;padding:12px;border:1px dashed var(--border);border-radius:12px;min-width:0;background:var(--surface-alt);font-size:12px;color:var(--sub)}
.vietqr-preview-frame img{width:100%;height:100%;max-width:270px;object-fit:contain}
.pos-design-studio{margin-top:14px}.pos-design-form{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:10px}.pos-design-compact-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:12px;align-items:stretch}.pos-design-choice-list{display:grid;gap:8px;align-content:start}.pos-design-list-row{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(0,1.35fr);align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt);min-width:0}.pos-design-list-row strong{font-size:12px}.pos-design-list-row select{min-width:0;max-width:100%;font-size:12px}.pos-design-compact-layout .pos-design-preview{margin:0;min-width:0;align-content:start}.pos-style-fieldset{border:1px solid var(--border);border-radius:12px;padding:10px;min-width:0}
.pos-style-fieldset legend{font-size:13px;font-weight:800;padding:0 6px}
.pos-style-options{display:grid;grid-template-columns:1fr;gap:3px;max-height:142px;overflow-y:auto}
.pos-style-option{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid var(--border);border-radius:9px;cursor:pointer;min-width:0;color:var(--text)}
.pos-style-option:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.pos-style-option input{accent-color:var(--brand)}.pos-style-option strong{font-size:11px;line-height:1.35}
.pos-style-swatch{width:20px;height:20px;flex:none;border-radius:7px;background:linear-gradient(135deg,#fff,#edf1f5);border:1px solid #d8dce5}
.swatch-ocean{background:linear-gradient(135deg,#dbeafe,#bae6fd)}.swatch-rose{background:linear-gradient(135deg,#fff1f2,#fecdd3)}
.swatch-midnight{background:linear-gradient(135deg,#0f172a,#334155)}.swatch-aurora{background:linear-gradient(135deg,#ddd6fe,#bae6fd,#f8fafc)}
.swatch-status,.swatch-photo{background:repeating-linear-gradient(135deg,#f8fafc 0 9px,#dbeafe 9px 19px)}
.swatch-area,.swatch-category{background:linear-gradient(90deg,#fda4af 28%,#e2e8f0 28%)}.swatch-floorplan{background-image:linear-gradient(#ddd 1px,transparent 1px),linear-gradient(90deg,#ddd 1px,transparent 1px);background-size:12px 12px}.swatch-list{background:repeating-linear-gradient(0deg,#f1f5f9 0 7px,#94a3b8 7px 9px)}.swatch-favorites{background:linear-gradient(120deg,#ffe4e6 40%,#dbeafe 40%)}
.pos-design-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.pos-design-actions label{flex:1 1 170px}.pos-design-actions input[type=color]{height:43px;padding:3px;cursor:pointer}
.shift-summary-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.shift-summary-grid>.panel{min-width:0}
.shift-evidence-progress{display:grid;gap:5px;margin:12px 0}.shift-evidence-progress progress{width:100%;height:11px;accent-color:var(--brand)}
.shift-checklist{line-height:2;padding-left:23px}.shift-evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.shift-evidence-card{border:1px solid var(--border);border-radius:12px;padding:11px;display:grid;gap:10px;align-content:start;min-width:0}
.shift-evidence-card header{display:grid;gap:3px}.shift-evidence-card header strong{font-size:14px}.shift-evidence-card header small{font-size:11px}
.shift-photo-count{color:var(--brand);font-weight:800;font-size:11px}.shift-camera-box{aspect-ratio:16/9;border-radius:10px;background:var(--surface-alt);border:1px dashed var(--border);display:grid;place-items:center;overflow:hidden;position:relative;text-align:center;color:var(--sub)}
.shift-camera-box video,.shift-camera-box img{width:100%;height:100%;object-fit:cover;grid-area:1/1}.shift-camera-box span{font-size:12px;grid-area:1/1}.shift-camera-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.shift-evidence-card>button{width:100%}
@media(max-width:1040px){.pos-config-grid{grid-template-columns:1fr}.shift-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:790px){
.pos-workspace[data-pos-product-style=list] .productgrid{grid-template-columns:1fr}
.pos-workspace[data-pos-product-style=photo] .productgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.shift-summary-grid,.shift-evidence-grid{grid-template-columns:1fr}.pos-style-options{grid-template-columns:repeat(2,minmax(0,1fr))}.vietqr-preview-layout{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.pos-workspace *{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.pos-design-preview{border:1px solid var(--border);border-radius:12px;padding:14px;display:grid;gap:9px;--pos-accent:#e11d48}
.pos-design-mini-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.pos-design-mini-layout span{border:2px solid var(--pos-accent);background:var(--surface);border-radius:9px;padding:18px 8px;min-height:65px;display:grid;place-items:center;text-align:center;font-size:11px;color:var(--text)}
.pos-design-preview[data-pos_background=ocean]{background:#e0f2fe}.pos-design-preview[data-pos_background=rose]{background:#ffe4e6}.pos-design-preview[data-pos_background=midnight]{background:#172438}.pos-design-preview[data-pos_background=aurora]{background:linear-gradient(135deg,#ddd6fe,#bae6fd)}
.pos-design-preview[data-pos_table_style=list] .pos-design-mini-layout span:first-child{border-radius:4px;text-align:left}
.pos-design-preview[data-pos_table_style=floorplan] .pos-design-mini-layout span:first-child{border-radius:35px}
.pos-design-preview[data-pos_table_style=status] .pos-design-mini-layout span:first-child{min-height:85px}
.pos-design-preview[data-pos_product_style=photo] .pos-design-mini-layout span:nth-child(2){min-height:85px}
.pos-design-preview[data-pos_product_style=list] .pos-design-mini-layout span:nth-child(2){border-radius:4px}
@media(max-width:500px){.pos-design-mini-layout{grid-template-columns:1fr 1fr}.pos-design-mini-layout span:last-child{grid-column:1/-1}}
/* Persistent desktop step navigation; mobile overrides position in its own breakpoint. */
.pos-workspace{position:relative}



@media(max-width:790px){}

/* V0.5.1: unified POS header, 16:9 tiles and lightweight live notifications. */
.pos-head{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:52px;padding:7px 11px}
.pos-head-title{min-width:0;display:grid;gap:3px;flex-shrink:0}
.pos-head-title small{font-size:11px;color:var(--sub)}
.pos-live-status{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap;overflow-x:auto;scrollbar-width:thin}
.pos-live-status>*{flex:none}.pos-live-status time{font-size:11px;font-weight:750;font-variant-numeric:tabular-nums}
.pos-head-link,.pos-live-status button{border:1px solid var(--border);border-radius:8px;padding:5px 7px;background:var(--surface);color:var(--text);text-decoration:none;font-size:11px;font-weight:650;min-height:30px}
.pos-head-link b{font-variant-numeric:tabular-nums;color:var(--brand)}
.pos-head-link.pos-has-held{border-color:#dc2626;background:rgba(220,38,38,.10);animation:tko-held-pulse 2.8s ease-in-out infinite}
@keyframes tko-held-pulse{50%{box-shadow:0 0 0 3px rgba(220,38,38,.16)}}
#pos-connection{font-size:10px;color:var(--sub)}#pos-event-toast{position:absolute;z-index:65;top:57px;right:12px;max-width:min(340px,90%);border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:9px;box-shadow:0 8px 24px #0002;color:var(--text);font-size:12px}
.pos-head .pos-channel-settings{display:flex;align-items:center;flex:none;border:1.5px solid var(--brand);border-radius:9px;padding:2px 5px;margin:0;background:color-mix(in srgb,var(--brand) 7%,var(--surface));min-width:0}.pos-channel-settings label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:750;margin:0;color:var(--brand)}.pos-head .pos-channel-settings select{width:auto;max-width:155px;height:30px;min-height:30px;min-width:98px;padding:4px 20px 4px 6px;font-size:11px;background:var(--surface)}
.product-add .tile-photo,.product-add .tile-photo-placeholder{width:100%;aspect-ratio:16/9;height:auto;max-height:none;display:grid;place-items:center;object-fit:cover;border-radius:7px;background:var(--surface-alt);margin-bottom:4px}
.product-add .tile-photo-placeholder{font-size:28px}.producttile{min-width:0}.product-add strong{overflow-wrap:anywhere}
.product-photo-form{display:grid;gap:7px;margin-top:10px}.product-photo-form label{font-size:11px}.product-photo-form input{font-size:11px;max-width:240px}.product-photo-form button{font-size:11px}
.pos-saved{display:flex;flex-direction:column;max-height:100dvh;overflow:hidden}
.pos-saved>.panel,.pos-saved>.pos-saved-grid{min-height:0;overflow-y:auto;flex:1}

.receipt-paper{overflow-wrap:break-word;word-break:normal}.receipt-items td:last-child,.receipt-total strong{white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums}.receipt-items td:first-child{overflow-wrap:anywhere}
.receipt-qr img{width:min(34mm,100%);height:auto;aspect-ratio:1;object-fit:contain}.receipt-qr small{display:block;font-size:9px;overflow-wrap:anywhere}
#receipt-print-status{font-size:11px;color:#475569;max-width:250px}
@media(max-width:790px){.pos-head{min-height:49px;padding:5px 7px}.pos-head-title strong{font-size:12px}.pos-head-title small{font-size:10px}.pos-live-status{gap:3px}.pos-live-status time{font-size:10px}.pos-live-status .pos-head-link,.pos-live-status button{font-size:10px;padding:4px;min-height:28px}.pos-head #pos-connection,.pos-live-status a[href="/admin"]{display:none}.pos-saved>.panel,.pos-saved>.pos-saved-grid{padding-bottom:65px}}
@media(prefers-reduced-motion:reduce){.pos-head-link.pos-has-held{animation:none}}

/* Single install wizard, progressive enhancement keeps a no-JS full form accessible. */
.install-body{min-height:100dvh;background:radial-gradient(circle at 95% 8%,rgba(225,29,72,.10),transparent 40%),linear-gradient(145deg,#f9fafb,#edf2f8)}
.installer-wizard{width:min(950px,calc(100vw - 24px));max-width:950px;margin:20px auto 36px;padding:0;overflow:hidden;box-shadow:0 22px 60px rgba(21,34,58,.10)}
.install-cover{display:flex;gap:28px;justify-content:space-between;align-items:center;padding:25px 28px 15px;background:linear-gradient(112deg,#fff,#fff1f4);border-bottom:1px solid var(--border)}
.install-cover .brand{min-width:160px;margin:0}.install-cover h1{font-size:22px;margin:8px 0}.install-version{color:#be123c;font-size:11px;font-weight:850;letter-spacing:.5px}
.install-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:13px 25px 6px}.install-step-badge{display:grid;justify-items:center;gap:4px;align-content:start;padding:9px 4px;min-width:0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--sub)}.install-step-badge b{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:var(--surface-alt);border:1px solid var(--border);font-variant-numeric:tabular-nums}.install-step-badge span{font-size:11px;text-align:center}.install-step-badge.is-current{background:rgba(225,29,72,.08);color:var(--brand)}.install-step-badge.is-current b{background:var(--brand);color:#fff;border-color:var(--brand)}
.install-progress{display:flex;align-items:center;gap:10px;padding:5px 25px 12px}.install-progress progress{width:100%;height:8px;accent-color:var(--brand)}.install-progress span{white-space:nowrap;font-size:11px;font-weight:700;color:var(--sub)}
.install-form{padding:5px 27px}.install-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:22px;min-height:260px}.install-panel[hidden]{display:none}.install-section-head{display:flex;align-items:start;gap:11px;margin-bottom:16px}.install-section-head h2{font-size:17px;margin:0 0 5px}.install-section-head p{font-size:12px;color:var(--sub);margin:0}.install-section-number{display:grid;place-items:center;background:rgba(225,29,72,.10);border-radius:10px;color:var(--brand);height:36px;min-width:36px;font-weight:900}.install-probe{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:15px}.install-demo-choices{display:grid;gap:8px}.install-demo-choices label{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;padding:12px;color:var(--text)}.install-demo-choices input{width:auto!important;min-height:0!important;margin:0}.install-demo-choices small{font-weight:400}.install-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.install-review div{padding:11px;background:var(--surface-alt);border:1px solid var(--border);border-radius:9px}.install-commit{margin:10px 0 0}.install-footer{display:flex;align-items:center;gap:9px;padding:15px 27px 26px}.install-footer>span{flex:1;text-align:center}.installer-wizard>p.muted{padding:0 27px 25px;font-size:11px;margin:0}
@media(max-width:700px){.installer-wizard{margin:10px auto}.install-cover{padding:16px;display:block}.install-cover .brand{margin-bottom:15px}.install-steps{padding:10px 12px;gap:2px}.install-step-badge span{font-size:9px}.install-step-badge{padding:6px 1px}.install-step-badge b{width:26px;height:26px;font-size:11px}.install-progress{padding-inline:12px}.install-form{padding-inline:11px}.install-panel{padding:13px;min-height:260px}.install-panel .formgrid{grid-template-columns:1fr}.install-footer{padding:10px 12px 18px}.install-footer>span{display:none}.install-review{grid-template-columns:1fr}}

.pub-product-art{aspect-ratio:16/9;height:auto;min-height:0}.pub-product-photo{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;border-radius:inherit}.pub-product-art:has(.pub-product-photo){overflow:hidden}

/* V0.6.0 components: unique rules only; canonical design tokens inherited from app.css. */
.range-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0}
.row-buttons{display:flex;flex-wrap:wrap;gap:7px}.row-buttons>.btn{flex:1 1 112px}
#table-editor-panel{min-width:0}#table-single-editor{min-width:0}#table-status-editor{margin-top:8px}
.admin-table-card{border-top-width:4px;border-left-width:5px;min-width:0;overflow-wrap:anywhere}.admin-table-card small,.floor-table small{color:var(--zone-accent,#64748b);font-weight:800}.admin-table-card.unpaid span{color:#dc2626;font-weight:800}.admin-table-card.reserved span{color:#b45309;font-weight:800}
.admin-table-card strong{overflow-wrap:anywhere}
.admin-floor-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,145px),1fr));min-width:0}
.excel-card .formstack{margin-top:12px}.excel-card label{min-width:0}.excel-card button{max-width:100%}
#payroll-live-data{min-width:0}
@media(max-width:660px){.admin-floor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.range-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.row-buttons>.btn{flex:1 1 100%}#table-single-editor label{flex-basis:44%}.ops-filters>.btn{max-width:100%}}

/* V0.7.0 operational controls: one scoped component per new responsibility. */
.operations-today{margin-bottom:16px}.ops-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.ops-header h2{margin:0}.ops-header p{margin:4px 0;color:var(--sub);font-size:12px}
.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:12px 0;min-width:0}.week-day{min-width:0;border:1px solid var(--border);border-radius:10px;padding:9px 5px;background:var(--surface-alt);display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}.week-day strong{font-size:13px}.week-day small,.week-day span{font-size:10px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;max-width:100%}
.period-links{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.period-links .btn{font-size:12px;min-height:32px}.audit-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.audit-charts>.panel{min-width:0}.audit-charts h2{font-size:13px}.audit-bars{display:grid;gap:9px}.audit-bar{display:grid;grid-template-columns:minmax(70px,1fr) minmax(50px,2fr) 32px;align-items:center;gap:8px;font-size:11px}.audit-bar>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.audit-track{background:var(--surface-alt);height:12px;border-radius:6px;overflow:hidden}.audit-track>i{display:block;height:100%;background:var(--brand);border-radius:inherit}.audit-bar strong{text-align:right;font-variant-numeric:tabular-nums}
.branch-switch{margin:0;min-width:0;max-width:180px}.branch-switch select{width:100%;min-width:90px;max-width:180px;min-height:34px;padding:5px 21px 5px 8px;border-radius:8px;font-size:11px;white-space:nowrap}.device-gate{max-width:700px;margin-inline:auto}.device-gate button{min-height:42px}.admin-mobile-footer{display:none}
@media(max-width:1100px){.audit-charts{grid-template-columns:1fr}.branch-switch{max-width:125px}}
@media(max-width:790px){.week-strip{gap:3px}.week-day{padding:7px 2px}.week-day strong{font-size:11px}.week-day small,.week-day span{font-size:9px}.ops-header{align-items:flex-start;flex-wrap:wrap}.branch-switch{max-width:100px}.branch-switch select{max-width:100px;font-size:10px}.admin-mobile-footer{position:fixed;bottom:0;left:0;right:0;z-index:70;display:grid;grid-template-columns:repeat(var(--footer-count,5),minmax(0,1fr));gap:3px;padding:5px 7px calc(5px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -5px 20px rgba(0,0,0,.08)}.admin-mobile-footer>:is(a,button){border:0;background:transparent;cursor:pointer;display:grid;grid-template-rows:22px 15px;justify-items:center;align-items:center;gap:2px;min-width:0;text-decoration:none!important;overflow:hidden;border-radius:9px;padding:4px 1px;font-size:10px;color:var(--text)}.admin-mobile-footer>:is(a,button) svg{width:20px;height:20px;color:white;border-radius:6px;padding:3px;box-sizing:content-box;background:#2563eb}.admin-mobile-footer>:nth-child(2) svg{background:#e11d48}.admin-mobile-footer>:nth-child(3) svg{background:#059669}.admin-mobile-footer>:nth-child(4) svg{background:#7c3aed}.admin-mobile-footer>:nth-child(5) svg{background:#d97706}.admin-mobile-footer>:is(a,button) span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-weight:700}.admin-mobile-footer>:is(a,button).active{background:var(--surface-alt)}.workspace .main{padding-bottom:calc(92px + env(safe-area-inset-bottom))}}
@media(max-width:390px){.admin-mobile-footer>:is(a,button){font-size:9px}.week-day span{font-size:8px}.branch-switch{max-width:80px}.branch-switch select{max-width:80px}}
@media(prefers-reduced-motion:reduce){.audit-track i,.admin-mobile-footer a{transition:none!important}}

/* v0.8: one token set across Admin, POS, website, installer */

.brandmark,.btn.primary{background:var(--brand-primary)}
.navlink.active{border-inline-start:3px solid var(--brand-secondary)}



.brand-default-preview{width:min(100%,280px);height:auto;display:block;margin:10px 0}
.default-photo-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.default-photo-showcase img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.pos-customer-optional{margin:4px 0;padding:5px 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-alt);flex:none}.pos-customer-optional>summary{cursor:pointer;font-weight:700;color:var(--text);font-size:12px;min-height:26px;display:list-item}.pos-customer-optional>summary span{font-size:10px;color:var(--sub);font-weight:600;float:right}.pos-customer-optional[open]{padding-bottom:8px}.pos-customer-optional .formgrid{gap:7px;margin:6px 0}.pos-customer-optional label{font-size:11px}.pos-customer-optional input:not([type=checkbox]){min-height:34px;padding:7px 9px}.pos-customer-optional .checklabel{margin:3px 0}
.pos-voucher{display:block;margin:6px 0;font-size:12px}.pos-voucher input{width:100%}
.receipt-paper{border:1.5px solid #222!important;box-sizing:border-box;padding:3mm!important;overflow-wrap:anywhere}
.receipt-paper .receipt-items{table-layout:fixed;width:100%}.receipt-paper .receipt-items th:last-child,.receipt-paper .receipt-items td:last-child{text-align:right;white-space:nowrap}
.receipt-paper .receipt-heading img{max-height:18mm;max-width:75%;object-fit:contain}
.receipt-style-compact .receipt-heading img{max-height:12mm}.receipt-style-branding .receipt-heading img{max-height:26mm}
.receipt-style-qr-focus .receipt-qr{border:1px solid #222;padding:2mm;border-radius:3mm}.receipt-style-qr-focus .receipt-qr img{width:36mm;max-width:95%;height:auto}
@media print{.receipt-paper{border:1.5px solid #222!important;margin:0 auto;max-width:100%;break-inside:avoid;print-color-adjust:exact}.receipt-actions{display:none!important}}

.brand-logo-header{width:56px;max-height:48px;object-fit:contain;display:block;flex:none}.sidebar .brand-logo-header{width:54px}.publicheader .brand-logo-header{width:66px;max-height:48px}

.receipt-design-preview{max-width:285px;min-width:0;margin:6px auto;padding:15px;border:1.5px solid #333;border-radius:4px;background:#fff;color:#111;display:grid;gap:9px;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.receipt-preview-top{text-align:center;display:grid;justify-items:center;gap:3px}.receipt-preview-top img{max-width:110px;max-height:52px;object-fit:contain}.receipt-preview-top small,.receipt-preview-qr small{font-size:10px}.receipt-preview-line{display:flex;align-items:start;justify-content:space-between;gap:6px;padding-bottom:5px;border-bottom:1px dashed #888}.receipt-preview-line b{white-space:nowrap}.receipt-preview-total{font-weight:800}.receipt-preview-qr{text-align:center;display:grid;justify-items:center;gap:2px}.receipt-preview-qr span{font-size:52px;line-height:1}.receipt-design-preview[data-style=compact] .receipt-preview-top img{max-height:28px}.receipt-design-preview[data-style=branding] .receipt-preview-top img{max-height:72px}.receipt-design-preview[data-style=qr-focus] .receipt-preview-qr{border:1px solid #222;padding:6px}.receipt-design-preview[data-paper=A7]{max-width:185px}.receipt-design-preview[data-paper=A6]{max-width:230px}.receipt-design-preview[data-paper=58]{max-width:190px}.receipt-design-preview[data-paper=80]{max-width:245px}


/* V0.8.1: one compact employee workspace, single shared staff drawer and account avatar. */
.account-trigger{display:inline-flex!important;align-items:center;gap:7px;max-width:180px;min-width:34px;text-decoration:none;color:var(--text);white-space:nowrap}
.account-avatar{display:inline-grid;place-items:center;flex:0 0 32px;width:32px;height:32px;overflow:hidden;border-radius:50%;background:var(--brand-primary);color:#fff;font-size:14px;font-weight:700}
.account-avatar img,.account-avatar-large img{width:100%;height:100%;object-fit:cover;display:block}
.account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.account-workspace{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:12px;align-items:start}
.account-workspace>*{min-width:0}.account-identity{display:grid;justify-items:start;gap:10px}.account-identity form{width:100%}
.account-avatar-large{display:grid;place-items:center;width:86px;height:86px;border-radius:50%;overflow:hidden;background:var(--brand-primary);font-size:38px;color:#fff}
.staff-workspace{display:grid;gap:12px;min-width:0;max-width:1460px;margin:0 auto}
.staff-workspace>*{min-width:0}.staff-page-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.staff-page-title h1{font-size:23px;margin:0}.staff-page-title p{font-size:12px;color:var(--sub);margin:4px 0}
.staff-attendance{display:grid;gap:12px}.staff-clock-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.staff-clock-head h2{font-size:16px;margin:0}
.staff-running-clock{font-variant-numeric:tabular-nums;letter-spacing:.07em;font-size:clamp(28px,4vw,43px);font-weight:750;line-height:1.3;color:var(--brand-primary)}
.staff-attendance-action{min-height:44px;max-width:360px;width:100%}.staff-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.staff-kpis>*{min-width:0}.staff-kpis strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.staff-history-mobile{display:none}.staff-management-metrics>*{min-width:0}
.staff-detail-overlay[hidden]{display:none!important}.staff-detail-overlay{position:fixed;inset:0;z-index:190;display:flex;justify-content:flex-end}
.staff-detail-shade{position:absolute;inset:0;background:rgba(15,23,42,.52)}.staff-detail-drawer{position:relative;width:min(580px,100vw);height:100dvh;overflow:auto;overscroll-behavior:contain;background:var(--surface);color:var(--text);box-shadow:-15px 0 45px #0002;padding:18px;min-width:0}
.staff-detail-drawer>header{position:sticky;top:-18px;z-index:2;padding:12px 0;background:var(--surface);display:flex;justify-content:space-between;align-items:center;gap:10px}
.staff-detail-drawer h2{font-size:18px;margin:0}.staff-detail-drawer details{padding:12px 0;border-top:1px solid var(--border)}.staff-detail-drawer summary{font-weight:700;cursor:pointer;margin-bottom:8px}
.staff-detail-drawer form{margin-bottom:10px}.staff-drawer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.staff-drawer-fields>*{min-width:0}.staff-drawer-meta{display:grid;gap:3px;margin-bottom:12px;overflow-wrap:anywhere}.staff-drawer-meta small{color:var(--sub)}
.staff-audit-list{padding-left:20px;margin:8px 0;display:grid;gap:7px}.staff-audit-list li{font-size:12px}.staff-audit-list span{display:block;color:var(--sub);font-size:11px}
.staff-drawer-open{overflow:hidden}.staff-list-table td{vertical-align:middle}.staff-list-table td:first-child{font-variant-numeric:tabular-nums}
@media(max-width:1100px){.account-name{display:none}.account-trigger{max-width:38px}}
@media(max-width:790px){.staff-workspace{gap:9px}.staff-page-title h1{font-size:19px}.staff-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-history-desktop{display:none}.staff-history-mobile{display:grid;gap:7px}
.staff-history-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--border);padding:10px;border-radius:9px;font-size:11px;min-width:0}
.staff-history-row>div{min-width:0}.staff-history-row strong,.staff-history-row small{display:block;overflow-wrap:anywhere}.staff-history-row small{color:var(--sub);margin-top:2px}.staff-history-row>b{white-space:nowrap;font-variant-numeric:tabular-nums}
.staff-attendance-action{max-width:none}.staff-drawer-fields{grid-template-columns:1fr}.account-workspace{grid-template-columns:minmax(0,1fr)}.staff-detail-drawer{padding:13px}
.staff-management .tablewrap{max-width:100%;overflow-x:auto}.staff-list-table{min-width:590px}.staff-workspace .period-links{display:flex;gap:5px;flex-wrap:nowrap;overflow-x:auto;max-width:100%}.staff-workspace .period-links .btn{flex:1 0 auto;white-space:nowrap;font-size:11px;padding:8px 9px}
}
@media(max-width:390px){.staff-history-row{grid-template-columns:20px minmax(0,1fr) auto;padding:7px;gap:5px;font-size:10px}.account-avatar{width:30px;height:30px;flex-basis:30px}}

/* V0.9.0: POS actions share one responsive footer; color denotes navigation, not payment status. */








.ops-metrics,.metrics,.ops-tabs,.ops-filters,.formgrid{min-width:0}
@media(max-width:790px){}
.purchase-chart{display:grid;gap:8px}.purchase-chart-row{display:grid;grid-template-columns:minmax(95px,28%) minmax(0,1fr) auto;gap:9px;align-items:center;font-size:12px}.purchase-chart-track{background:var(--surface-alt);border-radius:6px;height:13px;overflow:hidden}.purchase-chart-bar{display:block;height:100%;background:var(--brand);border-radius:6px}.purchase-chart-row>*{min-width:0;overflow-wrap:anywhere}
@media print{.payslip-print{max-width:190mm;margin:0 auto;color:#000;background:#fff;border:1.5px solid #888}.no-print,.sidebar,.topbar,.mobile-footer{display:none!important}}

/* V0.9.1: compact option groups share the canonical POS design tokens. */
@media(max-width:920px){.pos-design-compact-layout{grid-template-columns:minmax(0,1fr)}.pos-style-options{max-height:unset;grid-template-columns:repeat(2,minmax(0,1fr))}}
.receipt-customer-top{font-weight:600;border-block:1px dashed #999;margin:5px 0;padding:5px 0}.print-permission-gate{max-width:620px;margin:8vh auto;padding:20px}.print-permission-gate textarea{width:100%}

/* V0.9.2 canonical role-aware POS bottom navigation in natural flex flow.
   Unlike the old absolute/fixed footer it consumes layout height, not sales content. */
.pos-mobile-nav{display:none;flex:none;min-width:0;background:var(--surface);border-top:1px solid var(--border);gap:3px;grid-template-columns:repeat(5,minmax(0,1fr));padding:3px 4px calc(3px + env(safe-area-inset-bottom,0px));margin-top:auto;box-shadow:0 -3px 12px rgba(0,0,0,.06)}
.pos-mobile-nav>:is(button,a){display:grid;align-content:center;justify-items:center;min-height:42px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;border:0;border-radius:8px;font-size:clamp(9px,2.5vw,11px);font-weight:700;line-height:1.2;padding:5px 2px;cursor:pointer}
.pos-mobile-nav>:nth-child(1){background:rgba(37,99,235,.13);color:#2563eb}.pos-mobile-nav>:nth-child(2){background:rgba(5,150,105,.13);color:#059669}.pos-mobile-nav>:nth-child(3){background:rgba(225,29,72,.13);color:#e11d48}.pos-mobile-nav>:nth-child(4){background:rgba(217,119,6,.13);color:#b45309}.pos-mobile-nav>:nth-child(5){background:rgba(124,58,237,.13);color:#7c3aed}
.pos-mobile-nav>:is(button,a).is-current,.pos-mobile-nav>:is(button,a):focus-visible{outline:2px solid currentColor;outline-offset:-2px}
@media(max-width:790px){
  .pos-workspace{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;border-radius:0}
  .pos-workspace #pos-form{flex:1 1 0;min-height:0;overflow:hidden;padding-bottom:0}
  .pos-mobile-nav{display:grid;position:relative;inset:auto;z-index:4;min-height:50px;max-height:calc(66px + env(safe-area-inset-bottom,0px))}
  .pos-workspace .poslayout{flex:1;min-height:0;overflow:hidden}
  .pos-workspace .posproducts{height:100%;min-height:0;overflow:hidden}
  .pos-workspace .productgrid{padding-bottom:12px}
  #mobile-cart-toggle.show{display:flex;position:relative;flex:none;min-height:48px}
  .pos-workspace .posbill{z-index:80;bottom:calc(50px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 64px - env(safe-area-inset-bottom,0px));overflow:auto}
  .pos-workspace .posbill:not(.cart-open){visibility:hidden;pointer-events:none;transform:translateY(calc(100% + 85px))}
  .pos-workspace .posbill.cart-open{visibility:visible;pointer-events:auto;transform:translateY(0)}
  .workspace .main{min-width:0;overflow-x:clip;padding-bottom:calc(95px + env(safe-area-inset-bottom,0px))}
  .pos-active .workspace .main{padding:2px 3px 0!important;overflow:hidden;min-height:0;height:100vh;height:100dvh}
  .admin-mobile-footer{min-height:63px;max-width:100vw;overflow:hidden}
  .admin-mobile-footer>:is(a,button) span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
.shift-photo-workspace .shift-evidence-grid{grid-template-columns:minmax(0,1fr);max-width:780px;margin-inline:auto}
.shift-photo-workspace .shift-evidence-card{min-width:0;max-width:780px}
.shift-photo-workspace .shift-evidence-card[hidden]{display:none!important}
.shift-photo-workspace .shift-camera-box{aspect-ratio:16/9;max-height:440px}
.shift-photo-workspace .shift-camera-box :is(video,img){object-fit:cover}
.shift-wizard-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}
.shift-wizard-tab{min-width:0;min-height:42px;border:1px solid var(--border);border-radius:9px;background:var(--surface-alt);color:var(--text);font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shift-wizard-tab.is-active{border-color:var(--brand-primary);background:rgba(225,29,72,.09)}
.shift-wizard-tab.is-complete:before{content:'✓ ';color:var(--success)}
.shift-wizard-tab:disabled{opacity:.4;cursor:not-allowed}
.staff-job-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px}
.staff-job-links>a{display:flex;align-items:center;justify-content:space-between;min-height:45px;border:1px solid var(--border);border-radius:9px;padding:9px 11px;background:var(--surface-alt);font-size:12px;font-weight:700;min-width:0}
.permission-override-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));gap:7px}
.permission-override-row{border:1px solid var(--border);border-radius:9px;padding:8px;display:flex;gap:8px;align-items:center;justify-content:space-between;min-width:0}
.permission-override-row strong{font-size:11px;overflow-wrap:anywhere}
.permission-override-row select{max-width:175px;min-width:125px;min-height:35px;font-size:11px}
@media(max-width:390px){.permission-override-row{flex-wrap:wrap}.permission-override-row select{max-width:100%}.shift-wizard-tab{font-size:10px;padding:5px 2px}}


/* V0.9.3 unified design tokens: no animated layers, the same theme controls all workspaces. */
:root{--pattern-ink:color-mix(in srgb,var(--brand-primary) 9%,transparent);--pattern-ink-2:color-mix(in srgb,var(--brand-secondary) 7%,transparent)}
/* Six selectable pattern styles, separately configurable for sections, KPI cards and sidebar. */
[data-surface-panels="dots"] .panel,[data-surface-cards="dots"] :is(.metric,.ops-kpi),[data-surface-sidebar="dots"] .sidebar{background-image:radial-gradient(circle,var(--pattern-ink) 1px,transparent 1px);background-size:20px 20px}
[data-surface-panels="diagonal"] .panel,[data-surface-cards="diagonal"] :is(.metric,.ops-kpi),[data-surface-sidebar="diagonal"] .sidebar{background-image:repeating-linear-gradient(135deg,var(--pattern-ink) 0px,var(--pattern-ink) 1px,transparent 1px,transparent 20px)}
[data-surface-panels="grid"] .panel,[data-surface-cards="grid"] :is(.metric,.ops-kpi),[data-surface-sidebar="grid"] .sidebar{background-image:linear-gradient(var(--pattern-ink) 1px,transparent 1px),linear-gradient(90deg,var(--pattern-ink) 1px,transparent 1px);background-size:24px 24px}
[data-surface-panels="glow"] .panel,[data-surface-cards="glow"] :is(.metric,.ops-kpi),[data-surface-sidebar="glow"] .sidebar{background-image:radial-gradient(ellipse at top right,var(--pattern-ink),transparent 65%)}
[data-surface-panels="waves"] .panel,[data-surface-cards="waves"] :is(.metric,.ops-kpi),[data-surface-sidebar="waves"] .sidebar{background-image:radial-gradient(ellipse 75% 35% at 105% -5%,var(--pattern-ink),transparent),radial-gradient(ellipse 65% 40% at -10% 110%,var(--pattern-ink-2),transparent)}
[data-surface-panels="clean"] .panel,[data-surface-cards="clean"] :is(.metric,.ops-kpi),[data-surface-sidebar="clean"] .sidebar{background-image:none}
.sidebar{--pattern-ink:color-mix(in srgb,var(--brand-primary) 5%,transparent);--pattern-ink-2:color-mix(in srgb,var(--brand-secondary) 5%,transparent)}
.sidebar .sidebarbottom>a{background:color-mix(in srgb,var(--brand-secondary) 12%,var(--sidebar));color:var(--brand-secondary);border-color:color-mix(in srgb,var(--brand-secondary) 16%,var(--border))}
.sidebar .sidebarbottom button{background:color-mix(in srgb,var(--brand-primary) 11%,var(--sidebar));color:var(--brand-primary);border-color:color-mix(in srgb,var(--brand-primary) 16%,var(--border))}
.sidebar .sidebarbottom>:is(a,form){min-width:0}.sidebar .sidebarbottom form button{width:100%;min-width:0}.sidebar-brand-row .brand{flex:1;min-width:0;max-width:100%}.sidebar-brand-row .brand-logo-header{flex-shrink:0;object-fit:contain;max-width:40px}
/* Account dropdown, accessible through pointer, keyboard and touch. */
.account-dropdown{position:relative;flex:0 0 auto;z-index:112;min-width:0}
.account-dropdown .account-trigger{cursor:pointer;border:1px solid var(--border);background:var(--surface);padding:3px 7px;border-radius:999px;display:flex;align-items:center;max-width:190px;white-space:nowrap;min-height:38px}
.account-menu[hidden]{display:none!important}.account-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:200;display:grid;gap:3px;width:min(290px,calc(100vw - 24px));padding:9px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #0002}
.account-menu a,.account-menu form button{display:flex;width:100%;align-items:center;gap:8px;padding:10px 12px;border:0;border-radius:8px;color:var(--text);background:transparent;text-decoration:none;text-align:left;font-size:12px;font-weight:600;cursor:pointer}
.account-menu a:hover,.account-menu button:hover,.account-menu :focus-visible{background:var(--surface-alt);outline:2px solid var(--brand-primary);outline-offset:-2px}
/* Compact related actions always at end of page, filtered from links already server-rendered. */
.quicklinks-footer{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:50px;padding:9px 12px!important;margin-top:14px;margin-bottom:8px!important}
.quicklinks-footer>strong{font-size:11px;white-space:nowrap;color:var(--sub);margin-right:7px}
.quicklinks-footer>a,.quicklinks>a{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;max-width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt);font-size:11px;font-weight:650;color:var(--text);text-decoration:none;overflow-wrap:anywhere}
.quicklinks-footer>a:hover,.quicklinks>a:hover{color:var(--brand-primary);border-color:var(--brand-primary)}
/* Brand control center, no heavyweight picker components. */
.brand-editor-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.65fr);gap:12px;align-items:start}
.brand-editor-layout>*{min-width:0}.brand-editor-top{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;gap:5px}
.brand-color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.brand-color-choice{display:grid;gap:6px;font-size:11px;font-weight:700}.brand-color-choice input{width:100%;height:44px;cursor:pointer;padding:3px;border:1px solid var(--border);border-radius:9px;background:transparent}.brand-color-choice small{font-size:10px;color:var(--sub)}
.brand-surface-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.brand-surface-grid label{min-width:0}.brand-surface-grid select{max-width:100%;min-width:0;font-size:12px}
.brand-preview{display:grid;grid-template-columns:minmax(72px,.27fr) minmax(0,1fr);gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg);min-height:140px}
.brand-preview-side,.brand-preview-panel,.brand-preview-kpi{padding:14px;border-radius:9px;min-width:0;font-size:11px;font-weight:750;border:1px solid var(--border)}
.brand-preview-side{color:var(--brand-secondary);background:color-mix(in srgb,var(--brand-secondary) 10%,var(--surface))}
.brand-preview-panel{display:grid;align-content:start;gap:12px;background:var(--surface)}.brand-preview-kpi{color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 6%,var(--surface))}
.brand-editor-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.brand-editor-actions>label{flex:1 1 170px;min-width:120px}.brand-editor-actions>.btn{flex:0 1 auto;min-height:40px}
.brand-editor-aside{display:grid;gap:12px;min-width:0}.brand-editor-aside>.panel{margin:0}.brand-editor-aside .default-photo-showcase img{max-width:96px}
/* Preview of the six selectable patterns (the same CSS values as production cards). */
.brand-preview[data-surface-panels="dots"] .brand-preview-panel,.brand-preview[data-surface-cards="dots"] .brand-preview-kpi,.brand-preview[data-surface-sidebar="dots"] .brand-preview-side{background-image:radial-gradient(var(--pattern-ink) 1px,transparent 1px);background-size:16px 16px}
.brand-preview[data-surface-panels="grid"] .brand-preview-panel,.brand-preview[data-surface-cards="grid"] .brand-preview-kpi,.brand-preview[data-surface-sidebar="grid"] .brand-preview-side{background-image:linear-gradient(var(--pattern-ink) 1px,transparent 1px),linear-gradient(90deg,var(--pattern-ink) 1px,transparent 1px);background-size:16px 16px}
.brand-preview[data-surface-panels="diagonal"] .brand-preview-panel,.brand-preview[data-surface-cards="diagonal"] .brand-preview-kpi,.brand-preview[data-surface-sidebar="diagonal"] .brand-preview-side{background-image:repeating-linear-gradient(135deg,var(--pattern-ink) 0 1px,transparent 1px 16px)}
.brand-preview[data-surface-panels="glow"] .brand-preview-panel,.brand-preview[data-surface-cards="glow"] .brand-preview-kpi,.brand-preview[data-surface-sidebar="glow"] .brand-preview-side{background-image:radial-gradient(ellipse at top right,var(--pattern-ink),transparent 70%)}
.brand-preview[data-surface-panels="waves"] .brand-preview-panel,.brand-preview[data-surface-cards="waves"] .brand-preview-kpi,.brand-preview[data-surface-sidebar="waves"] .brand-preview-side{background-image:radial-gradient(ellipse at right top,var(--pattern-ink),transparent 75%),radial-gradient(ellipse at bottom left,var(--pattern-ink-2),transparent 65%)}
/* Media management grid and compact tools. */
.media-workspace{display:grid;gap:10px;min-width:0}.media-summary,.supplier-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.media-summary>*{min-width:0}.media-summary .ops-kpi{padding:10px;min-height:76px}.media-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:8px;padding:10px!important;margin:0!important}
.media-filters{flex:1 1 780px;display:flex;align-items:end;flex-wrap:wrap;gap:6px;margin:0}.media-filters>:is(input,select){flex:1 1 130px;min-width:100px;max-width:240px;height:36px;font-size:11px}.media-filters>button{height:36px}.media-view-switch{display:flex;gap:5px}.media-view-switch .btn{font-size:11px;padding:7px}
.media-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.media-actions details{padding:9px 12px!important;margin:0!important}.media-actions details summary{cursor:pointer;font-weight:750;font-size:12px}.media-actions details form{margin-top:10px}
.media-asset-panel{margin:0!important}.media-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:9px;min-width:0}
.media-asset-card{border:1px solid var(--border);border-radius:10px;min-width:0;padding:8px;background:var(--surface);display:grid;gap:5px;text-decoration:none;color:var(--text)}
.media-asset-thumb{aspect-ratio:16/10;border-radius:7px;overflow:hidden;background:var(--surface-alt);display:grid;place-items:center}
.media-asset-thumb img{display:block;width:100%;height:100%;object-fit:cover}.media-file-symbol{font-size:17px;font-weight:800;color:var(--brand-secondary)}
.media-asset-card strong{font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%}.media-asset-card small{font-size:10px;color:var(--sub);overflow-wrap:anywhere}.media-asset-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:start}
.media-file-ops{min-width:0}.media-file-ops>summary{cursor:pointer;font-size:11px}.media-file-ops form{margin-top:5px;max-width:100%}
/* Compact suppliers and orders with details only for selected record. */
.supplier-tabs{margin:0 0 8px}.supplier-kpis .ops-kpi{padding:10px;min-width:0}.supplier-directory{margin:0 0 10px!important}.supplier-directory>.ops-filters{margin-bottom:8px}.supplier-detail-panel,.supplier-new{margin:9px 0!important}.supplier-new>summary{cursor:pointer;font-weight:750}.supplier-detail-panel .formgrid>*{min-width:0}
.order-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.order-kpi-grid .ops-kpi{padding:11px;min-width:0}
.order-compact-filters{display:flex;flex-wrap:wrap;align-items:end;gap:7px;padding:10px!important;margin:9px 0!important}.order-compact-filters>:is(input,select){flex:1 1 155px;min-height:36px;min-width:100px}.order-compact-filters label{flex:1 1 130px;min-width:0;font-size:11px}.order-compact-filters label input{width:100%;min-height:36px}.order-list-panel{margin:0!important}.order-section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.order-section-head h2{margin:0}.order-compact-table td{vertical-align:middle;font-size:12px}.order-detail-panel{margin-top:12px}.order-approvals{margin-top:10px}.order-approvals>summary{cursor:pointer;font-weight:750}
/* Staff dashboard: immediate attendance status -> role KPIs -> tasks -> history. */
.staff-workspace{grid-template-columns:minmax(0,1fr);gap:9px;width:100%;max-width:1550px;min-width:0}.staff-workspace>*{min-width:0;max-width:100%}
.staff-workspace .staff-page-title{order:0}.staff-workspace .staff-attendance{order:1}.staff-workspace .staff-job-kpis{order:2}.staff-workspace>.staff-kpis:not(.staff-job-kpis){order:3}
.staff-workspace>.period-links{order:4}.staff-workspace .staff-job-nav{order:5}.staff-workspace .staff-week-section{order:6}.staff-workspace .staff-history{order:7}
.staff-job-nav{margin:0!important}.staff-job-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:7px}.staff-job-links a{min-width:0;font-size:12px;min-height:42px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-alt);text-decoration:none;color:var(--text);font-weight:700;overflow-wrap:anywhere}
.staff-job-links a:hover{border-color:var(--brand-primary);color:var(--brand-primary)}
.staff-workspace .staff-kpis>*{min-width:0}.staff-workspace .staff-history-mobile{min-width:0}.staff-workspace .staff-history-row{min-width:0;max-width:100%}
/* V0.9.7 · Staff workspace uses the same Admin shell without forcing the viewport wider. */
.staff-workspace,.staff-workspace :is(.panel,.staff-week-section,.staff-job-nav,.staff-attendance,.staff-history),.staff-shift-operations{min-width:0;max-width:100%;box-sizing:border-box}
.staff-workspace :is(.panel,.staff-week-section){overflow-wrap:anywhere}
.staff-workspace :is(input,select,textarea){max-width:100%;min-width:0}
.staff-workspace .staff-kpis{min-width:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.staff-workspace .staff-kpis :is(.ops-kpi,strong,small){min-width:0;max-width:100%;overflow-wrap:anywhere}
.staff-workspace .staff-job-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}
.staff-workspace .staff-week-section :is(.tablewrap,.formgrid){min-width:0;max-width:100%}
.staff-shift-operations .ops-filters>*{min-width:0}.staff-shift-operations .tablewrap{max-width:100%;overflow-x:auto}
.staff-entry-evidence .shift-evidence-grid{grid-template-columns:minmax(0,1fr)}
@media(max-width:790px){.staff-workspace .staff-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-workspace>.panel{width:100%}.staff-workspace .staff-page-title{align-items:start;gap:8px}.staff-workspace .staff-page-title>*{min-width:0;max-width:100%}.staff-workspace .staff-history-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:6px}.staff-workspace .staff-history-row :is(strong,small){overflow-wrap:anywhere}}

@media(max-width:1050px){.brand-editor-layout{grid-template-columns:minmax(0,1fr)}.brand-editor-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.brand-editor-aside>*{min-width:0}}
@media(max-width:790px){.brand-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand-surface-grid{grid-template-columns:minmax(0,1fr)}.brand-editor-aside{grid-template-columns:1fr}
 .media-summary,.supplier-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.media-actions{grid-template-columns:1fr}.media-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-filters{flex:1 1 100%}
 .order-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-compact-filters>:is(input,select){flex:1 1 45%}.order-compact-table{min-width:620px}
 .staff-workspace{gap:8px}.staff-workspace .staff-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .quicklinks-footer{gap:5px;padding:7px!important}.quicklinks-footer>a{font-size:10px;min-height:30px}
 .brand-text{font-size:clamp(12px,3.2vw,15px)}
}
@media(max-width:390px){.media-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-asset-card{padding:5px}.media-asset-thumb{aspect-ratio:4/3}.order-kpi-grid .ops-kpi{padding:8px}}
@media(prefers-reduced-motion:reduce){.account-menu,.media-asset-card,.order-live-dashboard *{animation:none!important;transition:none!important}}

/* V0.9.4 · Per-account permissions, branch/workforce compact surfaces */
.permission-override-groups{display:grid;gap:10px}.permission-group{border:1px solid var(--border,#dce3eb);border-radius:12px;padding:10px;background:var(--surface,#fff)}.permission-group>summary{font-weight:700;cursor:pointer;padding:4px}.permission-override-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 6px;border-top:1px solid var(--border,#dce3eb);min-width:0}.permission-override-row>span:first-child{min-width:0;flex:1;display:grid;gap:3px}.permission-override-row select{max-width:190px;flex:0 0 190px}.permission-override-row details{font-size:11px}.permission-override-row[hidden],.permission-group[hidden]{display:none!important}.shift-access-panel{margin-bottom:12px}.branch-workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:12px;align-items:start}.branch-workspace>*{min-width:0}.branch-tools{display:flex;gap:8px;flex-wrap:wrap}.branch-workspace .tablewrap{max-height:560px;overflow:auto}.branch-workspace .formstack{max-width:none}@media(max-width:800px){.branch-workspace{grid-template-columns:minmax(0,1fr)}.permission-override-row{flex-wrap:wrap}.permission-override-row select{flex:1 1 140px;max-width:none}}

.vietqr-test-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.vietqr-test-fields>label{min-width:0}.vietqr-picker{min-width:0}.vietqr-preview-frame{min-width:0}.vietqr-preview-frame img{max-width:100%;height:auto}@media(max-width:610px){.vietqr-test-fields{grid-template-columns:minmax(0,1fr)}}

/* V0.9.5: compact role matrix and verified handover layouts. */
.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.permission-group{border:1px solid var(--border,rgba(120,130,150,.22));border-radius:12px;padding:10px;min-width:0;margin:0;background:color-mix(in srgb,var(--surface,white),transparent 8%)}
.permission-group legend{font-size:12px;font-weight:750;padding:0 7px;color:var(--text,inherit)}
.permission-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;align-items:start}
.permission-group-grid .checklabel{min-width:0;display:flex;align-items:flex-start;gap:7px;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.permission-group-grid .checklabel input{flex:0 0 auto;margin-top:2px}
.permission-locked{font-size:11px;color:var(--muted,#697386);padding:4px 6px;background:rgba(148,163,184,.1);border-radius:6px;overflow-wrap:anywhere}
.staff-unified-metrics .metric{min-width:0}.shift-handover-form .formgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.permission-groups{grid-template-columns:1fr}}
@media(max-width:600px){.permission-group-grid{grid-template-columns:1fr}.shift-handover-form .formgrid{grid-template-columns:1fr}.staff-unified-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V0.9.6 branch rollout and cash-custody workspaces; no animation or layout overlays. */
.branch-status-badge{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:4px 7px;font-size:11px;white-space:nowrap;background:var(--surface-alt)}
.branch-status-badge.status-active,.branch-status-badge.status-ready{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,var(--border))}
.branch-status-badge.status-suspended,.branch-status-badge.status-draft{color:var(--brand-primary)}
.branch-state-workspace{display:grid;gap:9px;margin:12px 0;padding:12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:12px}
.branch-state-workspace h3{font-size:14px;margin:0}.branch-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:7px}
.branch-check-item{display:flex;align-items:center;gap:7px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:11px}
.branch-check-item.completed span{color:var(--success)}.branch-check-item.pending span{color:var(--brand-primary)}
.branch-state-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.branch-state-form input{flex:1 1 170px;min-width:0;font-size:12px}.branch-state-form button{flex:0 0 auto}
.branch-activity-history{display:grid;gap:5px}.branch-activity-history p{font-size:11px;margin:2px 0}
.shift-custody-panel{display:grid;gap:10px}.shift-custody-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.shift-custody-summary>div{display:grid;gap:5px;min-width:0;padding:10px;border-radius:9px;background:var(--surface-alt);border:1px solid var(--border)}
.shift-custody-summary small{font-size:11px;color:var(--sub)}.shift-custody-summary strong{font-size:13px;overflow-wrap:anywhere}
@media(max-width:790px){.sidebar .sidebarbottom{flex:none;padding-bottom:6px}.sidebar .admin-nav{flex:1 1 auto;min-height:0;overflow-y:auto}.sidebar .sidebarbottom{grid-template-columns:repeat(2,minmax(0,1fr))}.shift-custody-summary{grid-template-columns:minmax(0,1fr)}.branch-state-form button{flex:1 1 130px}.pos-design-list-row{grid-template-columns:minmax(95px,.8fr) minmax(0,1.2fr)}}

.branch-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:10px}.branch-pagination span{font-size:11px;color:var(--sub)}

/* POS search modal and login verification are canonical application controls. */
.pos-search-dialog{border:1px solid var(--border);border-radius:15px;padding:0;width:min(500px,calc(100vw - 20px));max-height:min(85dvh,650px);color:var(--text);background:var(--surface);box-shadow:0 20px 60px #0003}
.pos-search-dialog::backdrop{background:rgba(10,15,30,.58)}
.pos-search-modal{display:grid;gap:10px;padding:14px}
.pos-search-modal header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pos-search-modal header strong{font-size:16px}
.pos-search-modal header button{font-size:25px;border:0;background:transparent;color:var(--text);width:36px;height:36px}
.pos-search-modal #pos-search{width:100%;min-height:46px;border-color:var(--brand);font-size:16px}
.pos-search-results{display:grid;gap:5px;max-height:min(58dvh,420px);overflow-y:auto;overscroll-behavior:contain}
.pos-search-results button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:48px;border:1px solid var(--border);border-radius:9px;padding:8px 10px;background:var(--surface-alt);color:var(--text);text-align:left}
.pos-search-results button strong{font-size:13px;overflow-wrap:anywhere}
.pos-search-results button b{color:var(--brand);white-space:nowrap;font-variant-numeric:tabular-nums}
.login-captcha{display:grid;gap:8px}.login-captcha-art{display:flex;align-items:center;gap:10px}
.login-captcha-art img{width:170px;height:52px;border:1px solid var(--border);border-radius:9px;background:#f8fafc}
.login-captcha-art button{min-width:43px;min-height:43px;border:1px solid var(--border);border-radius:9px;background:var(--surface-alt);color:var(--text);font-size:24px}
.login-captcha input{font-size:17px!important;letter-spacing:1px;font-weight:750;text-transform:uppercase}
@media(max-width:790px){
 body.pos-active.menu-open .sidebar{display:flex!important;z-index:131;bottom:0;max-height:100dvh;height:100dvh}
 body.pos-active.menu-open .scrim{z-index:130;display:block}
 .pos-head{gap:5px;min-height:42px;padding:3px 5px;margin-bottom:3px}
 .pos-head-title{flex:none}
 .pos-live-status{flex:1;min-width:0;gap:3px}
 .pos-channel-settings label{font-size:0;gap:0}
 .pos-head .pos-channel-settings{padding:1px 3px}
 .pos-head .pos-channel-settings select{min-width:82px;max-width:105px;width:92px;height:30px;padding-left:4px;font-size:10px}
 .pos-sales-toprow{gap:4px;padding-bottom:3px}
 .pos-sales-toolbar{gap:4px}
 .pos-sales-toolbar .btn{padding-inline:5px;min-height:36px;font-size:10px}
 .pos-search-icon{width:37px;min-width:37px;height:36px}
 .category-list{gap:4px}.category-list button{min-height:34px;padding:6px 8px;font-size:11px}
 .pos-context>h2{font-size:14px;margin:2px 0 6px}
 .pos-context-confirm{margin-top:3px;padding-top:4px}
 .pos-customer-optional{padding:3px 8px;margin:2px 0}
 .pos-workspace .productgrid{padding-bottom:8px}
}

/* V0.9.10: audit and POS controls share layout tokens, no extra stylesheet. */
.audit-location-enable{display:inline-flex!important;align-items:center;justify-content:center;gap:4px;border:1px solid var(--border);border-radius:8px;min-height:35px;padding:6px 9px;background:var(--surface-alt);color:var(--text);font-size:11px;white-space:nowrap}
.audit-location-enable svg,.pos-head-home svg,.pos-gps-btn svg{height:17px;width:17px;flex:none}
.audit-location-enable.is-granted{border-color:var(--success);color:var(--success)}
.audit-detail-table{min-width:910px}.audit-detail-table td{vertical-align:top;white-space:normal;max-width:250px}.audit-detail-table .cell-sub{display:block;font-size:10px;color:var(--sub);margin-top:4px}.audit-detail-table td:nth-child(6) a{display:inline-block;margin-left:5px;font-weight:800;white-space:nowrap}
.pos-head-home,.pos-gps-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt);color:var(--text);min-height:35px;min-width:35px;padding:5px 8px;font-size:11px;font-weight:800;white-space:nowrap;text-decoration:none}
.pos-head-home:hover{color:var(--brand);border-color:var(--brand);text-decoration:none}
.pos-gps-btn{cursor:pointer}.pos-gps-btn.is-granted{border-color:var(--success);color:var(--success)}
@media(min-width:791px){body:not(.pos-active) .shell>.workspace{min-width:0;max-width:calc(100% - 242px)}body.sidebar-compact:not(.pos-active) .shell>.workspace{max-width:calc(100% - 70px)}}
@media(max-width:1100px){.audit-location-enable span,.pos-head-home span{display:none}}
@media(max-width:790px){.audit-location-enable{min-width:34px;width:34px;padding:5px}.audit-location-enable span{display:none}.audit-detail-table{min-width:780px}.pos-head-home{display:none}.pos-gps-btn{min-width:29px;min-height:30px;padding:3px}}

/* V0.9.11: POS owns viewport; never inherit admin sidebar offset or 1650px content cap. */
body.pos-active .sidebar{display:none}
body.pos-active .shell{display:block;width:100%;max-width:100%;min-width:0}
body.pos-active .shell>.workspace,body.pos-active.sidebar-compact .shell>.workspace{width:100%!important;max-width:none!important;min-width:0;margin-left:0!important;transition:none}
body.pos-active .workspace>.topbar{display:none}
body.pos-active .workspace>.main{width:100%;max-width:none!important;height:100dvh;min-height:0;overflow:hidden;padding:4px 6px 8px!important;margin:0;min-width:0}
body.pos-active .pos-workspace{width:100%;max-width:100%;min-width:0}
body.pos-active{max-width:100%;overflow-x:hidden}
.pos-edit-controls{display:grid;gap:12px;border-top:1px solid var(--border);padding-top:12px;margin-top:12px}
.pos-edit-controls h3{margin:0}.pos-amend-form{display:grid;gap:10px}
.pos-amend-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);padding:8px;border-radius:10px}
.pos-amend-row>span{min-width:0;font-weight:700}.pos-amend-row small{display:block;font-size:10px;color:var(--sub);font-weight:400}
.pos-qty-group{display:flex;gap:4px;align-items:center;flex:none}.pos-qty-group button{min-width:38px;min-height:40px;border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;font-size:20px;color:var(--text)}
.pos-qty-group input[type=number]{width:54px;min-height:40px;text-align:center;padding:4px}
.pos-amend-add{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px}
.pos-cancel-form{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--border)}
.pos-cancel-button{border:1px solid #dc2626;color:#dc2626;background:transparent;font-weight:800}
@media(max-width:790px){body.pos-active .workspace>.main{min-height:100dvh;height:100dvh;overflow:auto;padding:3px!important}.pos-saved{min-height:100dvh;display:flex;flex-direction:column}.pos-saved-grid{flex:1;min-height:0}.pos-saved-actions{padding-bottom:12px!important}.pos-edit-controls{gap:10px}.pos-qty-group button{min-width:42px;min-height:44px}.pos-amend-row{padding:7px}.pos-amend-form>.btn,.pos-cancel-form>.btn{min-height:48px}}

/* One notification interface shared by administration and POS. */
.notice-bell{position:relative;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt);min-width:35px;min-height:35px;color:var(--text);font-size:17px;cursor:pointer}
.notice-bell b{position:absolute;top:-6px;right:-5px;background:#dc2626;color:white;font-size:9px;border-radius:99px;padding:1px 4px;line-height:1.4}
.notice-inbox{position:fixed;z-index:180;top:64px;right:10px;width:min(390px,calc(100vw - 20px));max-height:min(560px,calc(100dvh - 80px));overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:0 15px 46px #0003;padding:13px}
.notice-inbox[hidden]{display:none}.notice-inbox header{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border);padding-bottom:9px}.notice-inbox header label{display:flex;gap:5px;align-items:center;white-space:nowrap}.notice-inbox header input{width:auto}
.notice-entry{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:10px 2px;border-bottom:1px solid var(--border)}.notice-entry.unread{border-left:3px solid var(--brand);padding-left:7px}.notice-entry small{display:block;color:var(--sub);font-size:10px;margin-top:3px}.notice-entry-actions{display:grid;gap:4px;white-space:nowrap}.notice-entry-actions :is(a,button){font-size:11px;border:1px solid var(--border);border-radius:6px;background:var(--surface-alt);padding:4px 6px;color:var(--text);text-align:center}.notice-all-link{display:block;text-align:center;padding:9px}.notice-setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:9px;padding:9px}.notice-setting-row label{white-space:nowrap;display:flex;align-items:center;gap:5px}.notice-setting-row input{width:auto}
@media(max-width:790px){.notice-inbox{top:48px;right:4px;width:calc(100vw - 8px);max-height:calc(100dvh - 115px)}.notice-setting-row{flex-wrap:wrap}.pos-head .notice-bell{min-width:29px;min-height:29px;font-size:14px}}

.brand-asset-form{display:grid;gap:9px;padding:10px 0;border-top:1px solid var(--border)}.brand-asset-form>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand-asset-thumb{width:80px;height:58px;object-fit:contain;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt)}.media-list-thumb{width:70px;min-width:70px}.media-list-thumb img{width:58px;height:45px;object-fit:cover;border-radius:5px}.media-report-thumb{width:100%;height:130px;object-fit:cover;border-radius:7px;background:var(--surface-alt)}

.pos-amend-modifiers{border:1px solid var(--border);border-radius:9px;padding:9px;display:grid;gap:6px}.pos-amend-modifiers[hidden],.pos-amend-modifiers [hidden]{display:none!important}.pos-amend-modifier-group{border:0;border-top:1px solid var(--border);padding:6px 0;display:flex;gap:8px;flex-wrap:wrap}.pos-amend-modifier-group legend{font-weight:700;font-size:12px}.pos-amend-modifier-group label{display:flex;align-items:center;gap:4px;color:var(--text)}.pos-amend-modifier-group input{width:auto;min-height:auto}

/* V0.9.11: held-order detail must also fill the POS viewport. */
body.pos-active .pos-saved{max-width:100%!important;width:100%}
