:root { --event-green:#27e08f; --event-blue:#45b7ff; --event-warn:#ffbd59; --event-danger:#ff6275; }
.event-web-header{position:relative;z-index:2;max-width:1480px;margin:0 auto;padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}
.event-brand{display:flex;align-items:center;gap:.8rem;color:var(--text-primary);text-decoration:none;font-family:'Bebas Neue',sans-serif;font-size:1.65rem;letter-spacing:.06em}.event-brand img{width:44px;height:44px;object-fit:contain}
.event-header-actions{display:flex;align-items:center;gap:1rem;color:var(--text-secondary);font-size:.9rem}.event-secondary-button,.event-primary-button{border:1px solid var(--border);border-radius:10px;padding:.7rem 1rem;color:var(--text-primary);background:rgba(255,255,255,.04);text-decoration:none;font:inherit;cursor:pointer}.event-primary-button{border-color:var(--event-green);background:rgba(39,224,143,.14);color:var(--event-green);font-weight:700}.event-secondary-button:hover,.event-primary-button:hover{transform:translateY(-1px);border-color:var(--event-green)}
.event-web-shell{position:relative;z-index:1;max-width:1480px;margin:0 auto;padding:2rem}.event-web-hero{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;margin:1rem 0 2rem}.event-web-hero h1{font:400 clamp(2.5rem,5vw,4.75rem)/.95 'Bebas Neue',sans-serif;letter-spacing:.02em;margin:.4rem 0 1rem}.event-web-hero p{color:var(--text-secondary);max-width:720px;line-height:1.6}.event-eyebrow{font-size:.75rem;letter-spacing:.18em;color:var(--event-green);font-weight:700}.event-zone-card{min-width:240px;padding:1rem 1.2rem;border:1px solid var(--border);border-radius:14px;background:rgba(11,18,31,.78)}.event-zone-card span{display:block;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem}.event-zone-card strong{font-size:.95rem}
.event-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:1.5rem;align-items:start}.event-list-panel,.event-detail-panel{border:1px solid var(--border);background:rgba(10,16,27,.9);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.26)}.event-list-panel{padding:1rem;position:sticky;top:1rem}.event-panel-heading{display:flex;align-items:center;justify-content:space-between;padding:.25rem .35rem 1rem}.event-panel-heading h2{font:400 1.6rem 'Bebas Neue',sans-serif;letter-spacing:.06em}.event-icon-button{width:36px;height:36px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--text-primary);font-size:1.2rem;cursor:pointer}.event-list-web{display:grid;gap:.65rem}.event-list-item{width:100%;text-align:left;border:1px solid transparent;border-radius:12px;background:rgba(255,255,255,.035);color:var(--text-primary);padding:1rem;cursor:pointer}.event-list-item:hover,.event-list-item.active{border-color:rgba(39,224,143,.55);background:rgba(39,224,143,.08)}.event-list-item strong{display:block;margin-bottom:.5rem}.event-list-item-meta{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:.76rem}.event-status{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.event-status.open{color:var(--event-green);background:rgba(39,224,143,.12)}.event-status.closed{color:var(--text-secondary);background:rgba(255,255,255,.07)}
.event-detail-panel{min-height:480px;padding:clamp(1.2rem,3vw,2rem)}.event-empty-state{text-align:center;padding:6rem 1rem;color:var(--text-secondary)}.event-empty-state span{font-size:2.5rem}.event-empty-state h2{color:var(--text-primary);margin:.8rem 0}.event-detail-header{display:flex;justify-content:space-between;gap:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.event-detail-header h2{font:400 clamp(2rem,4vw,3.3rem) 'Bebas Neue',sans-serif;margin:.35rem 0}.event-detail-header p{color:var(--text-secondary);line-height:1.55}.event-faction-badge{color:var(--event-blue);font-size:.75rem;font-weight:700;letter-spacing:.12em}.event-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.25rem 0}.event-date-card{padding:.9rem;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025)}.event-date-card span{display:block;color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:.35rem}.event-date-card strong{display:block;font-size:.88rem}.event-date-card small{display:block;color:var(--text-secondary);margin-top:.25rem;font-size:.72rem}
.signup-section-web{margin-top:1.5rem}.signup-section-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.8rem}.signup-section-heading h3{font-size:1.08rem;margin:0}.signup-section-heading p{margin:.3rem 0 0;color:var(--text-secondary);font-size:.84rem}.signup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:.75rem}.signup-choice{position:relative;text-align:left;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.035);color:var(--text-primary);padding:1rem;min-height:105px;cursor:pointer;transition:.18s ease}.signup-choice:hover:not(.enrollment-disabled){border-color:var(--event-green);transform:translateY(-2px)}.signup-choice.selected{border-color:var(--event-green);background:linear-gradient(135deg,rgba(39,224,143,.14),rgba(69,183,255,.06));box-shadow:inset 0 0 0 1px rgba(39,224,143,.12)}.signup-choice.enrollment-disabled{cursor:not-allowed;opacity:.62}.signup-choice-top{display:flex;justify-content:space-between;gap:.75rem;align-items:start}.signup-choice-title{font-weight:700}.signup-choice-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.signup-choice-status,.signup-going-pill{font-size:.68rem;padding:.25rem .45rem;border-radius:999px;background:rgba(255,255,255,.08);white-space:nowrap}.signup-going-pill{border:1px solid rgba(69,183,255,.28);color:#a9d9ff;font-family:inherit;cursor:pointer;background:rgba(69,183,255,.09)}.signup-going-pill:hover,.signup-going-pill:focus-visible{border-color:var(--event-blue);background:rgba(69,183,255,.17);outline:none}.signup-choice.selected .signup-choice-status{color:var(--event-green);background:rgba(39,224,143,.14)}.signup-choice-description{color:var(--text-secondary);font-size:.8rem;margin-top:.55rem;line-height:1.45}.signup-time-local{font-weight:700;margin-top:.65rem}.signup-time-utc{color:var(--text-secondary);font-size:.72rem;margin-top:.3rem}.signup-capacity{height:4px;background:rgba(255,255,255,.08);border-radius:99px;margin-top:.8rem;overflow:hidden}.signup-capacity span{display:block;height:100%;background:linear-gradient(90deg,var(--event-green),var(--event-blue))}.event-notice{position:relative;z-index:2;border:1px solid rgba(255,189,89,.4);background:rgba(255,189,89,.09);color:#ffd698;border-radius:12px;padding:1rem 1.2rem;margin-bottom:1rem}.event-notice a{color:inherit;font-weight:700}.event-toast{position:fixed;z-index:20;right:1.5rem;bottom:1.5rem;max-width:380px;padding:1rem 1.2rem;border-radius:12px;background:#121d2e;border:1px solid var(--event-green);color:var(--text-primary);box-shadow:0 16px 45px rgba(0,0,0,.4);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.event-toast.show{opacity:1;transform:none}.event-toast.error{border-color:var(--event-danger)}
.signup-day-group{margin-top:1.25rem}.signup-day-group:first-of-type{margin-top:.35rem}.signup-day-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .7rem;padding:.15rem .15rem .55rem;border-bottom:1px solid rgba(69,183,255,.25)}.signup-day-heading h4{margin:0;font:400 1.35rem 'Bebas Neue',sans-serif;letter-spacing:.08em;color:var(--event-blue)}.signup-day-heading span{color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.signup-participants{margin-top:.85rem;padding-top:.7rem;border-top:1px solid rgba(255,255,255,.08)}.signup-participants-label{display:block;color:var(--text-secondary);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem}.signup-participant-list{display:flex;flex-wrap:wrap;gap:.35rem}.signup-participant{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:.25rem .48rem;font-size:.7rem;line-height:1.2;background:rgba(255,255,255,.055)}.signup-participant.confirmed{color:#a9f5ce;border-color:rgba(39,224,143,.3);background:rgba(39,224,143,.1)}.signup-participant.pending{color:#ffd698;border-color:rgba(255,189,89,.3);background:rgba(255,189,89,.09)}.signup-participant.waitlisted{color:#a9d9ff;border-color:rgba(69,183,255,.3);background:rgba(69,183,255,.09)}.signup-participant-empty{color:var(--text-secondary);font-size:.72rem;font-style:italic}
.signup-participant-admin-wrap{display:inline-flex;align-items:center;border-radius:999px}.signup-participant-select{font-family:inherit;cursor:pointer}.signup-participant-select:hover,.signup-participant-select:focus-visible{filter:brightness(1.2);outline:none}.signup-participant-admin-wrap.selected{box-shadow:0 0 0 2px rgba(255,98,117,.48)}.signup-participant-admin-wrap.selected .signup-participant-select{border-color:var(--event-danger);border-radius:999px 0 0 999px}.signup-participant-remove-action{display:none;align-self:stretch;border:1px solid var(--event-danger);border-left:0;border-radius:0 999px 999px 0;padding:.2rem .52rem;background:rgba(255,98,117,.15);color:#ffb6bf;font:inherit;font-size:.66rem;font-weight:700;cursor:pointer}.signup-participant-admin-wrap.selected .signup-participant-remove-action{display:inline-flex;align-items:center}.signup-participant-remove-action:hover,.signup-participant-remove-action:focus-visible{background:rgba(255,98,117,.27);outline:none}
.signup-choice.record-only{cursor:default}.signup-choice.record-only:hover{transform:none}.attendance-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0 1.25rem;padding:1rem 1.1rem;border:1px solid rgba(69,183,255,.28);border-radius:14px;background:linear-gradient(135deg,rgba(69,183,255,.1),rgba(39,224,143,.05))}.attendance-summary>div:first-child>span{color:#a9d9ff;font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.attendance-summary h3{margin:.18rem 0 .25rem;font-size:1rem}.attendance-summary p{margin:0;color:var(--text-secondary);font-size:.74rem;line-height:1.4}.attendance-summary-chips{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.4rem}.attendance-summary-chip,.signup-attendance-status{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.28rem .5rem;font-size:.66rem;font-weight:800;white-space:nowrap}.attendance-summary-chip.met,.signup-attendance-status.met{color:#a9f5ce;background:rgba(39,224,143,.14);border:1px solid rgba(39,224,143,.28)}.attendance-summary-chip.at_risk,.signup-attendance-status.at_risk{color:#ffd698;background:rgba(255,189,89,.12);border:1px solid rgba(255,189,89,.3)}.attendance-summary-chip.missed,.signup-attendance-status.missed{color:#ffb6bf;background:rgba(255,98,117,.12);border:1px solid rgba(255,98,117,.3)}.attendance-summary-chip.unverifiable,.signup-attendance-status.unverifiable,.attendance-summary-chip.pending,.signup-attendance-status.pending{color:#c5ceda;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13)}.signup-participant-list:has(.signup-attendance-member){display:grid;width:100%;gap:.4rem}.signup-attendance-member{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.18rem .5rem;width:100%;padding:.48rem .55rem;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:rgba(255,255,255,.035)}.signup-attendance-name{min-width:0;font-size:.75rem;font-weight:700;overflow-wrap:anywhere}.signup-attendance-member small{grid-column:1/-1;color:var(--text-secondary);font-size:.66rem;line-height:1.35}
.event-modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(2,7,14,.78);backdrop-filter:blur(8px)}.event-roster-modal{width:min(520px,100%);max-height:min(680px,88vh);overflow:auto;border:1px solid rgba(69,183,255,.3);border-radius:18px;background:#0c1524;box-shadow:0 28px 90px rgba(0,0,0,.58)}.event-roster-modal header{position:sticky;top:0;display:flex;align-items:start;justify-content:space-between;gap:1rem;padding:1.2rem 1.3rem;border-bottom:1px solid var(--border);background:#0c1524}.event-roster-modal header span{display:block;color:var(--event-blue);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.event-roster-modal h2{margin:.3rem 0 0;font-size:1.25rem}.event-modal-close{width:36px;height:36px;flex:0 0 auto;border:1px solid var(--border);border-radius:9px;background:rgba(255,255,255,.04);color:var(--text-primary);font-size:1.35rem;cursor:pointer}.event-roster-list{list-style:none;margin:0;padding:.5rem 1.3rem 1.2rem}.event-roster-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid rgba(255,255,255,.07)}.event-roster-list li:last-child{border-bottom:0}.roster-member-name{font-weight:700}.roster-member-status{flex:0 0 auto;border-radius:999px;padding:.25rem .48rem;font-size:.68rem}.roster-member-status.confirmed{color:#a9f5ce;background:rgba(39,224,143,.1)}.roster-member-status.pending{color:#ffd698;background:rgba(255,189,89,.09)}.roster-member-status.waitlisted{color:#a9d9ff;background:rgba(69,183,255,.09)}.event-roster-empty{padding:2.2rem 1.3rem;color:var(--text-secondary);text-align:center}
.signup-choice.admin-manageable{cursor:default}.signup-admin-add{width:100%;margin-top:.85rem;border:1px solid rgba(69,183,255,.42);border-radius:9px;padding:.55rem .7rem;background:rgba(69,183,255,.1);color:#b8e2ff;font:inherit;font-size:.76rem;font-weight:700;cursor:pointer}.signup-admin-add:hover,.signup-admin-add:focus-visible{border-color:var(--event-blue);background:rgba(69,183,255,.18);outline:none}.event-admin-form{display:grid;gap:1rem;padding:1.25rem 1.3rem 1.4rem}.event-admin-form label>span{display:block;margin-bottom:.45rem;color:var(--text-secondary);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.event-admin-select{width:100%;border:1px solid var(--border);border-radius:10px;padding:.75rem;background:#101b2d;color:var(--text-primary);font:inherit}.event-admin-force{display:flex;align-items:center;gap:.6rem;font-size:.86rem}.event-admin-form p{margin:0;color:var(--text-secondary);font-size:.78rem;line-height:1.5}.event-admin-actions{display:flex;justify-content:flex-end;gap:.65rem}.event-admin-actions button:disabled{opacity:.55;cursor:wait}
.event-detail-actions{display:flex;align-items:flex-end;flex-direction:column;gap:.65rem}.event-audit-modal{width:min(780px,100%)}.event-audit-loading{padding:2rem;color:var(--text-secondary);text-align:center}.event-audit-list{list-style:none;margin:0;padding:.35rem 1.3rem 1.25rem}.event-audit-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.07)}.event-audit-list li:last-child{border-bottom:0}.event-audit-entry{min-width:0}.event-audit-entry strong{display:block;font-size:.86rem;line-height:1.45}.event-audit-entry span,.event-audit-target-local{display:block;color:var(--text-secondary);font-size:.7rem;margin-top:.28rem}.event-audit-target-local{color:#a9d9ff}.event-audit-source{flex:0 0 auto;border-radius:999px;padding:.25rem .48rem;color:var(--event-blue);background:rgba(69,183,255,.09);font-size:.64rem;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:900px){.event-web-hero{align-items:stretch;flex-direction:column}.event-zone-card{min-width:0}.event-layout{grid-template-columns:1fr}.event-list-panel{position:static}.event-list-web{display:flex;overflow:auto}.event-list-item{min-width:240px}.event-date-grid{grid-template-columns:1fr}.event-detail-header{flex-direction:column}.event-detail-actions{align-items:flex-start}.event-web-header{padding:1rem}.event-web-shell{padding:1rem}.event-header-actions span{display:none}.event-audit-list li{flex-direction:column}.event-audit-source{align-self:flex-start}.attendance-summary{align-items:flex-start;flex-direction:column}.attendance-summary-chips{justify-content:flex-start}}

@media(max-width:640px){
html,body{max-width:100%;overflow-x:hidden}
.event-web-header{align-items:flex-start;flex-wrap:wrap;gap:.75rem;padding:.75rem}
.event-brand{min-width:0;font-size:1.35rem}.event-brand img{width:36px;height:36px}
.event-header-actions{margin-left:auto}.event-secondary-button,.event-primary-button{padding:.58rem .72rem}
.event-web-shell{width:100%;padding:.65rem}
.event-web-hero{gap:.75rem;margin:.5rem 0 1rem}.event-web-hero h1{font-size:2.35rem;margin:.25rem 0 .55rem}.event-web-hero p{margin:0;font-size:.86rem;line-height:1.45}
.event-zone-card{padding:.75rem .85rem}
.event-layout,.event-list-panel,.event-detail-panel,.signup-section-web,.signup-grid,.signup-choice{min-width:0;width:100%}
.event-list-panel{padding:.75rem}.event-list-web{display:grid;grid-template-columns:1fr;overflow:visible}.event-list-item{min-width:0;padding:.8rem}
.event-detail-panel{padding:.8rem;border-radius:14px;overflow:hidden}.event-detail-header{gap:.8rem;padding-bottom:1rem}.event-detail-header h2{font-size:2rem;margin:.25rem 0}.event-detail-header p{margin:0;font-size:.84rem}.event-detail-actions{width:100%;align-items:flex-start}.event-status{max-width:100%;white-space:normal;line-height:1.35}
.event-date-grid{gap:.5rem;margin:.85rem 0}.event-date-card{padding:.72rem}.event-date-card strong,.event-date-card small{overflow-wrap:anywhere}
.signup-section-web{margin-top:1.1rem}.signup-section-heading{align-items:flex-start;flex-direction:column;gap:.35rem}.signup-section-heading>span{font-size:.72rem;color:var(--text-secondary)}
.signup-day-group{margin-top:1.1rem}.signup-day-heading{margin-bottom:.55rem}.signup-grid{grid-template-columns:minmax(0,1fr);gap:.55rem}
.signup-choice{min-height:0;padding:.8rem}.signup-choice-top{gap:.5rem}.signup-choice-title{min-width:0;overflow-wrap:anywhere}.signup-choice-badges{flex:0 0 auto}
.signup-time-local{overflow-wrap:anywhere}.signup-participant-list{gap:.3rem}.signup-participant{max-width:100%;overflow-wrap:anywhere}
.event-toast{right:.65rem;bottom:.65rem;left:.65rem;max-width:none}
.event-modal-backdrop{padding:.5rem}.event-roster-modal{max-height:94vh;border-radius:14px}.event-roster-modal header,.event-admin-form{padding:1rem}.event-roster-list{padding:.4rem 1rem 1rem}
}

/* Compact chain-block cards: TCT heading with a smaller viewer-local range. */
.signup-grid{grid-template-columns:repeat(auto-fill,minmax(265px,1fr))}
.signup-choice-title{line-height:1.35}
.signup-time-local{color:var(--text-secondary);font-size:.8rem;font-weight:600;margin-top:.45rem}

@media(max-width:640px){.signup-grid{grid-template-columns:minmax(0,1fr)}}
