:root{--primary:#2563eb;--primary-soft:#dbeafe;--danger:#dc2626;--border:#d1d5db;--text:#1f2937;--muted:#6b7280;--background:#fff;--surface:#f3f4f6;color:var(--text);background:var(--background);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--text:#f3f4f6;--muted:#9ca3af;--background:#111827;--surface:#1f2937;--border:#374151;--primary-soft:#1e3a8a}}*{box-sizing:border-box}body{background:var(--background);margin:0}main{max-width:720px;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));margin:0 auto}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;display:flex}.bar{justify-content:space-between;align-items:center;display:flex}h1{margin:0;font-size:1.6rem}.muted{color:var(--muted)}button.link{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:8px}button{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;min-height:44px;padding:10px 14px}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.danger{color:var(--danger)}button.icon{background:0 0;border:none;min-width:44px;padding:8px}button[aria-pressed=true]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}button:disabled{opacity:.5}input,select,textarea{font:inherit;color:inherit;background:var(--background);border:1px solid var(--border);border-radius:8px;width:100%;min-height:44px;padding:10px}label{color:var(--muted);gap:4px;margin:10px 0;font-size:.9rem;display:grid}label.inline{align-items:center;gap:8px;width:100%;display:flex}details{margin:12px 0}summary{cursor:pointer;color:var(--primary);padding:8px 0}fieldset.choice{border:none;flex-wrap:wrap;gap:8px;margin:12px 0;padding:0;display:flex}fieldset.choice legend{color:var(--muted);margin-bottom:6px;font-size:.9rem}.actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.small{font-size:.8rem}[role=alert]{color:var(--danger)}.sheet-backdrop{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--background);width:100%;max-width:560px;max-height:90dvh;padding:8px 16px max(16px, env(safe-area-inset-bottom));border-radius:16px 16px 0 0;overflow-y:auto}@media (width>=640px){.sheet-backdrop{align-items:center}.sheet{border-radius:16px}}.sheet-header{background:var(--background);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.sheet-header h2{margin:8px 0;font-size:1.1rem}.toolbar,.nav{justify-content:space-between;align-items:center;gap:8px;margin:12px 0;display:flex}.nav h2{text-align:center;margin:0;font-size:1.15rem}.segmented{display:flex}.segmented button{border-radius:0;margin-left:-1px}.segmented button:first-child{border-radius:10px 0 0 10px}.segmented button:last-child{border-radius:0 10px 10px 0}.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.weekday{text-align:center;color:var(--muted);font-size:.75rem;font-weight:600}.cell{border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-height:64px;padding:2px;display:flex}.cell.dimmed{opacity:.45}.cell .date{background:0 0;border:none;width:100%;min-height:32px;padding:4px 0}.cell.today .date{background:var(--primary);color:#fff;border-radius:6px}.chip{touch-action:manipulation;text-align:left;border-radius:6px;width:100%;min-height:28px;padding:2px 4px;font-size:.8rem}.chip.dragging{opacity:.8;z-index:5;position:relative}.chip.outcome-missed{border-color:var(--danger)}.drop-over{outline:2px dashed var(--primary)}.unplanned{color:var(--muted);margin:0;font-size:.75rem}.wide-only{display:none}@media (width>=900px){.wide-only{margin-left:4px;display:inline}.cell{align-items:stretch}}.week{gap:8px;margin:0;padding:0;list-style:none;display:grid}.week-day{border:1px solid var(--border);border-radius:10px;gap:6px;padding:6px 10px;display:grid}.week-day.today{border-color:var(--primary)}.week-day-header{justify-content:space-between;align-items:center;display:flex}.week .chip{min-height:40px;font-size:.95rem}.day{gap:10px;display:grid}.card{text-align:left;gap:4px;padding:12px;display:grid}.day-items{gap:6px;padding:0;list-style:none;display:grid}button.row{text-align:left;width:100%}
