:root{--bg: #ffffff;--fg: #111827;--muted: #6b7280;--line: #e5e7eb;--soft: #f3f4f6;--accent: #2563eb;--accent-soft: #dbeafe;--shared: #059669;--danger: #dc2626;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg);-webkit-text-size-adjust:100%}@media(prefers-color-scheme:dark){:root{--bg: #111827;--fg: #f9fafb;--muted: #9ca3af;--line: #374151;--soft: #1f2937;--accent: #60a5fa;--accent-soft: #1e3a8a;--shared: #34d399;--danger: #f87171}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1{font-size:1.4rem;margin:0 0 4px;text-transform:capitalize}h2{font-size:1.05rem;margin:20px 0 8px}button,input,select,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 12px}input,select,textarea{font-size:16px}button{cursor:pointer}button:disabled{opacity:.5}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}button.link{border:0;background:none;color:var(--accent);padding:0 8px}.error{color:var(--danger)}.hint{color:var(--muted);font-size:.9rem}.toast{background:var(--accent-soft);padding:8px 12px;border-radius:8px}.grow{flex:1}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions{display:flex;gap:8px;margin-top:12px;align-items:center}.actions.wrap{flex-wrap:wrap}label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--muted)}label.inline{flex-direction:row;align-items:center;color:var(--fg)}input.narrow{width:72px}ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:6px 0}.app{display:flex;flex-direction:column;height:100dvh}.tabs{display:flex;border-bottom:1px solid var(--line);padding:0 8px}.tabs button{border:0;border-radius:0;background:none;padding:14px 16px;color:var(--muted)}.tabs button.on{color:var(--accent);box-shadow:inset 0 -2px var(--accent)}main{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column}@media(max-width:700px){.tabs{order:2;border-top:1px solid var(--line);border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}.tabs button{flex:1}.tabs button.on{box-shadow:inset 0 2px var(--accent)}main{padding:12px;padding-top:max(12px,env(safe-area-inset-top))}}.login{max-width:340px;margin:15vh auto 0;display:flex;flex-direction:column;gap:12px;padding:16px;text-align:center}.login img{align-self:center;border-radius:16px}.today{max-width:640px;width:100%;margin:0 auto}.summary{color:var(--muted);margin:0 0 16px}.agenda{list-style:none;padding:0;margin:0}.agenda li{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.agenda input[type=checkbox]{width:22px;height:22px;margin:0}.agenda .item{flex:1;display:flex;gap:10px;align-items:baseline;text-align:left;border:0;background:none;padding:14px 0}.agenda .time{color:var(--muted);font-variant-numeric:tabular-nums;min-width:96px}.agenda li.done .title{text-decoration:line-through;color:var(--muted)}.agenda li.past .time{color:var(--danger)}.agenda li.next{background:var(--accent-soft);border-radius:8px;padding-left:6px}.badge{font-size:.75rem;background:var(--soft);border-radius:999px;padding:2px 8px;color:var(--muted)}.fab{position:fixed;right:20px;bottom:calc(80px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:0;font-size:28px;box-shadow:0 4px 12px #0003}@media(min-width:701px){.fab{bottom:24px}}.week{flex:1;min-height:480px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.chip{border-radius:999px;padding:4px 12px;font-size:.9rem}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.chip.on.shared{background:var(--shared);border-color:var(--shared)}.fc{--fc-border-color: var(--line);--fc-page-bg-color: var(--bg);--fc-neutral-bg-color: var(--soft);--fc-list-event-hover-bg-color: var(--soft);--fc-today-bg-color: var(--accent-soft);--fc-event-bg-color: var(--accent);--fc-event-border-color: var(--accent);font-size:.85rem}.fc .fc-toolbar{flex-wrap:wrap;gap:6px}.fc .fc-toolbar-title{font-size:1.05rem;text-transform:capitalize}.fc .fc-button{padding:4px 8px;font-size:.85rem}.fc-event.is-shared{--fc-event-bg-color: var(--shared);background:var(--shared);border-color:var(--shared)}.fc-event.is-flexible{border-style:dashed;border-width:2px}.fc-event.is-done{opacity:.45;text-decoration:line-through}.fc-event.is-skipped{opacity:.25}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg);width:min(480px,100%);max-height:90dvh;overflow:auto;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px}.modal h2,.modal p{margin:0}.modal .notes{white-space:pre-wrap;background:var(--soft);padding:8px;border-radius:8px}.struck{text-decoration:line-through;color:var(--muted)}@media(max-width:700px){.modal-backdrop{align-items:flex-end}.modal{border-radius:14px 14px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}}.settings{max-width:640px;width:100%;margin:0 auto}
