@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-primary:#19c37d;--color-accent:#ff7db0;--on-primary:#06281b;--on-accent:#3b0a1f;--font-heading:"Bricolage Grotesque Variable", "Figtree Variable", ui-sans-serif, system-ui, sans-serif;--font-body:"Figtree Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ink:var(--color-text,#15221c);--bg:var(--color-background,color-mix(in oklab, var(--color-primary) 4%, #fafbfa));--surface:#fff;--surface-2:color-mix(in oklab, var(--color-primary) 5%, #fff);--surface-3:color-mix(in oklab, var(--ink) 6%, var(--surface));--ink-2:color-mix(in oklab, var(--ink) 68%, var(--surface));--ink-3:color-mix(in oklab, var(--ink) 48%, var(--surface));--line:color-mix(in oklab, var(--ink) 10%, transparent);--line-strong:color-mix(in oklab, var(--ink) 20%, transparent);--primary:var(--color-primary);--primary-hover:color-mix(in oklab, var(--primary) 90%, black);--primary-soft:color-mix(in oklab, var(--primary) 15%, var(--surface));--primary-softer:color-mix(in oklab, var(--primary) 8%, var(--surface));--primary-ink:color-mix(in oklab, var(--primary) 52%, var(--ink));--accent:var(--color-accent);--accent-soft:color-mix(in oklab, var(--accent) 20%, var(--surface));--focus:color-mix(in oklab, var(--primary) 65%, var(--ink));--ok:#0f9d6a;--warn:#b97300;--bad:#d13a50;--ok-soft:color-mix(in oklab, var(--ok) 15%, var(--surface));--warn-soft:color-mix(in oklab, var(--warn) 16%, var(--surface));--bad-soft:color-mix(in oklab, var(--bad) 13%, var(--surface));--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:24px;--r-pill:999px;--sh-1:0 1px 2px color-mix(in oklab, var(--ink) 8%, transparent);--sh-2:0 1px 2px color-mix(in oklab, var(--ink) 6%, transparent), 0 6px 18px -6px color-mix(in oklab, var(--ink) 16%, transparent);--sh-3:0 2px 4px color-mix(in oklab, var(--ink) 8%, transparent), 0 18px 40px -12px color-mix(in oklab, var(--ink) 28%, transparent);--fs-xs:.78rem;--fs-sm:.875rem;--fs-md:.95rem;--fs-lg:1.08rem;--fs-xl:1.35rem;--fs-2xl:1.85rem;--fs-3xl:2.5rem;--sidebar:256px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#e9f0ec;--bg:color-mix(in oklab, var(--color-primary) 9%, #0b100e);--surface:color-mix(in oklab, var(--color-primary) 3%, #131a16);--surface-2:color-mix(in oklab, var(--color-primary) 8%, #131a16);--surface-3:color-mix(in oklab, #fff 8%, var(--surface));--ink-2:color-mix(in oklab, var(--ink) 72%, var(--surface));--ink-3:color-mix(in oklab, var(--ink) 50%, var(--surface));--line:oklab(100% 0 5.96046e-8/.11);--line-strong:oklab(100% 0 5.96046e-8/.22);--primary-soft:color-mix(in oklab, var(--primary) 24%, var(--surface));--primary-softer:color-mix(in oklab, var(--primary) 14%, var(--surface));--primary-ink:color-mix(in oklab, var(--primary) 55%, #fff);--focus:color-mix(in oklab, var(--primary) 60%, #fff);--ok:#34d399;--warn:#f0b34a;--bad:#ff6b81;--sh-1:0 1px 2px #0006;--sh-2:0 1px 2px #0006, 0 8px 22px -6px #0000008c;--sh-3:0 2px 4px #00000080, 0 22px 44px -12px #000000b3}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:650;line-height:1.15}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0}a{color:var(--primary-ink);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}code{background:var(--surface-3);border-radius:6px;padding:1px 6px;font-size:.9em}pre{background:var(--surface-3);border-radius:var(--r-md);margin:0;padding:12px 14px;overflow:auto}img{max-width:100%}small{font-size:var(--fs-xs)}hr{border:0;border-top:1px solid var(--line);margin:0}table{border-collapse:collapse;width:100%}fieldset{border:0;min-width:0;margin:0;padding:0}::selection{background:color-mix(in oklab, var(--primary) 35%, transparent)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.nowrap{white-space:nowrap}.right{margin-left:auto}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.tight{gap:6px}.stack{flex-direction:column;gap:14px;display:flex}.stack.tight{gap:8px}.stack.loose{gap:24px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.display{font-family:var(--font-heading);letter-spacing:-.03em}@media (width<=760px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}.btn{border-radius:var(--r-pill);height:40px;font:inherit;font-weight:620;font-size:var(--fs-md);cursor:pointer;white-space:nowrap;background:var(--surface-3);color:var(--ink);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;line-height:1;text-decoration:none;transition:background-color .15s,transform 80ms,box-shadow .15s,border-color .15s;display:inline-flex}.btn:hover{background:color-mix(in oklab, var(--ink) 11%, var(--surface));text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn svg{flex:none}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--sh-1)}.btn-primary:hover{background:var(--primary-hover)}.btn-soft{background:var(--primary-soft);color:var(--ink)}.btn-soft:hover{background:color-mix(in oklab, var(--primary) 26%, var(--surface))}.btn-ghost{color:var(--ink-2);background:0 0}.btn-ghost:hover{background:var(--surface-3);color:var(--ink)}.btn-outline{background:var(--surface);border-color:var(--line-strong)}.btn-outline:hover{background:var(--surface-2)}.btn-danger{background:var(--bad-soft);color:var(--bad)}.btn-danger:hover{background:color-mix(in oklab, var(--bad) 22%, var(--surface))}.btn-sm{height:32px;font-size:var(--fs-sm);padding:0 13px}.btn-lg{height:48px;font-size:var(--fs-lg);padding:0 24px}.btn-icon{width:40px;padding:0}.btn-icon.btn-sm{width:32px}.btn-block{width:100%}.input,select,textarea,input:not([type=checkbox],[type=radio],[type=file],[type=range]){width:100%;min-width:0;height:40px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:0 13px;transition:border-color .15s,box-shadow .15s,background-color .15s}textarea{resize:vertical;height:auto;min-height:84px;padding:10px 13px;line-height:1.45}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}input::placeholder,textarea::placeholder{color:var(--ink-3)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:color-mix(in oklab, var(--ink) 32%, transparent)}input:focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:0 0 0 4px color-mix(in oklab, var(--primary) 24%, transparent);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);border-color:var(--line);color:var(--ink);opacity:.85;cursor:default}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--primary);flex:none;margin:0}input[type=file]{font:inherit;color:var(--ink-2)}input[type=search]{padding-left:38px}.input-sm,select.input-sm,input.input-sm{height:34px;font-size:var(--fs-sm);border-radius:9px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span,.field>.label{font-size:var(--fs-sm);color:var(--ink);font-weight:600}.field>.hint{font-size:var(--fs-xs);color:var(--ink-3);font-weight:400}.field-row{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px 20px;display:grid}.check{cursor:pointer;font-size:var(--fs-md);align-items:center;gap:10px;display:flex}.checks{flex-wrap:wrap;gap:8px 18px;display:flex}.search-input{min-width:0;display:block;position:relative}.search-input svg{color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.chip{border-radius:var(--r-pill);height:24px;font-size:var(--fs-xs);background:var(--surface-3);color:var(--ink-2);white-space:nowrap;align-items:center;gap:5px;padding:0 10px;font-weight:600;display:inline-flex}.chip svg{flex:none}.chip-primary{background:var(--primary-soft);color:var(--ink)}.chip-accent{background:var(--accent-soft);color:var(--ink)}.chip-ok{background:var(--ok-soft);color:var(--ok)}.chip-warn{background:var(--warn-soft);color:var(--warn)}.chip-bad{background:var(--bad-soft);color:var(--bad)}.chip-dot:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.chip button{all:unset;cursor:pointer;border-radius:50%;margin-right:-4px;padding:2px;display:inline-flex}.chip button:hover{background:var(--line)}.avatar{--h:160;width:var(--s,32px);height:var(--s,32px);font-size:calc(var(--s,32px) * .38);letter-spacing:0;text-transform:uppercase;background:oklch(.9 .07 var(--h));color:oklch(.34 .09 var(--h));border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.avatar.square{border-radius:28%}@media (prefers-color-scheme:dark){.avatar{background:oklch(.36 .07 var(--h));color:oklch(.92 .06 var(--h))}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:22px}.card-tight{padding:16px}.panel{background:var(--surface-2);border-radius:var(--r-lg);padding:18px}.section-title{align-items:center;gap:10px;margin-bottom:14px;display:flex}.section-title h2,.section-title h3{font-size:var(--fs-lg)}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.table-scroll{overflow-x:auto}.table th{text-align:left;font-size:var(--fs-xs);color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap;padding:12px 16px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background-color .12s}.table tbody tr:hover{background:var(--primary-softer)}.table tfoot td{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:0;font-weight:600}.table .cell-main{align-items:center;gap:12px;min-width:0;display:flex}.table .cell-main>div{min-width:0}.table .cell-main strong{font-weight:620;display:block}.table .cell-main small{color:var(--ink-3);display:block}.table a.row-link{color:inherit;font-weight:620;text-decoration:none}.table a.row-link:hover{color:var(--primary-ink);text-decoration:underline}.table-foot{border-top:1px solid var(--line);color:var(--ink-2);font-size:var(--fs-sm);align-items:center;gap:10px;padding:12px 16px;display:flex}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:24px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--ink-2);white-space:nowrap;font-weight:600;font-size:var(--fs-md);cursor:pointer;background:0 0;border:0;border-radius:10px 10px 0 0;align-items:center;gap:8px;padding:12px 14px;text-decoration:none;display:inline-flex;position:relative}.tab:hover{color:var(--ink);background:var(--surface-2)}.tab[aria-selected=true],.tab[aria-current=page]{color:var(--ink)}.tab[aria-selected=true]:after,.tab[aria-current=page]:after{content:"";background:var(--primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:10px;right:10px}.tab .chip{height:20px;padding:0 7px}.seg{background:var(--surface-3);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.seg button,.seg a{all:unset;box-sizing:border-box;cursor:pointer;border-radius:var(--r-pill);height:32px;font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;padding:0 14px;font-weight:600;display:inline-flex}.seg button:hover,.seg a:hover{color:var(--ink)}.seg button[aria-pressed=true],.seg a[aria-current=true]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}.seg button:focus-visible{outline:2px solid var(--focus)}.page-head{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head .titles{flex:280px;min-width:0}.page-head h1{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-head .sub{color:var(--ink-2);margin-top:6px}.page-head .actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.crumbs{font-size:var(--fs-sm);color:var(--ink-3);align-items:center;gap:6px;margin-bottom:10px;display:flex}.crumbs a{color:var(--ink-2);text-decoration:none}.crumbs a:hover{color:var(--ink);text-decoration:underline}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.empty .icon{background:var(--primary-soft);width:56px;height:56px;color:var(--ink);border-radius:18px;place-items:center;margin-bottom:6px;display:grid}.empty h3{font-size:var(--fs-lg)}.empty p{color:var(--ink-2);max-width:36ch}.empty .row{justify-content:center;margin-top:8px}.skeleton{background:linear-gradient(90deg, var(--surface-3) 25%, color-mix(in oklab, var(--surface-3) 60%, var(--surface)) 50%, var(--surface-3) 75%);background-size:200% 100%;border-radius:8px;height:14px;animation:1.4s linear infinite shimmer;display:block}@keyframes shimmer{to{background-position:-200% 0}}.notice{border-radius:var(--r-md);background:var(--primary-softer);border:1px solid var(--line);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.notice.warn{background:var(--warn-soft)}.notice.bad{background:var(--bad-soft)}.notice svg{flex:none;margin-top:2px}.toasts{z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(92vw,420px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--r-pill);background:var(--ink);color:var(--bg);box-shadow:var(--sh-3);font-weight:600;font-size:var(--fs-sm);align-items:center;gap:10px;padding:12px 18px;animation:.22s cubic-bezier(.2,.8,.2,1) toast-in;display:flex}.toast.bad{background:var(--bad);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}dialog.dialog{border-radius:var(--r-xl);background:var(--surface);color:var(--ink);box-shadow:var(--sh-3);border:0;width:min(92vw,440px);max-height:88vh;padding:0}dialog.dialog::backdrop{background:color-mix(in oklab, var(--ink) 40%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog.dialog[open]{animation:.18s cubic-bezier(.2,.8,.2,1) dialog-in}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.dialog-body{flex-direction:column;gap:10px;padding:24px;display:flex}.dialog-actions{justify-content:flex-end;gap:8px;padding:0 24px 22px;display:flex}.tags-input{background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;min-height:40px;padding:5px 8px;transition:border-color .15s,box-shadow .15s;display:flex}.tags-input:focus-within{border-color:var(--focus);box-shadow:0 0 0 4px color-mix(in oklab, var(--primary) 24%, transparent)}.tags-input input{min-width:120px;height:28px;box-shadow:none;background:0 0;border:0;flex:1;padding:0 4px}.tags-input input:focus{box-shadow:none}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar select{width:auto;max-width:220px}.toolbar .search-input{flex:240px;max-width:380px}.toolbar .filters{display:contents}.row-actions{justify-content:flex-end;gap:6px;display:flex}.danger-zone{border:1px solid color-mix(in oklab, var(--bad) 30%, var(--line));border-radius:var(--r-lg);flex-wrap:wrap;align-items:center;gap:16px;padding:18px 20px;display:flex}.danger-zone .grow{flex:260px}.danger-zone strong{display:block}.pick-list{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-3);max-height:260px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.pick-list button{all:unset;box-sizing:border-box;cursor:pointer;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.pick-list button:hover,.pick-list button:focus-visible{background:var(--primary-softer)}.picker{display:block;position:relative}.table th.num,.line-table th.num{text-align:right}.status-picker{border-radius:var(--r-pill);cursor:pointer;align-items:center;gap:2px;display:inline-flex;position:relative}.status-picker:hover .chip{filter:brightness(.96)}.status-picker>svg{color:var(--ink-3);margin-left:-2px}.status-picker select{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.status-picker:focus-within{outline:2px solid var(--focus);outline-offset:2px}.phase-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.phase-tab{all:unset;box-sizing:border-box;cursor:pointer;border-radius:var(--r-pill);height:38px;font-weight:620;font-size:var(--fs-sm);color:var(--ink-2);background:var(--surface);border:1px solid var(--line);align-items:center;gap:8px;padding:0 14px;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.phase-tab:hover{color:var(--ink);border-color:var(--line-strong)}.phase-tab[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.phase-tab .n{font-variant-numeric:tabular-nums;opacity:.7;font-weight:600}.phase-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.views{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.views-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.views-label{font-size:var(--fs-sm);color:var(--ink-3);align-items:center;gap:6px;margin-right:2px;font-weight:600;display:inline-flex}.view-chip{all:unset;box-sizing:border-box;cursor:pointer;border-radius:var(--r-pill);height:32px;font-size:var(--fs-sm);color:var(--ink-2);background:var(--surface-3);align-items:center;gap:6px;padding:0 13px;font-weight:600;transition:background-color .12s,color .12s;display:inline-flex}.view-chip:hover{color:var(--ink);background:color-mix(in oklab, var(--ink) 11%, var(--surface))}.view-chip[aria-pressed=true]{background:var(--primary-soft);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--primary)}.view-chip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.views-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.views-form input:not([type=checkbox]){width:min(100%,260px);height:34px}.views-actions{padding-left:2px}.score-wrap{display:inline-flex;position:relative}.score-btn{all:unset;box-sizing:border-box;cursor:pointer;border-radius:var(--r-pill);align-items:center;gap:2px;display:inline-flex}.score-btn:hover .chip{filter:brightness(.96)}.score-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.score-btn>svg{color:var(--ink-3);transition:transform .15s}.score-panel{z-index:25;width:min(440px,88vw);box-shadow:var(--sh-3);text-align:left;animation:.14s ease-out dialog-in;position:absolute;top:calc(100% + 8px);left:0}.score-panel .table td{padding:8px 4px}.app{grid-template-columns:var(--sidebar) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:6px;height:100vh;padding:16px 12px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:var(--ink);align-items:center;gap:12px;min-width:0;padding:6px 10px 18px;text-decoration:none;display:flex}.brand .mark{--s:36px;background:var(--primary);width:36px;height:36px;color:var(--on-primary);font-family:var(--font-heading);border-radius:11px;flex:none;place-items:center;font-size:1.1rem;font-weight:750;display:grid;overflow:hidden}.brand .mark img{object-fit:contain;background:#fff;width:100%;height:100%}.brand .name{font-family:var(--font-heading);letter-spacing:-.02em;font-size:1.15rem;font-weight:680}.nav{flex-direction:column;gap:2px;display:flex}.nav+.nav{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.nav-link{height:40px;color:var(--ink-2);border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-weight:600;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.nav-link:hover{background:var(--surface-3);color:var(--ink);text-decoration:none}.nav-link[aria-current=page]{background:var(--primary-soft);color:var(--ink)}.nav-link svg{flex:none}.nav-link .count{font-size:var(--fs-xs);background:var(--accent);color:var(--on-accent);border-radius:var(--r-pill);margin-left:auto;padding:1px 8px;font-weight:700}.sidebar .spacer{flex:1}.me{background:var(--surface-2);border-radius:14px;align-items:center;gap:10px;min-width:0;padding:10px;display:flex}.me .who{flex:1;min-width:0;line-height:1.25}.me .who strong{font-size:var(--fs-sm);display:block}.me .who small{color:var(--ink-3)}.powered{font-size:var(--fs-xs);color:var(--ink-3);padding:8px 12px 0}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;background:color-mix(in oklab, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);align-items:center;gap:12px;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.topbar .menu-btn{display:none}.global-search{flex:1;max-width:520px;position:relative}.global-search input{border-radius:var(--r-pill);background:var(--surface);height:42px;padding-right:64px}.global-search kbd{font:inherit;font-size:var(--fs-xs);color:var(--ink-3);border:1px solid var(--line-strong);pointer-events:none;border-radius:6px;padding:1px 6px;font-weight:600;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.search-results{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);max-height:70vh;padding:8px;animation:.14s ease-out dialog-in;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto}.search-group{font-size:var(--fs-xs);color:var(--ink-3);padding:6px 10px 2px;font-weight:600}.search-hit{color:var(--ink);border-radius:12px;align-items:center;gap:12px;min-width:0;padding:8px 10px;text-decoration:none;display:flex}.search-hit:hover,.search-hit[aria-selected=true]{background:var(--primary-softer);text-decoration:none}.search-hit small{color:var(--ink-3);display:block}.content{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:32px 32px 64px}.scrim{display:none}@media (width<=960px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:60;width:min(84vw,300px);box-shadow:var(--sh-3);transition:transform .22s cubic-bezier(.2,.8,.2,1);position:fixed;top:0;left:0;transform:translate(-102%)}.sidebar.open{transform:none}.scrim{z-index:55;background:color-mix(in oklab, var(--ink) 40%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:block;position:fixed;inset:0}.topbar{padding:0 14px}.topbar .menu-btn{display:inline-flex}.content{padding:20px 16px 56px}.global-search kbd{display:none}}.hello{flex-direction:column;gap:6px;margin-bottom:28px;display:flex}.hello h1{letter-spacing:-.035em;font-size:clamp(1.9rem,4vw,2.7rem)}.stat-row{grid-template-columns:1.4fr 1fr 1fr;gap:14px;margin-bottom:28px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);color:inherit;flex-direction:column;gap:4px;padding:18px 20px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex}a.stat:hover{box-shadow:var(--sh-2);text-decoration:none;transform:translateY(-2px)}.stat .value{font-family:var(--font-heading);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:680;line-height:1.1}.stat .label{color:var(--ink-2);font-size:var(--fs-sm)}.stat.hero{background:var(--primary);color:var(--on-primary);border-color:#0000}.stat.hero .label{color:color-mix(in oklab, var(--on-primary) 78%, transparent)}.stat.hero .value{font-size:2.6rem}.home-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.list{flex-direction:column;display:flex}.list-item{border-top:1px solid var(--line);align-items:center;gap:12px;min-width:0;padding:12px 6px;display:flex}.list-item:first-child{border-top:0}.list-item .grow{flex:1;min-width:0}.list-item .grow strong{font-weight:620;display:block}.list-item .grow small{color:var(--ink-3);display:block}.list-item a.title{color:inherit;font-weight:620;text-decoration:none}.list-item a.title:hover{color:var(--primary-ink);text-decoration:underline}@media (width<=960px){.stat-row,.home-grid{grid-template-columns:minmax(0,1fr)}}.entity-head{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:20px;display:flex}.entity-head .avatar{--s:64px}.entity-head .titles{flex:260px;min-width:0}.entity-head h1{font-size:var(--fs-2xl)}.entity-head .meta{color:var(--ink-2);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.entity-head .meta a{color:inherit}.split{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.sticky-col{position:sticky;top:88px}@media (width<=1060px){.split{grid-template-columns:minmax(0,1fr)}.sticky-col{position:static}}.savebar{z-index:10;background:var(--ink);color:var(--bg);border-radius:var(--r-pill);box-shadow:var(--sh-3);align-items:center;gap:12px;margin-top:8px;padding:12px 16px;animation:.2s ease-out toast-in;display:flex;position:sticky;bottom:16px}.savebar .btn-ghost{color:inherit;opacity:.85}.savebar .btn-ghost:hover{background:color-mix(in oklab, var(--bg) 18%, transparent);color:inherit}.composer{align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.composer .box{flex-direction:column;flex:1;gap:10px;display:flex}.feed{flex-direction:column;display:flex}.feed-day{font-size:var(--fs-xs);color:var(--ink-3);padding:14px 0 6px 44px;font-weight:600}.feed-item{gap:14px;padding:8px 0;display:flex;position:relative}.feed-item:before{content:"";background:var(--line);width:2px;position:absolute;top:40px;bottom:-8px;left:15px}.feed-item:last-child:before{display:none}.feed-icon{background:var(--surface-3);width:32px;height:32px;color:var(--ink-2);z-index:1;border-radius:50%;flex:none;place-items:center;display:grid}.feed-icon.tone-ok{background:var(--ok-soft);color:var(--ok)}.feed-icon.tone-primary{background:var(--primary-soft);color:var(--ink)}.feed-icon.tone-accent{background:var(--accent-soft);color:var(--ink)}.feed-icon.tone-bad{background:var(--bad-soft);color:var(--bad)}.feed-body{flex:1;min-width:0;padding-top:4px}.feed-body .line{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.feed-body .time{color:var(--ink-3);font-size:var(--fs-xs)}.feed-note{background:var(--surface-2);border:1px solid var(--line);white-space:pre-wrap;border-radius:4px 16px 16px;margin-top:6px;padding:12px 14px}.feed-detail{color:var(--ink-2);font-size:var(--fs-sm);margin-top:4px}.board{scroll-snap-type:x proximity;align-items:flex-start;gap:14px;margin:0 -2px;padding:2px 2px 18px;display:flex;overflow-x:auto}.column{scroll-snap-align:start;background:color-mix(in oklab, var(--ink) 4.5%, var(--bg));border-radius:var(--r-lg);outline:2px solid #0000;flex:0 0 292px;min-height:140px;padding:10px;transition:background-color .12s,outline-color .12s}.column.over{background:var(--primary-soft);outline-color:var(--primary)}.column header{align-items:center;gap:8px;padding:4px 6px 10px;display:flex}.column header .dot{background:var(--primary);border-radius:50%;flex:none;width:9px;height:9px}.column.kind-won header .dot{background:var(--ok)}.column.kind-lost header .dot{background:var(--bad)}.column header strong{font-weight:650}.column header .sum{color:var(--ink-2);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;margin-left:auto}.deal-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);cursor:grab;border-radius:14px;flex-direction:column;gap:8px;margin-bottom:8px;padding:12px 14px;transition:box-shadow .12s,transform .12s;display:flex}.deal-card:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}.deal-card.dragging{opacity:.45;transform:rotate(1.5deg)}.deal-card a.title{color:inherit;font-weight:640;line-height:1.3;text-decoration:none}.deal-card a.title:hover{text-decoration:underline}.deal-card .meta{color:var(--ink-2);font-size:var(--fs-sm);align-items:center;gap:6px;min-width:0;display:flex}.deal-card .foot{align-items:center;gap:8px;display:flex}.deal-card .value{font-variant-numeric:tabular-nums;font-weight:700}.deal-card .move{height:28px;font-size:var(--fs-xs);color:var(--ink-2);border-radius:8px;padding:0 28px 0 10px}.steps{background:var(--surface-3);border-radius:var(--r-pill);flex-wrap:wrap;gap:6px;width:fit-content;max-width:100%;padding:6px;display:flex}.step{all:unset;box-sizing:border-box;cursor:pointer;border-radius:var(--r-pill);height:36px;font-weight:620;font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;padding:0 16px;transition:background-color .12s,color .12s;display:inline-flex}.step:hover{background:var(--surface);color:var(--ink)}.step.done{color:var(--ink);background:var(--primary-soft)}.step.current{background:var(--primary);color:var(--on-primary);box-shadow:var(--sh-1)}.step.current.won{background:var(--ok);color:#fff}.step.current.lost{background:var(--bad);color:#fff}.step:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.bars{flex-direction:column;gap:14px;display:flex}.bar-row{grid-template-columns:150px minmax(0,1fr) 120px;align-items:center;gap:14px;display:grid}.bar-track{background:var(--surface-3);border-radius:8px;height:14px;overflow:hidden}.bar-fill{background:var(--primary);border-radius:8px;min-width:4px;height:100%;transition:width .4s cubic-bezier(.2,.8,.2,1)}.bar-fill.won{background:var(--ok)}.bar-fill.lost{background:var(--bad)}.bar-row .name{font-weight:620}@media (width<=760px){.bar-row{grid-template-columns:1fr;gap:4px}}.line-table td{border-bottom:1px solid var(--line);padding:8px}.line-table th{text-align:left;font-size:var(--fs-xs);color:var(--ink-3);padding:6px 8px;font-weight:600}.line-table input,.line-table select{height:36px}.totals{grid-template-columns:1fr auto;gap:6px 24px;margin:0;display:grid}.totals dt{color:var(--ink-2)}.totals dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.totals .grand{font-family:var(--font-heading);font-size:var(--fs-xl);color:var(--ink);font-weight:680}.totals .rule{background:var(--line);grid-column:1/-1;height:1px;margin:4px 0}@media (hover:hover) and (pointer:fine){.deal-card .move:not(:focus){opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}}.entity-value{text-align:right}@media (width<=700px){.entity-value{text-align:left;flex-basis:100%}.steps{scrollbar-width:none;flex-wrap:nowrap;width:100%;overflow-x:auto}.steps::-webkit-scrollbar{display:none}}.task-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.task{border-top:1px solid var(--line);align-items:flex-start;gap:14px;padding:14px 16px;transition:background-color .12s;display:flex}.task:first-child{border-top:0}.task:hover{background:var(--primary-softer)}.task-check{all:unset;box-sizing:border-box;border:2px solid var(--line-strong);cursor:pointer;width:22px;height:22px;color:var(--on-primary);border-radius:50%;flex:none;place-items:center;margin-top:1px;transition:background-color .12s,border-color .12s,transform .1s;display:grid}.task-check:hover{border-color:var(--primary);background:var(--primary-soft)}.task-check:active{transform:scale(.92)}.task-check[aria-checked=true]{background:var(--primary);border-color:var(--primary)}.task-check:disabled{cursor:default;opacity:.6}.task-check:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.task-main{flex:1;min-width:0}.task-title{overflow-wrap:anywhere;font-weight:620}.task.done .task-title{color:var(--ink-3);font-weight:500;text-decoration:line-through}.task-notes{color:var(--ink-2);font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px}.task-meta{font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.task-meta a.chip{text-decoration:none}.task-meta a.chip:hover{background:var(--line)}.task-side{flex:none;align-items:center;gap:4px;display:flex}.task-add{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.task-add>input{box-shadow:none;height:36px;font-size:var(--fs-md);background:0 0;border:0;padding:0 2px}.task-add>input:focus{box-shadow:none}.task-add:focus-within{border-color:var(--focus);box-shadow:0 0 0 4px color-mix(in oklab, var(--primary) 18%, transparent)}.auth{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh;display:grid}.auth-side{background:var(--primary);color:var(--on-primary);flex-direction:column;justify-content:space-between;padding:40px 48px;display:flex;position:relative;overflow:hidden}.auth-side .brand{color:inherit;padding:0}.auth-side .brand .mark{background:var(--on-primary);color:var(--primary)}.auth-side h2{letter-spacing:-.04em;z-index:1;max-width:12ch;font-size:clamp(2.2rem,4.4vw,3.8rem);line-height:1.02;position:relative}.auth-side p{max-width:34ch;font-size:var(--fs-lg);color:color-mix(in oklab, var(--on-primary) 82%, transparent);z-index:1;margin-top:14px;position:relative}.auth-side .blob{border-radius:50%;position:absolute}.auth-side .blob.a{background:var(--accent);width:420px;height:420px;bottom:-150px;right:-140px}.auth-side .blob.b{background:color-mix(in oklab, var(--on-primary) 14%, transparent);width:220px;height:220px;bottom:-90px;right:140px}.auth-main{place-items:center;padding:32px 24px;display:grid}.auth-card{flex-direction:column;gap:22px;width:min(100%,400px);display:flex}.auth-card h1{font-size:var(--fs-2xl)}.auth-sent{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.auth-sent .icon{background:var(--primary-soft);border-radius:20px;place-items:center;width:60px;height:60px;display:grid}@media (width<=860px){.auth{grid-template-columns:minmax(0,1fr)}.auth-side{min-height:280px;padding:28px 24px 120px}.auth-side h2{font-size:2.4rem}.auth-side .blob.a{width:260px;height:260px;bottom:-110px;right:-90px}.auth-side .blob.b{display:none}.auth-main{margin-top:-80px;position:relative}.auth-card{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-3);padding:26px}}.public-page{flex-direction:column;align-items:center;gap:20px;min-height:100vh;padding:28px 16px 56px;display:flex}.public-page.embed{background:0 0;min-height:0;padding:0}.public-brand{align-items:center;gap:12px;width:min(100%,680px);display:flex}.public-brand .brand{padding:0}.public-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);width:min(100%,680px);box-shadow:var(--sh-2);flex-direction:column;gap:18px;padding:32px;display:flex}.public-page.embed .public-card{box-shadow:none;background:0 0;border:0;padding:4px 2px 8px}.public-card h1{font-size:var(--fs-2xl);letter-spacing:-.03em}.public-card .intro{color:var(--ink-2);font-size:var(--fs-lg)}.pf-field{flex-direction:column;gap:6px;display:flex}.pf-field>label,.pf-field>.label{font-weight:620;font-size:var(--fs-sm)}.pf-error{color:var(--bad);font-size:var(--fs-sm);font-weight:560}.pf-hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.pf-done{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:28px 8px;display:flex}.pf-done .tick{background:var(--primary);width:72px;height:72px;color:var(--on-primary);border-radius:50%;place-items:center;animation:.35s cubic-bezier(.2,1.4,.4,1) pop;display:grid}@keyframes pop{0%{opacity:0;transform:scale(.5)}}.public-foot{color:var(--ink-3);font-size:var(--fs-xs);gap:14px;display:flex}.public-foot a{color:inherit}.kiosk{padding-top:84px;font-size:1.15rem}.kiosk .public-card{gap:22px;width:min(100%,780px);padding:40px}.kiosk h1{font-size:2.6rem}.kiosk .pf-field>label,.kiosk .pf-field>.label{font-size:1.05rem}.kiosk input:not([type=checkbox]),.kiosk select,.kiosk textarea{border-radius:14px;height:56px;font-size:1.15rem}.kiosk textarea{height:auto}.kiosk .check{gap:14px;font-size:1.15rem}.kiosk input[type=checkbox]{width:28px;height:28px}.kiosk .public-card .btn{height:64px;font-size:1.3rem}.kiosk-status{z-index:30;background:color-mix(in oklab, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 18px;font-weight:560;display:flex;position:fixed;top:0;left:0;right:0}.kiosk-status .dot{background:var(--ok);border-radius:50%;width:10px;height:10px}.kiosk-status .dot.off{background:var(--bad)}.quote-doc{flex-direction:column;gap:22px;width:min(100%,780px);display:flex}.quote-sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-2);overflow:hidden}.quote-top{flex-direction:column;gap:10px;padding:32px 32px 24px;display:flex}.quote-top h1{font-size:var(--fs-2xl);letter-spacing:-.03em}.quote-meta{color:var(--ink-2);font-size:var(--fs-sm);flex-wrap:wrap;gap:8px 18px;display:flex}.quote-lines{padding:0 32px}.quote-lines table{margin:6px 0 4px}.quote-lines th{font-size:var(--fs-xs);color:var(--ink-3);text-align:left;border-bottom:1px solid var(--line);padding:10px 0;font-weight:600}.quote-lines td{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 0}.quote-lines th.num,.quote-lines td.num{padding-left:14px}.quote-total{background:var(--surface-2);padding:20px 32px 28px}.decide{z-index:5;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--sh-3);flex-direction:column;gap:14px;padding:18px 20px;display:flex;position:sticky;bottom:14px}.outcome{border-radius:var(--r-lg);font-weight:650;font-size:var(--fs-lg);align-items:center;gap:14px;padding:18px 22px;display:flex}.outcome.ok{background:var(--ok-soft);color:var(--ok)}.outcome.bad{background:var(--bad-soft);color:var(--bad)}@media (width<=640px){.public-card{border-radius:var(--r-lg);padding:22px}.quote-top,.quote-lines,.quote-total{padding-left:20px;padding-right:20px}.kiosk .public-card{padding:24px}.kiosk h1{font-size:2rem}}.quote-top .chip{align-self:flex-start}.quote-lines th.num{text-align:right}
