:root {
  color-scheme: light;
  --bg:#f6f5f0; --side:#ecece6; --surface:#fffefa; --text:#252721;
  --muted:#777a70; --faint:#a5a79e; --line:#e1e2da; --accent:#507259;
  --accent2:#3e5f47; --soft:#e0eadf; --danger:#b64f46; --danger-soft:#f6e4e1;
  --shadow:0 22px 60px rgba(35,40,32,.15);
}
[data-theme="dark"] {
  color-scheme:dark; --bg:#181a17; --side:#1e211d; --surface:#242722; --text:#f0f1eb;
  --muted:#a5a99f; --faint:#73786e; --line:#383b35; --accent:#88ab8e;
  --accent2:#a5c9aa; --soft:#2b3b2e; --danger:#e7857c; --danger-soft:#472b29;
}
*{box-sizing:border-box} html{height:100%} body{min-height:100%;margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif} button,input,select{font:inherit} button{color:inherit} button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--soft);outline-offset:2px}
.shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:28px 18px 20px;background:var(--side);border-right:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:11px;margin:0 10px 35px;font-weight:750;font-size:19px;letter-spacing:-.4px}.brand-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;color:white;background:var(--accent);font-size:22px;transform:rotate(-3deg)}
.sidebar nav{display:grid;gap:4px}.nav-item{width:100%;min-height:46px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:9px;padding:0 12px;border:0;border-radius:11px;background:transparent;color:var(--muted);text-align:left;cursor:pointer;transition:.18s}.nav-item:hover{color:var(--text);background:color-mix(in srgb,var(--surface) 55%,transparent)}.nav-item.active{color:var(--accent2);background:var(--soft);font-weight:650}.nav-item b{min-width:25px;padding:2px 6px;border-radius:7px;background:color-mix(in srgb,var(--surface) 65%,transparent);font-size:11px;text-align:center}.nav-item small{font-size:11px;font-weight:500}.sidebar-bottom{margin-top:auto}.private{margin:17px 10px 0;color:var(--faint);font-size:11px}
main{min-width:0;padding:0 46px 80px}header{max-width:1040px;min-height:132px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}h1,h2{font-family:ui-rounded,"Segoe UI",sans-serif}h1{margin:0;font-size:clamp(29px,3vw,38px);line-height:1.15;letter-spacing:-1.2px}.header-actions{display:flex;align-items:center;gap:8px}.search{width:250px;height:46px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--muted)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}.search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--text)}.search kbd{padding:1px 6px;border:1px solid var(--line);border-radius:5px;color:var(--faint);font:11px sans-serif}.icon-btn{width:42px;height:42px;border:0;border-radius:11px;background:transparent;font-size:23px;cursor:pointer}.icon-btn:hover{color:var(--accent2);background:var(--soft)}.mobile-only{display:none}
.content{max-width:1040px;margin:auto}.quick-add{min-height:72px;display:flex;align-items:center;gap:12px;padding:10px 11px 10px 17px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 7px 26px rgba(45,49,41,.05)}.quick-add:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}.quick-add .plus{color:var(--accent);font-size:24px}.quick-add>input:not([type=date]){min-width:100px;flex:1;border:0;outline:0;background:transparent;color:var(--text);font-size:16px}.date-button{height:39px;padding:0 11px;border:0;border-radius:10px;color:var(--muted);background:transparent;cursor:pointer}.date-button:hover,.date-button.selected{color:var(--accent2);background:var(--soft)}
.primary,.secondary,.danger{min-height:45px;padding:0 16px;border-radius:11px;font-weight:650;cursor:pointer}.primary{border:0;color:#fff;background:var(--accent)}.primary:hover{background:var(--accent2)}.primary span{margin-left:6px;opacity:.65}.secondary{border:1px solid var(--line);background:var(--surface)}.secondary:hover{background:var(--soft);border-color:var(--soft)}.danger{border:0;color:var(--danger);background:var(--danger-soft)}
.toolbar{min-height:69px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 2px;color:var(--muted)}.toolbar p{margin:0;font-size:13px}.toolbar>div{display:flex;gap:18px}.toolbar label{color:var(--faint);font-size:12px}.toolbar select{max-width:110px;margin-left:3px;border:0;outline:0;color:var(--muted);background:transparent;font-size:12px}
.task-list{display:grid;gap:8px}.task{min-height:76px;display:grid;grid-template-columns:45px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 12px;border:1px solid transparent;border-radius:15px;background:var(--surface);touch-action:pan-y;transition:.18s;animation:appear .25s ease both}.task.swiping{transition:none}.task:hover{transform:translateY(-1px);border-color:var(--line);box-shadow:0 9px 25px rgba(45,49,41,.06)}@keyframes appear{from{opacity:0;transform:translateY(5px)}}
.check{width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;cursor:pointer}.ring{width:22px;height:22px;display:grid;place-items:center;border:2px solid var(--faint);border-radius:50%;color:transparent;font-size:14px}.check:hover .ring{border-color:var(--accent);color:var(--accent)}.task.completed .ring{border-color:var(--accent);color:white;background:var(--accent)}.task-body{min-width:0;cursor:pointer}.task-title{overflow:hidden;margin:0 0 6px;font-weight:550;text-overflow:ellipsis;white-space:nowrap}.completed .task-title{color:var(--muted);text-decoration:line-through}.meta{display:flex;align-items:center;gap:8px;min-height:18px;color:var(--faint);font-size:11px}.overdue{color:var(--danger)}.tag{padding:2px 7px;border-radius:6px;color:var(--accent2);background:var(--soft)}.dot{width:7px;height:7px;display:inline-block;margin-right:4px;border-radius:50%;background:#9da79b}.dot.medium{background:#d4a34e}.dot.high{background:#ce655c}.task-actions{display:flex;opacity:0}.task:hover .task-actions,.task-actions:focus-within{opacity:1}.task-actions button{width:38px;height:38px;border:0;border-radius:10px;color:var(--muted);background:transparent;cursor:pointer}.task-actions button:hover{color:var(--accent2);background:var(--soft)}.task-actions .delete:hover{color:var(--danger);background:var(--danger-soft)}
.empty{max-width:430px;margin:62px auto 0;text-align:center}.empty-icon{width:80px;height:80px;display:grid;place-items:center;margin:0 auto 20px;border-radius:26px;color:var(--accent);background:var(--soft);font-size:38px;transform:rotate(-3deg)}.empty h2{margin:0 0 7px;font-size:21px}.empty p{margin:0 0 20px;color:var(--muted)}
dialog{width:min(560px,calc(100% - 28px));padding:0;border:0;border-radius:20px;color:var(--text);background:var(--surface);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(20,22,19,.5);backdrop-filter:blur(3px)}dialog form{padding:27px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.dialog-head h2{margin:0;font-size:24px}.field{display:grid;gap:7px;margin-bottom:17px;color:var(--muted);font-size:12px;font-weight:650}.field input,.field select{width:100%;height:48px;padding:0 13px;border:1px solid var(--line);border-radius:11px;outline:0;color:var(--text);background:var(--bg);font-size:14px}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dialog-actions{display:flex;align-items:center;gap:9px;margin-top:28px}.dialog-actions>span{flex:1}.confirm{width:min(390px,calc(100% - 28px));text-align:center}.confirm h2{margin:0 0 6px}.confirm p{margin:0 0 22px;color:var(--muted)}.confirm form>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:9px}.danger-icon{width:54px;height:54px;display:grid;place-items:center;margin:0 auto 14px;border-radius:16px;color:var(--danger);background:var(--danger-soft);font-size:25px}.toast{position:fixed;z-index:20;left:50%;bottom:27px;padding:11px 16px;border-radius:10px;color:var(--surface);background:var(--text);box-shadow:var(--shadow);opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}.bottom-nav,.fab{display:none}
@media(max-width:800px){.shell{display:block}.sidebar{display:none}main{padding:0 17px 118px}header{position:relative;min-height:108px}.search{width:44px;padding:0;justify-content:center;border-color:transparent;background:transparent}.search input,.search kbd{display:none}.search.open{position:absolute;z-index:3;left:0;right:51px;width:auto;padding:0 12px;justify-content:flex-start;border-color:var(--line);background:var(--surface)}.search.open input{display:block}.mobile-only{display:block}.quick-add{padding-left:15px}.quick-add .date-button,.quick-add .primary{display:none}.quick-add>input:not([type=date]){height:50px}.toolbar{padding-top:16px}.toolbar>div{gap:5px}.toolbar label{font-size:0}.toolbar select{max-width:92px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:12px}.task{padding-right:5px}.task-actions{opacity:1}.task-actions .edit{display:none}.bottom-nav{position:fixed;z-index:10;left:0;right:0;bottom:0;height:calc(70px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);padding:7px 8px env(safe-area-inset-bottom);border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 93%,transparent);backdrop-filter:blur(14px)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:12px;color:var(--muted);background:transparent;font-size:10px}.bottom-nav button span{font-size:20px}.bottom-nav button.active{color:var(--accent2);background:var(--soft);font-weight:650}.fab{position:fixed;z-index:11;right:20px;bottom:calc(87px + env(safe-area-inset-bottom));width:56px;height:56px;display:grid;place-items:center;border:0;border-radius:18px;color:white;background:var(--accent);box-shadow:0 10px 28px rgba(48,79,56,.3);font-size:25px}.toast{bottom:calc(84px + env(safe-area-inset-bottom))}}
@media(max-width:480px){main{padding-inline:13px}h1{font-size:28px}.field-row{grid-template-columns:1fr;gap:0}dialog form{padding:22px 18px}.dialog-actions{flex-wrap:wrap}.dialog-actions .danger{order:3;width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(prefers-contrast:more){:root{--line:#898c82;--muted:#50534a}.task{border-color:var(--line)}}

.weather-widget{min-height:46px;display:flex;align-items:center;gap:9px;padding:5px 12px 5px 8px;border:1px solid var(--line);border-radius:13px;color:var(--text);background:var(--surface);cursor:pointer;transition:.2s}.weather-widget:hover{border-color:var(--accent);transform:translateY(-1px)}.weather-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;color:var(--accent2);background:var(--soft);font-size:17px}.weather-copy{display:grid;text-align:left;line-height:1.15}.weather-copy strong{font-size:12px;white-space:nowrap}.weather-copy small{margin-top:3px;color:var(--muted);font-size:9px;white-space:nowrap}.weather-widget.loading .weather-icon{animation:weather-spin 1s linear infinite}@keyframes weather-spin{to{transform:rotate(360deg)}}
@media(max-width:800px){.weather-widget{padding-right:8px}.weather-copy small{display:block}}
@media(max-width:480px){.weather-widget{padding:5px 7px}.weather-copy strong{font-size:11px}.weather-copy small{max-width:92px;overflow:hidden;font-size:8px;text-overflow:ellipsis}}
.weather-help{margin:-10px 0 20px;color:var(--muted);font-size:13px}.weather-dialog{width:min(500px,calc(100% - 28px))}
