:root{--ink: #171b34;--ink-deep: #12162b;--surface: #1b2040;--paper: #f2f4fb;--muted: #8891ae;--border: #2a3350;--blue: #3b6ff0;--amber: #e8a13c;--rose: #ec5a78;--green: #3ba55d}*{box-sizing:border-box}body{margin:0;background:var(--ink-deep);color:var(--paper);font:15px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{max-width:72rem;margin:0 auto;padding:1.5rem 1.25rem 6rem}.app>h1{font-size:1.4rem;letter-spacing:-.02em;margin:0 0 1rem}.views{display:flex;gap:.5rem;margin-bottom:1rem}.views [aria-pressed=true]{font-weight:700}.status{color:var(--muted)}button{background:var(--surface);color:var(--paper);border:1px solid var(--border);border-radius:8px;padding:.45rem .9rem;font:inherit;cursor:pointer}button:hover{border-color:var(--blue)}button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}aside:not(.drawer){display:flex;gap:1.25rem;padding:.6rem .9rem;margin-bottom:1rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--muted);font-variant-numeric:tabular-nums}.schedule{width:100%;border-collapse:separate;border-spacing:0 4px}.schedule thead th{text-align:left;color:var(--muted);font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;padding:.25rem .5rem}.schedule tbody th{text-align:left;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;padding:.35rem .5rem;white-space:nowrap}.schedule td{padding:.2rem .35rem;background:var(--ink);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.schedule td:last-child{border-right:1px solid var(--border);border-radius:0 8px 8px 0}.schedule tbody th+td{border-left:1px solid var(--border);border-radius:8px 0 0 8px}.schedule td button{border-width:1.5px;border-radius:999px;padding:.2rem .7rem;margin:.1rem .15rem;font-size:.85rem;background:var(--ink-deep)}.schedule td button[data-status=draft]{color:var(--amber)}.schedule td button[data-status=approved]{color:var(--paper)}.schedule td[data-testid^=hole-]{background:color-mix(in srgb,var(--rose) 18%,var(--ink))!important}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(26rem,92vw);overflow-y:auto;background:var(--surface);border-left:1px solid var(--border);padding:1.1rem 1.25rem 2rem;box-shadow:-12px 0 32px #00000059}.drawer header{display:flex;align-items:center;gap:.5rem;justify-content:space-between;margin-bottom:.75rem;color:var(--muted)}.drawer ol{padding-left:1.25rem}.drawer li{margin:.3rem 0;padding:.3rem .5rem;border:1px solid var(--border);border-radius:8px;list-style-position:inside}.drawer li[data-correct=true]{border-color:var(--green);color:var(--paper);font-weight:600}.drawer .meta,.drawer p{color:var(--muted);font-size:.9rem}.drawer [role=alert]{color:var(--rose)}.drawer label{display:block;color:var(--muted);font-size:.85rem;margin:.75rem 0 .25rem}.drawer input{background:var(--ink-deep);color:var(--paper);border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem;font:inherit;width:100%}.drawer div>button{margin:.5rem .5rem 0 0}a{color:var(--blue)}.schedule .weekday{display:inline-block;width:2.4em;color:var(--paper)}.schedule .quiz-badge{display:inline-block;border:1px solid var(--blue);color:var(--blue);border-radius:999px;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;padding:.05rem .45rem;margin-right:.25rem;vertical-align:middle}.drawer .reason{color:var(--amber);border-left:3px solid var(--amber);padding-left:.5rem}.drawer textarea{background:var(--ink-deep);color:var(--paper);border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem;font:inherit;width:100%;resize:vertical}.drawer .edit-option{display:flex;gap:.5rem;align-items:end}.drawer .edit-option label:first-child{flex:1}.drawer .edit-option input[type=radio]{width:auto;accent-color:var(--green)}.announcements{display:grid;gap:1rem}.announcements-toolbar{display:flex;align-items:center;justify-content:flex-end}.announcement-form{display:grid;gap:.5rem;max-width:40rem}.announcement-form label{display:grid;gap:.25rem}.announcement-form input,.announcement-form textarea,.announcement-form select{background:var(--surface);color:var(--paper);border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem;font:inherit}.announcement-form-actions,.announcement-row-actions{display:flex;gap:.5rem}.announcement-group ul{list-style:none;padding:0;display:grid;gap:.75rem}.announcement-row{border:1px solid var(--border);border-radius:.5rem;padding:.75rem;background:var(--surface)}.announcement-row .meta{color:var(--muted)}.state-ended .announcement-row{opacity:.6}.announcement-retry{margin:0}
