:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fafaf9;--surface:#fff;--ink:#1d1d1f;--muted:#86868b;--faint:#c7c7cb;--line:#e8e8e6;--header-line:#00000026;--hover:#0000000b;--chip-bg:#f2f2f0;--radius:14px;--shadow-card:0 1px 2px #0000000a;--shadow-pop:0 24px 60px #00000026, 0 4px 16px #00000014;font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif}body{min-height:100svh;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s}:focus-visible{outline-offset:2px;outline:2px solid #0006}input:focus-visible{outline:none}input{font:inherit;color:inherit;box-sizing:border-box;border:1px solid var(--line);background:var(--surface);border-radius:12px;outline:none;width:100%;padding:11px 14px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--faint)}input:focus{border-color:var(--ink);box-shadow:0 0 0 3.5px #0000000f}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.login{flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:100svh;padding:24px;display:flex}.login h1{letter-spacing:-.03em;margin:0;font-size:32px;font-weight:700}.login-hint{color:var(--muted);margin:0 0 20px}.login form{flex-direction:column;gap:10px;width:min(300px,100%);display:flex}.login button,.modal-actions button[type=submit]{background:var(--ink);color:#fff;border-radius:12px;padding:12px 18px;font-weight:600}.login button:hover,.modal-actions button[type=submit]:hover{background:#000}.login button:active,.modal-actions button[type=submit]:active{transform:scale(.98)}.login button:disabled,.modal-actions button[type=submit]:disabled{opacity:.35;cursor:default}.error{color:#b3261e;margin:0;font-size:14px}.menu{max-width:560px;margin:0 auto;padding:28px 20px}.menu nav{flex-direction:column;gap:10px;display:flex}.menu-item{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);align-items:center;gap:14px;padding:13px 16px;font-size:17px;font-weight:500;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.menu-item:hover{border-color:#dcdcda;transform:translateY(-1px);box-shadow:0 4px 14px #0000000f}.menu-item:active{box-shadow:var(--shadow-card);transform:scale(.985)}.menu-icon{background:var(--chip-bg);border-radius:10px;place-items:center;width:38px;height:38px;font-size:19px;line-height:1;display:grid}.menu-item .chevron{color:var(--faint);margin-left:auto;font-size:20px;line-height:1;transition:color .15s,transform .15s}.menu-item:hover .chevron{color:var(--muted);transform:translate(2px)}.section{max-width:560px;margin:0 auto;padding:0 20px 40px}.notif-list{margin-top:20px}.notif-group{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:28px 4px 10px;font-size:12px;font-weight:600}.notif-group:first-child{margin-top:4px}.notif-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.notif-row+.notif-row{margin-top:10px}.notif-text{flex-direction:column;gap:3px;display:flex}.notif-text>span:first-child{font-weight:500}.notif-desc{color:var(--muted);font-size:13px;line-height:1.45}.notif-hint{color:var(--muted);margin-top:28px;font-size:14px;line-height:1.5}.switch{cursor:pointer;flex-shrink:0;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{background:var(--faint);border-radius:999px;width:46px;height:28px;transition:background .2s;display:block}.switch span:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s cubic-bezier(.22,1,.36,1);position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #0003}.switch input:checked+span{background:var(--ink)}.switch input:checked+span:after{transform:translate(18px)}.switch input:disabled+span{opacity:.5;cursor:default}.weather-day{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:16px;margin-top:12px;padding:18px 18px 16px}.weather-day:first-of-type{margin-top:24px}.weather-day h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:12px;font-weight:600}.weather-summary{align-items:center;gap:16px;margin:12px 0 8px;display:flex}.weather-icon{font-size:44px;line-height:1}.weather-temps{letter-spacing:-.02em;font-size:27px;font-weight:600}.temp-min{color:var(--muted);font-weight:400}.weather-desc{color:var(--muted);font-size:14px}.weather-row{align-items:baseline;gap:10px;padding:6px 0;font-size:15px;display:flex}.weather-label{color:var(--muted);width:52px}.weather-hour{color:var(--muted);font-size:14px}.dot{border-radius:50%;flex-shrink:0;align-self:center;width:9px;height:9px}.dot.yellow{background:#f3b71c;box-shadow:0 0 0 3px #f3b71c29}.dot.red{background:#d43f3a;box-shadow:0 0 0 3px #d43f3a24}.attribution{text-align:center;color:var(--faint);margin-top:40px;font-size:12px}.board{max-width:560px;margin:0 auto;padding:0 20px 110px}header{z-index:1;-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px);border-bottom:1px solid var(--header-line);background:#fafaf9d9;align-items:center;margin:0 -20px;padding:8px 12px;display:flex;position:sticky;top:0}.back,.header-toggle{width:36px;height:36px;color:var(--ink);border-radius:50%;place-items:center;font-size:18px;line-height:1;text-decoration:none;display:grid}.back:hover,.header-toggle:hover{background:var(--hover)}.back:active,.header-toggle:active{transform:scale(.92)}.section-title{letter-spacing:-.01em;margin:0 auto 0 6px;font-size:17px;font-weight:600}.ghost{color:var(--muted);border-radius:10px;padding:8px 12px}.ghost:hover{color:var(--ink);background:var(--hover)}.group{margin-top:30px}.group-head{align-items:center;gap:6px;display:flex}.group-head h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:12px;font-weight:600}.star{color:var(--faint);padding:4px 2px;font-size:14px;line-height:1}.star.active{color:var(--ink)}.mini-add{color:var(--faint);border-radius:8px;padding:3px 8px;font-size:17px;line-height:1}.mini-add:hover,.star:hover{color:var(--ink)}.mini-add:hover{background:var(--hover)}.group ul{margin:6px 0 0;padding:0;list-style:none}.group-empty{color:var(--faint);padding:8px 0;font-size:14px;font-style:italic}.task{border-radius:10px;align-items:center;gap:12px;margin:0 -10px;padding:1px 10px;transition:background .12s;display:flex}@media (hover:hover){.task:hover{background:var(--hover)}}.task-name{text-align:left;flex:1;padding:10px 0}.task.done .task-name{color:var(--faint);text-decoration:line-through}.check{cursor:pointer;place-items:center;display:grid}.check input{opacity:0;width:0;height:0;position:absolute}.check span{border:1.5px solid var(--faint);border-radius:50%;place-items:center;width:20px;height:20px;transition:background .18s,border-color .18s;display:grid}.check:hover span{border-color:var(--muted)}.check span:after{content:"✓";color:#fff;font-size:11px;transition:transform .18s cubic-bezier(.2,1.4,.4,1);transform:scale(0)}.check input:checked+span{background:var(--ink);border-color:var(--ink)}.check input:checked+span:after{transform:scale(1)}.empty{text-align:center;color:var(--muted);margin-top:90px;font-size:16px}.fab{right:max(24px,50vw - 256px);bottom:calc(24px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:56px;height:56px;font-size:28px;font-weight:300;line-height:1;display:grid;position:fixed;box-shadow:0 10px 28px #00000038,0 2px 8px #0000001f}.fab:hover{transform:translateY(-2px);box-shadow:0 14px 32px #00000040,0 3px 10px #0000001f}.fab:active{transform:scale(.94)}.overlay{z-index:2;-webkit-backdrop-filter:blur(2.5px);backdrop-filter:blur(2.5px);background:#00000038;place-items:center;padding:20px;animation:.2s overlay-in;display:grid;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}}.modal{background:var(--surface);width:min(400px,100%);box-shadow:var(--shadow-pop);border-radius:18px;flex-direction:column;gap:16px;padding:22px;animation:.25s cubic-bezier(.2,.9,.3,1) modal-in;display:flex}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal h2{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:600}.modal-close{color:var(--muted);margin:-4px -10px -4px 0;padding:4px 10px;font-size:26px;line-height:1;display:none}.chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{background:var(--chip-bg);color:#555;border-radius:999px;padding:6px 13px;font-size:14px}.chip:hover{background:#e9e9e7}.chip.active{background:var(--ink);color:#fff}.chip-input{border:1px dashed var(--faint);background:0 0;border-radius:999px;width:110px;padding:6px 13px;font-size:14px}.chip-input:focus{border-color:var(--ink);box-shadow:none}.modal-actions{justify-content:flex-end;gap:8px;margin-top:2px;display:flex}@media (width<=480px){.overlay{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;display:block}.modal{box-sizing:border-box;width:100%;height:100dvh;box-shadow:none;padding:calc(10px + env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));border-radius:0;gap:16px}.modal h2{font-size:18px}.modal-close{display:block}.modal .chips{align-content:flex-start;min-height:0;overflow-y:auto}.chip{padding:8px 15px;font-size:15px}.chip-input{width:130px;padding:8px 15px;font-size:16px}.modal-actions .ghost{display:none}.modal-actions button[type=submit]{border-radius:12px;flex:1;padding:14px 16px}}
