*{box-sizing:border-box}body{margin:0;padding:0;line-height:1.5}:root,:root[data-bs-theme=dark]{font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;--nf-ground:#080e1c;--nf-surface:#0f172a;--nf-well:#1e293b;--nf-hair:hsla(0,0%,100%,.09);--nf-text:#f1f5f9;--nf-muted:#94a3b8;--nf-accent:#f59e0b;--nf-accent-cta:#818cf8;--nf-ok:#10b981;--nf-near:#f59e0b;--nf-over:#f43f5e;--nf-radius-sm:9px;--nf-radius:15px;--nf-radius-lg:20px;--nf-rise:inset 0 1px 0 rgba(248,250,252,.07),0 4px 16px rgba(0,0,0,.5),0 20px 40px -12px rgba(0,0,0,.6);--nf-recess:inset 0 2px 4px rgba(0,0,0,.4),inset 0 0 0 1px rgba(0,0,0,.2);--nf-glow-gold:0 0 24px rgba(245,158,11,.22);--nf-glow-accent:0 0 24px rgba(129,140,248,.22);--nf-glass:rgba(15,23,42,.65);--nf-glass-strong:rgba(15,23,42,.85);--nf-blur:blur(20px) saturate(180%);--nf-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;--bs-body-bg:var(--nf-ground);--bs-body-color:var(--nf-text);--bs-emphasis-color:#fff;--bs-secondary-color:var(--nf-muted);--bs-secondary-bg:var(--nf-well);--bs-tertiary-bg:var(--nf-surface);--bs-tertiary-color:var(--nf-muted);--bs-border-color:var(--nf-hair);--bs-border-color-translucent:rgba(248,250,252,.1);--bs-primary:#f59e0b;--bs-primary-rgb:245,158,11;--bs-primary-text-emphasis:#fbbf24;--bs-primary-bg-subtle:rgba(245,158,11,.12);--bs-primary-border-subtle:rgba(245,158,11,.28);--bs-link-color:var(--nf-accent);--bs-link-color-rgb:245,158,11;--bs-link-hover-color:#fbbf24;--bs-link-hover-color-rgb:251,191,36;--bs-success:#10b981;--bs-success-rgb:16,185,129;--bs-success-text-emphasis:#34d399;--bs-warning:#f59e0b;--bs-warning-rgb:245,158,11;--bs-warning-text-emphasis:#fbbf24;--bs-danger:#f43f5e;--bs-danger-rgb:244,63,94;--bs-danger-text-emphasis:#fb7185;--bs-secondary:#94a3b8;--bs-secondary-rgb:148,163,184;--bs-card-bg:var(--nf-surface);--bs-code-color:#f59e0b;--bs-border-radius:var(--nf-radius);--bs-border-radius-sm:var(--nf-radius-sm);--bs-border-radius-lg:var(--nf-radius-lg);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.005em}body{background-color:var(--bs-body-bg);color:var(--bs-body-color);font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;min-height:100vh;background-image:radial-gradient(ellipse 80% 50% at 10% 0,rgba(129,140,248,.1) 0,transparent 60%),radial-gradient(ellipse 60% 40% at 90% 100%,rgba(245,158,11,.08) 0,transparent 60%),radial-gradient(46% 30% at 8% 6%,rgba(245,158,11,.08) 0,transparent 70%),radial-gradient(44% 30% at 92% 14%,rgba(129,140,248,.12) 0,transparent 70%);background-attachment:fixed}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.02em}.card{background-color:var(--nf-glass);backdrop-filter:var(--nf-blur);-webkit-backdrop-filter:var(--nf-blur);border:0;border-radius:var(--nf-radius-lg);box-shadow:var(--nf-rise)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.budget-total-bar,.card,.nf-appbar{background-color:var(--nf-surface)}}@media (prefers-reduced-transparency:reduce){.budget-total-bar,.card,.dropdown-menu,.modal-content,.nf-appbar,.nf-riser,.offcanvas{background-color:var(--nf-surface);backdrop-filter:none;-webkit-backdrop-filter:none}.nf-well-card{background-color:var(--nf-well)!important;backdrop-filter:none;-webkit-backdrop-filter:none}}.card-footer,.card-header{background-color:transparent;border-color:var(--nf-hair)}.btn-primary{--bs-btn-color:#0f172a;--bs-btn-bg:var(--nf-accent);--bs-btn-border-color:var(--nf-accent);--bs-btn-hover-color:#0f172a;--bs-btn-hover-bg:#fbbf24;--bs-btn-hover-border-color:#fbbf24;--bs-btn-active-color:#0f172a;--bs-btn-active-bg:#d97706;--bs-btn-active-border-color:#d97706;--bs-btn-disabled-color:#0f172a;--bs-btn-disabled-bg:rgba(245,158,11,.45);--bs-btn-disabled-border-color:rgba(245,158,11,.45);--bs-btn-focus-shadow-rgb:245,158,11}.btn-outline-primary,.btn-outline-secondary{--bs-btn-color:var(--nf-text);--bs-btn-border-color:var(--nf-hair);--bs-btn-hover-color:var(--nf-text);--bs-btn-hover-bg:var(--nf-well);--bs-btn-hover-border-color:#475569;--bs-btn-active-color:var(--nf-text);--bs-btn-active-bg:#334155;--bs-btn-active-border-color:#475569;--bs-btn-disabled-color:var(--nf-muted);--bs-btn-disabled-border-color:var(--nf-hair);--bs-btn-focus-shadow-rgb:245,158,11}.btn-link{--bs-btn-color:var(--nf-accent);--bs-btn-hover-color:#fbbf24}.form-control,.form-select{background-color:var(--nf-well);border-color:var(--nf-hair);color:var(--nf-text)}.form-check-input:focus,.form-control:focus,.form-select:focus{background-color:var(--nf-well);border-color:var(--nf-accent);color:var(--nf-text);box-shadow:0 0 0 .2rem rgba(245,158,11,.22)}.form-control::placeholder{color:#64748b}.form-check-input{background-color:var(--nf-well);border-color:var(--nf-hair)}.form-check-input:checked{background-color:var(--nf-accent);border-color:var(--nf-accent)}.input-group-text{background-color:var(--nf-well);border-color:var(--nf-hair);color:var(--nf-muted)}.list-group{--bs-list-group-bg:transparent;--bs-list-group-color:var(--nf-text);--bs-list-group-border-color:var(--nf-hair);--bs-list-group-action-hover-bg:var(--nf-well);--bs-list-group-action-hover-color:var(--nf-text)}.table{--bs-table-bg:transparent;--bs-table-color:var(--nf-text);--bs-table-border-color:var(--nf-hair);--bs-table-striped-bg:rgba(248,250,252,.03);--bs-table-striped-color:var(--nf-text);--bs-table-hover-bg:rgba(248,250,252,.05);--bs-table-hover-color:var(--nf-text)}.dropdown-menu,.modal-content,.offcanvas{background-color:var(--nf-glass-strong);backdrop-filter:var(--nf-blur);-webkit-backdrop-filter:var(--nf-blur);border:0;box-shadow:var(--nf-rise),0 24px 60px -20px rgba(0,0,0,.6)}.modal-footer,.modal-header{border-color:var(--nf-hair)}.dropdown-menu{--bs-dropdown-link-color:var(--nf-text);--bs-dropdown-link-hover-bg:var(--nf-well);--bs-dropdown-link-hover-color:var(--nf-text)}.alert{border:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentcolor 30%,transparent);background-color:var(--nf-well)}.alert-danger{color:var(--nf-over);background-color:rgba(244,63,94,.1)}.alert-warning{color:var(--nf-near);background-color:rgba(245,158,11,.1)}.alert-success{color:var(--nf-ok);background-color:rgba(16,185,129,.1)}.alert-info{color:var(--nf-accent-cta);background-color:rgba(129,140,248,.1)}.alert .alert-link,.alert p:last-child{color:inherit}.text-muted{color:var(--nf-muted)!important}hr{border-color:var(--nf-hair);opacity:1}:focus-visible{outline:2px solid var(--nf-accent);outline-offset:2px}.nf-riser{background-color:var(--nf-glass);backdrop-filter:var(--nf-blur);-webkit-backdrop-filter:var(--nf-blur);border-radius:var(--nf-radius-lg);box-shadow:var(--nf-rise)}.nf-riser--hero{background-image:linear-gradient(165deg,rgba(245,158,11,.1),rgba(139,92,246,.06))}.nf-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px 0 8px;border-radius:var(--nf-radius-sm);font-size:11px;font-weight:700;white-space:nowrap}.nf-chip-mark{font-size:9px;line-height:1}.nf-chip--ok{color:var(--nf-ok);background-color:rgba(16,185,129,.12);box-shadow:inset 0 0 0 1px rgba(16,185,129,.3)}.nf-chip--near{color:var(--nf-near);background-color:rgba(245,158,11,.12);box-shadow:inset 0 0 0 1px rgba(245,158,11,.3)}.nf-chip--over{color:var(--nf-over);background-color:rgba(244,63,94,.12);box-shadow:inset 0 0 0 1px rgba(244,63,94,.3)}.nf-chip--gap{color:var(--nf-muted);background-color:rgba(148,163,184,.1);box-shadow:inset 0 0 0 1px rgba(148,163,184,.22)}.nf-chip--info{color:var(--nf-accent-cta);background-color:rgba(139,92,246,.12);box-shadow:inset 0 0 0 1px rgba(139,92,246,.3)}.nf-rail{position:relative;height:52px;border-radius:16px;background-color:var(--nf-well);box-shadow:var(--nf-recess);touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}.nf-rail-fill{left:4px;top:4px;bottom:4px;min-width:0;border-radius:12px;background-image:linear-gradient(180deg,rgba(245,158,11,.3),rgba(245,158,11,.15));box-shadow:inset 0 0 0 1px rgba(245,158,11,.25)}.nf-rail-fill,.nf-rail-ticks{position:absolute;pointer-events:none}.nf-rail-ticks{left:14px;right:14px;bottom:6px;display:flex;justify-content:space-between}.nf-rail-ticks i{display:block;width:1px;height:5px;background-color:var(--nf-hair)}.nf-knob{position:absolute;top:4px;height:44px;padding:0 12px;display:flex;align-items:center;gap:9px;white-space:nowrap;border-radius:13px;background-image:linear-gradient(180deg,#2d3a52,#1e2a3e);box-shadow:inset 0 1px 0 rgba(248,250,252,.12),0 4px 12px -3px rgba(0,0,0,.5);cursor:-webkit-grab;cursor:grab;touch-action:none}.nf-knob:active{cursor:-webkit-grabbing;cursor:grabbing}.nf-knob-value{font-size:16.5px;font-weight:700;letter-spacing:-.025em;color:var(--nf-text)}.nf-knob-grip{font-size:13px;line-height:1;color:var(--nf-muted)}.nf-rail-ends{display:flex;justify-content:space-between;margin-top:6px;font-family:var(--nf-mono);font-size:10px;color:var(--nf-muted)}.nf-tile{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:13px;box-shadow:inset 0 0 0 1px var(--nf-hair);font-size:18px;line-height:1}.budget-meter,.nf-tile{background-color:var(--nf-well)}.budget-meter{position:relative;height:14px;border-radius:8px;box-shadow:var(--nf-recess)}.budget-meter-fill{position:absolute;inset-block:2px;inset-inline-start:2px;border-radius:6px}.budget-meter-fill--ok{background-image:linear-gradient(180deg,#34d399,#10b981)}.budget-meter-fill--near{background-image:linear-gradient(180deg,#fbbf24,#f59e0b)}.budget-meter-fill--over{background-image:linear-gradient(180deg,#fb7185,#f43f5e)}.budget-meter-fill--gap{background-color:rgba(148,163,184,.15);box-shadow:inset 0 0 0 1px rgba(148,163,184,.3)}.budget-meter--empty{background-color:transparent;box-shadow:none;border:1.5px dashed var(--nf-hair)}.budget-meter-fill--unattributed{background-image:repeating-linear-gradient(45deg,rgba(248,250,252,.22) 0 2px,transparent 2px 6px)}.budget-meter-notch{position:absolute;inset-block:-5px;width:2px;border-radius:2px;background-color:var(--nf-text);box-shadow:0 0 0 2px var(--nf-ground)}.budget-meter-notch-label{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:4px;font-family:var(--nf-mono);font-size:8.5px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--nf-muted);white-space:nowrap}.budget-total-bar{position:-webkit-sticky;position:sticky;top:0;z-index:5;background-color:var(--nf-glass-strong);backdrop-filter:var(--nf-blur);-webkit-backdrop-filter:var(--nf-blur);border-bottom:1px solid var(--nf-hair)}.alloc-bar{--alloc-1:#3b82f6;--alloc-2:#f97316;--alloc-3:#10b981;--alloc-4:#f59e0b;--alloc-5:#ec4899;--alloc-6:#8b5cf6;--alloc-over:#f43f5e;display:flex;gap:2px;height:30px;width:100%;position:relative;padding:3px;border-radius:10px;background-color:var(--nf-well);box-shadow:var(--nf-recess)}.alloc-seg{border:0;padding:0 .25rem;min-width:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-weight:600;font-size:.75rem;line-height:24px;text-align:left;border-radius:6px}@media (max-width:575.98px){.alloc-seg{font-size:0;padding:0}}.alloc-seg:focus-visible{outline:2px solid var(--nf-text);outline-offset:2px}.alloc-seg--unattributed{background-image:repeating-linear-gradient(45deg,rgba(248,250,252,.22) 0 2px,transparent 2px 6px)}.alloc-seg--over{background-image:repeating-linear-gradient(135deg,rgba(248,250,252,.2) 0 3px,transparent 3px 7px)}.alloc-marker{position:absolute;top:-5px;bottom:-5px;width:3px;background:var(--alloc-over);box-shadow:0 0 0 1px var(--nf-ground);pointer-events:none}.alloc-swatch{display:inline-block;width:.75rem;height:.75rem;border-radius:2px;vertical-align:-1px}.alloc-overflow{position:absolute;top:0;bottom:0;right:0;background-color:color-mix(in srgb,var(--alloc-over) 12%,transparent);background-image:repeating-linear-gradient(135deg,color-mix(in srgb,var(--alloc-over) 35%,transparent) 0 2px,transparent 2px 8px);pointer-events:none}.budget-step{min-width:2.25rem;line-height:1.1;font-size:1.1rem;padding:.15rem .4rem}.nf-ctrlhead{display:flex;flex:1 1;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}.nf-ctrlhead-k{letter-spacing:.16em;text-transform:uppercase}.nf-ctrlhead-h,.nf-ctrlhead-k{font-size:10px;color:var(--nf-muted)}.nf-ctrlhead-h{font-family:var(--nf-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nf-riser--active{box-shadow:inset 0 0 0 1px rgba(245,158,11,.55),0 0 0 4px rgba(245,158,11,.12),var(--nf-rise)}.card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--nf-rise),0 0 0 1px hsla(0,0%,100%,.06)}.nf-riser:hover{transform:translateY(-2px);transition:transform .25s ease,box-shadow .25s ease}.nf-appbar{background-color:var(--nf-glass-strong);backdrop-filter:var(--nf-blur);-webkit-backdrop-filter:var(--nf-blur);border-bottom:1px solid var(--nf-hair);position:-webkit-sticky;position:sticky;top:0;z-index:1030}.nf-appbar .navbar-brand{color:var(--nf-text);letter-spacing:-.02em}.nf-appbar .navbar-toggler{border-color:var(--nf-hair);color:var(--nf-text)}.nf-appbar .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23f8fafc' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.nf-navlink{color:var(--nf-muted);border-radius:var(--nf-radius-sm);padding-inline:.7rem}.nf-navlink:focus,.nf-navlink:hover{color:var(--nf-text)}.nf-navlink.active{color:var(--nf-accent);background-color:rgba(245,158,11,.1);box-shadow:inset 0 0 0 1px rgba(245,158,11,.22)}.nf-statlabel{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--nf-muted);margin-bottom:6px}.nf-statvalue{font-size:30px;font-weight:700;line-height:1.05;letter-spacing:-.035em;margin-bottom:6px;transform:translateZ(0)}.nf-statvalue--in{color:var(--nf-ok)}.nf-statvalue--out{color:var(--nf-over)}.budget-meter-fill--accent{background-image:linear-gradient(180deg,#a78bfa,#8b5cf6)}.nf-well-card{background-color:rgba(38,48,69,.62)!important;box-shadow:inset 0 0 0 1px var(--nf-hair)}.nf-accent-card,.nf-well-card{backdrop-filter:var(--nf-blur);-webkit-backdrop-filter:var(--nf-blur)}.nf-accent-card{background-color:rgba(129,140,248,.08)!important;box-shadow:inset 0 0 0 1px rgba(129,140,248,.22)}.typing-dots{display:inline-flex;align-items:center;gap:4px;padding:4px 2px}.typing-dots span{display:inline-block;width:8px;height:8px;border-radius:50%;background:rgba(248,250,252,.4);animation:typing-pulse 1.2s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typing-pulse{0%,80%,to{transform:scale(.7);opacity:.4}40%{transform:scale(1);opacity:1}}.chat-markdown{color:var(--nf-text)}.chat-markdown p{margin-bottom:.4rem;color:inherit}.chat-markdown p:last-child{margin-bottom:0}.chat-markdown ol,.chat-markdown ul{padding-left:1.25rem;margin-bottom:.4rem;color:inherit}.chat-markdown li{color:inherit}.chat-markdown code{background:rgba(245,158,11,.12);border-radius:3px;padding:0 4px;font-size:.85em;color:var(--nf-accent)}.chat-markdown pre{background:var(--nf-well);border-radius:6px;padding:.75rem;overflow-x:auto}.chat-markdown pre code{background:transparent;color:var(--nf-text)}.chat-markdown strong{font-weight:600;color:inherit}.chat-markdown a{color:var(--nf-accent)}.chat-markdown table{border-collapse:collapse;width:100%;margin-bottom:.5rem;font-size:.82em}.chat-markdown td,.chat-markdown th{border:1px solid var(--nf-hair,#d6dce8);padding:5px 10px;text-align:left}.chat-markdown th{background:var(--nf-well,#e3e8f2);font-weight:600}.chat-markdown tr:nth-child(2n) td{background:rgba(0,0,0,.03)}