:root{--ink:#272520;--muted:#817c73;--paper:#f7f4ed;--card:#fffdfa;--tomato:#dd624a;--tomato-dark:#bd4936;--line:#e8e1d7;--sage:#9daa8a}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans SC",sans-serif}.app-shell{min-height:100vh;display:grid;grid-template-columns:218px 1fr}.sidebar{background:#ece6da;min-height:100vh;padding:38px 24px;display:flex;flex-direction:column}.brand{font-family:"Playfair Display","Noto Sans SC",serif;font-size:26px;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:1px}.brand-mark{font-family:Arial;color:var(--tomato);font-size:19px;margin-right:8px}nav{display:grid;gap:7px;margin-top:72px}.nav-item,.settings-btn{border:0;background:transparent;text-align:left;color:#716b63;font:500 14px "Noto Sans SC";padding:11px 13px;border-radius:8px;cursor:pointer}.nav-item span{display:inline-block;width:23px;font-size:16px}.nav-item.active{background:#fffdf9;color:var(--ink);box-shadow:0 2px 10px #b9ad9b2b}.quote{margin-top:auto;border-left:2px solid #c9bfaf;padding:5px 0 5px 12px;color:#948d82;font-size:12px;line-height:1.9}.settings-btn{margin-top:24px;padding-left:4px}.content{max-width:1080px;width:100%;margin:0 auto;padding:48px 55px}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:38px}.eyebrow,.section-kicker{margin:0;color:var(--muted);font-size:12px;letter-spacing:1.5px}.eyebrow{text-transform:uppercase}h1,h2{font-family:"Playfair Display","Noto Sans SC",serif;margin:7px 0 0;font-size:38px;letter-spacing:.5px}.icon-button{border:1px solid var(--line);background:transparent;border-radius:50%;width:39px;height:39px;font-size:22px;color:#777;cursor:pointer}.view{display:none}.view.active{display:block}.focus-layout{display:grid;grid-template-columns:minmax(420px,1.3fr) minmax(240px,.7fr);gap:24px}.timer-card,.now-card,.chart-card{background:var(--card);border:1px solid #eee8de;box-shadow:0 12px 35px #9b85650d}.timer-card{padding:28px 36px 23px;text-align:center}.mode-tabs{display:flex;justify-content:center;gap:22px}.mode-tab{border:0;background:none;padding:5px 0;color:#918b82;font:500 13px "Noto Sans SC";cursor:pointer;border-bottom:1px solid transparent}.mode-tab.active{color:var(--tomato);border-color:var(--tomato)}.timer-wrap{height:292px;position:relative;display:grid;place-items:center}.timer-ring{position:absolute;width:260px;height:260px;transform:rotate(-90deg)}.ring-track,.ring-progress{fill:none;stroke-width:5}.ring-track{stroke:#f0e9de}.ring-progress{stroke:var(--tomato);stroke-linecap:round;stroke-dasharray:703.72;stroke-dashoffset:0;transition:stroke-dashoffset .5s linear,stroke .3s}.timer-display{position:relative;display:grid;gap:7px}.timer-display span{font-family:"DM Mono",monospace;font-size:61px;letter-spacing:-4px}.timer-display small{font-size:12px;color:var(--muted);letter-spacing:2px}.timer-actions{display:flex;justify-content:center;gap:11px}.secondary-btn,.start-btn,.add-task-btn,.task-form button{border:0;cursor:pointer;border-radius:5px;font:600 13px "Noto Sans SC"}.secondary-btn{background:#f1ede6;color:#746d64;padding:13px 21px}.start-btn{background:var(--tomato);color:#fff;padding:13px 24px;box-shadow:0 5px 11px #d15b4538}.start-btn:hover{background:var(--tomato-dark)}.cycle-note{font-size:11px;color:#a09a91;margin:23px 0 0}.cycle-note span{color:var(--tomato);letter-spacing:2px}.now-card{padding:31px 28px;display:flex;flex-direction:column}.current-task{font-family:"Playfair Display","Noto Sans SC",serif;font-size:23px;line-height:1.6;margin:22px 0 12px}.link-button{border:0;background:none;color:var(--tomato);padding:0;font:500 13px "Noto Sans SC";text-align:left;cursor:pointer}.mini-stats{display:flex;gap:30px;margin-top:auto;padding-top:33px;border-top:1px solid var(--line)}.mini-stats div{display:grid;gap:3px}.mini-stats span{font-family:"DM Mono";font-size:25px}.mini-stats small{font-size:11px;color:var(--muted)}.ambient-row{margin-top:24px;padding:22px 27px;border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.ambient-title{margin:5px 0 0;font-family:"Playfair Display","Noto Sans SC";font-size:18px}.sound-options{display:flex;gap:9px}.sound{border:1px solid var(--line);color:#746e65;background:#fffdfa;border-radius:18px;padding:7px 12px;cursor:pointer;font:12px "Noto Sans SC"}.sound.active{color:#516346;background:#eef2e8;border-color:#d5ddc9}.tasks-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.tasks-heading p{margin:0;color:var(--muted)}.add-task-btn{background:var(--tomato);color:#fff;padding:11px 17px}.task-form{display:flex;gap:8px;margin-bottom:15px}.task-form.hidden,.hidden{display:none}.task-form input{flex:1;border:1px solid var(--line);background:#fffdfa;padding:13px 14px;font:14px "Noto Sans SC";outline-color:var(--tomato)}.task-form button{background:var(--ink);color:#fff;padding:0 20px}.task-list{display:grid;gap:10px}.task{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);padding:15px 16px}.task.done .task-name{text-decoration:line-through;color:#a39c92}.check{appearance:none;width:18px;height:18px;border:1px solid #cfc7bb;border-radius:50%;cursor:pointer}.check:checked{background:var(--sage);border-color:var(--sage)}.task-name{flex:1;font-size:14px}.task-count{color:#9b948b;font-size:12px}.task .choose,.delete{border:0;background:none;cursor:pointer;font:12px "Noto Sans SC"}.choose{color:var(--tomato)}.delete{font-size:19px;color:#aaa}.stats-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:25px}.stats-summary article{background:var(--card);border:1px solid var(--line);padding:25px}.stats-summary span{font:42px "DM Mono";color:var(--tomato)}.stats-summary p{margin:5px 0 0;color:var(--muted);font-size:13px}.chart-card{padding:29px}.bar-chart{height:210px;display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-top:18px;border-bottom:1px solid var(--line)}.bar{flex:1;background:var(--sage);min-height:5px;transition:height .3s}.bar.today{background:var(--tomato)}.chart-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;padding-top:8px}.modal{position:fixed;inset:0;background:#2926207a;display:grid;place-items:center;padding:20px;z-index:5}.modal-card{background:var(--card);width:min(390px,100%);padding:30px;position:relative}.modal-card h2{font-size:29px;margin-bottom:24px}.modal-card label{display:flex;justify-content:space-between;align-items:center;margin:13px 0;color:#625d56;font-size:14px}.modal-card input{width:75px;border:1px solid var(--line);padding:8px;text-align:center;font:14px "DM Mono"}.close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:25px;cursor:pointer;color:#777}.save-settings{width:100%;margin-top:18px}.focus-screen .sidebar,.focus-screen header,.focus-screen .now-card,.focus-screen .ambient-row{display:none}.focus-screen .app-shell{display:block}.focus-screen .content{padding-top:75px;max-width:590px}.focus-screen .focus-layout{display:block}@media(max-width:760px){.app-shell{display:block}.sidebar{min-height:0;padding:19px 20px;flex-direction:row;align-items:center}.sidebar nav{margin:0 0 0 auto;display:flex}.quote,.settings-btn{display:none}.nav-item{padding:8px}.nav-item span{display:none}.content{padding:30px 20px}.focus-layout{grid-template-columns:1fr}.now-card{min-height:215px}.timer-card{padding:22px 15px}.timer-display span{font-size:53px}.ambient-row{align-items:flex-start;gap:14px;flex-direction:column}.stats-summary{grid-template-columns:1fr}.tasks-heading{align-items:flex-start;gap:12px;flex-direction:column}}
.toast{position:fixed;left:50%;bottom:28px;z-index:10;transform:translate(-50%,16px);padding:10px 16px;border-radius:5px;background:#272520;color:#fff;font-size:13px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.modal.hidden{display:none}.sun-card{margin-top:24px;padding:22px 27px;display:grid;grid-template-columns:44px 1fr auto;gap:17px;align-items:center;background:linear-gradient(105deg,#fff9ec,#fffdfa);border:1px solid #eee1ca;box-shadow:0 12px 35px #9b85650d}.sun-icon,.sun-large{color:#e6aa4c;font-size:32px;line-height:1}.sun-card h2{margin:4px 0;font-size:19px;line-height:1.35}.sun-card p:not(.section-kicker){margin:0;color:var(--muted);font-size:12px}.sun-toggle{border:0;border-radius:5px;background:#f5ead0;color:#866329;padding:9px 13px;cursor:pointer;font:600 13px "Noto Sans SC"}.sun-toggle.off{background:#f1ede6;color:#8c857b}.modal-card .check-row{justify-content:flex-start;gap:10px}.modal-card .check-row input{width:auto;accent-color:var(--tomato)}.sun-modal-card,.alarm-modal-card{text-align:center}.sun-modal-card>p:not(.section-kicker),.alarm-modal-card>p:not(.section-kicker){color:var(--muted);font-size:14px;line-height:1.8}.sun-large{font-size:55px;margin:12px 0}.alarm-icon{color:var(--tomato);font-size:52px;line-height:1;margin:12px 0;animation:alarmPulse 1s ease-in-out infinite}@keyframes alarmPulse{50%{transform:scale(1.14);opacity:.62}}.sound-options{flex-wrap:wrap;justify-content:flex-end}.sound-credit{display:inline-block;margin-top:7px;color:#948d82;font-size:11px;text-decoration:none}.sound-credit:hover{color:var(--tomato)}.focus-screen .sun-card{display:none}.exit-focus{display:none;margin:22px auto 0;border:0;background:transparent;color:#817c73;font:500 13px "Noto Sans SC";cursor:pointer}.exit-focus:hover{color:var(--tomato)}.exit-focus kbd{margin-left:5px;padding:1px 5px;border:1px solid var(--line);border-radius:3px;color:#9a9389;font:11px "DM Mono"}.focus-screen .exit-focus{display:block}@media(max-width:760px){.sun-card{grid-template-columns:38px 1fr;gap:11px;padding:18px}.sun-card .sun-toggle{grid-column:2;justify-self:start}.sound-options{justify-content:flex-start}}
.garden-card{margin-top:24px;padding:25px 27px;background:var(--card);border:1px solid #eee8de;box-shadow:0 12px 35px #9b85650d}.garden-heading{display:flex;justify-content:space-between;align-items:flex-start}.garden-heading h2{font-size:25px}.garden-total{color:var(--tomato);font:18px "DM Mono"}.garden-items{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.garden-item{display:flex;align-items:center;gap:10px;padding:13px 12px;background:#faf7f0;border:1px solid var(--line)}.tomato-emoji{display:grid;place-items:center;border-radius:50%;color:var(--tomato);background:#f6d7cc;width:34px;height:34px;font-size:26px;line-height:1}.large-tomato{color:var(--tomato-dark);background:#f2c2b5;font-size:31px}.golden-tomato{color:#c99027;background:#f6e6b8;font-size:31px}.garden-item div{display:grid;gap:2px}.garden-item strong{font:22px "DM Mono"}.garden-item span:not(.tomato-emoji){font-size:11px;color:var(--muted)}.garden-progress{margin:17px 0 0;color:var(--muted);font-size:12px}@media(max-width:760px){.garden-items{grid-template-columns:1fr}}
.garden-plot{margin-top:20px;min-height:66px;padding:18px 15px;border-radius:8px;background:linear-gradient(#d8c09d 0 58%,#a5825d 58%);color:#fff6dc;font-size:28px;line-height:1.25;transition:transform .25s,box-shadow .25s}.garden-plot.growing{animation:gardenGrow .65s ease-out}@keyframes gardenGrow{50%{transform:scale(1.015);box-shadow:0 5px 16px #9b85652b}}
.garden-stats{display:grid;gap:7px;margin-top:20px;color:var(--muted);font-size:13px}.garden-stats p{margin:0}.garden-stats strong{color:var(--ink);font:500 15px "DM Mono"}
.garden-plot{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:end}.garden-soil{display:grid;place-items:center;min-height:92px;border-radius:7px;background:#b08b64;border-bottom:5px solid #8c694b}.garden-soil.empty:before{content:"";width:30px;height:30px;border:2px dashed #d6bc91;border-radius:4px;opacity:.8}.garden-soil img{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 4px 2px #694b3238)}
.garden-progress-row{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-top:18px}.garden-progress-row div{display:grid;gap:5px}.garden-progress-row strong{font-size:14px}.garden-progress-row span{color:var(--muted);font:12px "DM Mono"}.growth-meter{color:var(--tomato);font:18px "DM Mono";letter-spacing:3px;white-space:nowrap}.harvest-button{margin-top:15px;border:0;border-radius:5px;background:var(--tomato);color:#fff;padding:10px 18px;cursor:pointer;font:600 13px "Noto Sans SC";box-shadow:0 4px 10px #d15b4530}.harvest-button:hover{background:var(--tomato-dark)}
.header-actions{display:flex;align-items:center;gap:12px}.account-status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.account-button,.auth-switch{border:0;background:transparent;color:var(--tomato);cursor:pointer;font:600 12px "Noto Sans SC"}.account-button{padding:7px 0}.auth-hint{color:var(--muted);font-size:12px;line-height:1.6;margin:-12px 0 20px}.auth-switch{display:block;margin:14px auto 0}.auth-error{color:var(--tomato-dark);font-size:12px;min-height:18px;margin:12px 0 0;text-align:center}@media(max-width:760px){.header-actions{gap:7px}.account-status span{display:none}.account-button{font-size:11px}}
.modal-card#authForm label{display:block}
.modal-card#authForm input{display:block;width:100%;height:48px;margin-top:8px;padding:12px 14px;text-align:left;font:16px/1.5 "Noto Sans SC",sans-serif;border-radius:4px;outline-color:var(--tomato)}
@media(max-width:760px){.modal-card#authForm input{height:50px;padding:13px 14px;font-size:16px}}
