@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Geist-Regular.woff2)format("woff2")}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Geist-Medium.woff2)format("woff2")}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Geist-SemiBold.woff2)format("woff2")}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Geist-Bold.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrainsMono-400.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/JetBrainsMono-500.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/JetBrainsMono-600.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/JetBrainsMono-700.woff2)format("woff2")}:root{--app-vvh:100dvh;--app-vv-top:0px;--app-vv-left:0px;--sidebar-w:15rem;--topbar-h:3.5rem;--p-night-950:#0b0f14;--p-night-900:#131a22;--p-night-800:#1b232d;--p-line-700:#263141;--p-mist-100:#e6edf3;--p-mist-400:#94a3b8;--p-teal-70:#00b7a9;--p-green-80:#8bd28d;--p-amber-84:#efc469;--p-red-71:#e3827f;--p-ink-deep:#06121f;--p-ink-maroon:#1a0a0c;--p-red-950:#3b1418;--p-scrim-60:#0009;--color-bg:var(--p-night-950);--color-surface:var(--p-night-900);--color-surface-2:var(--p-night-800);--color-border:var(--p-line-700);--color-text:var(--p-mist-100);--color-text-dim:var(--p-mist-400);--color-accent:var(--p-teal-70);--color-ok:var(--p-green-80);--color-warn:var(--p-amber-84);--color-danger:var(--p-red-71);--color-on-accent:var(--p-ink-deep);--color-on-danger:var(--p-ink-maroon);--color-danger-bg:var(--p-red-950);--color-scrim:var(--p-scrim-60);--font-sans:"Geist", "Segoe UI", system-ui, -apple-system, "Noto Sans", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--c-bg:var(--color-bg);--c-surface:var(--color-surface);--c-surface-2:var(--color-surface-2);--c-border:var(--color-border);--c-text:var(--color-text);--c-text-dim:var(--color-text-dim);--c-accent:var(--color-accent);--c-danger:var(--color-danger);--c-danger-bg:var(--color-danger-bg);--c-warn:var(--color-warn);--c-ok:var(--color-ok);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root{--p-teal-70:lab(66.7625% -45.1118 -4.55691);--p-green-80:lab(78.2996% -33.5783 27.0245);--p-amber-84:lab(81.6454% 8.45215 50.9795);--p-red-71:lab(65.154% 37.9758 18.5018)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;height:var(--app-vvh);max-height:var(--app-vvh);grid-template-areas:"sidebar topbar""sidebar main";display:grid;overflow:hidden}.app-sidebar{background:var(--c-surface);border-right:1px solid var(--c-border);flex-direction:column;grid-area:sidebar;gap:.25rem;padding:.75rem;display:flex;overflow-y:auto}.app-sidebar__brand{letter-spacing:.02em;padding:.5rem .75rem 1rem;font-weight:700}.app-sidebar__version{color:var(--c-text-dim);margin-top:auto;padding:.5rem .75rem;font-size:.75rem}.app-nav-link{color:var(--c-text-dim);border-radius:.5rem;padding:.5rem .75rem;text-decoration:none;display:block}.app-nav-link:hover{background:var(--c-surface-2);color:var(--c-text)}.app-nav-link[data-status=active]{background:var(--c-surface-2);color:var(--c-accent);font-weight:600}.app-topbar{background:var(--c-surface);border-bottom:1px solid var(--c-border);grid-area:topbar;justify-content:space-between;align-items:center;gap:1rem;padding:0 1rem;display:flex}.app-topbar__title{margin:0;font-size:1rem;font-weight:600}.app-main{padding:1.25rem;padding-bottom:calc(1.25rem + var(--app-vv-top));grid-area:main;overflow-y:auto}.app-topbar__right{align-items:center;gap:.75rem;min-width:0;display:flex}.lang-switch{gap:.25rem;display:inline-flex}.lang-switch__btn{border:1px solid var(--c-border);color:var(--c-text-dim);font:inherit;cursor:pointer;background:0 0;border-radius:.375rem;padding:.25rem .6rem;font-size:.8rem}.lang-switch__btn[aria-pressed=true]{background:var(--c-surface-2);color:var(--c-accent);border-color:var(--c-accent)}.page-placeholder{border:1px dashed var(--c-border);background:var(--c-surface);border-radius:.75rem;padding:1.5rem}.page-placeholder h2{margin:0 0 .5rem;font-size:1.15rem}.page-placeholder p{color:var(--c-text-dim);margin:0}.sync-chip{border:1px solid var(--c-border);background:var(--c-surface-2);white-space:nowrap;border-radius:999px;align-items:center;gap:.5rem;min-width:0;padding:.2rem .5rem;font-size:.8rem;display:inline-flex}.sync-chip__state{align-items:center;gap:.4rem;min-width:0;display:inline-flex}.sync-chip__dot{background:var(--c-text-dim);border-radius:50%;flex:none;width:.5rem;height:.5rem}.sync-chip__label{text-overflow:ellipsis;overflow:hidden}.sync-chip__detail{color:var(--c-text-dim);text-overflow:ellipsis;overflow:hidden}.sync-chip__error{color:var(--c-danger)}.sync-chip[data-health=synced] .sync-chip__dot{background:var(--c-ok)}.sync-chip[data-health=syncing] .sync-chip__dot{background:var(--c-accent)}.sync-chip[data-health=never]{border-color:var(--c-warn)}.sync-chip[data-health=never] .sync-chip__dot{background:var(--c-warn)}.sync-chip[data-health=blocked]{border-color:var(--c-danger);background:var(--c-danger-bg);color:var(--c-danger)}.sync-chip[data-health=blocked] .sync-chip__dot,.sync-chip[data-health=blocked] .sync-chip__detail{background:var(--c-danger);color:var(--c-danger)}.sync-chip__btn{border:1px solid var(--c-border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.1rem .55rem;font-size:.75rem}.sync-chip__btn:disabled{opacity:.55;cursor:default}.sync-banner{border:1px solid var(--c-danger);background:var(--c-danger-bg);border-left-width:4px;border-radius:.75rem;margin:0 0 1.25rem;padding:1rem 1.15rem}.sync-banner__title{color:var(--c-danger);margin:0 0 .4rem;font-size:1.05rem}.sync-banner__body{max-width:70ch;margin:0 0 .75rem}.sync-banner__actions{flex-wrap:wrap;gap:.5rem;display:flex}.sync-banner__btn{border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);font:inherit;cursor:pointer;border-radius:.5rem;padding:.35rem .85rem}.sync-banner__btn--primary{border-color:var(--c-danger);background:var(--c-danger);color:var(--color-on-danger);font-weight:600}.sync-banner__hint{color:var(--c-text-dim);margin:.6rem 0 0;font-size:.8rem}.sync-panel__backdrop,.sync-confirm__backdrop{background:var(--color-scrim);z-index:40;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.sync-confirm__backdrop{z-index:50}.sync-panel{width:min(64rem,100%);max-height:calc(var(--app-vvh) - 2rem);border:1px solid var(--c-border);background:var(--c-surface);border-radius:.9rem;flex-direction:column;gap:.75rem;padding:1.15rem;display:flex;overflow:hidden}.sync-panel__head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.sync-panel__title{margin:0;font-size:1.1rem}.sync-panel__close,.sync-confirm__actions button,.sync-table__actions button{border:1px solid var(--c-border);background:var(--c-surface-2);color:var(--c-text);font:inherit;cursor:pointer;border-radius:.5rem;padding:.3rem .7rem;font-size:.85rem}.sync-table__actions button:disabled{opacity:.5;cursor:default}.sync-table__danger{border-color:var(--c-danger)!important;color:var(--c-danger)!important}.sync-panel__desc{color:var(--c-text-dim);max-width:80ch;margin:0}.sync-panel__error{color:var(--c-danger);margin:0}.sync-panel__empty{border:1px dashed var(--c-border);color:var(--c-text-dim);text-align:center;border-radius:.6rem;margin:0;padding:1.5rem}.sync-panel__scroll{overflow:auto}.sync-table{border-collapse:collapse;width:100%;font-size:.85rem}.sync-table th,.sync-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--c-border);padding:.5rem .6rem}.sync-table th{color:var(--c-text-dim);white-space:nowrap;font-weight:600}.sync-table__table{font-weight:600;display:block}.sync-table__uid,.sync-table__key{color:var(--c-text-dim);word-break:break-all;font-size:.75rem;display:block}.sync-table__err{color:var(--c-danger);max-width:26rem}.sync-table__actions{flex-wrap:wrap;gap:.35rem;display:flex}.sync-confirm{border:1px solid var(--c-danger);background:var(--c-surface);border-radius:.9rem;width:min(34rem,100%);padding:1.15rem}.sync-confirm h3{color:var(--c-danger);margin:0 0 .5rem}.sync-confirm p{word-break:break-word;margin:0 0 1rem}.sync-confirm__actions{justify-content:flex-end;gap:.5rem;display:flex}@media (max-width:48rem){.app-topbar__right{gap:.4rem}.sync-chip{font-size:.72rem}.sync-table,.sync-table th,.sync-table td{font-size:.78rem}.app-shell{grid-template-columns:1fr;grid-template-areas:"topbar""main""sidebar";grid-template-rows:var(--topbar-h) 1fr auto}.app-sidebar{border-right:none;border-top:1px solid var(--c-border);flex-direction:row;overflow-x:auto}.app-sidebar__brand{display:none}}.auth-screen{min-height:var(--app-vvh);place-items:center;padding:1.25rem;display:grid}.auth-card{border:1px solid var(--c-border);background:var(--c-surface);border-radius:1rem;width:min(30rem,100%);padding:1.75rem}.auth-card__title{margin:0 0 .35rem;font-size:1.35rem}.auth-card__subtitle{color:var(--c-text-dim);margin:0 0 1.25rem}.auth-card__note{color:var(--c-text-dim);margin:.85rem 0 0;font-size:.85rem}.auth-card__error{border:1px solid var(--c-danger);background:var(--c-surface-2);color:var(--c-text);word-break:break-word;border-radius:.65rem;margin:0 0 1rem;padding:.75rem .85rem;font-size:.9rem}.auth-card__degraded{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:.65rem;margin:0 0 1rem;padding:.75rem .85rem;font-size:.9rem}.auth-card__degraded p{color:var(--c-text-dim);margin:.4rem 0 0}.auth-card__actions{flex-wrap:wrap;gap:.6rem;display:flex}.auth-btn{border:1px solid var(--c-border);background:var(--c-surface-2);color:var(--c-text);font:inherit;cursor:pointer;border-radius:.6rem;padding:.6rem 1rem}.auth-btn:disabled{opacity:.55;cursor:not-allowed}.auth-btn--primary{border-color:var(--c-accent);background:var(--c-accent);color:var(--color-on-accent);font-weight:600}.auth-btn--ghost{background:0 0}.auth-btn--compact{padding:.3rem .7rem;font-size:.82rem}.auth-gate{color:var(--c-text-dim);padding:1.5rem}.auth-card__notice{border:1px solid var(--c-accent);background:var(--c-surface-2);border-radius:.65rem;margin:0 0 1rem;padding:.75rem .85rem;font-size:.9rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.list-skeleton{flex-direction:column;gap:.6rem;padding:.5rem 0;display:flex}.list-skeleton__row{grid-template-columns:2fr 1fr 1fr .6fr;align-items:center;gap:.75rem;display:grid}.skeleton{background:var(--c-surface-2,#1b2230);background-image:linear-gradient(90deg, var(--c-surface-2,#1b2230) 0%, var(--c-border,#2a3346) 50%, var(--c-surface-2,#1b2230) 100%);background-size:200% 100%;border-radius:.4rem;height:1rem;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.skeleton--cell{height:1rem}.skeleton--narrow{width:60%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background-image:none;background:var(--c-surface-2,#1b2230);animation:none}}.error-state{border:1px solid var(--c-danger,#e0556b);background:var(--color-danger-bg,#2a1418);color:var(--c-text);border-radius:.7rem;flex-direction:column;gap:.6rem;padding:1.25rem;display:flex}.error-state__title{color:var(--c-danger,#e0556b);margin:0;font-size:1.05rem;font-weight:700}.error-state__message{color:var(--c-text-dim);margin:0}.error-state__details{flex-direction:column;gap:.4rem;display:flex}.error-state__details-toggle{border:1px solid var(--c-border);color:var(--c-text-dim);cursor:pointer;background:0 0;border-radius:.45rem;align-self:flex-start;padding:.25rem .6rem;font-size:.82rem}.error-state__details-body{white-space:pre-wrap;word-break:break-word;background:var(--c-surface);border:1px solid var(--c-border);max-height:16rem;color:var(--c-text-dim);border-radius:.45rem;margin:0;padding:.6rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;overflow:auto}.error-state__retry{border:1px solid var(--c-accent,#4fd1c5);background:var(--c-accent,#4fd1c5);color:var(--color-on-accent,#06231f);cursor:pointer;border-radius:.5rem;align-self:flex-start;padding:.5rem 1.1rem;font-weight:600}.error-state__retry:hover{filter:brightness(1.08)}.page-dashboard{flex-direction:column;gap:1.75rem;max-width:72rem;display:flex}.page-dashboard__header{border-bottom:1px solid color-mix(in oklab, var(--color-border) 70%, transparent);flex-direction:column;gap:.35rem;padding-bottom:.25rem;display:flex}.page-dashboard__title{letter-spacing:-.02em;color:var(--color-text);margin:0;font-size:1.55rem;font-weight:600}.page-dashboard__lead{max-width:42rem;color:var(--color-text-dim);margin:0;font-size:.95rem;line-height:1.45}.page-dashboard__section{flex-direction:column;gap:.75rem;display:flex}.page-dashboard__section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-dim);margin:0;font-size:.78rem;font-weight:600}.dashboard-first-run{background:linear-gradient(135deg, color-mix(in oklab, var(--color-surface) 92%, var(--color-accent) 8%), var(--color-surface));border:1px solid color-mix(in oklab, var(--color-border) 80%, var(--color-accent) 20%);border-radius:.35rem;padding:1.25rem 1.35rem;animation:.42s ease-out both dashboard-first-run-in}@keyframes dashboard-first-run-in{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}.dashboard-first-run__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .35rem;font-size:.72rem;font-weight:600}.dashboard-first-run__title{letter-spacing:-.01em;color:var(--color-text);margin:0 0 .4rem;font-size:1.15rem;font-weight:600}.dashboard-first-run__hint,.dashboard-first-run__briefing{color:var(--color-text-dim);max-width:48rem;margin:0;font-size:.9rem;line-height:1.45}.dashboard-first-run__steps{color:var(--color-text);flex-direction:column;gap:.45rem;margin:.9rem 0;padding-left:1.15rem;display:flex}.dashboard-first-run__link{color:var(--color-text);border-bottom:1px solid color-mix(in oklab, var(--color-accent) 55%, transparent);text-decoration:none;transition:border-color .16s,color .16s}.dashboard-first-run__link:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.dashboard-first-run__briefing{margin-top:.25rem;font-size:.85rem}.dashboard-briefing{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.35rem;flex-direction:column;gap:.75rem;padding:1.15rem 1.25rem;display:flex}.dashboard-briefing__header{flex-direction:column;gap:.3rem;display:flex}.dashboard-briefing__title{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:600}.dashboard-briefing__lead,.dashboard-briefing__scope,.dashboard-briefing__empty p{color:var(--color-text-dim);margin:0;font-size:.9rem;line-height:1.45}.dashboard-briefing__empty{flex-direction:column;gap:.25rem;padding:.65rem 0;display:flex}.dashboard-briefing__empty-title{color:var(--color-text);margin:0;font-weight:500}.dashboard-briefing__run{border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-on-accent);font:inherit;cursor:pointer;border-radius:.4rem;align-self:flex-start;padding:.45rem 1rem;font-size:.9rem;font-weight:600;transition:filter .16s}.dashboard-briefing__run:hover{filter:brightness(1.06)}.dashboard-briefing__run--secondary{color:var(--color-accent);background:0 0}.dashboard-briefing__busy{color:var(--color-accent);margin:0;font-size:.9rem}.dashboard-briefing__error{color:var(--color-danger);margin:0;font-size:.9rem}.dashboard-briefing__output{white-space:pre-wrap;color:var(--color-text);max-width:52rem;margin:0;font-size:.95rem;line-height:1.55;animation:.28s ease-out both dashboard-briefing-fade}@keyframes dashboard-briefing-fade{0%{opacity:.35}to{opacity:1}}@media (prefers-reduced-motion:reduce){.dashboard-first-run,.dashboard-briefing__output{animation:none}}
