@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.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{--font-sans:"Public Sans Variable", system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-clock:2.75rem;--leading-tight:1.2;--leading-snug:1.4;--leading-base:1.5;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--duration-fast:.12s;--duration-base:.18s;--duration-slow:.26s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--target-size:44px;--measure:44rem}@media (prefers-reduced-motion:reduce){:root{--duration-fast:.01ms;--duration-base:.01ms;--duration-slow:.01ms}}html[data-surface=web]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#f5f5f7;--color-surface:#fff;--color-surface-raised:#fff;--color-text:#1a1a1f;--color-muted:#5b5e67;--color-faint:#8a8d96;--color-border:#e3e4e9;--color-border-input:#8a8d96;--color-accent:#6d28d9;--color-accent-text:#fff;--color-accent-soft:#f1ebfd;--color-accent-on-soft:#4c1d95;--color-running:#0f7b45;--color-running-soft:#e3f5ea;--color-paused:#8a5a00;--color-paused-soft:#fdf1d9;--color-on-stream:#0b6b8f;--color-on-stream-soft:#e1f3fa;--color-danger:#b42318;--color-danger-soft:#fdecea;--color-focus:#2563eb;--shadow-1:0 1px 2px #1011180f, 0 1px 1px #1011180a;--shadow-2:0 8px 24px #1011181a, 0 2px 6px #1011180f}@media (prefers-color-scheme:dark){html[data-surface=web]{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#121216;--color-surface:#1b1b21;--color-surface-raised:#23232b;--color-text:#ededf0;--color-muted:#a4a7b1;--color-faint:#787b85;--color-border:#2e2f37;--color-border-input:#707380;--color-accent:#b197fc;--color-accent-text:#1a1030;--color-accent-soft:#2a2240;--color-accent-on-soft:#d4c5ff;--color-running:#5fd39a;--color-running-soft:#15301f;--color-paused:#f2c66d;--color-paused-soft:#33280f;--color-on-stream:#67c6ea;--color-on-stream-soft:#0f2a36;--color-danger:#ff9b8f;--color-danger-soft:#3b1613;--color-focus:#93c5fd;--shadow-1:none;--shadow-2:none}}@media (width<=639px){html[data-surface=web]{--text-clock:2.25rem}}html[data-surface=web] *,html[data-surface=web] :before,html[data-surface=web] :after{box-sizing:border-box}html[data-surface=web] body{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}html[data-surface=web] h1,html[data-surface=web] h2,html[data-surface=web] h3{margin:0 0 var(--space-3);line-height:var(--leading-tight);font-weight:var(--weight-semibold);letter-spacing:-.01em}html[data-surface=web] h1{font-size:var(--text-2xl)}html[data-surface=web] h2{font-size:var(--text-xl)}html[data-surface=web] h3{font-size:var(--text-lg)}html[data-surface=web] p{margin:0 0 var(--space-3)}html[data-surface=web] a{color:var(--color-accent);text-underline-offset:.15em}html[data-surface=web] :focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}html[data-surface=web] .visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html[data-surface=web] .skip-link{left:var(--space-2);z-index:10;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-2);position:absolute;top:-100px}html[data-surface=web] .skip-link:focus{top:var(--space-2)}html[data-surface=web] .field-hint,html[data-surface=web] .muted{color:var(--color-muted)}html[data-surface=web] .field-hint{font-size:var(--text-sm)}html[data-surface=web] .dev-detail{white-space:pre-wrap;font-size:var(--text-xs);color:var(--color-muted)}html[data-surface=web] button,html[data-surface=web] input,html[data-surface=web] select{font:inherit}html[data-surface=web] button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target-size);min-width:var(--target-size);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);display:inline-flex}html[data-surface=web] button:hover:not(:disabled){background:var(--color-bg)}html[data-surface=web] button:active{transform:scale(.98)}html[data-surface=web] button:disabled{cursor:not-allowed;color:var(--color-muted);border-color:var(--color-border);background:var(--color-bg);transform:none}html[data-surface=web] .button-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text);font-weight:var(--weight-semibold)}html[data-surface=web] .button-primary:hover:not(:disabled){background:var(--color-accent-on-soft);border-color:var(--color-accent-on-soft)}html[data-surface=web] .button-primary:disabled{background:var(--color-accent-soft);border-color:var(--color-accent-soft);color:var(--color-accent-on-soft)}html[data-surface=web] .button-quiet{color:var(--color-muted);background:0 0;border-color:#0000}html[data-surface=web] .button-quiet:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-accent-on-soft)}html[data-surface=web] .button-quiet:disabled{background:0 0;border-color:#0000}html[data-surface=web] .button-danger{color:var(--color-danger)}html[data-surface=web] .button-danger:hover:not(:disabled){background:var(--color-danger-soft);border-color:var(--color-danger)}html[data-surface=web] .button-link{min-width:auto;padding:0 var(--space-1);color:var(--color-accent);text-underline-offset:.15em;background:0 0;border-color:#0000;text-decoration:underline}html[data-surface=web] .button-link:hover:not(:disabled){color:var(--color-accent-on-soft);background:0 0}html[data-surface=web] input[type=text],html[data-surface=web] input[type=email],html[data-surface=web] input[type=password]{width:100%;min-height:var(--target-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}html[data-surface=web] input::placeholder{color:var(--color-muted);opacity:1}html[data-surface=web] input:disabled{color:var(--color-muted);border-color:var(--color-border);background:var(--color-bg)}html[data-surface=web] input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--color-accent);margin:0}html[data-surface=web] label{font-weight:var(--weight-medium);display:block}html[data-surface=web] .choice{align-items:center;gap:var(--space-3);min-height:var(--target-size);font-weight:var(--weight-regular);cursor:pointer;display:flex}html[data-surface=web] .card{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}html[data-surface=web] .badge{align-items:center;gap:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--color-bg);border:1px solid var(--color-border);min-height:1.5rem;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-muted);white-space:nowrap;display:inline-flex}html[data-surface=web] .callout{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);animation:web-fade-in var(--duration-base) var(--ease-standard);border-left-width:4px}html[data-surface=web] .callout-error{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-text)}html[data-surface=web] .callout>p:last-child{margin-bottom:0}html[data-surface=web] .callout>p+.actions,html[data-surface=web] .callout>p+button{margin-top:var(--space-2)}html[data-surface=web] .icon{vertical-align:-.125em;flex:none;width:1em;height:1em}html[data-surface=web] .spinner{animation:.9s linear infinite web-spin}html[data-surface=web] .session-slot{align-items:center;display:inline-flex}html[data-surface=web] .read-error-compact{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-danger);display:inline-flex}html[data-surface=web] .inline-status{align-items:center;gap:var(--space-2);color:var(--color-muted);display:inline-flex}html[data-surface=web] .status-dot{border-radius:var(--radius-full);background:currentColor;width:.5rem;height:.5rem;display:inline-block}html[data-surface=web] .skeleton{gap:var(--space-3);opacity:0;animation:web-fade-in var(--duration-base) var(--ease-standard) .3s forwards;display:grid}html[data-surface=web] .skeleton-bar{border-radius:var(--radius-sm);background:var(--color-border);height:1rem}html[data-surface=web] .skeleton-bar-wide{width:70%}html[data-surface=web] .skeleton-bar-tall{width:40%;height:2.5rem}html[data-surface=web] dialog{max-width:min(28rem,100vw - 2rem);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-2)}html[data-surface=web] dialog[open]{animation:web-rise-in var(--duration-slow) var(--ease-standard)}html[data-surface=web] dialog::backdrop{background:#00000073}@keyframes web-fade-in{0%{opacity:0}to{opacity:1}}@keyframes web-rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes web-spin{to{transform:rotate(360deg)}}html[data-surface=web] .app-header{align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:nowrap;display:flex}html[data-surface=web] .brand{align-items:baseline;gap:var(--space-2);font-weight:var(--weight-bold);letter-spacing:-.01em;white-space:nowrap;margin:0;display:inline-flex}html[data-surface=web] .brand-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-muted)}html[data-surface=web] .app-nav{scrollbar-width:none;flex:0 4 auto;min-width:0;overflow-x:auto}html[data-surface=web] .app-nav::-webkit-scrollbar{display:none}html[data-surface=web] .app-nav ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}html[data-surface=web] .app-nav a{min-height:var(--target-size);padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-muted);font-weight:var(--weight-medium);white-space:nowrap;transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);align-items:center;text-decoration:none;display:inline-flex}html[data-surface=web] .app-nav a:hover{color:var(--color-text);background:var(--color-bg)}html[data-surface=web] .app-nav a[aria-current=page]{color:var(--color-text);background:var(--color-accent-soft)}html[data-surface=web] .app-nav a[aria-disabled=true]{cursor:not-allowed}html[data-surface=web] .nav-locked{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);color:var(--color-muted);flex:0 auto;overflow:hidden}html[data-surface=web] .spacer{flex:1}html[data-surface=web] .session-chip{align-items:center;gap:var(--space-2);min-height:2rem;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--color-bg);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-muted);white-space:nowrap;display:inline-flex}html[data-surface=web] .session-chip[data-open=true]{background:var(--color-running-soft);color:var(--color-running)}html[data-surface=web] .session-chip-detail{font-weight:var(--weight-regular)}html[data-surface=web] .session-slot,html[data-surface=web] .sync-status,html[data-surface=web] .sign-out{flex:none}html[data-surface=web] .sync-status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-muted);white-space:nowrap;display:inline-flex}html[data-surface=web] .sync-status[data-status=live]{color:var(--color-running)}html[data-surface=web] .sync-status[data-status=reconnecting]{color:var(--color-paused)}html[data-surface=web] .display-name{text-overflow:ellipsis;white-space:nowrap;min-width:5rem;max-width:12rem;font-size:var(--text-sm);color:var(--color-muted);flex:0 auto;overflow:hidden}@media (width<=1023px){html[data-surface=web] .brand-label,html[data-surface=web] .session-chip-detail{display:none}}@media (width<=767px){html[data-surface=web] .app-header{gap:var(--space-2);grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"brand nav nav nav""chip sync name signout";display:grid}html[data-surface=web] .brand{grid-area:brand}html[data-surface=web] .brand-label,html[data-surface=web] .session-chip-detail,html[data-surface=web] .spacer{display:none}html[data-surface=web] .app-nav{grid-area:nav}html[data-surface=web] .app-nav a:focus-visible{outline-offset:-3px}html[data-surface=web] .nav-locked{grid-column:1/-1}html[data-surface=web] .session-slot{grid-area:chip}html[data-surface=web] .sync-status{grid-area:sync}html[data-surface=web] .display-name{grid-area:name;max-width:none}html[data-surface=web] .sign-out{padding:0 var(--space-2);grid-area:signout}}html[data-surface=web] .page{max-width:var(--measure);padding:var(--space-6) var(--space-4) var(--space-12);margin:0 auto}html[data-surface=web] .page-narrow{max-width:28rem}html[data-surface=web] .stack{gap:var(--space-3);display:grid}html[data-surface=web] .card+.card,html[data-surface=web] .section+.section{margin-top:var(--space-4)}html[data-surface=web] .actions{gap:var(--space-2);flex-wrap:wrap;display:flex}html[data-surface=web] .signin{padding-top:var(--space-12);text-align:center}html[data-surface=web] .signin .brand{margin-bottom:var(--space-8);justify-content:center}html[data-surface=web] .signin-lede{margin:0 auto var(--space-6);max-width:24rem;color:var(--color-muted)}html[data-surface=web] .signin .callout{text-align:left;margin-top:var(--space-4)}html[data-surface=web] .task-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);overflow-wrap:anywhere}html[data-surface=web] .task-row{gap:var(--space-2);padding:var(--space-3) 0;border-top:1px solid var(--color-border);display:grid}html[data-surface=web] .task-list{margin:0;padding:0;list-style:none}html[data-surface=web] .task-clock{align-items:baseline;gap:var(--space-3);margin:0 0 var(--space-2);display:flex}html[data-surface=web] .clock-value{font-size:var(--text-clock);font-weight:var(--weight-semibold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}html[data-surface=web] .task-clock[data-running=false] .clock-value{color:var(--color-muted)}
