:root{--brand:#4ecdc4;--brand-soft:#4ecdc429;--brand-ink:#13706a;--accent:#ffe66d;--accent-soft:#ffe66d52;--confetti-coral:#ff626b;--confetti-yellow:#ffc83d;--confetti-mint:#22c99a;--confetti-sky:#369eff;--confetti-violet:#9865ed;--confetti-pink:#f260bd;--success:#3fae9b;--warning:#e35d5d;--canvas:#f5f4ef;--card:#fff;--elevated:#fff;--sunken:#efeee8;--overlay:#1c201e5c;--text:#1e2826;--text-2:#5a6764;--text-3:#8c9794;--on-brand:#0f3532;--on-danger:#fff;--hairline:#1e282614;--border:#1e282624;--status-pending:var(--brand-ink);--status-completed:#a86c12;--status-confirmed:#2a8676;--status-cancelled:var(--text-3);--status-overdue:#c2483f;--tier-bronze:#b8732e;--tier-silver:#8a95a0;--tier-gold:#c99a06;--hue-1:#13706a;--hue-2:#a86c12;--hue-3:#b4506e;--hue-4:#4767c9;--hue-5:#7656c2;--hue-6:#3d8a4f;--glow:radial-gradient(120% 140% at 0% 0%, #4ecdc438, transparent 55%), radial-gradient(90% 120% at 100% 100%, #ffe66d47, transparent 60%);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 2px #1e28260a, 0 1px 1px #1e282608;--shadow-md:0 6px 16px -4px #1e28261a, 0 2px 4px #1e28260a;--shadow-lg:0 24px 48px -12px #1e282638;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-display:ui-rounded, "SF Pro Rounded", var(--font);--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--dur-press:.14s;--dur-fast:.16s;--dur-base:.22s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--brand:#5fd9d0;--brand-soft:#5fd9d026;--brand-ink:#6fe0d7;--accent-soft:#ffe98a24;--confetti-coral:#ff8490;--confetti-yellow:#ffda65;--confetti-mint:#4ee0b4;--confetti-sky:#70baff;--confetti-violet:#b28aff;--confetti-pink:#ff8bd5;--success:#5cc8b4;--warning:#ff8585;--canvas:#111413;--card:#191d1c;--elevated:#212625;--sunken:#0c0f0e;--overlay:#0000008c;--text:#eef3f2;--text-2:#a5b1ae;--text-3:#727e7b;--on-brand:#0f2b28;--hairline:#ffffff12;--border:#ffffff24;--status-completed:#e8b04a;--status-confirmed:#5cc8b4;--status-overdue:#ff8a80;--tier-bronze:#e09a55;--tier-silver:#c4ccd3;--tier-gold:#ffd84d;--hue-1:#6fe0d7;--hue-2:#f0b552;--hue-3:#f08aa8;--hue-4:#8ea6ff;--hue-5:#b49af0;--hue-6:#7fd28f;--glow:radial-gradient(120% 140% at 0% 0%, #5fd9d024, transparent 55%), radial-gradient(90% 120% at 100% 100%, #ffe98a14, transparent 60%);--shadow-sm:none;--shadow-md:none;--shadow-lg:0 24px 48px -12px #0009}}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--text);background:var(--canvas);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,p{margin:0}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--brand-ink);text-decoration:none}::selection{background:var(--accent-soft)}.num{font-variant-numeric:tabular-nums}.display{font-family:var(--font-display);letter-spacing:-.015em}:focus-visible{outline:2px solid var(--brand-ink);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}kbd{min-width:20px;height:20px;font:600 11px/1 var(--font-mono);opacity:.55;border:1px solid;border-radius:5px;place-items:center;padding:0 5px;display:inline-grid}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{gap:var(--space-5);height:100vh;padding:var(--space-6) var(--space-4) var(--space-4);flex-direction:column;display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--space-3);padding:0 var(--space-2);font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:700;display:flex}.brand img{width:30px;height:30px;box-shadow:var(--shadow-sm);border-radius:9px}.brand small{font-family:var(--font);color:var(--text-3);letter-spacing:0;font-size:12px;font-weight:500;display:block}.sidebar-create{justify-content:flex-start}.sidebar-create kbd{margin-left:auto}.nav{gap:var(--space-4);flex-direction:column;display:flex}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-group-label{padding:0 var(--space-3) var(--space-1);color:var(--text-3);font-size:12px;font-weight:600}.nav a{align-items:center;gap:var(--space-3);min-height:38px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--text-2);transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease;border:1px solid #0000;font-weight:500;display:flex}.nav a svg{flex:none;width:19px;height:19px}.nav a.active{background:var(--card);border-color:var(--hairline);box-shadow:var(--shadow-sm);color:var(--text);font-weight:600}.nav a.active svg{color:var(--brand-ink)}.nav-count{background:var(--hairline);min-width:20px;color:var(--text-2);text-align:center;border-radius:999px;margin-left:auto;padding:0 6px;font-size:12px;font-weight:600;line-height:20px}.nav-count.attention{background:color-mix(in srgb, var(--status-overdue) 14%, transparent);color:var(--status-overdue)}@media (hover:hover) and (pointer:fine){.nav a:not(.active):hover{background:var(--hairline);color:var(--text)}}.sidebar-footer{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--card);border:1px solid var(--hairline);margin-top:auto;display:flex}.sidebar-footer .who{flex:1;min-width:0}.sidebar-footer .who>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main{min-width:0;padding:var(--space-8) var(--space-10) 96px var(--space-6)}.fab{display:none}.page{gap:var(--space-6);flex-direction:column;max-width:1080px;margin:0 auto;display:flex}.page.narrow{max-width:760px}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);padding-bottom:var(--space-1);flex-wrap:wrap;display:flex}.page-header-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.page-header h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:30px;font-weight:700;line-height:1.2}.eyebrow{align-items:center;gap:var(--space-2);color:var(--text-2);font-size:13px;font-weight:500;display:flex}.page-header .lede{color:var(--text-2);max-width:36em}.page-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.section{gap:var(--space-3);flex-direction:column;display:flex}.section-title{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:16px;font-weight:700;display:flex}.section-title .count{color:var(--text-3);font-weight:600}.grid-2{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.split{gap:var(--space-6);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.split>aside{gap:var(--space-6);flex-direction:column;display:flex}.sticky{top:var(--space-6);position:sticky}.stack{gap:var(--space-3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-2);display:flex}.spacer{flex:1}.muted{color:var(--text-2)}.faint{color:var(--text-3);font-size:13px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=1180px){.split{grid-template-columns:minmax(0,1fr) 300px}}@media (width<=1020px){.split{grid-template-columns:1fr}.sticky{position:static}}@media (width<=860px){.shell{grid-template-columns:1fr}.sidebar{z-index:20;height:auto;padding:var(--space-1) var(--space-2) calc(var(--space-1) + env(safe-area-inset-bottom));border-top:1px solid var(--hairline);background:color-mix(in srgb, var(--canvas) 86%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(16px);backdrop-filter:saturate(1.6)blur(16px);flex-direction:row;position:fixed;inset:auto 0 0}.sidebar .brand,.sidebar .sidebar-create,.sidebar .sidebar-footer,.nav-group-label,.nav-count{display:none}.nav a{white-space:nowrap}.nav,.nav-group{flex-direction:row;gap:0}.nav{justify-content:space-around;width:100%}.nav-group{display:contents}.nav a{min-height:52px;padding:0 var(--space-2);flex-direction:column;justify-content:center;gap:2px;font-size:11px}.nav a.active{box-shadow:none;color:var(--brand-ink);background:0 0;border-color:#0000}.main{padding:var(--space-6) var(--space-4) 128px}.page-header h1{font-size:26px}.grid-2,.grid-3{grid-template-columns:1fr}.fab{right:var(--space-4);bottom:calc(76px + env(safe-area-inset-bottom));z-index:21;background:var(--brand);width:52px;height:52px;color:var(--on-brand);box-shadow:var(--shadow-lg);cursor:pointer;transition:transform var(--dur-press) var(--ease-out);border:none;border-radius:50%;place-items:center;display:grid;position:fixed}.fab:active{transform:scale(.94)}.fab svg{width:24px;height:24px}}.boot{place-items:center;min-height:100vh;display:grid}.login{align-items:center;gap:var(--space-10);max-width:1040px;min-height:100vh;padding:var(--space-8) var(--space-6);grid-template-columns:minmax(0,1fr) minmax(340px,420px);margin:0 auto;display:grid;position:relative}.login-hero{gap:var(--space-5);flex-direction:column;display:flex}.login-hero .brand{padding:0}.login-hero h1{font-family:var(--font-display);letter-spacing:-.03em;font-size:46px;line-height:1.12}.login-hero h1 em{background:linear-gradient(transparent 62%, var(--accent-soft) 62%);font-style:normal}.login-hero p{color:var(--text-2);max-width:26em;font-size:17px}.login-card{gap:var(--space-4);flex-direction:column;display:flex}.login-card .segmented{align-self:stretch}.login-card .segmented button{flex:1}@media (width<=860px){.login{align-content:start;gap:var(--space-6);padding-top:var(--space-8);grid-template-columns:1fr}.login-hero h1{font-size:30px}.login-hero .showcase{display:none}}.card{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4)}.card-pad-lg{padding:var(--space-6)}.card-flush{padding:var(--space-1) var(--space-4)}.card-hero{background:var(--glow), var(--card)}.card-sunken{background:var(--sunken);box-shadow:none;border-color:#0000}.card-link{color:inherit;transition:transform var(--dur-press) var(--ease-out), box-shadow var(--dur-fast) ease, border-color var(--dur-fast) ease;display:block;position:relative}.card-link:active{transform:scale(.985)}@media (hover:hover) and (pointer:fine){.card-link:hover{box-shadow:var(--shadow-md);border-color:var(--border)}}.card.overdue{border-color:color-mix(in srgb, var(--status-overdue) 45%, transparent)}.card-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.card-head h2,.card-head h3{font-size:15px;font-weight:700}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-md);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, opacity var(--dur-fast) ease;background:0 0;border:1px solid #0000;font-size:14px;font-weight:600;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn svg{flex:none;width:18px;height:18px}.btn-primary{background:var(--brand);color:var(--on-brand);box-shadow:inset 0 -1px #00000014,0 1px 2px #13706a2e}.btn-secondary{border-color:var(--border);background:var(--card);color:var(--text)}.btn-ghost{color:var(--brand-ink)}.btn-danger{border-color:color-mix(in srgb, var(--status-overdue) 40%, transparent);color:var(--status-overdue);background:var(--card)}.btn-sm{min-height:32px;padding:0 var(--space-3);font-size:13px}.btn-lg{min-height:48px;padding:0 var(--space-6);font-size:15px}.btn-block{width:100%}.btn-icon{width:36px;min-height:36px;color:var(--text-2);padding:0}@media (hover:hover) and (pointer:fine){.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--brand) 90%, black)}.btn-secondary:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--card) 100%, var(--text) 4%)}.btn-ghost:hover:not(:disabled),.btn-icon:hover:not(:disabled){background:var(--brand-soft)}}.pill{padding:2px var(--space-2);white-space:nowrap;color:color-mix(in srgb, var(--pill-color) 78%, var(--text));background:color-mix(in srgb, var(--pill-color) 13%, transparent);border-radius:999px;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:18px;display:inline-flex}.pill svg{width:13px;height:13px}.dot{background:var(--dot-color,var(--status-confirmed));width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--dot-color,var(--status-confirmed)) 22%, transparent);border-radius:50%;flex:none}.progress{background:var(--hairline);border-radius:999px;height:6px;overflow:hidden}.progress>span{border-radius:inherit;background:var(--progress-color,var(--brand));transform-origin:0;height:100%;transition:transform var(--dur-base) var(--ease-out);display:block}.ring{width:var(--ring-size,120px);height:var(--ring-size,120px);flex:none;place-items:center;display:grid;position:relative}.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:10px}.ring .ring-track{stroke:var(--hairline)}.ring .ring-value{stroke:var(--ring-color,var(--brand));stroke-linecap:round}.ring-label{text-align:center;flex-direction:column;align-items:center;line-height:1.1;display:flex}.ring-label strong{font-family:var(--font-display);font-size:calc(var(--ring-size,120px) * .24);letter-spacing:-.02em;font-weight:700}.ring-label span{color:var(--text-2);font-size:12px}.stats{grid-template-columns:repeat(var(--stats-cols,3), minmax(0, 1fr));display:grid}.stat{min-width:0;padding:var(--space-1) var(--space-4);flex-direction:column;gap:2px;display:flex}.stat:first-child{padding-left:0}.stat+.stat{border-left:1px solid var(--hairline)}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.2}.stat-value.small{font-family:var(--font);letter-spacing:0;font-size:15px;line-height:1.6}.stat-label{color:var(--text-2);align-items:center;gap:6px;font-size:13px;display:flex}@media (width<=860px){.stats{row-gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(odd){border-left:none;padding-left:0}}.list{flex-direction:column;display:flex}.list-row{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) 0;color:inherit;display:flex}.list-row+.list-row{border-top:1px solid var(--hairline)}a.list-row{margin:0 calc(-1 * var(--space-2));padding-inline:var(--space-2);border-radius:var(--radius-md);transition:background-color var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){a.list-row:hover{background:color-mix(in srgb, var(--card) 100%, var(--text) 3%)}}.list-row .title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.list-row .meta{color:var(--text-2);font-size:13px}.row-icon{border-radius:var(--radius-md);width:34px;height:34px;color:var(--icon-color,var(--brand-ink));background:color-mix(in srgb, var(--icon-color,var(--brand-ink)) 12%, transparent);flex:none;place-items:center;display:grid}.row-icon svg{width:18px;height:18px}.avatar{background:color-mix(in srgb, var(--avatar-color,var(--brand-ink)) 15%, var(--card));width:32px;height:32px;color:var(--avatar-color,var(--brand-ink));border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.avatar.sm{width:20px;height:20px;font-size:11px}.avatar.lg{width:48px;height:48px;font-size:19px}.who-chip{align-items:center;gap:6px;min-width:0;display:inline-flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field-label{color:var(--text-2);font-size:13px;font-weight:600}.input,.textarea,.select{width:100%;min-height:42px;padding:9px var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--elevated);transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease}.textarea{resize:vertical;min-height:96px;line-height:1.5}.textarea.code{font-family:var(--font-mono);font-size:13px;line-height:1.6}.input:focus,.textarea:focus,.select:focus{border-color:var(--brand-ink);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.input[aria-invalid=true]{border-color:var(--status-overdue)}.input.mono{font-family:var(--font-mono);font-size:14px}.input-icon{align-items:center;display:flex;position:relative}.input-icon>svg{width:17px;height:17px;color:var(--text-3);pointer-events:none;position:absolute;left:12px}.input-icon .input{padding-left:36px}.hint{color:var(--text-3);font-size:12px}.hint.warn{color:var(--status-overdue)}.hint.ok{color:var(--status-confirmed)}.form-error{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);color:var(--status-overdue);background:color-mix(in srgb, var(--status-overdue) 9%, transparent);align-items:flex-start;font-size:14px;display:flex}.segmented{border-radius:var(--radius-md);background:color-mix(in srgb, var(--canvas) 70%, var(--text) 5%);padding:3px;display:inline-flex}.segmented button{min-height:32px;padding:0 var(--space-3);color:var(--text-2);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.segmented button[aria-pressed=true]{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.segmented .seg-count{color:var(--text-3);font-weight:600}.toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.toolbar .segmented{scrollbar-width:none;max-width:100%;overflow-x:auto}.composer{align-items:center;gap:var(--space-2);padding:6px 6px 6px var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--elevated);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;display:flex}.composer:focus-within{border-color:var(--brand-ink);box-shadow:0 0 0 4px var(--brand-soft)}.composer>svg{width:20px;height:20px;color:var(--brand-ink);flex:none}.composer input{background:0 0;border:none;outline:none;flex:1;min-width:0;min-height:42px;font-size:16px}.composer input::placeholder{color:var(--text-3)}.empty{align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center;flex-direction:column;display:flex}.empty>.empty-icon{width:56px;height:56px;margin-bottom:var(--space-1);background:var(--glow), var(--sunken);color:var(--brand-ink);border-radius:18px;place-items:center;display:grid}.empty>.empty-icon svg{width:26px;height:26px}.empty h3{font-size:16px}.empty.compact{padding:var(--space-6) var(--space-2)}.kv{gap:var(--space-3) var(--space-6);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.kv dt{color:var(--text-2);font-size:14px}.kv dd{overflow-wrap:anywhere;margin:0}.kv.right dd{text-align:right}.codeblock{padding:var(--space-3);border-radius:var(--radius-md);background:var(--sunken);font:12px/1.6 var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;margin:0;overflow:auto}details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}details>summary svg{transition:transform var(--dur-fast) var(--ease-out)}details[open]>summary svg{transform:rotate(90deg)}.dialog{border:1px solid var(--hairline);border-radius:var(--radius-xl);background:var(--elevated);width:min(520px,100vw - 32px);max-height:calc(100vh - 64px);color:var(--text);box-shadow:var(--shadow-lg);opacity:1;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-base) var(--ease-out), overlay var(--dur-fast) allow-discrete, display var(--dur-fast) allow-discrete;padding:0;transform:scale(1)}.dialog:not([open]){opacity:0;transition-duration:.12s;transform:scale(.96)}@starting-style{.dialog[open]{opacity:0;transform:scale(.96)}}.dialog::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--dur-fast) ease, overlay var(--dur-fast) allow-discrete, display var(--dur-fast) allow-discrete}@starting-style{.dialog[open]::backdrop{opacity:0}}.dialog-body{gap:var(--space-4);padding:var(--space-6);flex-direction:column;max-height:calc(100vh - 64px);display:flex;overflow:auto}.dialog-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:19px;font-weight:700}.dialog-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.toasts{left:50%;bottom:var(--space-6);z-index:50;align-items:center;gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:var(--space-2);padding:10px var(--space-4);background:var(--text);color:var(--canvas);box-shadow:var(--shadow-lg);transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);border-radius:999px;font-size:14px;font-weight:500;display:flex}.toast svg{color:var(--brand)}@starting-style{.toast{opacity:0;transform:translateY(12px)}}.toast.error{background:var(--status-overdue);color:var(--on-danger)}.toast.error svg{color:inherit}@media (width<=860px){.toasts{bottom:calc(88px + env(safe-area-inset-bottom))}}.promise-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.promise-card{gap:var(--space-3);flex-direction:column;display:flex;overflow:hidden}.promise-card h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:16px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.promise-card .promise-meta{margin-top:auto}.promise-card .seal{opacity:.8;font-size:15px;position:absolute;bottom:12px;right:14px}.promise-card.sealed{min-height:116px}.promise-card.is-done h3{color:var(--text-2)}.promise-meta{align-items:center;gap:var(--space-2) var(--space-4);color:var(--text-2);flex-wrap:wrap;font-size:13px;display:flex}.promise-meta>span{align-items:center;gap:5px;display:inline-flex}.promise-meta svg{width:14px;height:14px}.spotlight{gap:var(--space-3);padding:var(--space-5) var(--space-6);flex-direction:column;display:flex;position:relative}.spotlight:before{content:"";left:0;top:var(--space-5);bottom:var(--space-5);background:var(--spot-color,var(--brand));border-radius:0 3px 3px 0;width:3px;position:absolute}.spotlight h3{font-family:var(--font-display);letter-spacing:-.01em;font-size:21px;font-weight:700;line-height:1.3}.seal{box-shadow:inset 0 0 0 .07em var(--card), inset 0 0 0 .13em currentColor;color:var(--status-confirmed);-webkit-user-select:none;user-select:none;pointer-events:none;border:.11em solid;border-radius:.24em;grid-template-rows:repeat(2,1em);grid-template-columns:repeat(2,1em);place-items:center;gap:.08em;padding:.26em;font-family:Kaiti SC,STKaiti,KaiTi,Songti SC,serif;font-size:18px;font-weight:800;line-height:1;display:inline-grid;transform:rotate(-8deg)}.seal.lg{font-size:30px}.seal.stamping{animation:stamp .34s var(--ease-out) both}@keyframes stamp{0%{opacity:0;transform:rotate(-2deg)scale(1.7)}65%{opacity:1;transform:rotate(-8deg)scale(.96)}to{opacity:1;transform:rotate(-8deg)scale(1)}}.hero{gap:var(--space-4) var(--space-8);padding:var(--space-8);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.hero h1{font-family:var(--font-display);letter-spacing:-.025em;font-size:34px;font-weight:700;line-height:1.15}.hero .summary{color:var(--text-2);font-size:16px}.hero .summary strong{color:var(--text)}.hero .composer{grid-column:1/-1}.hero-stats{padding-top:var(--space-4);border-top:1px dashed var(--border);grid-column:1/-1}@media (width<=860px){.hero{padding:var(--space-6);grid-template-columns:1fr}.hero .ring{display:none}.hero h1{font-size:28px}}.rhythm{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;display:grid}.rhythm-col{flex-direction:column;align-items:center;gap:6px;display:flex}.rhythm-track{justify-content:center;align-items:flex-end;width:100%;height:72px;display:flex}.rhythm-bar{background:var(--hairline);border-radius:6px;width:100%;max-width:24px;min-height:4px}.rhythm-bar.has{background:linear-gradient(to top, var(--brand), color-mix(in srgb, var(--brand) 55%, var(--accent)))}.rhythm-col span{color:var(--text-3);font-size:12px}.rhythm-col.today span{color:var(--text);font-weight:700}.covenant{position:relative;overflow:hidden}.covenant-heading{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.covenant-heading.has-reward{grid-template-columns:minmax(0,1fr) auto}.covenant-toolbar,.covenant-title{grid-column:1;min-width:0}.covenant-toolbar{flex-wrap:wrap}.covenant-title{overflow-wrap:anywhere}.covenant-reward-medal{grid-area:1/2/span 2}.covenant h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.25}.covenant .seal{position:absolute;bottom:28px;right:32px}.covenant-parties{align-items:center;gap:var(--space-2);color:var(--text-2);flex-wrap:wrap;font-size:14px;display:flex}.covenant-parties .arrow{color:var(--text-3)}.covenant-reward{gap:var(--space-1);font-size:14px}.perforation{height:0;margin:var(--space-2) calc(-1 * var(--space-6));border-top:1px dashed var(--border)}.back-link{color:var(--text-2);align-self:flex-start;align-items:center;gap:4px;font-size:14px;font-weight:500;display:inline-flex}.back-link svg{width:16px;height:16px;transform:rotate(180deg)}.steps{flex-direction:column;display:flex}.step{gap:var(--space-3);padding-bottom:var(--space-4);grid-template-columns:20px minmax(0,1fr);align-items:start;display:grid;position:relative}.step:last-child{padding-bottom:0}.step:before{content:"";background:var(--hairline);width:2px;position:absolute;top:20px;bottom:0;left:9px}.step:last-child:before{display:none}.step-dot{border:2px solid var(--border);background:var(--card);border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.step.done .step-dot{border-color:var(--step-color,var(--brand-ink));background:var(--step-color,var(--brand-ink));color:var(--card)}.step.done .step-dot svg{stroke-width:3px;width:12px;height:12px}.step-title{font-weight:600;line-height:20px}.step:not(.done) .step-title{color:var(--text-3);font-weight:500}.step time{color:var(--text-2);font-size:13px}.badge-collections{gap:var(--space-8);display:grid}.badge-collection{gap:var(--space-4);display:grid}.badge-collection-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.badge-collection-heading .stack{gap:var(--space-1);flex:60%}.badge-collection-heading h2{font-size:inherit}.badge-collection-count{color:var(--text-2);white-space:nowrap}.badge-description{gap:var(--space-1)}.badge-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));display:grid}.badge-tile{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4) var(--space-4);text-align:center;flex-direction:column;display:flex;position:relative}.badge-tile h3{font-size:15px;font-weight:700}.badge-tile .tile-actions{top:var(--space-2);right:var(--space-2);gap:var(--space-1);display:flex;position:absolute}.badge-tile .tile-tier{top:var(--space-3);left:var(--space-3);position:absolute}.medal{width:var(--medal-size,76px);height:var(--medal-size,76px);background:conic-gradient(var(--tier-color) calc(var(--p,0) * 1turn), var(--hairline) 0);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.medal-inner{width:calc(100% - 10px);height:calc(100% - 10px);color:var(--tier-color);background:radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--tier-color) 10%, var(--card)), color-mix(in srgb, var(--tier-color) 24%, var(--card)));box-shadow:inset 0 0 0 3px var(--card);border-radius:50%;place-items:center;display:grid;overflow:hidden}.medal-inner svg{width:44%;height:44%}.medal-inner img{object-fit:cover;width:100%;height:100%}.medal.earned{box-shadow:0 0 0 6px color-mix(in srgb, var(--tier-color) 12%, transparent), 0 8px 24px -6px color-mix(in srgb, var(--tier-color) 55%, transparent)}.badge-tile.locked .medal-inner{filter:grayscale();opacity:.6}.medal.lg{--medal-size:112px}.tier-tally{gap:var(--space-2);flex-wrap:wrap;display:flex}.tier-tally .pill{padding:4px 10px;font-size:13px}.celebrate{align-items:center;gap:var(--space-3);padding-bottom:var(--space-2);text-align:center;flex-direction:column;display:flex}.celebrate .medal{animation:pop-in .52s var(--ease-out) both}.celebrate h2{font-family:var(--font-display);animation:rise-in .36s var(--ease-out) .12s both}.celebrate p{animation:rise-in .36s var(--ease-out) .18s both}.celebrate .sparks{position:relative}.celebrate .sparks i{background:var(--spark,var(--accent));opacity:0;width:6px;height:6px;animation:spark .7s var(--ease-out) .16s both;border-radius:2px;margin:-3px;position:absolute;top:50%;left:50%}@keyframes spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}to{opacity:0;transform:rotate(var(--a)) translateY(-78px) scale(.6)}}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}.ticket{grid-template-columns:minmax(0,1fr) 220px;padding:0;display:grid;position:relative;overflow:visible}.ticket-main{justify-content:center;gap:var(--space-3);padding:var(--space-6);border-radius:var(--radius-lg) 0 0 var(--radius-lg);background:var(--glow);flex-direction:column;display:flex}.ticket-main h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:26px;font-weight:700}.ticket-stub{justify-content:center;gap:var(--space-2);padding:var(--space-5);border-left:2px dashed var(--border);flex-direction:column;display:flex;position:relative}.ticket-stub:before,.ticket-stub:after{content:"";background:var(--canvas);border:1px solid var(--hairline);border-radius:50%;width:20px;height:20px;position:absolute;left:-11px}.ticket-stub:before{clip-path:inset(50% 0 0);top:-11px}.ticket-stub:after{clip-path:inset(0 0 50%);bottom:-11px}.ticket-code{font:700 24px/1.2 var(--font-mono);letter-spacing:.14em;color:var(--brand-ink);-webkit-user-select:all;user-select:all;overflow-wrap:anywhere}.avatar-stack{display:flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--card)}.avatar-stack .avatar+.avatar{margin-left:-8px}.member-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.member-card{align-items:center;gap:var(--space-3);display:flex}.member-card .who{flex:1;min-width:0}.member-card .actions{margin-right:calc(-1 * var(--space-2));display:flex}@media (width<=860px){.ticket{grid-template-columns:1fr}.ticket-main{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.ticket-stub{border-left:none;border-top:2px dashed var(--border)}.ticket-stub:before,.ticket-stub:after{display:none}}.timeline{gap:var(--space-5);flex-direction:column;display:flex}.timeline-day{gap:var(--space-2);flex-direction:column;display:flex}.timeline-day>h3{align-items:baseline;gap:var(--space-2);color:var(--text-2);font-size:13px;font-weight:700;display:flex}.timeline-day>h3 small{color:var(--text-3);font-weight:500}.timeline-item{gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);grid-template-columns:56px 12px minmax(0,1fr) auto;align-items:center;display:grid}.timeline-item time{font:600 15px/1 var(--font-display);font-variant-numeric:tabular-nums}.timeline-item .tick{border:2px solid var(--brand-ink);border-radius:50%;width:10px;height:10px}.timeline-item.soon .tick{background:var(--brand-ink);box-shadow:0 0 0 4px var(--brand-soft)}.timeline-item+.timeline-item{border-top:1px solid var(--hairline)}.timeline-item.past{opacity:.62}.timeline-item.past .tick{border-color:var(--text-3)}.timeline-item .title{font-weight:600}.timeline-item .actions{display:flex}.settings-section{gap:var(--space-6);grid-template-columns:220px minmax(0,1fr);align-items:start;display:grid}.settings-section+.settings-section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--hairline)}.settings-section>header{gap:var(--space-1);padding-top:var(--space-1);flex-direction:column;display:flex}.settings-section>header h2{font-size:15px;font-weight:700}.settings-section>header p{color:var(--text-2);font-size:13px}.field-row{align-items:center;gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.field-row+.field-row,.field+.field-row,.field-row+.field{padding-top:var(--space-4);border-top:1px solid var(--hairline)}.panel{gap:var(--space-4);flex-direction:column;display:flex}.panel-subhead{align-items:baseline;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--hairline);flex-wrap:wrap;display:flex}.panel-subhead h3{font-size:15px;font-weight:700}.btn.reveal[data-visible=false]{opacity:0;pointer-events:none;transform:scale(.96)}.panel-footer{align-items:center;gap:var(--space-2);margin:var(--space-1) calc(-1 * var(--space-6)) calc(-1 * var(--space-6));padding:var(--space-3) var(--space-6);border-top:1px solid var(--hairline);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:color-mix(in srgb, var(--card) 100%, var(--text) 2%);flex-wrap:wrap;display:flex}@media (width<=860px){.settings-section{gap:var(--space-3);grid-template-columns:1fr}}.preview-frame{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--sunken);flex-direction:column;display:flex}.preview-frame .card{box-shadow:var(--shadow-md)}.confidence{align-items:center;gap:var(--space-2);display:flex}.confidence .progress{flex:1}.stagger>*{animation:rise-in .28s var(--ease-out) both}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(n+6){animation-delay:.2s}.showcase{height:230px;margin-top:var(--space-4);position:relative}.showcase>*{animation:showcase-in .48s var(--ease-out) both;position:absolute}.showcase .card{width:252px;box-shadow:var(--shadow-md)}.showcase>:first-child{top:28px;left:0;transform:rotate(-3deg)}.showcase>:nth-child(2){animation-delay:80ms;top:0;left:268px;transform:rotate(2.5deg)}.showcase>:nth-child(3){width:auto;animation-delay:.16s;top:158px;left:150px;transform:rotate(-1deg)}@keyframes showcase-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:1ms!important;animation-delay:0s!important}.btn:active:not(:disabled),.card-link:active,.fab:active,.dialog:not([open]),.toast,.btn.reveal[data-visible=false]{transform:none}.celebrate .sparks{display:none}@starting-style{.dialog[open],.toast{transform:none}}}.checkin-schedule{gap:var(--space-3)}.checkin-row,.checkin-row>.row{flex-wrap:wrap}.checkin-schedule .btn{min-height:44px}.checkin-row{position:relative}.checkin-actions{margin-left:auto}.checkin-celebration{--confetti-duration:.6s;right:var(--space-6);width:var(--space-10);height:var(--space-10);margin-top:calc(-1 * var(--space-5));z-index:2;pointer-events:none;animation:.7s linear both checkin-feedback;position:absolute;top:50%}.checkin-celebration.milestone{--confetti-duration:.8s;animation-duration:.9s}.checkin-stamp{background:var(--confetti-yellow);width:100%;height:100%;color:var(--on-brand);box-shadow:var(--shadow-sm);animation:checkin-stamp .25s var(--ease-out) both;border-radius:50%;place-items:center;display:grid}.checkin-stamp svg{width:var(--space-6);height:var(--space-6)}.checkin-cheer{right:0;bottom:calc(100% + var(--space-2));white-space:nowrap;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--elevated);color:var(--text);box-shadow:var(--shadow-sm);font-weight:600;position:absolute}.checkin-confetti{position:absolute;inset:0}.checkin-confetti i{background:var(--confetti-color);width:6px;height:14px;animation:checkin-confetti var(--confetti-duration) linear both;border-radius:1px;position:absolute;top:50%;left:50%}.checkin-confetti i:nth-child(3n){width:8px;height:8px}.checkin-confetti i:nth-child(4n){border-left:4px solid var(--confetti-color);background:0 0;border-radius:50% 0 0 50%;width:10px;height:26px}@keyframes checkin-stamp{0%{opacity:0;transform:scale(1.18)rotate(-10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes checkin-confetti{0%{opacity:0;transform:translate(0)rotate(0)}12%{opacity:1}55%{transform:translate(var(--confetti-peak-x), var(--confetti-y)) rotate(var(--confetti-turn)) scaleY(var(--confetti-flip));opacity:1}to{transform:translate(var(--confetti-x), var(--confetti-end-y)) rotate(calc(var(--confetti-turn) * 2)) scaleY(.75);opacity:0}}@keyframes checkin-feedback{0%{opacity:0}12%,75%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.checkin-confetti{display:none}.checkin-stamp{animation:none}}
