:root{--bg:#FFF9F2;--surface:#FFFFFF;--ink:#3B3A5C;--soft:#6b6890;--waiting:#CDBFEA;--almost:#FFD66B;--next:#FFB27A;--called:#7ED6B8;--missed:#F28B8B;--line:#ece4d8}
.dark{--bg:#1E1D2E;--surface:#2A2940;--ink:#F3EFFF;--soft:#b9b4dc;--line:#3c3a58}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Nunito,system-ui,sans-serif;
background-image:radial-gradient(circle at 10% 0%,rgba(205,191,234,.35),transparent 40%),radial-gradient(circle at 100% 30%,rgba(126,214,184,.25),transparent 40%);min-height:100vh}
h1,h2,h3,.fred{font-family:Fredoka,'Baloo 2',sans-serif}
.card{background:var(--surface);border:2px solid var(--line);border-radius:20px;padding:16px}
.pill{border-radius:999px;min-height:48px;padding:0 18px;font-weight:800;border:2px solid var(--ink);background:var(--surface);color:var(--ink);cursor:pointer}
.pill:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #7a6fd0;outline-offset:2px}
.pill.pri{background:#3B3A5C;color:#fff;border-color:#3B3A5C}
.dark .pill.pri{background:#CDBFEA;color:#3B3A5C}
.pill:disabled{opacity:.4;cursor:not-allowed}
.inp{border:2px solid var(--line);border-radius:16px;min-height:48px;padding:0 14px;background:var(--surface);color:var(--ink);width:100%}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 12px;font-weight:800;color:#3B3A5C;font-size:.85rem}
.bob{animation:bob 3s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-6px)}}
.fade{animation:fade .2s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}}
.flash{animation:flash 1.2s ease 1}
@keyframes flash{50%{background:#7ED6B8}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
table td,table th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:.85rem}