:root{--bg: oklch(.218 .04 235);--bg-grad: radial-gradient(135% 120% at 100% -12%, oklch(.285 .055 229) 0%, oklch(.205 .038 236) 58%);--surface: oklch(.335 .045 231);--surface-2: oklch(.388 .046 230);--surface-3: oklch(.445 .047 229);--border: oklch(.435 .036 231);--border-strong: oklch(.55 .04 229);--overlay: oklch(.14 .03 236 / .7);--text: oklch(.955 .017 205);--text-muted: oklch(.785 .03 208);--text-faint: oklch(.66 .032 212);--accent: oklch(.8 .115 86);--accent-hover: oklch(.86 .11 88);--accent-press: oklch(.74 .12 84);--accent-weak: oklch(.8 .115 86 / .16);--accent-soft: oklch(.8 .115 86 / .1);--accent-line: oklch(.8 .115 86 / .4);--on-accent: oklch(.24 .045 250);--pos: oklch(.76 .155 152);--pos-weak: oklch(.76 .155 152 / .15);--neg: oklch(.7 .175 25);--neg-weak: oklch(.7 .175 25 / .16);--warn: oklch(.74 .16 52);--warn-weak: oklch(.74 .16 52 / .17);--r-xs: 6px;--r-sm: 8px;--r: 12px;--r-lg: 16px;--shadow-1: 0 2px 8px -2px oklch(.1 .03 236 / .55);--shadow-2: 0 14px 32px -12px oklch(.08 .03 236 / .66);--shadow-pop: 0 24px 56px -18px oklch(.06 .03 236 / .74);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-head: "Fraunces", "Iowan Old Style", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", Menlo, monospace;--h-topbar: 64px;--w-sidebar: 266px;--z-sticky: 100;--z-dropdown: 300;--z-backdrop: 800;--z-modal: 900;--z-toast: 1000}[data-theme=light]{--bg: oklch(.965 .014 205);--bg-grad: radial-gradient(130% 115% at 100% -10%, oklch(.99 .01 200) 0%, oklch(.955 .016 208) 60%);--surface: oklch(.995 .005 200);--surface-2: oklch(.95 .013 206);--surface-3: oklch(.915 .016 209);--border: oklch(.88 .022 215);--border-strong: oklch(.79 .026 218);--overlay: oklch(.3 .045 235 / .34);--text: oklch(.3 .045 240);--text-muted: oklch(.455 .035 235);--text-faint: oklch(.575 .03 230);--accent: oklch(.52 .11 70);--accent-hover: oklch(.46 .105 68);--accent-press: oklch(.41 .095 66);--accent-weak: oklch(.52 .11 70 / .12);--accent-soft: oklch(.52 .11 70 / .07);--accent-line: oklch(.52 .11 70 / .32);--on-accent: oklch(.99 .01 90);--pos: oklch(.5 .14 150);--pos-weak: oklch(.5 .14 150 / .11);--neg: oklch(.52 .2 27);--neg-weak: oklch(.52 .2 27 / .1);--warn: oklch(.58 .15 50);--warn-weak: oklch(.58 .15 50 / .13);--shadow-1: 0 1px 2px oklch(.4 .04 235 / .08);--shadow-2: 0 10px 28px -12px oklch(.4 .04 235 / .18);--shadow-pop: 0 20px 52px -16px oklch(.4 .04 235 / .22)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);background:var(--bg);background-image:var(--bg-grad);background-attachment:fixed;color:var(--text);font-size:14.5px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-weak)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px;border:3px solid transparent;background-clip:padding-box}.h1{font-family:var(--font-head);font-size:30px;font-weight:600;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}.h2{font-family:var(--font-head);font-size:20px;font-weight:600;letter-spacing:-.01em}.h3{font-size:15px;font-weight:620;letter-spacing:-.005em}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.strong{font-weight:640}.small{font-size:12px}.lead{color:var(--text-muted);font-size:15px;line-height:1.65;max-width:72ch}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.01em}.pos{color:var(--pos)}.neg{color:var(--neg)}.accent{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-1)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:clip}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 24px;border-bottom:1px solid var(--border)}.panel-body{padding:24px}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:clip;scroll-margin-top:calc(var(--h-topbar) + 16px)}.section-head{display:flex;align-items:flex-start;gap:15px;padding:22px 24px;border-bottom:1px solid var(--border)}.section-head .step{flex-shrink:0;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--accent-weak);color:var(--accent);font-size:14px;font-weight:680;font-variant-numeric:tabular-nums;border:1px solid var(--accent-line)}.section-head .titles{display:flex;flex-direction:column;gap:2px;min-width:0}.section-head .titles .t{font-family:var(--font-head);font-size:19px;font-weight:600;letter-spacing:-.01em}.section-head .titles .hint{font-size:13px;color:var(--text-muted);line-height:1.5;max-width:66ch}.section-head .head-aside{margin-left:auto;display:flex;align-items:center;gap:10px}.section-body{padding:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:13px;font-weight:550;cursor:pointer;white-space:nowrap;transition:background .14s ease,border-color .14s ease,transform .05s ease}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active{background:var(--accent-press)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{color:var(--neg);border-color:transparent;background:transparent}.btn-danger:hover{background:var(--neg-weak)}.btn-sm{height:30px;padding:0 11px;font-size:12px}.btn-lg{height:44px;padding:0 22px;font-size:14.5px}.btn-icon{width:36px;padding:0}.btn-icon.btn-sm{width:30px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.label{font-size:12px;font-weight:560;color:var(--text-muted);display:flex;align-items:center;gap:6px}.label .req{color:var(--accent)}.hint{font-size:11.5px;color:var(--text-faint);line-height:1.4}.input,.select,.textarea{height:36px;padding:0 11px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--text);outline:none;transition:border-color .14s ease,box-shadow .14s ease;width:100%}.textarea{height:auto;min-height:72px;padding:9px 11px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.input:disabled,.select:disabled{opacity:.55;cursor:not-allowed}.input.num{text-align:right}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2393a4b3' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}.select:hover:not(:disabled){border-color:var(--border-strong);background-color:var(--surface)}[data-theme=light] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235b6b7d' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.select option{background:var(--surface-2);color:var(--text)}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;flex-shrink:0;border:1px solid var(--border-strong);border-radius:5px;background:var(--bg);cursor:pointer;transition:background .14s ease,border-color .14s ease}input[type=checkbox]:hover{border-color:var(--accent-line)}input[type=checkbox]:checked{border-color:var(--accent);background-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231d2b3a' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:12px}[data-theme=light] input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.money-field{position:relative;display:flex;align-items:center}.money-field:before{content:"$";position:absolute;left:11px;color:var(--text-faint);font-family:var(--font-mono);font-size:13px;pointer-events:none}.money-field .input{padding-left:22px;text-align:right}.field.invalid .input,.field.invalid .select,.input.invalid{border-color:var(--neg)}.field.invalid .input:focus{box-shadow:0 0 0 3px var(--neg-weak)}.field-error{font-size:11.5px;color:var(--neg);display:flex;align-items:center;gap:5px}.segmented{display:inline-flex;padding:3px;gap:3px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-sm)}.segmented button{appearance:none;border:none;background:transparent;color:var(--text-muted);height:28px;padding:0 12px;border-radius:5px;font-size:12.5px;font-weight:550;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .14s ease,color .14s ease}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--surface-2);color:var(--text);box-shadow:var(--shadow-1)}.segmented button.on.pos{color:var(--pos)}.segmented button.on.neg{color:var(--neg)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);padding:13px 18px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:14px 18px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-2)}.table tfoot td{border-top:1px solid var(--border-strong);border-bottom:none;padding-top:12px}.table .right,.table th.right{text-align:right}.line{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}.line+.line{margin-top:10px}.line .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 11px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface-2);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:99px;background:currentColor}.badge-accent{color:var(--accent);border-color:var(--accent-line);background:var(--accent-weak)}.badge-pos{color:var(--pos);border-color:transparent;background:var(--pos-weak)}.badge-neg{color:var(--neg);border-color:transparent;background:var(--neg-weak)}.badge-warn{color:var(--warn);border-color:transparent;background:var(--warn-weak)}.badge-muted{color:var(--text-faint)}.notice{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--r-sm);font-size:13px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted)}.notice.warn{border-color:var(--warn);background:var(--warn-weak);color:var(--warn)}.notice.warn svg{color:var(--warn)}.divider{height:1px;background:var(--border);border:none}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:18px}.gap-5{gap:28px}.gap-6{gap:40px}.grow{flex:1}@keyframes sn-spin{to{transform:rotate(360deg)}}.spinner{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:sn-spin .7s linear infinite}@keyframes sn-shimmer{to{background-position:-200% 0}}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:200% 100%;animation:sn-shimmer 1.3s ease-in-out infinite}.page{max-width:1080px;margin:0 auto;padding:40px 40px 104px;animation:sn-page-in .42s cubic-bezier(.22,1,.36,1) both}@keyframes sn-page-in{0%{opacity:0;transform:translateY(10px)}}.page.narrow{max-width:780px}.page .head{margin-bottom:36px}.empty{display:grid;place-items:center;padding:96px 0}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:80px 24px}.empty-state .ico{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:var(--accent-weak);border:1px solid var(--accent-line);color:var(--accent);margin-bottom:6px}.empty-state .muted{max-width:420px}.overlay{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px;animation:sn-fade .14s ease}.dialog{width:100%;max-width:480px;box-shadow:var(--shadow-pop);animation:sn-pop .16s cubic-bezier(.22,1,.36,1)}.dialog.wide{max-width:620px}@keyframes sn-fade{0%{opacity:0}}@keyframes sn-pop{0%{transform:translateY(8px) scale(.99);opacity:0}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
