:root{font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;color:#172033;background:#f6f8fb;font-synthesis:none;letter-spacing:0;--accent: #2563eb;--accent-dark: #1d4ed8;--accent-soft: #eef4ff;--line: #e2e7ef;--muted: #667085;--surface: #ffffff;--radius: 6px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh}button,input,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(8,127,116,.18);outline-offset:2px}.app-shell{min-height:100dvh;display:block}.sidebar{display:none}.brand{height:44px;display:flex;align-items:center;gap:12px;padding:0 10px}.brand-mark{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:var(--radius);background:var(--accent);color:#fff}.brand div{display:grid;gap:2px}.brand strong{font-size:17px;font-weight:650}.brand span:not(.brand-mark){color:#7a8582;font-size:11px}.nav-list{display:grid;gap:3px;margin-top:36px}.nav-item{width:100%;height:42px;border:0;border-radius:var(--radius);padding:0 12px;display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:11px;color:#566460;background:transparent;text-align:left;transition:background .18s ease,color .18s ease}.nav-item:hover{color:#263330;background:#f2f6f5}.nav-item.active{color:var(--accent-dark);background:var(--accent-soft)}.nav-item.active svg{color:#19b7a7}.nav-item b{min-width:24px;height:22px;padding:0 7px;border-radius:11px;display:grid;place-items:center;color:#788581;background:#f1f4f3;font-size:11px;font-weight:600}.nav-item.active b{color:var(--accent-dark);background:#cce9e5}.sidebar-summary{margin-top:auto;padding:16px 10px;border-top:1px solid var(--line);color:#73807c;font-size:12px}.sidebar-summary strong{float:right;color:#33413d;font-weight:600}.progress-track{height:4px;margin-top:13px;overflow:hidden;border-radius:2px;background:#e7ecea}.progress-track i{display:block;height:100%;background:#19b7a7;transition:width .3s ease}.workspace{min-width:0;background:#f6f8fb}.topbar{position:sticky;top:0;height:68px;padding:0 clamp(24px,4vw,64px);display:flex;align-items:center;gap:14px;background:#fffffff7;border-bottom:1px solid var(--line);z-index:15}.mobile-brand{display:flex;align-items:center;gap:9px;margin-right:auto}.mobile-brand .brand-mark{width:32px;height:32px}.mobile-brand strong{color:#172033;font-size:16px}.search-box{width:min(320px,35vw);height:40px;padding:0 12px;display:flex;align-items:center;gap:9px;color:#7b8495;background:#f3f5f8;border:1px solid transparent;border-radius:var(--radius)}.search-box:focus-within{background:#fff;border-color:#8db1fb;box-shadow:0 0 0 3px #2563eb17}.search-box input{width:100%;border:0;outline:0;color:#1d2725;background:transparent}.search-box input::placeholder{color:#78837f}.search-box button,.form-title-row button,.error-banner button{padding:3px;display:grid;place-items:center;color:inherit;background:none;border:0}.primary-button,.secondary-button{min-height:40px;padding:0 16px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-weight:600;transition:transform .15s ease,background .15s ease}.primary-button{border:1px solid var(--accent);color:#fff;background:var(--accent)}.primary-button:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.primary-button:active,.secondary-button:active{transform:scale(.98)}.primary-button:disabled{cursor:not-allowed;opacity:.55}.user-menu{height:38px;padding-left:13px;display:flex;align-items:center;gap:8px;border-left:1px solid var(--line)}.user-menu img,.user-menu>span{width:30px;height:30px;flex:none;display:grid;place-items:center;object-fit:cover;color:#6b7774;background:#eef2f1;border-radius:50%}.user-menu strong{max-width:110px;overflow:hidden;color:#3e4a47;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.user-menu button{width:32px;height:32px;padding:0;display:grid;place-items:center;color:#75807d;background:transparent;border:0;border-radius:var(--radius)}.user-menu button:hover{color:#a43838;background:#faeded}.secondary-button{border:1px solid #cfd8d5;color:#33403d;background:#fff}.secondary-button:hover{border-color:#9eaaa7;background:#f7f9f8}.content{width:min(1180px,calc(100% - 64px));margin:0 auto;padding:42px 0 96px}.page-heading,.task-form,.task-list,.empty-state,.error-banner{width:100%}.page-heading{margin-bottom:28px;display:flex;justify-content:space-between;align-items:flex-end}.page-heading h1{margin:0 0 8px;font-size:clamp(27px,2.8vw,34px);line-height:1.15;font-weight:680}.page-heading p{margin:0;color:var(--muted);font-size:14px}.page-heading time{color:#7a8582;font-size:13px}.filter-tabs{height:46px;margin-bottom:22px;display:flex;align-items:stretch;gap:26px;border-bottom:1px solid var(--line)}.filter-tabs button{min-width:0;padding:0 1px;position:relative;display:inline-flex;align-items:center;gap:7px;color:#667085;background:transparent;border:0;white-space:nowrap;font-size:13px}.filter-tabs button:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:2px;background:transparent}.filter-tabs button:hover{color:#27324a}.filter-tabs button.active{color:var(--accent-dark);font-weight:600}.filter-tabs button.active:after{background:var(--accent)}.filter-tabs b{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;color:#7c8596;background:#eef1f5;border-radius:10px;font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}.filter-tabs button.active b{color:var(--accent-dark);background:var(--accent-soft)}.error-banner{min-height:46px;margin-bottom:16px;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;color:#a23a3a;background:#fff0f0;border:1px solid #efcaca;border-radius:var(--radius);font-size:14px}.task-form{margin-bottom:24px;padding:18px 20px 16px;display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-areas:"heading heading" "title date" "note note" "priority actions";gap:14px 18px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #19274b0d}.form-title-row{grid-area:heading;display:flex;align-items:center;gap:9px;color:#34423f}.form-title-row svg{color:var(--accent)}.form-title-row strong{font-size:15px}.form-title-row button{margin-left:auto;color:#687572}.field{display:grid;gap:7px}.full-field{grid-column:1 / -1}.title-field{grid-area:title}.date-field{grid-area:date}.note-field{grid-area:note}.field label{color:#45514e;font-size:12px;font-weight:600}.field input,.field textarea{width:100%;padding:10px 12px;color:#1d2725;background:#fbfcfc;border:1px solid #ccd5d3;border-radius:var(--radius);resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#78837f}.field input:focus,.field textarea:focus{outline:0;border-color:#7ba5fa;background:#fff;box-shadow:0 0 0 3px #2563eb17}.important-toggle{grid-area:priority;justify-self:start;align-self:end;height:40px;padding:0 12px;display:flex;align-items:center;gap:8px;color:#475451;border:1px solid #ccd5d3;border-radius:var(--radius);background:#fbfcfc;font-size:13px;cursor:pointer}.important-toggle input{position:absolute;opacity:0;pointer-events:none}.important-toggle svg{color:#8a9491}.important-toggle:has(input:checked){color:#765b00;background:#fffae6;border-color:#e6d281}.important-toggle:has(input:checked) svg{color:#b88b00}.form-actions{grid-area:actions;padding-top:2px;display:flex;justify-content:flex-end;gap:9px}.task-list{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 5px 18px #19274b09}.task-item{min-height:84px;padding:17px 18px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:14px;align-items:start;border-bottom:1px solid var(--line);transition:background .16s ease}.task-item:last-child{border-bottom:0}.task-item:hover{background:#fafcfc}.check-button{width:22px;height:22px;margin-top:1px;padding:0;display:grid;place-items:center;color:transparent;background:#fff;border:1.5px solid #a8b3b0;border-radius:50%;transition:all .15s ease}.check-button:hover{border-color:var(--accent);color:#83bdb6}.task-item.completed .check-button{color:#fff;background:var(--accent);border-color:var(--accent)}.task-title-line{display:flex;align-items:center;gap:7px}.task-title-line h2{margin:0;color:#1b2422;font-size:15px;line-height:1.45;font-weight:620;word-break:break-word}.important-star{flex:none;color:#c49300}.task-copy p{margin:5px 0 0;max-width:66ch;color:#67716f;font-size:13px;line-height:1.55;word-break:break-word}.task-meta{margin-top:8px;display:flex;align-items:center;gap:5px;color:#76817e;font-size:12px}.task-meta.overdue{color:#b03d3d}.task-item.completed .task-title-line h2{color:#8c9592;text-decoration:line-through}.task-item.completed .task-copy p,.task-item.completed .task-meta,.task-item.completed .important-star{opacity:.58}.task-actions{display:flex;gap:3px;opacity:0;transition:opacity .15s ease}.task-item:hover .task-actions,.task-actions:focus-within{opacity:1}.task-actions button{width:34px;height:34px;display:grid;place-items:center;color:#64706d;background:transparent;border:0;border-radius:var(--radius)}.task-actions button:hover{color:#1d2926;background:#e7ecea}.task-actions button:last-child:hover{color:#ad3535;background:#faeaea}.loading-list{display:grid}.task-skeleton{height:88px;padding:18px 6px;display:grid;grid-template-columns:28px 1fr 60px;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.task-skeleton i,.task-skeleton span,.task-skeleton b{display:block;background:linear-gradient(90deg,#e6ebe9 25%,#f2f5f4,#e6ebe9 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.task-skeleton i{width:22px;height:22px;border-radius:50%}.task-skeleton span{width:60%;height:14px;border-radius:4px}.task-skeleton b{height:28px;border-radius:4px}@keyframes shimmer{to{background-position:-200% 0}}.empty-state{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:1px solid var(--line);border-radius:8px}.empty-icon{width:66px;height:66px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft);border-radius:50%}.empty-state h2{margin:18px 0 7px;font-size:17px}.empty-state p{margin:0 0 20px;color:var(--muted);font-size:13px}.mobile-nav{display:none}.toast{position:fixed;right:28px;bottom:28px;min-height:44px;padding:0 15px;display:flex;align-items:center;gap:8px;color:#fff;background:#182522;border-radius:var(--radius);box-shadow:0 10px 30px #101e1b2e;font-size:13px;z-index:40}.toast svg{color:#3bc7b7}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(8px)}@media(max-width:760px){.app-shell{display:block}.sidebar{display:none}.workspace{min-height:100dvh}.topbar{position:sticky;top:0;height:64px;padding:0 16px;justify-content:initial;z-index:15}.mobile-brand{display:flex;align-items:center;gap:8px}.mobile-brand .brand-mark{width:30px;height:30px}.mobile-brand strong{font-size:15px}.search-box{width:auto;min-width:0;flex:1;margin-left:5px}.top-add{width:40px;padding:0}.top-add span{display:none}.user-menu{padding-left:8px}.user-menu strong,.user-menu img,.user-menu>span{display:none}.content{width:auto;padding:30px 16px 80px}.page-heading{margin-bottom:23px}.page-heading h1{font-size:27px}.page-heading time{display:none}.filter-tabs{margin-right:-16px;overflow-x:auto;gap:22px;scrollbar-width:none}.filter-tabs::-webkit-scrollbar{display:none}.task-form{grid-template-columns:1fr;grid-template-areas:"heading" "title" "note" "date" "priority" "actions";padding:18px}.title-field,.note-field,.field,.full-field,.form-title-row,.form-actions{grid-column:1}.important-toggle{align-self:auto}.task-item{grid-template-columns:28px minmax(0,1fr);padding:16px 2px}.task-actions{grid-column:2;opacity:1;justify-content:flex-end;margin-top:-3px}.task-actions button{width:32px;height:32px}.mobile-nav{position:fixed;inset:auto 0 0;height:68px;padding:6px 10px max(6px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);background:#fffffffa;border-top:1px solid var(--line);z-index:20}.mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#7a8582;background:none;border:0;font-size:10px}.mobile-nav button.active{color:var(--accent)}.toast{right:16px;bottom:82px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.auth-loading{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:13px}.auth-loading p{margin:0}.login-page,.whitelist-page{min-height:100dvh;display:grid;grid-template-rows:78px minmax(0,1fr) 56px;background:#f6f8fb}.auth-header{width:min(1180px,calc(100% - 64px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce4e1}.auth-brand{display:flex;align-items:center;gap:11px}.auth-brand>div{display:grid;gap:2px}.auth-brand strong{font-size:16px;font-weight:650}.auth-brand span:not(.brand-mark){color:#7b8683;font-size:10px}.auth-header-note{color:#75817d;font-size:12px}.back-link{display:inline-flex;align-items:center;gap:7px;color:#52605c;font-size:12px;text-decoration:none}.back-link:hover{color:var(--accent-dark)}.auth-layout{width:min(1060px,calc(100% - 64px));margin:auto;padding:54px 0 66px;display:grid;grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:clamp(64px,9vw,126px)}.auth-intro{align-self:center}.section-index{display:block;margin-bottom:18px;color:var(--accent-dark);font-size:12px;font-weight:650}.auth-intro h1{max-width:620px;margin:0;color:#17201e;font-size:clamp(36px,4.4vw,56px);line-height:1.22;font-weight:680;text-wrap:balance}.auth-intro>p{max-width:510px;margin:24px 0 0;color:#64706c;font-size:15px;line-height:1.9;text-wrap:pretty}.auth-feature-list{margin-top:34px;display:grid;gap:14px}.auth-feature-list span{display:flex;align-items:center;gap:10px;color:#4b5955;font-size:13px}.auth-feature-list svg{color:var(--accent)}.auth-steps{margin:36px 0 0;padding:0;display:grid;list-style:none}.auth-steps li{min-height:66px;padding:13px 0;display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;border-top:1px solid #dce4e1}.auth-steps li:last-child{border-bottom:1px solid #dce4e1}.auth-steps b{color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums}.auth-steps span{color:#697570;font-size:12px;line-height:1.6}.auth-steps strong{display:block;color:#26312e;font-size:13px;font-weight:650}.auth-surface{padding:30px;background:#fff;border:1px solid #d9e2df;border-radius:8px;box-shadow:0 18px 50px #1c383112}.surface-heading{margin-bottom:26px;display:flex;align-items:center;gap:12px}.surface-icon{width:42px;height:42px;flex:none;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft);border-radius:7px}.surface-heading h2{margin:0 0 4px;color:#1c2623;font-size:18px;font-weight:650}.surface-heading p{margin:0;color:#7a8582;font-size:11px}.login-surface .error-banner{width:100%;margin-top:-8px;text-align:left}.douyin-login-button{width:100%;height:46px;display:flex;align-items:center;justify-content:center;gap:9px;color:#fff;background:#191b1f;border:1px solid #191b1f;border-radius:var(--radius);font-size:14px;font-weight:650;transition:background .18s ease,transform .18s ease}.douyin-login-button:hover{background:#050607}.douyin-login-button:active{transform:scale(.985)}.douyin-inapp-button{width:100%;height:44px;margin-top:10px;color:#303a38;background:#fff;border:1px solid #cbd5d2;border-radius:var(--radius);font-size:13px;font-weight:600}.douyin-inapp-button:hover{border-color:var(--accent);color:var(--accent-dark);background:#f7fbfa}.douyin-note{width:21px;height:21px;display:grid;place-items:center;color:#fff;border-left:2px solid #25f4ee;border-right:2px solid #fe2c55;border-radius:5px;font-size:16px;line-height:1}.auth-divider{height:1px;margin:26px 0 19px;position:relative;background:#e5eae8;text-align:center}.auth-divider span{position:relative;top:-8px;padding:0 10px;color:#8a9491;background:#fff;font-size:10px}.consent-copy{margin:0;color:#798480;font-size:11px;line-height:1.75;text-align:center;text-wrap:pretty}.qr-wrap{width:276px;height:276px;margin:0 auto;padding:8px;display:grid;place-items:center;background:#fff;border:1px solid #dfe6e4;border-radius:7px}.qr-wrap img{width:258px;height:258px;display:block}.qr-loading{width:276px;height:276px;margin:0 auto;display:grid;place-items:center;color:#7d8885;background:#f7f9f8;border:1px solid #e1e8e5;border-radius:7px;font-size:13px}.copy-link{margin:16px auto 0;display:block;color:var(--accent-dark);font-size:12px;text-align:center;text-decoration:none}.copy-link:hover{text-decoration:underline}.security-note{margin-top:22px;padding-top:17px;display:flex;align-items:flex-start;gap:8px;color:#7a8582;border-top:1px solid #e5eae8;font-size:10px;line-height:1.6}.security-note svg{flex:none;color:#5c9890}.success-banner{width:100%;margin:-8px 0 16px;padding:10px 11px;display:flex;align-items:flex-start;gap:8px;color:#206c55;background:#eef9f4;border:1px solid #c9e9da;border-radius:var(--radius);font-size:12px;line-height:1.5}.success-banner svg{flex:none;margin-top:1px}.auth-footer{width:min(1180px,calc(100% - 64px));margin:0 auto;display:flex;align-items:center;color:#8a9491;border-top:1px solid #dce4e1;font-size:10px}@media(max-width:820px){.login-page,.whitelist-page{grid-template-rows:66px auto 50px}.auth-header,.auth-footer{width:calc(100% - 32px)}.auth-header-note{display:none}.auth-layout{width:calc(100% - 32px);padding:34px 0 52px;grid-template-columns:1fr;gap:34px}.auth-intro h1{font-size:clamp(31px,9vw,42px)}.auth-intro>p{margin-top:16px;font-size:14px;line-height:1.75}.auth-feature-list{margin-top:25px}.auth-steps{margin-top:27px}.auth-surface{width:100%;padding:24px 20px}.login-layout .auth-intro{padding-top:10px}.qr-wrap,.qr-loading{width:min(276px,100%);aspect-ratio:1;height:auto}.qr-wrap img{width:100%;height:auto}}
