:root{--brand:#1565c0;--brand-rgb:21, 101, 192;--brand-hover:#1257a5;--brand-deep:#0e4583;--brand-soft:#e5eef9;--brand-soft-2:#cddcf2;--brand-ink:#fff;--bg:#eef2f7;--panel:#fff;--panel-2:#f5f7fb;--panel-3:#e9edf4;--line:#dfe5ee;--line-2:#c4cedd;--ink:#111827;--ink-2:#4b5563;--ink-3:#8b95a7;--ok:#15803d;--ok-soft:#dcfce7;--warn:#d97706;--warn-soft:#fef3c7;--bad:#dc2626;--bad-soft:#fee2e2;--info:#0369a1;--info-soft:#e0f2fe;--total:#0f6a2e;--radius:10px;--radius-s:7px;--shadow:0 1px 2px #0f172a0d, 0 6px 20px -12px #0f172a33;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--fs:15px;--fs-sm:13px;--fs-xs:12px;--fs-lg:17px;--touch:44px;--ctl:44px;--ctl-sm:34px;--sidebar-w:224px;--appbar-h:64px;--status-h:30px;--fkeys-h:62px;--pos-right-w:380px;--qk-w:196px;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}[data-size=lg]{--fs:17px;--fs-sm:15px;--fs-xs:13px;--fs-lg:19px;--ctl:48px;--ctl-sm:38px;--appbar-h:70px;--fkeys-h:68px;--pos-right-w:420px}[data-theme=dark]{--bg:#0c1220;--panel:#151d2e;--panel-2:#111827;--panel-3:#1b2436;--line:#253047;--line-2:#34415c;--ink:#e8edf5;--ink-2:#aab5c8;--ink-3:#72809a;--brand-soft:#16284a;--brand-soft-2:#1f3a6b;--ok-soft:#14532d;--warn-soft:#78350f;--bad-soft:#7f1d1d;--info-soft:#0c4a6e;--total:#4ade80;--shadow:0 1px 2px #0006, 0 8px 24px -12px #0009}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}@supports (height:100dvh){body,#root{height:100dvh}}html{font-size:var(--fs)}body{font-family:var(--font);font-size:var(--fs);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;line-height:1.35}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation}a{color:var(--brand);text-decoration:none}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:700}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:0 0 .6em}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.muted{color:var(--ink-2)}.small{font-size:var(--fs-sm)}.tiny{font-size:var(--fs-xs);color:var(--ink-3)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums}.right{text-align:right}.center{text-align:center}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.col{flex-direction:column;gap:8px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.p-16{padding:16px}.hide{display:none!important}.ok{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}.brand{color:var(--brand)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app{background:var(--bg);height:100%;display:grid}.app.top{grid-template:"logo tabs right""banners banners banners""content content content"1fr"status status status"/auto 1fr auto}.appbar-logo,.modtabs,.appbar-right{background:var(--brand);color:var(--brand-ink);min-height:var(--appbar-h);padding-top:var(--sat)}.appbar-logo{padding-left:calc(12px + var(--sal));grid-area:logo;align-items:center;gap:10px;min-width:0;padding-right:14px;display:flex;overflow:hidden}.appbar-logo .biz{flex-direction:column;min-width:0;max-width:220px;display:flex}.appbar-logo .biz b{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;line-height:1.15;overflow:hidden}.appbar-logo .biz span{font-size:var(--fs-xs);opacity:.8;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appbar-logo img{object-fit:contain;background:#fff;border-radius:6px;max-width:140px;height:40px;padding:2px}.appbar-logo h1,.appbar-right h1{clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.modtabs{scrollbar-width:none;grid-area:tabs;align-items:stretch;gap:2px;padding:6px 4px 0;display:flex;overflow-x:auto}.modtabs::-webkit-scrollbar{display:none}.modtab{min-width:68px;max-width:124px;color:var(--brand-ink);opacity:.86;cursor:pointer;font-weight:600;font-size:var(--fs-sm);background:0 0;border:0;border-radius:8px 8px 0 0;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:3px;padding:4px 8px 6px;display:flex;position:relative}.modtab .ico{display:inline-flex}.modtab .ico svg{width:24px;height:24px}.modtab .txt{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.modtab .kbd{opacity:.55;font-size:10px;font-family:var(--mono);position:absolute;top:3px;right:6px}.modtab:hover{opacity:1;background:#ffffff1f}.modtab.active{opacity:1;background:var(--bg);color:var(--brand)}.modtab:focus-visible{outline-offset:-3px;outline-color:#fff}.appbar-right{padding-right:calc(10px + var(--sar));grid-area:right;align-items:center;gap:6px;min-width:0;padding-left:10px;display:flex}.appbar-right .chipbar{align-items:center;gap:6px;display:flex}.abtn{min-width:40px;height:40px;color:inherit;cursor:pointer;font-weight:600;font-size:var(--fs-sm);white-space:nowrap;background:#ffffff1f;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.abtn:hover{background:#ffffff38}.abtn:focus-visible{outline-color:#fff}.abtn .txt{text-overflow:ellipsis;max-width:140px;overflow:hidden}.app .banners{grid-area:banners;min-width:0}.app.top .content{grid-area:content;min-width:0}.statusbar{height:calc(var(--status-h) + var(--sab));padding:0 calc(12px + var(--sar)) var(--sab) calc(12px + var(--sal));background:var(--panel);border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap;grid-area:status;align-items:center;gap:16px;display:flex;overflow:hidden}.statusbar .it{align-items:center;gap:5px;display:inline-flex}.statusbar .it b{color:var(--ink);font-weight:600}.statusbar .sp{flex:1}.statusbar .clock{font-family:var(--mono);font-variant-numeric:tabular-nums}.avatar{color:#fff;background:#ffffff40;border-radius:50%;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:inline-flex}.main .avatar,.modal .avatar,.user-tile .avatar{background:var(--brand)}.pill{height:26px;font-size:var(--fs-xs);color:inherit;white-space:nowrap;background:#ffffff29;border-radius:999px;align-items:center;gap:5px;padding:0 10px;font-weight:700;display:inline-flex}.pill.ok{background:#4ade8047}.pill.warn{background:#fbbf2461}.pill.bad{background:#f8717166}.app.side{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:1fr;grid-template-areas:"side main"}.sidebar{background:var(--brand-deep);color:#ffffffd9;padding:calc(12px + var(--sat)) 10px 12px calc(10px + var(--sal));flex-direction:column;grid-area:side;gap:3px;display:flex;overflow-y:auto}.sidebar .brand-logo{color:#fff;align-items:center;gap:10px;padding:4px 8px 14px;font-size:1.15rem;font-weight:800;display:flex}.sidebar .brand-logo img{object-fit:contain;background:#fff;border-radius:6px;max-width:150px;height:34px;padding:2px}.nav-item{min-height:var(--touch);color:inherit;cursor:pointer;text-align:left;width:100%;font-weight:600;font-size:var(--fs-sm);background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:8px 12px;display:flex}.nav-item:hover{color:#fff;background:#ffffff1a}.nav-item.active{color:var(--brand);background:#fff}.nav-item .ico{flex:none;width:22px;height:22px;display:inline-flex}.nav-item .kbd{opacity:.6;font-size:10px;font-family:var(--mono);margin-left:auto}.sidebar .spacer{flex:1}.sidebar .user-chip{font-size:var(--fs-xs);color:#fff;background:#ffffff1a;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.main{flex-direction:column;grid-area:main;min-width:0;height:100%;display:flex;overflow:hidden}.app.side .topbar{min-height:56px;padding:var(--sat) 16px 0;background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;display:flex}.app.side .topbar h1{font-size:1.15rem}.app.side .statusbar{grid-area:auto}.content{flex:1;min-height:0;padding:16px;overflow:hidden auto}.content>*{max-width:100%}.row.wrap>*{min-width:0;max-width:100%}.content.flush{padding:0;overflow:hidden}.logo-mark{background:#fff;border-radius:10px;flex:none;width:40px;height:40px;position:relative}.logo-mark:before{content:"";background:var(--brand);height:3px;box-shadow:0 7px 0 var(--brand), 0 14px 0 var(--brand);border-radius:2px;position:absolute;top:12px;left:11px;right:11px}.auth .logo-mark,.modal .logo-mark{background:var(--brand)}.auth .logo-mark:before,.modal .logo-mark:before{background:#fff;box-shadow:0 7px #fff,0 14px #fff}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{padding:16px}.card-title{font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:10px}.stat{padding:14px 16px}.stat .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:800}.stat .l{font-size:var(--fs-sm);color:var(--ink-2);margin-top:2px}.grid{gap:12px;display:grid}.grid.c2{grid-template-columns:repeat(2,1fr)}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}@media (max-width:900px){.grid.c3,.grid.c4{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}.btn{min-height:var(--ctl);border-radius:var(--radius-s);border:1px solid var(--line-2);background:var(--panel);color:var(--ink);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;transition:background .12s,transform 50ms,box-shadow .12s;display:inline-flex}.btn:hover{background:var(--panel-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.primary:hover{background:var(--brand-hover)}.btn.success{background:var(--ok);border-color:var(--ok);color:#fff}.btn.success:hover{background:#166534}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn.danger:hover{background:#b91c1c}.btn.warn{background:var(--warn);border-color:var(--warn);color:#111}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--panel-3)}.btn.soft{background:var(--brand-soft);border-color:var(--brand-soft-2);color:var(--brand)}.btn.soft:hover{background:var(--brand-soft-2)}.btn.lg{border-radius:var(--radius);min-height:54px;padding:0 22px;font-size:1.1rem}.btn.xl{min-height:68px;font-size:1.35rem}.btn.sm{min-height:var(--ctl-sm);font-size:var(--fs-sm);border-radius:7px;padding:0 12px}.btn.block{width:100%}.btn.icon{width:var(--ctl);padding:0}.btn.sm.icon{width:var(--ctl-sm)}.btn kbd{font-family:var(--mono);background:#0000001f;border-radius:4px;margin-left:2px;padding:1px 5px;font-size:10px;font-weight:700}.btn.primary kbd,.btn.success kbd,.btn.danger kbd{background:#ffffff38}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.input,select.input,textarea.input{height:var(--ctl);border-radius:var(--radius-s);border:1px solid var(--line-2);background:var(--panel);width:100%;color:var(--ink);outline:none;padding:0 12px}.input::placeholder{color:var(--ink-3)}textarea.input{resize:vertical;height:auto;padding:10px 12px}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .2)}.input:disabled{background:var(--panel-2);color:var(--ink-3)}.input.lg{height:50px;font-size:1.1rem}.input.xl{text-align:right;font-variant-numeric:tabular-nums;height:64px;font-size:1.9rem;font-weight:700}.check{cursor:pointer;align-items:center;gap:10px;min-height:32px;display:inline-flex}.check input{width:20px;height:20px;accent-color:var(--brand);flex:none}.form-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.form-grid .span2{grid-column:span 2}@media (max-width:560px){.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:span 1}}.seg{background:var(--panel-3);border:1px solid var(--line);border-radius:var(--radius-s);gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.seg button{min-height:34px;color:var(--ink-2);cursor:pointer;white-space:nowrap;font-weight:600;font-size:var(--fs-sm);background:0 0;border:0;border-radius:6px;padding:4px 12px}.seg button.on{background:var(--panel);color:var(--brand);box-shadow:var(--shadow)}.switch{cursor:pointer;align-items:center;gap:12px;min-height:40px;display:inline-flex;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch .tr{background:var(--line-2);border-radius:999px;flex:none;width:46px;height:26px;transition:background .15s;position:relative}.switch .tr:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000004d}.switch input:checked+.tr{background:var(--ok)}.switch input:checked+.tr:after{transform:translate(20px)}.switch input:focus-visible+.tr{outline:3px solid var(--brand);outline-offset:2px}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:40px;height:40px;padding:0}.swatch.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--panel) inset}.swatch.custom{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);position:relative;overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;width:80px;height:80px;position:absolute;top:-10px;bottom:-10px;left:-10px;right:-10px}.opt-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.opt-tile{border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);text-align:left;cursor:pointer;flex-direction:column;gap:6px;min-height:84px;padding:12px;display:flex}.opt-tile:hover{border-color:var(--line-2)}.opt-tile.on{border-color:var(--brand);background:var(--brand-soft)}.opt-tile b{font-size:var(--fs)}.opt-tile span{font-size:var(--fs-xs);color:var(--ink-2)}.opt-tile .ico{color:var(--brand)}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:auto}table.tbl{border-collapse:collapse;width:100%;font-size:var(--fs)}.tbl th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);background:var(--panel-2);border-bottom:1px solid var(--line);z-index:1;white-space:nowrap;padding:10px 12px;position:sticky;top:0}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}.tbl tbody tr:nth-child(2n) td{background:var(--panel-2)}.tbl tr:last-child td{border-bottom:0}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--brand-soft)}.tbl td.r,.tbl th.r{text-align:right;font-variant-numeric:tabular-nums}.tbl td.right,.tbl td.num .tiny{white-space:nowrap}.tbl td.right .btn{vertical-align:middle;display:inline-flex}.badge{font-size:var(--fs-xs);background:var(--panel-3);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-weight:700;display:inline-flex}.badge.ok{background:var(--ok-soft);color:#166534;border-color:#0000}.badge.bad{background:var(--bad-soft);color:#991b1b;border-color:#0000}.badge.warn{background:var(--warn-soft);color:#92400e;border-color:#0000}.badge.info{background:var(--info-soft);color:#075985;border-color:#0000}[data-theme=dark] .badge.ok{color:#bbf7d0}[data-theme=dark] .badge.bad{color:#fecaca}[data-theme=dark] .badge.warn{color:#fde68a}[data-theme=dark] .badge.info{color:#bae6fd}.modal-bg{color:var(--ink);text-align:left;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0206178c;justify-content:center;align-items:center;padding:16px;font-weight:400;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--panel);border-top:4px solid var(--brand);border-radius:14px;flex-direction:column;width:100%;max-width:540px;max-height:95vh;animation:.14s ease-out pop;display:flex;box-shadow:0 30px 80px -20px #00000080}.modal.md{max-width:760px}.modal.lg{max-width:980px}.modal.sm{max-width:420px}.modal-h{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 18px;display:flex}.modal-h h2{flex:1;align-items:center;gap:8px;font-size:1.1rem;display:flex}.modal-b{padding:18px;overflow:auto}.modal-f{padding:12px 18px calc(12px + var(--sab));border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@keyframes pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@media (max-width:560px){.modal-bg{align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-height:96vh}}.toasts{top:calc(14px + var(--sat));z-index:200;flex-direction:column;gap:8px;max-width:calc(100vw - 28px);display:flex;position:fixed;right:14px}.toast{color:#fff;box-shadow:var(--shadow);max-width:380px;font-weight:600;font-size:var(--fs-sm);background:#0f172a;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;animation:.15s pop;display:flex}.toast.ok{background:#14532d}.toast.bad{background:#7f1d1d}.toast.warn{background:#78350f}.banner{font-size:var(--fs-sm);align-items:center;gap:10px;padding:8px 14px;font-weight:600;display:flex}.banner.warn{background:var(--warn-soft);color:#92400e}.banner.bad{background:var(--bad-soft);color:#991b1b}.banner.info{background:var(--info-soft);color:#075985}[data-theme=dark] .banner.warn{color:#fde68a}[data-theme=dark] .banner.bad{color:#fecaca}[data-theme=dark] .banner.info{color:#bae6fd}.tabs{border-bottom:2px solid var(--line);scrollbar-width:thin;gap:2px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs button{min-height:var(--ctl);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-2px;padding:8px 16px;font-weight:600}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}.empty{text-align:center;color:var(--ink-3);padding:40px 16px}.kpi-bar{gap:12px;display:flex;overflow-x:auto}.bars{align-items:flex-end;gap:4px;height:160px;padding-top:10px;display:flex}.bars .b{background:linear-gradient(180deg, var(--brand), var(--brand-hover));border-radius:4px 4px 0 0;flex:1;min-width:6px;position:relative}.bars .b:hover:after{content:attr(data-l);color:#fff;white-space:nowrap;z-index:2;background:#0f172a;border-radius:4px;margin-bottom:4px;padding:3px 6px;font-size:11px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.dot-status{background:var(--line-2);border-radius:50%;width:10px;height:10px;display:inline-block}.dot-status.ok{background:#22c55e}.dot-status.bad{background:#ef4444}.dot-status.warn{background:#f59e0b}.dot-status.sync{background:#38bdf8;animation:1s infinite pulse}@keyframes pulse{50%{opacity:.3}}kbd.k{font-family:var(--mono);border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink-2);border-radius:4px;padding:1px 5px;font-size:10px}.video-scan{background:#000;border-radius:12px;width:100%;max-height:60vh}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);background-clip:padding-box;border:2px solid #0000;border-radius:8px}.numpad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.numpad button{border:1px solid var(--line-2);background:var(--panel);cursor:pointer;border-radius:9px;height:54px;font-size:1.35rem;font-weight:700}.numpad button:hover{background:var(--panel-2)}.numpad button:active{background:var(--panel-3)}.quick{flex-wrap:wrap;gap:6px;display:flex}.quick button{flex:70px}.auth{min-height:100%;padding:calc(20px + var(--sat)) 20px calc(20px + var(--sab));background:linear-gradient(160deg, var(--brand) 0%, var(--brand-deep) 55%, #0b1220 100%);place-items:center;display:grid;overflow:auto}.auth-card{border-top:0;width:100%;max-width:460px}.auth-card.wide{max-width:760px}.auth-card.pad{padding:24px}.auth-foot{color:#ffffffb3;font-size:var(--fs-xs);text-align:center;margin-top:14px}.logo-big{letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.6rem;font-weight:900;display:flex}.logo-big span{color:var(--brand)}.auth-hero{color:#fff;text-align:center;margin-bottom:18px}.auth-hero .logo-big{color:#fff;justify-content:center}.auth-hero .logo-big span{color:#bfdbfe}.auth-hero p{color:#fffc;margin:4px 0 0}.auth-opt{text-align:left;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);cursor:pointer;align-items:center;gap:14px;width:100%;min-height:68px;padding:12px 14px;display:flex}.auth-opt:hover{border-color:var(--brand);background:var(--brand-soft)}.auth-opt .ico{background:var(--brand-soft);width:44px;height:44px;color:var(--brand);border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.auth-opt.primary .ico{background:var(--brand);color:var(--brand-ink)}.auth-opt b{font-size:1.05rem;display:block}.auth-opt span{color:var(--ink-2);font-size:var(--fs-sm)}.pin-dots{justify-content:center;gap:12px;margin:12px 0;display:flex}.pin-dots i{border:2px solid var(--line-2);border-radius:50%;width:16px;height:16px}.pin-dots i.on{background:var(--brand);border-color:var(--brand)}.pin-pad .numpad button{height:64px;font-size:1.6rem}.user-tile{border:1px solid var(--line);background:var(--panel);cursor:pointer;text-align:left;min-height:var(--touch);border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.user-tile:hover{border-color:var(--line-2)}.user-tile.on{border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb), .18);background:var(--brand-soft)}.pos{grid-template-columns:minmax(0, 1fr) var(--pos-right-w);background:var(--bg);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top right""body right""fkeys fkeys";height:100%;min-height:0;display:grid}.pos.no-fkeys{grid-template-rows:auto minmax(0,1fr);grid-template-areas:"top right""body right"}.pos-top{background:var(--panel);border-bottom:1px solid var(--line);z-index:3;grid-area:top;align-items:center;gap:8px;padding:10px 12px;display:flex;position:relative}.pos-top .search{flex:1;min-width:0;position:relative}.pos-top .search .input{border-width:2px;border-color:var(--brand-soft-2);height:54px;padding-left:46px;padding-right:12px;font-size:1.2rem}.pos-top .search .input:focus{border-color:var(--brand)}.pos-top .search .lupa{color:var(--brand);pointer-events:none;display:inline-flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.pos-top .btn{height:54px}.pos-suggest{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);z-index:20;max-height:60vh;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden auto;box-shadow:0 20px 50px -20px #00000073}.pos-suggest button{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;grid-template-columns:34px 90px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 14px;display:grid}.pos-suggest button:last-child{border-bottom:0}.pos-suggest button.on,.pos-suggest button:hover{background:var(--brand-soft)}.pos-suggest .c{font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-2);text-overflow:ellipsis;overflow:hidden}.pos-suggest .n{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.pos-suggest .p{font-variant-numeric:tabular-nums;font-weight:700}.pos-suggest .p small{color:var(--ink-3);font-weight:500}.pos-suggest .th{width:30px;height:30px}.pos-suggest .th .thumb{margin:0}.pos-body{grid-area:body;grid-template-columns:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.pos-left{border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.pos-right{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;grid-area:right;min-height:0;display:flex}.ticket-wrap{background:var(--panel);flex:1;min-height:0;position:relative;overflow:auto}table.ticket{border-collapse:collapse;width:100%;font-size:var(--fs)}.ticket th{z-index:1;background:var(--panel-3);color:var(--ink-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;text-align:left;border-bottom:2px solid var(--line-2);white-space:nowrap;padding:9px 10px;position:sticky;top:0}.ticket td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px}.ticket tbody tr{cursor:pointer}.ticket tbody tr:nth-child(2n) td{background:var(--panel-2)}.ticket tbody tr:hover td{background:var(--brand-soft)}.ticket tbody tr.sel td{background:var(--brand);color:var(--brand-ink)}.ticket tbody tr.sel .tiny,.ticket tbody tr.sel .muted,.ticket tbody tr.sel .bad{color:inherit;opacity:.85}.ticket tbody tr.sel .badge{color:inherit;background:#ffffff40;border-color:#0000}.ticket th.r,.ticket td.r{text-align:right;font-variant-numeric:tabular-nums}.ticket .c{font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap}.ticket .d{font-weight:600}.ticket .d .tiny{font-weight:400;display:block}.ticket td.q{white-space:nowrap;font-weight:700}.ticket td.q .u{font-weight:500;font-size:var(--fs-xs);color:var(--ink-3);margin-left:3px}.ticket td.imp{white-space:nowrap;font-size:1.05rem;font-weight:800}.ticket td.n{color:var(--ink-3);font-size:var(--fs-xs);width:34px}.ticket .qbtn{border:1px solid var(--line-2);background:var(--panel);cursor:pointer;vertical-align:middle;width:30px;height:30px;color:var(--ink);border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.ticket tr.sel .qbtn{color:inherit;background:#fff3;border-color:#fff6}.ticket tr.sel .qbtn:hover{background:#ffffff59}.ticket-empty{color:var(--ink-3);text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.ticket-empty svg{opacity:.35}.ticket-empty b{color:var(--ink-2);font-size:1.1rem}.qk{width:var(--qk-w);background:var(--bg);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(64px,auto);align-content:start;gap:6px;padding:8px;display:grid;overflow-y:auto}.qk .qk-t{font-size:var(--fs-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;grid-column:1/-1;padding:2px 2px 0;font-weight:700}.qk button{border:1px solid var(--line-2);background:var(--panel);cursor:pointer;text-align:left;border-left-width:5px;border-radius:8px;flex-direction:column;justify-content:space-between;gap:2px;min-width:0;min-height:64px;padding:6px 8px;display:flex}.qk button:hover{background:var(--brand-soft)}.qk button:active{transform:scale(.98)}.qk button .n{font-weight:600;font-size:var(--fs-xs);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden}.qk button .p{font-weight:800;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.qk button.empty-slot{color:var(--ink-3);font-size:var(--fs-xs);background:0 0;border-style:dashed;justify-content:center;align-items:center}.pos-deptos{background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:thin;flex:none;gap:6px;padding:8px 12px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line-2);background:var(--panel);min-height:36px;font-weight:600;font-size:var(--fs-sm);cursor:pointer;color:var(--ink);border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.chip.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.chip .dot{border-radius:50%;width:8px;height:8px}.pos-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:8px;padding:10px 12px;display:grid;overflow:auto}.ptile{background:var(--panel);border:1px solid var(--line);cursor:pointer;text-align:left;min-height:96px;color:var(--ink);border-radius:10px;flex-direction:column;gap:4px;padding:10px 10px 10px 14px;transition:transform 60ms,box-shadow .12s;display:flex;position:relative}.ptile:hover{box-shadow:var(--shadow);border-color:var(--brand-soft-2);background:var(--brand-soft);transform:translateY(-1px)}.ptile:active{transform:scale(.98)}.ptile .n{font-weight:600;font-size:var(--fs-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.ptile .p{font-variant-numeric:tabular-nums;margin-top:auto;padding-right:36px;font-size:1.05rem;font-weight:800}.ptile .u{font-size:var(--fs-xs);color:var(--ink-3);font-weight:500}.ptile .stock{background:var(--panel-3);border:1px solid var(--line);color:var(--ink-2);border-radius:999px;padding:1px 6px;font-size:11px;position:absolute;bottom:10px;right:8px}.ptile .stock.low{background:var(--bad-soft);color:#991b1b;border-color:#0000}.ptile .bar{border-radius:0 4px 4px 0;width:5px;position:absolute;top:8px;bottom:8px;left:0}.ptile img{object-fit:cover;border-radius:8px;width:100%;height:64px}.cart-items{flex:1;min-height:0;overflow:auto}.cart-items .citem{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:1fr auto;gap:2px 8px;padding:9px 12px;display:grid}.cart-items .citem:hover{background:var(--panel-2)}.cart-items .citem.sel{background:var(--brand-soft);box-shadow:inset 4px 0 0 var(--brand)}.cart-items .citem .n{font-weight:600;font-size:var(--fs-sm)}.cart-items .citem .d{font-size:var(--fs-xs);color:var(--ink-2)}.cart-items .citem .imp{text-align:right;font-variant-numeric:tabular-nums;grid-row:span 2;align-self:center;font-size:1.05rem;font-weight:700}.cart-h{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 12px;display:grid}.cart-h .btn.cli{justify-content:flex-start;min-width:0}.cart-h .btn.cli .txt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cart-h .seg{grid-column:1/-1;justify-content:stretch}.cart-h .seg button{flex:1}.cart-tot{border-top:1px solid var(--line);background:var(--panel-2);padding:12px 14px}.cart-tot .line{font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;display:flex}.cart-tot .total{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:flex-end;margin-top:6px;padding:10px 12px;display:flex}.cart-tot .total .lbl{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-weight:700}.cart-tot .total .amt{letter-spacing:-.03em;color:var(--total);font-variant-numeric:tabular-nums;word-break:break-all;font-size:clamp(34px,3.2vw,52px);font-weight:800;line-height:1.05}.cart-tot .last{font-size:var(--fs-xs);color:var(--ink-2);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.cart-tot .last b{color:var(--ink)}.cart-actions{padding:8px 12px calc(12px + var(--sab));grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.cart-actions .btn{min-height:46px;font-size:var(--fs-xs);flex-direction:column;gap:0;padding:4px 6px}.cart-actions .btn svg{width:18px;height:18px}.cart-actions .btn.pay{border-radius:var(--radius);min-height:76px;box-shadow:0 8px 20px -10px rgba(var(--brand-rgb), .7);flex-direction:row;grid-column:span 3;gap:12px;font-size:1.25rem}.cart-actions .btn.pay .num{font-size:1.5rem}.pos-right .rowtools{border-top:1px solid var(--line);background:var(--panel-2);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;display:flex}.pos-right .sel-panel{flex-direction:column;justify-content:flex-end;gap:4px;padding:10px 14px;display:flex}.pos-right .sel-info{min-width:0;font-size:var(--fs-xs);color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fkeys{padding:6px calc(8px + var(--sar)) calc(6px + var(--sab)) calc(8px + var(--sal));background:var(--panel-3);border-top:1px solid var(--line-2);scrollbar-width:none;min-height:var(--fkeys-h);grid-area:fkeys;gap:4px;display:flex;overflow-x:auto}.fkeys::-webkit-scrollbar{display:none}.fkey{border:1px solid var(--line-2);background:var(--panel);cursor:pointer;min-width:78px;min-height:48px;color:var(--ink);white-space:nowrap;border-radius:7px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:1px;padding:4px 6px;display:flex}.fkey kbd{font-family:var(--mono);color:var(--brand);font-size:11px;font-weight:800}.fkey .l{font-size:var(--fs-xs);font-weight:600}.fkey:hover{background:var(--brand-soft)}.fkey:active{transform:translateY(1px)}.fkey:disabled{opacity:.4;cursor:not-allowed}.fkey.pay{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);flex-grow:1.4}.fkey.pay kbd{color:inherit}.fkey.pay:hover{background:var(--brand-hover)}.fkey.danger:hover{background:var(--bad-soft);color:#991b1b}@media print{.app,.modal-bg,.toasts,.auth{display:none!important}}@media (max-width:1180px){:root{--pos-right-w:330px;--qk-w:132px}.hide-md{display:none!important}.modtab{min-width:60px;padding:4px 4px 6px;font-size:11px}.appbar-logo .biz{max-width:130px}.qk{grid-template-columns:1fr}.ticket th.ex,.ticket td.ex{display:none}.modtab .ico svg{width:22px;height:22px}.abtn .txt{max-width:90px}}@media (max-width:1024px){.fkey{min-width:66px}.cart-tot .total .amt{font-size:34px}}@media (max-width:900px){:root{--appbar-h:52px}.app.top{grid-template:"logo right""banners banners""content content"1fr"tabs tabs"/1fr auto}.modtabs{padding:0 var(--sal) var(--sab) var(--sar);border-top:1px solid #ffffff26;justify-content:flex-start;min-height:0}.modtab{border-radius:8px;flex:1 0 64px;min-width:64px;min-height:52px;margin:4px 0;padding:6px 4px;font-size:11px}.modtab.active{background:#fffffff2}.modtab .kbd,.statusbar{display:none}.appbar-logo img{height:32px}.appbar-logo .biz b{font-size:.95rem}.app.side{grid-template:"main"1fr"side"/1fr}.sidebar{padding:4px var(--sar) calc(4px + var(--sab)) var(--sal);border-top:1px solid #ffffff26;flex-direction:row;gap:2px;overflow-x:auto}.sidebar .brand-logo,.sidebar .spacer,.sidebar .user-chip,.nav-item .kbd{display:none}.nav-item{text-align:center;flex-direction:column;justify-content:center;gap:4px;min-width:60px;padding:6px 8px;font-size:11px}.content{padding:10px}.pos{grid-template:"top""body"minmax(0,1fr)"right"/1fr}.pos.no-fkeys{grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top""body""right"}.fkeys{display:none}.pos-top{gap:6px;padding:8px}.pos-top .search .input{height:48px;font-size:1.05rem}.pos-top .btn{height:48px}.pos-top .btn .txt{display:none}.pos-body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.qk{border-left:0;border-bottom:1px solid var(--line);order:-1;gap:6px;width:auto;padding:6px 8px;display:flex;overflow:auto hidden}.qk .qk-t{display:none}.qk button{flex:0 0 118px;min-height:52px}.qk button.empty-slot{display:none}.pos-left{border-right:0}.pos-right{border-left:0;border-top:2px solid var(--line-2);max-height:62vh}.pos-right.collapsed .cart-items,.pos-right.collapsed .cart-h,.pos-right.collapsed .rowtools,.modo-tabla .pos-right .cart-items{display:none}.cart-tot{padding:8px 12px}.cart-tot .total{flex-direction:row;justify-content:space-between;align-items:baseline;padding:6px 10px}.cart-tot .total .amt{font-size:32px}.cart-actions{padding:6px 10px calc(8px + var(--sab))}.cart-actions .btn.pay{min-height:58px;font-size:1.1rem}.pos-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr))}.ticket th.c,.ticket td.c,.ticket td.n,.ticket th.n{display:none}.ticket td{padding:8px}.fab-desk{display:none!important}}@media (max-width:560px){.appbar-logo .biz span{display:none}.hide-sm{display:none!important}.cart-actions .btn{font-size:11px}.ticket th.pu,.ticket td.pu{display:none}.ticket .d .tiny{display:block}.pos-top .search{position:static}.pos-suggest{left:12px;right:12px}.pos-suggest button{grid-template-columns:34px minmax(0,1fr) auto}.pos-suggest .c{display:none}}@media (max-height:520px) and (orientation:landscape){:root{--appbar-h:44px}.app.top{grid-template:"logo tabs right""banners banners banners""content content content"1fr/auto 1fr auto}.modtabs{border-top:0;padding:2px 4px 0}.modtab{border-radius:6px 6px 0 0;flex:none;gap:1px;min-width:58px;min-height:40px;margin:0;padding:2px 6px;font-size:10px}.modtab.active{background:var(--bg)}.modtab .ico svg{width:18px;height:18px}.appbar-logo .biz,.abtn .txt,.appbar-right .pill{display:none}.abtn{min-width:34px;height:34px}.pos{grid-template:"top right""body right"minmax(0,1fr)/1fr 300px}.pos-top{padding:6px}.pos-top .search .input{height:42px;font-size:1rem}.pos-top .btn{height:42px}.pos-body{grid-template-rows:minmax(0,1fr)}.qk{display:none}.pos-right{border-top:0;border-left:1px solid var(--line);max-height:none;overflow-y:auto}.cart-h{padding:6px 8px}.cart-items{flex:60px;min-height:60px}.modo-tabla .pos-right .cart-items{display:none}.pos{grid-template-columns:1fr 320px}.rowtools{flex-wrap:nowrap;padding:4px 8px}.rowtools .btn.sm{padding:0 8px}.cart-tot{padding:6px 10px}.cart-actions{z-index:2;background:var(--panel);border-top:1px solid var(--line);position:sticky;bottom:0}.cart-tot .total .amt{font-size:26px}.cart-tot .line,.cart-tot .last{display:none}.cart-actions{padding:4px 8px calc(6px + var(--sab));gap:4px}.cart-actions .btn{min-height:38px}.cart-actions .btn.pay{min-height:46px;font-size:1rem}.btn.lg,.btn.xl{min-height:42px;font-size:1rem}.numpad button{height:40px;font-size:1.05rem}.pin-pad .numpad button{height:42px}.modal-b{padding:10px}.modal{max-height:100vh}.sidebar{padding:2px}.nav-item{min-width:48px;min-height:36px;padding:4px 6px}.content{padding:8px}}.thumb{object-fit:cover;vertical-align:middle;background:var(--panel-2);border-radius:7px;flex:none;width:30px;height:30px;margin-right:8px}.thumb.lg{border-radius:9px;width:44px;height:44px}.img-picker{grid-template-columns:96px 1fr;align-items:start;gap:12px;display:grid}.img-picker .preview{object-fit:cover;border:1px solid var(--line);background:var(--panel-2);border-radius:14px;width:96px;height:96px}.emoji-grid{border:1px solid var(--line);background:var(--panel);border-radius:10px;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:4px;max-height:190px;padding:4px;display:grid;overflow:auto}.emoji-grid button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;height:38px;font-size:22px}.emoji-grid button:hover,.emoji-grid button.on{background:var(--panel-2);border-color:var(--brand)}.emoji-grupo{text-transform:uppercase;color:var(--ink-3);grid-column:1/-1;padding:6px 4px 2px;font-size:11px;font-weight:700}@media (max-width:560px){.img-picker{grid-template-columns:1fr}}.menu-logo{flex:none;align-items:center;display:flex;position:relative}.logo-btn{cursor:pointer;color:inherit;background:0 0;border:0;border-radius:10px;align-items:center;padding:0;display:flex}.logo-btn:hover .logo-mark,.logo-btn[aria-expanded=true] .logo-mark{box-shadow:0 0 0 3px #ffffff59}.logo-btn img{object-fit:contain;background:#fff;border-radius:6px;max-width:140px;height:40px;padding:2px}.sidebar .logo-btn img{height:34px}.menu-pop{top:calc(var(--appbar-h) + var(--sat) + 6px);background:var(--panel);min-width:280px;max-width:min(92vw,360px);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--radius);z-index:60;text-align:left;font-weight:400;font-size:var(--fs);padding:6px;position:fixed;left:10px;box-shadow:0 20px 50px -20px #00000073}.sidebar .menu-pop{left:0}.menu-pop .menu-head{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;min-width:0;margin-bottom:4px;padding:8px 10px 10px;display:flex}.menu-pop .menu-head .tiny{color:var(--ink-3)}.menu-pop button{text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;min-height:40px;padding:9px 10px;display:flex}.menu-pop button:hover{background:var(--brand-soft);outline:none}.menu-pop button:focus-visible{background:var(--brand-soft);outline:none}.menu-pop button:disabled{opacity:.6;cursor:default}.menu-pop button.danger{color:var(--bad)}.menu-pop button.danger.confirm{background:color-mix(in srgb, var(--bad) 12%, transparent);font-weight:600}.menu-pop .menu-sep{background:var(--line);height:1px;margin:4px 0}@media (max-width:560px){.menu-pop{max-width:none;left:8px;right:8px}}.kv{grid-template-columns:130px minmax(0,1fr);align-items:center;gap:8px 12px;margin:0;display:grid}.kv dt{color:var(--ink-3);font-size:var(--fs-sm)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.kbd.dark{background:var(--panel-2);color:var(--ink);border:1px solid var(--line-2)}
