@font-face{font-family:Onest;src:url(/fonts/Onest-Variable.ttf) format("truetype-variations"),url(/fonts/Onest-Variable.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--font: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.625rem;--text-2xl: 2.125rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-full: 999px;--ease: cubic-bezier(.2, .7, .2, 1);--dur: .14s;--brand-h: 197;--accent-h: 346;--brand: #008ac2;--brand-strong: #006f9f;--brand-soft: #e3f1f8;--brand-ink: #ffffff;--brand-solid: #008ac2;--brand-solid-hover: #006f9f;--sky: #00aedd;--accent: #fe1950;--accent-soft: #ffe6ec;--accent-ink: #ffffff;--ok: #15803d;--ok-soft: #dcfce7;--warn: #b45309;--warn-soft: #fef3c7;--danger: #fe1950;--danger-soft: #ffe6ec;--info: #006f9f;--info-soft: #e3f1f8;--bg: #f8f9fa;--surface: #ffffff;--surface-2: #f3f5f7;--surface-hover: #edf5f9;--line: #e4e8ec;--line-strong: #ccd4db;--text: #202531;--text-2: #465061;--text-3: #667180;--shadow-sm: 0 1px 2px rgb(32 37 49 / .05);--shadow-md: 0 8px 24px -8px rgb(32 37 49 / .18);--shadow-lg: 0 24px 60px -16px rgb(32 37 49 / .35);--ring: 0 0 0 3px color-mix(in srgb, var(--sky) 45%, transparent);--glass: rgb(255 255 255 / .9);--scrim: rgb(32 37 49 / .5);--side-bg: #008ac2;--side-text: rgb(255 255 255 / .86);--side-text-strong: #ffffff;--side-hover: rgb(255 255 255 / .14);--side-active-bg: #ffffff;--side-active-text: #006f9f;--side-w: 268px;--side-w-collapsed: 76px;color-scheme:light}:root[data-theme=dark]{--brand: #38b6e5;--brand-strong: #7fd0f0;--brand-soft: #123446;--sky: #5fd0f2;--accent: #ff5a82;--accent-soft: #3d1722;--accent-ink: #1a0509;--ok: #4ade80;--ok-soft: rgb(34 197 94 / .16);--warn: #fbbf24;--warn-soft: rgb(245 158 11 / .16);--danger: #ff6b8b;--danger-soft: rgb(255 90 130 / .16);--info: #7fd0f0;--info-soft: #123446;--bg: #0e141b;--surface: #151d27;--surface-2: #111922;--surface-hover: #1b2733;--line: #243242;--line-strong: #31445a;--text: #e9eef3;--text-2: #b3bfcc;--text-3: #8392a3;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 8px 24px -8px rgb(0 0 0 / .6);--shadow-lg: 0 28px 70px -14px rgb(0 0 0 / .75);--glass: rgb(21 29 39 / .9);--scrim: rgb(0 0 0 / .62);--side-bg: #00405c;--side-active-text: #00405c;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:var(--text-md);line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"cv11" 1}h1,h2,h3,h4{margin:0;line-height:1.15;letter-spacing:-.01em;font-family:var(--font-display);font-weight:600}h1{font-size:var(--text-xl);letter-spacing:-.02em}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}p{margin:0 0 var(--sp-3);max-width:75ch}a{color:var(--sky);text-decoration:none;font-weight:600}a:hover{text-decoration:underline;text-underline-offset:3px}small{font-size:var(--text-xs)}code,kbd{font-family:var(--font-mono);font-size:.9em}kbd{padding:1px 6px;border-radius:5px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text-2);font-size:var(--text-xs)}:focus-visible{outline:2px solid var(--sky);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:color-mix(in srgb,var(--sky) 35%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.muted{color:var(--text-3)}.num{font-variant-numeric:tabular-nums;text-align:right}.mono{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.input,.textarea,.select,select,.combo-value,.combo-item,table.data td,.kv dd,.data-text,.product-name,.product-code,.product-brand,.product-cat,.product-row-cat,.pv-name,.cart-line-name,.cart-line-includes{text-transform:uppercase}.input::placeholder,.textarea::placeholder,.combo-placeholder{text-transform:none}input[type=password],input[type=email],input[type=url],.secret,.code-area .textarea,.keep-case,.keep-case .input,.keep-case .textarea,.keep-case td,.keep-case dd{text-transform:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font:inherit;font-size:var(--text-sm);font-weight:650;line-height:1;padding:10px 16px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;min-height:40px;transition:background var(--dur),border-color var(--dur),color var(--dur),transform var(--dur) var(--ease)}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--brand);color:var(--brand-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand-solid);color:var(--brand-ink);border-color:var(--brand-solid)}.btn.primary:hover:not(:disabled){background:var(--brand-solid-hover);border-color:var(--brand-solid-hover);color:var(--brand-ink)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line-strong))}.btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.btn.danger.solid{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--surface-hover);border-color:transparent}.btn.sm{padding:6px 11px;font-size:var(--text-xs);border-radius:var(--r-sm);min-height:32px}.btn.lg{padding:13px 22px;font-size:var(--text-md);min-height:48px}.btn.block{width:100%}.btn.icon{padding:9px;min-width:40px}.btn.sm.icon{padding:6px;min-width:32px}.spinner{width:1em;height:1em;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-4);min-width:0}.field>.label{font-size:var(--text-sm);font-weight:650;color:var(--text-2)}.field>.label .req{color:var(--accent);margin-left:2px}.field .hint{color:var(--text-3);font-size:var(--text-xs)}.field .error{color:var(--danger);font-size:var(--text-xs);font-weight:600}.input,.select,.textarea{font:inherit;width:100%;padding:10px 12px;border-radius:var(--r-md);min-height:42px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);transition:border-color var(--dur),box-shadow var(--dur)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}.field.invalid .input,.field.invalid .select,.field.invalid .textarea{border-color:var(--danger)}.textarea{min-height:88px;resize:vertical}.combo-root{position:relative;min-width:0}.combo-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;cursor:pointer}.combo-trigger:disabled{cursor:not-allowed;opacity:.6}.combo-trigger svg{flex-shrink:0;color:var(--text-3)}.combo-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-placeholder{color:var(--text-3)}.combo-sm{display:inline-block}.combo-root.combo-sm .combo-trigger{min-height:30px;padding:2px 8px;font-size:var(--text-sm);gap:6px}.combo-pop{position:fixed;z-index:150;display:flex;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);overflow:hidden;font-size:var(--text-md)}.combo-search{position:relative;display:flex;align-items:center;flex-shrink:0;padding:8px;border-bottom:1px solid var(--line)}.combo-search>svg{position:absolute;left:19px;z-index:1;color:var(--text-3);pointer-events:none}.combo-pop .combo-search .input{padding:6px 10px 6px 34px;min-height:36px;width:100%}.combo-list{list-style:none;margin:0;padding:4px;flex:1 1 auto;min-height:0;overflow-y:auto}.combo-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--text-sm)}.combo-item.active{background:var(--surface-hover)}.combo-item[aria-selected=true]{font-weight:650;color:var(--brand-strong)}.combo-item.muted{color:var(--text-3)}.combo-item.disabled{color:var(--text-3);cursor:not-allowed;opacity:.6}.combo-item.create{justify-content:flex-start;color:var(--brand-strong);font-weight:650;border-top:1px dashed var(--line);margin-top:2px}.combo-none{padding:10px;color:var(--text-3);font-size:var(--text-sm)}.combo-failed{color:var(--danger)}.combo-tip{flex-shrink:0;padding:8px 12px;border-top:1px solid var(--line);color:var(--text-3);font-size:var(--text-xs);background:var(--surface-2)}.combo-error{flex-shrink:0;padding:8px 12px;color:var(--danger);background:var(--danger-soft);font-size:var(--text-xs);font-weight:600}.input-group{position:relative;display:flex;align-items:center}.input-group>.icon-slot{position:absolute;left:12px;color:var(--text-3);pointer-events:none;display:flex}.input-group>.input{padding-left:38px}.input-group .affix{position:absolute;right:12px;color:var(--text-3);font-size:var(--text-sm)}.check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--text-md)}.check input{width:18px;height:18px;accent-color:var(--brand)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--sp-4)}.form-grid .span-2{grid-column:1 / -1}.form-section{margin:var(--sp-5) 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:var(--text-md);font-weight:600;color:var(--text)}.form-section:first-child{margin-top:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-5)}.card.flush{padding:0;overflow:hidden}.card.interactive{transition:border-color var(--dur),background var(--dur);text-decoration:none;color:inherit;display:block}.card.interactive:hover{border-color:var(--brand);background:var(--surface-hover);text-decoration:none}.card-title{margin-bottom:var(--sp-4)}.page{animation:page-in .16s ease-out both}@keyframes page-in{0%{opacity:0}to{opacity:1}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.page-head .subtitle{color:var(--text-3);margin:6px 0 0;font-size:var(--text-md)}.crumbs{display:flex;gap:6px;align-items:center;font-size:var(--text-sm);color:var(--text-3);margin-bottom:8px}.crumbs a{color:var(--text-3);font-weight:500}.actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.toolbar{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-4)}.toolbar .grow{flex:1;min-width:200px}.section-title{margin:var(--sp-6) 0 var(--sp-3)}.stack{display:flex;flex-direction:column;gap:var(--sp-3)}.cluster{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4)}.grid-cards>.card{margin-bottom:0}.stat{display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}.stat .stat-label{font-size:var(--text-sm);color:var(--text-2);font-weight:650}.stat .stat-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.stat .stat-note{font-size:var(--text-xs);color:var(--text-3)}.stat .stat-icon{position:absolute;right:var(--sp-4);top:var(--sp-4);width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-strong)}.stat.tone-ok .stat-icon{background:var(--ok-soft);color:var(--ok)}.stat.tone-warn .stat-icon{background:var(--warn-soft);color:var(--warn)}.stat.tone-danger .stat-icon{background:var(--accent-soft);color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:650;background:var(--surface-2);color:var(--text-2)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.plain:before{display:none}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.brand{background:var(--brand-soft);color:var(--brand-strong)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--brand-solid);color:var(--brand-ink);font-family:var(--font-display);font-weight:600;font-size:var(--text-sm)}.avatar.sm{width:30px;height:30px;font-size:var(--text-xs)}.alert{display:flex;gap:var(--sp-3);align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);margin-bottom:var(--sp-4);font-size:var(--text-sm);border:1px solid transparent;font-weight:500}.alert.error{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.alert.ok{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}.alert.warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.alert.info{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb,var(--info) 25%,transparent)}.alert .alert-body{flex:1}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table.data{width:100%;border-collapse:separate;border-spacing:0;font-size:.8125rem}table.data th{position:sticky;top:0;z-index:1;text-align:left;padding:9px 12px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--brand-ink);background:var(--brand-solid);white-space:nowrap}table.data td{padding:7px 12px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}table.data td .cell{max-width:260px;white-space:normal;overflow-wrap:break-word;line-height:1.3}table.data td.wrap .cell{max-width:320px}table.data td.wrap{white-space:normal;min-width:160px}table.data tr:last-child td{border-bottom:0}table.data tbody tr{transition:background var(--dur)}table.data tbody tr:hover{background:var(--surface-hover)}table.data tbody tr.clickable{cursor:pointer}table.data .right{text-align:right;font-variant-numeric:tabular-nums}table.data .right .cell{margin-left:auto}table.data .row-index{width:1%;text-align:center;color:var(--text-3);font-weight:600;font-size:.75rem}table.data th.row-index{color:var(--brand-ink)}table.data .row-actions{width:1%;text-align:right}@media (min-width: 721px){table.data th.row-actions{position:sticky;right:0;z-index:2}table.data td.row-actions{position:sticky;right:0;z-index:1;background:var(--surface);box-shadow:-8px 0 12px -10px #0f172a59}table.data tbody tr:hover td.row-actions{background:var(--surface-hover)}}.cell-primary{font-weight:650}.cell-secondary{color:var(--text-3);font-size:var(--text-xs)}.cell-primary+.cell-secondary,table.data .cell>*+.cell-secondary{display:block;margin-top:2px;line-height:1.3}.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:12px 16px;border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--text-3);flex-wrap:wrap}.pager .cluster .select{width:auto;padding:6px 10px;min-height:34px}nav.pager{padding:8px 16px;background:var(--surface-2);font-size:.8125rem;color:var(--text-2)}.pager-info{display:inline-flex;align-items:center;gap:8px}.pager-info svg{color:var(--text-3);flex-shrink:0}.pager-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pager-size{display:inline-flex;align-items:center;gap:8px}.pager-buttons{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pager-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--text);font:inherit;font-size:.75rem;font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur),border-color var(--dur),color var(--dur)}.pager-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--brand)}.pager-btn.active{background:var(--brand-solid);border-color:var(--brand-solid);color:var(--brand-ink);font-weight:700}.pager-btn:disabled{opacity:.35;cursor:not-allowed}.pager-ellipsis{min-width:16px;text-align:center;color:var(--text-3)}.ll{--ll-size: 110px;display:flex;flex-direction:column;align-items:center;gap:10px}.ll-stage{position:relative;width:var(--ll-size);height:var(--ll-size);display:grid;place-items:center}.ll-rays{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.ll-ray{stroke-width:2.6;stroke-linecap:round;opacity:.2;animation:ll-ray 1.8s linear infinite;transform-box:view-box}.ll-logo{position:relative;width:64%;height:64%;object-fit:contain;animation:ll-breathe 1.8s ease-in-out infinite}.ll-name{position:relative;max-width:70%;text-align:center;font-family:var(--font-display);font-weight:800;line-height:1.1;font-size:calc(var(--ll-size) * .13);color:var(--brand-strong);overflow-wrap:anywhere;animation:ll-breathe 1.8s ease-in-out infinite}.ll-label{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.02em;color:var(--brand-strong)}.ll-dots:after{content:".";animation:ll-dots 1.8s steps(1) infinite}@keyframes ll-ray{0%{opacity:1;stroke-width:3.6}60%{opacity:.25;stroke-width:2.4}to{opacity:.2;stroke-width:2.4}}@keyframes ll-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes ll-dots{0%{content:"."}33%{content:".."}66%{content:"..."}}@media (prefers-reduced-motion: reduce){.ll-ray,.ll-logo,.ll-name,.ll-dots:after{animation:none}.ll-ray{opacity:.7}}.block-loader{display:grid;place-items:center;padding:var(--sp-7) var(--sp-4);min-height:220px}.block-loader.inline{min-height:0;padding:var(--sp-3)}table.data td.table-loading{padding:0}table.data td.table-loading .block-loader{min-height:260px}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;border-radius:inherit;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:lo-fade .2s ease}@keyframes lo-fade{0%{opacity:0}to{opacity:1}}.dialog,.drawer{position:relative}.dialog>.loading-overlay.auto,.drawer>.loading-overlay.auto{display:none}.dialog:has(>.overlay-foot .btn[aria-busy=true])>.loading-overlay.auto,.drawer:has(>.overlay-foot .btn[aria-busy=true])>.loading-overlay.auto{display:flex}.product-grid>.block-loader{grid-column:1 / -1}.table-card{position:relative}.table-busy{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:flex-start;justify-content:center;padding-top:72px;background:color-mix(in srgb,var(--surface) 72%,transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);animation:lo-fade .2s ease}.inline-loader{display:flex;align-items:center;gap:10px;padding:8px 10px;color:var(--text-3);font-size:var(--text-sm);font-weight:600}.inline-loader .ll{gap:0}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-7) var(--sp-5);color:var(--text-3)}.empty .empty-art{color:var(--brand);margin-bottom:var(--sp-2)}.empty h3{color:var(--text);font-size:var(--text-lg)}.empty p{max-width:380px;margin:0}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--line);margin-bottom:var(--sp-5);overflow-x:auto}.tab{font:inherit;font-weight:650;font-size:var(--text-sm);color:var(--text-3);background:none;border:0;padding:12px 16px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--brand-strong);border-color:var(--brand)}.segmented{display:inline-flex;padding:3px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);gap:2px}.segmented button{font:inherit;font-size:var(--text-sm);font-weight:650;padding:6px 14px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);cursor:pointer;min-height:32px}.segmented button[aria-pressed=true]{background:var(--brand-solid);color:var(--brand-ink)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:100;display:flex;animation:fade .12s ease both}@keyframes fade{0%{opacity:0}to{opacity:1}}.scrim.center{align-items:center;justify-content:center;padding:var(--sp-4)}.scrim.right{justify-content:flex-end}.dialog{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:min(520px,100%);max-height:92dvh;display:flex;flex-direction:column;animation:pop .18s var(--ease) both}@keyframes pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.drawer{background:var(--surface);width:min(560px,100%);height:100dvh;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide .2s var(--ease) both}.drawer.wide{width:min(820px,100%)}@keyframes slide{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}.overlay-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.overlay-body{padding:var(--sp-5);overflow-y:auto;flex:1;overscroll-behavior:contain}.overlay-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg);padding-bottom:max(var(--sp-4),env(safe-area-inset-bottom))}.drawer .overlay-foot{border-radius:0}.toasts{position:fixed;top:var(--sp-4);left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2);width:min(420px,calc(100vw - 32px));pointer-events:none}.toasts>*{pointer-events:auto}.toast{display:flex;gap:var(--sp-3);align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);background:var(--text);color:var(--bg);box-shadow:var(--shadow-md);font-size:var(--text-sm);font-weight:550;animation:pop .2s var(--ease) both}.toast .toast-icon{flex-shrink:0;margin-top:1px}.toast.success .toast-icon{color:#4ade80}.toast.error .toast-icon{color:#ff7b9b}.toast.info .toast-icon{color:var(--sky)}.toast .toast-body{flex:1}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px var(--sp-5);margin:0;font-size:var(--text-sm)}.kv dt{color:var(--text-3)}.kv dd{margin:0;font-weight:600}@media (max-width: 720px){.form-grid{grid-template-columns:1fr}.page-head{align-items:stretch}.page-head .actions{width:100%}.card,.overlay-body{padding:var(--sp-4)}.overlay-head,.overlay-foot{padding-left:var(--sp-4);padding-right:var(--sp-4)}.scrim.center{align-items:flex-end;padding:0}.dialog{width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:94dvh}.drawer,.drawer.wide{width:100%}.toasts{top:max(var(--sp-3),env(safe-area-inset-top))}}.image-upload{display:flex;gap:var(--sp-4);align-items:center;margin-bottom:var(--sp-4)}.image-upload .error{color:var(--danger);font-size:var(--text-xs);font-weight:600}.image-upload-preview{width:120px;height:84px;flex-shrink:0;border-radius:var(--r-md);border:1px dashed var(--line-strong);background:var(--surface-2);display:grid;place-items:center;overflow:hidden;color:var(--text-3)}.image-upload-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.img-preview{position:relative;display:grid;place-items:center;overflow:hidden;color:var(--text-3)}.img-preview>img{width:100%;height:100%;display:block}.img-preview-busy{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;background:color-mix(in srgb,var(--surface) 78%,transparent);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.logo-cell{width:44px;height:32px;object-fit:contain;border-radius:var(--r-sm);background:#fff;border:1px solid var(--line);padding:2px;vertical-align:middle}.file-drop{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5);border:2px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--surface-2);color:var(--brand);transition:border-color var(--dur),background var(--dur);flex-wrap:wrap}.file-drop.over{border-color:var(--brand);background:var(--brand-soft)}.file-drop.has-file{border-style:solid;border-color:var(--brand);background:var(--surface)}.file-drop-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:160px;color:var(--text);overflow-wrap:anywhere}.file-drop-text .muted{font-size:var(--text-sm)}.scan-test{display:flex;flex-direction:column;gap:4px;padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);margin-bottom:var(--sp-3)}.scan-test.waiting{flex-direction:row;align-items:center;gap:var(--sp-3);color:var(--text-3);border-style:dashed}.scan-code{font-size:var(--text-xl);overflow-wrap:anywhere;line-height:1.2}.scan-ok{color:var(--ok);font-weight:650;font-size:var(--text-sm)}.scan-warn{color:var(--warn);font-weight:650;font-size:var(--text-sm)}.camera-view{width:100%;max-height:60dvh;border-radius:var(--r-md);background:#000;object-fit:cover}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3);margin:var(--sp-4) 0}.stat-grid>.card{margin-bottom:0;padding:var(--sp-3) var(--sp-4)}.stat-grid .stat-value{font-size:var(--text-xl)}.btn.edit{color:var(--info);border-color:color-mix(in srgb,var(--info) 40%,var(--line-strong));background:var(--info-soft)}.btn.edit:hover:not(:disabled){background:var(--info);border-color:var(--info);color:#fff}.btn.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--line-strong));background:var(--warn-soft)}.btn.warn:hover:not(:disabled){background:var(--warn);border-color:var(--warn);color:#fff}.btn.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line-strong));background:var(--ok-soft)}.btn.ok:hover:not(:disabled){background:var(--ok);border-color:var(--ok);color:#fff}.btn.danger{background:var(--danger-soft)}.btn.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}@media (max-width: 720px){.table-wrap{overflow-x:visible}table.data,table.data tbody,table.data tr,table.data td{display:block;width:100%}table.data thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}table.data tbody tr{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line)}table.data tbody tr:last-child{border-bottom:0}table.data td,table.data td.right{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:7px 0;border:0;white-space:normal;text-align:right;min-width:0;overflow-wrap:anywhere}table.data td:before{content:attr(data-label);flex:0 0 38%;max-width:38%;text-align:left;color:var(--text-3);font-size:var(--text-xs);font-weight:700}table.data td.wrap{min-width:0}table.data td.row-index{display:none}table.data td.table-loading{display:block}table.data td.table-loading:before{display:none}table.data td .cell,table.data td.wrap .cell{max-width:none}table.data td>*{min-width:0}table.data td.row-actions{display:block;padding-top:var(--sp-3);margin-top:var(--sp-2);border-top:1px dashed var(--line)}table.data td.row-actions:before{display:none}table.data td.row-actions .actions{justify-content:flex-start!important;flex-wrap:wrap;gap:var(--sp-2)}.pager{flex-direction:column;align-items:stretch;text-align:center}.pager .cluster{justify-content:center;flex-wrap:wrap}.pager-info,.pager-nav,.pager-buttons{justify-content:center}}@media (max-width: 360px){.shell .content{padding:var(--sp-3) var(--sp-3) var(--sp-6)}.card{padding:var(--sp-3)}table.data td:before{flex-basis:34%;max-width:34%}table.data tbody tr{padding:var(--sp-3)}.btn{padding:9px 12px}.btn.sm{padding:6px 9px}.toasts{width:calc(100vw - 16px)}}@media (max-width: 240px){table.data td{flex-direction:column;align-items:flex-start;text-align:left;gap:2px}table.data td:before{flex-basis:auto;max-width:100%}.page-head h1{font-size:var(--text-lg)}}.app-loader{min-height:100dvh;display:grid;place-items:center;background:var(--bg, var(--surface))}.shell{display:flex;min-height:100dvh}.sidebar{width:var(--side-w);flex-shrink:0;background:var(--side-bg);color:var(--side-text);display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;transition:width .2s var(--ease);z-index:30}.brand-tag{display:flex;align-items:center;margin:var(--sp-4) var(--sp-4) var(--sp-2);min-height:56px;color:#fff}.brand-tag .brand-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl, 1.35rem);letter-spacing:-.02em;color:#fff;line-height:1.15;white-space:normal;overflow-wrap:anywhere;text-wrap:balance}.brand-company{padding:0 var(--sp-5) var(--sp-2);font-size:var(--text-xs);color:var(--side-text);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar nav{flex:1;overflow-y:auto;padding:var(--sp-2) var(--sp-3) var(--sp-4)}.nav-group-title{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;cursor:pointer;font:inherit;padding:var(--sp-4) var(--sp-3) var(--sp-1);font-size:var(--text-xs);color:var(--side-text);font-weight:700;opacity:.8}.nav-link{display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-radius:var(--r-md);color:var(--side-text);font-size:var(--text-sm);font-weight:600;text-decoration:none;position:relative;min-height:42px;transition:background var(--dur),color var(--dur)}.nav-link:hover{background:var(--side-hover);color:var(--side-text-strong);text-decoration:none}.nav-link.active{background:var(--side-active-bg);color:var(--side-active-text)}.nav-link .nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-link svg{flex-shrink:0}.sidebar-foot{padding:var(--sp-3);border-top:1px solid rgb(255 255 255 / .18)}.sidebar.collapsed{width:var(--side-w-collapsed)}.sidebar.collapsed .brand-tag{margin-inline:var(--sp-2);justify-content:center}.sidebar.collapsed .brand-tag .brand-name{font-size:0}.sidebar.collapsed .brand-tag .brand-name:first-letter{font-size:var(--text-xl, 1.35rem)}.sidebar.collapsed .brand-text,.sidebar.collapsed .brand-company,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-title span,.sidebar.collapsed .sidebar-foot .label{display:none}.sidebar.collapsed .nav-link{justify-content:center;padding:11px}.sidebar.collapsed .nav-group-title{justify-content:center;padding:var(--sp-3) 0 0}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-5);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .spacer{flex:1}.topbar .brand-mini{display:none;height:28px;max-width:120px;object-fit:contain}.search-trigger{display:flex;align-items:center;gap:var(--sp-2);min-width:260px;padding:8px 12px;border-radius:var(--r-md);min-height:40px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-3);font:inherit;font-size:var(--text-sm);cursor:pointer}.search-trigger:hover{border-color:var(--brand)}.search-trigger kbd{margin-left:auto}.content{padding:var(--sp-6) var(--sp-6) var(--sp-7);max-width:1480px;width:100%;margin:0 auto}.conn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:650;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line)}.conn .dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}.conn.ok .dot{animation:pulse 2.4s infinite}.conn.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.conn.warn .dot{background:var(--warn)}.conn.down{background:var(--danger-soft);color:var(--danger);border-color:transparent}.conn.down .dot{background:var(--danger)}@keyframes pulse{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 7px #22c55e00}to{box-shadow:0 0 #22c55e00}}.banner{padding:10px var(--sp-5);font-size:var(--text-sm);font-weight:600;display:flex;gap:var(--sp-3);align-items:center;justify-content:center;text-align:center}.banner.down{background:var(--accent);color:var(--accent-ink)}.banner.warn{background:var(--warn-soft);color:var(--warn)}.palette{width:min(620px,100%);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;align-self:flex-start;margin-top:12vh;animation:pop .16s var(--ease) both}.palette-input{width:100%;border:0;border-bottom:1px solid var(--line);padding:18px 20px;font:inherit;font-size:var(--text-lg);background:transparent;color:var(--text);outline:none}.palette-list{max-height:52vh;overflow-y:auto;padding:var(--sp-2)}.palette-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:11px 12px;border-radius:var(--r-md);border:0;background:none;font:inherit;color:var(--text);cursor:pointer;text-align:left}.palette-item[aria-selected=true]{background:var(--brand-soft);color:var(--brand-strong)}.palette-item .group{margin-left:auto;font-size:var(--text-xs);color:var(--text-3)}.menu-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:var(--sp-2);z-index:40;animation:pop .14s var(--ease) both}.menu-pop .menu-item{display:flex;gap:var(--sp-3);align-items:center;width:100%;padding:10px;border:0;background:none;font:inherit;font-size:var(--text-sm);font-weight:550;color:var(--text);border-radius:var(--r-sm);cursor:pointer;text-decoration:none;min-height:40px}.menu-pop .menu-item:hover{background:var(--surface-hover);text-decoration:none}.menu-pop hr{border:0;border-top:1px solid var(--line);margin:var(--sp-2) 0}.relative{position:relative}.auth{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--bg)}.auth-art{background:var(--brand-solid);color:var(--brand-ink);padding:var(--sp-7);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;gap:var(--sp-6)}.swatches{position:absolute;right:-60px;bottom:-40px;display:flex;gap:0;pointer-events:none}.swatches i{display:block;width:130px;height:130px;border-radius:50%;margin-left:-34px}.swatches i:nth-child(1){background:#fff;opacity:.16}.swatches i:nth-child(2){background:var(--sky);opacity:.55}.swatches i:nth-child(3){background:var(--accent);opacity:.9}.swatches i:nth-child(4){background:#fff;opacity:.28}.auth-art>*{position:relative;z-index:1}.auth-art .brand-tag{align-self:flex-start;margin:0}.auth-art h2{font-size:clamp(2rem,3.4vw,3rem);line-height:1.05;letter-spacing:-.03em;max-width:460px;margin-bottom:var(--sp-4);font-weight:600}.auth-art p{opacity:.92;max-width:420px;font-size:var(--text-lg)}.auth-points{list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:var(--sp-3)}.auth-points li{display:flex;gap:var(--sp-3);align-items:center;font-weight:600}.auth-form-wrap{display:grid;place-items:center;padding:var(--sp-5)}.auth-form{width:min(400px,100%)}.auth-form .lock{width:56px;height:56px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;margin:0 auto var(--sp-4)}.auth-form h1{margin-bottom:6px;text-align:center}.auth-form .lead{color:var(--text-3);margin:0 auto var(--sp-5);text-align:center}.auth-form-brand{display:none;justify-content:center;margin-bottom:var(--sp-5)}.auth-form-brand img{max-height:48px;max-width:200px;object-fit:contain}.home-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--sp-5);margin-bottom:var(--sp-6);align-items:stretch}.home-main{background:var(--brand-solid);color:var(--brand-ink);border-radius:var(--r-lg);padding:var(--sp-6);display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-5);position:relative;overflow:hidden;text-decoration:none;min-height:170px}.home-main:hover{text-decoration:none;background:var(--brand-solid-hover)}.home-main h2{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.02em}.home-main p{margin:6px 0 0;opacity:.92}.home-main .cta{align-self:flex-start;background:#fff;color:var(--brand-solid-hover);border-radius:var(--r-md);padding:10px 16px;font-weight:700;font-size:var(--text-sm)}.home-main:before,.home-main:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.home-main:before{width:170px;height:170px;right:-40px;bottom:-50px;background:#fff;opacity:.14}.home-main:after{width:110px;height:110px;right:80px;bottom:-36px;background:var(--sky);opacity:.55}.home-main>*{position:relative;z-index:1}.home-main .dot-red{position:absolute;right:26px;top:26px;width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px #ffffff47}.home-quick{display:grid;gap:var(--sp-3);align-content:start}.home-quick a{display:flex;align-items:center;gap:var(--sp-3);padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);font-weight:650;text-decoration:none;min-height:56px}.home-quick a:hover{border-color:var(--brand);background:var(--surface-hover);text-decoration:none}.home-quick a .ico{width:36px;height:36px;border-radius:var(--r-sm);background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;flex-shrink:0}.home-index{columns:3 260px;column-gap:var(--sp-6)}.home-group{break-inside:avoid;margin-bottom:var(--sp-5)}.home-group h3{padding-bottom:var(--sp-2);border-bottom:2px solid var(--brand);margin-bottom:var(--sp-2);display:inline-block}.home-group ul{list-style:none;margin:0;padding:0}.home-group a{display:flex;align-items:center;gap:var(--sp-3);padding:9px 4px;color:var(--text);font-weight:550;border-bottom:1px solid var(--line);text-decoration:none;min-height:42px}.home-group a:hover{color:var(--brand-strong);text-decoration:none}.home-group a svg{color:var(--brand);flex-shrink:0}.home-group .soon{margin-left:auto;font-size:var(--text-xs);color:var(--text-3);font-weight:500}.menu-btn{display:none}@media (max-width: 1100px){.home-hero{grid-template-columns:1fr}}@media (max-width: 960px){.auth{grid-template-columns:1fr}.auth-art{display:none}.auth-form-brand{display:flex}}@media (max-width: 860px){.sidebar{position:fixed;inset:0 auto 0 0;transform:translate(-100%);transition:transform .22s var(--ease);width:min(310px,88vw);z-index:60}.sidebar.open{transform:none;box-shadow:var(--shadow-lg)}.sidebar.collapsed{width:min(310px,88vw)}.sidebar.collapsed .brand-text,.sidebar.collapsed .brand-company,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-title span{display:revert}.menu-btn{display:inline-flex}.topbar .brand-mini{display:block}.search-trigger{min-width:0;flex:0 0 auto;padding:8px 10px}.search-trigger span,.search-trigger kbd,.conn .conn-text,.user-name{display:none}.topbar{padding:8px var(--sp-3);gap:6px}.topbar .brand-mini{max-width:96px;min-width:0;flex-shrink:1}.topbar .btn{padding-inline:8px;min-width:40px}.topbar .spacer{min-width:0}.content{padding:var(--sp-5) var(--sp-4) var(--sp-7)}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:55}}.station-form{display:flex;flex-direction:column;gap:var(--sp-3)}.station-form .segmented{width:100%}.station-form .segmented button{flex:1;min-height:40px}.station-hint{margin:0;font-size:var(--text-xs);color:var(--text-3);line-height:1.45}.station-hint code{font-size:.95em;padding:0 3px;border-radius:4px;background:var(--surface-2)}.station-form .field{margin:0}@media (pointer: coarse){.station-form .segmented button{min-height:44px}}.receipt{font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.35;white-space:pre;overflow-x:auto;padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:Canvas;color:CanvasText;color-scheme:light;max-width:100%}.code-area .textarea{font-family:var(--font-mono);font-size:var(--text-sm);min-height:280px}.chip-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}.variable-group{margin-bottom:var(--sp-3)}.variable-group h4{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:var(--sp-2)}.stack-lg{display:flex;flex-direction:column;gap:var(--sp-5)}.plain-fieldset{border:0;padding:0;margin:0;min-width:0}.document-frame{width:100%;height:min(70vh,900px);border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
