.lp{--lp-bg: #f8fafc;--lp-surface: #ffffff;--lp-surface-2: #f1f5f9;--lp-ink: #0f172a;--lp-muted: #475569;--lp-subtle: #64748b;--lp-line: #e2e8f0;--lp-accent: #1e3a8a;--lp-accent-text: #1e3a8a;--lp-accent-hover: #172554;--lp-accent-soft: #eef3fb;--lp-on-accent: #ffffff;--lp-panel: #0f1d4a;--lp-on-panel: #e8eefb;--lp-on-panel-muted: #b6c3e0;--lp-shot-shadow: 0 1px 2px rgb(15 23 42 / .06), 0 24px 60px -24px rgb(15 23 42 / .28);--lp-ease: cubic-bezier(.23, 1, .32, 1);min-height:100dvh;background:var(--lp-bg);color:var(--lp-ink);font-family:var(--font-sans);font-size:16px;line-height:1.55;overflow-x:clip}@media(prefers-color-scheme:dark){.lp{--lp-bg: #0a1022;--lp-surface: #111a30;--lp-surface-2: #16213b;--lp-ink: #e7ecf5;--lp-muted: #a7b3c8;--lp-subtle: #93a1b8;--lp-line: #22304c;--lp-accent: #2d4fb8;--lp-accent-text: #93b4ff;--lp-accent-hover: #3a5fd0;--lp-accent-soft: #14224a;--lp-panel: #13265c;--lp-shot-shadow: 0 1px 2px rgb(0 0 0 / .3), 0 28px 70px -24px rgb(0 0 0 / .7);color-scheme:dark}}.lp ::selection{background:#1e3a8a2e}.lp a:where(:not(.lp-btn)){color:inherit}.lp a:hover{text-decoration:none}.lp :focus-visible{outline:2px solid var(--lp-accent-text);outline-offset:3px;border-radius:6px}.lp-wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 24px}.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:8px;border:1px solid transparent;font:600 15px/1 var(--font-sans);white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .16s var(--lp-ease)}.lp-btn:active{transform:scale(.97)}.lp-btn--primary{background:var(--lp-accent);color:var(--lp-on-accent)}.lp-btn--primary:hover{background:var(--lp-accent-hover)}.lp-btn--secondary{background:var(--lp-surface);color:var(--lp-ink);border-color:var(--lp-line)}.lp-btn--secondary:hover{border-color:var(--lp-subtle)}.lp-btn--quiet{background:transparent;color:var(--lp-muted);height:36px;padding:0 10px;font-size:14px}.lp-btn--quiet:hover{color:var(--lp-ink)}.lp-btn--sm{height:36px;padding:0 14px;font-size:14px}.lp-btn .lp-arrow{transition:transform .2s var(--lp-ease)}@media(hover:hover)and (pointer:fine){.lp-btn:hover .lp-arrow{transform:translate(3px)}}.landing-nav,.lp-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding:0 24px;background:color-mix(in srgb,var(--lp-bg, #f8fafc) 88%,transparent);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--lp-line, #e2e8f0)}.lp-nav__inner{width:100%;max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.landing-brand,.lp-brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.01em;color:inherit}.landing-actions,.lp-nav__actions,.lp-nav__links{display:flex;align-items:center;gap:4px}@media(max-width:720px){.lp-nav__links{display:none}}.lp-hero{padding:80px 0 0}.lp-hero__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:56px}.lp-hero__copy{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px 56px;align-items:end}.lp-hero__copy h1{grid-column:1;grid-row:1 / span 2}.lp-hero__copy .lp-hero__sub,.lp-hero__copy .lp-hero__ctas{grid-column:2;margin:0}.lp-hero h1{margin:0;font-size:clamp(42px,5.6vw,68px);line-height:1.02;letter-spacing:-.04em;font-weight:700;text-wrap:balance}.lp-hero h1 span{color:var(--lp-accent-text)}.lp-hero__sub{margin:22px 0 0;max-width:40ch;font-size:18px;line-height:1.55;color:var(--lp-muted);text-wrap:pretty}.lp-hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.lp-hero__note{margin:14px 0 0;font-size:13px;color:var(--lp-subtle)}.lp-shot{margin:0;border-radius:14px;overflow:hidden;background:var(--lp-surface);border:1px solid var(--lp-line);box-shadow:var(--lp-shot-shadow)}.lp-shot__bar{display:flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-bottom:1px solid var(--lp-line);background:var(--lp-surface-2)}.lp-shot__bar i{width:9px;height:9px;border-radius:999px;background:var(--lp-line)}.lp-shot__bar span{margin-left:10px;font-size:12px;color:var(--lp-subtle)}.lp-shot img{display:block;width:100%;height:auto}.lp-hero__shot{width:100%}@media(max-width:900px){.lp-hero{padding-top:48px}.lp-hero__grid{gap:36px}.lp-hero__copy{grid-template-columns:1fr}.lp-hero__copy h1,.lp-hero__copy .lp-hero__sub,.lp-hero__copy .lp-hero__ctas{grid-column:1;grid-row:auto}.lp-hero__copy .lp-hero__sub{margin-top:6px}}@media(prefers-reduced-motion:no-preference){.lp-hero__copy>*{animation:lp-rise .7s var(--lp-ease) both}.lp-hero__copy>*:nth-child(2){animation-delay:60ms}.lp-hero__copy>*:nth-child(3){animation-delay:.12s}.lp-hero__copy>*:nth-child(4){animation-delay:.18s}.lp-hero__shot{animation:lp-shot .9s var(--lp-ease) .16s both}}@keyframes lp-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes lp-shot{0%{opacity:0;transform:translateY(24px) scale(.985)}}.lp-section{padding:96px 0 0}.lp-section__head{max-width:640px;margin-bottom:36px}.lp-section__head h2{margin:0;font-size:clamp(28px,3.4vw,40px);line-height:1.1;letter-spacing:-.03em;font-weight:700;text-wrap:balance}.lp-section__head p{margin:14px 0 0;font-size:17px;color:var(--lp-muted);max-width:56ch}.lp-bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.lp-tile{grid-column:span 2;display:flex;flex-direction:column;gap:10px;padding:26px;border-radius:14px;background:var(--lp-surface);border:1px solid var(--lp-line)}.lp-tile h3{margin:0;font-size:18px;letter-spacing:-.01em}.lp-tile p{margin:0;color:var(--lp-muted);font-size:15px;line-height:1.55;max-width:52ch}.lp-tile__icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--lp-accent-soft);color:var(--lp-accent-text);margin-bottom:6px}.lp-tile--wide{grid-column:span 4}.lp-tile--half{grid-column:span 3}.lp-tile--panel{background:var(--lp-panel);border-color:transparent;color:var(--lp-on-panel)}.lp-tile--panel p{color:var(--lp-on-panel-muted)}.lp-tile--panel .lp-tile__icon{background:#ffffff1a;color:#fff}.lp-tile--soft{background:var(--lp-accent-soft);border-color:transparent}.lp-tile--soft .lp-tile__icon{background:var(--lp-surface)}.lp-tile__tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.lp-tool{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:8px;font-size:13px;font-weight:600;background:var(--lp-surface-2);color:var(--lp-ink)}.lp-tile--panel .lp-tool{background:#ffffff1a;color:#fff}@media(max-width:900px){.lp-bento{grid-template-columns:1fr 1fr}.lp-tile,.lp-tile--wide,.lp-tile--half{grid-column:span 2}}.lp-compare{border:1px solid var(--lp-line);border-radius:14px;overflow:hidden;background:var(--lp-surface)}.lp-compare__scroll{overflow-x:auto}.lp-compare table{width:100%;min-width:640px;border-collapse:collapse;font-size:15px}.lp-compare th,.lp-compare td{padding:14px 18px;text-align:center;border-top:1px solid var(--lp-line)}.lp-compare thead th{border-top:0;font-size:13px;font-weight:600;color:var(--lp-subtle);background:var(--lp-surface-2)}.lp-compare th:first-child,.lp-compare td:first-child{text-align:left}.lp-compare .is-us{background:var(--lp-accent-soft);color:var(--lp-accent-text);font-weight:700}.lp-compare thead .is-us,.lp-compare .lp-yes{color:var(--lp-accent-text)}.lp-compare .lp-no{color:var(--lp-subtle)}.lp-compare .lp-partial{font-size:13px;color:var(--lp-muted)}.lp-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lp-plan{display:flex;flex-direction:column;padding:28px;border-radius:14px;background:var(--lp-surface);border:1px solid var(--lp-line)}.lp-plan--team{border-color:var(--lp-accent);box-shadow:0 0 0 1px var(--lp-accent) inset}.lp-plan__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.lp-plan__head h3{margin:0;font-size:20px;letter-spacing:-.01em}.lp-plan__tag{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--lp-accent-soft);color:var(--lp-accent-text)}.lp-plan__price{margin:18px 0 0;font-size:48px;font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}.lp-plan__price span{font-size:15px;font-weight:500;letter-spacing:0;color:var(--lp-muted);margin-left:4px}.lp-plan__who{margin:10px 0 0;color:var(--lp-muted);font-weight:500}.lp-plan ul{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px}.lp-plan li{display:grid;grid-template-columns:18px 1fr;gap:10px;font-size:15px;line-height:1.45}.lp-plan li svg{margin-top:3px;color:var(--lp-accent-text)}.lp-plan__cta{margin-top:auto;padding-top:26px}.lp-plan__cta .lp-btn{width:100%}.lp-fine{margin:18px 0 0;font-size:13px;line-height:1.6;color:var(--lp-subtle);max-width:78ch}@media(max-width:760px){.lp-plans{grid-template-columns:1fr}}.lp-close{margin-top:96px;padding:56px 48px;border-radius:18px;background:var(--lp-panel);color:var(--lp-on-panel);display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}.lp-close h2{margin:0;font-size:clamp(26px,3vw,36px);letter-spacing:-.03em;line-height:1.1;max-width:20ch}.lp-close p{margin:10px 0 0;color:var(--lp-on-panel-muted);max-width:44ch}.lp-close .lp-btn--primary{background:#fff;color:#0f1d4a}.lp-close .lp-btn--primary:hover{background:#e8eefb}.lp-close .lp-btn--secondary{background:transparent;color:#fff;border-color:#ffffff4d}.lp-close .lp-btn--secondary:hover{border-color:#fff9}@media(max-width:640px){.lp-close{padding:36px 24px}}.lp-footer{margin-top:64px;padding:28px 0 40px;border-top:1px solid var(--lp-line);display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;font-size:14px;color:var(--lp-subtle)}.lp-footer nav{display:flex;flex-wrap:wrap;gap:8px 20px}.lp-footer a:hover{color:var(--lp-ink)}@media(prefers-reduced-motion:reduce){.lp-btn,.lp-btn .lp-arrow{transition:none}.lp-btn:active{transform:none}}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary: #1e3a8a;--primary-hover: #172554;--primary-subtle: #eff4fb;--neutral-900: #0f172a;--neutral-700: #334155;--neutral-500: #64748b;--neutral-300: #cbd5e1;--neutral-200: #e2e8f0;--neutral-100: #f1f5f9;--neutral-50: #f8fafc;--white: #ffffff;--status-done: #15803d;--status-progress: #1d4ed8;--status-risk: #b45309;--status-overdue: #b91c1c;--status-idle: #64748b;--tint-done: #15803d1f;--tint-progress: #1d4ed81f;--tint-risk: #b453091f;--tint-overdue: #b91c1c1f;--tint-idle: #64748b1f;--font-sans: "Geist Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono Variable", "SF Mono", "Roboto Mono", ui-monospace, monospace;--ease-out: cubic-bezier(.23, 1, .32, 1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-base: 6px;--radius-sm: 4px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 8px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 24px rgba(15, 23, 42, .12)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:14px;color:var(--neutral-900);background:var(--neutral-50);-webkit-font-smoothing:antialiased;caret-color:var(--primary)}::selection{background:#1e3a8a29;color:var(--neutral-900)}html{scrollbar-color:var(--neutral-300) transparent}.t-display{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.025em}.t-h1{font-size:24px;font-weight:700;letter-spacing:-.02em}.t-h2{font-size:18px;font-weight:600;letter-spacing:-.01em}.t-body{font-size:14px;font-weight:400}.t-small{font-size:13px;font-weight:400}.t-tiny{font-size:12px;font-weight:500}.mono{font-family:var(--font-mono)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn{display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);font-family:var(--font-sans);font-size:13px;font-weight:600;border-radius:var(--radius-base);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .16s var(--ease-out)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{background:var(--neutral-200);color:var(--neutral-500);cursor:not-allowed;border-color:transparent}.btn--sm{height:28px;padding:0 var(--space-3);font-size:12px}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:#fff;color:var(--neutral-900);border-color:var(--neutral-300)}.btn--secondary:hover:not(:disabled){background:var(--neutral-100)}.btn--ghost{background:transparent;color:var(--neutral-700)}.btn--ghost:hover:not(:disabled){background:var(--neutral-100)}.btn--destructive{background:var(--status-overdue);color:#fff}.btn--destructive:hover:not(:disabled){filter:brightness(.9)}.btn__spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font-size:12px;font-weight:500;color:var(--neutral-700)}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap .input-icon{position:absolute;left:var(--space-3);color:var(--neutral-500);pointer-events:none}.input{width:100%;height:36px;padding:0 var(--space-3);font-family:var(--font-sans);font-size:13px;color:var(--neutral-900);background:#fff;border:1px solid var(--neutral-300);border-radius:var(--radius-base)}.input--search{padding-left:34px}.input:focus{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:-1px}.input:disabled{background:var(--neutral-100);color:var(--neutral-500)}.input--error{border-color:var(--status-overdue)}.field__error{font-size:12px;color:var(--status-overdue);display:flex;gap:var(--space-1);align-items:center}.input--inline{border-color:transparent;background:transparent;height:30px}.input--inline:hover{border-color:var(--neutral-200)}textarea.input{height:auto;padding:var(--space-3);resize:vertical;line-height:1.5}.badge{display:inline-flex;align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:12px;font-weight:500;line-height:1;white-space:nowrap}.badge--button{cursor:pointer;border:1px solid transparent}.badge--button:hover{border-color:currentColor}.badge__icon{flex:none}.badge--not_started{background:var(--tint-idle);color:var(--status-idle)}.badge--in_progress{background:var(--tint-progress);color:var(--status-progress)}.badge--at_risk{background:var(--tint-risk);color:var(--status-risk)}.badge--done{background:var(--tint-done);color:var(--status-done)}.badge--overdue{background:var(--tint-overdue);color:var(--status-overdue)}.table-wrap{border:1px solid var(--neutral-200);border-radius:var(--radius-base);overflow:hidden;background:#fff}table.dt{width:100%;border-collapse:collapse}.dt thead th{text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--neutral-500);background:var(--neutral-100);padding:var(--space-3);border-bottom:1px solid var(--neutral-200);-webkit-user-select:none;user-select:none}.dt thead th.sortable{cursor:pointer}.dt tbody td{padding:var(--space-3);border-bottom:1px solid var(--neutral-200);font-size:13px;vertical-align:middle;font-variant-numeric:tabular-nums}.dt tbody tr{background:#fff}.dt tbody tr:hover{background:var(--neutral-100)}.dt tbody tr.selected{background:var(--primary-subtle)}.dt tbody tr.overdue-row{background:#fef6f6}.dt tbody tr.overdue-row:hover{background:#fdeeee}.dt .num{font-family:var(--font-mono);text-align:right}.dt-empty{padding:var(--space-12);text-align:center;color:var(--neutral-500)}.dt-empty__title{color:var(--neutral-700);font-weight:600;margin-bottom:var(--space-2)}.skeleton{height:12px;background:var(--neutral-200);border-radius:4px;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.metric{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-base);padding:var(--space-5);box-shadow:var(--shadow-sm);min-width:0}.metric--alert{border-color:#f3c4c4;background:snow}.metric--alert .metric__value{color:var(--status-overdue)}.metric--clickable{cursor:pointer}.metric--clickable:hover{background:var(--neutral-100)}.metric__label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:var(--neutral-500)}.metric__value{font-size:30px;font-weight:700;color:var(--neutral-900);margin-top:var(--space-2);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.metric__trend{font-size:13px;margin-top:var(--space-1);display:flex;align-items:center;gap:var(--space-1)}.app-shell{display:grid;grid-template-columns:260px 1fr;height:100vh}.sidebar{background:#fff;border-right:1px solid var(--neutral-200);display:flex;flex-direction:column;overflow-y:auto}.sidebar__brand{padding:var(--space-5) var(--space-4);display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--neutral-200)}.sidebar__logo{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700}.sidebar__section{padding:var(--space-3) var(--space-2)}.sidebar__section-label{font-size:12px;font-weight:600;text-transform:uppercase;color:var(--neutral-500);padding:var(--space-2) var(--space-3);letter-spacing:.03em}.nav-item{display:flex;align-items:center;gap:var(--space-3);height:36px;padding:0 var(--space-3);border-radius:var(--radius-base);color:var(--neutral-700);cursor:pointer;font-size:13px;font-weight:500;transition:background-color .12s ease,color .12s ease}.nav-item:hover{background:var(--neutral-100);color:var(--neutral-900);text-decoration:none}.nav-item.active{color:var(--primary);background:var(--primary-subtle);font-weight:600}.nav-icon{width:20px;display:inline-grid;place-items:center;flex:none;color:var(--neutral-500)}.nav-item:hover .nav-icon{color:var(--neutral-700)}.nav-item.active .nav-icon{color:var(--primary)}.main{overflow-y:auto;padding:var(--space-8)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);gap:var(--space-4)}.row{display:flex;gap:var(--space-3);align-items:center}.grid-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.panel{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-base);padding:var(--space-5);box-shadow:var(--shadow-sm)}.tree-row{display:flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--neutral-700)}.tree-row:hover{background:var(--neutral-100)}.tree-chevron{transition:transform .16s var(--ease-out);display:inline-block;width:14px;color:var(--neutral-500)}.tree-chevron.open{transform:rotate(90deg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:grid;place-items:center;z-index:50;padding:var(--space-4);transition:opacity .2s ease}.modal{background:#fff;border-radius:var(--radius-base);box-shadow:var(--shadow-lg);width:100%;max-width:520px;padding:var(--space-6);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}@starting-style{.modal-overlay{opacity:0}.modal{opacity:0;transform:scale(.96)}}.modal__title{margin:0 0 var(--space-4)}.modal__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6)}.chat{display:flex;flex-direction:column;height:calc(100vh - 64px);max-width:860px;margin:0 auto}.chat__messages{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.msg{max-width:640px;padding:var(--space-3);border-radius:8px;font-size:13px;line-height:1.55;white-space:pre-wrap}.msg--user{align-self:flex-end;background:var(--primary-subtle);color:var(--neutral-900)}.msg--assistant{align-self:flex-start;background:#fff;border:1px solid var(--neutral-200)}.msg__sources{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.source-chip{display:inline-flex;align-items:center;gap:var(--space-1);font-size:12px;padding:2px var(--space-2);background:var(--neutral-100);border-radius:999px;border:1px solid var(--neutral-200)}.chat__composer{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--neutral-200);background:#fff}.suggested{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start;color:var(--neutral-500)}.suggested button{background:var(--neutral-100);border:1px solid var(--neutral-200);border-radius:var(--radius-base);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:13px;color:var(--neutral-700)}.suggested button:hover{background:var(--neutral-200)}.muted{color:var(--neutral-500)}.stack{display:flex;flex-direction:column}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.spread{display:flex;justify-content:space-between;align-items:center}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-base);font-size:13px}.banner--warn{background:var(--tint-risk);color:var(--status-risk)}.banner--error{background:var(--tint-overdue);color:var(--status-overdue)}.tag-link{color:var(--primary);cursor:pointer}a.btn{text-decoration:none}.zap-step{display:grid;grid-template-columns:28px 1fr;gap:var(--space-3);padding:var(--space-4) 0;border-top:1px solid var(--neutral-200)}.zap-step:first-of-type{margin-top:var(--space-3)}.zap-step__num{width:28px;height:28px;border-radius:999px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.zap-step__body{min-width:0}.zap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-3);align-items:start}.zap-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--neutral-200);border-radius:var(--radius-base);background:var(--neutral-50)}.zap-card:has(details[open]){grid-column:1 / -1;background:#fff;border-color:var(--neutral-300)}.zap-card__steps summary{cursor:pointer;color:var(--primary);font-weight:600;width:fit-content}.zap-section-label{margin:var(--space-4) 0 var(--space-2);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--neutral-500)}.zap-before ul{margin:0;padding-left:18px;line-height:1.6}.zap-before li+li{margin-top:2px}.zap-recipe{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.zap-recipe-step{border:1px solid var(--neutral-200);border-radius:var(--radius-base);background:#fff;padding:var(--space-3)}.zap-recipe-step__head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.zap-recipe-step__num{width:22px;height:22px;border-radius:999px;background:var(--neutral-900);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}.zap-kind{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--neutral-100);color:var(--neutral-700)}.zap-kind--trigger{background:#fff1e6;color:#9a3412}.zap-kind--action{background:#e8efff;color:#1e3a8a}.zap-kind--search{background:#eef6ee;color:#166534}.zap-kind--filter{background:#f3effd;color:#5b21b6}.zap-fields{margin:var(--space-3) 0 0;display:grid;gap:6px}.zap-field{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:var(--space-3);align-items:baseline;padding:6px 0;border-top:1px dashed var(--neutral-200)}.zap-field dt{margin:0;font-weight:600;color:var(--neutral-700)}.zap-field dd{margin:0;min-width:0}.zap-value{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.zap-value--stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.zap-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 3px;border-radius:6px;background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;font-size:12px;font-weight:600}.zap-chip__step{width:16px;height:16px;border-radius:4px;background:#ea580c;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:700}.zap-recipe-step__after{margin:var(--space-2) 0 0;color:var(--neutral-600, #475569)}.zap-finish{margin:var(--space-3) 0 0}.zap-card--soon{background:#fff}.zap-card__mistakes{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-base);background:#fff7e6;color:#7a4b00;line-height:1.5}.zap-card__mistakes ul{margin:4px 0 0;padding-left:18px}.zap-card__mistakes li+li{margin-top:4px}@media(max-width:640px){.zap-field{grid-template-columns:1fr;gap:2px}}.zap-copy{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:var(--space-2);align-items:center}.zap-copy__value{font-size:12px;padding:4px 8px;background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:reduce){.btn:active:not(:disabled){transform:none}@starting-style{.modal{transform:none}}.skeleton,.btn__spinner{animation-duration:1.6s}}
