:root{--paper: #ECEAE1;--paper-2: #E4E1D6;--panel-bg: #F6F4EC;--shell-bg: #1A1812;--ink: #18160F;--ink-2: #46433A;--ink-3: #757062;--ink-faint: #A8A294;--line: rgba(24,22,15,.26);--line-2: rgba(24,22,15,.14);--line-strong: #18160F;--signal: #C2410C;--signal-deep: #9B340A;--signal-tint: rgba(194,65,12,.11);--on-signal: #FCF7EE;--sans: "Schibsted Grotesk", system-ui, -apple-system, sans-serif;--mono: "DM Mono", "JetBrains Mono", ui-monospace, monospace;--radius: 0px;--bw: 1.5px;--hero: clamp(40px, 5vw, 72px);--side-brand-fg: #F6F4EC;--side-active-fg: #FFFFFF;--side-user-fg: #F6F4EC;--surface: var(--panel-bg);--surface-2: var(--paper);--surface-3: var(--paper-2);--border: var(--line);--divider: var(--line-2);--text: var(--ink);--text-2: var(--ink-2);--text-3: var(--ink-3);--text-4: var(--ink-faint);--accent-500: var(--signal);--accent-600: var(--signal);--accent-700: var(--signal-deep);--accent-tint: var(--signal-tint);--success-500: var(--ink);--success-600: var(--ink);--success-700: var(--ink);--success-tint: rgba(24,22,15,.06);--danger-500: var(--signal);--danger-600: var(--signal);--danger-700: var(--signal-deep);--danger-tint: var(--signal-tint);--warn-500: var(--ink-2);--warn-600: var(--ink-2);--warn-700: var(--ink-2);--warn-tint: var(--paper-2);--muted-tint: var(--paper-2);--shadow-sm: none;--shadow-md: none;--shadow-lg: 0 24px 60px rgba(24,22,15,.22)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01" 1,"cv01" 1}.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}.tnum{font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}::selection{background:var(--signal);color:var(--on-signal)}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.app[data-collapsed=true]{grid-template-columns:72px 1fr}.main{display:flex;flex-direction:column;min-width:0;background:var(--surface-2)}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:8px 10px 18px;border-bottom:1px solid var(--divider);margin-bottom:14px}.brand-mark{width:34px;height:34px;border-radius:8px;background:var(--accent-tint);color:var(--accent-600);display:flex;align-items:center;justify-content:center;flex:0 0 34px}.brand-name{font-size:13.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{font-size:11.5px;color:var(--text-3)}.nav-section-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-4);padding:14px 12px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:7px;cursor:pointer;color:var(--text-2);font-size:13px;font-weight:500;-webkit-user-select:none;user-select:none;transition:background .12s ease,color .12s ease}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item[data-active=true]{background:var(--accent-tint);color:var(--accent-700)}.nav-item[data-active=true] .nav-icon{color:var(--accent-600)}.nav-icon{width:18px;height:18px;color:var(--text-3);flex:0 0 18px}.nav-count{margin-left:auto;font-size:11px;font-weight:600;background:var(--surface-3);color:var(--text-3);padding:1px 7px;border-radius:999px}.nav-item[data-active=true] .nav-count{background:var(--surface);color:var(--accent-700)}.sidebar-footer{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 10px;border-top:1px solid var(--divider)}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent-500),var(--accent-700));color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:0 0 34px}.user-name{font-size:12.5px;font-weight:600;color:var(--text)}.user-role{font-size:11px;color:var(--text-3)}.app[data-collapsed=true] .brand-name,.app[data-collapsed=true] .brand-sub,.app[data-collapsed=true] .nav-section-label,.app[data-collapsed=true] .nav-item span:not(.nav-count),.app[data-collapsed=true] .nav-count,.app[data-collapsed=true] .user-name,.app[data-collapsed=true] .user-role{display:none}.app[data-collapsed=true] .nav-item{justify-content:center}.header{height:60px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:14px;position:sticky;top:0;z-index:10}.header-title{font-size:15px;font-weight:600;color:var(--text)}.header-crumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-3)}.header-crumb .sep{color:var(--text-4)}.header-crumb .current{color:var(--text);font-weight:600}.header-search{position:relative;flex:1;max-width:420px;margin-left:12px}.header-search input{width:100%;height:36px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:0 44px 0 36px;font-size:13px;color:var(--text);outline:none;transition:border-color .12s ease,background .12s ease}.header-search input:focus{border-color:var(--accent-500);background:var(--surface)}.header-search svg{position:absolute;left:10px;top:9px;width:18px;height:18px;color:var(--text-4)}.header-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--text-4);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace}.header-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.icon-btn{width:34px;height:34px;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--text-3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .12s ease,color .12s ease}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;background:var(--danger-500);border-radius:50%;border:1.5px solid var(--surface)}.btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn svg{width:16px;height:16px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-600);color:#fff;border-color:var(--accent-600)}.btn-primary:hover:not(:disabled){background:var(--accent-700);border-color:var(--accent-700)}.btn-secondary{background:var(--surface);color:var(--text-2);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-ghost{background:transparent;color:var(--text-3);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-sm{height:32px;padding:0 10px;font-size:12.5px}.btn-icon{width:32px;padding:0;justify-content:center}.btn-sm.btn-icon{width:32px}.content{padding:24px 28px 40px;max-width:1440px;width:100%}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-title{margin:0 0 4px;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.page-sub{margin:0;font-size:13px;color:var(--text-3)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}@media (max-width: 1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px}.kpi-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.kpi-label{font-size:12.5px;font-weight:500;color:var(--text-3)}.kpi-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}.kpi-icon svg{width:16px;height:16px}.kpi-icon.accent{background:var(--accent-tint);color:var(--accent-700)}.kpi-icon.success{background:var(--success-tint);color:var(--success-700)}.kpi-icon.danger{background:var(--danger-tint);color:var(--danger-700)}.kpi-icon.warn{background:var(--warn-tint);color:var(--warn-700)}.kpi-value{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1.1}.kpi-foot{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden}.card-pad{padding:20px 24px}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 24px 16px;border-bottom:1px solid var(--divider)}.card-title{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--text)}.card-sub{font-size:12.5px;color:var(--text-3)}.dash-row{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-bottom:14px}@media (max-width: 1100px){.dash-row{grid-template-columns:1fr}}.badge{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid transparent;line-height:1.25;max-width:100%}.badge svg{width:11px;height:11px}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-success{background:var(--success-tint);color:var(--success-700);border-color:#a7f3d0}.badge-danger{background:var(--danger-tint);color:var(--danger-700);border-color:#fecaca}.badge-warn{background:var(--warn-tint);color:var(--warn-700);border-color:#fde68a}.badge-muted{background:var(--muted-tint);color:var(--text-3);border-color:var(--border)}.badge-accent{background:var(--accent-tint);color:var(--accent-700);border-color:#bfdbfe}.dot-pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.diff-pill{display:inline-flex;align-items:center;gap:3px;min-height:22px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;font-family:JetBrains Mono,monospace;border:1px solid transparent;line-height:1.25;white-space:nowrap}.diff-pill svg{width:11px;height:11px}.diff-pill.cheaper{background:var(--success-tint);color:var(--success-700);border-color:#a7f3d0}.diff-pill.pricier{background:var(--danger-tint);color:var(--danger-700);border-color:#fecaca}.diff-pill.even{background:var(--muted-tint);color:var(--text-3);border-color:var(--border)}.delta{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:600;font-family:JetBrains Mono,monospace}.delta svg{width:11px;height:11px}.delta.up{color:var(--success-700)}.delta.down{color:var(--danger-700)}.delta.neutral{color:var(--text-3)}.cell-meta{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;color:var(--text-3);font-weight:500;line-height:1.4;word-break:break-word;max-width:100%}.pos-inline{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;line-height:1.3;word-break:break-word;max-width:100%}.pos-inline .dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%}.pos-inline.cheapest{color:var(--success-700)}.pos-inline.priciest{color:var(--danger-700)}.pos-inline.middle{color:var(--text-3)}.pos-inline.unknown{color:var(--text-4)}.favicon{width:30px;height:30px;border-radius:7px;border:1px solid transparent;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.02em;flex:0 0 30px}.product-thumb{border-radius:9px;background:var(--surface-3);display:flex;align-items:center;justify-content:center;line-height:1}.product-cell{display:flex;align-items:center;gap:10px}.product-name{font-size:13px;font-weight:600;color:var(--text)}.product-sku{font-size:11.5px;color:var(--text-4)}.toolbar{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--divider);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s ease,border-color .12s ease,color .12s ease;line-height:1.3;max-width:100%}.chip:hover{background:var(--surface-2)}.chip[data-active=true]{background:var(--accent-tint);border-color:#bfdbfe;color:var(--accent-700)}.url-row{display:grid;grid-template-columns:1fr 180px 160px 140px 80px;gap:16px;align-items:center;padding:14px 24px;border-bottom:1px solid var(--divider);transition:background .12s ease}.url-row:hover{background:var(--surface-2)}.url-host{display:flex;align-items:center;gap:10px;min-width:0}.url-domain{font-size:13px;font-weight:600;color:var(--text)}.url-full{font-size:11.5px;color:var(--text-4);font-family:JetBrains Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.url-meta{font-size:12.5px;color:var(--text-3)}.progress{width:100%;height:5px;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:var(--accent-500);border-radius:999px;transition:width .24s ease}.shimmer{background-image:linear-gradient(90deg,var(--accent-500) 0%,var(--accent-600) 50%,var(--accent-500) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.field-label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:8px}.field-hint{font-size:12px;color:var(--text-4);margin-top:8px}.input-group{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden;transition:border-color .12s ease}.input-group:focus-within{border-color:var(--accent-500)}.input-group .prefix{display:flex;align-items:center;padding:0 10px;color:var(--text-4);border-right:1px solid var(--border);background:var(--surface-2)}.input-group .prefix svg{width:16px;height:16px}.input-group input{flex:1;border:none;outline:none;padding:0 12px;font-size:13px;color:var(--text);background:transparent;min-width:0}.input-group .btn{border-radius:0;border:none}.text-input{width:100%;height:36px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:13px;color:var(--text);outline:none;transition:border-color .12s ease}.text-input:focus{border-color:var(--accent-500)}.text-input:disabled{background:var(--surface-2);color:var(--text-3);cursor:not-allowed}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);-webkit-user-select:none;user-select:none;cursor:pointer;white-space:nowrap}table.data th[data-sorted=true]{color:var(--text)}table.data th .sort-indicator{display:inline-flex;margin-left:4px;color:var(--text-4);vertical-align:middle}table.data th[data-sorted=true] .sort-indicator{color:var(--accent-600)}table.data td{padding:14px 16px;border-bottom:1px solid var(--divider);color:var(--text-2);vertical-align:middle}table.data tbody tr{cursor:pointer;transition:background .12s ease}table.data tbody tr:hover{background:var(--surface-2)}.price{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--text);font-size:13px}.price-lg{font-family:JetBrains Mono,monospace;font-weight:700}.chart-area{padding:16px 24px 8px}.chart-tabs{display:inline-flex;background:var(--surface-2);border-radius:7px;padding:3px;gap:0}.chart-tabs button{background:transparent;border:none;padding:4px 10px;font-size:12px;font-weight:500;color:var(--text-3);border-radius:5px;cursor:pointer;transition:background .12s ease,color .12s ease}.chart-tabs button[data-active=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.chart-legend{display:inline-flex;gap:14px;font-size:11.5px;color:var(--text-3)}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend .dot{width:8px;height:8px;border-radius:50%}.chart-tip{position:absolute;background:var(--text);color:#fff;font-size:11.5px;padding:4px 8px;border-radius:6px;transform:translate(-50%,-120%);pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-md)}.activity-item{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--divider);transition:background .12s ease}.activity-item:last-child{border-bottom:none}.activity-item:hover{background:var(--surface-2)}.activity-ico{width:34px;height:34px;border-radius:8px;flex:0 0 34px;display:flex;align-items:center;justify-content:center}.activity-ico svg{width:16px;height:16px}.activity-ico.accent{background:var(--accent-tint);color:var(--accent-700)}.activity-ico.success{background:var(--success-tint);color:var(--success-700)}.activity-ico.danger{background:var(--danger-tint);color:var(--danger-700)}.activity-body{flex:1;min-width:0}.activity-text{font-size:13px;color:var(--text-2);line-height:1.45}.activity-text b{color:var(--text);font-weight:600}.activity-meta{font-size:11.5px;color:var(--text-4);margin-top:2px}.empty{padding:56px 24px;text-align:center;color:var(--text-3)}.empty-icon{width:44px;height:44px;margin:0 auto 14px;border-radius:10px;background:var(--surface-2);color:var(--text-4);display:flex;align-items:center;justify-content:center}.empty-icon svg{width:20px;height:20px}.empty-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}.empty-text{font-size:12.5px;color:var(--text-3);max-width:360px;margin:0 auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;z-index:100;overflow-y:auto;animation:fadeIn .14s ease}.modal{background:var(--surface);border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-lg);width:100%;max-width:1024px;overflow:hidden;animation:slideUp .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.detail-head{display:flex;align-items:flex-start;gap:18px;padding:22px 28px}.detail-thumb{width:64px;height:64px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:30px;flex:0 0 64px}.detail-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0 28px 20px}.detail-meta-cell{padding:16px 20px;border-right:1px solid var(--divider);text-align:center}.detail-meta-cell:last-child{border-right:none}.detail-meta-label{font-size:11.5px;font-weight:500;color:var(--text-4);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.detail-meta-value{font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--text);font-family:JetBrains Mono,monospace}.toast-wrap{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;background:var(--text);color:#fff;font-size:12.5px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideUp .2s ease;pointer-events:auto;max-width:420px}.toast svg{color:var(--success-500);width:16px;height:16px;flex:0 0 16px}.dropdown-trigger{display:inline-flex;cursor:pointer}.dropdown-menu{position:fixed;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);padding:4px;z-index:300;animation:slideUp .12s ease}.dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:6px;text-align:left;font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer;transition:background .12s ease,color .12s ease}.dropdown-item:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.dropdown-item:disabled{opacity:.4;cursor:not-allowed}.dropdown-item.danger{color:var(--danger-700)}.dropdown-item.danger:hover:not(:disabled){background:var(--danger-tint)}.dropdown-icon{display:inline-flex;color:var(--text-4)}.dropdown-icon svg{width:14px;height:14px}.dropdown-item.danger .dropdown-icon{color:var(--danger-600)}.modal-sm{max-width:420px;padding:0}.modal-sm-head{padding:18px 22px 10px;border-bottom:1px solid var(--divider)}.modal-sm-title{font-size:15px;font-weight:700;color:var(--text);margin:0 0 4px}.modal-sm-sub{font-size:12.5px;color:var(--text-3);margin:0}.modal-sm-body{padding:18px 22px;display:flex;flex-direction:column;gap:12px}.modal-sm-foot{padding:14px 22px;border-top:1px solid var(--divider);display:flex;justify-content:flex-end;gap:8px;background:var(--surface-2)}.time-input{height:40px;width:100%;border:1px solid var(--border);border-radius:8px;padding:0 12px;font-size:15px;font-family:JetBrains Mono,monospace;outline:none;transition:border-color .12s ease}.time-input:focus{border-color:var(--accent-500)}.schedule-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--accent-700);background:var(--accent-tint);border:1px solid #BFDBFE;padding:3px 7px;border-radius:999px;font-family:JetBrains Mono,monospace;font-weight:600;margin-top:4px;line-height:1.3;max-width:100%;white-space:nowrap}.schedule-badge svg{width:10px;height:10px}.app[data-density=compact] .content{padding:18px 20px 28px}.app[data-density=compact] .kpi{padding:12px 14px}.app[data-density=compact] table.data td{padding:10px 14px}.app[data-density=compact] .url-row{padding:10px 20px}.login-page{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;width:100%;background:var(--surface);overflow:hidden;position:relative}.login-visual{position:relative;background:linear-gradient(135deg,#1e3a8a,#1e40af 40%,#2563eb);overflow:hidden;color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;min-height:700px}.login-visual:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(800px 500px at 90% 10%,rgba(96,165,250,.35),transparent 60%),radial-gradient(600px 400px at 10% 90%,rgba(59,130,246,.4),transparent 60%);pointer-events:none}.login-grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(circle at 50% 50%,black 30%,transparent 80%);mask-image:radial-gradient(circle at 50% 50%,black 30%,transparent 80%)}.login-brand{position:relative;z-index:2;display:flex;align-items:center;gap:12px;font-weight:700;font-size:15px}.login-brand-mark{width:38px;height:38px;border-radius:10px;background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;place-items:center;border:1px solid rgba(255,255,255,.2)}.login-brand-sub{font-size:11.5px;font-weight:400;color:#fff9}.login-chart-card{position:absolute;top:80px;right:56px;width:320px;background:#ffffff14;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:18px;z-index:2;box-shadow:0 20px 50px -10px #0000004d}.login-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.login-chart-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#fff9}.login-chart-val{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:600;letter-spacing:-.02em}.login-chart-delta{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;color:#34d399;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#34d39926;border-radius:6px}.login-chart-legend{display:flex;gap:14px;margin-top:12px;font-size:10.5px;color:#fff9}.login-chart-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}.login-headline{position:relative;z-index:2;margin-top:auto;max-width:560px}.login-eyebrow{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#ffffffc7;margin-bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:999px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.login-pulse-dot{width:6px;height:6px;border-radius:50%;background:#34d399;box-shadow:0 0 #34d399b3;animation:login-pulse-dot 2s infinite}@keyframes login-pulse-dot{0%{box-shadow:0 0 #34d399b3}to{box-shadow:0 0 0 10px #34d39900}}.login-title{font-size:44px;font-weight:700;letter-spacing:-.035em;line-height:1.05;margin:0 0 18px;text-wrap:balance}.login-title em{font-style:normal;background:linear-gradient(135deg,#93c5fd,#fff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.login-sub{font-size:15.5px;color:#ffffffc7;line-height:1.55;max-width:480px;margin:0}.login-stats-row{position:relative;z-index:2;display:flex;gap:32px;margin-top:28px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12)}.login-stat-num{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.login-stat-lbl{font-size:11.5px;color:#ffffffa6;margin-top:2px}.login-form-side{padding:56px;display:flex;flex-direction:column;justify-content:center;background:var(--surface)}.login-form-inner{max-width:380px;width:100%;margin:0 auto}.login-card{width:100%}.login-card h1{font-size:26px;font-weight:700;letter-spacing:-.025em;margin:0 0 6px;color:var(--text)}.login-card .lede{font-size:14px;color:var(--text-3);margin:0 0 28px;line-height:1.5}.login-brand-mark-lg{width:44px;height:44px;border-radius:12px;background:var(--accent-600);color:#fff;display:grid;place-items:center;box-shadow:0 6px 14px -4px #2563eb66,inset 0 1px #ffffff38;margin-bottom:24px}.login-field{margin-bottom:16px}.login-field-label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:7px}.login-input-affix{position:relative}.login-input-affix svg.left{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-4);pointer-events:none}.login-field-input{width:100%;height:44px;padding:0 14px 0 42px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:14px;font-family:inherit;color:var(--text);transition:border-color .12s,box-shadow .12s}.login-field-input:focus{outline:none;border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-tint)}.login-field-input::placeholder{color:var(--text-4)}.login-field-input:disabled{background:var(--surface-3);cursor:not-allowed}.login-input-affix .right-action{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-4);cursor:pointer;padding:6px;display:grid;place-items:center}.login-input-affix .right-action:hover{color:var(--text-2)}.login-input-affix .right-action svg{width:16px;height:16px}.login-btn{width:100%;height:46px;background:var(--accent-600);color:#fff;border:none;border-radius:10px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #0f172a14,inset 0 1px #ffffff29;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .12s,transform 60ms,opacity .12s;margin-top:8px}.login-btn:hover:not(:disabled){background:var(--accent-700)}.login-btn:active:not(:disabled){transform:translateY(1px)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-btn svg{width:16px;height:16px}.login-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:login-spin .7s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-error{margin-bottom:14px;padding:10px 12px;border-radius:8px;background:var(--danger-tint);color:var(--danger-700);font-size:12.5px;font-weight:500;border:1px solid #FCA5A5}.login-foot{margin-top:22px;padding-top:22px;border-top:1px solid var(--divider);text-align:center;font-size:11.5px;color:var(--text-4)}.login-foot .badge{display:inline-flex;align-items:center;gap:6px}.login-foot .badge svg{width:14px;height:14px}@media (max-width: 960px){.login-page{grid-template-columns:1fr}.login-visual{min-height:480px;padding:40px 32px}.login-chart-card{right:32px;top:72px;width:280px}.login-title{font-size:34px}.login-form-side{padding:48px 32px}}@media (max-width: 600px){.login-visual{padding:32px 24px;min-height:420px}.login-chart-card{display:none}.login-title{font-size:28px}.login-stats-row{gap:20px;margin-top:20px;padding-top:20px}.login-form-side{padding:40px 24px}}.manual-page{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start}.manual-toc{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;padding:16px 6px 16px 16px;font-size:13px}.manual-toc-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:10px}.manual-toc nav{display:flex;flex-direction:column;gap:1px}.manual-toc nav a{display:block;padding:6px 10px;color:var(--text-3);text-decoration:none;font-weight:500;line-height:1.4;border-radius:6px;font-size:13px;transition:color .1s,background .1s}.manual-toc nav a[data-level="3"]{padding-left:20px;font-size:12.5px;font-weight:400}.manual-toc nav a:hover{color:var(--text);background:var(--surface-2)}.manual-toc nav a[data-active=true]{color:var(--accent-700);background:var(--accent-tint);font-weight:600}.manual-article{padding:24px 28px 28px;font-size:14px;line-height:1.65;color:var(--text-2);min-width:0}.manual-article h1,.manual-article h2,.manual-article h3,.manual-article h4{color:var(--text);font-weight:700;letter-spacing:-.02em;scroll-margin-top:24px}.manual-article h2{font-size:17px;margin:24px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--divider)}.manual-article h2:first-child,.manual-article h2:first-of-type{margin-top:4px}.manual-article h3{font-size:14px;margin:18px 0 8px}.manual-article h4{font-size:13px;margin:16px 0 6px;color:var(--text-2)}.manual-article p{margin:0 0 12px}.manual-article a{color:var(--accent-700);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:border-color .1s}.manual-article a:hover{border-bottom-color:var(--accent-700)}.manual-article ul,.manual-article ol{margin:0 0 14px;padding-left:22px}.manual-article li{margin-bottom:4px}.manual-article li>p{margin-bottom:4px}.manual-article hr{border:none;border-top:1px solid var(--divider);margin:24px 0}.manual-article blockquote{margin:14px 0;padding:10px 14px;border-left:3px solid var(--accent-500);background:var(--accent-tint);color:var(--text-2);border-radius:0 6px 6px 0;font-size:13px}.manual-article blockquote p:last-child{margin-bottom:0}.manual-article code{font-family:JetBrains Mono,monospace;font-size:.88em;background:var(--surface-3);border:1px solid var(--border);padding:1px 6px;border-radius:5px;color:var(--text)}.manual-article pre{background:#0f172a;color:#e2e8f0;padding:14px 16px;border-radius:8px;overflow-x:auto;margin:14px 0;font-size:12.5px;line-height:1.55}.manual-article pre code{background:transparent;border:none;padding:0;color:inherit;font-size:inherit}.manual-article table{border-collapse:collapse;width:100%;margin:14px 0;font-size:13px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.manual-article thead{background:var(--surface-3)}.manual-article th,.manual-article td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--divider)}.manual-article th{font-weight:600;color:var(--text);font-size:12.5px}.manual-article tr:last-child td{border-bottom:none}.manual-article strong{color:var(--text);font-weight:600}.manual-error{padding:14px 16px;background:var(--danger-tint);border:1px solid #FCA5A5;color:var(--danger-700);border-radius:10px;font-size:13px}@media (max-width: 900px){.manual-page{grid-template-columns:1fr;gap:14px}.manual-toc{position:relative;top:auto;max-height:none}.manual-article{padding:20px 22px}}.cmp-toolbar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--divider);flex-wrap:wrap;row-gap:10px}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px;flex-shrink:0;max-width:100%;overflow:hidden}.seg-btn{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;font-size:12.5px;font-weight:500;color:var(--text-3);border-radius:6px;border:none;background:none;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .12s,color .12s,box-shadow .12s}.seg-btn:hover{color:var(--text-2)}.seg-btn[data-active=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-weight:600}.seg-btn .ct{color:var(--text-4);font-weight:400;font-size:11.5px;font-variant-numeric:tabular-nums}.seg-btn[data-active=true] .ct{color:var(--text-3)}.seg-btn .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;display:inline-block}.seg-btn svg{width:13px;height:13px;flex-shrink:0}.t-spacer{flex:1;min-width:8px}.btn-filters{position:relative}.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent-600);color:#fff;font-size:10.5px;font-weight:700;margin-left:2px}.cmp-search-wrap{position:relative}.cmp-search-wrap input{height:34px;padding:0 12px 0 32px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:12.5px;color:var(--text);width:240px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.cmp-search-wrap input:focus{border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-tint)}.cmp-search-wrap>svg.lead{position:absolute;left:11px;top:11px;width:13px;height:13px;color:var(--text-4);pointer-events:none}.applied-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--divider);background:var(--surface-2)}.applied-label{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.fpill{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:3px 4px 3px 10px;border:1px solid #BFDBFE;background:var(--accent-tint);color:var(--accent-700);font-size:12px;font-weight:500;border-radius:6px;line-height:1.3;max-width:100%}.fpill .fpill-key{color:var(--accent-700);opacity:.7;font-weight:500;flex-shrink:0}.fpill .fpill-val{font-weight:600;color:var(--accent-700);word-break:break-word;overflow-wrap:anywhere}.fpill .x{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;color:var(--accent-600);flex-shrink:0;border:none;background:none;padding:0;margin-left:2px}.fpill .x:hover{background:#dbeafe}.fpill .x svg{width:11px;height:11px}.applied-clear{font-size:11.5px;color:var(--text-3);font-weight:600;background:none;border:none;cursor:pointer;padding:4px 6px;font-family:inherit;border-radius:4px;margin-left:auto}.applied-clear:hover{background:var(--surface-3);color:var(--text-2)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;z-index:40;opacity:0;pointer-events:none;transition:opacity .2s ease}.scrim.is-open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:-440px;height:100vh;width:420px;max-width:92vw;background:var(--surface);box-shadow:var(--shadow-lg);z-index:41;transition:right .24s ease;display:flex;flex-direction:column;visibility:hidden}.drawer.is-open{right:0;visibility:visible}.drawer-head{padding:18px 22px;border-bottom:1px solid var(--divider);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.drawer-head h3{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em}.drawer-head .meta{font-size:12px;color:var(--text-3);margin-top:3px}.drawer-body{padding:18px 22px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:22px}.drawer-foot{padding:14px 22px;border-top:1px solid var(--divider);display:flex;justify-content:space-between;align-items:center;gap:8px;flex-shrink:0;background:var(--surface-2)}.dr-section h4{margin:0 0 10px;font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:space-between}.dr-section h4 .ct{color:var(--text-4);font-weight:500;font-size:11px;letter-spacing:0;text-transform:none}.cb{display:flex;align-items:center;gap:9px;padding:8px 10px;font-size:13px;color:var(--text-2);cursor:pointer;border-radius:7px;line-height:1.4;border:1px solid transparent}.cb:hover{background:var(--surface-2)}.cb input{width:15px;height:15px;accent-color:var(--accent-600);margin:0;flex-shrink:0;cursor:pointer}.cb .lbl{flex:1;min-width:0;display:flex;align-items:center;gap:7px}.cb .lbl>.text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cb .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}.cb .lbl svg{width:14px;height:14px;flex-shrink:0}.cb .ct{color:var(--text-4);font-weight:400;font-size:11.5px;font-variant-numeric:tabular-nums;flex-shrink:0}.cb[data-checked=true]{color:var(--text);background:var(--accent-tint);border-color:#dbeafe}.cb[data-checked=true] .ct{color:var(--accent-700);opacity:.7}.dr-select-wrap{position:relative}.dr-select{width:100%;height:38px;padding:0 32px 0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:13px;color:var(--text);font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:500}.dr-select:focus{outline:none;border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-tint)}.dr-select[data-active=true]{background:var(--accent-tint);border-color:#bfdbfe;color:var(--accent-700)}.dr-select-wrap .chev{position:absolute;right:11px;top:13px;width:13px;height:13px;color:var(--text-4);pointer-events:none}@media (max-width: 760px){.cmp-search-wrap input{width:100%}.cmp-search-wrap{flex:1;min-width:160px}.drawer{width:100vw;max-width:100vw}}.app .card,.app .kpi,.app .modal,.app .modal-sm,.app .badge,.app .diff-pill,.app .dropdown-menu,.app .toast,.app .chip,.app table.data th,.app .seg,.app .text-input,.app .input-group,.app .time-input,.app .progress,.app .progress-bar,.app .favicon,.app .product-thumb,.app .brand-mark,.app .empty-icon,.app .kpi-icon,.app .activity-ico,.app .schedule-badge,.app .fpill,.app .dr-select,.app .cb,.app .chart-tabs,.app .chart-tabs button{border-radius:0!important;box-shadow:none!important}.app .avatar{border-radius:0;background:var(--signal)}.app .badge-success,.app .diff-pill.cheaper{border-color:var(--line)}.app .badge-danger,.app .diff-pill.pricier{border-color:var(--signal)}.app .badge-warn,.app .badge-muted,.app .badge-accent{border-color:var(--line)}.app .fpill{border-color:var(--signal)}.app table.data th{background:var(--panel-bg)}.app{grid-template-columns:248px 1fr}.app[data-collapsed=true]{grid-template-columns:76px 1fr}.main{background:var(--paper)}.page{padding:34px 28px 64px;max-width:1480px;width:100%}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);display:inline-flex;align-items:center;gap:8px}.eyebrow.sig{color:var(--signal)}.eyebrow .tick{width:6px;height:6px;background:var(--signal);flex:0 0 6px}.side{position:sticky;top:0;height:100vh;background:var(--shell-bg);border-right:var(--bw) solid rgba(255,255,255,.14);display:flex;flex-direction:column;padding:22px 18px 16px;overflow:hidden;color:#edeae1}.side{--ink-2: #C9C5B8;--ink-3: #928D7F}.side-brand{display:flex;align-items:center;gap:11px;padding-bottom:22px}.side .brandmark{width:34px;height:34px;flex:0 0 34px}.side .wordmark{font-weight:800;font-size:21px;letter-spacing:-.03em;color:var(--side-brand-fg);line-height:1}.side .wordmark .acc{color:var(--signal)}.side .brand-tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#756f60;margin-top:3px}.side .nav-group-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#756f60;padding:18px 8px 8px}.side .nav{display:flex;flex-direction:column;gap:1px}.side .nav-item{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:0;color:#c9c5b8;font-size:13.5px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;background:transparent;text-align:left;width:100%;position:relative;transition:background .14s,color .14s}.side .nav-item:hover{background:#ffffff12;color:var(--side-active-fg)}.side .nav-item .nav-icon,.side .nav-item svg{width:18px;height:18px;flex:0 0 18px;color:#928d7f}.side .nav-item[data-active=true]{color:var(--side-active-fg);font-weight:600;background:transparent}.side .nav-item[data-active=true] svg,.side .nav-item[data-active=true] .nav-icon{color:var(--signal)}.side .nav-item[data-active=true]:before{content:"";position:absolute;left:-18px;top:6px;bottom:6px;width:3px;background:var(--signal)}.side .nav-count{margin-left:auto;font-family:var(--mono);font-size:11px;color:#928d7f;background:transparent;padding:0}.side .nav-item[data-active=true] .nav-count{color:var(--signal)}.side-foot{margin-top:auto;padding-top:16px;border-top:var(--bw) solid rgba(255,255,255,.14);display:flex;align-items:center;gap:11px}.side .avatar{width:34px;height:34px;flex:0 0 34px;border-radius:0;background:var(--signal);color:var(--on-signal);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:500}.side-user-name{font-size:12.5px;font-weight:600;color:var(--side-user-fg)}.side-user-role{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#928d7f}.app[data-collapsed=true] .side .wordmark,.app[data-collapsed=true] .side .brand-tag,.app[data-collapsed=true] .side .nav-group-label,.app[data-collapsed=true] .side .nav-item span,.app[data-collapsed=true] .side .nav-count,.app[data-collapsed=true] .side-user-name,.app[data-collapsed=true] .side-user-role{display:none}.app[data-collapsed=true] .side .nav-item,.app[data-collapsed=true] .side-foot{justify-content:center}.topbar{height:64px;display:flex;align-items:center;gap:16px;padding:0 28px;border-bottom:var(--bw) solid var(--line);position:sticky;top:0;z-index:20;background:var(--paper)}.topbar .crumb{display:flex;align-items:center;gap:9px;font-size:12px}.topbar .crumb .mono{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.topbar .crumb .sep{color:var(--ink-faint)}.topbar .crumb .cur{font-weight:600;color:var(--ink)}.topbar-spacer{flex:1}.topbar-clock{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.04em}.btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:0;border:var(--bw) solid var(--line-strong);background:transparent;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;letter-spacing:.01em;white-space:nowrap;transition:background .14s,color .14s,border-color .14s}.btn svg{width:15px;height:15px}.btn:hover:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-sm{height:32px;padding:0 12px;font-size:11.5px}.btn-primary{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}.btn-primary:hover:not(:disabled){background:var(--signal-deep);border-color:var(--signal-deep);color:var(--on-signal)}.btn-secondary{background:transparent;border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:var(--ink);color:var(--paper)}.btn-ghost{border-color:transparent;color:var(--ink-2);background:transparent}.btn-ghost:hover:not(:disabled){background:#18160f12;color:var(--ink)}.btn-icon{width:38px;padding:0;justify-content:center}.icon-btn{width:38px;height:38px;border:var(--bw) solid var(--line);border-radius:0;background:transparent;color:var(--ink-2);cursor:pointer;position:relative;display:inline-flex;align-items:center;justify-content:center;transition:background .14s,color .14s,border-color .14s}.icon-btn svg{width:18px;height:18px}.icon-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.icon-btn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;background:var(--signal);border-radius:50%;border:2px solid var(--paper)}.page-masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:22px;margin-bottom:30px;border-bottom:var(--bw) solid var(--line-strong)}.page-masthead .page-title{margin:8px 0 0;font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-.035em;line-height:.98;color:var(--ink)}.page-masthead .page-lede{margin:10px 0 0;font-size:14.5px;color:var(--ink-2);max-width:46ch}.panel{border:var(--bw) solid var(--line-strong);border-radius:0;background:var(--panel-bg);overflow:hidden}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 16px;border-bottom:var(--bw) solid var(--line)}.panel-title{font-size:16px;font-weight:700;letter-spacing:-.02em}.panel-sub{font-size:12px;color:var(--ink-3);margin-top:3px}.panel-head .eyebrow{margin-bottom:7px}.panel.slab .panel-head{background:var(--ink);border-bottom:none}.panel.slab .panel-title{color:var(--paper)}.panel.slab .panel-sub,.panel.slab .eyebrow{color:#b9b4a6}.dash-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;margin-bottom:22px}.dash-grid.even{grid-template-columns:1fr 1fr}@media (max-width: 1080px){.dash-grid,.dash-grid.even{grid-template-columns:1fr}}.statrow{display:grid;grid-template-columns:repeat(4,1fr);border:var(--bw) solid var(--line);border-radius:0;overflow:hidden;background:var(--line);gap:var(--bw);margin-bottom:30px}@media (max-width: 1080px){.statrow{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--panel-bg);padding:20px 22px 22px;cursor:pointer;transition:background .14s;position:relative}.stat:hover{background:color-mix(in srgb,var(--signal) 5%,var(--panel-bg))}.stat-head{display:flex;align-items:center;justify-content:space-between}.stat-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.stat-ic{width:16px;height:16px;color:var(--ink-faint)}.stat-value{font-size:clamp(34px,4vw,52px);font-weight:800;letter-spacing:-.04em;line-height:1;margin:18px 0 8px;font-variant-numeric:tabular-nums}.stat-value .u{font-size:.42em;font-weight:600;color:var(--ink-3);letter-spacing:0;margin-left:4px}.stat-foot{font-size:12px;color:var(--ink-3);line-height:1.35}.stat.is-signal .stat-value,.stat.is-signal .stat-ic{color:var(--signal)}.stat-spark{margin-top:14px}.hero{border:var(--bw) solid var(--line-strong);border-radius:0;background:var(--panel-bg);overflow:hidden;margin-bottom:30px;display:grid;grid-template-columns:.92fr 1.4fr}@media (max-width: 1080px){.hero{grid-template-columns:1fr}}.hero-left{padding:28px 30px;border-right:var(--bw) solid var(--line);display:flex;flex-direction:column}@media (max-width: 1080px){.hero-left{border-right:none;border-bottom:var(--bw) solid var(--line)}}.hero-num{font-size:var(--hero);font-weight:800;letter-spacing:-.05em;line-height:.86;font-variant-numeric:tabular-nums;margin:18px 0 0;color:var(--ink)}.hero-num .pt{color:var(--signal)}.hero-sub{font-size:13.5px;color:var(--ink-2);margin-top:18px;max-width:34ch;line-height:1.45}.hero-meta{margin-top:auto;display:flex;gap:26px;padding-top:24px}.hero-meta .m-num{font-size:22px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.hero-meta .m-num.sig{color:var(--signal)}.hero-meta .m-lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:4px}.hero-right{padding:22px 26px 20px;display:flex;flex-direction:column;min-width:0}.ranklist{display:flex;flex-direction:column}.rank-item{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:14px;padding:15px 22px;border-bottom:var(--bw) solid var(--line-2);cursor:pointer;transition:background .12s}.rank-item:last-child{border-bottom:none}.rank-item:hover{background:#18160f0a}.rank-idx{font-family:var(--mono);font-size:12px;color:var(--ink-faint)}.rank-name{font-size:13.5px;font-weight:600;line-height:1.25}.rank-meta{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:3px;letter-spacing:.01em}.rank-fig{text-align:right;font-variant-numeric:tabular-nums}.rank-fig .big{font-size:17px;font-weight:700;font-family:var(--mono);letter-spacing:-.02em}.rank-fig .sub{font-size:10.5px;color:var(--ink-faint);font-family:var(--mono);margin-top:2px}.rank-fig.bad .big{color:var(--signal)}.thumb{width:38px;height:38px;flex:0 0 38px;border:var(--bw) solid var(--line);border-radius:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:500;color:var(--ink-2);background:#18160f08}.diff{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.diff svg{width:11px;height:11px}.diff.up{color:var(--signal)}.diff.down{color:var(--ink)}.diff.even{color:var(--ink-faint)}.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border:var(--bw) solid var(--line);border-radius:0;color:var(--ink-2);background:transparent}.tag .d{width:6px;height:6px;border-radius:50%;background:var(--ink-faint)}.tag.sig{color:var(--signal);border-color:var(--signal)}.tag.sig .d{background:var(--signal)}.tag.ink .d{background:var(--ink)}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:16px 22px;border-bottom:var(--bw) solid var(--line)}.chip{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border:var(--bw) solid var(--line);border-radius:0;background:transparent;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:var(--mono);letter-spacing:.02em;transition:all .12s}.chip svg{width:13px;height:13px}.chip .ct{font-size:10.5px;color:var(--ink-faint)}.chip:hover{border-color:var(--line-strong);color:var(--ink);background:transparent}.chip[data-active=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip[data-active=true] .ct{color:color-mix(in srgb,var(--paper) 70%,transparent)}.chip.sig[data-active=true]{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}.search{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border:var(--bw) solid var(--line);border-radius:0;min-width:230px}.search:focus-within{border-color:var(--line-strong)}.search svg{width:15px;height:15px;color:var(--ink-faint)}.search input{border:none;background:transparent;outline:none;font-family:var(--mono);font-size:12px;color:var(--ink);width:100%}.search input::placeholder{color:var(--ink-faint)}table.tbl{width:100%;border-collapse:collapse}table.tbl th{text-align:left;padding:12px 18px;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border-bottom:var(--bw) solid var(--line-strong);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;background:var(--panel-bg)}table.tbl th.num{text-align:right}table.tbl th[data-sorted=true]{color:var(--ink)}table.tbl th .si{margin-left:4px;color:var(--signal)}table.tbl td{padding:15px 18px;border-bottom:var(--bw) solid var(--line-2);vertical-align:middle}table.tbl tbody tr{cursor:pointer;transition:background .12s}table.tbl tbody tr:hover{background:#18160f0a}table.tbl td.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.tbl .cell-prod{display:flex;align-items:center;gap:12px;min-width:0}.tbl .cell-name{font-size:13px;font-weight:600;line-height:1.25}.tbl .cell-sku{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.04em;margin-top:2px}.tbl .cell-cat{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.tbl .price{font-family:var(--mono);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.pos{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em}.pos .d{width:7px;height:7px;border-radius:50%}.pos.cheapest{color:var(--ink)}.pos.cheapest .d{background:var(--ink)}.pos.priciest{color:var(--signal)}.pos.priciest .d{background:var(--signal)}.pos.middle{color:var(--ink-3)}.pos.middle .d{background:var(--ink-faint)}.pos.unknown{color:var(--ink-faint)}.pos.unknown .d{background:var(--ink-faint)}.pagin{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-top:var(--bw) solid var(--line);font-family:var(--mono);font-size:11px;color:var(--ink-3)}.pagin .pg-btns{display:flex;gap:6px}.pg-btn{width:30px;height:30px;border:var(--bw) solid var(--line);border-radius:0;background:transparent;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.pg-btn:hover:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink)}.pg-btn:disabled{opacity:.35;cursor:not-allowed}.chart-pad{padding:18px 22px 16px}.chart-legend{display:inline-flex;gap:18px;font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.04em}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend .ln{width:16px;height:2px;background:var(--ink);border-radius:0}.chart-legend .ln.sig{background:var(--signal)}.chart-legend .ln.dash{background:none;border-top:2px dashed var(--ink-faint);height:0}.dist{display:flex;align-items:flex-end;gap:10px;height:220px;padding:8px 22px 0}.dist-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:8px}.dist-bar{width:100%;background:var(--ink);transition:height .4s cubic-bezier(.2,.7,.2,1);position:relative}.dist-bar.bad{background:var(--signal)}.dist-ct{font-family:var(--mono);font-size:13px;font-weight:500}.dist-axis{display:flex;gap:10px;padding:8px 22px 4px}.dist-axis span{flex:1;text-align:center;font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--ink-faint)}.dist-axis span.bad{color:var(--signal)}.complist{display:flex;flex-direction:column}.comp-item{display:flex;align-items:center;gap:13px;padding:14px 22px;border-bottom:var(--bw) solid var(--line-2)}.comp-item:last-child{border-bottom:none}.comp-fav{width:32px;height:32px;flex:0 0 32px;border:var(--bw) solid var(--line);border-radius:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink-2)}.comp-name{font-size:13px;font-weight:600}.comp-meta{font-family:var(--mono);font-size:10px;color:var(--ink-3);margin-top:3px;letter-spacing:.03em;display:flex;gap:10px;flex-wrap:wrap}.comp-meta .sig{color:var(--signal)}.comp-bar-wrap{margin-left:auto;width:78px}.comp-bar-track{height:6px;background:var(--line);overflow:hidden}.comp-bar-fill{height:100%;background:var(--ink)}.comp-attacks{font-family:var(--mono);font-size:10px;color:var(--ink-3);text-align:right;margin-top:4px}.pd-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#18160f75;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:80;display:flex;justify-content:flex-end;animation:fade .18s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slidein{0%{transform:translate(28px);opacity:.4}to{transform:translate(0);opacity:1}}.pd-drawer{width:min(620px,94vw);height:100%;background:var(--paper);border-left:var(--bw) solid var(--line-strong);overflow-y:auto;animation:slidein .26s cubic-bezier(.2,.7,.2,1)}.pd-head{padding:24px 28px 20px;border-bottom:var(--bw) solid var(--line);display:flex;gap:16px;align-items:flex-start}.pd-thumb{width:56px;height:56px;flex:0 0 56px;border:var(--bw) solid var(--line-strong);border-radius:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:16px;font-weight:500;color:var(--ink)}.pd-name{font-size:21px;font-weight:800;letter-spacing:-.02em;line-height:1.05}.dmeta{display:grid;grid-template-columns:repeat(3,1fr);border-top:var(--bw) solid var(--line);border-bottom:var(--bw) solid var(--line)}.dmeta-cell{padding:18px 22px;border-right:var(--bw) solid var(--line)}.dmeta-cell:last-child{border-right:none}.dmeta-lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.dmeta-val{font-size:26px;font-weight:800;letter-spacing:-.03em;margin-top:8px;font-variant-numeric:tabular-nums;font-family:var(--mono);color:var(--ink)}.dmeta-val.sig{color:var(--signal)}.dsection{padding:22px 28px}.dsection-title{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:16px}.crow{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:12px 0;border-bottom:var(--bw) solid var(--line-2)}.crow:last-child{border-bottom:none}.crow.me{font-weight:700}.crow-name{font-size:13px;font-weight:600;display:flex;align-items:center;gap:9px}.crow.me .crow-name:before{content:"";width:7px;height:7px;background:var(--signal);border-radius:50%}.login{display:grid;grid-template-columns:1.15fr 1fr;min-height:100vh}.login-visual{background:var(--ink);color:var(--paper);padding:46px 52px;display:flex;flex-direction:column;position:relative;overflow:hidden;min-height:100vh}@media (max-width: 920px){.login{grid-template-columns:1fr}.login-visual{min-height:200px}}.login-visual:before{content:none}.login-visual .gridbg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:46px 46px;opacity:.5;-webkit-mask-image:none;mask-image:none}.login-visual>*{position:relative;z-index:1}.login-brand{display:flex;align-items:center;gap:12px;font-size:15px}.login-brand .wordmark{font-weight:800;font-size:21px;letter-spacing:-.03em;color:var(--paper);line-height:1}.login-brand .wordmark .acc{color:var(--signal)}.login-visual .brand-tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#948d7c;margin-top:3px}.login-headline{margin-top:auto;max-width:none}.login-eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#b7b0a0;display:inline-flex;align-items:center;gap:9px;background:transparent;border:none;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none;margin-bottom:0}.login-eyebrow .tick{width:6px;height:6px;background:var(--signal);border-radius:50%}.login-title{font-size:clamp(30px,3.6vw,44px);font-weight:800;letter-spacing:-.035em;line-height:1.02;margin:18px 0 0;max-width:16ch;color:var(--paper)}.login-title em{font-style:normal;color:var(--signal);-webkit-text-fill-color:var(--signal);background:none}.login-sub{font-size:14px;color:#c7c0b0;margin-top:18px;max-width:42ch;line-height:1.5}.login-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ffffff1f;border:1px solid rgba(255,255,255,.12);margin-top:34px}.login-stat{background:var(--ink);padding:16px 18px}.login-stat .n{font-size:15px;font-weight:700;font-family:var(--sans)}.login-stat .l{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#948d7c;margin-top:5px}.login-form-side{display:flex;align-items:center;justify-content:center;padding:40px;background:var(--paper)}.login-card{width:100%;max-width:380px}.login-card h1{font-size:28px;font-weight:800;letter-spacing:-.03em;margin:24px 0 6px;color:var(--ink)}.login-card .lede{font-size:13.5px;color:var(--ink-3);margin:0 0 26px}.field{margin-bottom:16px}.field-label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:8px;font-weight:500}.affix{display:flex;align-items:center;gap:10px;height:46px;padding:0 14px;border:var(--bw) solid var(--line-strong);border-radius:0;transition:border-color .14s;background:var(--panel-bg)}.affix:focus-within{border-color:var(--signal)}.affix svg{width:17px;height:17px;color:var(--ink-faint)}.affix input{flex:1;border:none;background:transparent;outline:none;font-size:14px;font-family:var(--sans);color:var(--ink);min-width:0}.affix .reveal{background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:0;display:flex}.login-submit{width:100%;height:48px;justify-content:center;margin-top:8px;font-size:13.5px}.login-err{font-family:var(--mono);font-size:11.5px;color:var(--signal);background:var(--signal-tint);border:var(--bw) solid var(--signal);border-radius:0;padding:9px 12px;margin-bottom:14px}.login-foot{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:18px;display:flex;align-items:center;gap:8px;border:none;padding:0;text-align:left}@media (prefers-reduced-motion: no-preference){.reveal-up{animation:ru .5s cubic-bezier(.2,.7,.2,1)}@keyframes ru{0%{transform:translateY(14px)}to{transform:none}}}.sig{color:var(--signal)}
