@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}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.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{--ink:#121212;--ink-hover:#2e2e2e;--muted:#575757;--subtle:#6b6b6b;--faint:#c4c4bf;--line:#e4e4e0;--line-soft:#ededea;--ground:#f6f6f4;--surface:#fff;--hover:#f0f0ed;--selected:#ededea;--run:#1e7a4e;--over:#c8651b;--danger:#b42318;--text-body:#2b2b2b;--avatar:#e6e6e2;--row-hover:#fafaf8;--chart-non:#c9c9c4;--idle:#a3a39e;--run-soft:#e3f1ea;--danger-soft:#fdf1f0;--on-ink-muted:#b5b5b0;--on-ink-tint:#ffffff24;--on-ink-tint-hover:#ffffff3d;--backdrop:#12121252;--glass:#f6f6f4db;--shadow-float:0 24px 64px -24px #1212122e, 0 2px 8px #1212120a;--chevron: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='%23575757' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--r-control:999px;--r-surface:16px;--control:44px;--font-display:"Bricolage Grotesque Variable", system-ui, sans-serif;--font-body:"Instrument Sans Variable", system-ui, sans-serif;--ease:cubic-bezier(.2, 0, 0, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--ink:#f2f2ef;--ink-hover:#d6d6d2;--muted:#a8a8a3;--subtle:#8f8f8a;--faint:#4d4d4a;--line:#2e2e2c;--line-soft:#252523;--ground:#111110;--surface:#1a1a19;--hover:#242422;--selected:#2b2b29;--run:#43b97f;--over:#ec8a3f;--danger:#f2705f;--text-body:#d9d9d5;--avatar:#2f2f2d;--row-hover:#1f1f1e;--chart-non:#4d4d4a;--idle:#6e6e6a;--run-soft:#17301f;--danger-soft:#331b18;--on-ink-muted:#575757;--on-ink-tint:#12121214;--on-ink-tint-hover:#12121224;--backdrop:#0009;--glass:#111110db;--shadow-float:0 24px 64px -24px #0009, 0 2px 8px #0000003d;--chevron: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='%23a8a8a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:24px}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.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}.t-title{font-family:var(--font-display);letter-spacing:-.5px;font-size:32px;font-weight:700;line-height:40px}.t-section{font-family:var(--font-display);font-size:18px;font-weight:600;line-height:28px}.t-caption{color:var(--muted);font-size:13px;line-height:20px}.t-small{font-size:14px;line-height:20px}.num{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:600}.num-lg{font-size:28px;line-height:36px}.muted{color:var(--muted)}.app{min-height:100vh;display:flex}.sidebar{width:248px;height:100vh;padding:var(--s5) var(--s4);background:var(--surface);border-right:1px solid var(--line);gap:var(--s6);flex-direction:column;flex:none;display:flex;position:sticky;top:0}.main{min-width:0;padding:var(--s6) var(--s7) var(--s8);flex:1}.container{gap:var(--s6);flex-direction:column;max-width:1080px;margin:0 auto;display:flex}.page-head{justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;min-height:48px;display:flex}.row{align-items:center;gap:var(--s2);display:flex}.wrap{flex-wrap:wrap}.stack{gap:var(--s3);flex-direction:column;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:var(--s4);padding:0 var(--s2);display:flex}.grid-stats{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.topbar,.tabbar{display:none}@media (width<=767px){.sidebar{display:none}.main{padding:var(--s4) var(--s4) 112px}.container{gap:var(--s5)}.topbar{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--surface);border-bottom:1px solid var(--line);z-index:10;display:flex;position:sticky;top:0}.tabbar{z-index:10;padding:var(--s2) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.app{flex-direction:column}}.brand{align-items:center;gap:var(--s3);padding:0 var(--s2);text-decoration:none;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.5px;font-size:22px;font-weight:700;line-height:28px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-surface)}.card-pad{padding:var(--s5)}.stat{gap:var(--s2);flex-direction:column;display:flex}.list>*+*{border-top:1px solid var(--line-soft)}.btn{justify-content:center;align-items:center;gap:var(--s2);height:var(--control);border-radius:var(--r-control);font-family:var(--font-display);white-space:nowrap;cursor:pointer;transition:background-color .12s var(--ease), border-color .12s var(--ease);border:1px solid #0000;padding:0 20px;font-size:15px;font-weight:600;line-height:20px;text-decoration:none;display:inline-flex}.btn:disabled{cursor:default;opacity:.55}.btn-primary:disabled{opacity:1;background:var(--selected);color:var(--subtle)}.btn-primary{background:var(--ink);color:var(--surface)}.btn-primary:hover:not(:disabled){background:var(--ink-hover)}.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:var(--hover)}.btn-ghost{color:var(--muted);background:0 0}.btn-danger{background:var(--surface);border-color:var(--line);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-lg{height:48px;padding:0 var(--s5);font-size:16px}.btn-icon{width:var(--control);flex:none;padding:0}.btn-block{width:100%}.btn[aria-pressed=true].btn-toggle{background:var(--ink);border-color:var(--ink);color:var(--surface)}.btn[data-loading=true]{cursor:progress}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.segmented{gap:var(--s1);padding:var(--s1);background:var(--selected);border-radius:var(--r-control);display:inline-flex}.segmented button{height:36px;padding:0 var(--s4);border-radius:var(--r-control);color:var(--muted);cursor:pointer;transition:background-color .12s var(--ease);background:0 0;border:0;font-size:14px;font-weight:500}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink)}.nav{gap:var(--s1);flex-direction:column;display:flex}.nav-link{align-items:center;gap:var(--s3);min-height:var(--control);padding:0 var(--s3);border-radius:var(--r-control);color:var(--muted);font-family:var(--font-display);transition:background-color .12s var(--ease);font-size:15px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--hover)}.nav-link.active{background:var(--selected);color:var(--ink);font-weight:600}.tab-link{justify-content:center;align-items:center;gap:var(--s1);min-height:52px;color:var(--muted);flex-direction:column;font-size:12px;font-weight:500;line-height:16px;text-decoration:none;display:flex}.tab-link.active{color:var(--ink);font-weight:600}.user-chip{align-items:center;gap:var(--s3);padding:var(--s2);margin-top:auto;display:flex}.avatar{background:var(--avatar);border-radius:999px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:600;line-height:1;display:inline-flex}.field{gap:var(--s2);flex-direction:column;display:flex}.label{font-size:14px;font-weight:500;line-height:20px}.input,.select{height:var(--control);width:100%;padding:0 var(--s4);border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);transition:border-color .12s var(--ease);font-size:15px}.input:hover,.select:hover{border-color:var(--faint)}.input::placeholder{color:var(--subtle)}.select{appearance:none;background-image:var(--chevron);cursor:pointer;background-position:right 16px center;background-repeat:no-repeat;padding-right:40px}.select-pill{width:auto;height:var(--control);font-size:14px;font-weight:500}.dot{border-radius:999px;flex:none;width:10px;height:10px;display:inline-block}.project-select{align-items:center;display:inline-flex;position:relative}.project-select .dot{pointer-events:none;position:absolute;left:16px}.project-select .select{text-overflow:ellipsis;max-width:240px;padding-left:34px}.error{color:var(--danger);font-size:14px;line-height:20px}.timer-bar{align-items:center;gap:var(--s4);padding:var(--s3) var(--s3) var(--s3) var(--s5);flex-wrap:wrap;display:flex}.timer-input{background:0 0;border:0;flex:280px;min-width:0;height:48px;font-size:18px}.timer-input:focus-visible{outline:none}.timer-bar:focus-within:has(.timer-input:focus-visible){border-color:var(--ink)}.timer-input::placeholder{color:var(--subtle)}.timer-clock{text-align:right;min-width:112px;color:var(--subtle);font-size:24px;line-height:32px}.timer-clock.running{color:var(--run)}.entry{align-items:center;gap:var(--s4);padding:var(--s3) var(--s3) var(--s3) var(--s5);transition:background-color .12s var(--ease);flex-wrap:wrap;display:flex}.entry:hover{background:var(--row-hover)}.entry-desc{text-align:left;cursor:pointer;background:0 0;border:0;flex:240px;min-width:0;padding:0;font-weight:500}.entry-desc.empty{color:var(--subtle)}.entry-project{align-items:center;gap:var(--s2);flex:0 240px;min-width:0;font-size:14px;line-height:20px;display:flex}.entry-range{width:112px;color:var(--muted);font-size:13px;font-weight:500}.entry-duration{text-align:right;width:80px}.entry-actions{gap:var(--s1);display:flex}.bill-mark{justify-content:center;width:24px;display:inline-flex}@media (width<=767px){.entry{gap:var(--s1) var(--s3);padding:var(--s3) var(--s2) var(--s3) var(--s4);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"desc dur""proj actions";display:grid}.entry-desc{grid-area:desc}.entry-duration{width:auto;padding-right:var(--s3);grid-area:dur}.entry-project{grid-area:proj}.entry-actions{grid-area:actions}.entry-range,.bill-mark{display:none}.timer-bar{padding:var(--s4);gap:var(--s3)}.timer-input{height:var(--control);flex-basis:100%}.timer-bar>.row{flex-wrap:nowrap;flex:100%}.timer-bar .project-select{flex:1;min-width:0}.timer-bar .project-select .select{width:100%;max-width:none}.timer-clock{text-align:left;flex:1;font-size:28px;line-height:36px}}.list-row{align-items:center;gap:var(--s4);padding:var(--s3) var(--s3) var(--s3) var(--s5);flex-wrap:wrap;display:flex}.bar-track{background:var(--line-soft);border-radius:999px;height:6px;display:block;overflow:hidden}.bar-fill{background:var(--ink);height:100%;transition:width .24s var(--ease);border-radius:999px;display:block}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%;min-width:640px}.table th{padding:var(--s4);color:var(--muted);font-size:13px;font-weight:500;line-height:20px}.table td{padding:var(--s4);border-top:1px solid var(--line-soft);vertical-align:middle}.table th:first-child,.table td:first-child{padding-left:var(--s5)}.table th:last-child,.table td:last-child{padding-right:var(--s5)}.right{text-align:right}.chart{gap:var(--s4);display:flex}.chart-axis{height:240px;color:var(--subtle);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;padding-bottom:28px;font-size:12px;line-height:16px;display:flex}.chart-cols{gap:var(--s2);flex:1;height:240px;display:grid}.chart-col{align-items:center;gap:var(--s2);flex-direction:column;min-width:0;display:flex}.chart-plot{border-bottom:1px solid var(--line);flex-direction:column;flex:1;justify-content:flex-end;align-items:center;width:100%;display:flex}.chart-stack{border-radius:8px 8px 0 0;flex-direction:column;width:100%;max-width:56px;display:flex;overflow:hidden}.chart-bar{width:100%;transition:height .24s var(--ease)}.chart-bar.bill{background:var(--ink)}.chart-bar.non{background:var(--chart-non)}.chart-value{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;line-height:20px}.legend-swatch{border-radius:4px;width:12px;height:12px;display:inline-block}.rate-fields{gap:var(--s4);grid-template-columns:160px minmax(0,240px);display:grid}.rate-input{align-items:center;gap:var(--s2);height:var(--control);padding:0 var(--s4);border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);transition:border-color .12s var(--ease);display:flex}.rate-input:hover{border-color:var(--faint)}.rate-input:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.rate-input input{background:0 0;border:0;flex:1;min-width:0;height:100%;padding:0;font-size:15px}.rate-input input:focus-visible{outline:none}.rate-input input::placeholder{color:var(--subtle);font-family:var(--font-body);font-weight:400}.rate-affix{color:var(--muted);flex:none;font-size:14px}.rate-compact{width:152px;height:40px;padding:0 var(--s3)}@media (width<=767px){.rate-fields{grid-template-columns:minmax(0,1fr)}}.theme-options{gap:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr));max-width:560px;display:grid}.theme-option{gap:var(--s2);padding:var(--s2) var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-surface);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s var(--ease);flex-direction:column;font-size:14px;font-weight:500;line-height:20px;display:flex}.theme-option:hover{border-color:var(--faint)}.theme-option[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.theme-option-label{padding:0 var(--s1)}.theme-preview{outline:1px solid var(--line);outline-offset:-1px;border-radius:8px;height:72px;display:flex;overflow:hidden}.theme-preview-half{gap:var(--s1);padding:var(--s3);flex-direction:column;flex:1;display:flex}.theme-preview-half[data-tone=light]{--tp-bar:#121212;--tp-line:#e4e4e0;background:#f6f6f4}.theme-preview-half[data-tone=dark]{--tp-bar:#f2f2ef;--tp-line:#2e2e2c;background:#111110}.theme-preview-half span{background:var(--tp-line);border-radius:999px;height:8px;display:block}.theme-preview-half span:first-child{background:var(--tp-bar);width:60%}@media (width<=767px){.theme-options{gap:var(--s2)}.theme-preview{height:56px}}.skeleton{background:var(--line-soft);border-radius:8px;animation:1.4s ease-in-out infinite pulse;display:block}@keyframes pulse{50%{opacity:.55}}.fade-in{animation:fade .2s var(--ease)}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.dialog{border:1px solid var(--line);border-radius:var(--r-surface);background:var(--surface);width:min(480px,100vw - 32px);color:var(--ink);padding:0}.dialog::backdrop{background:var(--backdrop)}.dialog-body{padding:var(--s5);gap:var(--s4);flex-direction:column;display:flex}.dialog-actions{justify-content:flex-end;gap:var(--s2);padding-top:var(--s2);flex-wrap:wrap;display:flex}.grid-2{gap:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.center-screen{min-height:100vh;padding:var(--s7) var(--s4);place-items:center;display:grid}.auth-card{gap:var(--s5);flex-direction:column;width:min(400px,100%);display:flex}.empty{padding:var(--s7) var(--s5);text-align:center;align-items:center;gap:var(--s2);flex-direction:column;display:flex}.swatches{gap:var(--s2);flex-wrap:wrap;display:flex}.swatch{width:var(--control);height:var(--control);cursor:pointer;background:var(--surface);border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.swatch[aria-pressed=true]{border-color:var(--ink)}.swatch span{border-radius:999px;width:24px;height:24px}.code{font-family:var(--font-display);letter-spacing:2px;font-variant-numeric:tabular-nums;font-weight:600}.code::placeholder{font-family:var(--font-body);letter-spacing:0;font-weight:400}.toast{left:50%;bottom:var(--s5);z-index:50;align-items:center;gap:var(--s4);max-width:calc(100vw - 32px);padding:var(--s2) var(--s5);min-height:var(--control);border-radius:var(--r-control);background:var(--ink);color:var(--surface);animation:fade .16s var(--ease);font-size:14px;font-weight:500;display:flex;position:fixed;transform:translate(-50%)}.toast:has(.toast-action){padding-right:var(--s2)}.toast-action{height:32px;padding:0 var(--s4);border-radius:var(--r-control);background:var(--on-ink-tint);color:var(--surface);font-family:var(--font-display);cursor:pointer;border:0;font-size:14px;font-weight:600}.toast-action:hover{background:var(--on-ink-tint-hover)}@media (width<=767px){.toast{bottom:104px}.grid-stats{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr))}.grid-stats>:last-child:nth-child(odd){grid-column:span 2}.grid-stats .card-pad{padding:var(--s4)}.num-lg{font-size:24px;line-height:32px}.grid-2{grid-template-columns:minmax(0,1fr)}}.legal-page{min-height:100vh;padding:var(--s5) var(--s4) var(--s8)}.legal-head{max-width:720px;margin:0 auto var(--s7);justify-content:space-between;align-items:center;gap:var(--s4);display:flex}.brand-link{text-decoration:none}.brand-link .brand{padding:0}.legal{gap:var(--s4);flex-direction:column;max-width:720px;margin:0 auto;display:flex}.legal h1{margin-bottom:calc(var(--s2) * -1)}.legal h2{margin-top:var(--s5);font-family:var(--font-display);font-size:20px;font-weight:600;line-height:28px}.legal p,.legal li{color:var(--text-body);font-size:16px;line-height:26px}.legal ul{padding-left:var(--s5);gap:var(--s2);flex-direction:column;margin:0;display:flex}.legal a{text-underline-offset:3px}.legal-foot{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--line);gap:var(--s5);flex-wrap:wrap;display:flex}.legal-foot a{color:var(--muted)}.legal-foot a:hover{color:var(--ink)}.footer-links{justify-content:center;gap:var(--s4);flex-wrap:wrap;display:flex}.footer-links a{color:var(--muted);text-decoration:none}.footer-links a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.danger-zone>*+*{border-top:1px solid var(--line-soft)}.danger-row{justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s5);flex-wrap:wrap;display:flex}.danger-row>.stack{flex:320px}.danger-title{font-size:15px;font-weight:600;line-height:24px}.security-card>*+*{border-top:1px solid var(--line-soft)}.security-block{gap:var(--s4);padding:var(--s5);flex-direction:column;display:flex}.security-head{justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.security-head>.stack{flex:320px}.security-list{border:1px solid var(--line);border-radius:12px}.security-list>*+*{border-top:1px solid var(--line-soft)}.security-item{align-items:center;gap:var(--s3);padding:var(--s2) var(--s2) var(--s2) var(--s4);min-height:64px;display:flex}.security-item-icon{background:var(--ground);border-radius:10px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.badge-on{height:22px;padding:0 var(--s2);border-radius:var(--r-control);background:var(--run-soft);color:var(--run);align-items:center;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.qr-row{align-items:center;gap:var(--s5);padding:var(--s4);background:var(--ground);border-radius:12px;display:flex}.qr{padding:var(--s2);box-sizing:content-box;background:#fff;border-radius:8px;flex:none}.secret-key{font-family:var(--font-display);letter-spacing:1px;word-break:break-all;-webkit-user-select:all;user-select:all;font-size:14px;font-weight:600;line-height:22px}.recovery-codes{gap:var(--s2) var(--s5);padding:var(--s4) var(--s5);background:var(--ground);letter-spacing:.5px;-webkit-user-select:all;user-select:all;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;font-size:15px;line-height:24px;list-style:none;display:grid}.code-input{font-family:var(--font-display);letter-spacing:3px;font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.code-input::placeholder{color:var(--faint)}.btn-text{height:32px;padding:0 var(--s2);color:var(--ink)}.or-divider{align-items:center;gap:var(--s3);display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--line);flex:1;height:1px}@media (width<=767px){.security-block{padding:var(--s4)}.qr-row{flex-direction:column;align-items:flex-start}}.dialog-wide{width:min(560px,100vw - 32px)}.import-sources{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.import-sources button{padding:0 var(--s2)}.import-how{min-height:60px;color:var(--text-body)}.drop-zone{align-items:center;gap:var(--s1);padding:var(--s6) var(--s5);border:1.5px dashed var(--faint);background:var(--ground);text-align:center;cursor:pointer;transition:border-color .12s var(--ease), background-color .12s var(--ease);border-radius:12px;flex-direction:column;display:flex}.drop-zone:hover,.drop-zone.is-dragging{border-color:var(--ink);background:var(--hover)}.drop-zone:focus-within{outline:2px solid var(--ink);outline-offset:2px}.drop-icon{width:40px;height:40px;margin-bottom:var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:10px;justify-content:center;align-items:center;display:inline-flex;transform:rotate(180deg)}.import-file{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.import-stats{gap:var(--s2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.import-stats>div{padding:var(--s3) var(--s4);background:var(--ground);border-radius:12px;flex-direction:column;display:flex}.import-stat{font-size:24px;line-height:32px}.import-preview{border:1px solid var(--line);border-radius:12px}.import-preview-row{align-items:center;gap:var(--s3);padding:var(--s2) var(--s4);grid-template-columns:96px minmax(0,1fr) minmax(0,120px) 48px;font-size:14px;line-height:20px;display:grid}.import-preview-row+.import-preview-row{border-top:1px solid var(--line-soft)}.import-preview-row>.num:last-child{text-align:right}.import-preview-desc,.import-preview-project{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.progress{border-radius:var(--r-control);background:var(--line-soft);height:8px;overflow:hidden}.progress>span{border-radius:inherit;background:var(--run);height:100%;transition:width .24s var(--ease);display:block}.done-mark{border-radius:var(--r-control);background:var(--run-soft);width:44px;height:44px;color:var(--run);justify-content:center;align-items:center;display:inline-flex}@media (width<=767px){.import-sources{grid-template-columns:repeat(2,minmax(0,1fr))}.import-preview-row{grid-template-columns:minmax(0,1fr) 48px}.import-preview-row>.t-caption{display:none}}.gs{flex-direction:column;display:flex}.gs-head{justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s4) var(--s3) var(--s4) var(--s5);display:flex}.gs-progress{gap:var(--s1);display:inline-flex}.gs-progress>span{border-radius:var(--r-control);background:var(--line);width:20px;height:4px;transition:background-color .24s var(--ease)}.gs-progress>span.is-done{background:var(--run)}.gs-steps{padding:0 var(--s3);flex-direction:column;margin:0;list-style:none;display:flex}.gs-step{border-radius:12px}.gs-step.is-open{background:var(--ground)}.gs-step-head{align-items:center;gap:var(--s3);width:100%;min-height:48px;padding:var(--s2) var(--s3);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;display:flex}.gs-step-head:disabled{cursor:default}.gs-step:not(.is-open):not(.is-done) .gs-step-head:hover{background:var(--hover)}.gs-check{border-radius:var(--r-control);border:1.5px solid var(--faint);width:24px;height:24px;color:var(--muted);flex:none;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.gs-step.is-open .gs-check{border-color:var(--ink);color:var(--ink)}.gs-check.is-done{border-color:var(--run);background:var(--run);color:var(--surface)}.gs-step-title{font-weight:600}.gs-step.is-done .gs-step-title{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);font-weight:500}.gs-step-body{align-items:flex-start;gap:var(--s3);padding:0 var(--s4) var(--s4) 48px;flex-direction:column;display:flex}.gs-foot{gap:var(--s1) var(--s2);margin-top:var(--s3);padding:var(--s3) var(--s5);border-top:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.link-button{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.link-button:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}@media (width<=767px){.gs-head{padding:var(--s3) var(--s2) var(--s3) var(--s4)}.gs-progress{display:none}.gs-steps{padding:0 var(--s2)}.gs-step-body{padding-left:var(--s3)}.gs-foot{padding:var(--s3) var(--s4)}}.landing{min-height:100vh}.landing-wrap{width:100%;max-width:1168px;padding:0 var(--s6);margin:0 auto}.landing-nav{z-index:10;background:var(--glass);-webkit-backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid #0000;position:sticky;top:0}.landing-nav-inner{justify-content:space-between;align-items:center;gap:var(--s4);height:72px;display:flex}.landing-nav .row{gap:var(--s2)}.hero{align-items:center;gap:var(--s8);padding-top:var(--s8);grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-bottom:96px;display:grid}.hero-copy{align-items:flex-start;gap:var(--s5);flex-direction:column;display:flex}.eyebrow{height:28px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);color:var(--muted);align-items:center;font-size:13px;font-weight:600;line-height:20px;display:inline-flex}.hero-title{font-family:var(--font-display);letter-spacing:-2px;max-width:560px;font-size:64px;font-weight:700;line-height:64px}.hero-sub{color:var(--muted);max-width:520px;font-size:18px;line-height:28px}.demo{gap:var(--s4);padding:var(--s5);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-float);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:24px;flex-direction:column;display:flex}.demo .card{box-shadow:none}.demo-timer{align-items:center;gap:var(--s3);padding:var(--s3) var(--s3) var(--s3) var(--s4);display:flex}.demo-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.demo-chip{align-items:center;gap:var(--s2);height:32px;padding:0 var(--s3);border-radius:var(--r-control);background:var(--ground);white-space:nowrap;font-size:13px;font-weight:500;display:inline-flex}.demo-clock{color:var(--run);text-align:right;min-width:80px;font-size:20px;line-height:28px}.demo-stop{height:40px;padding:0 var(--s4)}.demo-row{align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);grid-template-columns:minmax(0,1fr) auto 64px;font-size:14px;line-height:20px;display:grid}.demo-row .num{text-align:right}.demo-row-desc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.demo-row-project{align-items:center;gap:var(--s2);color:var(--muted);white-space:nowrap;font-size:13px;display:inline-flex}.demo-row-project .dot,.demo-chip .dot{width:8px;height:8px}.demo-live{gap:var(--s2);flex-direction:column;display:flex}.demo-live-label{align-items:center;gap:var(--s2);padding:var(--s2) 0 0;font-size:13px;font-weight:600;line-height:20px;display:inline-flex}.demo-person{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);display:flex}.demo-person-text{flex-direction:column;flex:1;min-width:0;font-size:14px;line-height:20px;display:flex}.demo-person-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.landing-section{gap:var(--s6);flex-direction:column;padding-top:96px;padding-bottom:0;display:flex}.section-title{font-family:var(--font-display);letter-spacing:-1px;max-width:640px;font-size:40px;font-weight:700;line-height:48px}.feature-grid{gap:var(--s5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.feature{gap:var(--s3);padding:var(--s6);flex-direction:column;display:flex}.vignette{height:152px;margin-bottom:var(--s3);padding:var(--s5);background:var(--ground);justify-content:center;gap:var(--s3);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:12px;flex-direction:column;display:flex}.vt-input{height:44px;padding:0 var(--s2) 0 var(--s4);border-radius:var(--r-control);background:var(--surface);border:1px solid var(--line);white-space:nowrap;align-items:center;font-size:14px;display:flex;overflow:hidden}.vt-caret{background:var(--ink);width:1.5px;height:18px;margin-left:2px;animation:1.1s step-end infinite vt-blink}.vt-key{height:28px;padding:0 var(--s2);border:1px solid var(--line);background:var(--ground);font-family:var(--font-body);color:var(--muted);border-bottom-width:2px;border-radius:8px;margin-left:auto;font-size:12px;font-weight:600;line-height:25px}.vt-running{align-items:center;gap:var(--s2);padding:0 var(--s4);display:flex}@keyframes vt-blink{50%{opacity:0}}.vignette-team{align-items:flex-start}.vteam-stack{display:flex}.vteam-avatar{background:var(--surface);border:2px solid var(--ground);width:48px;height:48px;font-size:14px;position:relative}.vteam-avatar+.vteam-avatar{margin-left:-10px}.vteam-live{background:var(--run);border:2px solid var(--ground);border-radius:999px;width:12px;height:12px;position:absolute;bottom:0;right:0}.vignette-reports{padding-top:var(--s4);padding-bottom:var(--s4);justify-content:flex-end;gap:var(--s2)}.vrep-bars{align-items:flex-end;gap:var(--s3);display:flex}.vrep-col{align-items:center;gap:var(--s1);flex-direction:column;flex:1;display:flex}.vrep-stack{flex-direction:column;justify-content:flex-end;gap:2px;width:100%;max-width:28px;display:flex}.vrep-bar{border-radius:4px;display:block}.vrep-bar.bill{background:var(--ink)}.vrep-bar.non{background:var(--faint)}.vrep-legend{gap:var(--s4);display:flex}@media (prefers-reduced-motion:reduce){.vt-caret{animation:none}}.feature-title{font-family:var(--font-display);font-size:18px;font-weight:600;line-height:28px}.split{align-items:start;gap:var(--s8);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.steps{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.step{gap:var(--s5);padding:var(--s5) 0;border-top:1px solid var(--line);display:flex}.step:last-child{border-bottom:1px solid var(--line)}.step-num{border-radius:var(--r-control);background:var(--ink);width:40px;height:40px;color:var(--surface);flex:none;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.detail-grid{gap:var(--s6);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.detail{gap:var(--s2);padding-top:var(--s5);border-top:2px solid var(--ink);flex-direction:column;display:flex}.cta-band{text-align:center;align-items:center;gap:var(--s4);padding:96px var(--s6);background:var(--ink);color:var(--surface);border-radius:24px;flex-direction:column;display:flex}.cta-title{margin-top:var(--s4);font-family:var(--font-display);letter-spacing:-1.5px;font-size:48px;font-weight:700;line-height:56px}.cta-sub{color:var(--on-ink-muted);font-size:18px;line-height:28px}.cta-button{margin-top:var(--s4);background:var(--surface);color:var(--ink)}.cta-button:hover{background:var(--line-soft)}:root[data-theme=dark] .cta-band{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}:root[data-theme=dark] .cta-sub{color:var(--muted)}:root[data-theme=dark] .cta-button{background:var(--ink);color:var(--surface)}:root[data-theme=dark] .cta-button:hover{background:var(--ink-hover)}.landing-footer{justify-content:space-between;align-items:center;gap:var(--s4);padding-top:var(--s7);padding-bottom:var(--s7);display:flex}@media (width<=1023px){.hero,.split{gap:var(--s7);grid-template-columns:minmax(0,1fr)}.feature-grid{grid-template-columns:minmax(0,1fr)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){.landing-wrap{padding:0 var(--s4)}.landing-nav-inner{height:64px}.landing-nav .row{gap:var(--s1)}.landing-nav .btn{height:40px;padding:0 var(--s4);font-size:14px}.landing-nav .landing-signin{padding:0 var(--s3)}.hero{padding-top:var(--s7);padding-bottom:var(--s8)}.hero-title{letter-spacing:-1.5px;font-size:44px;line-height:48px}.hero-sub{font-size:16px;line-height:24px}.demo{padding:var(--s3);gap:var(--s3);border-radius:20px}.demo-chip{display:none}.demo-row{grid-template-columns:minmax(0,1fr) 64px}.demo-row-project{display:none}.landing-section{padding-top:var(--s8);gap:var(--s5)}.section-title{letter-spacing:-.5px;font-size:32px;line-height:40px}.feature{padding:var(--s5)}.detail-grid{gap:var(--s5);grid-template-columns:minmax(0,1fr)}.cta-band{padding:var(--s8) var(--s5);border-radius:20px}.cta-title{letter-spacing:-.5px;font-size:32px;line-height:40px}.landing-footer{flex-direction:column;align-items:flex-start}}
