:root{--navy: #152238;--navy-deep: #0f1828;--red: #d61f30;--red-deep: #b41826;--teal: #008a94;--teal-soft: #e6f5f6;--lime: #c5cc14;--bg: #f4f6f9;--bg-elevated: #ffffff;--ink: #152238;--muted: #4a5b6e;--line: #d5dbe3;--line-strong: #b8c2cf;--danger: #b41826;--ok: #0a7a80;--shadow: 0 1px 2px rgba(21, 34, 56, .06), 0 8px 24px rgba(21, 34, 56, .06);--font-display: "Montserrat", "Avenir Next", sans-serif;--font-body: "Plus Jakarta Sans", "Avenir Next", sans-serif;--page-glow-teal: rgba(0, 138, 148, .08);--page-glow-red: rgba(214, 31, 48, .05);color-scheme:light dark}[data-theme=dark]{--teal-soft: rgba(0, 138, 148, .18);--bg: #0f1828;--bg-elevated: #1a2740;--ink: #f2f5f8;--muted: #b0bfcf;--line: rgba(242, 245, 248, .14);--line-strong: rgba(242, 245, 248, .26);--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 12px 28px rgba(0, 0, 0, .35);--page-glow-teal: rgba(0, 138, 148, .16);--page-glow-red: rgba(214, 31, 48, .1);--navy: #f2f5f8;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;background-color:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 0% -10%,var(--page-glow-teal),transparent 55%),radial-gradient(ellipse 50% 35% at 100% 0%,var(--page-glow-red),transparent 50%);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline;color:var(--ink)}#app{min-height:100vh}.shell{width:min(1040px,calc(100% - 2.5rem));margin:0 auto;padding:1.75rem 0 4.5rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2.5rem;padding-bottom:1.15rem;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;text-decoration:none;color:inherit;line-height:0}.brand:hover{text-decoration:none;opacity:.92}.brand-mark{display:block;height:clamp(2.75rem,7vw,3.75rem);width:auto;max-width:min(240px,55vw);object-fit:contain;object-position:left center}.topbar nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.85rem 1.15rem;font-size:.9rem;font-weight:600;color:var(--muted)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--bg-elevated);color:var(--ink);cursor:pointer;box-shadow:var(--shadow)}.theme-toggle:hover{border-color:var(--line-strong)}.theme-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;line-height:0}.theme-toggle-icon svg{display:block;width:100%;height:100%;overflow:visible}.theme-toggle-icon--moon svg{transform:translate(.5px,.5px)}[data-theme=light] .theme-toggle-icon--sun,[data-theme=dark] .theme-toggle-icon--moon{display:none}.topbar nav a{color:var(--ink)}.topbar nav a:hover{color:var(--red)}.hero{margin-bottom:1.75rem;max-width:40rem}.hero h1{font-family:var(--font-display);font-style:normal;font-weight:750;font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.12;margin:0 0 .7rem;letter-spacing:-.03em;color:var(--ink);text-transform:none}.hero p{margin:0;color:var(--muted);font-size:1.05rem;line-height:1.55}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));align-items:end;gap:.85rem;margin-bottom:1.5rem;background:color-mix(in srgb,var(--bg-elevated) 82%,transparent);border:1px solid var(--line);border-radius:1rem;box-shadow:none;padding:1.15rem 1.2rem;backdrop-filter:blur(12px)}.filter{display:grid;gap:.3rem;min-width:0}.filter-wide{grid-column:span 2}.filter>span{font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.filters .btn{align-self:end}.filters select:disabled{opacity:.5;cursor:not-allowed}.list[aria-busy=true]{opacity:.55;transition:opacity .12s ease-in}@media(max-width:640px){.filters{grid-template-columns:1fr 1fr}}.filters input,.filters select,.form input,.form select,.form button,.btn{font:inherit}.filters input,.filters select,.form input{background:var(--bg-elevated);border:1px solid var(--line-strong);color:var(--ink);border-radius:.4rem;padding:.65rem .8rem;min-width:0;width:100%}.form input{min-width:10rem}.filters input::placeholder,.form input::placeholder{color:var(--muted)}.filters input:focus,.form input:focus,.filters select:focus{outline:2px solid rgba(0,138,148,.35);border-color:var(--teal)}[data-theme=dark] .filters select,[data-theme=dark] .form select{color-scheme:dark}.list{display:grid;gap:0;background:color-mix(in srgb,var(--bg-elevated) 82%,transparent);border:1px solid var(--line);border-radius:1rem;box-shadow:none;padding:.25rem 1.15rem;backdrop-filter:blur(12px)}.event{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1.25rem .15rem;border-bottom:1px solid var(--line);align-items:center}.event:last-child{border-bottom:none}.event h2{font-family:var(--font-display);font-size:1.1rem;margin:0 0 .3rem;font-weight:700;letter-spacing:-.015em;color:var(--ink)}.event h2 a{color:inherit;text-decoration:none}.event h2 a:hover{color:var(--red)}.meta{color:var(--muted);font-size:.92rem;line-height:1.45;margin:0}.badge{display:inline-block;font-family:var(--font-display);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--teal);background:var(--teal-soft);border:none;padding:.22rem .55rem;border-radius:999px;margin-bottom:.45rem}.badge.closed{color:var(--muted);background:var(--teal-soft);border-color:var(--line)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;background:var(--red);color:#fff;border:none;border-radius:.4rem;padding:.7rem 1.05rem;font-family:var(--font-display);font-weight:700;font-size:.92rem;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--red-deep);text-decoration:none;color:#fff}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}.btn.secondary:hover{border-color:var(--ink);background:var(--teal-soft);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.detail-grid{display:grid;gap:1.5rem}@media(min-width:860px){.detail-grid{grid-template-columns:1.2fr .8fr;align-items:start}}.panel{background:color-mix(in srgb,var(--bg-elevated) 84%,transparent);border:1px solid var(--line);border-top:none;border-radius:1rem;box-shadow:none;padding:1.4rem 1.45rem;backdrop-filter:blur(12px)}.panel h2{font-family:var(--font-display);font-size:1rem;font-weight:750;text-transform:none;letter-spacing:-.01em;margin:0 0 .85rem;color:var(--ink)}.form{display:grid;gap:.75rem}.form label{display:grid;gap:.3rem;font-size:.88rem;font-weight:600;color:var(--muted)}.form .row{display:grid;gap:.75rem}@media(min-width:520px){.form .row{grid-template-columns:1fr 1fr}}.tabs{display:flex;gap:0;margin-bottom:.85rem;border-bottom:1px solid var(--line)}.tabs button{background:transparent;border:none;border-bottom:3px solid transparent;color:var(--muted);border-radius:0;padding:.55rem .9rem;margin-bottom:-1px;cursor:pointer;font:inherit;font-family:var(--font-display);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}.tabs button.active{color:var(--ink);border-bottom-color:var(--red);background:transparent}.msg{margin:.5rem 0 0;font-size:.95rem}.msg.error{color:var(--danger)}.msg.ok{color:var(--ok)}.empty,.loading,.error-banner{color:var(--muted);padding:2rem 1rem}.error-banner{color:var(--danger)}.footer{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem;line-height:1.5}.footer a{color:var(--ink);font-weight:600}@media(max-width:640px){.topbar{flex-direction:column;align-items:flex-start}.topbar nav{justify-content:flex-start}.event{grid-template-columns:1fr;align-items:start}.event .btn{width:fit-content}.list{padding:.25rem .75rem}}
