:root{--green:#00be5d;--green-deep:#009a4a;--green-soft:#e6f9ef;--green-glow:#00be5d38;--yellow:#ffc400;--yellow-deep:#e6a800;--yellow-soft:#fff6da;--bg:#fafafa;--surface:#fff;--surface-2:#f4f4f5;--ink:#16181c;--ink-2:#4b4f56;--muted:#8a8f98;--line:#ededf0;--line-strong:#dcdee3;--r-sm:8px;--r-md:11px;--r-card:14px;--r-lg:18px;--r-pill:999px;--shadow-card:0 1px 2px #14181c0a, 0 8px 28px #14181c0d;--shadow-pop:0 24px 70px #14181c38;--accent:var(--green);--accent-deep:var(--green-deep);--maroon:#3a0c18;--maroon-2:#55101f;--gold:#c9a24b;--gold-soft:#e6c878;--gold-glow:#c9a24b59;--ivory:#fbf3e6;--role-neutral-fg:#5b6472;--role-neutral-bg:#eef1f4;--role-neutral-border:#dde1e7;--role-info-fg:#0284c7;--role-info-bg:#e8f4fc;--role-info-border:#c7e6f7;--role-violet-fg:#7c3aed;--role-violet-bg:#f1ebff;--role-violet-border:#e0d3fb;--role-warn-fg:#b45309;--role-warn-bg:#fdf3e2;--role-warn-border:#f6ddb0;--role-success-fg:var(--green-deep);--role-success-bg:var(--green-soft);--role-success-border:#bfeed4;--role-danger-fg:#be123c;--role-danger-bg:#fdecef;--role-danger-border:#f4c6d1;--role-muted-fg:var(--muted);--role-muted-bg:var(--line);--role-muted-border:var(--line-strong);--role-gold-fg:var(--maroon);--role-gold-bg:var(--gold-soft);--role-gold-border:var(--gold);--role-maroonsolid-fg:var(--ivory);--role-maroonsolid-bg:var(--maroon);--role-maroonsolid-border:var(--maroon-2);--role-maroonsolid-dot:var(--gold-soft);--role-graphite-fg:#fff;--role-graphite-bg:#2b2f37;--role-graphite-border:#1c1f25;--stage-lead-fg:var(--role-neutral-fg);--stage-lead-bg:var(--role-neutral-bg);--stage-lead-border:var(--role-neutral-border);--stage-qualified-fg:var(--role-info-fg);--stage-qualified-bg:var(--role-info-bg);--stage-qualified-border:var(--role-info-border);--stage-quoted-fg:var(--role-violet-fg);--stage-quoted-bg:var(--role-violet-bg);--stage-quoted-border:var(--role-violet-border);--stage-booked-fg:var(--role-gold-fg);--stage-booked-bg:var(--role-gold-bg);--stage-booked-border:var(--role-gold-border);--stage-prepared-fg:var(--role-warn-fg);--stage-prepared-bg:var(--role-warn-bg);--stage-prepared-border:var(--role-warn-border);--stage-live-fg:var(--role-maroonsolid-fg);--stage-live-bg:var(--role-maroonsolid-bg);--stage-live-border:var(--role-maroonsolid-border);--stage-live-dot:var(--role-maroonsolid-dot);--stage-delivered-fg:var(--role-success-fg);--stage-delivered-bg:var(--role-success-bg);--stage-delivered-border:var(--role-success-border);--stage-closed-fg:var(--role-graphite-fg);--stage-closed-bg:var(--role-graphite-bg);--stage-closed-border:var(--role-graphite-border);--stage-lost-fg:var(--role-danger-fg);--stage-lost-bg:var(--role-danger-bg);--stage-lost-border:var(--role-danger-border);--stage-cancelled-fg:var(--role-muted-fg);--stage-cancelled-bg:var(--role-muted-bg);--stage-cancelled-border:var(--role-muted-border);--fn-planned-fg:var(--role-neutral-fg);--fn-planned-bg:var(--role-neutral-bg);--fn-planned-border:var(--role-neutral-border);--fn-prepared-fg:var(--role-warn-fg);--fn-prepared-bg:var(--role-warn-bg);--fn-prepared-border:var(--role-warn-border);--fn-live-fg:var(--role-maroonsolid-fg);--fn-live-bg:var(--role-maroonsolid-bg);--fn-live-border:var(--role-maroonsolid-border);--fn-live-dot:var(--role-maroonsolid-dot);--fn-delivered-fg:var(--role-success-fg);--fn-delivered-bg:var(--role-success-bg);--fn-delivered-border:var(--role-success-border);--fn-cancelled-fg:var(--role-muted-fg);--fn-cancelled-bg:var(--role-muted-bg);--fn-cancelled-border:var(--role-muted-border);--hold-hold-fg:var(--role-gold-fg);--hold-hold-bg:var(--role-gold-bg);--hold-hold-border:var(--role-gold-border);--hold-reservation-fg:var(--role-success-fg);--hold-reservation-bg:var(--role-success-bg);--hold-reservation-border:var(--role-success-border);--hold-released-fg:var(--role-muted-fg);--hold-released-bg:var(--role-muted-bg);--hold-released-border:var(--role-muted-border);--money-receipt-fg:var(--role-success-fg);--money-receipt-bg:var(--role-success-bg);--money-refund-fg:var(--role-danger-fg);--money-refund-bg:var(--role-danger-bg);--money-payable-owed-fg:var(--role-warn-fg);--money-payable-owed-bg:var(--role-warn-bg);--money-payable-paid-fg:var(--role-muted-fg);--money-payable-paid-bg:var(--role-muted-bg);--money-balance-open-fg:var(--role-warn-fg);--money-balance-open-bg:var(--role-warn-bg);--money-balance-settled-fg:var(--role-success-fg);--money-balance-settled-bg:var(--role-success-bg);--font-sans:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-serif:"Instrument Serif", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;--fs-4xl:40px;--sp-half:4px;--sp-1:8px;--sp-2:16px;--sp-3:24px;--sp-4:32px;--sp-5:40px;--sp-6:48px;--sp-7:64px;--nav-w:232px;--header-h:64px;--container-max:1320px}@media (prefers-color-scheme:dark){:root{--bg:#0e0f13;--surface:#17191f;--surface-2:#1e2027;--ink:#f2f3f5;--ink-2:#c2c5cc;--muted:#82868f;--line:#262930;--line-strong:#33363e;--green-soft:#00be5d29;--yellow-soft:#ffc40024;--ivory:#f3e6d2;--gold-soft:#a9803a;--role-neutral-bg:#23262d;--role-info-bg:#0284c729;--role-violet-bg:#7c3aed29;--role-warn-bg:#b453092e;--role-success-bg:#00be5d29;--role-danger-bg:#be123c2e;--role-muted-bg:#23262d;--role-gold-bg:#c9a24b38;--role-gold-fg:var(--gold-soft);--role-graphite-bg:#05070a;--shadow-card:0 1px 2px #0000004d, 0 8px 28px #00000059;--shadow-pop:0 24px 70px #0000008c}}
.vow,.vow *,.vow :before,.vow :after{box-sizing:border-box}.vow{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}.vow h1,.vow h2,.vow h3,.vow h4,.vow p,.vow dl,.vow dd,.vow dt{margin:0}.vow ul{margin:0;padding:0;list-style:none}.vow a{color:inherit;text-decoration:none}.vow button{cursor:pointer;font-family:inherit}.vow svg{flex-shrink:0;display:block}.vow :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.vow .serif{font-family:var(--font-serif);font-style:italic;font-weight:400}@media (prefers-reduced-motion:reduce){.vow,.vow *{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.vow-wordmark{letter-spacing:-.03em;color:var(--ink);align-items:baseline;gap:2px;font-size:21px;font-weight:800;display:inline-flex}.vow-wordmark em{font-family:var(--font-serif);color:var(--role-gold-fg);font-size:1.15em;font-style:italic;font-weight:400}.vow-btn{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);height:40px;color:var(--ink);font:inherit;font-size:var(--fs-sm);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:650;transition:filter .15s,transform .1s,box-shadow .15s;display:inline-flex}.vow-btn:hover{border-color:#c7cbd3}.vow-btn:active{transform:translateY(1px)}.vow-btn:disabled{opacity:.42;cursor:default;pointer-events:none}.vow-btn--sm{height:32px;font-size:var(--fs-xs);border-radius:var(--r-sm);padding:0 13px}.vow-btn--primary{background:linear-gradient(150deg, var(--green), var(--green-deep));color:#fff;box-shadow:0 10px 26px -10px var(--green-glow);border-color:#0000}.vow-btn--primary:hover{filter:brightness(1.05)}.vow-btn--ghost{color:var(--ink-2);background:0 0;border-color:#0000}.vow-btn--ghost:hover{background:var(--surface-2);color:var(--ink)}.vow-btn--danger{background:var(--role-danger-bg);color:var(--role-danger-fg);border-color:var(--role-danger-border)}.vow-btn--danger:hover{filter:brightness(.97)}.vow-btn--gold{background:linear-gradient(150deg, var(--gold-soft), var(--gold));color:var(--maroon);box-shadow:0 10px 24px -10px var(--gold-glow);border-color:#0000;font-weight:750}.vow-btn--gold:hover{filter:brightness(1.03)}.vow-btn--icon{border-radius:var(--r-md);width:40px;height:40px;padding:0}.vow-chip{font-size:var(--fs-2xs);letter-spacing:.01em;border-radius:var(--r-pill);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-weight:750;display:inline-flex}.vow-chip .d{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.vow-chip--dashed{border-style:dashed}.vow-chip--strike{opacity:.75;text-decoration:line-through;text-decoration-thickness:1.5px}.vow-chip--lead{color:var(--stage-lead-fg);background:var(--stage-lead-bg);border-color:var(--stage-lead-border)}.vow-chip--qualified{color:var(--stage-qualified-fg);background:var(--stage-qualified-bg);border-color:var(--stage-qualified-border)}.vow-chip--quoted{color:var(--stage-quoted-fg);background:var(--stage-quoted-bg);border-color:var(--stage-quoted-border)}.vow-chip--booked{color:var(--stage-booked-fg);background:var(--stage-booked-bg);border-color:var(--stage-booked-border)}.vow-chip--prepared{color:var(--stage-prepared-fg);background:var(--stage-prepared-bg);border-color:var(--stage-prepared-border)}.vow-chip--live{color:var(--stage-live-fg);background:var(--stage-live-bg);border-color:var(--stage-live-border)}.vow-chip--live .d{background:var(--stage-live-dot);animation:1.8s ease-in-out infinite vow-pulse}.vow-chip--delivered{color:var(--stage-delivered-fg);background:var(--stage-delivered-bg);border-color:var(--stage-delivered-border)}.vow-chip--closed{color:var(--stage-closed-fg);background:var(--stage-closed-bg);border-color:var(--stage-closed-border)}.vow-chip--lost{color:var(--stage-lost-fg);background:var(--stage-lost-bg);border-color:var(--stage-lost-border)}.vow-chip--cancelled{color:var(--stage-cancelled-fg);background:var(--stage-cancelled-bg);border-color:var(--stage-cancelled-border)}.vow-chip--planned{color:var(--fn-planned-fg);background:var(--fn-planned-bg);border-color:var(--fn-planned-border)}.vow-chip--fnprepared{color:var(--fn-prepared-fg);background:var(--fn-prepared-bg);border-color:var(--fn-prepared-border)}.vow-chip--fnlive{color:var(--fn-live-fg);background:var(--fn-live-bg);border-color:var(--fn-live-border)}.vow-chip--fnlive .d{background:var(--fn-live-dot);animation:1.8s ease-in-out infinite vow-pulse}.vow-chip--fndelivered{color:var(--fn-delivered-fg);background:var(--fn-delivered-bg);border-color:var(--fn-delivered-border)}.vow-chip--fncancelled{color:var(--fn-cancelled-fg);background:var(--fn-cancelled-bg);border-color:var(--fn-cancelled-border)}.vow-chip--hold{color:var(--hold-hold-fg);background:var(--hold-hold-bg);border-color:var(--hold-hold-border)}.vow-chip--reservation{color:var(--hold-reservation-fg);background:var(--hold-reservation-bg);border-color:var(--hold-reservation-border)}.vow-chip--released{color:var(--hold-released-fg);background:var(--hold-released-bg);border-color:var(--hold-released-border)}@keyframes vow-pulse{0%,to{opacity:1}50%{opacity:.35}}.vow-tag{font-size:var(--fs-2xs);border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2);white-space:nowrap;align-items:center;padding:4px 10px;font-weight:650;display:inline-flex}.vow-tag--value{background:var(--green-soft);color:var(--green-deep);border-color:#0000;font-weight:700}.vow-tag--keepsake{background:var(--role-gold-bg);color:var(--role-gold-fg);border-color:var(--gold)}.vow-avatar{border-radius:var(--r-sm);width:36px;height:36px;font-weight:750;font-size:var(--fs-md);color:var(--ink-2);background:var(--surface-2);flex-shrink:0;place-items:center;display:grid}.vow-av-a{color:#92400e;background:#fef3c7}.vow-av-b{color:#be123c;background:#ffe4ec}.vow-av-c{color:#1d4ed8;background:#dbeafe}.vow-av-d{background:var(--role-violet-bg);color:var(--role-violet-fg)}.vow-av-e{background:var(--role-info-bg);color:var(--role-info-fg)}.vow-av-f{background:var(--role-success-bg);color:var(--role-success-fg)}.vow-av-g{color:#0f766e;background:#ccfbf1}.vow-pagehead{margin-bottom:var(--sp-3);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:28px;display:flex}.vow-pagehead h1{font-size:var(--fs-3xl);letter-spacing:-.02em;font-weight:800}.vow-pagehead .sub{font-size:var(--fs-sm);color:var(--ink-2);max-width:640px;margin-top:8px;line-height:1.6}.vow-pagehead .actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:12px;display:flex}.vow-statrow{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.vow-statchip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--fs-xs);color:var(--ink-2);box-shadow:var(--shadow-card);white-space:nowrap;padding:7px 14px;font-weight:650}.vow-statchip b{color:var(--ink);font-weight:750}.vow-statchip.is-alert{color:var(--role-danger-fg);background:var(--role-danger-bg);border-color:#0000}.vow-statchip.is-alert b{color:var(--role-danger-fg)}.vow-nav{width:var(--nav-w);background:var(--surface);border-right:1px solid var(--line);height:100%;padding:var(--sp-2) var(--sp-1);flex-direction:column;flex-shrink:0;display:flex}.vow-nav .brand{padding:var(--sp-1) var(--sp-1) var(--sp-3)}.vow-nav-section{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:var(--sp-2) var(--sp-1) 6px;font-size:10.5px;font-weight:750}.vow-nav-item{border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink-2);align-items:center;gap:11px;margin-bottom:2px;padding:9px 11px;font-weight:650;display:flex}.vow-nav-item svg{opacity:.75;width:17px;height:17px}.vow-nav-item:hover{background:var(--surface-2);color:var(--ink)}.vow-nav-item.is-active{background:var(--green-soft);color:var(--green-deep)}.vow-nav-item.is-active svg{opacity:1}.vow-nav-item .count{color:var(--muted);background:var(--surface-2);border-radius:var(--r-pill);margin-left:auto;padding:1px 7px;font-size:10.5px;font-weight:750}.vow-nav-item.is-active .count{color:var(--green-deep);background:#00be5d24}.vow-nav-item .count.is-due{color:var(--role-danger-fg);background:var(--role-danger-bg)}.vow-nav-foot{padding:var(--sp-2) var(--sp-1);border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;display:flex}.vow-nav-foot .who{font-size:var(--fs-xs);font-weight:650}.vow-nav-foot .role{color:var(--muted);font-size:10.5px}.vow-tabs{gap:var(--sp-3);border-bottom:1px solid var(--line);margin-bottom:var(--sp-3);display:flex}.vow-tab{font-size:var(--fs-sm);color:var(--ink-2);border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:11px 2px;font-weight:650;display:inline-flex}.vow-tab:hover{color:var(--ink)}.vow-tab.is-active{color:var(--ink);border-bottom-color:var(--accent)}.vow-tab .badge{background:var(--surface-2);color:var(--ink-2);border-radius:var(--r-pill);padding:1px 7px;font-size:10.5px;font-weight:750}.vow-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:var(--sp-3)}.vow-panel>h2,.vow-panel .panel-title{font-size:var(--fs-md);margin-bottom:var(--sp-2);font-weight:750}.vow-panel .panel-sub{font-size:var(--fs-xs);color:var(--muted);margin-top:-10px;margin-bottom:var(--sp-2)}.vow-board{grid-auto-columns:minmax(238px,1fr);grid-auto-flow:column;align-items:start;gap:14px;padding:4px 2px 8px;display:grid;overflow-x:auto}.vow-column{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-card);padding:12px}.vow-column-hd{justify-content:space-between;align-items:center;margin-bottom:10px;padding:0 2px;display:flex}.vow-column-hd .name{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);font-size:11px;font-weight:750}.vow-column-hd .count{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill);color:var(--muted);padding:2px 9px;font-size:11px;font-weight:650}.vow-kcard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:12px;margin-bottom:9px;padding:12px;transition:transform .15s,box-shadow .15s;display:block}.vow-kcard:hover{transform:translateY(-2px);box-shadow:0 4px 10px #14181c0f,0 18px 34px #14181c17}.vow-kcard.is-booked,.vow-kcard.is-live{border-color:var(--gold)}.vow-kcard-top{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.vow-kcard-name{font-weight:700;font-size:var(--fs-sm);line-height:1.3}.vow-kcard-meta{color:var(--ink-2);margin-top:2px;font-size:11.5px;line-height:1.4}.vow-kcard-chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.vow-kcard-foot{border-top:1px dashed var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding-top:8px;font-size:11px;display:flex}.vow-kcard-foot .days{font-weight:650}.vow-qtable{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.vow-qtable th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:0 10px 10px;font-size:10.5px;font-weight:750}.vow-qtable th.num,.vow-qtable td.num{text-align:right}.vow-qtable td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px 10px}.vow-qtable tr:last-child td{border-bottom:none}.vow-qtable .line-name{color:var(--ink);font-weight:650}.vow-qtable .line-fn{color:var(--muted);margin-top:2px;font-size:11.5px}.vow-qtable .qty{color:var(--ink-2)}.vow-qtable tfoot td{border-bottom:none;border-top:1px solid var(--line-strong);padding-top:14px;font-weight:750}.vow-qtable tfoot .grand td{font-size:var(--fs-lg);padding-top:6px}.vow-qtable-badge{font-size:var(--fs-2xs);color:var(--green-deep);background:var(--green-soft);border-radius:var(--r-pill);align-items:center;gap:6px;padding:4px 10px;font-weight:750;display:inline-flex}.vow-ledger{flex-direction:column;display:flex}.vow-money-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 4px;display:flex}.vow-money-row:last-child{border-bottom:none}.vow-money-icon{width:34px;height:34px;font-weight:800;font-size:var(--fs-md);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.vow-money-row.is-receipt .vow-money-icon{color:var(--money-receipt-fg);background:var(--money-receipt-bg)}.vow-money-row.is-refund .vow-money-icon{color:var(--money-refund-fg);background:var(--money-refund-bg)}.vow-money-row.is-payable .vow-money-icon{color:var(--money-payable-owed-fg);background:var(--money-payable-owed-bg)}.vow-money-body{flex:1;min-width:0}.vow-money-title{font-weight:650;font-size:var(--fs-sm)}.vow-money-meta{color:var(--muted);margin-top:2px;font-size:11.5px}.vow-money-amt{font-weight:750;font-size:var(--fs-md);font-variant-numeric:tabular-nums;white-space:nowrap}.vow-money-row.is-receipt .vow-money-amt{color:var(--money-receipt-fg)}.vow-money-row.is-refund .vow-money-amt{color:var(--money-refund-fg)}.vow-money-row.is-payable .vow-money-amt{color:var(--money-payable-owed-fg)}.vow-balance-card{padding:var(--sp-2);border-radius:var(--r-card);justify-content:space-between;align-items:center;display:flex}.vow-balance-card.is-open{background:var(--money-balance-open-bg)}.vow-balance-card.is-settled{background:var(--money-balance-settled-bg)}.vow-balance-card .label{font-size:var(--fs-xs);color:var(--ink-2);font-weight:650}.vow-balance-card .amt{font-size:var(--fs-2xl);letter-spacing:-.02em;font-weight:800}.vow-balance-card.is-open .amt{color:var(--money-balance-open-fg)}.vow-balance-card.is-settled .amt{color:var(--money-balance-settled-fg)}.vow-payable-row{padding:var(--sp-2);border:1px dashed var(--line-strong);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:12px;display:flex}.vow-payable-row.is-paid{opacity:.8;border-style:solid}.vow-payable-row .who{font-weight:650;font-size:var(--fs-sm)}.vow-payable-row .terms{color:var(--muted);margin-top:2px;font-size:11.5px}.vow-runbook{flex-direction:column;display:flex}.vow-rb-item{border-bottom:1px solid var(--line);gap:12px;padding:11px 2px;display:flex}.vow-rb-item:last-child{border-bottom:none}.vow-rb-check{border:2px solid var(--line-strong);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}.vow-rb-item.is-done .vow-rb-check{background:var(--green);border-color:var(--green);color:#fff}.vow-rb-item.is-done .vow-rb-check svg{width:12px;height:12px}.vow-rb-item.is-current .vow-rb-check{border-color:var(--accent);box-shadow:0 0 0 3px var(--green-glow)}.vow-rb-body{flex:1}.vow-rb-item.is-done .vow-rb-title{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.vow-rb-title{font-weight:650;font-size:var(--fs-sm)}.vow-rb-title .req{text-transform:uppercase;letter-spacing:.05em;color:var(--role-gold-fg);background:var(--role-gold-bg);border-radius:var(--r-pill);vertical-align:1px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:750}.vow-rb-sub{color:var(--muted);margin-top:2px;font-size:11.5px}.vow-rb-meta{color:var(--muted);white-space:nowrap;margin-left:auto;padding-top:2px;font-size:11px}.vow-wa-btn{border-radius:var(--r-md);background:var(--green-soft);height:40px;color:var(--green-deep);font-size:var(--fs-sm);border:1px solid #0000;align-items:center;gap:9px;padding:0 16px 0 12px;font-weight:700;display:inline-flex}.vow-wa-btn:hover{background:#d5f4e3}.vow-wa-btn .ic{background:var(--green);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;display:grid}.vow-wa-btn .ic svg{width:13px;height:13px}.vow-wa-btn--solid{background:var(--green);color:#fff}.vow-wa-btn--solid .ic{background:#ffffff38}.vow-wa-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.vow-wa-row .who{min-width:0}.vow-wa-row .who .name{font-weight:650;font-size:var(--fs-sm)}.vow-wa-row .who .role{color:var(--muted);margin-top:1px;font-size:11.5px}.vow-booth-row{border:1px solid var(--line);border-radius:var(--r-md);align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.vow-booth-row.is-clash{border-color:var(--role-danger-border);background:var(--role-danger-bg)}.vow-booth-icon{border-radius:var(--r-sm);background:var(--surface-2);width:38px;height:38px;color:var(--ink-2);flex-shrink:0;place-items:center;display:grid}.vow-booth-body{flex:1;min-width:0}.vow-booth-name{font-weight:650;font-size:var(--fs-sm)}.vow-booth-dates{color:var(--muted);margin-top:2px;font-size:11.5px}.vow-clash-note{font-size:var(--fs-xs);color:var(--role-danger-fg);background:var(--role-danger-bg);border:1px solid var(--role-danger-border);border-radius:var(--r-md);margin-bottom:var(--sp-2);align-items:center;gap:8px;padding:10px 12px;font-weight:650;display:flex}.vow-capstrip{align-items:flex-end;gap:2px;height:44px;display:flex}.vow-capstrip .day{background:var(--role-neutral-bg);border-radius:2px 2px 0 0;flex:1;min-width:3px;position:relative}.vow-capstrip .day[data-lvl="1"]{background:var(--role-info-bg)}.vow-capstrip .day[data-lvl="2"]{background:var(--role-gold-bg)}.vow-capstrip .day[data-lvl="3"]{background:var(--gold)}.vow-capstrip .day[data-lvl="4"]{background:var(--maroon)}.vow-capstrip-legend{color:var(--muted);align-items:center;gap:14px;margin-top:10px;font-size:11px;display:flex}.vow-capstrip-legend .sw{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.vow-theme-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;display:grid}.vow-theme-card{border:2px solid var(--line);border-radius:var(--r-card);cursor:pointer;text-align:center;background:var(--surface);padding:10px}.vow-theme-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--green-glow)}.vow-theme-thumb{aspect-ratio:4/3;border-radius:var(--r-sm);background:var(--surface-2);place-items:center;margin-bottom:8px;font-size:22px;display:grid}.vow-theme-name{font-size:var(--fs-xs);font-weight:650}.vow-theme-cat{color:var(--muted);margin-top:2px;font-size:10.5px}.vow-field{margin-bottom:var(--sp-2);flex-direction:column;gap:7px;display:flex}.vow-field label{font-size:var(--fs-xs);color:var(--ink-2);font-weight:650}.vow-field .hint{color:var(--muted);font-size:11px}.vow-field input,.vow-field select,.vow-field textarea{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);height:42px;color:var(--ink);font:inherit;font-size:var(--fs-md);outline:none;padding:0 14px}.vow-field textarea{resize:vertical;height:auto;min-height:88px;padding:11px 14px}.vow-field input:focus,.vow-field select:focus,.vow-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--green-glow)}.vow-field input::placeholder,.vow-field textarea::placeholder{color:var(--muted)}.vow-row2{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.vow-toggle-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 2px;display:flex}.vow-toggle-row:last-child{border-bottom:none}.vow-toggle-row .label{font-size:var(--fs-sm);font-weight:650}.vow-toggle-row .desc{color:var(--muted);margin-top:1px;font-size:11.5px}.vow-switch{border-radius:var(--r-pill);background:var(--line-strong);flex-shrink:0;width:40px;height:24px;transition:background .15s;position:relative}.vow-switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.vow-switch.is-on{background:var(--green)}.vow-switch.is-on:after{left:19px}.vow-switch.is-locked{background:var(--role-gold-bg)}.vow-switch.is-locked:after{background:var(--gold);left:19px}.vow-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:36px 16px;display:flex}.vow-empty .ic{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line-strong);width:40px;height:40px;color:var(--muted);place-items:center;margin-bottom:2px;font-size:18px;display:grid}.vow-empty p{color:var(--ink-2);font-size:12.5px;font-weight:700}.vow-empty span{color:var(--muted);max-width:200px;font-size:11px;line-height:1.55}.vow-freshness{color:var(--muted);margin-top:6px;font-size:11px}.vow-toast{background:var(--surface);border-left:3px solid var(--accent);border-radius:var(--r-md);box-shadow:var(--shadow-pop);align-items:flex-start;gap:10px;max-width:340px;padding:13px 16px;display:flex;position:relative}.vow-toast.is-warn{border-left-color:var(--role-warn-fg)}.vow-toast.is-danger{border-left-color:var(--role-danger-fg)}.vow-toast .title{font-size:var(--fs-sm);font-weight:700}.vow-toast .body{color:var(--ink-2);margin-top:2px;font-size:11.5px;line-height:1.5}.vow-swatch-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vow-preview-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:10.5px;font-weight:700}.vow-preview-group{margin-bottom:28px}
html,body{background:var(--bg);margin:0}*{box-sizing:border-box}.shell{min-height:100vh;display:flex}.main{flex:1;min-width:0;max-width:1260px;padding:28px 36px 60px}.panel-grid{grid-template-columns:1.05fr 1fr;gap:18px;margin-bottom:18px;display:grid}.due-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 4px;display:flex}.due-row:last-child{border-bottom:none}.due-row .who{flex:1;min-width:0}.due-row .who .name{font-size:13.5px;font-weight:650}.due-row .who .meta{color:var(--muted);margin-top:2px;font-size:11.5px}.due-row .amt{font-variant-numeric:tabular-nums;font-size:14px;font-weight:750}.lead-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 4px;display:flex}.lead-row:last-child{border-bottom:none}.lead-row .who{flex:1;min-width:0}.lead-row .name{font-size:13.5px;font-weight:650}.lead-row .meta{color:var(--muted);margin-top:2px;font-size:11.5px}.fn-list{flex-direction:column;gap:10px;display:flex}.fn-mini{border:1px solid var(--line);border-radius:var(--r-md);align-items:center;gap:12px;padding:11px;display:flex}.fn-mini.accent{border-color:var(--gold)}.fn-mini .date{text-align:center;flex-shrink:0;width:52px}.fn-mini .date .d{color:var(--ink);font-size:19px;font-weight:800;line-height:1}.fn-mini .date .m{text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.fn-mini .body{flex:1;min-width:0}.fn-mini .name{font-size:13.5px;font-weight:650}.fn-mini .venue{color:var(--muted);margin-top:2px;font-size:11.5px}.drawer-toggle{color:var(--ink-2);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill);align-items:center;gap:6px;margin-top:12px;padding:7px 13px;font-size:12px;font-weight:650;display:inline-flex}.lost-drawer{flex-direction:column;gap:8px;margin-top:12px;display:flex}.bk-hero{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.bk-hero h1{margin:0;font-size:34px}.bk-hero .meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;font-size:12.5px;display:flex}.fn-hero{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:8px;display:flex}.fn-hero h1{margin:0;font-size:32px}.fn-hero .meta{color:var(--ink-2);margin-top:6px;font-size:12.5px}.fn-hero .meta a{color:var(--green-deep);font-weight:650}.activate-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:16px 0 20px;padding:16px 20px;display:flex}.activate-panel .status{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.activate-panel .status .lab{color:var(--muted);font-size:12px}.content-grid{grid-template-columns:1fr 320px;align-items:start;gap:20px;display:grid}.rail-panel{margin-bottom:16px}.rail-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:12px;font-size:11px;font-weight:750}.schedule-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;padding:10px 2px;font-size:13px;display:flex}.schedule-row:last-child{border-bottom:none}.schedule-row .lab{color:var(--ink-2)}.schedule-row .lab b{color:var(--ink)}.kv{grid-template-columns:130px 1fr;gap:8px 12px;font-size:13px;display:grid}.kv .k{color:var(--muted)}.kv .v{color:var(--ink);font-weight:550}.approval-row{align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.approval-row.ok{color:var(--role-success-fg);font-weight:650}.p-row{border-bottom:1px solid var(--line);cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;gap:12px;padding:13px 8px;display:flex}.p-row:hover{background:var(--surface-2);border-radius:10px}.p-row.is-active{background:var(--green-soft);border-radius:10px}.p-row .who{flex:1;min-width:0}.p-row .name{font-size:13.5px;font-weight:650}.p-row .meta{color:var(--muted);margin-top:2px;font-size:11.5px}.p-row .val{color:var(--ink-2);text-align:right;white-space:nowrap;font-size:12.5px;font-weight:650}.qr-box{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:12px;flex-shrink:0;place-items:center;width:96px;height:96px;display:grid;overflow:hidden}.qr-box img{width:100%;height:100%}.link-row{background:var(--surface-2);border-radius:var(--r-sm);font-family:var(--font-mono);color:var(--ink-2);word-break:break-all;align-items:center;gap:8px;padding:9px 11px;font-size:12px;display:flex}.set-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.price-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:9px 2px;font-size:13px;display:flex}.price-row:last-child{border-bottom:none}.price-row input{text-align:right;width:130px;height:34px}.tmpl{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:10px;padding:12px}.tmpl .name{margin-bottom:6px;font-size:12.5px;font-weight:700}.tmpl .body{color:var(--ink-2);font-size:12.5px;line-height:1.6;font-family:var(--font-mono)}.full{grid-column:1/-1}.page{width:400px;min-height:860px;margin:0 auto;padding:0 0 40px}.rule{background:linear-gradient(90deg, var(--gold-soft), var(--gold));border-radius:3px;width:46px;height:3px;margin:10px auto 0}.hero{text-align:center;padding:44px 24px 8px}.hero .wordmark{font-size:26px}.hero .tag{font-family:var(--font-serif);color:var(--ink);margin-top:14px;font-size:20px;font-style:italic}.hero .sub{color:var(--muted);margin-top:8px;font-size:12.5px;line-height:1.6}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);margin:20px 20px 0;padding:22px 20px}.via{text-align:center;color:var(--muted);padding:14px 24px 0;font-size:11.5px}.via b{color:var(--ink-2)}.submit-btn{width:100%;height:46px}.success-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);text-align:center;margin:40px 20px 0;padding:36px 24px}.success-ic{background:var(--role-gold-bg);border:2px solid var(--gold);width:56px;height:56px;color:var(--maroon);border-radius:50%;place-items:center;margin:0 auto 16px;font-size:24px;display:grid}.success-card h2{font-family:var(--font-serif);margin-bottom:8px;font-size:22px;font-style:italic;font-weight:400}.success-card p{color:var(--ink-2);font-size:12.5px;line-height:1.6}.honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.err-banner{background:var(--role-danger-bg);color:var(--role-danger-fg);border:1px solid var(--role-danger-border);border-radius:var(--r-md);margin-bottom:16px;padding:10px 14px;font-size:13px;font-weight:600}.toast-stack{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.card-hd{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.back-link{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:650;display:inline-block}.load-skel{text-align:center;color:var(--muted);padding:40px;font-size:13px}
