/* Shared Seattle Masters palette: public pages, tournament tools and IONOS setup. */
*, *::before, *::after { box-sizing: border-box; }
:root {
  color-scheme: light;
  --sm-ink: #171411;
  --sm-paper: #f8f5ef;
  --sm-red: #a00000;
  --sm-red-hover: #790000;
  --sm-surface: #ffffff;
  --sm-subtle: #f1ece4;
  --sm-line: #d8cec2;
  --sm-gold: #805615;
  --text: var(--sm-ink);
  --muted: #635b52;
  --panel: var(--sm-surface);
  --panel-strong: var(--sm-surface);
  --line: var(--sm-line);
  --line-soft: var(--sm-line);
  --blue: var(--sm-red);
  --blue-hot: var(--sm-red);
  --lime: var(--sm-gold);
  --yellow: var(--sm-gold);
  --green: #216d40;
  --red: #a00000;
}

@media screen {
  body { background: var(--sm-paper); color: var(--sm-ink); }
  body::before, body::after { display: none; }
  .topbar, .inner-header {
    background: rgba(248,245,239,.98);
    border-bottom: 1px solid var(--sm-line);
    box-shadow: 0 6px 20px #1714110b;
  }
  .inner-logo, .inner-nav a, .main-nav a { color: var(--sm-ink); }
  .inner-logo span, .inner-nav a.active, .main-nav a.active,
  .inner-nav a:hover, .main-nav a:hover { color: var(--sm-red); }
  .admin-header-link, .admin-header-link:hover {
    background: var(--sm-surface); color: var(--sm-ink); border-color: var(--sm-line);
  }
  .admin-tool-nav .admin-header-link.active,
  .bowler-session-nav .admin-header-link.active {
    background: #f7e7e5; color: var(--sm-red); border-color: var(--sm-red);
  }
  .inner-hero {
    color: var(--sm-ink);
    background: linear-gradient(115deg, #f8f5ef 55%, #eee4d9);
    border-bottom: 3px solid var(--sm-red);
  }
  .inner-hero h1, .inner-hero h2 { color: var(--sm-ink); }
  .inner-hero h1 span { color: var(--sm-red); }
  .inner-hero p { color: var(--muted); }
  .card, .form-card, .date-picker-popover,
  .bracket-board-card, .bracket-financial-card, .lane-score-card,
  .profile-match-panel, .profile-match-option {
    background: var(--sm-surface); color: var(--sm-ink);
    border-color: var(--sm-line); box-shadow: 0 8px 24px #1714110a;
  }
  .card h2, .card h3, .card h4, .card strong,
  .card label, label, .profile-match-option strong { color: var(--sm-ink); }
  .card p, .field-note, .card small { color: var(--muted); }
  .event-list-image-wrap, .event-list-image, .founder-photo-wrap,
  .content-preview-frame, .content-sponsor-preview, .content-sponsor-row,
  .event-registration-list li, .swiss-team-bowler-card,
  .season-points-summary div, .portal-stat-grid div,
  .membership-preview, .portal-bracket-stat-grid div,
  .portal-pair-score-summary div, .portal-pair-score-row,
  .side-pot-setup-card, .side-pot-result-card, .swiss-team-lane-card,
  .lane-score-form, .swiss-team-score-form, .swiss-team-total,
  .finals-setup-grid div, .qualified-finalist-row, .finals-match-card,
  .public-finals-results, .championship-bracket-board .bracket-tree,
  .swiss-points-summary span, .team-result-members div,
  .sponsor-feature-card, .sponsor-logo-frame, .bowler-profile-photo,
  .registration-edit-row td, .tree-slot {
    color: var(--sm-ink); background: var(--sm-paper); border-color: var(--sm-line);
  }
  .event-registration-summary, .event-registration-name,
  .founder-copy h2, .tree-slot strong, .tree-slot span,
  .portal-stat-grid strong, .portal-bracket-stat-grid strong,
  .season-points-summary strong, .lane-score-header,
  .lane-score-header span, .finals-match-card h3,
  .swiss-team-lane-card h3, .qualified-finalist-row strong,
  .standings-score-table th { color: var(--sm-ink); }
  .results-tabs button, .icon-nav-btn {
    color: var(--sm-red); background: var(--sm-paper); border-color: var(--sm-line);
  }
  .results-tabs button.active, .icon-nav-btn:hover,
  .bracket-bowler-buttons .team-result-toggle[aria-pressed="true"] {
    color: #fff; background: var(--sm-red); border-color: var(--sm-red);
  }
  .tree-slot.winner, .score-complete-banner {
    color: #245938; background: #eaf4ed; border-color: #93b79e;
  }
  .event-oil-image, .oil-pattern-image, .event-registration-panel,
  .detail-list div, .standings-score-table th { border-color: var(--sm-line); }
  input, select, textarea, .card input, .card select, .card textarea {
    color-scheme: light;
    background: #fff; color: var(--sm-ink); border: 1px solid #b9ada0;
    accent-color: var(--sm-red);
  }
  input::placeholder, textarea::placeholder { color: #756b60; opacity: 1; }
  input:focus, select:focus, textarea:focus {
    outline: 2px solid var(--sm-red); outline-offset: 2px; border-color: var(--sm-red);
  }
  .btn, .button.primary, .hero-register-button {
    background: var(--sm-red); color: #fff; border-color: var(--sm-red);
    box-shadow: 0 4px 12px #a0000015;
  }
  .btn:hover, .button.primary:hover { background: var(--sm-red-hover); color: #fff; }
  .outline-btn, .button.ghost {
    background: transparent; color: var(--sm-red); border: 1px solid var(--sm-red);
  }
  .outline-btn:hover, .button.ghost:hover { background: #f7e7e5; color: var(--sm-red-hover); }
  .danger-btn { background: #7a1111; color: #fff; }
  .date-picker-title button, .date-picker-days button {
    background: var(--sm-paper); color: var(--sm-ink); border-color: var(--sm-line);
  }
  .date-picker-days button.selected, .date-picker-days button:hover {
    background: var(--sm-red); color: #fff;
  }
  .date-picker-title strong, .date-picker-days button.today { color: var(--sm-red); }
  .date-picker-days button.today.selected { color: #fff; }
  table, th, td { color: var(--sm-ink); border-color: var(--sm-line); }
  th { background: #eee6da; color: #554333; }
  td { background: transparent; }
  tbody tr:nth-child(even) { background: #f8f5ef; }
  tbody tr:hover { background: #f2e9df; }
  .table-link { color: var(--sm-red); }
  .notice { color: #245938; background: #eaf4ed; border-color: #93b79e; }
  .notice.error { color: #8a1717; background: #fbeceb; border-color: #d3a09c; }
  .member-badge { color: #62410b; background: #f6e9c7; border-color: #cdbb8f; }
  .payout-summary-grid div, .event-note-grid div {
    background: #f3ede3; color: var(--sm-ink); border-color: var(--sm-line);
  }
  .payout-summary-grid strong, .bracket-column-total { color: var(--sm-red); }
  .site-footer { color: var(--sm-paper); background: #171411; }
  .site-footer a, .site-footer p, .site-footer span { color: var(--sm-paper); }
  :is(a,button):focus-visible { outline: 2px solid var(--sm-red); outline-offset: 4px; }

  /* The installer uses the same stylesheet as the website. */
  body.ionos-install { font: 16px/1.5 "Segoe UI",Arial,sans-serif; }
  .ionos-install main {
    width: min(900px,calc(100% - 32px)); margin: 36px auto; padding: 28px;
    background: #fff; border: 1px solid var(--sm-line); border-top: 5px solid var(--sm-red);
  }
  .ionos-install h1 { margin: 0 0 12px; font-size: clamp(27px,5vw,40px); line-height: 1.15; }
  .ionos-install h2 { margin-top: 28px; }
  .ionos-install form { display: grid; gap: 16px; margin-top: 24px; }
  .ionos-install label { display: grid; gap: 7px; font-weight: 700; }
  .ionos-install input { padding: 12px; min-width: 0; width: 100%; font: inherit; }
  .ionos-install .row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .ionos-install button, .ionos-install .button {
    padding: 13px 18px; background: var(--sm-red); border: 0; color: white;
    font: inherit; font-weight: 700; cursor: pointer; text-decoration: none;
  }
  .ionos-install .notice { padding: 14px; margin: 16px 0; border-left: 4px solid #216d40; }
  .ionos-install .notice.error { border-left-color: var(--sm-red); }
  .ionos-install code { color: var(--sm-red); overflow-wrap: anywhere; }
  .ionos-install p, .ionos-install li { color: var(--muted); }
  .ionos-install table { width: 100%; border-collapse: collapse; }
  .ionos-install th, .ionos-install td { padding: 9px; text-align: left; border-bottom: 1px solid var(--sm-line); }
  @media(max-width:600px) {
    .ionos-install main { margin: 16px auto; padding: 20px; }
    .ionos-install .row { grid-template-columns: 1fr; }
  }
}
