/*
 * CommunityCore Public Theme Contract v1
 * --------------------------------------
 * Public modules must consume these semantic tokens instead of shipping their own
 * light/dark palette. The active theme may override any --cc-* variable on
 * .classic-site. Module CSS remains responsible for layout only.
 */
.classic-site{
  --cc-page-bg:#080c10;
  --cc-surface:#151a1f;
  --cc-surface-alt:#11161a;
  --cc-surface-soft:#1b2227;
  --cc-surface-strong:#0f1418;
  --cc-hover:#1d252a;
  --cc-border:#30383e;
  --cc-border-strong:#465159;
  --cc-text:#dce2e5;
  --cc-text-soft:#aeb8bd;
  --cc-muted:#738087;
  --cc-accent:var(--classic-accent,#8cc63f);
  --cc-accent-2:#9bc95e;
  --cc-accent-soft:color-mix(in srgb,var(--cc-accent) 13%,transparent);
  --cc-input-bg:#0c1115;
  --cc-input-text:#e2e7e9;
  --cc-positive:#74aa3b;
  --cc-warning:#d0a648;
  --cc-danger:#c75b67;
  --cc-shadow:0 2px 8px rgba(0,0,0,.18);
  --cc-radius:8px;
  --cc-radius-lg:14px;

  /* Backwards-compatible aliases for older module CSS. New module CSS should use --cc-* directly. */
  --bg:var(--cc-page-bg);
  --panel:var(--cc-surface);
  --panel2:var(--cc-surface-alt);
  --line:var(--cc-border);
  --text:var(--cc-text);
  --muted:var(--cc-muted);
  --accent:var(--cc-accent);
  --accent2:var(--cc-accent-2);
  --good:var(--cc-positive);
  --danger:var(--cc-danger);
  --shadow:var(--cc-shadow);
}

/* Generic surfaces --------------------------------------------------------- */
.classic-site .panel,
.classic-site .content-card,
.classic-site .module-card,
.classic-site .detail-card,
.classic-site .form-panel,
.classic-site .stats-card,
.classic-site .info-card,
.classic-site .list-card{
  background:var(--cc-surface)!important;
  color:var(--cc-text)!important;
  border-color:var(--cc-border)!important;
  box-shadow:var(--cc-shadow);
}
.classic-site .panel-head{border-color:var(--cc-border)!important}
.classic-site .panel-head h2,
.classic-site .page-head h1,
.classic-site .article-head h1,
.classic-site .team-hero h1,
.classic-site .profile-hero h1{color:var(--cc-text)!important}
.classic-site .page-head p,
.classic-site .article-head p,
.classic-site .team-hero p,
.classic-site .profile-hero p,
.classic-site .muted-text,
.classic-site .card-meta{color:var(--cc-muted)!important}
.classic-site .empty{background:var(--cc-surface-alt)!important;color:var(--cc-muted)!important;border-color:var(--cc-border)!important}
.classic-site hr{border-color:var(--cc-border)!important}

/* Inputs, editors and toolbars -------------------------------------------- */
.classic-site input,
.classic-site select,
.classic-site textarea,
.classic-site .searchbox,
.classic-site .gallery-upload input,
.classic-site .vote-option{
  background:var(--cc-input-bg)!important;
  color:var(--cc-input-text)!important;
  border-color:var(--cc-border)!important;
}
.classic-site input:focus,
.classic-site select:focus,
.classic-site textarea:focus{border-color:var(--cc-accent)!important}
.classic-site label{color:var(--cc-text-soft)!important}
.classic-site .toolbar{background:var(--cc-surface-alt)!important;border-color:var(--cc-border)!important}
.classic-site .bbcode-editor{background:var(--cc-surface)!important;border-color:var(--cc-border)!important}
.classic-site .bbcode-toolbar{background:var(--cc-surface-alt)!important;border-color:var(--cc-border)!important}
.classic-site .bbcode-tool{background:var(--cc-surface-soft)!important;color:var(--cc-text-soft)!important;border-color:var(--cc-border)!important}
.classic-site .bbcode-tool:hover{background:var(--cc-hover)!important;color:var(--cc-accent)!important;border-color:var(--cc-accent)!important}
.classic-site .bbcode-editor textarea{background:var(--cc-input-bg)!important;color:var(--cc-input-text)!important}
.classic-site .bbcode-help{background:var(--cc-surface-alt)!important;color:var(--cc-muted)!important;border-color:var(--cc-border)!important}
.classic-site .bb-quote{background:var(--cc-surface-alt)!important;color:var(--cc-text-soft)!important;border-left-color:var(--cc-accent)!important}
.classic-site .bb-code,.classic-site code,.classic-site pre{background:var(--cc-surface-strong)!important;color:var(--cc-text-soft)!important;border-color:var(--cc-border)!important}
.classic-site .bb-hr{border-color:var(--cc-border)!important}
.classic-site .bb-link{color:var(--cc-accent)!important}

/* News ------------------------------------------------------------------- */
.classic-site .classic-news{border-color:var(--cc-border)!important}
.classic-site .classic-news-title{
  background:var(--cc-surface-strong)!important;
  border-left-color:var(--cc-accent)!important;
}
.classic-site .classic-news-title a{color:var(--cc-text)!important}
.classic-site .classic-news-title small,
.classic-site .classic-news p{color:var(--cc-muted)!important}
.classic-site .readmore{color:var(--cc-accent)!important}
.classic-site .comment-row{border-color:var(--cc-border)!important}
.classic-site .comment-avatar{background:var(--cc-accent-soft)!important;color:var(--cc-accent)!important;border-color:var(--cc-border)!important}
.classic-site .comment-row p{color:var(--cc-text-soft)!important}
.classic-site .comment-row small{color:var(--cc-muted)!important}

/* Matches / clanwars ------------------------------------------------------ */
.classic-site .match-card,
.classic-site .match-hero{
  background:var(--cc-surface)!important;
  color:var(--cc-text)!important;
  border-color:var(--cc-border)!important;
  box-shadow:var(--cc-shadow);
}
.classic-site .match-card:hover{background:var(--cc-hover)!important;border-color:var(--cc-border-strong)!important}
.classic-site .match-card>div:first-child,
.classic-site .match-hero>div:first-child,
.classic-site .match-versus span,
.classic-site .match-versus i,
.classic-site .big-versus i,
.classic-site .compact-match small,
.classic-site .map-row small{color:var(--cc-muted)!important}
.classic-site .match-versus b,
.classic-site .match-versus strong,
.classic-site .big-versus b,
.classic-site .big-versus strong,
.classic-site .compact-match b,
.classic-site .compact-match strong{color:var(--cc-text)!important}
.classic-site .compact-match,
.classic-site .map-row,
.classic-site .manage-row{border-color:var(--cc-border)!important}

/* Calendar --------------------------------------------------------------- */
.classic-site .calendar-grid{background:var(--cc-surface)!important;border-color:var(--cc-border)!important;box-shadow:var(--cc-shadow)}
.classic-site .calendar-weekdays{background:var(--cc-surface-strong)!important;border-color:var(--cc-border)!important}
.classic-site .calendar-weekdays b{color:var(--cc-muted)!important}
.classic-site .calendar-day{background:var(--cc-surface)!important;border-color:var(--cc-border)!important;color:var(--cc-text)!important}
.classic-site .calendar-day:hover{background:var(--cc-hover)!important}
.classic-site .calendar-day.today{background:var(--cc-accent-soft)!important;box-shadow:inset 0 0 0 1px var(--cc-accent)!important}
.classic-site .day-number{color:var(--cc-muted)!important}
.classic-site .today .day-number{color:var(--cc-accent)!important}
.classic-site .event-chip{background:var(--cc-accent-soft)!important;border-color:color-mix(in srgb,var(--cc-accent) 35%,var(--cc-border))!important;color:var(--cc-text)!important}
.classic-site .event-chip small{color:var(--cc-accent)!important}
.classic-site .more-events{color:var(--cc-muted)!important}

/* Forum: Bereich -> Forum -> Thread -------------------------------------- */
.classic-site .forum-section,
.classic-site .forum-thread-panel,
.classic-site .forum-latest-panel,
.classic-site .forum-post,
.classic-site .reply-box{
  background:var(--cc-surface)!important;color:var(--cc-text)!important;border-color:var(--cc-border)!important;box-shadow:var(--cc-shadow)
}
.classic-site .forum-section-head,
.classic-site .forum-thread-header,
.classic-site .forum-post aside{
  background:var(--cc-surface-alt)!important;color:var(--cc-text-soft)!important;border-color:var(--cc-border)!important
}
.classic-site .forum-board-row,
.classic-site .forum-thread-row,
.classic-site .forum-latest-row{
  background:var(--cc-surface)!important;color:var(--cc-text-soft)!important;border-color:var(--cc-border)!important
}
.classic-site .forum-board-row:hover,
.classic-site .forum-thread-row:hover,
.classic-site .forum-latest-row:hover{background:var(--cc-hover)!important}
.classic-site .forum-section-head h2,
.classic-site .forum-board-main h3,
.classic-site .forum-thread-title b,
.classic-site .forum-post b,
.classic-site .forum-post strong{color:var(--cc-text)!important}
.classic-site .forum-section-head p,
.classic-site .forum-board-main p,
.classic-site .forum-board-stats span,
.classic-site .forum-board-last small,
.classic-site .forum-thread-title small,
.classic-site .forum-thread-last small,
.classic-site .forum-post aside small,
.classic-site .forum-post>div>small{color:var(--cc-muted)!important}
.classic-site .forum-board-stats b,
.classic-site .forum-board-last b,
.classic-site .forum-thread-replies b,
.classic-site .forum-thread-last b{color:var(--cc-text-soft)!important}
.classic-site .forum-board-icon,
.classic-site .thread-status{background:var(--cc-accent-soft)!important;color:var(--cc-accent)!important;border-color:var(--cc-border)!important}
.classic-site .forum-breadcrumb{background:var(--cc-surface)!important;color:var(--cc-muted)!important;border-color:var(--cc-border)!important}
.classic-site .forum-breadcrumb a{color:var(--cc-accent)!important}
.classic-site .forum-breadcrumb b{color:var(--cc-text)!important}

/* Members / profiles / teams -------------------------------------------- */
.classic-site .member-card,
.classic-site .team-card,
.classic-site .roster-row,
.classic-site .profile-hero,
.classic-site .team-hero{
  background:var(--cc-surface)!important;color:var(--cc-text)!important;border-color:var(--cc-border)!important;box-shadow:var(--cc-shadow)
}
.classic-site .member-card:hover,
.classic-site .team-card:hover,
.classic-site .roster-row:hover{background:var(--cc-hover)!important;border-color:var(--cc-border-strong)!important}
.classic-site .member-card p,
.classic-site .member-card small,
.classic-site .team-card p,
.classic-site .team-card small,
.classic-site .roster-row small{color:var(--cc-muted)!important}
.classic-site .avatar,
.classic-site .profile-avatar,
.classic-site .team-emblem{background:var(--cc-accent-soft)!important;color:var(--cc-accent)!important;border-color:var(--cc-border)!important}

/* Gallery / downloads / polls ------------------------------------------- */
.classic-site .album-card,
.classic-site .poll-card,
.classic-site .image-card,
.classic-site .download-card,
.classic-site .poll-detail{
  background:var(--cc-surface)!important;color:var(--cc-text)!important;border-color:var(--cc-border)!important;box-shadow:var(--cc-shadow)
}
.classic-site .album-card:hover,
.classic-site .poll-card:hover{background:var(--cc-hover)!important;border-color:var(--cc-border-strong)!important}
.classic-site .album-card p,
.classic-site .album-card small,
.classic-site .poll-card p,
.classic-site .poll-card small,
.classic-site .image-card p,
.classic-site .image-card small,
.classic-site .download-card p,
.classic-site .download-card small,
.classic-site .result-row span{color:var(--cc-muted)!important}
.classic-site .image-card img{background:var(--cc-surface-strong)!important}
.classic-site .album-visual,
.classic-site .file-icon{background:var(--cc-accent-soft)!important;color:var(--cc-accent)!important;border-color:var(--cc-border)!important}
.classic-site .vote-option:hover{background:var(--cc-hover)!important;border-color:var(--cc-border-strong)!important}
.classic-site .result-track{background:var(--cc-surface-strong)!important}
.classic-site .result-track i{background:linear-gradient(90deg,var(--cc-accent),var(--cc-accent-2))!important}

/* Messages / notifications / guestbook ---------------------------------- */
.classic-site .message-row,
.classic-site .notification-row,
.classic-site .guestbook-entry{
  color:var(--cc-text-soft)!important;border-color:var(--cc-border)!important
}
.classic-site .message-row:hover,
.classic-site .notification-row>button:hover{background:var(--cc-hover)!important}
.classic-site .message-row.unread,
.classic-site .notification-row.unread{background:var(--cc-accent-soft)!important;border-left-color:var(--cc-accent)!important}
.classic-site .message-row small,
.classic-site .message-row>span,
.classic-site .notification-row p,
.classic-site .notification-row small{color:var(--cc-muted)!important}
.classic-site .notification-row>button{color:var(--cc-text-soft)!important}
.classic-site .notification-dot{background:var(--cc-muted)!important}
.classic-site .notification-row.unread .notification-dot{background:var(--cc-accent)!important}

/* Awards / applications / misc cards ------------------------------------ */
.classic-site .award-card,
.classic-site .award-admin-row,
.classic-site .application-card,
.classic-site .partner-card,
.classic-site .stream-card,
.classic-site .server-card{
  background:var(--cc-surface)!important;color:var(--cc-text)!important;border-color:var(--cc-border)!important
}
.classic-site .award-card h3{color:var(--cc-text)!important}
.classic-site .award-card b{color:var(--cc-accent)!important}
.classic-site .award-card p,
.classic-site .award-card small{color:var(--cc-muted)!important}
.classic-site .award-icon{background:var(--cc-accent-soft)!important;color:var(--cc-accent)!important;border-color:var(--cc-border)!important}

/* Tables ----------------------------------------------------------------- */
.classic-site .data-table{background:var(--cc-surface)!important;color:var(--cc-text-soft)!important}
.classic-site .data-table th{background:var(--cc-surface-alt)!important;color:var(--cc-text)!important;border-color:var(--cc-border)!important}
.classic-site .data-table td{background:var(--cc-surface)!important;color:var(--cc-text-soft)!important;border-color:var(--cc-border)!important}
.classic-site .data-table tr:hover td{background:var(--cc-hover)!important}

/* Status / accents ------------------------------------------------------- */
.classic-site .tag,
.classic-site .badge{background:var(--cc-accent-soft)!important;color:var(--cc-accent)!important;border-color:color-mix(in srgb,var(--cc-accent) 30%,var(--cc-border))!important}
.classic-site .status-active{color:var(--cc-positive)!important}
.classic-site .status-draft{color:var(--cc-warning)!important}
.classic-site .status-closed{color:var(--cc-muted)!important}
