*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Geist,Noto Sans SC,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Geist Mono,ui-monospace,SF Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.min-h-screen{min-height:100vh}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.border{border-width:1px}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.uppercase{text-transform:uppercase}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--novi-cobalt: #1E5BC6;--novi-teal: #1A8B86;--novi-emerald: #1E8449;--novi-orange: #E8722C;--novi-graphite: #1A1A1A;--ink-900: #0F1012;--ink-800: #1A1A1A;--ink-700: #2D2D30;--ink-500: #6B6B70;--ink-400: #9A9A9F;--ink-300: #C9C9CC;--ink-200: #E5E4DF;--ink-150: #EFEDE6;--ink-100: #F5F3EC;--ink-50: #FAF8F2;--paper: #FAF8F2;--success: var(--novi-emerald);--warning: var(--novi-orange);--info: var(--novi-cobalt);--danger: #C8323A;--primary: var(--novi-cobalt);--font-display: "Geist", "Noto Sans SC", system-ui, sans-serif;--font-body: "Geist", "Noto Sans SC", system-ui, sans-serif;--font-mono: "Geist", "Noto Sans SC", system-ui, sans-serif;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--r-1: 4px;--r-2: 6px;--r-3: 10px;--r-4: 14px;--r-pill: 999px;--stroke-hair: .5px;--stroke-thin: 1px;--stroke-med: 1.5px;--stroke-bold: 2px;--shadow-1: 0 1px 0 rgba(15,16,18,.04), 0 0 0 .5px rgba(15,16,18,.06);--shadow-2: 0 4px 16px -8px rgba(15,16,18,.12), 0 0 0 .5px rgba(15,16,18,.08);--shadow-3: 0 12px 40px -16px rgba(15,16,18,.18), 0 0 0 .5px rgba(15,16,18,.08);--ease-out: cubic-bezier(.2, .7, .2, 1);--ease-in-out: cubic-bezier(.6, .2, .2, 1);--dur-1: .12s;--dur-2: .22s;--dur-3: .36s}*,*:before,*:after{box-sizing:border-box}body{font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--ink-800);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv01"}.bp-grid{background-image:linear-gradient(var(--ink-200) .5px,transparent .5px),linear-gradient(90deg,var(--ink-200) .5px,transparent .5px);background-size:32px 32px;background-position:-1px -1px}.novi-nav{border-bottom:var(--stroke-thin) solid var(--ink-300);background:#faf8f2e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:50}.novi-card{background:#fff;border:var(--stroke-thin) solid var(--ink-200);border-radius:var(--r-3);box-shadow:var(--shadow-2)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);background:var(--novi-cobalt);color:#fff;border:none;border-radius:var(--r-2);padding:0 var(--s-4);height:36px;font-size:14px;font-weight:500;font-family:var(--font-body);transition:background var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out);cursor:pointer}.btn-primary:hover{background:#1a4fa8;transform:translateY(-.5px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--ink-800);border:var(--stroke-thin) solid var(--ink-300);border-radius:var(--r-2);padding:0 var(--s-4);height:36px;font-size:14px;font-weight:400;font-family:var(--font-body);transition:border-color var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out);cursor:pointer}.btn-ghost:hover{border-color:var(--ink-500);transform:translateY(-.5px)}.btn-success{background:var(--novi-emerald);color:#fff;border:none;border-radius:var(--r-2);padding:0 var(--s-4);height:36px;font-size:14px;font-weight:500;font-family:var(--font-body);transition:background var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out);cursor:pointer}.btn-success:hover{background:#186b3a;transform:translateY(-.5px)}.btn-warning{background:var(--novi-orange);color:#fff;border:none;border-radius:var(--r-2);padding:0 var(--s-4);height:36px;font-size:14px;font-weight:500;font-family:var(--font-body);transition:background var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out);cursor:pointer}.btn-warning:hover{background:#c45f20;transform:translateY(-.5px)}.btn-danger{background:transparent;color:var(--danger);border:var(--stroke-thin) solid rgba(200,50,58,.3);border-radius:var(--r-2);padding:0 var(--s-4);height:36px;font-size:14px;font-weight:500;font-family:var(--font-body);transition:background var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out);cursor:pointer}.btn-danger:hover{background:#c8323a0f;transform:translateY(-.5px)}.novi-input{width:100%;border:var(--stroke-thin) solid var(--ink-300);border-radius:var(--r-1);padding:0 var(--s-3);height:38px;font-size:14px;font-family:var(--font-body);color:var(--ink-800);background:#fff;outline:none;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}.novi-input:focus{border-color:var(--novi-cobalt);box-shadow:0 0 0 3px #1e5bc61f}.novi-input::-moz-placeholder{color:var(--ink-400)}.novi-input::placeholder{color:var(--ink-400)}.code-box{font-family:var(--font-mono);font-size:13px;background:var(--ink-50);border:var(--stroke-thin) solid var(--ink-200);border-radius:var(--r-1);padding:var(--s-2) var(--s-3);color:var(--ink-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root{--novi-cobalt: #1E5BC6;--novi-teal: #1A8B86;--novi-emerald: #1E8449;--novi-orange: #E8722C;--novi-graphite: #1A1A1A;--bg: #FAFAF7;--bg-elev: #FFFFFF;--bg-sunken: #F2F1EC;--bg-hover: #F0EFE9;--bg-active: #E8E7E2;--line: #E5E3DC;--line-strong: #D5D3CB;--line-faint: #EDEBE3;--text: #18181B;--text-muted: #71717A;--text-faint: #A1A1AA;--text-inv: #FAFAFA;--primary: var(--novi-cobalt);--primary-fg: #FFFFFF;--primary-soft: rgba(30, 91, 198, .08);--primary-strong: #194FAB;--success: #1E8449;--warning: #E8722C;--danger: #C8323A;--info: var(--novi-cobalt);--font-display: "Geist", "Noto Sans SC", system-ui, sans-serif;--font-body: "Geist", "Noto Sans SC", system-ui, sans-serif;--font-mono: "Geist", "Noto Sans SC", system-ui, sans-serif;--r-1: 4px;--r-2: 6px;--r-3: 10px;--r-4: 14px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--ease: cubic-bezier(.2, .7, .2, 1);--dur-1: .12s;--dur-2: .22s;--shadow-1: 0 1px 0 rgba(0,0,0,.04), 0 0 0 .5px rgba(0,0,0,.06);--shadow-2: 0 6px 24px -10px rgba(0,0,0,.12), 0 0 0 .5px rgba(0,0,0,.08);--shadow-3: 0 24px 60px -20px rgba(0,0,0,.18), 0 0 0 .5px rgba(0,0,0,.08);color-scheme:light}[data-theme=dark]{--bg: #0A0A0A;--bg-elev: #111111;--bg-sunken: #050505;--bg-hover: #1A1A1A;--bg-active: #222222;--line: #232326;--line-strong: #333338;--line-faint: #1A1A1D;--text: #FAFAFA;--text-muted: #A1A1AA;--text-faint: #71717A;--text-inv: #0A0A0A;--primary-soft: rgba(98, 159, 255, .12);--primary-strong: #4F87E8;--shadow-1: 0 1px 0 rgba(0,0,0,.4), 0 0 0 .5px rgba(255,255,255,.04);--shadow-2: 0 6px 24px -10px rgba(0,0,0,.5), 0 0 0 .5px rgba(255,255,255,.04);--shadow-3: 0 24px 60px -20px rgba(0,0,0,.6), 0 0 0 .5px rgba(255,255,255,.05);color-scheme:dark}[data-theme=dark]{--primary: #4F87E8}[data-theme=dark] .brand-logo{filter:invert(1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv01";transition:background var(--dur-2) var(--ease),color var(--dur-2) var(--ease)}h1,h2,h3,h4,h5,h6,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}::-moz-selection{background:var(--primary-soft);color:var(--text)}::selection{background:var(--primary-soft);color:var(--text)}.novi-app{min-height:100vh;display:flex;flex-direction:column}.topbar{height:56px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 var(--s-5);background:var(--bg);position:sticky;top:0;z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in oklab,var(--bg) 88%,transparent)}.topbar-inner{width:100%;max-width:1320px;margin:0 auto;display:flex;align-items:center;gap:var(--s-5)}.topbar.is-marketing .topbar-inner{max-width:1200px}.topbar.is-app .topbar-inner{max-width:none;padding:0}.brand-link{display:flex;align-items:center;gap:var(--s-3);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.brand-link svg.mark{width:22px;height:22px;color:var(--text)}.brand-link .name{font-family:var(--font-display);font-weight:400;font-size:16px;letter-spacing:-.01em;color:var(--text)}.brand-link .cn{font-family:var(--font-body);font-weight:300;font-size:10px;letter-spacing:.25em;color:var(--text-faint);margin-left:2px}.topbar-nav{display:flex;gap:2px;margin-left:var(--s-6)}.topbar-nav a{padding:6px 12px;font-size:13.5px;color:var(--text-muted);border-radius:var(--r-2);transition:color var(--dur-1),background var(--dur-1)}.topbar-nav a:hover{color:var(--text);background:var(--bg-hover)}.topbar-nav a.is-active{color:var(--text)}.topbar-spacer{flex:1}.topbar-actions{display:flex;align-items:center;gap:var(--s-2)}.theme-toggle,.icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--r-2);color:var(--text-muted);cursor:pointer;transition:all var(--dur-1) var(--ease)}.theme-toggle:hover,.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.theme-toggle svg,.icon-btn svg{width:16px;height:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:34px;padding:0 var(--s-4);font-family:var(--font-body);font-size:13.5px;font-weight:500;border-radius:var(--r-2);border:1px solid transparent;cursor:pointer;transition:all var(--dur-1) var(--ease);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:-.005em}.btn:active{transform:translateY(.5px)}.btn svg{width:15px;height:15px}.btn-primary{background:var(--primary);color:var(--primary-fg)}.btn-primary:hover{background:var(--primary-strong)}.btn-secondary{background:var(--text);color:var(--text-inv)}.btn-secondary:hover{opacity:.88}.btn-ghost{background:transparent;color:var(--text);border-color:var(--line-strong)}.btn-ghost:hover{background:var(--bg-hover);border-color:var(--text-faint)}.btn-soft{background:var(--bg-sunken);color:var(--text);border-color:var(--line)}.btn-soft:hover{background:var(--bg-hover)}.btn-text{background:transparent;color:var(--text-muted);padding:0 var(--s-2);height:28px}.btn-text:hover{color:var(--text)}.btn-sm{height:28px;font-size:12.5px;padding:0 var(--s-3)}.btn-lg{height:42px;font-size:14.5px;padding:0 var(--s-5)}.btn-block{width:100%}.kbd{font-family:var(--font-mono);font-size:10.5px;padding:2px 6px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:var(--r-1);color:var(--text-muted);background:var(--bg-elev);letter-spacing:.02em}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.02em;line-height:1.5;white-space:nowrap;border:1px solid currentColor}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.no-dot:before{display:none}.badge-running{color:var(--success)}.badge-building{color:var(--primary)}.badge-paused{color:var(--text-muted)}.badge-warn{color:var(--warning)}.badge-error{color:var(--danger)}.badge-draft{color:var(--text-muted);border-style:dashed}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-pill);font-size:12px;color:var(--text-muted)}.chip svg{width:13px;height:13px}.chip-soft{background:var(--bg-sunken)}.landing{background:radial-gradient(900px 600px at 70% -10%,var(--primary-soft),transparent 60%),var(--bg);min-height:100vh}.landing-container{max-width:1200px;margin:0 auto;padding:0 var(--s-6)}.hero{padding:var(--s-10) 0 var(--s-9);position:relative}.hero-eyebrow{display:inline-flex;align-items:center;gap:var(--s-2);padding:4px 10px 4px 4px;border-radius:var(--r-pill);background:var(--bg-elev);border:1px solid var(--line);font-family:var(--font-mono);font-size:11.5px;color:var(--text-muted);margin-bottom:var(--s-5)}.hero-eyebrow .tag{background:var(--primary);color:var(--primary-fg);padding:1px 8px;border-radius:var(--r-pill);font-size:10.5px;font-weight:500}.hero h1{font-family:var(--font-display);font-weight:250;font-size:clamp(48px,7vw,92px);line-height:.98;letter-spacing:-.035em;color:var(--text);max-width:16ch}.hero h1 em{font-style:normal;font-weight:400;color:var(--primary)}.hero .sub{font-size:19px;line-height:1.55;color:var(--text-muted);max-width:56ch;margin-top:var(--s-5);font-weight:300}.hero-cta{display:flex;gap:var(--s-3);margin-top:var(--s-7);align-items:center}.hero-cta .btn-lg svg{width:17px;height:17px}.hero-trust{display:flex;gap:var(--s-5);margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px dashed var(--line);font-family:var(--font-mono);font-size:11px;color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap}.hero-canvas{margin-top:var(--s-9);position:relative;perspective:1600px}.hero-canvas-frame{border:1px solid var(--line);border-radius:14px;background:var(--bg-elev);box-shadow:var(--shadow-3);overflow:hidden;transform:rotateX(2deg);transform-origin:center top}.hero-canvas-bar{height:38px;display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-4);border-bottom:1px solid var(--line);background:var(--bg-sunken)}.hero-canvas-bar .dots{display:flex;gap:6px}.hero-canvas-bar .dots span{width:10px;height:10px;border-radius:50%;background:var(--line-strong)}.hero-canvas-bar .url{flex:1;font-family:var(--font-mono);font-size:11.5px;color:var(--text-faint);text-align:center}.hero-canvas-bar .tail{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);letter-spacing:.08em}.hero-canvas-body{display:grid;grid-template-columns:200px 1fr 320px;min-height:460px}.hcb-side{border-right:1px solid var(--line);background:var(--bg-sunken);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);font-size:13px}.hcb-side .group-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-top:var(--s-3)}.hcb-side .item{display:flex;align-items:center;gap:var(--s-2);padding:5px var(--s-2);border-radius:var(--r-2);color:var(--text-muted)}.hcb-side .item.is-active{background:color-mix(in oklab,var(--text) 6%,transparent);color:var(--text);font-weight:500}.hcb-side .item svg{width:14px;height:14px}.hcb-main{background:var(--bg);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}.hcb-main .crumb{display:flex;gap:6px;align-items:center;font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.hcb-main .crumb .sep{color:var(--line-strong)}.hcb-main .crumb .cur{color:var(--text)}.hcb-canvas{flex:1;border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);position:relative;display:flex;align-items:center;justify-content:center;background-image:linear-gradient(var(--line-faint) .5px,transparent .5px),linear-gradient(90deg,var(--line-faint) .5px,transparent .5px);background-size:24px 24px;padding:var(--s-6);min-height:320px}.hcb-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-3);padding:var(--s-5);width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--s-3);box-shadow:var(--shadow-2)}.hcb-chat{border-left:1px solid var(--line);background:var(--bg-elev);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3)}.hcb-chat .head{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--s-3);border-bottom:1px solid var(--line)}.hcb-chat h6{font-family:var(--font-display);font-weight:500;font-size:13px}.hcb-msg{font-size:12.5px;line-height:1.55;padding:10px 12px;border-radius:var(--r-3);max-width:92%}.hcb-msg.is-user{background:var(--primary);color:var(--primary-fg);align-self:flex-end}.hcb-msg.is-ai{background:var(--bg-sunken);color:var(--text)}.hcb-msg .who{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;margin-bottom:4px;opacity:.7;text-transform:uppercase}.feat-grid{margin-top:var(--s-10);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4)}.feat-card{padding:var(--s-6);border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);display:flex;flex-direction:column;gap:var(--s-3);min-height:240px;position:relative;overflow:hidden}.feat-card .ico{width:36px;height:36px;border:1px solid var(--line);border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;color:var(--text)}.feat-card .ico svg{width:18px;height:18px}.feat-card h3{font-family:var(--font-display);font-weight:500;font-size:18px;letter-spacing:-.01em;margin-top:var(--s-3)}.feat-card p{color:var(--text-muted);font-size:13.5px;line-height:1.55}.feat-card .label-mono{position:absolute;top:var(--s-4);right:var(--s-4);font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--text-faint)}.section-title{font-family:var(--font-display);font-weight:300;font-size:40px;letter-spacing:-.02em;margin-bottom:var(--s-3)}.section-lede{font-size:16px;color:var(--text-muted);max-width:56ch;margin-bottom:var(--s-7);font-weight:300}.flow{padding:var(--s-10) 0}.flow-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);overflow:hidden}.flow-step{padding:var(--s-6);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:var(--s-4);position:relative}.flow-step:last-child{border-right:none}.flow-step .num{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--text-faint)}.flow-step h4{font-family:var(--font-display);font-weight:500;font-size:20px;letter-spacing:-.01em}.flow-step p{color:var(--text-muted);font-size:13.5px;line-height:1.55}.flow-step .visual{margin-top:var(--s-3);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-2);padding:var(--s-4);min-height:100px;font-family:var(--font-mono);font-size:12px;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.footer-cta{margin:var(--s-10) 0 var(--s-9);padding:var(--s-9) var(--s-7);border:1px solid var(--line);border-radius:var(--r-4);background:radial-gradient(600px 400px at 80% 30%,var(--primary-soft),transparent 60%),var(--bg-elev);display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);position:relative;overflow:hidden}.footer-cta .deco{position:absolute;right:-40px;top:-40px;width:280px;height:280px;color:var(--line);opacity:.7}.footer-cta h2{font-family:var(--font-display);font-weight:300;font-size:40px;letter-spacing:-.02em;line-height:1.05;max-width:20ch;position:relative}.footer-cta .actions{display:flex;gap:var(--s-3);position:relative}.docfoot-app{padding:var(--s-6) 0;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:11px;color:var(--text-faint);display:flex;justify-content:space-between;letter-spacing:.08em}.dashboard{flex:1;display:flex;flex-direction:column}.dashboard-container{max-width:1240px;margin:0 auto;width:100%;padding:var(--s-7) var(--s-6) var(--s-9)}.dash-head{display:flex;align-items:end;justify-content:space-between;gap:var(--s-5);margin-bottom:var(--s-6)}.dash-head h1{font-family:var(--font-display);font-weight:300;font-size:36px;letter-spacing:-.02em}.dash-head .sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--text-faint);margin-top:var(--s-2);text-transform:uppercase}.dash-tools{display:flex;gap:var(--s-3);align-items:center;margin-bottom:var(--s-5)}.dash-search{flex:1;display:flex;align-items:center;gap:var(--s-3);height:36px;padding:0 var(--s-3);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-2)}.dash-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.dash-search svg{width:15px;height:15px;color:var(--text-faint)}.dash-search input{flex:1;border:none;outline:none;background:transparent;font:inherit;color:var(--text);font-size:13.5px}.dash-search input::-moz-placeholder{color:var(--text-faint)}.dash-search input::placeholder{color:var(--text-faint)}.dash-filter{display:flex;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-2);padding:2px}.dash-filter button{background:transparent;border:none;padding:4px 10px;font-size:12.5px;color:var(--text-muted);border-radius:4px;cursor:pointer}.dash-filter button.is-active{background:var(--bg-active);color:var(--text)}[data-theme=dark] .dash-filter button.is-active{background:var(--bg-hover)}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-4)}.proj-card{border:1px solid var(--line);border-radius:var(--r-3);padding:var(--s-5);background:var(--bg-elev);display:flex;flex-direction:column;gap:var(--s-4);cursor:pointer;transition:all var(--dur-1) var(--ease);position:relative;min-height:180px}.proj-card:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-2)}.proj-card .top{display:flex;align-items:center;justify-content:space-between}.proj-thumb{width:38px;height:38px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--bg-sunken);display:flex;align-items:center;justify-content:center;color:var(--text)}.proj-thumb svg{width:22px;height:22px}.proj-thumb.is-blueprint{background-image:linear-gradient(var(--line) .5px,transparent .5px),linear-gradient(90deg,var(--line) .5px,transparent .5px);background-size:6px 6px}.proj-card .name{font-family:var(--font-display);font-weight:500;font-size:16px;letter-spacing:-.005em}.proj-card .desc{font-size:13px;color:var(--text-muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.proj-card .meta{display:flex;align-items:center;justify-content:space-between;padding-top:var(--s-3);border-top:1px dashed var(--line);font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);letter-spacing:.04em}.proj-card .meta .domain{color:var(--text-muted)}.proj-new{border:1px dashed var(--line-strong);border-radius:var(--r-3);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);min-height:180px;cursor:pointer;color:var(--text-muted);transition:all var(--dur-1) var(--ease)}.proj-new:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.proj-new svg{width:22px;height:22px}.proj-new .label{font-family:var(--font-display);font-size:14px;font-weight:500}.dash-recent{margin-top:var(--s-9)}.recent-list{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);overflow:hidden}.recent-row{display:grid;grid-template-columns:28px 1fr auto auto;gap:var(--s-4);align-items:center;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line);font-size:13.5px}.recent-row:last-child{border-bottom:none}.recent-row .dot{width:10px;height:10px;border-radius:50%;background:var(--text-faint)}.recent-row.is-ok .dot{background:var(--success)}.recent-row.is-build .dot{background:var(--primary);animation:pulse 1.4s ease-in-out infinite}.recent-row.is-fail .dot{background:var(--danger)}.recent-row .what strong{font-weight:500}.recent-row .what .sub{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);margin-left:var(--s-2)}.recent-row .time{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);letter-spacing:.04em}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.empty{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--s-9) var(--s-6);position:relative;overflow:hidden}.empty:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--line-faint) .5px,transparent .5px),linear-gradient(90deg,var(--line-faint) .5px,transparent .5px);background-size:40px 40px;background-position:center;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black,transparent 70%);pointer-events:none}.empty-inner{position:relative;max-width:720px;width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--s-6)}.empty-mark{width:64px;height:64px;color:var(--text)}.empty h1{font-family:var(--font-display);font-weight:250;font-size:52px;letter-spacing:-.03em;line-height:1;text-align:center}.empty h1 em{font-style:normal;color:var(--primary)}.empty .sub{font-size:16px;color:var(--text-muted);text-align:center;max-width:52ch;font-weight:300}.prompt-box{width:100%;border:1px solid var(--line);border-radius:var(--r-4);background:var(--bg-elev);box-shadow:var(--shadow-2);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);transition:all var(--dur-1) var(--ease)}.prompt-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft),var(--shadow-2)}.prompt-box textarea{border:none;outline:none;resize:none;font:inherit;font-size:15px;line-height:1.55;color:var(--text);background:transparent;min-height:84px;padding:var(--s-3)}.prompt-box textarea::-moz-placeholder{color:var(--text-faint)}.prompt-box textarea::placeholder{color:var(--text-faint)}.prompt-box .actions{display:flex;align-items:center;justify-content:space-between;padding-top:var(--s-3);border-top:1px solid var(--line)}.prompt-box .chips{display:flex;gap:var(--s-2)}.prompt-box .chips .add-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:transparent;border:1px solid var(--line);border-radius:var(--r-pill);font-size:12px;color:var(--text-muted);cursor:pointer}.prompt-box .chips .add-chip:hover{color:var(--text);border-color:var(--line-strong)}.prompt-box .chips .add-chip svg{width:13px;height:13px}.prompt-box .send-row{display:flex;gap:var(--s-2);align-items:center}.prompt-box .send-row .kbd{display:none}.prompt-box:focus-within .send-row .kbd{display:inline-flex}.examples{margin-top:var(--s-2);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-3);width:100%}.example{display:flex;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);cursor:pointer;transition:all var(--dur-1) var(--ease);text-align:left}.example:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-1)}.example .ico{width:32px;height:32px;border:1px solid var(--line);border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text)}.example .ico svg{width:16px;height:16px}.example .text{display:flex;flex-direction:column;gap:2px;min-width:0}.example .text .name{font-weight:500;font-size:13.5px}.example .text .desc{font-size:12px;color:var(--text-muted);line-height:1.4}.workspace{flex:1;display:flex;flex-direction:column;min-height:100vh}.ws-topbar{height:48px;display:flex;align-items:center;padding:0 var(--s-4);border-bottom:1px solid var(--line);gap:var(--s-3);background:var(--bg);flex-shrink:0}.ws-crumbs{display:flex;align-items:center;gap:var(--s-2);font-size:13px;color:var(--text-muted)}.ws-crumbs .sep{color:var(--line-strong)}.ws-crumbs .cur{color:var(--text);font-weight:500}.ws-status{display:flex;align-items:center;gap:var(--s-3);margin-left:var(--s-3)}.ws-topbar .spacer{flex:1}.ws-topbar .right{display:flex;align-items:center;gap:var(--s-2)}.ws-body{display:grid;grid-template-columns:240px 1fr 380px;flex:1;min-height:0}.ws-side{border-right:1px solid var(--line);background:var(--bg-sunken);display:flex;flex-direction:column;overflow:hidden}.ws-side-section{padding:var(--s-4);border-bottom:1px solid var(--line)}.ws-side-section:last-child{border-bottom:none;flex:1;overflow-y:auto}.ws-side-section h5{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--text-faint);text-transform:uppercase;margin-bottom:var(--s-3)}.ws-nav{display:flex;flex-direction:column;gap:1px}.ws-nav-item{display:flex;align-items:center;gap:var(--s-3);padding:6px var(--s-3);border-radius:var(--r-2);font-size:13px;color:var(--text-muted);cursor:pointer}.ws-nav-item:hover{background:var(--bg-hover);color:var(--text)}.ws-nav-item.is-active{background:var(--bg-active);color:var(--text)}.ws-nav-item svg{width:14px;height:14px}.ws-nav-item .count{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint)}.ws-tree{display:flex;flex-direction:column;gap:1px;font-family:var(--font-mono);font-size:12px}.ws-tree-row{display:flex;align-items:center;gap:6px;padding:4px var(--s-3);border-radius:var(--r-1);color:var(--text-muted);cursor:pointer}.ws-tree-row:hover{background:var(--bg-hover);color:var(--text)}.ws-tree-row.is-active{background:var(--primary-soft);color:var(--primary)}.ws-tree-row.is-folder{color:var(--text)}.ws-tree-row svg{width:13px;height:13px;flex-shrink:0}.ws-tree-row .indent{width:12px;flex-shrink:0}.ws-tree-row .indent-2{width:24px;flex-shrink:0}.ws-tree-row .dot{margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--success)}.ws-tree-row .dot.is-mod{background:var(--warning)}.ws-main{display:flex;flex-direction:column;background:var(--bg);min-width:0;overflow:hidden}.ws-tabs{height:38px;display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:var(--bg-sunken);flex-shrink:0}.ws-tab{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-4);font-size:12.5px;color:var(--text-muted);border-right:1px solid var(--line);cursor:pointer}.ws-tab svg{width:13px;height:13px}.ws-tab.is-active{background:var(--bg);color:var(--text);font-weight:500}.ws-tab-spacer{flex:1;border-right:1px solid var(--line)}.ws-toolbar{display:flex;align-items:center;padding:0 var(--s-3);gap:2px}.ws-preview{flex:1;background:linear-gradient(var(--line-faint) .5px,transparent .5px) center / 24px 24px,linear-gradient(90deg,var(--line-faint) .5px,transparent .5px) center / 24px 24px,var(--bg-sunken);display:flex;align-items:center;justify-content:center;padding:var(--s-6);overflow:auto;min-height:0}.preview-app{width:100%;max-width:560px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-2);overflow:hidden;font-family:var(--font-body)}.pv-bar{height:30px;display:flex;align-items:center;gap:6px;padding:0 12px;background:var(--bg-sunken);border-bottom:1px solid var(--line)}.pv-bar .dots{display:flex;gap:5px}.pv-bar .dots span{width:8px;height:8px;border-radius:50%;background:var(--line-strong)}.pv-bar .title{font-size:11px;color:var(--text-faint);flex:1;text-align:center;font-family:var(--font-mono)}.pv-body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}.pv-app-head{display:flex;align-items:center;justify-content:space-between}.pv-app-head h3{font-family:var(--font-display);font-weight:500;font-size:18px;letter-spacing:-.01em}.pv-app-head .add{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--r-2);color:var(--text-muted)}.pv-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}.pv-col h4{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--text-faint);text-transform:uppercase;margin-bottom:var(--s-2);display:flex;justify-content:space-between}.pv-col h4 .n{background:var(--bg-sunken);border-radius:var(--r-pill);padding:1px 6px;font-size:9px}.pv-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-2);padding:8px 10px;font-size:12.5px;color:var(--text);display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.pv-card .lbl{font-size:9.5px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.pv-card .lbl.lbl-blue{color:var(--primary)}.pv-card .lbl.lbl-green{color:var(--success)}.pv-card .lbl.lbl-orange{color:var(--warning)}.pv-card .lbl.lbl-faint{color:var(--text-faint)}.ws-statusbar{height:28px;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 var(--s-4);gap:var(--s-4);font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);letter-spacing:.04em;background:var(--bg);flex-shrink:0}.ws-statusbar .item{display:flex;align-items:center;gap:6px}.ws-statusbar .item svg{width:11px;height:11px}.ws-statusbar .spacer{flex:1}.ws-chat{border-left:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;min-width:0;overflow:hidden}.ws-chat-head{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.ws-chat-head h6{font-family:var(--font-display);font-size:13px;font-weight:500;display:flex;align-items:center;gap:var(--s-2)}.ws-chat-head h6 svg{width:14px;height:14px;color:var(--primary)}.ws-chat-feed{flex:1;overflow-y:auto;padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-5)}.msg{display:flex;flex-direction:column;gap:6px}.msg .who{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--text-faint);text-transform:uppercase}.msg.is-user{align-items:flex-end}.msg.is-user .bubble{background:var(--primary);color:var(--primary-fg);padding:10px 14px;border-radius:14px 14px 4px;font-size:13.5px;line-height:1.5;max-width:88%}.msg.is-ai .bubble{font-size:13.5px;line-height:1.6;color:var(--text);max-width:100%}.msg.is-ai .think{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-sunken);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted);margin-bottom:4px}.msg.is-ai .think svg{width:11px;height:11px;color:var(--primary)}.msg .actions{display:flex;gap:var(--s-2);margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px dashed var(--line)}.msg .diff{margin-top:var(--s-3);background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--r-2);padding:10px 12px;font-family:var(--font-mono);font-size:11.5px;line-height:1.65;color:var(--text-muted);overflow-x:auto}.msg .diff .add{color:var(--success)}.msg .diff .rem{color:var(--danger)}.msg .diff .file{display:block;font-size:10px;letter-spacing:.08em;color:var(--text-faint);margin-bottom:4px;text-transform:uppercase}.ws-chat-input{border-top:1px solid var(--line);padding:var(--s-3);flex-shrink:0}.ws-prompt{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev)}.ws-prompt:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.ws-prompt textarea{border:none;outline:none;resize:none;font:inherit;font-size:13.5px;line-height:1.5;color:var(--text);background:transparent;min-height:36px}.ws-prompt textarea::-moz-placeholder{color:var(--text-faint)}.ws-prompt textarea::placeholder{color:var(--text-faint)}.ws-prompt .row{display:flex;align-items:center;justify-content:space-between}.ws-prompt .left-chips{display:flex;gap:4px}.tiny-btn{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--r-1);background:transparent;color:var(--text-muted);cursor:pointer}.tiny-btn svg{width:12px;height:12px}.tiny-btn:hover{background:var(--bg-hover);color:var(--text)}.avatar{width:26px;height:26px;border-radius:50%;background:var(--primary);color:var(--primary-fg);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;letter-spacing:.02em}@media (max-width: 1100px){.feat-grid{grid-template-columns:1fr 1fr}.flow-steps{grid-template-columns:1fr}.flow-step{border-right:none;border-bottom:1px solid var(--line)}.flow-step:last-child{border-bottom:none}.hero-canvas-body{grid-template-columns:1fr;min-height:auto}.hcb-side{display:none}.hcb-chat{border-left:none;border-top:1px solid var(--line)}.ws-body{grid-template-columns:200px 1fr 320px}.footer-cta{flex-direction:column;align-items:flex-start}}@media (max-width: 860px){.ws-body{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.ws-side,.ws-chat{display:none}.proj-grid{grid-template-columns:1fr}}.console{display:grid;grid-template-columns:248px 1fr;min-height:100vh;background:var(--bg)}.con-side{border-right:1px solid var(--line);background:var(--bg-sunken);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}.con-side-head{height:56px;display:flex;align-items:center;padding:0 var(--s-4);border-bottom:1px solid var(--line);flex-shrink:0}.ws-brand{display:flex;align-items:center;height:100%;padding:0 var(--s-2);border-radius:var(--r-2);cursor:pointer;transition:background var(--dur-1)}.ws-brand:hover{background:var(--bg-hover)}.ws-brand .brand-logo{height:38px;width:auto;display:block}.con-nav{flex:1;overflow-y:auto;padding:var(--s-4) var(--s-3);display:flex;flex-direction:column;gap:var(--s-1)}.con-nav .group-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);padding:var(--s-4) var(--s-3) var(--s-2)}.con-nav .group-label:first-child{padding-top:0}.con-nav-item{display:flex;align-items:center;gap:var(--s-3);padding:7px var(--s-3);border-radius:var(--r-2);font-size:13.5px;color:var(--text-muted);cursor:pointer;transition:all var(--dur-1) var(--ease);position:relative}.con-nav-item:hover{background:var(--bg-hover);color:var(--text)}.con-nav-item.is-active{background:var(--bg-elev);color:var(--text);font-weight:500;box-shadow:var(--shadow-1)}.con-nav-item.is-active:before{content:"";position:absolute;left:-1px;top:8px;bottom:8px;width:2px;background:var(--primary);border-radius:2px}.con-nav-item svg{width:16px;height:16px;flex-shrink:0}.con-nav-item .count{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);background:var(--bg-active);padding:1px 7px;border-radius:var(--r-pill)}.con-side-foot{padding:var(--s-3);border-top:1px solid var(--line);flex-shrink:0}.plan-mini{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-3) var(--s-4);display:flex;flex-direction:column;gap:var(--s-2);cursor:pointer;transition:border-color var(--dur-1)}.plan-mini:hover{border-color:var(--line-strong)}.plan-mini .row{display:flex;align-items:center;justify-content:space-between}.plan-mini .row .lbl{font-size:12px;font-weight:500;white-space:nowrap}.plan-mini .row .tag{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}.plan-mini .bar{height:5px;border-radius:var(--r-pill);background:var(--bg-active);overflow:hidden}.plan-mini .bar>i{display:block;height:100%;background:var(--primary);border-radius:var(--r-pill)}.plan-mini .hint{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);letter-spacing:.02em}.cs-support{position:relative;margin-bottom:var(--s-3)}.cs-support-btn{width:100%;display:flex;align-items:center;gap:var(--s-2);padding:7px 9px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);cursor:pointer;text-align:left;transition:border-color var(--dur-1),background var(--dur-1)}.cs-support-btn:hover{border-color:var(--line-strong);background:var(--bg-hover)}.cs-support-bird{width:30px;height:30px;image-rendering:pixelated;flex-shrink:0}.cs-support-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0;flex:1}.cs-support-title{font-size:12.5px;font-weight:500;color:var(--text)}.cs-support-sub{font-size:10.5px;color:var(--text-faint)}.cs-support-btn>svg{width:14px;height:14px;color:var(--text-faint);flex-shrink:0}.cs-pop-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.cs-pop{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:61;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-3);padding:var(--s-4);animation:cs-pop-in var(--dur-2) var(--ease)}@keyframes cs-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.cs-pop-x{position:absolute;top:8px;right:8px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-2);color:var(--text-faint);cursor:pointer;transition:background var(--dur-1),color var(--dur-1)}.cs-pop-x:hover{background:var(--bg-hover);color:var(--text)}.cs-pop-x svg{width:15px;height:15px}.cs-pop-head{display:flex;align-items:center;gap:8px;margin-bottom:var(--s-3)}.cs-pop-bird{width:34px;height:34px;image-rendering:pixelated;flex-shrink:0}.cs-pop-title{font-size:13.5px;font-weight:600;color:var(--text)}.cs-pop-qr{width:152px;height:152px;margin:0 auto;border-radius:var(--r-2);overflow:hidden;background:#fff;border:1px solid var(--line)}.cs-pop-qr img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.cs-pop-tip{text-align:center;font-size:12px;color:var(--text-muted);margin-top:var(--s-2)}.cs-pop-time{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:5px;font-size:11px;color:var(--text-faint);white-space:nowrap}.cs-pop-time svg{width:12px;height:12px;color:var(--success);flex-shrink:0}.cs-pop-time b{color:var(--text-muted);font-weight:500}.con-main{display:flex;flex-direction:column;min-width:0}.con-topbar{height:56px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:var(--s-4);padding:0 var(--s-7);position:sticky;top:0;z-index:20;background:color-mix(in oklab,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.con-topbar .crumbs{display:flex;align-items:center;gap:var(--s-2);font-size:13.5px;color:var(--text-muted)}.con-topbar .crumbs .sep{color:var(--line-strong)}.con-topbar .crumbs .cur{color:var(--text);font-weight:500}.con-topbar .crumbs a{cursor:pointer}.con-topbar .crumbs a:hover{color:var(--text)}.con-topbar .spacer{flex:1}.con-search{display:flex;align-items:center;gap:var(--s-2);height:34px;width:240px;padding:0 var(--s-3);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-2);color:var(--text-faint);cursor:text}.con-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.con-search svg{width:15px;height:15px}.con-search input{flex:1;border:none;outline:none;background:transparent;font:inherit;font-size:13px;color:var(--text)}.con-search .kbd{margin-left:auto}.user-menu{position:relative;display:inline-flex}.user-menu-trigger{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer;border-radius:50%;transition:box-shadow var(--dur-1)}.user-menu-trigger:hover{box-shadow:0 0 0 3px var(--primary-soft)}.user-menu-pop{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;padding:var(--s-1);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:0 8px 24px #00000029;z-index:40}.user-menu-name{padding:var(--s-2) var(--s-3);font-size:13px;font-weight:600;color:var(--text);border-bottom:1px solid var(--line);margin-bottom:var(--s-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item{display:flex;align-items:center;gap:var(--s-2);width:100%;padding:var(--s-2) var(--s-3);border:none;background:transparent;cursor:pointer;border-radius:var(--r-1);font:inherit;font-size:13px;color:var(--text);text-align:left;transition:background var(--dur-1)}.user-menu-item:hover{background:var(--bg-hover)}.user-menu-item svg{width:15px;height:15px}.con-content{flex:1;overflow-y:auto}.con-page{max-width:1120px;margin:0 auto;width:100%;padding:var(--s-7) var(--s-7) var(--s-9)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-5);margin-bottom:var(--s-6)}.page-head .titles h1{font-family:var(--font-display);font-weight:300;font-size:32px;letter-spacing:-.02em}.page-head .titles .sub{font-size:14px;color:var(--text-muted);margin-top:var(--s-2);font-weight:300}.page-head .actions{display:flex;gap:var(--s-2);align-items:center;flex-shrink:0}.con-section{margin-top:var(--s-7)}.con-page .sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.con-page .sec-head h2{font-family:var(--font-display);font-weight:500;font-size:17px;letter-spacing:-.01em}.con-page .sec-head .mono{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase}.card{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev)}.card-pad{padding:var(--s-5)}.app-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.app-card{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);cursor:pointer;transition:all var(--dur-1) var(--ease);position:relative;overflow:hidden}.app-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--line-faint) .5px,transparent .5px),linear-gradient(90deg,var(--line-faint) .5px,transparent .5px);background-size:22px 22px;opacity:0;transition:opacity var(--dur-2);pointer-events:none;mask-image:radial-gradient(ellipse 80% 80% at 90% 10%,black,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 80% 80% at 90% 10%,black,transparent 70%)}.app-card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:var(--shadow-2)}.app-card:hover:after{opacity:1}.app-card.wide{grid-column:1 / -1}.app-card.is-locked{cursor:not-allowed;opacity:.55}.app-card.is-locked:hover{border-color:var(--line);transform:none;box-shadow:none}.app-card.is-locked:hover:after{opacity:0}.app-card.is-locked .foot .open{color:var(--text-faint)}.app-card .top{display:flex;align-items:center;justify-content:space-between}.app-card .brand{display:flex;align-items:center;gap:var(--s-3)}.app-card .cn-title{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-.01em}.app-card .glyph{width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;color:var(--app-accent, var(--primary));background:var(--bg-sunken)}.app-card .glyph svg{width:24px;height:24px}.app-card h3{font-family:var(--font-display);font-weight:500;font-size:19px;letter-spacing:-.01em;display:flex;align-items:baseline;gap:var(--s-2)}.app-card .domain{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);display:inline-flex;align-items:center;gap:6px}.app-card .domain svg{width:12px;height:12px}.app-card p{font-size:13px;color:var(--text-muted);line-height:1.55}.app-card .foot{display:flex;align-items:center;gap:var(--s-4);padding-top:var(--s-3);border-top:1px dashed var(--line);margin-top:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.app-card .foot .open{margin-left:auto;display:inline-flex;align-items:center;gap:4px;color:var(--app-accent, var(--primary));font-weight:500}.app-card .foot .open svg{width:13px;height:13px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4)}.stat-card{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}.stat-card .lbl{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-muted)}.stat-card .lbl svg{width:15px;height:15px;color:var(--text-faint)}.stat-card .val{font-family:var(--font-display);font-weight:300;font-size:30px;letter-spacing:-.02em;line-height:1}.stat-card .val .quota{font-size:14px;color:var(--text-faint);font-family:var(--font-mono)}.stat-card .bar{height:6px;border-radius:var(--r-pill);background:var(--bg-active);overflow:hidden}.stat-card .bar>i{display:block;height:100%;border-radius:var(--r-pill);background:var(--primary);transition:width var(--dur-2) var(--ease)}.stat-card .bar>i.warn{background:var(--warning)}.stat-card .meta{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);letter-spacing:.04em}.spark{display:flex;align-items:flex-end;gap:3px;height:28px}.spark>span{flex:1;background:var(--primary-soft);border-radius:2px 2px 0 0;min-height:2px}.spark>span.hi{background:var(--primary)}.sbx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s-4)}.sbx-card{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4);cursor:pointer;transition:all var(--dur-1) var(--ease)}.sbx-card:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-2)}.sbx-card .top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.sbx-card .ident{display:flex;align-items:center;gap:var(--s-3);min-width:0}.sbx-card .ident .ico{width:36px;height:36px;border:1px solid color-mix(in oklab,var(--app-accent, var(--line)) 35%,var(--line));border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--app-accent, var(--bg-sunken)) 10%,var(--bg-sunken));color:var(--app-accent, var(--text));flex-shrink:0}.sbx-card .ident .ico svg{width:19px;height:19px}.sbx-card .ident .nm{font-family:var(--font-mono);font-size:14px;font-weight:500;letter-spacing:-.01em}.sbx-card .ident .ws-tag{font-family:var(--font-mono);font-size:10px;color:color-mix(in oklab,var(--app-accent, var(--text-faint)) 75%,var(--text-faint));letter-spacing:.04em}.sbx-card .specs{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3) var(--s-4);padding:var(--s-4) 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}.sbx-card .specs .spec{display:flex;flex-direction:column;gap:2px}.sbx-card .specs .spec .k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.sbx-card .specs .spec .v{font-size:13px;font-weight:500}.sbx-card .foot{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.sbx-card .foot .open{color:var(--primary);font-weight:500;display:inline-flex;align-items:center;gap:4px}.sbx-card .foot .open svg{width:13px;height:13px}.s-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.s-dot.running{background:var(--success)}.s-dot.building{background:var(--primary);animation:pulse 1.4s ease-in-out infinite}.s-dot.sleeping,.s-dot.paused{background:var(--text-faint)}.sbx-new{border:1px dashed var(--line-strong);border-radius:var(--r-3);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);min-height:200px;cursor:pointer;color:var(--text-muted);transition:all var(--dur-1) var(--ease)}.sbx-new:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.sbx-new svg{width:24px;height:24px}.sbx-new .label{font-family:var(--font-display);font-weight:500;font-size:14px}.con-table{width:100%;border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);overflow:hidden;border-collapse:separate;border-spacing:0}.con-table thead th{text-align:left;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-weight:500;padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--line);background:var(--bg-sunken)}.con-table tbody td{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line);font-size:13.5px;vertical-align:middle}.con-table tbody tr:last-child td{border-bottom:none}.con-table tbody tr{transition:background var(--dur-1)}.con-table tbody tr:hover{background:var(--bg-hover)}.con-table .mono{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.con-table .strong{font-weight:500}.cell-user{display:flex;align-items:center;gap:var(--s-3)}.cell-user .meta{display:flex;flex-direction:column;line-height:1.3}.cell-user .meta .nm{font-weight:500}.cell-user .meta .em{font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.cell-actions{text-align:right}.cell-actions .icon-btn{display:inline-flex}.type-pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10.5px;font-weight:500;padding:2px 8px;border-radius:var(--r-pill);border:1px solid currentColor;white-space:nowrap}.type-pill svg{width:13px;height:13px;flex-shrink:0}.type-pill.code{color:var(--novi-cobalt)}.type-pill.design{color:var(--novi-teal)}.usage-chart{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-5)}.usage-chart .ch-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-5)}.usage-chart .ch-head h3{font-family:var(--font-display);font-weight:500;font-size:16px}.usage-legend{display:flex;gap:var(--s-4);font-size:12px;color:var(--text-muted)}.usage-legend .key{display:flex;align-items:center;gap:6px}.usage-legend .key i{width:10px;height:10px;border-radius:2px}.usage-legend .key.code i{background:var(--novi-cobalt)}.usage-legend .key.design i{background:var(--novi-teal)}.chart-bars{display:flex;align-items:flex-end;gap:6px;height:200px}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.chart-stack{width:100%;max-width:26px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;height:100%}.chart-stack .seg{border-radius:2px;transition:height var(--dur-2) var(--ease)}.chart-stack .seg.code{background:var(--novi-cobalt);border-radius:0 0 2px 2px}.chart-stack .seg.design{background:var(--novi-teal);border-radius:2px 2px 0 0}.chart-col .x{font-family:var(--font-mono);font-size:9px;color:var(--text-faint)}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4)}.plan-card{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-6) var(--s-5);display:flex;flex-direction:column;gap:var(--s-4);position:relative}.plan-card.is-current{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),var(--shadow-2)}.plan-card .badge-current{position:absolute;top:-10px;left:var(--s-5);background:var(--primary);color:var(--primary-fg);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;padding:3px 10px;border-radius:var(--r-pill);text-transform:uppercase}.plan-card .pname{display:flex;align-items:baseline;gap:var(--s-2)}.plan-card .pname .n{font-family:var(--font-display);font-weight:500;font-size:20px}.plan-card .pname .cn{font-size:12px;color:var(--text-faint)}.plan-card .tagline{font-size:13px;color:var(--text-muted)}.plan-card .price{display:flex;align-items:baseline;gap:6px}.plan-card .price .amt{font-family:var(--font-display);font-weight:300;font-size:38px;letter-spacing:-.02em}.plan-card .price .per{font-size:13px;color:var(--text-faint)}.plan-card .quotas{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4) 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}.plan-card .quotas .q{display:flex;align-items:center;justify-content:space-between;font-size:13px}.plan-card .quotas .q .k{color:var(--text-muted)}.plan-card .quotas .q .v{font-family:var(--font-mono);font-size:12px;font-weight:500}.plan-card .feats{display:flex;flex-direction:column;gap:var(--s-2);flex:1}.plan-card .feats .f{display:flex;align-items:flex-start;gap:var(--s-2);font-size:13px;color:var(--text)}.plan-card .feats .f svg{width:15px;height:15px;color:var(--success);flex-shrink:0;margin-top:2px}.checklist{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);overflow:hidden}.checklist .cl-head{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:var(--bg-sunken)}.checklist .cl-head h3{font-family:var(--font-display);font-weight:500;font-size:15px}.checklist .cl-head .prog{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.checklist .cl-item{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line);cursor:pointer;transition:background var(--dur-1)}.checklist .cl-item:last-child{border-bottom:none}.checklist .cl-item:hover{background:var(--bg-hover)}.checklist .cl-item .mark{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:transparent;transition:all var(--dur-1)}.checklist .cl-item.done .mark{background:var(--success);border-color:var(--success);color:#fff}.checklist .cl-item .mark svg{width:12px;height:12px}.checklist .cl-item .body{flex:1;min-width:0}.checklist .cl-item .body .t{font-weight:500;font-size:13.5px}.checklist .cl-item.done .body .t{color:var(--text-muted);text-decoration:line-through}.checklist .cl-item .body .d{font-size:12px;color:var(--text-faint);margin-top:1px}.checklist .cl-item .go{color:var(--text-faint)}.checklist .cl-item:hover .go{color:var(--primary)}.checklist .cl-item .go svg{width:16px;height:16px}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none}.tour-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f10128c;pointer-events:auto;transition:clip-path var(--dur-2) var(--ease)}.tour-ring{position:absolute;border:2px solid var(--primary);border-radius:var(--r-3);box-shadow:0 0 0 4px var(--primary-soft);pointer-events:none;transition:all var(--dur-2) var(--ease)}.tour-pop{position:absolute;width:300px;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-3);box-shadow:var(--shadow-3);padding:var(--s-5);pointer-events:auto;display:flex;flex-direction:column;gap:var(--s-3);transition:all var(--dur-2) var(--ease)}.tour-pop .step-no{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;color:var(--primary);text-transform:uppercase}.tour-pop h4{font-family:var(--font-display);font-weight:500;font-size:17px;letter-spacing:-.01em}.tour-pop p{font-size:13px;color:var(--text-muted);line-height:1.55}.tour-pop .pop-foot{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s-2)}.tour-pop .dots{display:flex;gap:6px}.tour-pop .dots i{width:6px;height:6px;border-radius:50%;background:var(--line-strong)}.tour-pop .dots i.on{background:var(--primary);width:18px;border-radius:3px}.tour-pop .pop-actions{display:flex;gap:var(--s-2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--s-4);padding:var(--s-9) var(--s-6);border:1px dashed var(--line-strong);border-radius:var(--r-3);background:linear-gradient(var(--line-faint) .5px,transparent .5px) center / 28px 28px,linear-gradient(90deg,var(--line-faint) .5px,transparent .5px) center / 28px 28px,var(--bg-elev)}.empty-state .illo{width:96px;height:96px;color:var(--line-strong);position:relative}.empty-state h3{font-family:var(--font-display);font-weight:400;font-size:22px;letter-spacing:-.01em}.empty-state p{font-size:14px;color:var(--text-muted);max-width:44ch}.signin{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.signin-brand{background:var(--bg-sunken);border-right:1px solid var(--line);padding:var(--s-9) var(--s-8);display:flex;flex-direction:column;position:relative;overflow:hidden}.signin-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--line-faint) .5px,transparent .5px),linear-gradient(90deg,var(--line-faint) .5px,transparent .5px);background-size:32px 32px;mask-image:radial-gradient(ellipse 90% 70% at 30% 40%,black,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 90% 70% at 30% 40%,black,transparent 75%);pointer-events:none}.signin-brand .bk{position:relative;z-index:1;display:flex;align-items:center;gap:var(--s-3)}.signin-brand .bk .name{font-family:var(--font-display);font-size:18px}.signin-brand .bk .cn{font-size:10px;letter-spacing:.25em;color:var(--text-faint)}.signin-brand .big-mark{position:relative;z-index:1;margin:auto 0}.signin-brand .tagline{position:relative;z-index:1;font-family:var(--font-display);font-weight:250;font-size:40px;line-height:1.05;letter-spacing:-.03em;margin-top:var(--s-6);max-width:14ch}.signin-brand .tagline em{font-style:normal;color:var(--primary)}.signin-brand .stamp{position:relative;z-index:1;margin-top:var(--s-6);display:flex;gap:var(--s-5);flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase}.signin-form{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--s-8);position:relative}.signin-form .topright{position:absolute;top:var(--s-6);right:var(--s-7)}.signin-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--s-5)}.signin-card .h{font-family:var(--font-display);font-weight:300;font-size:28px;letter-spacing:-.02em}.signin-card .sub{font-size:14px;color:var(--text-muted);margin-top:6px}.sso-btn{display:flex;align-items:center;gap:var(--s-3);width:100%;height:48px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--bg-elev);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--dur-1) var(--ease)}.sso-btn:hover{border-color:var(--text-faint);background:var(--bg-hover)}.sso-btn.primary{background:var(--text);color:var(--text-inv);border-color:var(--text)}.sso-btn.primary:hover{opacity:.9}.sso-btn svg{width:18px;height:18px}.sso-btn .arr{margin-left:auto}.signin-card .divider{display:flex;align-items:center;gap:var(--s-3);font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase}.signin-card .divider:before,.signin-card .divider:after{content:"";flex:1;height:1px;background:var(--line)}.signin-card .fine{font-size:12px;color:var(--text-faint);line-height:1.6;text-align:center}.signin-card .fine a{color:var(--text-muted);text-decoration:underline;cursor:pointer}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#0f101273;display:flex;align-items:center;justify-content:center;padding:var(--s-6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:100%;max-width:480px;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-4);box-shadow:var(--shadow-3);overflow:hidden}.modal .m-head{padding:var(--s-5) var(--s-5) var(--s-4);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal .m-head h3{font-family:var(--font-display);font-weight:500;font-size:18px}.modal .m-body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}.modal .m-foot{padding:var(--s-4) var(--s-5);border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:var(--s-2);background:var(--bg-sunken)}.field{display:flex;flex-direction:column;gap:var(--s-2)}.field label{font-size:12.5px;font-weight:500;color:var(--text)}.field .hint{font-size:11.5px;color:var(--text-faint)}.field input,.field select{height:38px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--bg);font:inherit;font-size:14px;color:var(--text);outline:none}.field input:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.seg-pick{display:flex;gap:var(--s-2)}.seg-pick .opt{flex:1;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:all var(--dur-1)}.seg-pick .opt.on{border-color:var(--primary);background:var(--primary-soft)}.seg-pick .opt .ot{font-weight:500;font-size:13px;display:flex;align-items:center;gap:6px}.seg-pick .opt .od{font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.ws-pick .opt{align-items:center;text-align:center;gap:4px;padding:var(--s-3) var(--s-3) var(--s-3)}.ws-pick .ws-ico{width:30px;height:30px;border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--bg-sunken);color:var(--text-muted);transition:all var(--dur-1);margin-bottom:2px}.ws-pick .ws-ico svg{width:17px;height:17px}.ws-pick .ws-cta{font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:-.01em}.ws-pick .opt .ot{font-weight:500;font-size:11px;color:var(--text-muted);justify-content:center}.ws-pick .opt .od{line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.ws-pick .opt.on .ws-ico{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.seg-pick .opt.is-locked{cursor:not-allowed;opacity:.45}.seg-pick .opt.is-locked.on{opacity:1}@media (max-width: 1080px){.app-cards,.plan-grid,.stat-grid,.signin{grid-template-columns:1fr}.signin-brand{display:none}}@media (max-width: 880px){.console{grid-template-columns:1fr}.con-side{display:none}}.mascot{display:inline-block;image-rendering:pixelated;image-rendering:crisp-edges;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform var(--dur-1) var(--ease);vertical-align:middle}.mascot:hover{transform:translateY(-2px) rotate(-3deg)}.mascot.flip{transform:scaleX(-1)}.mascot.flip:hover{transform:scaleX(-1) translateY(-2px) rotate(3deg)}.mascot.hop{animation:novi-hop .5s var(--ease)}@keyframes novi-hop{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-11px) rotate(-7deg)}60%{transform:translateY(0) rotate(4deg)}}.chirp-bubble{position:fixed;z-index:2100;pointer-events:none;font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--novi-orange);background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:3px 10px;box-shadow:var(--shadow-2);white-space:nowrap;animation:novi-chirp 1.25s var(--ease) forwards}@keyframes novi-chirp{0%{opacity:0;transform:translate(-50%,-70%) scale(.7)}20%{opacity:1;transform:translate(-50%,-130%) scale(1)}to{opacity:0;transform:translate(-50%,-230%) scale(1)}}.mascot-flyby{position:fixed;left:-90px;z-index:2000;image-rendering:pixelated;pointer-events:none;animation:novi-flyby 2.4s linear forwards;filter:drop-shadow(0 6px 8px rgba(0,0,0,.12))}@keyframes novi-flyby{0%{left:-90px;transform:translateY(0) scaleX(-1)}25%{transform:translateY(-16px) scaleX(-1)}50%{transform:translateY(2px) scaleX(-1)}75%{transform:translateY(-14px) scaleX(-1)}to{left:calc(100vw + 90px);transform:translateY(0) scaleX(-1)}}.signin-perch{position:absolute;right:var(--s-8);bottom:var(--s-7);z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}.signin-perch .branch{width:132px;height:0;border-top:1.5px solid var(--line-strong);position:relative}.signin-perch .branch:before,.signin-perch .branch:after{content:"";position:absolute;top:0;width:8px;height:8px;border-radius:50%;background:var(--line-strong)}.signin-perch .branch:before{left:-2px}.signin-perch .branch:after{right:-2px}.signin-perch .perch-hint{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);letter-spacing:.04em}.signin-perch .mascot{margin-bottom:-3px}.tour-buddy{position:absolute;top:-26px;left:-16px;transform:rotate(-8deg);z-index:1;filter:drop-shadow(0 4px 6px rgba(0,0,0,.15))}.tour-buddy:hover{transform:rotate(-8deg) translateY(-2px)}.plan-banner{display:flex;align-items:center;gap:var(--s-4);margin-bottom:var(--s-5);padding:var(--s-4) var(--s-5);border:1px solid color-mix(in oklab,var(--primary) 35%,var(--line));border-radius:var(--r-3);background:color-mix(in oklab,var(--primary) 7%,var(--bg-elev))}.plan-banner .pb-ico{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--r-2);background:color-mix(in oklab,var(--primary) 15%,transparent);color:var(--primary)}.plan-banner .pb-ico svg{width:20px;height:20px}.plan-banner .pb-text{flex:1;min-width:0}.plan-banner .pb-title{font-size:14px;font-weight:600;color:var(--text)}.plan-banner .pb-sub{font-size:12.5px;color:var(--text-muted);margin-top:2px}.plan-banner .btn{flex-shrink:0}.modal.plan-guide{width:min(420px,92vw)}.plan-guide .pg-hero{display:flex;align-items:flex-start;gap:var(--s-4)}.plan-guide .pg-ico{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--r-2);background:color-mix(in oklab,var(--primary) 15%,transparent);color:var(--primary)}.plan-guide .pg-ico svg{width:22px;height:22px}.plan-guide .pg-hero p{font-size:13px;line-height:1.6;color:var(--text-muted);margin:0}.deploy-mock-note{margin-bottom:var(--s-5);display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12.5px;border-color:var(--line-strong)}.dep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s-4)}.dep-card{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4);cursor:pointer;transition:all var(--dur-1) var(--ease)}.dep-card:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-2)}.dep-card .top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.dep-card .ident{display:flex;align-items:center;gap:var(--s-3);min-width:0}.dep-card .ident .ico{width:36px;height:36px;border:1px solid var(--line);border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;background:var(--bg-sunken);color:var(--primary);flex-shrink:0}.dep-card .ident .ico svg{width:19px;height:19px}.dep-card .ident .nm{font-family:var(--font-mono);font-size:14px;font-weight:500;letter-spacing:-.01em}.dep-card .ident .rt-tag{font-size:10.5px;color:var(--text-faint);letter-spacing:.04em}.dep-card .dep-url{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-muted);padding:var(--s-3) 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dep-card .foot{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.dep-card .foot .open{color:var(--primary);font-weight:500;display:inline-flex;align-items:center;gap:4px}.dep-card .foot .open svg{width:13px;height:13px}.dep-tabs{display:flex;gap:var(--s-1);border-bottom:1px solid var(--line);margin-bottom:var(--s-5)}.dep-tab{background:transparent;border:none;cursor:pointer;padding:var(--s-3) var(--s-3);font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur-1),border-color var(--dur-1)}.dep-tab:hover{color:var(--text)}.dep-tab.on{color:var(--primary);border-bottom-color:var(--primary)}.dep-meta{display:flex;flex-direction:column;gap:0;margin:0}.dep-meta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) 0;border-bottom:1px dashed var(--line)}.dep-meta-row:last-child{border-bottom:none}.dep-meta-row dt{font-size:12.5px;color:var(--text-muted);flex-shrink:0}.dep-meta-row dd{margin:0;font-size:12.5px;color:var(--text);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dep-env-list{display:flex;flex-direction:column;gap:var(--s-2)}.dep-env-row{display:flex;align-items:center;gap:var(--s-2)}.dep-env-row input{height:34px;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-2);background:var(--bg);color:var(--text);font-size:13px}.dep-env-row input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.dep-env-row input:first-child{flex:0 0 38%}.dep-env-row input:nth-child(3){flex:1}.dep-env-row .eq{color:var(--text-faint)}.dep-log-bar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);background:var(--bg-sunken)}.dep-log-auto{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);cursor:pointer;margin-left:auto}.dep-log-box{margin:0;padding:var(--s-4);max-height:420px;overflow:auto;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--text-muted);white-space:pre-wrap;word-break:break-all;background:var(--bg)}.dep-domain-input{display:flex;align-items:stretch}.dep-domain-input input{flex:1;height:36px;padding:0 var(--s-3);border:1px solid var(--line);border-right:none;border-radius:var(--r-2) 0 0 var(--r-2);background:var(--bg);color:var(--text);font-size:13px}.dep-domain-input input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none;position:relative;z-index:1}.dep-domain-input .suffix{display:flex;align-items:center;padding:0 var(--s-3);border:1px solid var(--line);border-radius:0 var(--r-2) var(--r-2) 0;background:var(--bg-sunken);color:var(--text-faint);font-size:12.5px}.dep-rev-list{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}.dep-rev{border:1px solid var(--line);border-radius:var(--r-2);padding:var(--s-3);cursor:pointer;transition:all var(--dur-1)}.dep-rev:hover{border-color:var(--line-strong)}.dep-rev.on{border-color:var(--primary);background:var(--primary-soft)}.dep-rev .rev-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.dep-rev .rev-img{font-size:11px;color:var(--text-faint);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dep-quota-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.dep-quota-nums{display:flex;align-items:center;gap:var(--s-3);font-size:13px;color:var(--text-muted)}.dep-quota-nums .q b{font-size:18px;font-weight:600;color:var(--text)}.dep-quota-nums .sep{color:var(--line-strong)}.dep-quota-specs{display:flex;gap:var(--s-2);flex-wrap:wrap}.dep-quota-bar{height:6px;border-radius:var(--r-pill);background:var(--bg-sunken);overflow:hidden;margin:var(--s-4) 0 var(--s-3)}.dep-quota-bar i{display:block;height:100%;background:var(--primary);border-radius:var(--r-pill);transition:width var(--dur-2) var(--ease)}.dep-quota-hint{font-size:11.5px;color:var(--text-faint)}@keyframes spin{to{transform:rotate(360deg)}}html,body{background:var(--bg)}#root{min-height:100vh}.code-pill{font-family:var(--font-mono);font-size:12.5px;font-weight:500;letter-spacing:.04em;color:var(--text);background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--r-1);padding:3px 9px;display:inline-block}.pay-stage,.ord-stage{min-height:100vh;background:linear-gradient(var(--line-faint) .5px,transparent .5px) 0 0 / 30px 30px,linear-gradient(90deg,var(--line-faint) .5px,transparent .5px) 0 0 / 30px 30px,var(--bg-sunken);display:flex;flex-direction:column}.pay-top,.ord-top{height:60px;flex-shrink:0;display:flex;align-items:center;gap:var(--s-4);padding:0 var(--s-7);border-bottom:1px solid var(--line);background:color-mix(in oklab,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.pay-top .bk,.ord-top .bk{display:flex;align-items:center}.pay-top .bk .pay-logo,.ord-top .bk .pay-logo{height:26px;width:auto;display:block}.pay-top .ttl,.ord-top .ttl{font-size:13px;color:var(--text-muted);padding-left:var(--s-4);border-left:1px solid var(--line);white-space:nowrap}.pay-top .secure{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--text-faint);white-space:nowrap;flex-shrink:0}.pay-top .secure svg{width:13px;height:13px;color:var(--success)}.ord-top .right{margin-left:auto;display:flex;gap:var(--s-2)}.pay-wrap{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:var(--s-7) var(--s-7) var(--s-9);display:grid;grid-template-columns:1fr 360px;gap:var(--s-6);align-items:start}.pay-main{display:flex;flex-direction:column;gap:var(--s-5)}.pay-h{font-family:var(--font-display);font-weight:300;font-size:28px;letter-spacing:-.02em}.pay-h .sub{font-size:13.5px;color:var(--text-muted);margin-top:4px;font-weight:400}.pay-tabs{display:flex;gap:var(--s-2)}.pay-tabs .tab{flex:1;padding:var(--s-3) var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--bg-elev);cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:all var(--dur-1)}.pay-tabs .tab.on{border-color:var(--primary);background:var(--primary-soft)}.pay-tabs .tab.is-static{cursor:default}.pay-tabs .tab.is-static:not(.on){opacity:.45}.method-opt.is-locked{cursor:not-allowed}.method-opt.is-locked:not(.on){opacity:.45}.pay-tabs .tab .t{font-weight:500;font-size:13.5px}.pay-tabs .tab.on .t{color:var(--primary)}.pay-tabs .tab .d{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint)}.pay-block{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);overflow:hidden}.pay-block .bh{padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);background:var(--bg-sunken)}.pay-block .bd{padding:var(--s-5)}.pay-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4)}.pay-item .l .nm{font-family:var(--font-display);font-weight:500;font-size:18px}.pay-item .l .nm .cn{font-size:12px;color:var(--text-faint);font-weight:400;margin-left:6px}.pay-item .l .qz{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.pay-item .l .qz .q{font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted);border:1px solid var(--line);border-radius:var(--r-1);padding:1px 7px}.pay-item .r{text-align:right;flex-shrink:0}.pay-item .r .now{font-family:var(--font-display);font-weight:500;font-size:20px}.pay-item .r .was{font-family:var(--font-mono);font-size:12px;color:var(--text-faint);text-decoration:line-through}.coupon-row{display:flex;gap:var(--s-2);margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px dashed var(--line)}.coupon-row input{flex:1;height:38px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--bg);font:inherit;font-size:13px;color:var(--text);outline:none;font-family:var(--font-mono);letter-spacing:.04em}.coupon-row input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.coupon-applied{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--success);margin-top:10px}.coupon-applied svg{width:14px;height:14px;flex-shrink:0}.coupon-bad{display:inline-flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--danger);margin-top:10px;line-height:1.5}.coupon-bad svg{width:14px;height:14px;flex-shrink:0;margin-top:1px}.pay-rail{position:sticky;top:80px;display:flex;flex-direction:column;gap:var(--s-4)}.pay-rail .panel{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-5)}.pay-rail .panel-h{font-family:var(--font-display);font-weight:500;font-size:15px;margin-bottom:var(--s-4)}.method{display:flex;flex-direction:column;gap:var(--s-2)}.method-opt{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-2);cursor:pointer;transition:all var(--dur-1)}.method-opt.on{border-color:var(--primary);background:var(--primary-soft)}.method-opt .logo{width:30px;height:30px;border-radius:var(--r-1);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:600;font-size:14px}.method-opt .logo.wechat,.method-opt .logo.huifu_wechat{background:#1aad19}.method-opt .logo.alipay,.method-opt .logo.huifu_alipay{background:#1677ff}.method-opt .logo.stripe{background:#635bff}.method-opt .logo.mock{background:var(--text-faint)}.method-opt .mi{flex:1;min-width:0}.method-opt .mi .t{font-weight:500;font-size:13.5px}.method-opt .mi .d{font-family:var(--font-mono);font-size:10px;color:var(--text-faint)}.method-opt .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center}.method-opt.on .radio{border-color:var(--primary)}.method-opt.on .radio:after{content:"";width:9px;height:9px;border-radius:50%;background:var(--primary)}.pay-qr{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px dashed var(--line)}.pay-qr .qr{width:132px;height:132px;border:1px solid var(--line);border-radius:var(--r-2);background:repeating-conic-gradient(var(--text) 0% 25%,var(--bg-elev) 0% 50%) 0 0 / 14px 14px;position:relative;opacity:.9}.pay-qr .qr:after{content:"";position:absolute;top:38%;right:38%;bottom:38%;left:38%;background:var(--bg-elev);border:2px solid var(--text)}.pay-qr .hint{font-size:11.5px;color:var(--text-muted)}.amt-rows{display:flex;flex-direction:column;gap:var(--s-2)}.amt-rows .ar{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-muted)}.amt-rows .ar .v{font-family:var(--font-mono);color:var(--text)}.amt-rows .ar .v.minus{color:var(--success)}.amt-due{display:flex;align-items:baseline;justify-content:space-between;margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line-strong)}.amt-due .l{font-size:13px;color:var(--text-muted)}.amt-due .r{font-family:var(--font-display);font-weight:400;font-size:30px;letter-spacing:-.02em;color:var(--text)}.pay-btn{width:100%;height:46px;margin-top:var(--s-4);font-size:15px}.pay-fine{font-size:11px;color:var(--text-faint);line-height:1.6;margin-top:var(--s-3);text-align:center}.pay-fine a{color:var(--text-muted);text-decoration:underline}.pay-main .switch-calc{background:var(--bg-elev)}.switch-calc{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--s-6);border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-6)}.sc-controls{display:flex;flex-direction:column;gap:var(--s-5)}.sc-pickrow{display:flex;align-items:center;gap:var(--s-3)}.sc-pickrow .arr{color:var(--text-faint)}.sc-pickrow .arr svg{width:20px;height:20px}.sc-plan-pick{flex:1}.sc-plan-pick label{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:6px}.sc-plan-pick select{width:100%;height:40px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--bg);font:inherit;font-size:14px;color:var(--text);outline:none}.sc-plan-pick select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.sc-field label{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:8px}.sc-slider{display:flex;align-items:center;gap:var(--s-4)}.sc-slider input[type=range]{flex:1;accent-color:var(--primary)}.sc-slider .rd{font-family:var(--font-mono);font-size:12.5px;color:var(--text);white-space:nowrap;min-width:86px;text-align:right}.sc-timeline{margin-top:var(--s-2)}.sc-track{position:relative;height:34px;border-radius:var(--r-2);overflow:hidden;border:1px solid var(--line);background:var(--bg-sunken)}.sc-track .used{position:absolute;top:0;bottom:0;left:0;background:var(--bg-active)}.sc-track .rem{position:absolute;top:0;bottom:0;background:var(--primary-soft);border-left:2px solid var(--primary)}.sc-track .cap{position:absolute;font-family:var(--font-mono);font-size:9.5px;color:var(--text-muted);top:50%;transform:translateY(-50%);padding:0 6px}.sc-axis{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;color:var(--text-faint);margin-top:6px}.sc-receipt{border-left:1px solid var(--line);padding-left:var(--s-6);display:flex;flex-direction:column}.sc-receipt h4{font-family:var(--font-display);font-weight:500;font-size:15px;margin-bottom:var(--s-2)}.sc-step{display:flex;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px dashed var(--line)}.sc-step .no{width:22px;height:22px;flex-shrink:0;border-radius:50%;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.sc-step.is-charge .no{border-color:var(--primary);color:var(--primary)}.sc-step.is-refund .no{border-color:var(--success);color:var(--success)}.sc-step .body{flex:1;min-width:0}.sc-step .body .t{font-size:13px;font-weight:500;display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}.sc-step .body .t>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-step .body .t .amt{font-family:var(--font-mono);flex-shrink:0;white-space:nowrap}.sc-step .body .t .amt.plus{color:var(--primary)}.sc-step .body .t .amt.minus{color:var(--success)}.sc-step .body .d{font-size:11.5px;color:var(--text-faint);margin-top:2px;line-height:1.5}.sc-total{display:flex;align-items:baseline;justify-content:space-between;margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line-strong)}.sc-total .l{font-size:13px;color:var(--text-muted)}.sc-total .r{font-family:var(--font-display);font-weight:400;font-size:28px;letter-spacing:-.02em}.sc-note{margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border-radius:var(--r-2);background:var(--primary-soft);font-size:12px;color:var(--text-muted);line-height:1.6;display:flex;gap:var(--s-3)}.sc-note svg{width:15px;height:15px;color:var(--primary);flex-shrink:0;margin-top:1px}.sc-note b{color:var(--text);font-weight:600}.ord-wrap{flex:1;width:100%;max-width:880px;margin:0 auto;padding:var(--s-7) var(--s-7) var(--s-9)}.ord-hero{border:1px solid var(--line);border-radius:var(--r-3);background:var(--bg-elev);padding:var(--s-6);display:flex;align-items:center;gap:var(--s-5);margin-bottom:var(--s-5)}.ord-hero .seal{width:56px;height:56px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center}.ord-hero .seal.ok{background:color-mix(in oklab,var(--success) 14%,transparent);color:var(--success)}.ord-hero .seal.wait{background:color-mix(in oklab,var(--novi-orange) 14%,transparent);color:var(--novi-orange)}.ord-hero .seal.bad{background:color-mix(in oklab,var(--danger) 14%,transparent);color:var(--danger)}.ord-hero .seal svg{width:28px;height:28px}.ord-hero .ht h2{font-family:var(--font-display);font-weight:400;font-size:24px;letter-spacing:-.01em}.ord-hero .ht .meta{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-top:5px}.ord-hero .amt{margin-left:auto;text-align:right}.ord-hero .amt .k{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.ord-hero .amt .v{font-family:var(--font-display);font-weight:400;font-size:30px;letter-spacing:-.02em}.ord-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s-5);align-items:start}.ord-flow{display:flex;flex-direction:column}.ord-flow .step{display:flex;gap:var(--s-4)}.ord-flow .step .rail{display:flex;flex-direction:column;align-items:center}.ord-flow .step .dot{width:26px;height:26px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--line-strong);background:var(--bg-elev);display:flex;align-items:center;justify-content:center;color:var(--text-faint)}.ord-flow .step.done .dot{border-color:var(--success);background:var(--success);color:#fff}.ord-flow .step.active .dot{border-color:var(--primary);color:var(--primary)}.ord-flow .step .dot svg{width:13px;height:13px}.ord-flow .step .line{width:1.5px;flex:1;background:var(--line);min-height:26px}.ord-flow .step.done .line{background:var(--success)}.ord-flow .step:last-child .line{display:none}.ord-flow .step .body{padding-bottom:var(--s-4)}.ord-flow .step .body .t{font-weight:500;font-size:13.5px}.ord-flow .step .body .d{font-family:var(--font-mono);font-size:11.5px;color:var(--text-faint);margin-top:2px}.ord-kv{display:flex;flex-direction:column}.ord-kv .kv{display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) 0;border-bottom:1px dashed var(--line);font-size:13px}.ord-kv .kv:last-child{border-bottom:none}.ord-kv .kv .k{color:var(--text-muted)}.ord-kv .kv .v{font-family:var(--font-mono);color:var(--text)}.ord-kv .kv .v.plus{color:var(--primary)}.ord-kv .kv .v.minus{color:var(--success)}.ord-kv .kv.total{border-top:1px solid var(--line-strong);border-bottom:none;padding-top:var(--s-4);margin-top:var(--s-2)}.ord-kv .kv.total .k{color:var(--text);font-weight:500}.ord-kv .kv.total .v{font-family:var(--font-display);font-size:20px;font-weight:500}@media (max-width: 920px){.pay-wrap{grid-template-columns:1fr}.pay-rail{position:static}.ord-grid{grid-template-columns:1fr}.ord-hero{flex-wrap:wrap}.switch-calc{grid-template-columns:1fr}.sc-receipt{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:var(--s-5)}}
