
/* Server Rules: halaman persetujuan sebelum Registration. */
.rules-page {
  --rules-accent: var(--ssc-primary, var(--purple));
  --rules-muted: var(--ssc-muted, var(--muted));
  --rules-text: var(--ssc-text, var(--text));
  --rules-panel: var(--ssc-panel, var(--panel));
  --rules-border: var(--ssc-border, var(--line));
  background: linear-gradient(155deg, var(--ssc-bg, var(--bg)) 0%, var(--ssc-bg-end, var(--bg-2)) 100%);
  color: var(--rules-text);
}
.rules-page::before {
  background: radial-gradient(ellipse at 65% 0%, color-mix(in srgb, var(--rules-accent) 13%, transparent), transparent 55%);
}
.rules-page .rules-topbar {
  max-width: 1160px;
  padding: 24px 28px;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.rules-page .rules-brand { display: inline-flex; align-items: center; gap: 11px; }
.rules-page .rules-brand img { width: 40px; height: 40px; object-fit: contain; }
.rules-page .rules-brand span { display: grid; line-height: 1.1; }
.rules-page .rules-brand strong { font-size: 17px; letter-spacing: .025em; }
.rules-page .rules-brand small { font-size: 10px; letter-spacing: .25em; color: var(--rules-muted); margin-top: 5px; }
.rules-page .rules-back {
  font-size: 13px; font-weight: 650; color: var(--rules-muted); transition: color .18s ease;
}
.rules-page .rules-back:hover { color: var(--rules-text); }
.rules-page .rules-main { max-width: 1000px; padding: 56px 28px 80px; margin: auto; }
.rules-page .rules-hero { position: relative; text-align: center; max-width: 790px; margin: 0 auto 58px; }
.rules-page .rules-eyebrow {
  display: inline-block; padding: 8px 15px; border: 1px solid color-mix(in srgb, var(--rules-accent) 35%, transparent);
  border-radius: 99px; font-size: 11px; font-weight: 750; letter-spacing: .18em;
  background: color-mix(in srgb, var(--rules-accent) 10%, transparent); color: var(--rules-accent);
}
.rules-page .rules-heading {
  font-size: clamp(38px, 6.5vw, 76px); line-height: 1.08; font-weight: 800;
  letter-spacing: -.055em; overflow-wrap: anywhere; margin: 23px 0 19px;
}
.rules-page .rules-heading em { color: var(--rules-accent); font-style: normal; }
.rules-page .rules-lead { color: var(--rules-muted); max-width: 680px; margin: auto; font-size: clamp(14px, 2vw, 17px); line-height: 1.85; }
.rules-page .rules-hero-meta { display: flex; justify-content: center; gap: 14px; margin-top: 28px; font-size: 12px; color: var(--rules-muted); }
.rules-page .rules-sections { display: grid; gap: 25px; }
.rules-page .rules-section {
  border: 1px solid var(--rules-border); border-radius: 22px; background: color-mix(in srgb, var(--rules-panel) 94%, transparent);
  box-shadow: 0 22px 85px rgba(0,0,0,.13); padding: 32px 36px 20px;
}
.rules-page .rules-section-top { display: flex; align-items: flex-start; gap: 19px; padding-bottom: 23px; border-bottom: 1px solid var(--rules-border); }
.rules-page .rules-section-count {
  flex: 0 0 auto; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px;
  background: color-mix(in srgb, var(--rules-accent) 13%, transparent); color: var(--rules-accent);
  font-size: 16px; font-weight: 800;
}
.rules-page .rules-section h2 { font-size: clamp(20px, 3vw, 27px); letter-spacing: -.025em; line-height: 1.2; margin: 1px 0 9px; }
.rules-page .rules-section-copy p { font-size: 13px; line-height: 1.7; color: var(--rules-muted); margin: 0; }
.rules-page .rules-list { list-style: none; margin: 0; padding: 8px 0 0; }
.rules-page .rules-item {
  display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 16px; padding: 18px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--rules-border) 72%, transparent);
}
.rules-page .rules-item:last-child { border-bottom: 0; }
.rules-page .rules-item-number { color: var(--rules-accent); font-size: 12px; font-weight: 800; padding-top: 3px; font-variant-numeric: tabular-nums; }
.rules-page .rules-item-copy h3 { margin: 0 0 5px; font-size: 15px; font-weight: 700; line-height: 1.4; }
.rules-page .rules-item-copy p { margin: 0; font-size: 13px; line-height: 1.8; color: var(--rules-muted); overflow-wrap: anywhere; }
.rules-page .rules-consent {
  margin-top: 30px; border: 1px solid color-mix(in srgb, var(--rules-accent) 42%, var(--rules-border));
  background: linear-gradient(145deg, color-mix(in srgb, var(--rules-accent) 10%, var(--rules-panel)), var(--rules-panel));
  padding: 30px 36px 36px; border-radius: 22px;
}
.rules-page .rules-consent-head { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 26px; }
.rules-page .rules-consent-symbol { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 13px; background: var(--rules-accent); color: var(--ssc-button-text,#1e0d35); font-weight: 850; }
.rules-page .rules-consent-head h2 { font-size: clamp(19px, 3vw, 23px); margin: 0 0 9px; }
.rules-page .rules-consent-head p { color: var(--rules-muted); line-height: 1.8; font-size: 13px; margin: 0; }
.rules-page .rules-agree-row {
  display: flex; align-items: flex-start; gap: 13px; border: 1px solid var(--rules-border); border-radius: 13px;
  background: color-mix(in srgb, var(--rules-panel) 72%, transparent); padding: 17px 18px;
  font-size: 14px; font-weight: 600; line-height: 1.6; cursor: pointer;
}
.rules-page .rules-agree-row:has(input:disabled) { opacity: .57; cursor: not-allowed; }
.rules-page .rules-agree-row input { margin: 4px 0 0; flex: 0 0 auto; width: 19px; height: 19px; accent-color: var(--rules-accent); }
.rules-page .rules-scroll-status { color: var(--rules-muted); font-size: 12px; margin: 14px 2px 18px; }
.rules-page .rules-continue {
  display: flex; gap: 16px; justify-content: center; align-items: center; width: 100%; min-height: 54px;
  border: 0; border-radius: 13px; font-size: 14px; font-weight: 750;
  color: var(--ssc-button-text,#1e0d35); background: linear-gradient(115deg, var(--ssc-button-start,var(--rules-accent)), var(--ssc-button-end,var(--ssc-secondary,#8165c4)));
  transition: filter .18s, transform .18s;
}
.rules-page .rules-continue:hover:not(:disabled) { filter: brightness(1.12); transform: translateY(-1px); }
.rules-page .rules-continue:disabled { opacity: .38; }
.rules-page .rules-feedback { color: var(--ssc-danger,#ff9caf); min-height: 1.2em; font-size: 12px; margin: 12px 2px 0; }
.rules-page .rules-footer { max-width: 1160px; margin: 0 auto; display: flex; justify-content: space-between; gap: 14px; padding: 28px; border-top: 1px solid var(--rules-border); font-size: 12px; color: var(--rules-muted); }

/* Editor Rules ditempatkan di panel admin, pratinjau ada di sebelah kanan. */
.ssc-rules-admin-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(340px, .95fr); gap: 20px; align-items: start; }
.ssc-rules-admin-editor { min-width: 0; display: grid; gap: 18px; }
.rules-admin-panel { padding: 22px; }
.rules-admin-panel h2 { font-size: 19px; margin: 0 0 15px; }
.rules-admin-switch { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; font-weight: 700; line-height: 1.55; cursor: pointer; }
.rules-admin-switch input { margin-top: 4px; accent-color: var(--ssc-primary,var(--purple)); }
.rules-admin-panel > .field-group { margin-top: 14px; }
.rules-admin-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.rules-admin-toolbar > div { font-size: 17px; font-weight: 750; }
.rules-admin-category { border: 1px solid var(--line); background: color-mix(in srgb,var(--panel) 80%,transparent); border-radius: 14px; margin: 13px 0; overflow: hidden; }
.rules-admin-category summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; cursor: pointer; padding: 16px; list-style: none; }
.rules-admin-category summary::after { content: '⌄'; color: var(--muted); }
.rules-admin-category summary::-webkit-details-marker { display: none; }
.rules-admin-category[open] summary::after { content:'⌃'; }
.rules-admin-count { font-size: 12px; color: var(--muted); margin-left: auto; white-space: nowrap; }
.rules-admin-category-body { padding: 6px 16px 18px; display: grid; gap: 14px; }
.rules-admin-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.rules-admin-actions .button { padding: 8px 12px; min-height: 34px; font-size: 12px; }
.rules-admin-items { display: grid; gap: 10px; }
.rules-admin-rule { display: grid; gap: 9px; padding: 14px; border: 1px solid var(--line-soft); border-radius: 12px; background: var(--panel-raised); }
.rules-admin-rule-top { display: flex; align-items: center; gap: 10px; font-size: 13px; overflow-wrap: anywhere; }
.rules-admin-rule-top strong { min-width: 0; }
.rules-item-index { flex: 0 0 26px; color: var(--purple); font-variant-numeric: tabular-nums; }
.ssc-rules-admin-preview { position: sticky; top: 12px; overflow: hidden; padding: 18px; min-width: 0; }
.ssc-rules-preview-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.ssc-rules-preview-header strong { font-size: 15px; }
.ssc-rules-preview-header small { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; }
.ssc-rules-preview-actions { display: flex; gap: 7px; }
.ssc-rules-preview-actions .button { padding: 8px 11px; font-size: 12px; }
.ssc-rules-preview-window { position: relative; overflow: hidden; background: #100b1b; border-radius: 12px; border: 1px solid var(--line); }
.ssc-rules-preview-window iframe { display: block; transform-origin: top left; border: 0; background: #100b1b; }
.ssc-rules-admin-preview > .field-help { margin-top: 10px; }
@media (max-width: 1100px) {
  .ssc-rules-admin-layout { grid-template-columns: minmax(0,1fr); }
  .ssc-rules-admin-preview { position: static; }
}
@media (max-width: 650px) {
  .rules-page .rules-topbar { padding: 18px 18px; }
  .rules-page .rules-main { padding: 30px 15px 64px; }
  .rules-page .rules-hero { margin-bottom: 37px; }
  .rules-page .rules-heading { font-size: clamp(36px, 11vw, 53px); }
  .rules-page .rules-section { padding: 23px 18px 13px; border-radius: 17px; }
  .rules-page .rules-section-top { gap: 12px; }
  .rules-page .rules-section-count { width: 38px; height: 38px; }
  .rules-page .rules-item { grid-template-columns: 25px minmax(0,1fr); gap: 12px; padding: 17px 0; }
  .rules-page .rules-consent { padding: 24px 18px 22px; border-radius: 17px; }
  .rules-page .rules-footer { padding: 22px 15px; flex-wrap: wrap; }
  .rules-admin-panel { padding: 16px; }
  .rules-admin-toolbar { align-items: flex-start; flex-direction: column; }
  .rules-page .rules-back { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .rules-page .rules-continue, .rules-page .rules-back { transition: none; }
}

/* V10.29: Rules & Events memakai header/footer yang sama persis dengan Homepage. */
body:is(.rules-page,.events-page) { display: flex; min-height: 100svh; flex-direction: column; }
body:is(.rules-page,.events-page) .home-header { position: relative; flex: 0 0 auto; background: rgba(15,9,27,.93); }
body:is(.rules-page,.events-page) .home-nav-link[aria-current="page"] { color: var(--ssc-primary,#bc91f5); }
body:is(.rules-page,.events-page) .home-footer { margin-top: auto; }
body.rules-page .rules-main {
  width: min(1320px,calc(100% - clamp(24px,5vw,96px)));
  max-width: none; padding: clamp(34px,5vw,70px) 0 clamp(64px,7vw,100px);
  margin-inline: auto;
}
body.rules-page .rules-hero { max-width: 900px; }
body.rules-page .rules-sections { width: 100%; grid-template-columns: minmax(0,1fr); }
body.rules-page .rules-consent { width: 100%; }
/* Jadwal: kalender + kartu responsif, mengikuti lebar layar yang tersedia. */
.events-page {
  --ev-border: var(--ssc-border,#493657);
  --ev-accent: var(--ssc-primary,#bc91f5);
  --ev-text: var(--ssc-text,#f5efff);
  --ev-muted: var(--ssc-muted,#b8a5ca);
  --ev-panel: var(--ssc-panel,#1a1228);
  color: var(--ev-text);
  background: var(--ssc-background,#0c0815);
}
.events-page .events-main { flex: 1; width: min(1370px,calc(100% - clamp(24px,5vw,96px))); margin: 0 auto; padding: clamp(34px,6vw,82px) 0 105px; }
.events-page .events-hero { text-align: center; max-width: 850px; margin: 0 auto 55px; }
.events-page .events-eyebrow { display: inline-block; padding: 8px 16px; border-radius: 999px; border: 1px solid color-mix(in srgb,var(--ev-accent) 45%,transparent); color: var(--ev-accent); font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.events-page .events-hero h1 { font-size: clamp(35px,6vw,74px); letter-spacing: -.055em; line-height: 1.1; margin: 22px 0 16px; overflow-wrap: anywhere; }
.events-page .events-hero p { color: var(--ev-muted); font-size: clamp(14px,2vw,17px); line-height: 1.8; }
.events-page .events-layout { display: grid; grid-template-columns: minmax(320px,.85fr) minmax(0,1.25fr); align-items: start; gap: clamp(20px,2.5vw,38px); }
.events-page .events-calendar { padding: clamp(18px,2.5vw,30px); border: 1px solid var(--ev-border); border-radius: 20px; background: var(--ev-panel); position: sticky; top: 20px; min-width: 0; }
.events-page .events-calendar-head { display: flex; gap: 14px; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.events-page .events-calendar-head h2, .events-results>h2 { margin: 0 0 18px; font-size: clamp(18px,2vw,23px); text-transform: capitalize; }
.events-page .events-month-actions { display: flex; gap: 6px; }
.events-page .events-month-actions button { width: 38px; height: 38px; border: 1px solid var(--ev-border); background: transparent; color: var(--ev-text); border-radius: 10px; font-size: 20px; cursor: pointer; }
.events-page .events-month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: clamp(3px,.7vw,8px); min-width: 0; }
.events-page .events-weekday { display: grid; place-items: center; color: var(--ev-muted); font-size: 11px; min-height: 28px; }
.events-page .events-day { min-height: clamp(40px,4vw,59px); padding: 6px 2px; display: grid; align-content: center; justify-items: center; gap: 3px; color: var(--ev-text); background: rgba(255,255,255,.025); border: 1px solid transparent; border-radius: 9px; cursor: pointer; font-size: 12px; }
.events-page .events-day.is-today { border-color: var(--ev-accent); }
.events-page .events-day.has-event { background: color-mix(in srgb,var(--ev-accent) 14%,var(--ev-panel)); }
.events-page .events-day:hover { border-color: var(--ev-accent); }
.events-page .events-day-dot { font-size: 8px; line-height: 1.2; color: var(--ev-accent); }
.events-page .events-calendar-help { margin: 18px 0 0; color: var(--ev-muted); font-size: 12px; }
.events-page .events-list { display: grid; gap: 18px; }
.events-page .events-card { min-width: 0; overflow: hidden; background: var(--ev-panel); border: 1px solid var(--ev-border); border-radius: 19px; }
.events-page .events-image { display: block; width: 100%; height: clamp(180px,24vw,310px); object-fit: cover; }
.events-page .events-card-body { padding: clamp(19px,2.8vw,30px); }
.events-page .events-card-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.events-page .events-status { padding: 6px 10px; border-radius: 100px; border: 1px solid currentColor; font-size: 11px; font-weight: 750; color: #d8bafa; }
.events-page .events-status[data-status="ongoing"] { color: #a7e7ce; }
.events-page .events-status[data-status="finished"] { color: #c5b9d0; }
.events-page .events-date { font-size: 11px; color: var(--ev-muted); }
.events-page .events-card h2 { font-size: clamp(19px,2.5vw,28px); margin: 17px 0 10px; line-height: 1.25; overflow-wrap: anywhere; }
.events-page .events-card-description { white-space: pre-line; color: var(--ev-muted); line-height: 1.75; font-size: 14px; overflow-wrap: anywhere; }
.events-page .events-meta { display: grid; gap: 6px; margin: 18px 0; color: var(--ev-muted); font-size: 12px; }
.events-page .events-countdown { display: inline-block; color: var(--ev-accent); font-size: 13px; font-weight: 750; border-top: 1px solid var(--ev-border); padding-top: 15px; }
.events-page .events-empty { padding: 36px 22px; border: 1px dashed var(--ev-border); color: var(--ev-muted); border-radius: 15px; line-height: 1.7; }
.events-admin-dates { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.events-admin-photo { display: block; max-width: 100%; width: 240px; border-radius: 9px; max-height: 140px; object-fit: cover; }
.events-admin-media { display: grid; gap: 9px; }
.events-admin-empty { padding: 24px; color: var(--muted); }
@media(max-width: 940px) { .events-page .events-layout { grid-template-columns: minmax(0,1fr); } .events-page .events-calendar { position: static; } }
@media(max-width: 700px) { body:is(.rules-page,.events-page) .home-header { min-height: 76px; } .events-page .events-main { padding-top: 36px; } body.rules-page .rules-main { padding-top: 36px; } .events-admin-dates { grid-template-columns: minmax(0,1fr); } }
@media(max-width: 380px) { .events-page .events-calendar { padding: 13px; } .events-page .events-day { min-height: 40px; font-size: 11px; } }

/* V10.30: Upcoming Events mengikuti lebar Homepage dan responsif. */
.home-upcoming{width:min(100% - 2rem,1180px);margin-inline:auto;padding-block:clamp(2.5rem,5vw,5rem)}
.home-upcoming[hidden]{display:none!important}
.home-upcoming-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.5rem}
.home-upcoming-heading h2{font-size:clamp(1.5rem,3.1vw,2.8rem);margin:0}
.home-upcoming-heading p{color:var(--ssc-muted,#b8a5ca);max-width:56ch;margin:.45rem 0 0}
.home-upcoming-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1rem}
.home-upcoming-cards[data-layout=slider]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.7rem}
.home-upcoming-cards[data-layout=slider] .home-upcoming-card{flex:0 0 min(85vw,350px);scroll-snap-align:start}
.home-upcoming-card{border:1px solid var(--ssc-border,#62457d);border-radius:16px;background:var(--ssc-panel,#20142f);overflow:hidden;min-width:0}
.home-upcoming-card>img{display:block;width:100%;height:clamp(125px,15vw,185px);object-fit:cover}
.home-upcoming-card-body{padding:1rem;display:grid;gap:.55rem}
.home-upcoming-status{font-size:.75rem;color:var(--ssc-highlight,#b29ad6);font-weight:700}
.home-upcoming-card h3{font-size:clamp(1rem,1.5vw,1.28rem);margin:0;overflow-wrap:anywhere}
.home-upcoming-card p,.home-upcoming-card small{margin:0;color:var(--ssc-muted,#b8a5ca)}
.home-upcoming-detail{color:var(--ssc-primary,#bc91f5);font-weight:700;text-decoration:none}
/* Editor ringkas: seret header kategori atau aturan, bukan bidang inputnya. */
.admin-page .rules-admin-category,.admin-page .events-admin-event{min-width:0;margin-block:.45rem!important}
.admin-page .rules-admin-category>summary,.admin-page .events-admin-event>summary{display:flex;align-items:center;gap:.65rem;min-height:46px;padding:.65rem .85rem!important}
.admin-page .rules-admin-category>summary>.ssc-sort-handle,.admin-page .rules-admin-rule>summary>.ssc-sort-handle{flex:none;touch-action:none;position:relative}
.admin-page .rules-admin-rule{border:1px solid var(--ssc-border,#62457d);border-radius:10px;margin:.45rem 0;overflow:hidden}
.admin-page .rules-admin-rule>summary{display:flex;align-items:center;gap:.65rem;padding:.5rem .7rem;cursor:pointer;min-height:42px}
.admin-page .rules-admin-rule>summary strong,.admin-page .rules-admin-category>summary strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}
.admin-page .rules-admin-rule-fields{padding:.8rem;display:grid;gap:.6rem}
.admin-page .rules-admin-rule-fields textarea{min-height:4rem}
.admin-page .events-admin-sort-list{display:grid;gap:.25rem}
.admin-page .rules-admin-category-body{padding:.7rem!important}
@media(max-width:500px){.home-upcoming-heading{align-items:stretch}.home-upcoming-heading>a{width:100%;text-align:center}.admin-page .rules-admin-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.ssc-sort-ghost{animation:none!important;transition:none!important}}

/* V10.30: multi-question voting */
.vote-questions{display:grid;gap:clamp(1rem,2.5vw,2rem)}
.vote-questions[hidden]{display:none!important}
.vote-poll-card{border:1px solid var(--ssc-border,#62457d);background:var(--ssc-panel,#20142f);border-radius:18px;padding:clamp(1rem,3vw,2rem);min-width:0}
.vote-poll-card h2{font-size:clamp(1.2rem,2vw,1.8rem);margin:.35rem 0 1rem;overflow-wrap:anywhere}
.vote-poll-index{font-size:.8rem;color:var(--ssc-highlight,#b29ad6);letter-spacing:.1em}
.vote-poll-card .vote-results{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--ssc-border,#62457d)}
.admin-page .ssc-vote-question-list{display:grid;gap:.7rem}
.admin-page .ssc-vote-question-card{border:1px solid var(--ssc-border,#62457d);border-radius:12px;overflow:hidden;min-width:0}
.admin-page .ssc-vote-question-head{display:flex;align-items:center;gap:.6rem;padding:.7rem;min-height:48px;cursor:pointer}
.admin-page .ssc-vote-question-head>strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-page .ssc-vote-question-head>small{white-space:nowrap;color:var(--ssc-muted,#b8a5ca)}
.admin-page .ssc-vote-question-body{padding:clamp(.65rem,2vw,1rem);display:grid;gap:1rem}
.admin-page .ssc-vote-result-group{padding:1rem 0;border-bottom:1px solid var(--ssc-border,#62457d)}
.admin-page .ssc-vote-result-group h3{margin:0 0 .3rem}

/* V10.31 — Season Archive & Hall of Fame. Mengikuti palet dan container SSCircle. */
.season-page{--season-panel:var(--ssc-panel,#20142f);--season-line:var(--ssc-border,#62457d);--season-muted:var(--ssc-muted,#b8a5ca);--season-accent:var(--ssc-primary,#bc91f5)}
.season-archive-main{width:min(100% - clamp(24px,5vw,92px),1320px);max-width:1320px;margin:0 auto;padding:clamp(5rem,9vw,9rem) 0 clamp(4rem,8vw,8rem);min-height:60vh}
.season-archive-hero{max-width:780px;margin-bottom:clamp(2rem,5vw,4.5rem)}
.season-archive-kicker{font-size:.76rem;letter-spacing:.16em;font-weight:700;color:var(--season-accent)}
.season-archive-hero h1{font-size:clamp(2rem,5vw,4.2rem);line-height:1.12;letter-spacing:-.04em;margin:.8rem 0 1rem;overflow-wrap:anywhere}
.season-archive-hero p{line-height:1.75;max-width:63ch;color:var(--season-muted)}
.season-archive-timeline{display:grid;gap:clamp(1rem,3vw,1.7rem);padding-left:clamp(14px,2.8vw,30px);border-left:2px solid var(--season-line)}
.season-archive-card{position:relative;background:var(--season-panel);border:1px solid var(--season-line);border-radius:clamp(14px,2vw,22px);overflow:hidden;min-width:0;box-shadow:0 12px 45px rgba(0,0,0,.12)}
.season-archive-card:before{content:"";position:absolute;left:calc(-1 * clamp(15px,2.8vw,31px) - 5px);top:26px;width:10px;height:10px;border-radius:50%;background:var(--season-accent);box-shadow:0 0 0 4px var(--season-panel)}
.season-archive-cover{max-height:clamp(150px,25vw,290px);overflow:hidden}
.season-archive-cover img{width:100%;height:clamp(160px,25vw,290px);object-fit:cover;display:block}
.season-archive-card-head{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding:clamp(1rem,3vw,1.7rem);flex-wrap:wrap}
.season-archive-heading-text{flex:1 1 280px;min-width:0}
.season-archive-heading-text h2{font-size:clamp(1.35rem,3vw,2rem);line-height:1.22;overflow-wrap:anywhere;margin:.45rem 0}
.season-archive-dates{color:var(--season-accent);font-size:.9rem;margin:.55rem 0}
.season-archive-summary{color:var(--season-muted);line-height:1.65;margin:.5rem 0;white-space:pre-line;overflow-wrap:anywhere}
.season-archive-state{display:inline-flex;border:1px solid var(--season-line);border-radius:999px;padding:.38rem .7rem;color:var(--season-accent);font-size:.77rem;font-weight:700;white-space:nowrap}
.season-archive-details{border-top:1px solid var(--season-line)}
.season-archive-details>summary{list-style:none;cursor:pointer;padding:1rem clamp(1rem,3vw,1.7rem);font-weight:700;color:var(--season-accent)}
.season-archive-details>summary::-webkit-details-marker{display:none}
.season-archive-details>summary:focus-visible{outline:2px solid var(--season-accent);outline-offset:-3px}
.season-archive-details-body{display:grid;gap:clamp(1.5rem,3vw,2.5rem);padding:0 clamp(1rem,3vw,1.7rem) clamp(1.2rem,3vw,2rem)}
.season-archive-group{min-width:0}
.season-archive-group h3{font-size:clamp(1.05rem,2vw,1.35rem);margin:0 0 1rem}
.season-archive-gallery,.season-archive-awards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:.9rem}
.season-archive-photo,.season-archive-feature,.season-archive-award{margin:0;background:color-mix(in srgb,var(--season-panel) 84%,white 5%);border:1px solid var(--season-line);border-radius:12px;overflow:hidden;min-width:0}
.season-archive-photo img,.season-archive-feature img{display:block;width:100%;height:clamp(130px,15vw,205px);object-fit:cover}
.season-archive-photo figcaption{font-size:.87rem;color:var(--season-muted);padding:.7rem;overflow-wrap:anywhere}
.season-archive-feature{display:grid;align-content:start;gap:.4rem;padding-bottom:.8rem}
.season-archive-feature>strong,.season-archive-feature>span,.season-archive-feature>p{margin:0 .8rem;overflow-wrap:anywhere}
.season-archive-feature>strong{margin-top:.7rem}.season-archive-feature>span,.season-archive-feature>p{font-size:.88rem;color:var(--season-muted)}
.season-archive-award{display:grid;gap:.5rem;padding:1rem}
.season-archive-award>span{color:var(--season-accent);font-weight:700;font-size:.81rem}
.season-archive-award>p{color:var(--season-muted);font-size:.89rem;margin:0;overflow-wrap:anywhere}
.season-archive-ranking{display:grid;gap:.5rem;list-style:decimal;padding-left:1.6rem}
.season-archive-ranking li{padding:.5rem .8rem;border:1px solid var(--season-line);border-radius:10px;display:list-item}
.season-archive-ranking li span{float:right;color:var(--season-accent)}
.season-archive-empty{text-align:center;padding:clamp(3rem,8vw,6rem) 1.5rem;border:1px dashed var(--season-line);border-radius:18px;color:var(--season-muted)}
.home-season-highlights{min-width:0}
.home-season-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1.2rem 0 1.4rem}
.home-season-header h2{font-size:clamp(1.5rem,3.5vw,2.5rem);margin:0}
.home-season-header p{max-width:54ch;color:var(--ssc-muted,#b8a5ca);margin:.5rem 0 0}
.home-season-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1rem}
.home-season-card{display:block;min-width:0;overflow:hidden;background:var(--ssc-panel,#20142f);border:1px solid var(--ssc-border,#62457d);border-radius:16px;text-decoration:none;color:inherit;transition:transform .2s ease,border-color .2s ease}
.home-season-card:hover{transform:translateY(-3px);border-color:var(--ssc-primary,#bc91f5)}
.home-season-card img{width:100%;height:clamp(125px,16vw,195px);object-fit:cover;display:block}
.home-season-card-content{padding:1rem;display:grid;gap:.5rem}
.home-season-card-content h3{margin:0;font-size:clamp(1rem,2vw,1.3rem);overflow-wrap:anywhere}
.home-season-card-content small,.home-season-card-content p{margin:0;color:var(--ssc-muted,#b8a5ca);overflow-wrap:anywhere}
.home-season-card-content p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.home-season-card-content span{color:var(--ssc-primary,#bc91f5);font-weight:700;font-size:.87rem}
.home-season-cards[data-layout=timeline]{display:grid;grid-template-columns:1fr;padding-left:16px;border-left:2px solid var(--ssc-border,#62457d)}
.home-season-cards[data-layout=timeline] .home-season-card{display:flex;min-width:0}
.home-season-cards[data-layout=timeline] .home-season-card img{max-width:26%;height:auto;min-height:130px}
.admin-page .season-admin-list,.admin-page .season-admin-sublist{display:grid;gap:.55rem;min-width:0}
.admin-page .season-admin-season{background:var(--ssc-panel,#20142f);border:1px solid var(--ssc-border,#62457d);border-radius:13px;min-width:0;overflow:hidden}
.admin-page .season-admin-summary,.admin-page .season-admin-mini>summary{display:flex;align-items:center;gap:.6rem;min-height:45px;padding:.65rem .8rem;cursor:pointer;list-style:none}
.admin-page .season-admin-summary::-webkit-details-marker,.admin-page .season-admin-mini>summary::-webkit-details-marker{display:none}
.admin-page .season-admin-summary strong{min-width:0;flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.admin-page .season-admin-count{font-size:.78rem;color:var(--ssc-muted,#b8a5ca);white-space:nowrap}
.admin-page .season-admin-body{display:grid;gap:.85rem;padding:clamp(.65rem,1.8vw,1.15rem);min-width:0}
.admin-page .season-admin-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.admin-page .season-admin-subsection{min-width:0;border:1px solid var(--ssc-border,#62457d);border-radius:10px}
.admin-page .season-admin-subsection>summary{padding:.8rem;cursor:pointer;font-weight:700}
.admin-page .season-admin-subsection-content{display:grid;gap:.8rem;padding:.75rem;min-width:0}
.admin-page .season-admin-mini{border:1px solid var(--ssc-border,#62457d);border-radius:8px;min-width:0}
.admin-page .season-admin-mini>summary{font-size:.9rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.admin-page .season-admin-mini-body{padding:.75rem;display:grid;gap:.6rem}
.admin-page .season-admin-rank{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;gap:.5rem;align-items:end}
.admin-page .season-admin-media{display:grid;gap:.45rem;min-width:0}
.admin-page .season-admin-thumbnail{display:block;max-width:220px;width:100%;max-height:140px;border-radius:9px;object-fit:cover}
.admin-page .season-admin-sublist .ssc-sort-handle,.admin-page .season-admin-summary>.ssc-sort-handle{flex:none;touch-action:none}
@media(max-width:640px){.season-archive-main{padding-top:6.5rem}.season-archive-card-head{flex-direction:column}.home-season-cards[data-layout=timeline] .home-season-card img{max-width:34%}.admin-page .season-admin-dates,.admin-page .season-admin-rank{grid-template-columns:1fr}.admin-page .season-admin-summary{flex-wrap:wrap}.home-season-header>a{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){.home-season-card{transition:none}}


/* V10.32 — Perbaikan lebar section Homepage di grid 12 kolom.
   Tanpa grid-column, Upcoming Events hanya mendapat satu kolom (sekitar 70px),
   sehingga poster dan setiap kata terpotong. */
.home-page .home-content-sections > .home-upcoming,
.home-page .home-content-sections > .home-season-highlights {
  grid-column: 1 / -1;
  width: min(1180px, calc(100% - clamp(32px, 6vw, 92px)));
  max-width: 100%;
  min-width: 0;
  justify-self: center;
  margin-inline: auto;
}
.home-page .home-upcoming-heading > div,
.home-page .home-season-header > div {flex: 1 1 260px; min-width: 0;}
.home-page .home-upcoming-heading > a,
.home-page .home-season-header > a {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  white-space: normal;
  text-align: center;
}
.home-page .home-upcoming-cards,
.home-page .home-season-cards {
  width: 100%; max-width: 100%; min-width: 0;
  grid-template-columns: repeat(auto-fill, minmax(min(100%,285px),1fr));
}
.home-page .home-upcoming-card,
.home-page .home-season-card {min-width: 0; max-width: 100%;}
.home-page .home-upcoming-card-body,
.home-page .home-season-card-content {min-width: 0; overflow-wrap: anywhere;}
.home-page .home-upcoming-card > img,
.home-page .home-season-card > img {max-width: 100%;}

/* Arsip publik: ranking dan gallery menyesuaikan panjang nama dan skor. */
.season-page .season-archive-main,
.season-page .season-archive-timeline,
.season-page .season-archive-card,
.season-page .season-archive-card-head,
.season-page .season-archive-details-body,
.season-page .season-archive-group {min-width:0;max-width:100%;box-sizing:border-box;}
.season-page .season-archive-timeline {grid-template-columns:minmax(0,1fr);}
.season-page .season-archive-gallery,
.season-page .season-archive-awards {grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));}
.season-page .season-archive-feature,
.season-page .season-archive-award,
.season-page .season-archive-photo {min-width:0;max-width:100%;overflow-wrap:anywhere;}
.season-page .season-archive-ranking {
  padding: 0;
  list-style: none;
  counter-reset: season-rank;
  min-width: 0;
}
.season-page .season-archive-ranking li {
  counter-increment: season-rank;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) minmax(0,38%);
  align-items: center;
  gap: clamp(.4rem,1.7vw,.85rem);
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.season-page .season-archive-ranking li::before {
  content: counter(season-rank) '.';
  color: var(--season-muted);
  font-weight: 700;
}
.season-page .season-archive-ranking li strong,
.season-page .season-archive-ranking li span {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
.season-page .season-archive-ranking li span {
  float: none;
  text-align: right;
  justify-self: end;
}

/* Admin: jangan biarkan input, tanggal, tombol, atau toolbar memperlebar kartu. */
.admin-page #seasons-admin-editor,
.admin-page #seasons-admin-editor .season-admin-list,
.admin-page #seasons-admin-editor .season-admin-season,
.admin-page #seasons-admin-editor .season-admin-body,
.admin-page #seasons-admin-editor .season-admin-subsection,
.admin-page #seasons-admin-editor .season-admin-subsection-content,
.admin-page #seasons-admin-editor .season-admin-sublist,
.admin-page #seasons-admin-editor .season-admin-mini,
.admin-page #seasons-admin-editor .season-admin-mini-body,
.admin-page #seasons-admin-editor .season-admin-rank,
.admin-page #seasons-admin-editor .season-admin-dates,
.admin-page #seasons-admin-editor .field-group,
.admin-page #seasons-admin-editor .season-admin-media {min-width:0;max-width:100%;box-sizing:border-box;}
.admin-page #seasons-admin-editor :is(input,textarea,select) {
  min-width: 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}
.admin-page #seasons-admin-editor :is(.season-admin-summary,.season-admin-mini>summary) {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.admin-page #seasons-admin-editor :is(.season-admin-rank,.season-admin-summary) > .button {
  max-width: 100%;
  white-space: normal;
}
.admin-page #seasons-admin-editor .season-admin-rank > .field-group {min-width:0;}
.admin-page #seasons-admin-editor .season-admin-rank > .button {justify-self:start;}
.admin-page #seasons-admin-editor .season-admin-mini > summary {white-space:normal;}
.admin-page #seasons-admin-editor .season-admin-count {white-space:normal;overflow-wrap:anywhere;}
.admin-page #seasons-admin-editor .rules-admin-toolbar {min-width:0;flex-wrap:wrap;}

@media (max-width:700px) {
  .home-page .home-content-sections > .home-upcoming,
  .home-page .home-content-sections > .home-season-highlights {
    width: calc(100% - 32px);
  }
  .home-page .home-upcoming-heading,
  .home-page .home-season-header {align-items:stretch;}
  .home-page .home-upcoming-heading > a,
  .home-page .home-season-header > a {width:100%;}
  .home-page .home-upcoming-cards,
  .home-page .home-season-cards {grid-template-columns:minmax(0,1fr);}
  .home-page .home-upcoming-cards[data-layout=slider] .home-upcoming-card {
    flex-basis: min(86%,360px);
  }
  .season-page .season-archive-timeline {padding-left:12px;}
  .season-page .season-archive-state {max-width:100%;white-space:normal;}
  .admin-page #seasons-admin-editor .season-admin-rank {
    grid-template-columns:auto minmax(0,1fr);
    align-items:start;
  }
  .admin-page #seasons-admin-editor .season-admin-rank > .field-group {grid-column:2;}
  .admin-page #seasons-admin-editor .season-admin-rank > .button {grid-column:2;}
}
@media (max-width:420px) {
  .home-page .home-content-sections > .home-upcoming,
  .home-page .home-content-sections > .home-season-highlights {width:calc(100% - 24px);}
  .home-page .home-upcoming-card-body,
  .home-page .home-season-card-content {padding:.85rem;}
  .home-page .home-season-cards[data-layout=timeline] .home-season-card {
    flex-direction:column;
  }
  .home-page .home-season-cards[data-layout=timeline] .home-season-card img {
    max-width:100%;width:100%;min-height:0;height:150px;
  }
  .season-page .season-archive-main {width:calc(100% - 24px);}
  .season-page .season-archive-card-head {padding:.85rem;}
  .season-page .season-archive-details-body {padding:0 .85rem 1.1rem;}
  .season-page .season-archive-ranking li {
    grid-template-columns:auto minmax(0,1fr);
    gap:.2rem .6rem;
  }
  .season-page .season-archive-ranking li span {
    grid-column:2;
    justify-self:start;
    text-align:left;
  }
  .admin-page #seasons-admin-editor .season-admin-summary {gap:.3rem;padding:.65rem;}
  .admin-page #seasons-admin-editor .season-admin-body {padding:.65rem;}
  .admin-page #seasons-admin-editor .season-admin-mini-body {padding:.6rem;}
}


/* V10.33: compact Season Archive cards scale to actual content/viewport. */
.season-page .season-archive-timeline{align-items:start;min-width:0}
.season-page .season-archive-card{display:block;align-self:start;height:max-content;min-height:0;max-width:100%}
.season-page .season-archive-card-head{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;align-items:start;justify-content:initial;gap:.65rem;min-height:0;padding:clamp(.85rem,2.4vw,1.3rem)}
.season-page .season-archive-heading-text{min-width:0;width:100%;flex:none}
.season-page .season-archive-heading-text h2{font-size:clamp(1.22rem,2.5vw,1.8rem);line-height:1.24;margin:.3rem 0;overflow-wrap:anywhere}
.season-page .season-archive-summary{margin:.45rem 0 0;line-height:1.52;overflow-wrap:anywhere}
.season-page .season-archive-state{justify-self:start;width:max-content;max-width:100%;margin:0}
.season-page .season-archive-cover img{height:auto;aspect-ratio:16/8;max-height:240px;object-fit:cover}
.season-page .season-archive-details>summary{padding:.8rem clamp(.85rem,2.4vw,1.3rem);font-size:.9rem;overflow-wrap:anywhere}
.season-page .season-archive-details-body{gap:1.2rem}
@media(max-width:600px){
  .season-page .season-archive-main{padding-top:clamp(4.6rem,11vw,5.7rem);padding-bottom:3rem}
  .season-page .season-archive-hero{margin-bottom:1.25rem}
  .season-page .season-archive-hero h1{font-size:clamp(1.65rem,6.3vw,2.15rem);line-height:1.16;margin:.45rem 0 .65rem}
  .season-page .season-archive-hero p{font-size:.9rem;line-height:1.55}
  .season-page .season-archive-timeline{gap:.85rem;padding-left:10px}
  .season-page .season-archive-card-head{gap:.55rem;padding:.85rem}
  .season-page .season-archive-heading-text h2{font-size:clamp(1.13rem,5.3vw,1.4rem)}
  .season-page .season-archive-state{font-size:.7rem;padding:.28rem .6rem}
  .season-page .season-archive-cover img{aspect-ratio:16/7;max-height:170px}
  .season-page .season-archive-details>summary{padding:.7rem .85rem;font-size:.82rem}
  .season-page .season-archive-details-body{padding:0 .85rem 1rem}
}
/* Responsive editor: title/actions separated from two-column player fields. */
.admin-page #seasons-admin .ssc-rules-admin-layout{grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:clamp(14px,1.6vw,24px);min-width:0}
.admin-page #seasons-admin-editor{container-type:inline-size;gap:14px}
.admin-page #seasons-admin-editor .season-admin-page-settings{display:grid;gap:.7rem;padding:clamp(14px,1.7vw,22px)}
.admin-page #seasons-admin-editor .season-admin-page-settings h2{margin:0;font-size:1.05rem}
.admin-page #seasons-admin-editor .season-admin-page-settings .field-group{margin:0}
.admin-page #seasons-admin-editor .season-admin-page-settings .field-help{margin:0;line-height:1.55}
.admin-page #seasons-admin-editor .season-admin-toolbar{margin:4px 0 0;align-items:center;gap:12px}
.admin-page #seasons-admin-editor .season-admin-toolbar-copy{display:grid;gap:4px;min-width:0}
.admin-page #seasons-admin-editor .season-admin-toolbar-copy strong{font-size:1rem}
.admin-page #seasons-admin-editor .season-admin-toolbar-copy small{font-size:.78rem;color:var(--ssc-muted,#b8a5ca);line-height:1.45}
.admin-page #seasons-admin-editor .season-admin-season{border-radius:14px}
.admin-page #seasons-admin-editor .season-admin-summary{gap:.7rem;padding:.8rem .95rem;min-height:54px}
.admin-page #seasons-admin-editor .season-admin-body{gap:1rem;padding:clamp(.75rem,2vw,1.1rem)}
.admin-page #seasons-admin-editor .season-admin-subsection{background:color-mix(in srgb,var(--ssc-panel,#20142f) 83%,transparent);overflow:hidden}
.admin-page #seasons-admin-editor .season-admin-subsection>summary{padding:.75rem .9rem;overflow-wrap:anywhere}
.admin-page #seasons-admin-editor .season-admin-subsection[open]>summary{border-bottom:1px solid var(--ssc-border,#62457d)}
.admin-page #seasons-admin-editor .season-admin-rank{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;padding:.75rem;border:1px solid var(--ssc-border,#62457d);border-radius:10px;background:color-mix(in srgb,var(--ssc-panel,#20142f) 86%,white 3%)}
.admin-page #seasons-admin-editor .season-admin-rank-top{display:flex;align-items:center;gap:.55rem;min-width:0}
.admin-page #seasons-admin-editor .season-admin-rank-number{font-size:.82rem;color:var(--ssc-muted,#b8a5ca);margin-right:auto}
.admin-page #seasons-admin-editor .season-admin-rank-top>.button{padding:6px 10px;min-height:31px;font-size:.77rem}
.admin-page #seasons-admin-editor .season-admin-rank-top>.ssc-sort-handle{width:28px;height:28px;flex:none}
.admin-page #seasons-admin-editor .season-admin-rank-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.7rem;min-width:0}
.admin-page #seasons-admin-editor .season-admin-rank-fields>.field-group{min-width:0}
.admin-page #seasons-admin-editor .season-admin-mini>summary{overflow-wrap:anywhere}
.admin-page #seasons-admin .ssc-rules-admin-preview{max-width:100%;padding:clamp(12px,1.5vw,18px)}
.admin-page #seasons-admin-preview-window{min-width:0;max-width:100%}
@container(max-width:400px){
  .admin-page #seasons-admin-editor .season-admin-rank-fields,.admin-page #seasons-admin-editor .season-admin-dates{grid-template-columns:minmax(0,1fr)}
  .admin-page #seasons-admin-editor .season-admin-toolbar{align-items:stretch}
  .admin-page #seasons-admin-editor .season-admin-toolbar>.button{width:100%}
}
@media(max-width:1100px){.admin-page #seasons-admin .ssc-rules-admin-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.admin-page #seasons-admin-editor .season-admin-summary{gap:.45rem;padding:.7rem}.admin-page #seasons-admin-editor .season-admin-body,.admin-page #seasons-admin-editor .season-admin-rank{padding:.65rem}}
/* Task-grouped admin navigation with a compact mobile chooser. */
.admin-page .dashboard-sidebar{gap:0;min-width:0;max-height:calc(100vh - 40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.admin-page .sidebar-intro{padding:0 7px 12px}
.admin-page .sidebar-intro .sidebar-heading{padding:10px 7px 5px}
.admin-page .sidebar-intro p{padding:0 7px;margin:0;color:var(--ssc-muted,#b8a5ca);font-size:11px;line-height:1.5}
.admin-page .sidebar-nav{display:grid;gap:9px;min-width:0}
.admin-page .sidebar-group{display:grid;gap:2px;min-width:0;padding:11px 4px 7px;border-top:1px solid color-mix(in srgb,var(--ssc-border,#62457d) 48%,transparent)}
.admin-page .sidebar-group h2{margin:0 0 4px;padding:0 10px;color:var(--ssc-muted,#b8a5ca);font-size:10px;font-weight:800;letter-spacing:.085em;line-height:1.6}
.admin-page .sidebar-group.has-active h2{color:var(--ssc-primary,#bc91f5)}
.admin-page .sidebar-nav .side-link{display:flex;width:100%;min-height:36px;margin:0;padding:8px 10px;gap:10px;text-align:left;font-size:12px;line-height:1.25;white-space:normal;border-radius:9px}
.admin-page .sidebar-nav .side-link>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.admin-page .sidebar-nav .side-link .side-icon{display:inline-grid;width:19px;flex:0 0 19px}
.admin-page .sidebar-nav .side-link:focus-visible,.admin-page .sidebar-mobile-toggle:focus-visible{outline:2px solid var(--ssc-primary,#bc91f5);outline-offset:2px}
.admin-page .sidebar-bottom{margin-top:12px}
.admin-page .sidebar-mobile-toggle{display:none}
@media(max-width:760px){
  .admin-page .dashboard-sidebar{display:grid;align-items:stretch;grid-template-columns:minmax(0,1fr);max-height:none;overflow:visible;min-height:0;padding:9px;margin-bottom:16px}
  .admin-page .sidebar-intro{display:none}
  .admin-page .sidebar-mobile-toggle{display:flex;align-items:center;width:100%;gap:11px;text-align:left;padding:10px 12px;min-height:52px;color:var(--ssc-text,#f8f3ff);background:color-mix(in srgb,var(--ssc-panel,#20142f) 80%,transparent);border:1px solid var(--ssc-border,#62457d);border-radius:10px;cursor:pointer}
  .admin-page .sidebar-mobile-glyph{font-size:20px;color:var(--ssc-primary,#bc91f5)}
  .admin-page .sidebar-mobile-label{display:grid;gap:3px;font-size:10px;color:var(--ssc-muted,#b8a5ca)}
  .admin-page .sidebar-mobile-label strong{font-size:13px;color:var(--ssc-text,#f8f3ff);font-weight:750}
  .admin-page .sidebar-mobile-chevron{margin-left:auto;font-size:21px;color:var(--ssc-primary,#bc91f5);transition:transform .18s ease}
  .admin-page .dashboard-sidebar.nav-open .sidebar-mobile-chevron{transform:rotate(180deg)}
  .admin-page .sidebar-nav{display:none;grid-template-columns:minmax(0,1fr);gap:4px;padding:12px 2px 4px}
  .admin-page .dashboard-sidebar.nav-open .sidebar-nav{display:grid}
  .admin-page .sidebar-nav .side-link{width:100%;min-height:39px;font-size:12px;padding:9px 11px;margin:0}
  .admin-page .sidebar-nav .side-link .side-icon{display:inline-grid;width:19px;flex:0 0 19px}
  .admin-page .sidebar-bottom{display:flex;justify-content:flex-end;margin:5px 0 0;padding:0;border:0}
  .admin-page .sidebar-bottom .logout-link{margin:0;padding:8px 11px;min-height:34px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.admin-page .sidebar-mobile-chevron{transition:none}}


/* SSCircle V10.34 — Season editor: layout berdasarkan lebar panel, bukan viewport.
   Khusus editor season, sehingga aturan pada form/voting tidak ikut berubah. */
.admin-page #seasons-admin-editor {
  container: season-editor / inline-size;
  min-width: 0;
  max-width: 100%;
  gap: 14px;
}
.admin-page #seasons-admin-editor *,
.admin-page #seasons-admin-editor *::before,
.admin-page #seasons-admin-editor *::after {
  box-sizing: border-box;
}
.admin-page #seasons-admin-editor :is(.season-admin-page-settings,.season-admin-list,.season-admin-season,
  .season-admin-body,.season-admin-fieldset,.season-admin-fieldset-content,.season-admin-info-grid,
  .season-admin-page-fields,.season-admin-dates,.season-admin-subsection,.season-admin-subsection-content,
  .season-admin-sublist,.season-admin-mini,.season-admin-mini-body,.season-admin-rank,
  .season-admin-rank-fields,.season-admin-media,.field-group) {
  min-width: 0;
  max-width: 100%;
}
.admin-page #seasons-admin-editor :is(input:not([type="checkbox"]),select,textarea) {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 43px;
  line-height: 1.45;
  font-size: 13px;
}
.admin-page #seasons-admin-editor textarea {
  resize: vertical;
  min-height: 88px;
}
.admin-page #seasons-admin-editor .field-group {
  display: grid;
  align-content: start;
  gap: 7px;
  margin: 0;
}
.admin-page #seasons-admin-editor .field-group :is(input,select,textarea) {
  margin-top: 0;
}
.admin-page #seasons-admin-editor .field-group > .field-label {
  display: block;
  line-height: 1.4;
  font-size: 11px;
  letter-spacing: .05em;
  overflow-wrap: anywhere;
}
/* The previous generic input{width:100%} stretched native checkboxes
   across the row, separating the checkbox from its text. */
.admin-page #seasons-admin-editor .season-admin-toggle {
  display: grid;
  grid-template-columns: 19px minmax(0,1fr);
  gap: 11px;
  align-items: start;
  justify-content: start;
  width: 100%;
  min-width: 0;
  padding: 12px 13px;
  margin: 0;
  border: 1px solid color-mix(in srgb,var(--ssc-border,#62457d) 74%,transparent);
  border-radius: 11px;
  background: color-mix(in srgb,var(--ssc-panel,#20142f) 76%,white 4%);
  cursor: pointer;
}
.admin-page #seasons-admin-editor .season-admin-toggle input[type="checkbox"] {
  appearance: auto;
  display: block;
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  min-width: 19px;
  max-width: 19px;
  min-height: 19px;
  margin: 2px 0 0;
  padding: 0;
  accent-color: var(--ssc-primary,#bc91f5);
  justify-self: start;
}
.admin-page #seasons-admin-editor .season-admin-toggle-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
  max-width: 100%;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ssc-text,#f8f3ff);
}
.admin-page #seasons-admin-editor .season-admin-toggle-copy strong {
  font-weight: 750;
  overflow-wrap: anywhere;
}
.admin-page #seasons-admin-editor .season-admin-toggle-copy small {
  display: block;
  font-size: 11px;
  font-weight: 450;
  color: var(--ssc-muted,#b8a5ca);
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.admin-page #seasons-admin-editor .season-admin-page-settings {
  display: grid;
  gap: 13px;
  padding: clamp(14px,2.5cqw,20px);
  align-content: start;
}
.admin-page #seasons-admin-editor .season-admin-page-intro {
  display: grid;
  gap: 5px;
}
.admin-page #seasons-admin-editor .season-admin-page-intro h2 {
  margin: 0;
  font-size: 17px;
  line-height: 1.3;
}
.admin-page #seasons-admin-editor .season-admin-page-intro p {
  margin: 0;
  color: var(--ssc-muted,#b8a5ca);
  font-size: 12px;
  line-height: 1.5;
}
.admin-page #seasons-admin-editor .season-admin-page-fields {
  display: grid;
  gap: 13px;
  min-width: 0;
  align-content: start;
}
.admin-page #seasons-admin-editor .season-admin-help {
  margin: 0;
  padding: 10px 12px;
  border-radius: 9px;
  background: color-mix(in srgb,var(--ssc-primary,#bc91f5) 7%,transparent);
  color: var(--ssc-muted,#b8a5ca);
  font-size: 11px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
/* One season editor card has clearly separated compact sections. */
.admin-page #seasons-admin-editor .season-admin-season {
  border-radius: 14px;
  overflow: hidden;
}
.admin-page #seasons-admin-editor .season-admin-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  min-width: 0;
  gap: 7px 11px;
  padding: 13px;
}
.admin-page #seasons-admin-editor .season-admin-summary > strong {
  min-width: 0;
  flex: 1 1 180px;
  white-space: normal;
  text-overflow: clip;
  overflow-wrap: anywhere;
  line-height: 1.4;
}
.admin-page #seasons-admin-editor .season-admin-summary .season-admin-count {
  margin-left: auto;
  font-size: 11px;
  white-space: normal;
  text-align: right;
  overflow-wrap: anywhere;
}
.admin-page #seasons-admin-editor .season-admin-body {
  display: grid;
  gap: 12px;
  padding: clamp(10px,2cqw,14px);
  align-content: start;
}
.admin-page #seasons-admin-editor .season-admin-fieldset {
  display: grid;
  gap: 13px;
  align-content: start;
  min-width: 0;
  padding: clamp(12px,2cqw,16px);
  background: color-mix(in srgb,var(--ssc-panel,#20142f) 92%,white 3%);
  border: 1px solid color-mix(in srgb,var(--ssc-border,#62457d) 65%,transparent);
  border-radius: 11px;
}
.admin-page #seasons-admin-editor .season-admin-fieldset-head {
  display: grid;
  gap: 4px;
  border-bottom: 1px solid color-mix(in srgb,var(--ssc-border,#62457d) 50%,transparent);
  padding-bottom: 11px;
}
.admin-page #seasons-admin-editor .season-admin-fieldset-head h3 {
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  color: var(--ssc-text,#f8f3ff);
  font-weight: 780;
}
.admin-page #seasons-admin-editor .season-admin-fieldset-head p {
  margin: 0;
  font-size: 11px;
  line-height: 1.5;
  color: var(--ssc-muted,#b8a5ca);
}
.admin-page #seasons-admin-editor .season-admin-fieldset-content {
  display: grid;
  gap: 12px;
  align-content: start;
  min-width: 0;
}
.admin-page #seasons-admin-editor .season-admin-info-grid {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr);
  gap: 13px;
  align-items: start;
}
.admin-page #seasons-admin-editor .season-admin-dates {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 13px;
}
.admin-page #seasons-admin-editor .season-admin-story {grid-column: 1 / -1}
.admin-page #seasons-admin-editor .season-admin-media {
  min-width: 0;
  overflow-wrap: anywhere;
}
.admin-page #seasons-admin-editor .season-admin-media > .field-label {
  font-size: 11px;
}
.admin-page #seasons-admin-editor .season-admin-media :is(.ssc-image-source,.ssc-image-url-row,.ssc-image-media-row) {
  min-width: 0;
  max-width: 100%;
}
.admin-page #seasons-admin-editor .season-admin-thumbnail {
  max-width: min(100%,260px);
  height: auto;
  max-height: 160px;
  object-fit: cover;
}
.admin-page #seasons-admin-editor .season-admin-subsection {
  overflow: hidden;
  margin: 0;
}
.admin-page #seasons-admin-editor .season-admin-subsection > summary {
  display: block;
  padding: 12px 14px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  cursor: pointer;
}
.admin-page #seasons-admin-editor .season-admin-subsection-content {
  gap: 11px;
  padding: 12px;
  min-width: 0;
}
.admin-page #seasons-admin-editor .season-admin-mini {
  min-width: 0;
  overflow: hidden;
}
.admin-page #seasons-admin-editor .season-admin-mini > summary {
  min-height: 40px;
  overflow-wrap: anywhere;
}
.admin-page #seasons-admin-editor .season-admin-mini-body {
  padding: 12px;
  display: grid;
  gap: 11px;
}
.admin-page #seasons-admin-editor .season-admin-rank {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  padding: 12px;
}
.admin-page #seasons-admin-editor .season-admin-rank-fields {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 11px;
  min-width: 0;
}
.admin-page #seasons-admin-editor .season-admin-rank-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}
.admin-page #seasons-admin-editor .season-admin-rank-top > .button {
  margin-left: auto;
  max-width: 100%;
}
.admin-page #seasons-admin-editor .season-admin-add-player {
  justify-self: stretch;
  width: 100%;
}
.admin-page #seasons-admin-editor .season-admin-delete-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 1px;
}
.admin-page #seasons-admin-editor .season-admin-delete {
  background: color-mix(in srgb,#a94464 12%,transparent);
  border-color: color-mix(in srgb,#a94464 52%,transparent);
  color: #ffd1d9;
  min-height: 38px;
}
/* React to the editor's available width, not just a phone breakpoint. */
@container season-editor (max-width: 570px) {
  .admin-page #seasons-admin-editor .season-admin-info-grid {
    grid-template-columns: minmax(0,1fr);
  }
  .admin-page #seasons-admin-editor .season-admin-dates,
  .admin-page #seasons-admin-editor .season-admin-story {grid-column: auto}
}
@container season-editor (max-width: 420px) {
  .admin-page #seasons-admin-editor .season-admin-dates,
  .admin-page #seasons-admin-editor .season-admin-rank-fields {
    grid-template-columns: minmax(0,1fr);
  }
  .admin-page #seasons-admin-editor .season-admin-toolbar {
    display: grid;
    gap: 11px;
  }
  .admin-page #seasons-admin-editor .season-admin-toolbar > .button {
    width: 100%;
    justify-self: stretch;
  }
  .admin-page #seasons-admin-editor .season-admin-summary .season-admin-count {
    flex: 0 0 auto;
    margin-left: 0;
    text-align: left;
  }
}
@media(max-width:1100px) {
  .admin-page #seasons-admin .ssc-rules-admin-layout {
    grid-template-columns: minmax(0,1fr);
  }
}
@media(prefers-reduced-motion:reduce) {
  .admin-page #seasons-admin-editor .season-admin-toggle {transition: none;}
}


/* SSCircle V10.36: Member Control. Container-safe from 320px to desktop. */
.members-admin-root {min-width:0;max-width:100%;display:grid;gap:12px;container:member-control/inline-size}
.members-admin-root *,.members-admin-root *::before,.members-admin-root *::after{box-sizing:border-box}
.members-admin-tabs {display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:0;max-width:100%}
.members-admin-root .member-admin-tab {
  flex:0 1 auto;min-height:36px;padding:9px 12px;font-size:11px;line-height:1.3;
  color:var(--ssc-text,#f7f2ff);background:color-mix(in srgb,var(--ssc-panel,#20152e) 85%,white 3%);
  border:1px solid var(--ssc-border,#5d4a6e);border-radius:9px;cursor:pointer
}
.members-admin-root .member-admin-tab.is-active{background:color-mix(in srgb,var(--ssc-primary,#a980dd) 21%,var(--ssc-panel,#20152e));border-color:var(--ssc-primary,#a980dd)}
.members-admin-root .member-admin-panel {display:grid;gap:15px;padding:clamp(14px,2.5cqw,21px);min-width:0;max-width:100%;align-content:start}
.member-admin-section-heading{display:grid;gap:5px;min-width:0}
.member-admin-section-heading h2{margin:0;font-size:18px;line-height:1.35;overflow-wrap:anywhere}
.member-admin-section-heading p,.member-admin-advisory{margin:0;color:var(--ssc-muted,#c3b2d0);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.member-admin-advisory{padding:12px 13px;background:color-mix(in srgb,var(--ssc-primary,#a980dd) 9%,transparent);border:1px solid color-mix(in srgb,var(--ssc-border,#5d4a6e) 70%,transparent);border-radius:10px}
.member-admin-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,1fr);gap:10px;min-width:0}
.member-admin-filters :is(input,select){
  display:block;min-width:0;max-width:100%;width:100%;min-height:42px;padding:10px 12px;
  color:var(--ssc-text,#fff);background:var(--ssc-input,#1e142d);
  border:1px solid var(--ssc-border,#5d4a6e);border-radius:10px;font-size:12px
}
.member-admin-list{display:grid;gap:9px;min-width:0}
.member-admin-member{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;min-width:0;max-width:100%;padding:12px 14px;border:1px solid var(--ssc-border,#5d4a6e);border-radius:12px;background:color-mix(in srgb,var(--ssc-panel,#20152e) 80%,transparent)}
.member-admin-member-info{display:grid;gap:5px;min-width:130px;flex:1 1 145px}
.member-admin-member-info strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.member-admin-member-info small{font-size:10px;color:var(--ssc-muted,#c3b2d0)}
.member-admin-member-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;flex:1 1 170px}
.member-admin-member-meta>span:not(.member-admin-chip),.member-admin-member-meta>small{font-size:11px;color:var(--ssc-muted,#c3b2d0)}
.member-admin-chip{font-size:10px;padding:5px 9px;border-radius:99px;border:1px solid var(--ssc-border,#5d4a6e);color:var(--ssc-text,#fff);white-space:normal}
.member-admin-empty{margin:0;padding:14px;background:color-mix(in srgb,var(--ssc-primary,#a980dd) 6%,transparent);border:1px dashed var(--ssc-border,#5d4a6e);border-radius:10px;color:var(--ssc-muted,#c3b2d0);font-size:12px;line-height:1.6}
.member-admin-policy{display:grid;gap:11px;align-content:start}
.member-admin-policy .button{justify-self:start}
.member-admin-switch{display:grid;grid-template-columns:19px minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid var(--ssc-border,#5d4a6e);border-radius:10px;font-size:12px;line-height:1.5;cursor:pointer;min-width:0}
.member-admin-switch input[type=checkbox]{width:19px;min-width:19px;max-width:19px;height:19px;min-height:19px;margin:0;padding:0;appearance:auto;accent-color:var(--ssc-primary,#a980dd)}
.member-admin-switch span{overflow-wrap:anywhere}
.members-admin-root .member-admin-danger{color:#ffd1d9;border-color:#ab516b}
.member-admin-message{margin:0;font-size:11px;min-height:12px;color:var(--ssc-success,#70d7ab)}
.member-admin-message[data-error=true]{color:var(--ssc-danger,#ff9aa8)}
.member-admin-season-line{padding:12px;border-bottom:1px solid var(--ssc-border,#5d4a6e);font-size:12px;overflow-wrap:anywhere}
.season-admin-recipient {min-width:0;max-width:100%}
.season-admin-recipient select {max-width:100%;min-width:0}
@container member-control (max-width:550px){
  .member-admin-filters{grid-template-columns:minmax(0,1fr)}
  .member-admin-member{align-items:stretch}
  .member-admin-member-info,.member-admin-member-meta{flex-basis:100%}
  .member-admin-member>.button{width:100%}
  .members-admin-root .member-admin-tab{flex:1 1 145px}
}
@container member-control (max-width:360px){.members-admin-root .member-admin-tab{flex-basis:100%}}
/* V10.37: protected invitation display. No horizontal overflow at 320px. */
.member-admin-invite-result{display:grid;gap:10px;min-width:0;max-width:100%;padding:14px;border:1px solid var(--ssc-primary,#bc91f0);border-radius:12px;background:color-mix(in srgb,var(--ssc-primary,#bc91f0) 10%,transparent)}
.member-admin-invite-result[hidden]{display:none!important}
.member-admin-invite-result strong{font-size:13px;overflow-wrap:anywhere}
.member-admin-invite-result p{font-size:11px;line-height:1.65;color:var(--ssc-muted,#bfadcf);overflow-wrap:anywhere}
.member-admin-invite-secret{display:block;font-size:clamp(10px,1.7vw,15px);overflow-wrap:anywhere;word-break:break-all;padding:12px;line-height:1.7;background:var(--ssc-bg,#140c20);border-radius:9px;color:var(--ssc-text,#fff);white-space:normal}
.member-admin-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.member-admin-actions>.button{font-size:11px;min-width:0;max-width:100%}
@container member-control (max-width:550px){.member-admin-actions{width:100%}.member-admin-actions>.button{flex:1 1 150px}}

/* V10.39 • Discord Community join requirement within Server Rules. */
.rules-discord-required{min-width:0;max-width:100%;box-sizing:border-box;display:grid;gap:17px;
  margin:20px 0;padding:clamp(17px,3vw,26px);border-radius:18px;
  border:1px solid color-mix(in srgb,var(--ssc-primary,#b699ec) 48%,transparent);
  background:linear-gradient(130deg,color-mix(in srgb,var(--ssc-primary,#b699ec) 13%,transparent),
  color-mix(in srgb,var(--ssc-panel,#20152e) 86%,transparent))}
.rules-discord-content{display:flex;align-items:flex-start;gap:14px;min-width:0}
.rules-discord-content>div{min-width:0;flex:1}
.rules-discord-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;width:42px;
  color:var(--ssc-text,#fff);font-size:22px;border-radius:12px;
  background:color-mix(in srgb,var(--ssc-primary,#b699ec) 24%,transparent)}
.rules-discord-eyebrow{display:block;font-size:10px;font-weight:800;letter-spacing:.13em;
  color:var(--ssc-primary,#b699ec);margin-bottom:8px}
.rules-discord-required h2{font-size:clamp(18px,2.3vw,25px);line-height:1.3;
  color:var(--ssc-text,#fff);margin:0 0 10px;overflow-wrap:anywhere}
.rules-discord-required p{margin:0;color:var(--ssc-muted,#d1c3e0);font-size:13px;line-height:1.75;overflow-wrap:anywhere}
.rules-discord-button{justify-self:start;min-height:44px;max-width:100%;min-width:0;
  display:inline-flex;gap:10px;align-items:center;justify-content:center;
  border:1px solid var(--ssc-primary,#b699ec);border-radius:11px;padding:11px 16px;
  color:var(--ssc-text,#fff)!important;background:color-mix(in srgb,var(--ssc-primary,#b699ec) 25%,transparent);
  text-decoration:none!important;font-weight:700;font-size:13px;line-height:1.5}
.rules-discord-button:hover{background:color-mix(in srgb,var(--ssc-primary,#b699ec) 37%,transparent)}
.rules-discord-button:focus-visible,.rules-discord-confirm input:focus-visible{outline:2px solid var(--ssc-primary,#b699ec);outline-offset:3px}
.rules-discord-button img{width:21px;height:21px;flex:0 0 21px;object-fit:contain}
.rules-discord-confirm{min-width:0;display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;
  border:1px solid var(--ssc-border,#514666);border-radius:12px;padding:13px 15px;
  font-size:12px;line-height:1.6;color:var(--ssc-text,#fff);cursor:pointer}
.rules-discord-confirm input[type=checkbox]{width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;
  padding:0;margin:0;appearance:auto;accent-color:var(--ssc-primary,#b699ec)}
.rules-discord-required .rules-discord-hint{font-size:11px;line-height:1.6}
@media(max-width:420px){.rules-discord-content{gap:9px}.rules-discord-icon{width:34px;height:34px;flex-basis:34px}
 .rules-discord-button{justify-self:stretch;text-align:center;flex-wrap:wrap}}

/* Unnumbered explanation blocks in Server Rules. */
.rules-page .rules-item-note{list-style:none;display:block;padding:18px 21px;border:1px solid var(--ssc-border,var(--line));border-radius:13px;background:color-mix(in srgb,var(--ssc-primary,var(--purple)) 7%,var(--ssc-panel,var(--panel)));min-width:0}
.rules-page .rules-note-text{margin:0;color:var(--ssc-text,var(--text));line-height:1.8;white-space:pre-line;overflow-wrap:anywhere}
.rules-admin-rule-fields .field-group select{width:100%}
