:root{--bg: #f7f7f2;--panel: #ffffff;--ink: #1c1c1e;--muted: #78787f;--line: #e3e3dc;--accent: #5b8def;--danger: #c0392b;--radius: 10px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #16161a;--panel: #1f1f24;--ink: #ececf1;--muted: #9a9aa4;--line: #32323a}}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:6px 12px}button:hover{border-color:var(--accent)}button.link{border:none;background:none;padding:6px 8px;color:var(--muted)}button.link:hover{color:var(--accent)}button.link.danger:hover{color:var(--danger)}button.icon{border:none;background:none;padding:6px;display:inline-flex;align-items:center}button.primary,button[type=submit]{background:var(--accent);border-color:var(--accent);color:#fff;display:inline-flex;align-items:center;gap:4px}input,select,textarea{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:7px 10px;width:100%}input:disabled,textarea:disabled,select:disabled{opacity:.55}input[type=color]{width:44px;padding:2px}input[type=checkbox]{width:auto}label{display:block;font-size:13px;color:var(--muted)}label input,label select,label textarea{margin-top:4px;color:var(--ink)}label.inline{display:flex;align-items:center;gap:6px}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.error{color:var(--danger);font-size:13px}.error.banner{margin:0;padding:8px 16px;background:color-mix(in srgb,var(--danger) 12%,transparent);cursor:pointer}.hint{font-size:12px;color:var(--muted);margin:4px 0}.empty{color:var(--muted);padding:24px 8px;text-align:center}.spacer{flex:1}.unlock{max-width:320px;margin:18vh auto;padding:0 16px;display:grid;gap:12px}.unlock h1{margin:0;font-size:26px}.unlock p{margin:0;color:var(--muted);font-size:13px}.app{max-width:1100px;margin:0 auto;padding:12px 16px 32px}.topbar{display:grid;gap:10px;padding-bottom:12px}.views{display:flex;gap:4px;overflow-x:auto}.views button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.views button.active{background:var(--accent);border-color:var(--accent);color:#fff}.nav{display:flex;align-items:center;gap:4px}.nav strong{margin-left:8px;flex:1}main.busy{opacity:.6}.month-head,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.month-head{color:var(--muted);font-size:12px;text-align:center;padding-bottom:4px}.month-grid{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.month-cell{border:none;border-radius:0;background:var(--panel);min-height:92px;padding:4px;text-align:left;display:flex;flex-direction:column;gap:2px;align-items:stretch}.month-cell.outside{opacity:.42}.month-cell.today .month-date{background:var(--accent);color:#fff;border-radius:999px}.month-date{font-size:12px;align-self:flex-start;min-width:20px;height:20px;display:grid;place-items:center}.month-events{display:grid;gap:2px;min-height:0}.chip{--chip: var(--accent);font-size:11px;line-height:1.4;padding:1px 5px;border-radius:5px;background:color-mix(in srgb,var(--chip) 18%,transparent);border-left:3px solid var(--chip);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.more{background:none;border:none;color:var(--muted)}.chip-time{color:var(--muted);font-variant-numeric:tabular-nums}.week-head{display:grid;grid-template-columns:52px repeat(7,1fr);text-align:center;font-size:12px;color:var(--muted);padding-bottom:4px}.week-head b{display:block;color:var(--ink)}.week-head .today b{color:var(--accent)}.week-body{display:grid;grid-template-columns:52px repeat(7,1fr);max-height:68vh;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.week-hours{display:grid;font-size:11px;color:var(--muted);border-right:1px solid var(--line)}.week-hours span{padding:2px 4px}.week-column{position:relative;border-right:1px solid var(--line)}.week-line{position:absolute;left:0;right:0;border-top:1px solid var(--line);opacity:.5}.week-event{--chip: var(--accent);position:absolute;left:2px;right:2px;padding:2px 4px;border:none;border-left:3px solid var(--chip);border-radius:5px;background:color-mix(in srgb,var(--chip) 22%,var(--panel));font-size:11px;text-align:left;overflow:hidden;display:grid;align-content:start}.week-event.all-day{background:color-mix(in srgb,var(--chip) 32%,var(--panel))}.agenda section{margin-bottom:18px}.agenda h3{margin:0 0 6px;font-size:14px;display:flex;gap:8px;align-items:baseline}.agenda h3 span{color:var(--muted);font-weight:400;font-size:12px}.agenda h3.today{color:var(--accent)}.agenda ul,.todo-list,.settings-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.agenda li button{--chip: var(--accent);width:100%;display:flex;gap:10px;align-items:center;text-align:left;border-left:3px solid var(--chip)}.agenda-time{color:var(--muted);font-variant-numeric:tabular-nums;min-width:44px;font-size:13px}.agenda-body{flex:1;display:grid}.agenda-body small,.todo-body small,.settings-body small{color:var(--muted);font-size:12px;display:flex;gap:4px;align-items:center}.todo-add,.settings-add{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.todo-add input[name=title],.settings-add input[name=url]{flex:3 1 200px;width:auto}.todo-add input[name=due],.todo-add select,.settings-add input[name=name]{flex:1 1 120px;width:auto}.todo-filter{display:flex;align-items:center;gap:6px;margin-bottom:10px}.todo-list li,.settings-list li{display:flex;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px}.todo-list li.done .todo-body b{text-decoration:line-through;color:var(--muted)}.todo-check{border:none;background:none;padding:2px;display:inline-flex}.todo-body,.settings-body{flex:1;display:grid;min-width:0}.overdue{color:var(--danger)}.settings{display:grid;gap:26px;max-width:640px}.settings h3{margin:0 0 8px;font-size:15px}.settings label{margin-bottom:8px}.feed-url{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;margin:8px 0}.feed-url code{flex:1}.swatch{width:14px;height:14px;border-radius:4px;flex:none}.settings-list li.empty{display:block;border:none;background:none}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:grid;place-items:end center;z-index:10}.drawer{width:min(520px,100%);max-height:92vh;overflow:auto;background:var(--bg);border-radius:14px 14px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.drawer header{display:flex;align-items:center}.drawer header h2{margin:0;font-size:17px;flex:1}.drawer .row{display:flex;gap:8px}.drawer .row label{flex:1;min-width:0}.drawer input,.drawer select,.drawer textarea{min-width:0;max-width:100%}.drawer footer{display:flex;align-items:center;gap:6px;padding-top:4px}@media(min-width:781px){.drawer-backdrop{place-items:center}.drawer{border-radius:14px}}@media(max-width:780px){.app{padding:8px 10px 24px}.month-cell{min-height:68px}.week-body{max-height:60vh}}@media(max-width:420px){.views button span{display:none}.month-cell{min-height:56px;padding:2px}.chip{font-size:10px}.chip-time{display:none}.nav strong{font-size:14px}}
