:root{--bg:#f4f7fb;--panel:#fff;--ink:#26334d;--muted:#7e8aa3;--line:#e5eaf3;--blue:#7898d8;--blue-soft:#eaf1ff;--green:#6eb8a6;--green-soft:#e8f7f2;--purple:#9a86cd;--purple-soft:#f0ebfb;--yellow:#d4a84e;--yellow-soft:#fff7de;--red:#d97882;--red-soft:#fff0f1;--shadow:0 12px 36px rgba(67,84,123,.08);--r:20px;--rs:13px}
*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}
#app{display:grid;grid-template-columns:238px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:rgba(249,251,254,.94);border-right:1px solid var(--line);padding:26px 16px 18px;display:flex;flex-direction:column;z-index:20;backdrop-filter:blur(18px)}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 25px}.brand img{width:43px;height:43px;border-radius:14px;box-shadow:0 8px 20px rgba(120,152,216,.22)}.brand strong{font-size:21px;letter-spacing:.08em}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.sidebar nav p{margin:18px 12px 8px;color:#a0a9ba;font-size:11px;font-weight:700;letter-spacing:.15em}
.nav-item{width:100%;height:44px;border:0;background:transparent;border-radius:14px;text-align:left;padding:0 13px;display:flex;align-items:center;gap:11px;margin:3px 0;color:#68758f;transition:.18s}.nav-item span{font-size:19px;width:21px;text-align:center}.nav-item:hover{background:#eef3fb;color:var(--ink)}.nav-item.active{color:#587abf;background:var(--blue-soft);font-weight:700}.sidebar-foot{margin-top:auto}.sync-state{display:flex;align-items:center;gap:7px;color:#96a0b1;font-size:11px;padding:13px}.sync-state i{width:7px;height:7px;background:#65b59f;border-radius:50%}
main{min-width:0}.topbar{height:76px;display:flex;align-items:center;justify-content:flex-end;padding:0 34px;position:sticky;top:0;z-index:15;background:rgba(244,247,251,.83);backdrop-filter:blur(16px)}.top-actions{display:flex;gap:10px;align-items:center}.primary-btn,.soft-btn,.icon-btn,.mini-btn{border:0;border-radius:13px}.primary-btn{background:linear-gradient(135deg,#7f9ddd,#8b88ce);color:white;padding:11px 17px;box-shadow:0 7px 18px rgba(112,130,195,.24)}.soft-btn{background:white;padding:10px 15px;border:1px solid var(--line)}.avatar{width:38px;height:38px;border:0;border-radius:50%;background:linear-gradient(135deg,#dbeafd,#dcd3f3);color:#6279aa;font-weight:800}.menu-btn,.mobile-brand,.mobile-fab{display:none}.page{max-width:1440px;margin:0 auto;padding:14px 34px 70px}
.hero{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 25px}.hero h1{font-size:30px;margin:0 0 8px;letter-spacing:-.03em}.hero p{color:var(--muted);margin:0}.date-pill{background:#fff;border:1px solid var(--line);border-radius:15px;padding:10px 14px;color:#67748c;font-size:13px}
.grid{display:grid;gap:18px}.today-grid{grid-template-columns:minmax(0,1.7fr) minmax(300px,.82fr)}.stack{display:grid;gap:18px;align-content:start}.card{background:var(--panel);border:1px solid rgba(225,231,241,.9);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.card-head h2{font-size:16px;margin:0}.card-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.link-btn{border:0;background:transparent;color:#6688ca;padding:5px}.count{background:#edf2fa;color:#75829b;border-radius:99px;padding:3px 8px;font-size:11px}
.memo-list{display:grid;gap:9px}.memo{display:flex;gap:11px;align-items:center;background:linear-gradient(90deg,var(--purple-soft),#faf8ff);padding:11px 13px;border-radius:14px;border-left:3px solid var(--purple)}.memo time{font-size:11px;color:var(--purple);min-width:42px}.memo span{font-size:13px;line-height:1.45}.empty{padding:25px;text-align:center;color:#9aa4b6;background:#f8fafc;border-radius:15px;font-size:13px}.empty b{display:block;font-size:23px;margin-bottom:5px}
.task-groups{display:grid;gap:17px}.group-title{font-size:12px;color:#8994a8;display:flex;justify-content:space-between;margin-bottom:7px}.task{display:grid;grid-template-columns:23px 1fr auto;gap:10px;align-items:start;padding:12px 5px;border-bottom:1px solid #f0f2f6;cursor:pointer;border-radius:12px}.task:hover{background:#f8faff}.task:last-child{border-bottom:0}.check{width:20px;height:20px;border:2px solid #b8c4d8;border-radius:7px;background:#fff;margin-top:1px}.check.done{background:var(--green);border-color:var(--green);color:white}.task-title{font-size:14px;font-weight:650}.task-title.done{text-decoration:line-through;color:#a0a8b7}.task-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px;color:#929bad;font-size:11px}.tag{padding:2px 7px;border-radius:99px;background:#f1f4f9}.priority{width:6px;height:6px;border-radius:50%;display:inline-block}.p1{background:var(--red)}.p2{background:var(--yellow)}.p3{background:var(--blue)}.task-time{font-size:11px;color:#74819a;background:#f5f7fb;padding:5px 8px;border-radius:9px}.subtasks{margin-top:8px;padding-left:2px;color:#7f8aa0;font-size:12px}.subtasks span{display:block;margin-top:5px}
.countdown-wrap{display:flex;gap:10px;overflow:auto;padding-bottom:3px}.countdown{min-width:144px;background:linear-gradient(145deg,#edf5ff,#f4effd);border-radius:16px;padding:13px}.countdown small{color:#8994a8}.countdown strong{display:block;font-size:22px;color:#6f83ba;margin:7px 0 2px}.countdown span{font-size:12px;font-weight:650}.editable{cursor:pointer;transition:transform .16s,box-shadow .16s}.editable:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(74,91,126,.09)}
.focus-summary{display:grid;grid-template-columns:112px 1fr;gap:17px;align-items:center}.donut{width:110px;height:110px;border-radius:50%;background:conic-gradient(var(--blue) 0 42%,var(--green) 42% 71%,var(--purple) 71% 86%,#edf0f5 86%);display:grid;place-items:center}.donut:after{content:"";width:74px;height:74px;background:#fff;border-radius:50%;position:absolute}.donut-text{z-index:1;text-align:center}.donut-text strong{font-size:18px}.donut-text small{display:block;color:var(--muted);font-size:10px}.metric-list{display:grid;gap:9px}.metric{display:flex;justify-content:space-between;font-size:12px}.metric span{color:var(--muted)}.progress{height:7px;background:#edf0f5;border-radius:99px;overflow:hidden;margin-top:12px}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:99px}.encourage{margin:12px 0 0;padding:10px 12px;background:var(--green-soft);color:#4c8f7e;border-radius:12px;font-size:12px}
.view-tabs{display:flex;background:#e9edf4;border-radius:13px;padding:3px;gap:2px}.view-tabs button{border:0;background:transparent;padding:7px 13px;border-radius:10px;color:#7d879a;font-size:12px}.view-tabs button.active{background:#fff;color:#5879b9;box-shadow:0 2px 8px rgba(70,85,115,.1);font-weight:700}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:9px}.toolbar h2{font-size:20px;margin:0 7px}.circle-btn{border:1px solid var(--line);background:white;width:34px;height:34px;border-radius:11px}.select{border:1px solid var(--line);background:white;border-radius:11px;padding:8px 10px;font-size:12px}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;background:white}.weekday{padding:11px;text-align:center;color:#8b95a8;font-size:11px;background:#fafbfd;border-bottom:1px solid var(--line)}.daycell{min-height:124px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}.daycell:nth-child(7n){border-right:0}.daycell.muted{background:#fafbfc;color:#b9c0cd}.daycell.today{background:#f4f8ff}.daycell.drop-target{background:#eaf7f3;box-shadow:inset 0 0 0 2px var(--green)}.daynum{font-size:12px;width:25px;height:25px;display:grid;place-items:center;border-radius:9px;margin-bottom:6px}.today .daynum{background:var(--blue);color:white}.cal-item{font-size:10px;padding:4px 6px;border-radius:7px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-item.memo-i{background:var(--purple-soft);color:#7863a9}.cal-item.task-i{background:var(--blue-soft);color:#607bb5;cursor:grab}.cal-item.task-i:active{cursor:grabbing}.cal-item.dragging{opacity:.45}.cal-item.count-i{background:var(--green-soft);color:#4d9382}.more{font-size:10px;color:#8190aa;margin:5px}
.day-layout{display:grid;grid-template-columns:1fr 240px;gap:17px}.timeline{position:relative;padding-left:58px;min-height:780px;background:linear-gradient(#fff,#fff) padding-box,repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#edf0f5 60px);border-radius:18px;border:1px solid var(--line);overflow:hidden}.hour{position:absolute;left:12px;color:#9aa3b3;font-size:11px}.time-block{position:absolute;left:62px;right:12px;border-radius:12px;padding:8px 10px;border-left:4px solid;overflow:hidden;font-size:12px;box-shadow:0 4px 12px rgba(69,83,115,.07);cursor:grab;touch-action:none;user-select:none}.time-block.manipulating{cursor:grabbing;z-index:5;box-shadow:0 10px 25px rgba(70,86,120,.2)}.time-block strong{display:block}.time-block small{color:#72809a}.time-block.blue{background:#edf3ff;border-color:var(--blue)}.time-block.green{background:#eaf8f4;border-color:var(--green)}.time-block.purple{background:#f2edfb;border-color:var(--purple)}.resize-handle{position:absolute;left:12%;right:12%;height:10px;z-index:2;cursor:ns-resize}.resize-handle.top{top:-3px}.resize-handle.bottom{bottom:-3px}.resize-handle:after{content:"";position:absolute;left:40%;right:40%;top:4px;height:2px;border-radius:9px;background:rgba(87,108,149,.38)}
.goal-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}.goal-card{position:relative;overflow:hidden}.goal-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent,var(--blue))}.goal-top{display:flex;justify-content:space-between;gap:10px}.goal-top h3{margin:0 0 7px;font-size:16px}.goal-top p{margin:0;color:var(--muted);font-size:11px}.ring{--pct:50%;width:62px;height:62px;flex:none;border-radius:50%;background:conic-gradient(var(--accent,var(--blue)) var(--pct),#edf0f5 0);display:grid;place-items:center}.ring:after{content:"";width:46px;height:46px;border-radius:50%;background:white;position:absolute}.ring span{z-index:1;font-size:12px;font-weight:800}.milestone{margin-top:16px}.milestone-head{display:flex;justify-content:space-between;font-size:11px;color:#7f8a9e}.milestone .progress{margin-top:7px}.goal-foot{display:flex;justify-content:space-between;border-top:1px solid #edf0f4;margin-top:15px;padding-top:12px;color:#8490a4;font-size:11px}.status{padding:3px 8px;border-radius:99px;background:var(--green-soft);color:#4c907f}
.stats-grid{grid-template-columns:1.6fr .8fr}.chart{height:240px;display:flex;align-items:flex-end;gap:14px;padding:28px 8px 24px;border-bottom:1px solid var(--line);position:relative}.bar-wrap{height:100%;flex:1;display:flex;align-items:flex-end;justify-content:center;position:relative}.bar{width:min(36px,70%);height:var(--h);background:linear-gradient(180deg,#95afe3,#7898d8);border-radius:10px 10px 4px 4px}.bar.today-bar{background:linear-gradient(180deg,#8fd4c2,#63b19d)}.bar-wrap label{position:absolute;bottom:-20px;color:#8a95a8;font-size:10px}.bar-wrap small{position:absolute;bottom:calc(var(--h) + 6px);font-size:9px;color:#71809b}.insights{display:grid;gap:9px}.insight{padding:12px;background:#f7f9fc;border-radius:13px}.insight small{color:var(--muted)}.insight strong{display:block;margin-top:4px;font-size:17px}
.form{display:grid;gap:13px}.field{display:grid;gap:6px}.field label{font-size:11px;color:#7c879b;font-weight:650}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:#fafbfd;border-radius:12px;padding:10px 12px;outline:none}.field textarea{min-height:75px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#9db2df;box-shadow:0 0 0 3px #edf3ff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.modal-layer{position:fixed;inset:0;background:rgba(37,46,66,.28);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100;padding:18px}.modal{width:min(540px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;padding:24px;box-shadow:0 24px 80px rgba(43,54,78,.25)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{font-size:19px;margin:0}.close{border:0;background:#f1f4f8;border-radius:10px;width:32px;height:32px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.choice{border:1px solid var(--line);background:#fafbfd;padding:17px;border-radius:15px;text-align:left}.choice:hover{border-color:#a9b9dd;background:#f3f6fd}.choice b{display:block;margin-bottom:4px}.choice span{color:var(--muted);font-size:11px}
.focus-stage{text-align:center;padding:10px}.big-timer{font-size:62px;letter-spacing:.03em;font-variant-numeric:tabular-nums;margin:25px 0 10px}.preset-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.preset{border:1px solid var(--line);background:#f8fafc;padding:7px 12px;border-radius:99px}.focus-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}.focus-float{position:fixed;right:25px;bottom:25px;z-index:80;background:rgba(255,255,255,.94);backdrop-filter:blur(15px);border:1px solid var(--line);border-radius:18px;box-shadow:0 15px 45px rgba(48,62,91,.2);padding:10px 12px;display:flex;align-items:center;gap:10px;min-width:225px}.focus-orb{width:38px;height:38px;border-radius:13px;background:var(--blue-soft);display:grid;place-items:center;color:#6684c2}.focus-copy{display:grid;flex:1}.focus-copy span{font-size:10px;color:var(--muted)}.focus-copy strong{font-variant-numeric:tabular-nums}.mini-btn{width:31px;height:31px;background:#eef2f7}.mini-btn.danger{color:var(--red);background:var(--red-soft)}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:#303a50;color:white;border-radius:12px;padding:10px 15px;font-size:12px;z-index:200;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.settings-grid{grid-template-columns:1fr 1fr}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #edf0f4}.setting-row:last-child{border:0}.setting-row span{font-size:13px}.setting-row small{display:block;color:var(--muted);margin-top:3px}.toggle{width:42px;height:24px;border:0;border-radius:99px;background:#dfe4ec;padding:3px}.toggle:after{content:"";display:block;width:18px;height:18px;background:#fff;border-radius:50%;transition:.2s}.toggle.on{background:var(--green)}.toggle.on:after{transform:translateX(18px)}
.xiaozao-talk{display:inline-flex;align-items:center;gap:8px;margin-top:13px;padding:7px 11px 7px 7px;border-radius:15px;background:linear-gradient(100deg,#edf5ff,#effaf6 55%,#f5f0fc);color:#697690;font-size:12px;box-shadow:0 5px 16px rgba(80,99,139,.06)}.xiaozao-talk img{width:27px;height:27px;border-radius:9px}.modal-head{margin-bottom:12px}.modal-talk{display:flex;align-items:center;gap:9px;background:linear-gradient(100deg,var(--blue-soft),var(--green-soft),var(--purple-soft));border-radius:15px;padding:8px 11px;margin-bottom:17px;color:#687792;font-size:12px}.modal-talk img{width:30px;height:30px;border-radius:10px}.choice{transition:.16s}.choice:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(75,92,129,.08)}
.auth-layer{position:fixed;inset:0;z-index:500;background:linear-gradient(145deg,rgba(235,244,255,.97),rgba(235,249,244,.97) 52%,rgba(244,238,252,.97));display:grid;place-items:center;padding:20px}.auth-card{width:min(420px,100%);background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.8);box-shadow:0 28px 90px rgba(70,88,126,.18);border-radius:28px;padding:34px}.auth-card>img{width:62px;height:62px;border-radius:19px}.auth-card h1{font-size:25px;margin:17px 0 7px}.auth-card>p{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 22px}.auth-card>small{display:block;text-align:center;color:#9aa4b6;margin-top:18px}.auth-card .primary-btn{width:100%;margin-top:3px}.auth-error{min-height:18px;margin:0;color:var(--red);font-size:12px}.cloud-badge{display:inline-flex;align-items:center;gap:6px;color:#4d9382}.cloud-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.announcement-layer{position:fixed;inset:0;z-index:450;background:rgba(45,57,82,.35);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;opacity:0;transition:opacity .18s}.announcement-layer.visible{opacity:1}.announcement-card{width:min(780px,100%);max-height:82vh;overflow:auto;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,251,255,.98));border:1px solid rgba(255,255,255,.88);border-radius:30px;padding:27px;box-shadow:0 30px 100px rgba(41,54,82,.28);transform:translateY(10px) scale(.985);transition:transform .22s}.announcement-layer.visible .announcement-card{transform:none}.announcement-top{display:flex;gap:16px;align-items:center;padding:2px 3px 20px}.announcement-top img{width:61px;height:61px;border-radius:20px;box-shadow:0 10px 25px rgba(110,144,199,.2)}.announcement-top span{font-size:11px;color:#8390a7;font-weight:700;letter-spacing:.08em}.announcement-top h1{font-size:23px;margin:4px 0 5px}.announcement-top p{font-size:12px;color:var(--muted);margin:0}.announcement-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:13px}.announcement-section{background:#fff;border:1px solid var(--line);border-radius:19px;padding:15px}.announcement-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.announcement-title b{font-size:14px}.announcement-title span{font-size:10px;color:var(--muted)}.announcement-list{display:grid;gap:6px}.announcement-list>div{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:7px;background:#f7f9fc;border-radius:11px;padding:8px 9px;font-size:12px}.announcement-list time{font-size:10px;color:#8491a8}.announcement-list small{color:#8c97aa;font-size:10px;padding:4px}.memo-announcement>div{grid-template-columns:43px 1fr;background:var(--purple-soft)}.announcement-empty{text-align:center;color:#909bad;font-size:11px;padding:19px 8px;background:#f8fafc;border-radius:12px}.announcement-foot{display:flex;align-items:center;gap:10px;margin-top:13px;background:linear-gradient(100deg,var(--blue-soft),var(--green-soft),var(--purple-soft));border-radius:18px;padding:12px 14px}.announcement-foot>div{display:grid;gap:2px;min-width:130px}.announcement-foot span{font-size:10px;color:#7c899f}.announcement-foot strong{font-size:13px}.announcement-foot p{margin:0 0 0 auto;font-size:11px;color:#66758f}.announcement-hint{color:#fff;font-size:12px;margin:13px 0 0;text-shadow:0 2px 8px rgba(24,34,54,.25);cursor:pointer}
@media(max-width:1000px){#app{grid-template-columns:210px 1fr}.page{padding-left:20px;padding-right:20px}.today-grid,.stats-grid{grid-template-columns:1fr}.goal-grid{grid-template-columns:repeat(2,1fr)}.day-layout{grid-template-columns:1fr}.day-aside{display:none}}
@media(max-width:720px){#app{display:block}.sidebar{position:fixed;left:-260px;width:238px;transition:.22s;box-shadow:20px 0 50px rgba(42,53,76,.15)}.sidebar.open{left:0}.topbar{height:64px;padding:0 15px;justify-content:space-between}.menu-btn{display:block;background:white;width:38px;height:38px}.mobile-brand{display:block;font-weight:800;font-size:18px}.top-actions .soft-btn,.top-actions .primary-btn{display:none}.page{padding:10px 13px 88px}.hero{align-items:flex-start}.hero h1{font-size:24px}.hero .date-pill{display:none}.card{padding:16px;border-radius:18px}.today-grid,.goal-grid,.stats-grid,.settings-grid{grid-template-columns:1fr}.focus-summary{grid-template-columns:96px 1fr}.donut{width:94px;height:94px}.donut:after{width:62px;height:62px}.toolbar{align-items:flex-start;flex-wrap:wrap}.toolbar-right{width:100%;overflow:auto}.calendar{min-width:680px}.calendar-wrap{overflow:auto;border-radius:18px}.daycell{min-height:105px}.form-row{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr}.mobile-fab{display:grid;place-items:center;position:fixed;right:18px;bottom:19px;width:53px;height:53px;border:0;border-radius:18px;background:linear-gradient(135deg,var(--blue),var(--purple));color:white;font-size:24px;z-index:50;box-shadow:0 12px 28px rgba(100,119,183,.32)}.focus-float{left:12px;right:12px;bottom:82px}.big-timer{font-size:50px}.top-actions{gap:6px}.announcement-layer{padding:13px}.announcement-card{padding:19px;border-radius:24px;max-height:86vh}.announcement-top{gap:11px}.announcement-top img{width:49px;height:49px}.announcement-top h1{font-size:18px}.announcement-grid{grid-template-columns:1fr}.announcement-foot{align-items:flex-start;flex-wrap:wrap}.announcement-foot p{width:100%;margin:3px 0 0}.announcement-hint{margin-top:8px}}
