:root{--bg:#fbf7f0;--card:#fff;--ink:#2b2722;--muted:#8a8178;--line:#ece4d8;--accent:#d9772f;--accent-ink:#fff;--ok:#2e7d52;--warn:#b4541c;--danger:#c0392b;--shadow:0 1px 2px #2b27220f, 0 4px 16px #2b27220d;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}a{color:var(--accent)}.wrap{max-width:860px;margin:0 auto;padding:24px 18px 64px}header.app{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}header.app h1{letter-spacing:-.01em;margin:0;font-size:22px}header.app .who{color:var(--muted);font-size:13px}nav.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin:18px 0;display:flex}nav.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:14px}nav.tabs button.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin-bottom:16px;padding:16px}.card h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 12px;font-size:15px}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.row:last-child{border-bottom:none}.row .when{font-weight:600}.row .sub{color:var(--muted);font-size:13px}.pill{background:#f3ece1;border-radius:999px;padding:2px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:inline-block}.pill.you{background:var(--accent);color:var(--accent-ink)}.pill.swap{background:#e7eef9}.pill.manual{background:#f4e7f6}.tag{color:var(--warn);margin-left:6px;font-size:11px}button.btn{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:13px}button.btn:hover{filter:brightness(.96)}button.btn.ghost{color:var(--ink);background:#f3ece1}button.btn.danger{background:var(--danger)}button.btn.tiny{padding:4px 9px;font-size:12px}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;width:100%;padding:8px 10px}label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.field{margin-bottom:10px}.grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:10px;display:grid}.banner{border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:14px}.banner.error{color:var(--danger);background:#fceae7}.banner.ok{color:var(--ok);background:#e7f4ec}.center{text-align:center;padding:80px 16px}.center .btn{margin-top:16px;padding:11px 20px;font-size:15px}.muted{color:var(--muted)}.stack>*+*{margin-top:8px}.spread{align-items:center;gap:8px;display:flex}.cal-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cal-head h2{text-transform:none;letter-spacing:-.01em;color:var(--ink);font-size:16px}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-weekday{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center;padding:4px 0;font-size:11px;font-weight:600}.cal-cell{border:1px solid var(--line);background:var(--card);border-radius:8px;flex-direction:column;gap:4px;min-height:92px;padding:5px;display:flex;overflow:hidden}.cal-cell.out{background:#faf6ef}.cal-cell.out .cal-date{color:var(--muted);opacity:.6}.cal-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-date{color:var(--muted);font-size:12px;font-weight:600}.cal-cell.today .cal-date{color:var(--accent)}.cal-occ{background:#f3ece1;border-radius:6px;padding:4px 6px;font-size:12px}.cal-occ.cancelled{opacity:.65}.cal-occ.cancelled .cal-occ-title{text-decoration:line-through}.cal-occ-title{font-weight:600;line-height:1.25}.cal-occ-time{color:var(--accent)}.cal-occ-loc{color:var(--muted);font-size:11px}.cal-occ-people{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.cal-occ-people .pill{padding:1px 6px;font-size:11px}.cal-occ .btn.tiny{margin-top:4px;padding:2px 7px;font-size:11px}.cal-occ.clickable{cursor:pointer}.cal-occ.clickable:hover{filter:brightness(.97)}.cal-occ.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (width<=560px){.cal-grid{gap:2px}.cal-weekday{font-size:10px}.cal-cell{min-height:64px;padding:3px}.cal-occ{padding:3px 4px;font-size:11px}}.modal-backdrop{z-index:50;background:#2b272266;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;width:100%;max-width:460px;max-height:calc(100vh - 36px);padding:18px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.modal-head h2{text-transform:none;letter-spacing:-.01em;color:var(--ink);margin:0;font-size:16px}.modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:20px;line-height:1}.modal-close:hover{color:var(--ink)}.modal-when{color:var(--muted);font-size:13px}.modal-note{margin-top:8px;font-size:13px}.modal-badges{gap:6px;margin-top:6px;display:flex}.modal-section{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.modal-section h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 10px;font-size:12px}.modal-slot{justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.modal-slot .slot-idx{color:var(--muted);flex-shrink:0;font-size:12px}.modal-slot select{flex:1;width:auto;min-width:120px}
