:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f7f5f1;--surface:#fffefb;--subtle:#f0ede7;--subtle-2:#e8e4dc;--text:#292c29;--text-2:#636860;--text-3:#7a7e76;--border:#dedcd4;--control:#8a8e85;--control-strong:#636860;--accent:#a94e3c;--accent-hover:#963f2f;--accent-fg:#fff;--accent-soft:#f5e6e1;--accent-soft-2:#edd5cd;--accent-text:#9a4534;--success:#3b7050;--success-soft:#e3efe6;--warning:#8a5d0f;--warning-soft:#f6ecd8;--danger:#b0322a;--danger-soft:#f8e3e0;--focus-ring:#a94e3c;--overlay:#292c2952;--shadow-float:0 1px 2px #292c290f, 0 8px 24px #292c291f;--font:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", monospace;--r-sm:6px;--r:8px;--r-lg:10px;--ease:cubic-bezier(.2, 0, 0, 1);--t-fast:.12s;--t:.18s;--nav-w:232px;--focus-w:340px;--appbar-h:56px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#191b1a;--surface:#222523;--subtle:#2b302d;--subtle-2:#343a36;--text:#ecede7;--text-2:#abb2a8;--text-3:#959c92;--border:#3a403b;--control:#8c9489;--control-strong:#abb2a8;--accent:#e6a08d;--accent-hover:#efb5a4;--accent-fg:#231c18;--accent-soft:#3b2c27;--accent-soft-2:#4a3630;--accent-text:#eaa994;--success:#8cc79b;--success-soft:#26352b;--warning:#e2b866;--warning-soft:#3a3222;--danger:#f2a69e;--danger-soft:#3e2624;--focus-ring:#e6a08d;--overlay:#00000080;--shadow-float:0 1px 2px #0000004d, 0 10px 28px #00000073}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#191b1a;--surface:#222523;--subtle:#2b302d;--subtle-2:#343a36;--text:#ecede7;--text-2:#abb2a8;--text-3:#959c92;--border:#3a403b;--control:#8c9489;--control-strong:#abb2a8;--accent:#e6a08d;--accent-hover:#efb5a4;--accent-fg:#231c18;--accent-soft:#3b2c27;--accent-soft-2:#4a3630;--accent-text:#eaa994;--success:#8cc79b;--success-soft:#26352b;--warning:#e2b866;--warning-soft:#3a3222;--danger:#f2a69e;--danger-soft:#3e2624;--focus-ring:#e6a08d;--overlay:#00000080;--shadow-float:0 1px 2px #0000004d, 0 10px 28px #00000073}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--canvas);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.55}html[lang=zh-Hans] body{line-height:1.65}h1,h2,h3,h4{letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:600;line-height:1.25}p{text-wrap:pretty;margin:0}a{color:var(--accent-text);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}img,svg{display:block}::selection{background:var(--accent-soft-2)}:focus-visible{outline:2px solid var(--focus-ring);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}.skip-link{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:8px 12px;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.small{font-size:13px}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.grow{flex:auto;min-width:0}.spacer{flex:1}.btn{--h:36px;height:var(--h);border-radius:var(--r);border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{background:var(--subtle);text-decoration:none}.btn:active{background:var(--subtle-2)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55}.btn svg{flex:none;width:16px;height:16px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active{background:var(--accent-hover)}.btn-quiet{background:0 0;border-color:#0000}.btn-quiet:hover{background:var(--subtle)}.btn-danger{color:var(--danger);border-color:var(--border)}.btn-danger:hover{background:var(--danger-soft)}.btn-lg{--h:44px;padding:0 20px;font-size:15px}.btn-sm{--h:30px;padding:0 10px;font-size:13px}.btn-block{width:100%}.icon-btn{border-radius:var(--r);width:36px;height:36px;color:var(--text-2);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--subtle);color:var(--text)}.icon-btn svg{width:18px;height:18px}.icon-btn.sm{width:30px;height:30px}.icon-btn.sm svg{width:16px;height:16px}.link-btn{color:var(--accent-text);text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline;text-decoration-thickness:1px}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--text-2);font-size:13px;font-weight:500}.hint{color:var(--text-2);font-size:13px}.input,.select,.textarea{border:1px solid var(--control);border-radius:var(--r);background:var(--surface);width:100%;min-height:38px;color:var(--text);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:7px 11px;font-size:15px}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--control-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--focus-ring);box-shadow:0 0 0 1px var(--focus-ring);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}.textarea{resize:vertical;min-height:96px;line-height:1.55}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23636860' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;padding-right:32px}.input-sm{min-height:32px;padding:4px 9px;font-size:14px}.error-text{color:var(--danger);font-size:13px}.check{cursor:pointer;align-items:flex-start;gap:10px;font-size:15px;display:inline-flex}.check input{appearance:none;border:1.5px solid var(--control);background:var(--surface);cursor:pointer;border-radius:5px;flex:none;place-content:center;width:18px;height:18px;margin:2px 0 0;display:grid}.check input:checked{background:var(--accent);border-color:var(--accent)}.check input:checked:after{content:"";border:2px solid var(--accent-fg);border-top:0;border-right:0;width:10px;height:6px;transform:translateY(-1px)rotate(-45deg)}.switch{appearance:none;background:var(--subtle-2);border:1px solid var(--control);cursor:pointer;width:36px;height:22px;transition:background var(--t-fast) var(--ease);border-radius:11px;flex:none;position:relative}.switch:after{content:"";background:var(--surface);border:1px solid var(--control);width:16px;height:16px;transition:transform var(--t-fast) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent);border-color:var(--accent)}.switch:checked:after{border-color:var(--accent);transform:translate(14px)}.segmented{border-radius:var(--r);background:var(--subtle);border:1px solid var(--border);padding:2px;display:inline-flex}.segmented button{height:28px;color:var(--text-2);background:0 0;border:0;border-radius:6px;padding:0 12px;font-size:13px;font-weight:500}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border)}input[type=range]{accent-color:var(--accent)}.number-input{text-align:center;width:72px}.menu{z-index:60;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);min-width:200px;max-width:320px;box-shadow:var(--shadow-float);animation:pop var(--t) var(--ease);padding:4px;position:fixed}.menu-item{border-radius:var(--r-sm);width:100%;min-height:36px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:6px 10px;font-size:14px;text-decoration:none;display:flex}.menu-item svg{width:16px;height:16px;color:var(--text-2);flex:none}.menu-item:hover,.menu-item:focus-visible,.menu-item[data-active=true]{background:var(--subtle);outline:none;text-decoration:none}.menu-item.danger,.menu-item.danger svg{color:var(--danger)}.menu-item[aria-checked=true]:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;margin-left:auto}.menu-sep{background:var(--border);height:1px;margin:4px 6px}.menu-label{color:var(--text-2);padding:6px 10px 2px;font-size:12px}@keyframes pop{0%{opacity:0;transform:translateY(-2px)}}.dialog-backdrop{z-index:70;background:var(--overlay);animation:fade var(--t) var(--ease);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--border);background:var(--surface);width:min(480px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-float);animation:pop var(--t) var(--ease);border-radius:12px;overflow:auto}.dialog.wide{width:min(640px,100%)}.dialog-head{align-items:center;gap:12px;padding:18px 20px 4px;display:flex}.dialog-head h2{font-size:17px}.dialog-body{flex-direction:column;gap:14px;padding:12px 20px 8px;display:flex}.dialog-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px 18px;display:flex}@keyframes fade{0%{opacity:0}}.toasts{z-index:80;pointer-events:none;flex-direction:column;gap:8px;width:min(440px,100vw - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--r-lg);background:var(--text);color:var(--canvas);box-shadow:var(--shadow-float);animation:pop var(--t) var(--ease);align-items:center;gap:12px;padding:10px 10px 10px 16px;font-size:14px;display:flex}.toast .grow{padding:4px 0}.toast button{color:inherit;border-radius:var(--r-sm);background:0 0;border:0;padding:6px 10px;font-weight:600}.toast button:hover{background:#7f7f7f40}.toast.error{background:var(--danger);color:#fff}:root[data-theme=dark] .toast.error{color:#231c18}.notice{border-radius:var(--r);background:var(--subtle);border:1px solid var(--border);align-items:flex-start;gap:12px;padding:12px 14px;font-size:14px;display:flex}.notice>svg{width:18px;height:18px;color:var(--text-2);flex:none;margin-top:2px}.notice.warn{background:var(--warning-soft);border-color:#0000}.notice.warn>svg{color:var(--warning)}.notice.danger{background:var(--danger-soft);border-color:#0000}.notice.danger>svg{color:var(--danger)}.notice.accent{background:var(--accent-soft);border-color:#0000}.notice.accent>svg{color:var(--accent-text)}.badge{background:var(--subtle);height:22px;color:var(--text-2);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent-text)}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.kbd{border:1px solid var(--border);background:var(--surface);min-width:22px;font-family:var(--font-mono);text-align:center;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:12px;display:inline-block}.meter{background:var(--subtle-2);border-radius:3px;height:6px;overflow:hidden}.meter>span{background:var(--text-2);border-radius:3px;height:100%;display:block}.meter.warn>span{background:var(--warning)}.meter.full>span{background:var(--danger)}.spinner{border:2px solid var(--border);border-top-color:var(--text-2);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--r-sm);background:var(--subtle)}.brand{color:var(--text);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-size:16px;font-weight:650;text-decoration:none;display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{width:26px;height:26px;color:var(--accent);flex:none}.site-header{z-index:30;background:var(--canvas);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header-inner{align-items:center;gap:24px;height:64px;display:flex}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.container.narrow{max-width:760px}.site-nav{align-items:center;gap:2px;display:flex}.site-nav a{border-radius:var(--r);color:var(--text-2);padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none}.site-nav a:hover{color:var(--text);background:var(--subtle)}.site-nav a[aria-current=page]{color:var(--text)}.header-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.lang-switch{border:1px solid var(--border);border-radius:var(--r);align-items:center;height:32px;display:inline-flex;overflow:hidden}.lang-switch a,.lang-switch button{height:100%;color:var(--text-2);background:0 0;border:0;align-items:center;padding:0 10px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.lang-switch [aria-current=true]{background:var(--subtle);color:var(--text)}.mobile-only{display:none}@media (max-width:860px){.site-nav,.header-actions .hide-sm{display:none}.mobile-only{display:inline-flex}.container{padding:0 16px}}.hero{padding-top:56px;padding-bottom:28px}.hero h1{letter-spacing:-.025em;max-width:18em;font-size:clamp(30px,4.2vw,44px);line-height:1.12}.hero p{color:var(--text-2);max-width:38em;margin-top:14px;font-size:18px}.eyebrow{color:var(--accent-text);margin-bottom:14px;font-size:13px;font-weight:600;display:inline-block}.tool-frame{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.section{border-top:1px solid var(--border);padding:72px 0}.section-head{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:32px;display:flex}.section-head h2{letter-spacing:-.02em;font-size:26px}.steps{counter-reset:step;grid-template-columns:repeat(3,1fr);gap:40px;display:grid}.step{counter-increment:step}.step:before{content:counter(step, decimal-leading-zero);font-variant-numeric:tabular-nums;color:var(--accent-text);border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:12px;font-size:13px;font-weight:600;display:block}.step h3{margin-bottom:6px;font-size:17px}.step p{color:var(--text-2)}.two-col{grid-template-columns:1fr 1fr;gap:40px;display:grid}.two-col h3{align-items:center;gap:10px;margin-bottom:8px;font-size:17px;display:flex}.two-col h3 svg{width:18px;height:18px;color:var(--text-2)}.two-col p{color:var(--text-2)}.faq{border-top:1px solid var(--border)}.faq details{border-bottom:1px solid var(--border)}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:16px;font-weight:550;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";border-right:1.6px solid var(--text-2);border-bottom:1.6px solid var(--text-2);width:10px;height:10px;transition:transform var(--t) var(--ease);flex:none;transform:rotate(45deg)translateY(-3px)}.faq details[open] summary:after{transform:rotate(-135deg)translateY(-3px)}.faq details p{color:var(--text-2);max-width:44em;padding:0 0 20px}.template-rows{border-top:1px solid var(--border)}.template-row{border-bottom:1px solid var(--border);color:inherit;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 4px;text-decoration:none;display:grid}.template-row:hover{background:var(--subtle);text-decoration:none}.template-row h3{font-size:16px}.template-row p{color:var(--text-2);margin-top:2px;font-size:14px}.site-footer{border-top:1px solid var(--border);margin-top:40px;padding:48px 0 40px;font-size:14px}.footer-grid{grid-template-columns:1.4fr repeat(3,1fr);gap:32px;display:grid}.footer-grid h4{color:var(--text-2);margin-bottom:10px;font-size:13px;font-weight:600}.footer-grid ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.footer-grid a{color:var(--text);text-decoration:none}.footer-grid a:hover{text-decoration:underline}@media (max-width:860px){.steps,.two-col{grid-template-columns:1fr;gap:28px}.footer-grid{grid-template-columns:1fr 1fr}.section{padding:48px 0}.hero{padding-top:36px;padding-bottom:20px}}.page-head{padding-top:48px;padding-bottom:24px}.page-head h1{letter-spacing:-.02em;font-size:clamp(28px,3.4vw,36px)}.page-head p{color:var(--text-2);max-width:40em;margin-top:10px;font-size:17px}.prose{max-width:44em;font-size:16px}.prose h2{margin:36px 0 10px;font-size:20px}.prose h3{margin:24px 0 6px;font-size:16px}.prose p,.prose ul{color:var(--text);margin:0 0 12px}.prose ul{padding-left:1.2em}.prose li{margin-bottom:6px}.plans{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.plan{border-left:1px solid var(--border);flex-direction:column;gap:12px;padding:24px 22px;display:flex}.plan:first-child{border-left:0}.plan h3{font-size:18px}.plan .price{letter-spacing:-.02em;align-items:baseline;gap:6px;font-size:28px;font-weight:650;display:flex}.plan .price small{color:var(--text-2);letter-spacing:0;font-size:14px;font-weight:400}.plan .desc{color:var(--text-2);min-height:3em;font-size:14px}.plan.highlight{background:var(--accent-soft)}.plan ul{flex-direction:column;gap:6px;margin:4px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.plan li{gap:8px;display:flex}.plan li svg{width:16px;height:16px;color:var(--text-2);flex:none;margin-top:3px}.compare{border-collapse:collapse;width:100%;font-size:14px}.compare th,.compare td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:12px 14px}.compare thead th{color:var(--text-2);font-size:13px;font-weight:600}.compare tbody th{color:var(--text);width:32%;font-weight:500}.compare td{font-variant-numeric:tabular-nums}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:960px){.plans{grid-template-columns:1fr 1fr}.plan:nth-child(3){border-left:0}.plan:nth-child(n+3){border-top:1px solid var(--border)}}@media (max-width:560px){.plans{grid-template-columns:1fr}.plan{border-left:0;border-top:1px solid var(--border)}.plan:first-child{border-top:0}}.app{grid-template-columns:var(--nav-w) minmax(0, 1fr) var(--focus-w);grid-template-rows:var(--appbar-h) minmax(0, 1fr);grid-template-areas:"bar bar bar""nav main focus";height:100dvh;display:grid;overflow:hidden}.app.embedded{grid-template-columns:minmax(0, 1fr) var(--focus-w);grid-template-rows:minmax(0,1fr);grid-template-areas:"main focus";height:min(640px,78dvh)}.app.embedded.focus-first{grid-template-columns:var(--focus-w) minmax(0, 1fr);grid-template-areas:"focus main"}.app.embedded.focus-first .focus-panel{border-left:0;border-right:1px solid var(--border)}.app.nav-collapsed{grid-template-columns:0 minmax(0, 1fr) var(--focus-w)}.app.nav-collapsed .sidebar{visibility:hidden}.appbar{border-bottom:1px solid var(--border);background:var(--canvas);grid-area:bar;align-items:center;gap:12px;min-width:0;padding:0 12px 0 16px;display:flex}.appbar .brand{width:calc(var(--nav-w) - 28px)}.appbar-search{flex:auto;max-width:420px;position:relative}.appbar-search svg{width:16px;height:16px;color:var(--text-2);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.appbar-search .input{background:var(--surface);border-color:var(--border);min-height:34px;padding-left:34px;font-size:14px}.appbar-search .input:hover{border-color:var(--control)}.sync-status{color:var(--text-2);white-space:nowrap;border-radius:var(--r-sm);background:0 0;border:0;align-items:center;gap:6px;height:30px;padding:0 8px;font-size:13px;display:inline-flex}.sync-status .dot{background:var(--success);border-radius:50%;width:7px;height:7px}.sync-status.offline .dot,.sync-status.pending .dot{background:var(--warning)}.sync-status.failed{color:var(--danger)}.sync-status.failed .dot{background:var(--danger)}.sync-status.local .dot{background:var(--text-3)}.avatar{background:var(--subtle-2);width:30px;height:30px;color:var(--text);text-transform:uppercase;border:0;border-radius:50%;place-items:center;padding:0;font-size:13px;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.sidebar{background:var(--canvas);border-right:1px solid var(--border);flex-direction:column;grid-area:nav;min-height:0;display:flex;overflow:hidden}.sidebar-scroll{flex:1;padding:12px 10px;overflow-y:auto}.nav-group+.nav-group{margin-top:18px}.nav-heading{height:28px;color:var(--text-2);justify-content:space-between;align-items:center;padding:0 4px 0 10px;font-size:12px;font-weight:600;display:flex}.nav-item{border-radius:var(--r-sm);width:100%;min-height:34px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0 8px 0 10px;font-size:14px;text-decoration:none;display:flex;position:relative}.nav-item svg{width:16px;height:16px;color:var(--text-2);flex:none}.nav-item:hover{background:var(--subtle);text-decoration:none}.nav-item[aria-current=page]{background:var(--subtle-2);font-weight:550}.nav-item .count{color:var(--text-2);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.nav-item .nav-more{opacity:0;margin-left:auto}.nav-item:hover .nav-more,.nav-item:focus-within .nav-more{opacity:1}.nav-item:hover .count{display:none}.nav-item input{border:1px solid var(--focus-ring);background:var(--surface);border-radius:5px;flex:1;min-width:0;height:26px;padding:0 6px;font-size:14px}.list-dot{background:var(--text-3);border-radius:2px;flex:none;width:8px;height:8px;margin:0 4px}.nav-item[aria-current=page] .list-dot{background:var(--accent)}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:10px;display:flex}.plan-chip{border-radius:var(--r);background:var(--subtle);margin:6px 0 2px;padding:10px;font-size:13px}.usage-dot{background:var(--warning);border-radius:50%;width:6px;height:6px}.nav-item .usage-chevron{width:14px;height:14px;margin-left:-4px;transition:transform .15s}.nav-item[aria-expanded=true] .usage-chevron{transform:rotate(180deg)}.plan-chip .meter{margin-top:6px}.main{background:var(--surface);flex-direction:column;grid-area:main;min-width:0;min-height:0;display:flex;position:relative}.main-scroll{overscroll-behavior:contain;flex:1;overflow-y:auto}.main-inner{max-width:860px;margin:0 auto;padding:24px 32px 96px}.view-head{align-items:center;gap:8px;min-height:36px;margin-bottom:16px;display:flex}.view-head h1{letter-spacing:-.02em;min-width:0;font-size:22px}.view-head .sub{color:var(--text-2);white-space:nowrap;margin-left:4px;font-size:13px}.add-row{align-items:center;gap:8px;margin-bottom:12px;display:flex}.add-input{flex:1;position:relative}.add-input svg{width:18px;height:18px;color:var(--text-2);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.add-input .input{border-color:var(--border);background:var(--canvas);min-height:46px;padding-left:42px;font-size:15px}.add-input .input:hover{border-color:var(--control)}.add-input .input:focus{background:var(--surface)}.view-tools{color:var(--text-2);align-items:center;gap:8px;margin:4px 0 8px;font-size:13px;display:flex}.task-list{margin:0;padding:0;list-style:none}.section-block+.section-block{margin-top:20px}.section-title{border-bottom:1px solid var(--border);height:36px;color:var(--text-2);align-items:center;gap:8px;padding:0 4px 0 6px;font-size:13px;font-weight:600;display:flex}.section-title .count{font-variant-numeric:tabular-nums;font-weight:400}.task{border-bottom:1px solid var(--border);min-height:50px;transition:background var(--t-fast) var(--ease), opacity var(--t) var(--ease);cursor:default;background:0 0;border-radius:0;align-items:flex-start;gap:12px;padding:12px 8px 11px 10px;display:flex;position:relative}.task:hover{background:var(--canvas)}.task[aria-selected=true]{background:var(--subtle)}.task.in-focus{background:var(--accent-soft)}.task.in-focus:before{content:"";background:var(--accent);border-radius:2px;width:3px;position:absolute;top:8px;bottom:8px;left:0}.task.is-sub{min-height:42px;padding-top:9px;padding-bottom:8px;padding-left:42px}.task.leaving{opacity:0}.task-check{border:1.5px solid var(--control);background:var(--surface);width:20px;height:20px;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-radius:50%;flex:none;place-items:center;margin-top:1px;padding:0;display:grid;position:relative}.task-check:before{content:"";position:absolute;inset:-12px}.task-check:hover{border-color:var(--accent)}.task-check:hover svg{opacity:.45}.task-check svg{width:12px;height:12px;color:var(--accent);opacity:0;stroke-width:3px}.task-check[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.task-check[aria-checked=true] svg{opacity:1;color:var(--accent-fg)}.task-check.p3{border-color:var(--accent);border-width:2px}.task-body{flex:1;min-width:0}.task-title{text-align:left;width:100%;color:var(--text);overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;padding:0;font-size:15px;line-height:1.4;display:block}.task.done .task-title{color:var(--text-2);text-decoration:line-through;-webkit-text-decoration-color:var(--text-3);text-decoration-color:var(--text-3)}.task-meta{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:3px;font-size:13px;display:flex}.task-meta:empty{display:none}.task-meta span{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.task-meta svg{width:13px;height:13px}.task-meta .overdue{color:var(--danger)}.task-meta .today{color:var(--accent-text)}.task-meta .focus-tag{color:var(--accent-text);font-weight:550}.task-actions{opacity:0;transition:opacity var(--t-fast) var(--ease);align-items:center;gap:2px;margin:-5px -2px -5px 0;display:flex}.task:hover .task-actions,.task:focus-within .task-actions,.task[aria-selected=true] .task-actions,.task.in-focus .task-actions{opacity:1}.focus-btn{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);height:30px;color:var(--text);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.focus-btn svg{width:13px;height:13px;color:var(--accent)}.focus-btn:hover{border-color:var(--accent);color:var(--accent-text)}.completed-toggle{border-radius:var(--r-sm);height:32px;color:var(--text-2);background:0 0;border:0;align-items:center;gap:6px;margin-top:20px;padding:0 8px;font-size:13px;font-weight:550;display:inline-flex}.completed-toggle:hover{background:var(--subtle);color:var(--text)}.completed-toggle svg{width:14px;height:14px;transition:transform var(--t) var(--ease)}.completed-toggle[aria-expanded=true] svg{transform:rotate(90deg)}.empty{color:var(--text-2);padding:36px 8px;font-size:15px}.empty strong{color:var(--text);margin-bottom:4px;font-weight:600;display:block}.keyboard-hint{color:var(--text-3);margin-top:28px;font-size:12px}.inline-quota{color:var(--warning);align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.focus-panel{border-left:1px solid var(--border);background:var(--canvas);flex-direction:column;grid-area:focus;min-height:0;display:flex;overflow-y:auto}.focus-inner{flex-direction:column;flex:1;gap:20px;padding:20px 22px 24px;display:flex}.focus-label{color:var(--text-2);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.focus-label .state-dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.focus-label.paused .state-dot{background:var(--text-3)}.task-picker{border:1px solid var(--control);border-radius:var(--r);background:var(--surface);text-align:left;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 12px;font-size:15px;display:flex}.task-picker:hover{border-color:var(--control-strong)}.task-picker .placeholder{color:var(--text-2)}.task-picker svg{width:16px;height:16px;color:var(--text-2);flex:none}.current-task{overflow-wrap:anywhere;font-size:17px;font-weight:600;line-height:1.35}.current-task.none{color:var(--text-2);font-weight:500}.dial{aspect-ratio:1;width:100%;max-width:248px;margin:0 auto;position:relative}.dial svg{width:100%;height:100%;transform:rotate(-90deg)}.dial .track{fill:none;stroke:var(--border);stroke-width:3px}.dial .progress{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.dial.break .progress{stroke:var(--success)}.dial.paused .progress{stroke:var(--text-3)}.dial-center{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.clock{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-size:56px;font-weight:400;line-height:1}.clock.static{color:var(--text)}.dial-center .sub{color:var(--text-2);font-size:13px}.durations{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.durations button{border-radius:var(--r-sm);height:28px;color:var(--text-2);background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;font-size:13px;display:inline-flex}.durations button:hover{background:var(--subtle);color:var(--text)}.focus-controls{flex-direction:column;gap:8px;display:flex}.focus-controls .row{flex-wrap:wrap;gap:8px}.focus-controls .row>*{flex:auto}.review{flex-direction:column;gap:16px;display:flex}.review-head{align-items:flex-start;gap:12px;display:flex}.review-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;display:grid}.review-icon svg{width:18px;height:18px}.review-icon.rest{background:var(--success-soft);color:var(--success)}.review h2{font-size:17px}.review .question{letter-spacing:-.01em;font-size:20px;font-weight:600}.next-up{border-radius:var(--r);border:1px solid var(--border);background:var(--surface);padding:12px 14px}.next-up .label{font-size:12px}.focus-foot{border-top:1px solid var(--border);color:var(--text-2);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-size:13px;display:flex}.duration-editor{border-radius:var(--r);border:1px solid var(--border);background:var(--surface);grid-template-columns:1fr auto;align-items:center;gap:10px 12px;padding:14px;font-size:14px;display:grid}.stepper{border:1px solid var(--control);border-radius:var(--r);align-items:center;display:inline-flex;overflow:hidden}.stepper button{background:var(--surface);width:30px;height:30px;color:var(--text-2);border:0;font-size:16px}.stepper button:hover{background:var(--subtle);color:var(--text)}.stepper span{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-size:14px}.mini-timer{display:none}.drawer{z-index:20;background:var(--surface);border-left:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow-float);animation:slide-in var(--t) var(--ease);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}}.drawer-head{border-bottom:1px solid var(--border);align-items:center;gap:4px;height:52px;padding:0 8px 0 16px;display:flex}.drawer-body{flex-direction:column;flex:1;gap:20px;padding:16px 20px 32px;display:flex;overflow-y:auto}.title-edit{resize:none;letter-spacing:-.01em;background:0 0;border:0;width:100%;padding:4px 0;font-size:19px;font-weight:600;line-height:1.35;overflow:hidden}.title-edit:focus{box-shadow:inset 0 -2px 0 var(--focus-ring);outline:none}.prop-grid{grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px 12px;font-size:14px;display:grid}.prop-grid>.label{font-size:13px}.detail-section h3{color:var(--text-2);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.detail-section h3 .spacer{flex:1}.sub-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:38px;display:flex}.sub-row .task-check{width:18px;height:18px;margin:0}.sub-row input.plain{background:0 0;border:0;flex:1;min-width:0;padding:6px 0;font-size:14px}.sub-row input.plain:focus{outline:none}.sub-row.done input.plain{color:var(--text-2);text-decoration:line-through}.file-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:44px;padding:6px 0;font-size:14px;display:flex}.file-row .file-icon{border-radius:var(--r-sm);background:var(--subtle);width:32px;height:32px;color:var(--text-2);flex:none;place-items:center;display:grid;overflow:hidden}.file-row .file-icon svg{width:16px;height:16px}.file-row .file-icon img{object-fit:cover;width:100%;height:100%}.session-row{min-height:34px;color:var(--text-2);border-bottom:1px solid var(--border);align-items:center;gap:10px;font-size:13px;display:flex}.tabbar{display:none}.stat-row{border:1px solid var(--border);border-radius:var(--r-lg);grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.stat{border-left:1px solid var(--border);padding:16px 18px}.stat:first-child{border-left:0}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.1}.stat .label{margin-top:4px}.chart{margin-top:8px}.chart .bar,.chart .bar.today{fill:var(--accent)}.chart .bar.zero{fill:var(--border)}.chart .axis{fill:var(--text-2);font-size:11px}.chart .grid{stroke:var(--border);stroke-width:1px}.chart .value-label{fill:var(--text);font-size:11px;font-weight:600}.page-layout{max-width:820px;margin:0 auto;padding:28px 32px 96px}.settings-group{border-top:1px solid var(--border);padding:28px 0}.settings-group:first-of-type{border-top:0;padding-top:8px}.settings-group>h2{margin-bottom:4px;font-size:16px}.settings-group>.hint{margin-bottom:16px}.setting{justify-content:space-between;align-items:center;gap:24px;padding:12px 0;display:flex}.setting+.setting{border-top:1px solid var(--border)}.setting .text{min-width:0}.setting .text .hint{margin-top:2px}.setting .control{flex:none;align-items:center;gap:8px;display:flex}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:10px 12px}.data-table th{color:var(--text-2);white-space:nowrap;font-size:12px;font-weight:600}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.data-table tr:hover td{background:var(--canvas)}.usage-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 32px;display:grid}.usage-item .row{justify-content:space-between;margin-bottom:6px;font-size:14px}@media (max-width:1180px){:root{--focus-w:312px;--nav-w:216px}}@media (max-width:1024px){.app,.app.nav-collapsed{grid-template-columns:minmax(0, 1fr) var(--focus-w);grid-template-areas:"bar bar""main focus"}.app .sidebar{z-index:50;visibility:visible;width:280px;transition:transform var(--t) var(--ease), visibility 0s linear var(--t);visibility:hidden;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app.nav-open .sidebar{visibility:visible;transition:transform var(--t) var(--ease);box-shadow:var(--shadow-float);transform:none}.nav-scrim{z-index:45;background:var(--overlay);position:fixed;inset:0}.appbar .brand{width:auto}.main-inner{padding:20px 24px 96px}}@media (min-width:1025px){.nav-scrim,.only-narrow{display:none!important}}@media (max-width:760px){.app,.app.nav-collapsed{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--appbar-h) minmax(0, 1fr) auto auto;grid-template-areas:"bar""main""mini""tabs"}.app.embedded{grid-template:"main"minmax(0,1fr)"mini""tabs"/minmax(0,1fr);height:auto;min-height:560px}.app.embedded .main{min-height:480px}.app .focus-panel{border-left:0;grid-area:main;display:none}.app.tab-focus .focus-panel{display:flex}.app.tab-focus .main,.appbar-search{display:none}.appbar-search.open{z-index:5;max-width:none;display:block;position:absolute;top:10px;left:8px;right:8px}.appbar{padding:0 8px 0 12px;position:relative}.sync-status .label-text{display:none}.main-inner{padding:16px 16px 32px}.task-actions{opacity:1}.task-actions .focus-btn span{display:none}.task-actions .focus-btn{justify-content:center;width:34px;padding:0}.mini-timer{border-top:1px solid var(--border);background:var(--accent-soft);grid-area:mini;align-items:center;gap:10px;min-width:0;padding:8px 8px 8px 16px;display:flex}.mini-timer.break{background:var(--success-soft)}.mini-timer .clock{letter-spacing:0;font-size:20px;font-weight:600}.app.tab-focus .mini-timer{display:none}.tabbar{border-top:1px solid var(--border);background:var(--canvas);padding-bottom:env(safe-area-inset-bottom);grid-area:tabs;grid-template-columns:repeat(3,1fr);display:grid}.tabbar button{height:56px;color:var(--text-2);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:500;display:flex}.tabbar button svg{width:20px;height:20px}.tabbar button[aria-current=page]{color:var(--accent-text)}.drawer{z-index:40;width:100%;box-shadow:none;border-left:0;position:fixed;top:0;bottom:0}.page-layout{padding:20px 16px 64px}.setting{flex-direction:column;align-items:stretch;gap:10px}.usage-list{grid-template-columns:1fr}.stat-row{grid-template-columns:1fr 1fr 1fr}.stat{padding:12px}.stat .value{font-size:22px}.prop-grid{grid-template-columns:96px minmax(0,1fr)}.app .drawer~.mini-timer{z-index:41;position:fixed;bottom:0;left:0;right:0}.app:has(.drawer) .mini-timer{z-index:41;position:fixed;bottom:0;left:0;right:0}}.trial-note{color:var(--accent);margin-top:-4px;font-weight:550}.auth-wrap{place-items:center;min-height:calc(100dvh - 65px);padding:40px 16px;display:grid}.auth-card{width:min(420px,100%)}.auth-card h1{letter-spacing:-.02em;font-size:26px}.code-input{font-family:var(--font-mono);letter-spacing:.4em;text-align:center;min-height:52px;font-size:22px}.admin{grid-template-columns:220px minmax(0,1fr);min-height:100dvh;display:grid}.admin-nav{border-right:1px solid var(--border);flex-direction:column;gap:2px;height:100dvh;padding:14px 10px;display:flex;position:sticky;top:0;overflow-y:auto}.admin-main{background:var(--surface);min-width:0}.admin-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;height:56px;padding:0 24px;display:flex}.admin-head h1{font-size:17px}.admin-body{flex-direction:column;gap:24px;padding:20px 24px 64px;display:flex}.admin-body h2{margin-bottom:10px;font-size:15px}.kpis{border:1px solid var(--border);border-radius:var(--r-lg);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid;overflow:hidden}.kpi{border-right:1px solid var(--border);border-bottom:1px solid var(--border);margin:0 -1px -1px 0;padding:14px 16px}.kpi .value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.kpi .label{font-size:12px}.admin .data-table td,.admin .data-table th{padding:8px 10px;font-size:13px}.panel{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:16px}.form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px;display:grid}.diff-add{color:var(--success)}.diff-del{color:var(--danger)}.mono{font-family:var(--font-mono);font-size:12px}@media (max-width:860px){.admin{grid-template-columns:1fr}.admin-nav{border-right:0;border-bottom:1px solid var(--border);flex-flow:wrap;height:auto;position:static}.admin-nav .nav-item{width:auto}}.share-page{max-width:760px;margin:0 auto;padding:32px 20px 80px}html[data-auth] .guest-only,html:not([data-auth]) .auth-only{display:none!important}.route-progress{z-index:200;pointer-events:none;opacity:0;height:2px;transition:opacity .2s .18s;position:fixed;inset:0 0 auto}.route-progress>div{background:var(--accent);transform-origin:0;height:100%;transition:transform .24s ease-out;transform:scaleX(0)}.route-progress[data-state=loading]{opacity:1;transition:none}.route-progress[data-state=idle]>div{transition:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.appbar,.sidebar,.focus-panel,.tabbar,.mini-timer,.add-row,.task-actions,.view-tools,.keyboard-hint,.site-header,.site-footer,.no-print{display:none!important}.app{height:auto;display:block;overflow:visible}.main,.main-scroll{overflow:visible}body{color:#000;background:#fff}.task{break-inside:avoid}}.only-touch{display:none}@media (hover:none),(max-width:760px){.only-touch{display:inline-flex}}@media (max-width:760px){.mobile-search-toggle{display:inline-flex!important}.appbar .lang-switch,.keyboard-hint{display:none}}@media (max-width:420px){.appbar .brand span{display:none}}
