:root{color:#16313a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#dfeff0;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background-color:#0000;background-image:radial-gradient(circle at 18% 12%,#6fcfbe6b,#0000 28rem),radial-gradient(circle at 80% 8%,#ffb77857,#0000 26rem),linear-gradient(135deg,#e9f8f4 0%,#d7ecf4 44%,#f6ece1 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:120% 120%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:320px;min-height:100vh;margin:0;animation:20s ease-in-out infinite alternate backgroundDrift}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{isolation:isolate;width:min(1440px,100%);min-height:100vh;margin:0 auto;padding:28px;position:relative}.app-shell:before{z-index:-2;pointer-events:none;content:"";background-image:linear-gradient(#194f5909 1px,#0000 1px),linear-gradient(90deg,#194f5909 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000c,#0000 76%);mask-image:linear-gradient(#000c,#0000 76%)}.ambient{z-index:-1;filter:blur(4px);opacity:.58;pointer-events:none;animation:12s ease-in-out infinite alternate floatSoft;position:fixed}.ambient-one{background:#5bc4be42;border-radius:50%;width:21rem;height:21rem;top:18%;left:6%}.ambient-two{background:#ffd3a157;border-radius:48% 52% 40% 60%;width:24rem;height:24rem;animation-delay:-5s;bottom:8%;right:8%}.glass{--spotlight-x:50%;--spotlight-y:0%;background:radial-gradient(circle at var(--spotlight-x) var(--spotlight-y), #ffffffd1, #6dd4cd29 8rem, transparent 18rem), #ffffff70;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid #ffffff9e;box-shadow:0 24px 80px #2a5b6524}.click-spark-layer{z-index:40;pointer-events:none;position:fixed;inset:0}.click-spark{left:var(--spark-x);top:var(--spark-y);width:1px;height:1px;position:absolute}.click-spark i{width:7px;height:2px;transform:rotate(var(--spark-angle)) translateX(0);transform-origin:0;background:linear-gradient(90deg,#1aa69d,#6fb3df00);border-radius:999px;animation:.68s cubic-bezier(.2,.8,.2,1) forwards clickSpark;position:absolute;top:0;left:0;box-shadow:0 0 12px #25aaa066}.topbar{border-radius:24px;justify-content:space-between;align-items:center;gap:20px;min-height:128px;padding:26px 30px;animation:.52s both riseIn;display:flex;position:relative;overflow:hidden}.topbar:after{pointer-events:none;content:"";background:linear-gradient(110deg,#0000 0 35%,#ffffff61 48%,#0000 62% 100%);animation:8s ease-in-out infinite sheen;position:absolute;inset:0;transform:translate(-130%)}.topbar h1,.panel h2{color:#10282f;letter-spacing:0;margin:0}.topbar h1{max-width:780px;font-size:clamp(2rem,5vw,4.4rem);line-height:1.02}.eyebrow{color:#4e7378;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.74rem;font-weight:800}.date-pill,.advice-badge,.metric,.task-meta,.habit-stats,.recent-item,.history-date{align-items:center;gap:8px;display:inline-flex}.date-pill{color:#244b53;background:#ffffff9e;border-radius:999px;flex:none;padding:12px 16px;font-weight:700}.view-tabs{z-index:5;border-radius:18px;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:18px 0;padding:8px;animation:.56s 80ms both riseIn;display:grid;position:sticky;top:14px}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #25aaa047}.view-tabs button,.segmented button,.mode-switch button{color:#355f66;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:42px;font-weight:800;display:inline-flex}.view-tabs button.active,.segmented button.active,.mode-switch button.active{color:#0e5560;background:#ffffffc7;box-shadow:0 10px 28px #2e6b7521}.view-tabs button,.primary-button,.ghost-button,.danger-button,.icon-button,.text-button,.habit-item,.task-item,.recent-item,.history-chip{transition:transform .18s,box-shadow .18s,background-color .18s,border-color .18s,color .18s}.view-tabs button:hover,.ghost-button:hover,.icon-button:hover,.habit-item:hover,.task-item:hover{transform:translateY(-1px)}.primary-button:hover,.danger-button:hover{transform:translateY(-2px);box-shadow:0 18px 34px #1f809145}.dashboard-grid,.stats-layout{grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);align-items:start;gap:18px;display:grid}.panel{border-radius:24px;padding:22px;transition:transform .22s,box-shadow .22s,border-color .22s;animation:.6s both riseIn}.panel:hover{border-color:#ffffffc7;box-shadow:0 28px 90px #2a5b652e}.panel-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.panel h2{font-size:clamp(1.35rem,2vw,2rem);line-height:1.15}.todo-panel{grid-row:span 2}.habits-panel{grid-column:1/-1}.advice-badge{color:#104d55;background:#7bdccb57;border-radius:999px;flex:none;max-width:220px;padding:9px 12px;font-weight:800}.advice-badge.rest{color:#7b4b13;background:#ffc79261}.advice-badge.light{color:#2a577a;background:#b5ddff75}.advice-badge.review{color:#4b6820;background:#ceec9e6b}.date-controls,.task-form,.habit-form,.timer-actions,.range-fields{align-items:center;gap:10px;display:flex}.date-controls{margin-bottom:18px}input,select,textarea{color:#18383f;background:#ffffff9e;border:1px solid #4b7d842e;border-radius:14px;outline:none;width:100%;min-height:44px;padding:10px 12px;transition:border-color .16s,box-shadow .16s,background-color .16s}textarea{resize:vertical;min-height:84px}input:focus,select:focus,textarea:focus{border-color:#2f97978f;box-shadow:0 0 0 4px #56beb32e}.sliders{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.sliders label,.field{color:#315a62;gap:8px;font-weight:800;display:grid}input[type=range]{accent-color:#39a9a2;padding:0}.advice-copy{color:#315a62;margin:18px 0;line-height:1.7}.metric-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.metric{text-align:center;background:#ffffff7a;border-radius:18px;flex-direction:column;justify-content:center;min-height:86px;padding:12px}.metric span{color:#5d7a7e;font-size:.82rem}.metric strong{color:#15343b}.primary-button,.ghost-button,.danger-button,.icon-button,.text-button{white-space:nowrap;border:0;border-radius:13px;justify-content:center;align-items:center;gap:8px;min-height:42px;font-weight:900;display:inline-flex}.primary-button{color:#f8fffd;background:linear-gradient(135deg,#179b91,#2f7fb7);padding:0 16px;box-shadow:0 14px 26px #1f809138}.ghost-button{color:#255a63;background:#ffffff94;padding:0 14px}.danger-button{color:#fff7f2;background:linear-gradient(135deg,#d96d5e,#b64d72);padding:0 16px}.icon-button{color:#245b62;background:#ffffff9e;flex:0 0 44px;width:44px}.text-button{color:#688185;background:0 0}.compact{min-height:36px;padding:0 12px}.large{border-radius:16px;min-height:52px;padding:0 22px}.task-form{grid-template-columns:minmax(0,1fr) 110px auto;margin-bottom:16px;display:grid}.task-list,.habit-list,.recent-list,.history-list{gap:10px;display:grid}.task-item{background:#ffffff8a;border:1px solid #ffffff52;border-radius:18px;grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px;display:grid}.task-item.done .task-main h3{color:#80979a;text-decoration:line-through}.check-button{color:#fff;background:#ffffff8f;border:2px solid #2e938f52;border-radius:10px;width:30px;height:30px}.task-item.done .check-button{background:#2faaa0;border-color:#2faaa0;animation:.22s popCheck}.task-main{min-width:0}.task-main h3{color:#17363d;text-overflow:ellipsis;white-space:nowrap;margin:0 0 6px;font-size:1rem;overflow:hidden}.task-meta{color:#698488;flex-wrap:wrap;font-size:.82rem}.habit-form{margin-bottom:14px}.habit-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.habit-item{color:#21484f;text-align:left;background:#ffffff80;border:1px solid #ffffffb3;border-radius:18px;grid-template-columns:34px minmax(0,1fr);gap:8px 10px;min-height:84px;padding:14px;display:grid}.habit-item.checked{background:#90dabc7a;border-color:#4fb2895c}.habit-icon{background:#ffffffb8;border-radius:12px;grid-row:span 2;place-items:center;width:34px;height:34px;display:grid}.habit-name{text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.habit-stats{color:#59777b;font-size:.82rem}.gold-icon{color:#c28b1d}.timer-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:stretch;gap:18px;display:grid}.timer-card{min-height:580px;display:grid;position:relative;overflow:hidden}.timer-card:before{z-index:-1;content:"";opacity:.8;filter:blur(12px);background:radial-gradient(circle at 50% 45%,#29ada02e,#0000 36%),radial-gradient(circle at 58% 52%,#6ca2d82e,#0000 42%);border-radius:28px;position:absolute;inset:18px}.mode-switch,.segmented{background:#ffffff6b;border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:190px;padding:6px;display:inline-grid}.timer-face{align-content:center;place-items:center;gap:18px;display:grid}.timer-face p{color:#55767a;margin:0;font-weight:800}.timer-ring{--progress:0%;aspect-ratio:1;background:radial-gradient(circle at center, #ffffffbd 0 58%, transparent 59%), conic-gradient(#1ea39b var(--progress), #ffffff8c 0);border-radius:50%;place-items:center;width:min(370px,76vw);transition:background .22s linear,transform .22s;animation:3.8s ease-in-out infinite timerBreath;display:grid;position:relative;box-shadow:inset 0 0 36px #ffffffd1,0 28px 80px #1e798929}.timer-ring:after{content:"";border-radius:inherit;filter:blur(1px);opacity:.7;background:conic-gradient(#0000 0deg,#23ada400 60deg,#23ada461 98deg,#6bacdb6b 126deg,#0000 168deg 360deg);animation:7s linear infinite spinGlow;position:absolute;inset:-12px;-webkit-mask:radial-gradient(circle,#0000 0 61%,#000 62% 68%,#0000 69%);mask:radial-gradient(circle,#0000 0 61%,#000 62% 68%,#0000 69%)}.timer-ring span{z-index:1;color:#102d34;font-variant-numeric:tabular-nums;font-size:clamp(3rem,11vw,6.6rem);font-weight:900;position:relative}.timer-actions{flex-wrap:wrap;justify-content:center;align-self:end}.timer-settings{align-content:start;gap:18px;display:grid}.mode-note{color:#315a62;background:#ffffff80;border-radius:16px;align-items:center;gap:10px;min-height:52px;padding:12px 14px;font-weight:800;line-height:1.5;display:flex}.recent-item{background:#ffffff7a;border-radius:14px;justify-content:space-between;min-height:44px;padding:10px 12px}.recent-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wide-panel{grid-column:span 2}.range-fields{flex-wrap:wrap}.range-fields input{width:160px}.bar-chart{gap:14px;display:grid}.bar-row{grid-template-columns:minmax(110px,180px) minmax(140px,1fr) 100px;align-items:center;gap:12px;display:grid}.bar-row span{color:#315a62;text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.bar-track{background:#ffffff8f;border-radius:999px;height:16px;overflow:hidden}.bar-fill{border-radius:inherit;background:linear-gradient(90deg,#25aaa0,#6fb3df);height:100%;animation:.52s both growBar}.donut-wrap{place-items:center;gap:16px;display:grid;position:relative}.donut{width:min(250px,70vw);transform:rotate(-90deg)}.donut circle{fill:#0000;stroke:#ffffffa8;stroke-width:5px}.donut-segment{stroke-width:5px}.segment-0{stroke:#1fa59d;background:#1fa59d}.segment-1{stroke:#629fd3;background:#629fd3}.segment-2{stroke:#efad68;background:#efad68}.segment-3{stroke:#7fca85;background:#7fca85}.segment-4{stroke:#ca7fb2;background:#ca7fb2}.donut-center{color:#17363d;place-items:center;display:grid;position:absolute;top:92px}.donut-center strong{font-size:1.28rem}.donut-center span,.muted{color:#668388}.legend{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.legend span{color:#3c636a;align-items:center;gap:6px;font-size:.86rem;font-weight:800;display:inline-flex}.legend-dot{border-radius:50%;width:10px;height:10px}.big-number{color:#103139;margin:26px 0 8px;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:900}.timeline{grid-auto-columns:minmax(34px,1fr);grid-auto-flow:column;align-items:end;gap:10px;height:220px;padding:10px 0 2px;display:grid;overflow-x:auto}.day-column{color:#628085;grid-template-rows:1fr auto;justify-items:center;gap:8px;height:100%;font-size:.78rem;font-weight:800;display:grid}.day-bar{background:linear-gradient(#2eb1a4,#7bb7dd);border-radius:999px 999px 8px 8px;align-self:end;width:100%;max-width:44px;animation:.56s both growColumn}.history-panel{min-height:560px}.account-layout{grid-template-columns:minmax(360px,.85fr) minmax(0,1.15fr);align-items:start;gap:18px;display:grid}.account-card{position:sticky;top:98px}.cloud-icon{color:#1f8f9b}.account-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.sync-status,.account-message{color:#315a62;background:#ffffff75;border-radius:14px;margin:14px 0 0;padding:12px 14px;line-height:1.6}.account-message{color:#0e5960;font-weight:800}.account-actions,.login-form{gap:12px;display:grid}.account-actions{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.login-form{grid-template-columns:1fr}.admin-card{min-height:500px}.admin-create-form{grid-template-columns:1fr 1fr 1fr 150px auto;gap:10px;margin-bottom:16px;display:grid}.admin-user-list{gap:10px;display:grid}.admin-user-row{background:#ffffff80;border-radius:18px;grid-template-columns:minmax(150px,1fr) minmax(140px,1fr) 130px auto minmax(130px,.9fr) auto auto;align-items:center;gap:10px;padding:12px;display:grid}.admin-user-row.disabled{opacity:.62}.admin-user-title{color:#224a52;align-items:center;gap:10px;min-width:0;display:flex}.admin-user-title div{gap:2px;min-width:0;display:grid}.admin-user-title strong,.admin-user-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-user-title span{color:#6b8589;font-size:.82rem;font-weight:800}.history-day{background:#ffffff7a;border-radius:18px;grid-template-columns:220px minmax(0,1fr);gap:14px;padding:16px;display:grid}.history-date{color:#244b53;flex-direction:column;align-items:flex-start}.history-date span{color:#6a8589}.history-content{flex-wrap:wrap;gap:8px;display:flex}.history-chip{color:#325e65;background:#ffffff9e;border-radius:999px;padding:8px 10px;font-weight:800}.history-chip.done{color:#678184;text-decoration:line-through}.history-chip.focus{color:#0d6565;background:#7edacb57}.empty-state{color:#6a8589;text-align:center;background:#ffffff6b;border-radius:16px;margin:0;padding:20px}@keyframes backgroundDrift{0%{background-position:0 0}to{background-position:100% 45%}}@keyframes floatSoft{0%{transform:translate(0,0)scale(1)}to{transform:translate(18px,-14px)scale(1.04)}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sheen{0%,62%{transform:translate(-130%)}78%,to{transform:translate(130%)}}@keyframes timerBreath{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}@keyframes popCheck{0%{transform:scale(.86)}70%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes clickSpark{0%{opacity:1;transform:rotate(var(--spark-angle)) translateX(0) scaleX(.4)}62%{opacity:1}to{opacity:0;transform:rotate(var(--spark-angle)) translateX(34px) scaleX(1.2)}}@keyframes spinGlow{to{transform:rotate(360deg)}}@keyframes growBar{0%{transform-origin:0;transform:scaleX(.2)}to{transform-origin:0;transform:scaleX(1)}}@keyframes growColumn{0%{transform-origin:bottom;transform:scaleY(.12)}to{transform-origin:bottom;transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=980px){.app-shell{padding:18px}.topbar,.panel-heading{flex-direction:column}.dashboard-grid,.timer-layout,.stats-layout,.account-layout{grid-template-columns:1fr}.account-card{position:static}.admin-create-form,.admin-user-row{grid-template-columns:1fr}.wide-panel,.habits-panel{grid-column:auto}.todo-panel{grid-row:auto}}@media (width<=640px){.app-shell{padding:12px}.topbar,.panel{border-radius:18px;padding:16px}.topbar h1{font-size:2.25rem}.view-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.view-tabs button{min-height:48px}.view-tabs span{display:none}.sliders,.metric-row,.account-summary,.account-actions,.task-form{grid-template-columns:1fr}.task-item{grid-template-columns:34px minmax(0,1fr)}.task-item .ghost-button,.task-item .text-button{grid-column:2;width:fit-content}.bar-row{grid-template-columns:1fr;gap:6px}.history-day{grid-template-columns:1fr}.timer-ring{width:min(310px,82vw)}}
