:root{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #fbfcfc;--border: #e3e8ea;--border-strong: #d2dade;--text: #10201c;--muted: #6b7f7a;--accent: #0f9f7a;--accent-dark: #0b8062;--accent-soft: #e6f7f1;--danger: #cf3f3f;--danger-soft: #fdeeee;--warn: #a9701a;--warn-soft: #fdf4e3;--radius: 14px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(16, 32, 28, .05);--shadow-md: 0 18px 40px -24px rgba(16, 32, 28, .45);--sidebar-w: 232px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sa-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--sa-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--sa-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--sa-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px))}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea{user-select:text;-webkit-user-select:text}h1,h2,h3,p,ul,li{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;user-select:none;-webkit-user-select:none}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cdd6d8;border:3px solid transparent;border-radius:999px;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#b3c0c3;background-clip:content-box;border:3px solid transparent}.shell{height:100dvh;padding-top:var(--sa-top);padding-bottom:var(--sa-bottom);overflow:hidden}.sidebar{position:fixed;top:var(--sa-top);bottom:var(--sa-bottom);left:0;z-index:50;display:flex;flex-direction:column;gap:4px;width:var(--sidebar-w);padding:18px 14px 14px;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(120% 90% at 0% 0%,#123f36,#0a231f 55%,#071a17);color:#e7f4f0;visibility:hidden;transform:translate(-100%);transition:transform .28s cubic-bezier(.32,.72,0,1),visibility 0s linear .28s}.menu-open .sidebar{visibility:visible;transform:translate(0);box-shadow:26px 0 60px -32px #041814cc;transition-delay:0s}.sidebar>*{flex:none}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#04181470;opacity:0;pointer-events:none;transition:opacity .22s ease}.menu-open .menu-scrim{opacity:1;pointer-events:auto}.menu-toggle{position:fixed;top:calc(12px + var(--sa-top));left:12px;z-index:55;display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:13px;background:linear-gradient(135deg,#2ad3a5,#0a8f6d);color:#04241d;font-family:inherit;font-size:22px;font-weight:800;cursor:pointer;box-shadow:0 10px 22px -12px #0f9f7a;transition:transform .18s ease,box-shadow .18s ease}.menu-toggle:hover{box-shadow:0 16px 28px -12px #0f9f7a}.menu-toggle:active{transform:scale(.93)}.shell.is-offline .menu-toggle{top:calc(46px + var(--sa-top))}.menu-glyph{grid-area:1 / 1;line-height:1;transition:transform .24s cubic-bezier(.32,.72,0,1),opacity .16s ease}.menu-glyph-x{opacity:0;transform:rotate(-90deg) scale(.5)}.menu-toggle.is-open .menu-glyph-v{opacity:0;transform:rotate(90deg) scale(.5)}.menu-toggle.is-open .menu-glyph-x{opacity:1;transform:rotate(0) scale(1)}.brand{display:flex;flex-direction:column;gap:2px;padding:8px 6px 18px 56px}.brand-name{font-size:17px;font-weight:700;letter-spacing:.2px}.brand-sub{font-size:13px;color:#8fb5ab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav{display:flex;flex-direction:column;gap:3px}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;color:#a6c8bf;font-size:15.5px;font-weight:500;transition:background .15s ease,color .15s ease}.nav-link:hover{background:#ffffff0f;color:#fff}.nav-link.active{background:linear-gradient(180deg,#16b189,#0e9772);color:#fff;box-shadow:0 12px 22px -14px #16b189}.nav-link.nav-exit{color:#ef9a9a}.nav-link.nav-exit:hover{background:#cf3f3f38;color:#ffc9c9}.nav-link.nav-exit:active{transform:scale(.98)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:9px;padding-top:16px}.install-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.18);color:#d7eee7;font-size:14px;font-weight:600}.install-btn:hover{background:#ffffff14}.conn-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:13px;font-weight:600;width:fit-content}.conn-chip.is-online{background:#1abf9229;color:#63e2be}.conn-chip.is-offline{background:#fabe5a29;color:#f5c877}.conn-chip.small{margin-left:auto}.sidebar-note{font-size:12.5px;line-height:1.5;color:#6f968c}.main-wrap{display:flex;flex-direction:column;min-width:0;height:calc(100dvh - var(--sa-top) - var(--sa-bottom));overflow:hidden}.offline-bar{display:flex;align-items:center;gap:8px;height:34px;padding:0 20px 0 64px;overflow:hidden;background:var(--warn-soft);border-bottom:1px solid #f2dfb8;color:var(--warn);font-size:14px;font-weight:500}.offline-bar span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.main{flex:1;min-height:0;overflow:auto}.page{padding:0 26px 34px;max-width:1340px;margin:0 auto}.page-top{position:sticky;top:0;z-index:3;padding:58px 0 16px;background:var(--bg)}.page-top>.toolbar,.page-top>.page-header:last-child{margin-bottom:0}.page-pane{display:flex;flex-direction:column;height:100%;overflow:hidden}.page-pane>.page-top{position:static;flex:none}.page-pane>.card{display:flex;flex:0 1 auto;flex-direction:column;min-height:0}.page-pane .table-wrap{flex:1;min-height:0;overflow:auto}.page-pane .table thead th{position:sticky;top:0;z-index:2;box-shadow:inset 0 -1px 0 var(--border)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.page-title{font-size:26px;font-weight:700;letter-spacing:-.3px}.page-subtitle{margin-top:4px;font-size:15px;color:var(--muted)}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.auto-save-note{font-size:13.5px;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.toolbar-select{width:auto;min-width:170px}.search-box{position:relative;display:flex;align-items:center;gap:8px;flex:1;min-width:220px;height:42px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);transition:border-color .15s ease,box-shadow .15s ease}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #0f9f7a1f}.search-box input{flex:1;min-width:0;height:100%;border:0;outline:none;background:transparent;color:var(--text);font-size:15.5px}.search-clear{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;color:var(--muted)}.search-clear:hover{background:#eef2f2;color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:15.5px;font-weight:600;white-space:nowrap;transition:background .15s ease,border-color .15s ease,transform .05s ease}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 10px 20px -14px #0f9f7ae6}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:var(--border-strong);background:#f8faf9}.btn-danger{background:var(--danger-soft);border-color:#f6d0d0;color:#a82f2f}.btn-danger:hover:not(:disabled){background:#fbe1e1}.btn-sm{height:32px;padding:0 11px;font-size:14px;border-radius:9px}.btn-block{width:100%;margin-top:14px}.icon-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:var(--muted);transition:background .15s ease,color .15s ease}.icon-btn:hover{background:#eef2f2;color:var(--text)}.icon-btn-danger:hover{background:var(--danger-soft);color:var(--danger)}.row-actions{display:flex;gap:6px;justify-content:flex-end}.row-actions .icon-btn,.category-row .icon-btn{background:#eef2f2;color:var(--text)}.row-actions .icon-btn-danger,.category-row .icon-btn-danger{background:var(--danger-soft);color:var(--danger)}.row-actions .icon-btn:hover,.category-row .icon-btn:hover{background:#e2e9e8}.row-actions .icon-btn-danger:hover,.category-row .icon-btn-danger:hover{background:#fadada;color:var(--danger)}.row-actions .icon-btn:disabled,.row-actions .icon-btn:disabled:hover{background:#f2f5f5;color:#b6c2bf;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-size:13.5px;font-weight:600;color:var(--muted)}.field-span-2{grid-column:span 2}.input,.select,.textarea{width:100%;min-width:0;height:40px;padding:0 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:15.5px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f9f7a1f}.input:disabled{background:#f4f6f6;color:var(--muted)}.input-center{text-align:center}.textarea{height:auto;min-height:74px;padding:9px 11px;resize:vertical;line-height:1.5}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7f7a' d='M2.2 4.3 6 8.1l3.8-3.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px}.input-color{padding:4px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-divider{margin-top:4px;padding-top:12px;border-top:1px solid var(--border);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.switch-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;font-size:15px}.switch-row input{margin-top:2px;width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.switch-row span{display:flex;flex-direction:column;gap:2px}.switch-row small{color:var(--muted);font-size:13px}.switch-inline{display:flex;align-items:center;gap:8px;height:40px;font-size:14px;color:var(--muted)}.switch-inline input{width:16px;height:16px;accent-color:var(--accent)}.hidden-input{display:none}.hint-text{margin-top:12px;font-size:13.5px;color:var(--muted);line-height:1.6}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.card-pad{padding:18px}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.card-title{font-size:16.5px;font-weight:650;letter-spacing:-.1px}.card-hint{margin-left:auto;font-size:13px;color:var(--muted)}.card-divider{height:1px;background:var(--border);margin:16px 0}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:15.5px}.table th{padding:11px 14px;text-align:left;font-size:12.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid #eef2f1;vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#f9fbfa}.table-clickable tbody tr{cursor:pointer}.table .num{text-align:right;font-variant-numeric:tabular-nums}.col-actions{width:108px;text-align:right}.row-muted{opacity:.6}.cell-item{display:flex;align-items:center;gap:11px;min-width:0}.cell-emoji{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;font-size:20px;flex-shrink:0}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark);font-size:13.5px;font-weight:700;flex-shrink:0}.cell-title{font-weight:600;font-size:15.5px;white-space:nowrap}.cell-title .badge{margin-left:7px;vertical-align:middle}.cell-sub{font-size:13px;color:var(--muted);white-space:nowrap}.cell-strong{font-weight:650;font-variant-numeric:tabular-nums}.text-muted{color:var(--muted)}.capitalise{text-transform:capitalize}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:13px;font-weight:650;white-space:nowrap}.badge-ok{background:var(--accent-soft);color:var(--accent-dark)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:#a82f2f}.segmented{display:inline-flex;padding:3px;gap:2px;background:#eaeff0;border-radius:11px}.segment{height:32px;padding:0 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--muted);transition:background .15s ease,color .15s ease}.segment:hover{color:var(--text)}.segment.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.field .segmented{align-self:flex-start}.empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:46px 24px;text-align:center}.empty-icon{display:grid;place-items:center;width:46px;height:46px;margin-bottom:4px;border-radius:14px;background:#eef3f2;color:var(--muted)}.empty-title{font-size:16px;font-weight:650}.empty-desc{max-width:320px;font-size:14px;color:var(--muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:max(20px,var(--sa-top)) max(20px,var(--sa-right)) max(20px,var(--sa-bottom)) max(20px,var(--sa-left));background:#071a1680;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .12s ease}.modal{display:flex;flex-direction:column;width:100%;max-height:100%;background:var(--surface);border-radius:18px;box-shadow:var(--shadow-md);animation:pop-in .16s ease}.modal-sm{max-width:440px}.modal-md{max-width:620px}.modal-lg{max-width:860px}.modal-head{display:flex;align-items:flex-start;gap:14px;padding:18px 20px 0}.modal-head-text{min-width:0}.modal-title{font-size:19px;font-weight:700;letter-spacing:-.2px}.modal-subtitle{margin-top:3px;font-size:14px;color:var(--muted)}.modal-head .icon-btn{margin-left:auto;margin-top:-4px;margin-right:-6px}.modal-body{padding:16px 20px;overflow-y:auto;overscroll-behavior:contain}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px 18px;border-top:1px solid var(--border);flex-wrap:wrap}.confirm-message{font-size:15.5px;color:var(--muted);line-height:1.6}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.99)}}.toast-stack{position:fixed;left:50%;top:calc(24px + var(--sa-top));z-index:90;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translate(-50%);pointer-events:none}.toast{display:flex;align-items:center;gap:9px;max-width:min(420px,calc(100vw - 32px));padding:11px 15px;border-radius:12px;background:#10201c;color:#f2f8f6;font-size:15px;font-weight:500;box-shadow:0 18px 36px -18px #061c17b3;animation:toast-in .18s ease}.toast-success svg{color:#4fe0b6}.toast-error svg{color:#ff9c9c}.toast-info svg{color:#9ec9ff}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}}.pos{display:grid;grid-template-columns:minmax(0,1fr) 388px;height:100%;overflow:hidden}.pos-catalog{display:flex;flex-direction:column;min-width:0;min-height:0;padding:12px 20px 0}.catalog-top{display:flex;align-items:center;gap:10px;padding-left:50px;margin-bottom:12px}.pos-cart-toggle{display:none}.chip-row{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:12px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;cursor:grab;-webkit-user-select:none;user-select:none}.chip-row:active{cursor:grabbing}.chip-row::-webkit-scrollbar{height:6px}.chip-row::-webkit-scrollbar-track{background:transparent}.chip-row::-webkit-scrollbar-thumb{border-radius:999px;background:var(--border-strong)}.chip{display:inline-flex;flex:0 0 auto;align-items:center;gap:7px;height:34px;padding:0 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:14px;font-weight:600;white-space:nowrap;scroll-snap-align:start;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.active{background:#10201c;border-color:#10201c;color:#fff}.chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.product-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:22px;touch-action:pan-y;--tile-zoom: 1;--tile-scale: var(--tile-zoom)}@media (max-width: 900px){.product-scroll{--tile-scale: calc(var(--tile-zoom) * 136 / 104)}}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(136px * var(--tile-zoom)),1fr));gap:12px}.tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:calc(132px * var(--tile-zoom));padding:13px;border:1px solid var(--border);border-radius:14px;background:var(--surface);text-align:center;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.tile:hover:not(:disabled){transform:translateY(-2px);border-color:var(--border-strong);box-shadow:0 16px 28px -22px #10201cb3}.tile:active:not(:disabled){transform:translateY(0);background:#f8fbfa}.tile-out{opacity:.45}.tile-stock-badge{position:absolute;top:calc(8px * var(--tile-scale));left:calc(8px * var(--tile-scale));z-index:2;padding:calc(2px * var(--tile-scale)) calc(7px * var(--tile-scale));border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:calc(12px * var(--tile-scale));font-weight:700;pointer-events:none}.tile-stock-badge.is-out{background:var(--danger);color:#fff}.tile-qty-badge{position:absolute;top:calc(8px * var(--tile-scale));right:calc(8px * var(--tile-scale));z-index:3;min-width:calc(22px * var(--tile-scale));height:calc(22px * var(--tile-scale));padding:0 calc(7px * var(--tile-scale));display:grid;place-items:center;border-radius:999px;background:#0f9f7a;color:#fff;font-size:calc(13.5px * var(--tile-scale));font-weight:800;font-variant-numeric:tabular-nums;box-shadow:0 1px 3px #00000040;pointer-events:none}.tile-emoji{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:24px}.tile-caption{display:flex;flex-direction:column;align-items:center;gap:calc(6px * var(--tile-scale));width:100%;margin-top:auto;text-align:center}.tile-name{font-size:calc(15px * var(--tile-scale));font-weight:600;line-height:1.35;text-align:center}.tile-foot{display:flex;align-items:center;justify-content:center;gap:7px;width:100%}.tile-price{font-size:calc(15px * var(--tile-scale));font-weight:700;font-variant-numeric:tabular-nums}.tile-stock{padding:2px 6px;border-radius:6px;background:var(--warn-soft);color:var(--warn);font-size:12px;font-weight:650}.tile-stock.is-out{background:var(--danger-soft);color:var(--danger)}.cart{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-left:1px solid var(--border)}.cart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:18px 18px 14px;border-bottom:1px solid var(--border)}.cart-title{font-size:16.5px;font-weight:700}.cart-sub{margin-top:3px;font-size:13px;color:var(--muted)}.cart-head-actions{display:flex;align-items:center;gap:6px}.cart-body{flex:1;min-height:0;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:8px}.cart-body>.swipe-row{flex:0 0 auto}.cart-empty{display:flex;flex-direction:column;align-items:center;gap:5px;padding:52px 20px;text-align:center}.cart-empty-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:4px;border-radius:14px;background:#eef3f2;color:var(--muted)}.cart-empty-title{font-size:15.5px;font-weight:650}.cart-empty-desc{font-size:13.5px;color:var(--muted)}.cart-line{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;column-gap:9px;row-gap:6px;padding:9px 10px}.swipe-row{position:relative;overflow:hidden}.swipe-front{position:relative;z-index:1;background:var(--surface);touch-action:pan-y}.swipe-front.cart-line{background:var(--accent-soft)}.swipe-front.is-dragging{transition:none}.swipe-front:not(.is-dragging){transition:transform .18s ease}.swipe-delete{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding-right:22px;background:var(--danger);color:#fff;font-size:14px;font-weight:700;letter-spacing:.02em}.swipe-delete.is-armed{background:#b62f2f}.cart-line-emoji{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#f2f6f5;font-size:18px}.cart-line-main{display:flex;flex-direction:column;min-width:0}.cart-line-name{overflow:hidden;font-size:14px;font-weight:600;white-space:nowrap}.cart-line-price{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.flip-card{min-height:18px}.flip-face{display:flex;align-items:center;width:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d}.flip-face-back{pointer-events:none}.tile-flip{width:100%}.tile-flip .flip-face{justify-content:center}.catalog-actions{display:flex;align-items:center;gap:8px}.view-toggle{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted)}.view-toggle:hover{color:var(--text);border-color:var(--border-strong)}.view-toggle.is-on{color:var(--accent);border-color:var(--accent);background:#e9f6f1}.product-scroll.is-focus{display:flex;overflow:hidden;touch-action:auto}.carousel-wrap{position:relative;display:flex;flex:1;flex-direction:column;min-height:0;width:100%}.carousel-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 8px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.carousel-card{position:relative;flex:0 1 auto;width:100%;max-width:460px;height:100%;overflow:visible;text-align:center}.carousel-card:disabled,.carousel-card.is-out{opacity:.55;cursor:default}.carousel-emoji{font-size:90px;display:grid;place-items:center;width:168px;height:168px;border-radius:34px}.carousel-badge{position:absolute;top:12px;right:12px;z-index:5;padding:4px 10px;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:13.5px;font-weight:700}.carousel-badge.is-out{background:var(--danger);color:#fff}.carousel-body{display:flex;flex-direction:column;align-items:center;gap:6px}.carousel-name{font-size:21px;font-weight:700}.carousel-price{font-size:18px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.carousel-indicator{align-self:center;margin-top:10px;padding:4px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-size:14px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.carousel-frame{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:14px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--surface);overflow:hidden;box-shadow:0 22px 42px -30px #10201c8c}.carousel-frame.has-photo{justify-content:flex-end;padding:0;border-color:transparent;background:#10201c}.carousel-img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.carousel-frame.has-photo .carousel-body{position:relative;z-index:2;width:100%;align-self:stretch;gap:4px;padding:12px 14px;background:#0000001a}.carousel-frame.has-photo .carousel-name,.carousel-frame.has-photo .carousel-price{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.75),0 0 6px rgba(0,0,0,.5)}.carousel-step{position:absolute;top:2%;width:92px;height:92px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;z-index:6;opacity:0;transform:scale(.5);transition:opacity .25s ease,transform .25s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 6px 8px rgba(0,0,0,.3))}.carousel-step.is-left{right:calc(50% + 236px)}.carousel-step.is-right{left:calc(50% + 236px)}.carousel-wrap.is-settled .carousel-step{opacity:1;transform:scale(1)}.carousel-step:active{transform:scale(.92)}.carousel-step:disabled{cursor:default;filter:grayscale(.5) opacity(.5)}.carousel-count{position:absolute;top:calc(2% + 14px);left:0;right:0;margin:0 auto;width:max-content;z-index:6;display:flex;align-items:center;justify-content:center;min-width:64px;height:64px;padding:0 16px;border-radius:999px;background:#0f9f7a;color:#fff;font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;box-shadow:0 10px 22px -12px #0f9f7acc;opacity:0;transform:scale(.6)}.carousel-count.is-shown{opacity:1}.cart-line-total{grid-column:3;grid-row:1;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.qty{grid-column:2;grid-row:2;justify-self:start;display:flex;align-items:center;justify-content:space-between;gap:4px;width:104px;padding:2px;border:1px solid var(--border);border-radius:9px}.qty button{display:grid;place-items:center;flex:0 0 auto;width:26px;height:26px;border-radius:6px;color:var(--muted)}.qty button:hover{background:#eef2f2;color:var(--text)}.qty-input{flex:1 1 auto;width:100%;min-width:0;border:0;background:transparent;text-align:center;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);padding:2px 1px;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.qty-input:focus{outline:none;background:#eef2f2;border-radius:5px}.cart-customer{position:relative;z-index:5;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-2)}.customer-field{position:relative}.search-box-compact{height:38px;min-width:0}.customer-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;max-height:232px;overflow-y:auto;padding:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:0 16px 32px #10201c29}.customer-option{display:flex;flex-direction:column;gap:2px;width:100%;padding:7px 9px;border-radius:8px;text-align:left}.customer-option.is-active{background:var(--surface-2)}.customer-option-name{font-size:15px;font-weight:600;color:var(--text)}.customer-option-meta{font-size:13px;color:var(--muted)}.customer-results-empty{padding:10px;font-size:13.5px;text-align:center;color:var(--muted)}.cart-foot{padding:12px 16px 16px;border-top:1px solid var(--border);background:var(--surface)}.totals{display:flex;flex-direction:column;gap:5px;margin-bottom:11px}.totals-row{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.totals-discount{color:var(--accent-dark)}.totals-total{margin-top:3px;padding-top:8px;border-top:1px solid var(--border);color:var(--text);font-size:20px;font-weight:750}.charge-btn{width:100%;height:48px;border-radius:12px;font-size:16.5px}.mobile-cart-bar{display:none}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#071a1673;animation:fade-in .15s ease}.pay-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;border-radius:11px;background:#eef2f1}.pay-method{display:flex;align-items:center;justify-content:center;gap:7px;height:38px;border-radius:9px;color:var(--muted);font-size:14px;font-weight:600}.pay-method.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.pay-due{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:16px 0 10px;padding:12px 15px;border-radius:12px;background:linear-gradient(135deg,#123c34,#0b2721);color:#eafaf5}.pay-due span{font-size:13.5px;color:#8fc4b6}.pay-due strong{font-size:28px;font-weight:750;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.pay-received{display:flex;align-items:center;justify-content:space-between;padding:4px 2px;font-size:15px;color:var(--muted)}.pay-received-value{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.pay-change{display:flex;align-items:center;justify-content:space-between;margin:6px 0 12px;padding:10px 13px;border-radius:10px;background:var(--accent-soft);color:var(--accent-dark);font-size:15px}.pay-change strong{font-size:18px;font-variant-numeric:tabular-nums}.pay-change.is-short{background:var(--danger-soft);color:#a82f2f}.quick-cash{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.quick-cash .btn{flex:1;min-width:74px}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.numpad-key{height:52px;border:1px solid var(--border);border-radius:11px;background:var(--surface);font-size:21px;font-weight:650;font-variant-numeric:tabular-nums;transition:background .1s ease}.numpad-key:hover{background:#f6f9f8}.numpad-key:active{background:#eef3f1;transform:translateY(1px)}.numpad-key-del{color:var(--muted)}.pay-card-note{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:14px;line-height:1.6}.receipt{padding:18px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:#152622;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.55}.receipt-store{text-align:center;font-size:17px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.receipt-muted{text-align:center;font-size:12px;color:#7b8d88}.receipt-address{white-space:pre-line}.receipt-rule{margin:9px 0;border-top:1px dashed #c9d4d1}.receipt-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-variant-numeric:tabular-nums}.receipt-line{margin-bottom:5px}.receipt-line-name{font-size:13px;font-weight:600}.receipt-line-calc{display:flex;justify-content:space-between;gap:10px;color:#6b7f7a;font-size:12.5px;font-variant-numeric:tabular-nums}.receipt-total{margin-top:4px;padding-top:6px;border-top:1px solid #c9d4d1;font-size:16px;font-weight:700}.receipt-note{margin-top:8px;color:#6b7f7a;font-size:12.5px;font-style:italic}.receipt-refunded{margin-top:8px;padding:4px;border:1px dashed var(--danger);border-radius:6px;color:var(--danger);font-size:12.5px;font-weight:700;letter-spacing:2px;text-align:center}.receipt-footer{color:#4c5f5a;font-size:12.5px;text-align:center}.receipt-powered{margin-top:4px;font-size:11px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.kpi-card{display:flex;flex-direction:column;gap:3px;padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.kpi-icon{display:grid;place-items:center;width:30px;height:30px;margin-bottom:6px;border-radius:9px;background:var(--accent-soft);color:var(--accent-dark)}.kpi-label{color:var(--muted);font-size:13px;font-weight:600}.kpi-value{font-size:23px;font-weight:750;letter-spacing:-.4px;font-variant-numeric:tabular-nums}.kpi-meta{color:var(--muted);font-size:12.5px}.card-pad+.card-pad{margin-top:0}.chart{display:flex;align-items:flex-end;gap:6px;height:190px;padding-top:8px}.chart-col{display:flex;flex:1;flex-direction:column;align-items:center;gap:7px;min-width:0;height:100%}.chart-track{display:flex;flex:1;align-items:flex-end;width:100%;max-width:46px;border-radius:7px;background:#f1f5f3;overflow:hidden}.chart-bar{width:100%;border-radius:7px 7px 0 0;background:linear-gradient(180deg,#24c9a0,#0d8f6d);transition:height .3s ease}.chart-label{overflow:hidden;max-width:100%;color:var(--muted);font-size:11px;white-space:nowrap}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:16px}.rank-list,.split-list{display:flex;flex-direction:column;gap:13px;list-style:none;padding:0}.rank-row{display:flex;gap:11px}.rank-index{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#eef3f2;color:var(--muted);font-size:13px;font-weight:700;flex-shrink:0}.rank-main{display:flex;flex:1;flex-direction:column;gap:5px;min-width:0}.rank-head,.split-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:14px}.rank-name{overflow:hidden;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.rank-value{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.rank-track{height:6px;border-radius:999px;background:#eef3f2;overflow:hidden}.rank-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#24c9a0,#0d8f6d)}.rank-sub{color:var(--muted);font-size:12.5px}.split-row{display:flex;flex-direction:column;gap:5px}.split-track{height:7px;border-radius:999px;background:#eef3f2;overflow:hidden}.split-track.is-alt .split-bar{background:linear-gradient(90deg,#7aa7ff,#3b6fe0)}.split-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#24c9a0,#0d8f6d)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:start}.settings-full{grid-column:1 / -1}.settings-stack{display:flex;flex-direction:column;gap:16px}@media (min-width: 1100px){.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 901px) and (max-width: 1099px){.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.info-list{display:flex;flex-direction:column;gap:2px;list-style:none;padding:0}.info-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed #e9efed;color:var(--muted);font-size:14px}.info-list li:last-child{border-bottom:0}.info-list li>span:first-child{display:flex;align-items:center;gap:8px}.info-list li>span:last-child{color:var(--text);font-weight:600;text-align:right}.data-actions{display:flex;flex-wrap:wrap;gap:9px}.category-add{display:flex;gap:8px;margin-bottom:12px}.category-list{display:flex;flex-direction:column;gap:2px;list-style:none;padding:0}.category-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px dashed #e9efed;font-size:15px}.category-row:last-child{border-bottom:0}.category-name{flex:1;font-weight:600}@media (max-width: 1100px){.pos{grid-template-columns:minmax(0,1fr) 340px}}@media (max-width: 900px){.menu-toggle{font-size:27px}.page{padding:0 14px 26px}.page-title{font-size:22px}.toolbar{gap:9px}.search-box{min-width:0;height:40px}.toolbar-select{min-width:0;width:100%}.pos{grid-template-columns:1fr}.pos-catalog{padding:12px 12px 0}.pos-cart-toggle{display:inline-flex;height:42px}.pos-catalog .search-box{height:42px}.product-scroll{padding-bottom:96px}.product-grid{grid-template-columns:repeat(auto-fill,minmax(calc(104px * var(--tile-zoom)),1fr));gap:9px}.tile{min-height:calc(116px * var(--tile-zoom));gap:6px;padding:10px}.tile-emoji{width:36px;height:36px;font-size:21px}.cart{position:fixed;top:auto;right:0;bottom:0;left:0;z-index:45;height:auto;max-height:86dvh;padding-bottom:var(--sa-bottom);border-left:0;border-radius:18px 18px 0 0;box-shadow:0 -22px 44px -24px #071a168c;transform:translateY(102%);transition:transform .24s cubic-bezier(.32,.72,0,1)}.cart.cart-open{transform:translateY(0)}.mobile-cart-bar{position:fixed;right:12px;bottom:calc(var(--sa-bottom) + 10px);left:12px;z-index:32;display:flex;align-items:center;justify-content:space-between;gap:10px;height:52px;padding:0 16px;border-radius:14px;background:#10201c;color:#fff;font-size:15px;box-shadow:0 18px 32px -18px #061c17cc}.mobile-cart-bar span{display:flex;align-items:center;gap:8px}.mobile-cart-bar strong{font-size:16.5px;font-variant-numeric:tabular-nums}.form-grid{grid-template-columns:1fr}.field-span-2{grid-column:span 1}.settings-grid{grid-template-columns:1fr}.col-hide-sm{display:none}.col-actions{width:84px}.modal-overlay{align-items:flex-end;padding:0 var(--sa-right) 0 var(--sa-left)}.modal{max-width:100%;max-height:min(92dvh,calc(100dvh - var(--sa-top)));border-radius:18px 18px 0 0}.modal-body{padding:14px 16px}.modal-foot{padding:12px 16px calc(16px + var(--sa-bottom))}.toast-stack{top:calc(var(--sa-top) + 60px)}.chart{height:160px}.chart-label{font-size:10.5px}}@media (max-width: 520px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-value{font-size:20px}.cart-line{grid-template-columns:30px minmax(0,1fr) auto;row-gap:4px}.cart-line-emoji{width:30px;height:30px;font-size:16px}.qty{grid-column:2;width:fit-content}.cart-line-total{grid-row:1;grid-column:3}}@media (orientation: landscape) and (max-width: 1100px){.product-scroll{container-type:size}.product-grid{grid-template-columns:repeat(auto-fill,minmax(calc((100% - 27px) / 4 * var(--tile-zoom)),1fr));grid-auto-rows:calc(clamp(80px,calc((100cqh - 9px)/2),116px) * var(--tile-zoom))}.product-grid .tile{min-height:0;gap:4px;padding:6px 8px}.product-grid .tile.tile-has-photo{min-height:0}.product-grid .tile-emoji{width:30px;height:30px;font-size:18px}}@media (min-width: 901px){.cart-line{grid-template-columns:34px minmax(0,1fr)}.cart-line-total{grid-column:2;grid-row:2;justify-self:end}}#print-root{display:none}@media print{@page{margin:8mm}html,body{height:auto;overflow:visible;background:#fff}#root{display:none!important}#print-root{display:block!important}#print-root .receipt{width:72mm;margin:0 auto;padding:0;border:0;border-radius:0;font-size:12.5px}.modal-overlay,.toast-stack{display:none!important}.receipt-print-stack .receipt{page-break-after:always;break-after:page}.receipt-print-stack .receipt:last-child{page-break-after:auto;break-after:auto}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.field-hint{font-size:13px;line-height:1.5;color:var(--muted)}.field-hint a{color:var(--accent-dark);font-weight:600}.field-hint a:hover{text-decoration:underline}.field-error{font-size:13px;font-weight:600;color:var(--danger)}.photo-picker{display:flex;align-items:flex-start;gap:14px}.photo-preview{display:grid;place-items:center;width:104px;height:104px;flex-shrink:0;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);font-size:40px;overflow:hidden}.photo-preview.has-photo{border-style:solid;background:#fff}.photo-preview img{width:100%;height:100%;object-fit:cover;display:block}.photo-actions{display:flex;flex-direction:column;gap:8px;min-width:0}.photo-buttons{display:flex;flex-wrap:wrap;gap:8px}.photo-btn{cursor:pointer}.photo-hint{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.tile.tile-has-photo{position:relative;justify-content:flex-end;min-height:calc(178px * var(--tile-zoom));padding:0;overflow:hidden}.tile-photo{position:absolute;top:0;right:0;bottom:0;left:0;display:block;background:var(--surface-2)}.tile-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.tile-has-photo:hover:not(:disabled) .tile-photo img{transform:scale(1.04)}.tile-has-photo .tile-caption{position:relative;z-index:1;margin-top:0;padding:calc(9px * var(--tile-scale)) calc(11px * var(--tile-scale));background:#00000040}.tile-has-photo .tile-name,.tile-has-photo .tile-price{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}.cell-emoji,.cart-line-emoji{overflow:hidden}.cell-emoji img,.cart-line-emoji img{display:block;width:100%;height:100%;object-fit:cover}.provider-tag{display:inline-block;max-width:190px;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-sub-accent{color:var(--accent-dark);font-weight:600}.cell-provider-inline{display:none}@media (max-width: 900px){.cell-provider-inline{display:block}}.provider-avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-dark);font-weight:700}.conn-chip.is-printer{background:#818cf82e;color:#c7d2fe}.chip-truncate{max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.printer-status{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.printer-dot{width:10px;height:10px;margin-top:5px;flex-shrink:0;border-radius:50%;background:#cbd5d1}.printer-dot.is-on{background:#16a34a;box-shadow:0 0 0 4px #16a34a26}.printer-status-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:180px}.printer-status-text strong{font-size:15px}.printer-status-text small{font-size:13px;line-height:1.5;color:var(--muted)}.printer-status-actions{display:flex;flex-wrap:wrap;gap:8px}.receipt-stack{display:flex;flex-direction:column;gap:12px}@media (max-width: 620px){.photo-picker{flex-direction:column}.photo-preview{width:100%;max-width:168px;height:auto;aspect-ratio:1}}.auth-screen{height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;padding:calc(24px + var(--sa-top)) 16px calc(32px + var(--sa-bottom));background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch}.auth-screen>*{margin:auto}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:26px 22px}.auth-card-center{text-align:center}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:22px}.auth-brand-name{font-size:22px;font-weight:800;letter-spacing:.04em;color:var(--accent-dark)}.auth-brand-sub{font-size:18px;font-weight:700;color:#6366f1}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field>span{font-size:13px;font-weight:600;color:var(--text)}.auth-field input{height:44px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:16px;text-align:center}.auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-field-error{font-size:12px;color:var(--danger);font-style:normal}.auth-pass-wrap{position:relative;display:flex;align-items:center}.auth-pass-wrap input{flex:1;padding-right:46px}.auth-pass-toggle{position:absolute;right:8px;display:grid;place-items:center;width:32px;height:32px;border:none;background:none;color:var(--muted);cursor:pointer}.auth-submit{width:100%;margin-top:4px}.auth-error{font-size:13.5px;color:var(--danger);background:var(--danger-soft);border:1px solid #f6d0d0;border-radius:var(--radius-sm);padding:9px 12px;text-align:center}.auth-muted{color:var(--muted);font-size:14px}.auth-links{display:flex;flex-direction:column;gap:8px;align-items:center;margin-top:4px}.auth-link{background:none;border:none;color:var(--accent-dark);font-size:14px;font-weight:600;cursor:pointer;padding:4px}.auth-link:hover{text-decoration:underline}.auth-loading{min-height:100%;display:grid;place-items:center;gap:14px;color:var(--muted)}.auth-spinner,.auth-spin{animation:auth-rotate .8s linear infinite}.auth-spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin-bottom:8px}@keyframes auth-rotate{to{transform:rotate(360deg)}}.auth-waiting{font-size:52px;margin-bottom:8px}.auth-title{font-size:20px;font-weight:700;margin-bottom:8px}.auth-title-blue{font-size:20px;font-weight:700;color:var(--accent-dark);margin-bottom:12px}.auth-summary{background:var(--accent-soft);border:1px solid #cdeee2;border-radius:var(--radius-sm);padding:14px 16px;margin:8px 0 16px;text-align:left;font-size:14px;display:flex;flex-direction:column;gap:6px}.auth-note-warn{background:var(--warn-soft);border:1px solid #f0d9ac;color:var(--warn);border-radius:var(--radius-sm);padding:12px 14px;font-size:13.5px;margin-bottom:16px}.auth-maint-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:var(--warn-soft);color:var(--warn)}.auth-offline-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:var(--danger-soft);color:var(--danger)}.maint-illust{position:relative;width:100%;height:168px;margin:14px 0 4px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent-soft),#eef4f3);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation}.maint-wheels{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:30px}.maint-wheel{position:relative;border-radius:50%;border:4px solid var(--border-strong);background:none;padding:0;-webkit-tap-highlight-color:transparent;animation:maint-spin 3s linear infinite}.maint-wheel:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:2px dashed var(--muted);opacity:.55;border-radius:50%}.maint-wheel-big{width:88px;height:88px}.maint-wheel-small{width:56px;height:56px;animation-duration:2s;animation-direction:reverse}.maint-wheel-small:before{top:5px;right:5px;bottom:5px;left:5px}.maint-progress{position:absolute;left:16px;right:16px;bottom:14px;height:8px;border-radius:999px;background:var(--border);overflow:hidden}.maint-progress-fill{height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--warn));animation:maint-progress 2s ease-in-out infinite}.maint-dots{display:flex;justify-content:center;gap:8px;margin:6px 0 12px}.maint-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);animation:maint-bounce 1.2s infinite}.maint-dot.is-2{background:var(--warn);animation-delay:.15s}.maint-dot.is-3{background:var(--danger);animation-delay:.3s}.maint-code-input{text-align:center;font-size:18px;letter-spacing:4px;margin:10px 0 4px}@keyframes maint-spin{to{transform:rotate(360deg)}}@keyframes maint-progress{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}@keyframes maint-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.admin-page{padding:58px 16px 16px;max-width:820px;margin:0 auto;overflow-y:auto;height:100%}.admin-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-bottom:18px}.admin-maint-chip{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 12px}.admin-maint-chip.is-on{color:#a82f2f;background:var(--danger-soft);border-color:#f6d0d0}.admin-maint-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.admin-maint-chip.is-on .admin-maint-dot{background:var(--danger)}.admin-title{display:flex;align-items:center;justify-content:center;gap:8px;font-size:22px;font-weight:800;margin-bottom:22px}.admin-section-title{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:12px}.admin-quick{margin-bottom:28px}.admin-quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.admin-quick-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-weight:600;color:var(--text);cursor:pointer;transition:border-color .15s ease,transform .05s ease}.admin-quick-card:hover{border-color:var(--accent)}.admin-quick-card:active{transform:translateY(1px)}.admin-quick-card svg{color:var(--accent-dark)}.admin-pill{position:absolute;top:10px;right:10px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;font-style:normal;display:grid;place-items:center}.admin-toggle{font-style:normal;font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}.admin-toggle.is-on{background:var(--danger-soft);border-color:#f6d0d0;color:#a82f2f}.admin-directory-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-search{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 10px;color:var(--muted)}.admin-search input{border:none;background:none;height:36px;width:180px;color:var(--text)}.admin-search input:focus{outline:none}.admin-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-row-name{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.admin-row-sub{font-size:12.5px;color:var(--muted);margin-top:3px}.admin-row-actions{display:flex;gap:8px;flex-shrink:0}.admin-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.admin-badge-on{background:var(--accent-soft);color:var(--accent-dark)}.admin-badge-off{background:var(--danger-soft);color:#a82f2f}.admin-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px;color:var(--muted)}.admin-add-btn{margin-bottom:12px}.admin-form{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px}.admin-form-actions{display:flex;justify-content:flex-end;gap:8px}@media (max-width: 560px){.admin-quick-grid{grid-template-columns:1fr}.admin-header{justify-content:center}}
