:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f6f7f9;--surface:#fff;--surface-2:#eef1f5;--text:#16181d;--text-muted:#5b616e;--border:#d7dbe2;--accent:#ea580c;--accent-contrast:#fff;--shadow:0 6px 24px #1418211f;--radius:10px;--row-hover:#dfe4ec;--fc-border-color:var(--border);--fc-page-bg-color:var(--surface);--fc-neutral-bg-color:var(--surface-2);--fc-today-bg-color:#ea580c12;--fc-list-event-hover-bg-color:var(--row-hover);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0e1116;--surface:#171b22;--surface-2:#1f242c;--text:#e8eaed;--text-muted:#a2a9b5;--border:#2c323c;--shadow:0 6px 24px #00000080;--row-hover:#3a4453;--fc-today-bg-color:#ea580c24}}:root[data-theme=dark]{--bg:#0e1116;--surface:#171b22;--surface-2:#1f242c;--text:#e8eaed;--text-muted:#a2a9b5;--border:#2c323c;--shadow:0 6px 24px #00000080;--row-hover:#3a4453;--fc-today-bg-color:#ea580c24}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;margin:0;display:flex}.skip-link{background:var(--accent);color:var(--accent-contrast);border-radius:0 0 var(--radius) 0;z-index:100;padding:8px 14px;position:absolute;top:0;left:-999px}.skip-link:focus{left:0}.site-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-link{border-radius:8px;align-items:center;display:inline-flex}.brand-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.brand-logo{width:auto;height:40px;display:block}.brand h1{color:var(--accent);margin:0;font-size:1.15rem;font-weight:700}.brand-sub{color:var(--text-muted);font-weight:500}.header-controls{align-items:center;gap:12px;display:flex}.updated{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.icon-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:10px;width:40px;height:40px;font-size:1.2rem}.icon-btn:hover{border-color:var(--accent)}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:12px 20px;display:flex;position:sticky;top:0}.view-switch,.group-filters{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:.9rem;font-weight:600;line-height:1;display:inline-flex}.chip:hover{border-color:var(--accent)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.view-btn.is-active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.group-filters .chip .swatch{border-radius:3px;flex:none;width:12px;height:12px}.group-filters .chip[aria-pressed=false]{opacity:.45}.group-filters .filter-all[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.group-filters .filter-all[aria-pressed=false]{opacity:1}main{flex:1;padding:16px 20px}.status{min-height:1.2em;color:var(--text-muted);margin-bottom:8px;font-size:.9rem}.status.error{color:#dc2626}#calendar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px}.fc .fc-header-toolbar{top:var(--toolbar-h,0px);z-index:7;background:var(--surface);margin-bottom:0;padding-bottom:8px;position:sticky}.fc .fc-timegrid-slot{height:2.6em}.fc .fc-event{cursor:pointer;border-radius:6px;padding:1px 3px}.fc .fc-event:focus-visible{outline:2px solid var(--text)}.fc .fc-timegrid-event .fc-event-title{white-space:normal;overflow-wrap:anywhere;word-break:break-word;overflow:hidden}.fc .fc-timegrid-event .fc-event-main,.fc .fc-timegrid-event .fc-event-main-frame{min-height:0;overflow:hidden}.fc .fc-col-header-cell-cushion,.fc .fc-timegrid-axis-cushion,.fc .fc-list-day-text{color:var(--text)}.fc-theme-standard .fc-list-day-cushion{background:var(--surface-2)}.fc .fc-list-sticky .fc-list-day th{top:calc(var(--toolbar-h,0px) + var(--fc-toolbar-h,0px));z-index:6;background:var(--surface-2)}.site-footer{color:var(--text-muted);border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;gap:6px 18px;padding:12px 20px;font-size:.85rem;display:flex}.modal-overlay{z-index:200;background:#0a0c108c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;width:100%;max-width:480px;padding:22px;position:relative}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.6rem;line-height:1;position:absolute;top:10px;right:12px}.modal-close:hover{color:var(--text)}.modal-group{text-transform:uppercase;letter-spacing:.6px;color:var(--accent-contrast);background:var(--accent);border-radius:999px;margin-bottom:10px;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-block}.modal-title{margin:0 0 14px;padding-right:24px;font-size:1.3rem}.modal-details{gap:10px;margin:0;display:grid}.modal-row{grid-template-columns:70px 1fr;gap:10px;display:grid}.modal-row dt{color:var(--text-muted);margin:0;font-size:.85rem}.modal-row dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}@media (width<=640px){.brand h1{font-size:1rem}.brand-sub{display:none}main{padding:8px 8px 2px}#calendar{padding:4px}.toolbar{padding:10px}.fc .fc-toolbar-title{font-size:1rem}.site-footer{padding:6px 10px}.fc .fc-timegrid-slot{height:3.6em}.fc .fc-header-toolbar{padding-bottom:2px}.updated{white-space:normal;text-align:right;font-size:.72rem;line-height:1.25}}@media (width>=641px){.brand h1{font-size:1.65rem}.brand-logo{height:54px}}@media (prefers-reduced-motion:no-preference){.modal{animation:.14s ease-out pop}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}}
