:root{
  color-scheme:dark;
  --app-body-bg:#0b1220;
  --app-surface:#111c2f;
  --app-surface-muted:#15243e;
  --app-panel:#0f1c34;
  --app-border:#1f2d46;
  --app-border-strong:#2b3b5e;
  --app-text:#f1f5f9;
  --app-text-soft:#d6e4ff;
  --app-text-subtle:#a5b8da;
  --app-accent:#60a5fa;
  --app-accent-strong:#1d4ed8;
  --app-glow:rgba(37,99,235,0.26);
  --app-shadow:rgba(8,15,35,0.7);
  --bs-body-bg:var(--app-body-bg);
  --bs-body-color:var(--app-text);
  --bs-heading-color:var(--app-text);
  --bs-link-color:var(--app-accent);
  --bs-link-hover-color:#bfdbfe;
  --bs-link-color-rgb:96,165,250;
  --bs-link-hover-color-rgb:191,219,254;
  --bs-border-color:var(--app-border);
  --bs-secondary-color:var(--app-text-subtle);
  --bs-secondary-bg:rgba(17,24,39,0.7);
  --bs-table-border-color:rgba(148,163,184,0.25);
}

body{
  font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial,Helvetica,Apple Color Emoji,Segoe UI Emoji;
  margin:0;
  background:var(--app-body-bg);
  color:var(--app-text);
}

.container{max-width:1100px;margin:0 auto;padding:24px;color:var(--app-text)}
.card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:16px;padding:16px;box-shadow:0 16px 32px var(--app-shadow)}
.layout-shell{display:flex;flex-direction:column;gap:20px}
.layout-main{flex:1;min-width:0}
.layout-aside{flex:0 0 auto}

.news-teaser-card{background:var(--app-panel);border:1px solid var(--app-border-strong);border-radius:16px;padding:16px;box-shadow:0 18px 32px var(--app-shadow)}
.news-teaser-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;color:var(--app-text)}
.news-teaser-heading h2{margin:0;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-text-soft)}
.news-teaser-all{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--app-accent);text-decoration:none}
.news-teaser-all:hover{text-decoration:underline}
.news-teaser-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.news-teaser-list li{display:flex;flex-direction:column;gap:2px}
.news-teaser-list li a{color:#e0f2fe;font-weight:600;text-decoration:none;line-height:1.3;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.news-teaser-title{display:inline-block}
.news-teaser-scope{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:rgba(59,130,246,0.2);color:#bfdbfe;border:1px solid rgba(59,130,246,0.45)}
.news-teaser-list li a:hover{text-decoration:underline}
.news-teaser-date{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-text-subtle)}

.survey-layout{display:block}
.survey-topbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;color:var(--app-text)}
.survey-top-menu{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-left:auto}
.survey-top-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;min-height:46px;border-radius:12px;background:rgba(17,24,39,0.9);border:1px solid rgba(148,163,184,0.45);color:#f0f9ff;font-weight:600;font-size:15px;letter-spacing:.01em;text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}
.survey-top-link:hover{background:rgba(59,130,246,0.4);color:#f8fafc;border-color:rgba(191,219,254,0.7);box-shadow:0 12px 22px var(--app-glow)}
.survey-top-link.is-active{background:linear-gradient(145deg, rgba(59,130,246,0.9), rgba(29,78,216,0.95));color:#fff;border-color:rgba(191,219,254,0.95);box-shadow:0 18px 30px rgba(37,99,235,0.4)}
.survey-info-content{margin-top:12px}
.survey-chat-widget{margin-top:16px}
.survey-chat-widget iframe{width:100%;max-width:100%;border:0;border-radius:12px;background:rgba(11,17,29,0.85)}

.rich-text{line-height:1.7;display:flex;flex-direction:column;gap:12px;color:var(--app-text)}
.rich-text p{margin:0}
.rich-text p + p{margin-top:0}
.rich-text ul,.rich-text ol{padding-left:20px;margin:0}
.rich-text li + li{margin-top:4px}
.rich-text h2,.rich-text h3,.rich-text h4{margin:12px 0 4px;color:var(--app-text-soft)}
.rich-text a{color:#a5c9ff;text-decoration:underline}
.rich-text table{border-collapse:collapse;width:100%;margin:12px 0}
.rich-text table th,.rich-text table td{border:1px solid rgba(148,163,184,0.35);padding:8px;text-align:left;background:rgba(15,23,42,0.65);color:var(--app-text)}
.rich-text img{max-width:100%;height:auto;border-radius:12px;box-shadow:0 10px 22px rgba(4,10,25,0.55)}

.survey-news-list{display:flex;flex-direction:column;gap:16px}
.news-card{background:var(--app-surface-muted);border:1px solid var(--app-border-strong);border-radius:16px;padding:16px;box-shadow:0 20px 34px var(--app-shadow)}
.news-card-header{display:flex;flex-direction:column;gap:4px}
.news-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.news-card-header h3{margin:0;font-size:20px;color:var(--app-text)}
.news-card-meta{margin:0;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--app-text-subtle)}
.news-card-body{margin-top:8px;color:var(--app-text)}
.news-scope-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:rgba(59,130,246,0.22);color:#bfdbfe;border:1px solid rgba(59,130,246,0.55)}

.btn{background:linear-gradient(145deg, rgba(59,130,246,0.92), rgba(29,78,216,1));color:#fff;border:none;border-radius:10px;padding:10px 14px;cursor:pointer;box-shadow:0 16px 30px rgba(37,99,235,0.4);transition:transform .15s ease,box-shadow .15s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 20px 34px rgba(37,99,235,0.45)}
.btn.secondary{background:rgba(148,163,184,0.24);color:var(--app-text);border:1px solid rgba(148,163,184,0.45);box-shadow:0 12px 24px rgba(15,23,42,0.55)}
.btn.secondary:hover{background:rgba(148,163,184,0.3)}
.input,.date{background:rgba(17,24,39,0.85);color:var(--app-text);border:1px solid rgba(148,163,184,0.4);border-radius:10px;padding:10px}
.input::placeholder,.date::placeholder{color:var(--app-text-subtle)}
label{display:block;margin:6px 0;color:var(--app-text)}

.nav{display:flex;gap:12px;align-items:center;margin-bottom:16px;color:var(--app-text)}
a{color:var(--app-accent);text-decoration:none}
a:hover{text-decoration:underline}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.badge{display:inline-block;background:rgba(148,163,184,0.15);color:var(--app-text-soft);padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid rgba(148,163,184,0.35)}
.alert{padding:10px;border-radius:10px;margin:10px 0;color:var(--app-text)}
.alert.success{background:rgba(22,163,74,0.2);color:#bbf7d0;border:1px solid rgba(21,128,61,0.55)}
.alert.error{background:rgba(190,18,60,0.22);color:#fecaca;border:1px solid rgba(185,28,28,0.55)}
.logo{height:40px}
footer{opacity:.75;margin-top:24px;font-size:12px;color:var(--app-text-subtle)}
.home-hero{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.home-hero h1{margin:0;font-size:32px;color:var(--app-text)}
.home-intro{margin-top:4px}
.home-layout{display:flex;flex-direction:column;gap:24px}
.home-section{background:var(--app-surface);border:1px solid var(--app-border);border-radius:16px;padding:16px;box-shadow:0 16px 32px var(--app-shadow);display:flex;flex-direction:column;gap:16px}
.home-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.home-session-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.session-card{display:flex;flex-direction:column;background:var(--app-surface-muted);border:1px solid var(--app-border-strong);border-radius:14px;overflow:hidden;box-shadow:0 18px 30px var(--app-shadow);gap:0}
.session-card-thumb{margin:0}
.session-card-thumb img{width:100%;height:160px;object-fit:cover;display:block}
.session-card-body{display:flex;flex-direction:column;gap:10px;padding:14px}
.session-card-body h3{margin:0;font-size:20px;color:var(--app-text)}
.session-card-body h3 a{color:inherit;text-decoration:none}
.session-card-body h3 a:hover{text-decoration:underline}
.session-card-dates{margin:0;font-size:14px;color:var(--app-text-subtle)}
.session-card-session{margin:0;font-size:14px;color:var(--app-text)}
.home-news-list{display:flex;flex-direction:column;gap:16px}

.survey-hero{margin:-16px -16px 16px -16px;border-radius:16px 16px 0 0;overflow:hidden;border-bottom:1px solid var(--app-border);background:var(--app-panel)}
.survey-hero img{width:100%;height:220px;object-fit:cover;display:block}
.survey-header{margin-bottom:16px;flex:1 1 auto;color:var(--app-text)}
.survey-header h2{margin:0 0 6px;font-size:28px;color:var(--app-text)}
.survey-range{margin:0;font-size:16px;color:var(--app-text-soft)}
.survey-thumb{max-width:140px;max-height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--app-border);display:block;background:var(--app-panel)}

@media (min-width:768px){
  .survey-hero img{height:260px}
  .survey-topbar{align-items:center}
}

@media (min-width:992px){
  .layout-shell{flex-direction:row;align-items:flex-start}
  .layout-aside{width:260px;position:sticky;top:32px}
  .home-layout{gap:32px}
  .home-section{padding:20px}
  .session-card-thumb img{height:180px}
}

.calendar{display:grid;gap:16px}
.calendar-month{border:1px solid var(--app-border);border-radius:12px;padding:12px;background:rgba(17,24,39,0.8);color:var(--app-text)}
.calendar-month h4{margin:0 0 8px;font-size:18px;text-transform:capitalize;color:var(--app-text)}
.calendar-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.calendar-grid th,.calendar-grid td{border:1px solid rgba(148,163,184,0.25);padding:6px;text-align:center;vertical-align:top;font-size:14px;color:var(--app-text)}
.calendar-grid thead th{background:rgba(17,27,44,0.9);font-weight:600;color:var(--app-text)}
.calendar-cell{min-height:72px;position:relative;background:rgba(11,17,29,0.6)}
.calendar-cell .day-number{font-weight:600;display:block;margin-bottom:6px;font-size:18px;color:var(--app-text)}
.calendar-cell.selectable{background:rgba(59,130,246,0.18)}
.calendar-cell.in-range{background:rgba(148,163,184,0.16)}
.calendar-cell.disabled{background:rgba(15,23,42,0.55);color:var(--app-text-subtle)}
.calendar-cell.empty{background:transparent;border:none}

.weekend-option{display:flex;flex-direction:column;gap:6px;align-items:center;font-size:12px;color:var(--app-text)}
.weekend-option input{transform:scale(1.2)}
.weekend-label{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--app-text)}
.weekend-name{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#bfdbfe}
.weekend-date{font-size:13px;font-weight:600;color:#e0f2fe}

.results-table{margin-top:16px;overflow-x:auto}
.results-table table{width:100%;border-collapse:collapse}
.results-table th,.results-table td{border:1px solid rgba(148,163,184,0.25);padding:8px;text-align:left;color:var(--app-text)}
.results-table td:nth-child(2){text-align:center;font-weight:600}
.results-table tbody tr:nth-child(even){background:rgba(17,24,39,0.7)}
.results-table tbody tr.all-match{background:rgba(22,163,74,0.26)}
.results-table tbody tr.all-match td{border-color:#14532d}
.results-table tbody tr.all-match td:first-child{color:#bbf7d0;font-weight:700}

.muted{opacity:.75;font-style:italic;color:var(--app-text-subtle)}
.admin-table{width:100%;border-collapse:collapse;margin-top:16px}
.admin-table th,.admin-table td{border:1px solid rgba(148,163,184,0.25);padding:10px;vertical-align:top;color:var(--app-text)}
.admin-table tbody tr:nth-child(even){background:rgba(17,24,39,0.65)}

.date-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px;color:var(--app-text)}
.date-list li{margin:0;display:flex;align-items:center;gap:6px}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline-form .input{flex:1;min-width:160px}
.small-text{font-size:12px;margin-top:6px;color:var(--app-text-subtle)}

.date-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:rgba(148,163,184,0.16);color:var(--app-text-soft);border:1px solid rgba(148,163,184,0.4)}
.date-badge.session{background:rgba(249,115,22,0.24);color:#fed7aa;border-color:rgba(249,115,22,0.55)}
.date-badge.holiday{background:rgba(124,58,237,0.24);color:#ddd6fe;border-color:rgba(124,58,237,0.55)}
.badge.session{background:rgba(249,115,22,0.26);color:#fdba74;border:1px solid rgba(249,115,22,0.55)}
.badge.holiday{background:rgba(124,58,237,0.26);color:#ddd6fe;border:1px solid rgba(124,58,237,0.55)}

.session-banner{display:flex;align-items:center;gap:12px;background:rgba(249,115,22,0.18);border:1px solid rgba(249,115,22,0.55);border-radius:14px;padding:12px;margin-bottom:16px;color:var(--app-text)}
.session-banner-text{display:flex;flex-direction:column;gap:4px}
.session-banner-title{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#fb923c}
.session-banner-text strong{font-size:18px;color:#fed7aa}
.calendar-cell.holiday{background:rgba(124,58,237,0.18)}
.calendar-cell.session{box-shadow:inset 0 0 0 2px rgba(249,115,22,0.65);border-color:rgba(249,115,22,0.55)}
.calendar-cell.session .day-number{color:#fdba74}
.calendar-cell.holiday .day-number{color:#ddd6fe}

.session-admin-panel{margin-top:16px;padding:12px;border:1px solid rgba(148,163,184,0.35);border-radius:12px;background:rgba(17,24,39,0.75);color:var(--app-text)}
.session-admin-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}
.session-admin-status{margin:12px 0 0;display:flex;align-items:center;gap:8px;color:var(--app-text)}
#common{list-style:none;padding-left:0;margin:6px 0 0;color:var(--app-text)}
#common li{margin:4px 0;display:flex;align-items:center;gap:6px}
#common li.session-date-item{font-weight:600;color:#fed7aa}
#common li.holiday-date-item{color:#ddd6fe}
.results-table tbody tr.session-date-row{border-left:4px solid rgba(249,115,22,0.6);background:rgba(249,115,22,0.18)}
.results-table tbody tr.session-date-row td{border-color:rgba(249,115,22,0.45)}
.results-table tbody tr.session-date-row td:first-child{color:#fed7aa;font-weight:700}
.results-table tbody tr.holiday-date-row:not(.session-date-row){background:rgba(124,58,237,0.18)}
.results-table tbody tr.holiday-date-row:not(.session-date-row) td{border-color:rgba(124,58,237,0.45)}
