:root {
  --yffl-navy: #0c2348;
  --yffl-navy-strong: #07172f;
  --yffl-navy-soft: #173a70;
  --yffl-blue: #275df5;
  --yffl-blue-dark: #1749c7;
  --yffl-blue-soft: #eaf1ff;
  --yffl-red: #c62033;
  --yffl-gold: #e8b84a;
  --yffl-success: #17864c;
  --yffl-warning: #9b6800;
  --yffl-danger: #b42334;
  --yffl-canvas: #eef2f7;
  --yffl-surface: #ffffff;
  --yffl-surface-muted: #f7f9fc;
  --yffl-text: #273750;
  --yffl-heading: #0c2348;
  --yffl-muted: #6f7d91;
  --yffl-border: #dfe5ee;
  --yffl-border-strong: #cbd5e2;
  --yffl-radius-sm: 8px;
  --yffl-radius-md: 12px;
  --yffl-radius-lg: 18px;
  --yffl-radius-hero: 22px;
  --yffl-shadow-sm: 0 4px 14px rgba(15, 35, 68, .05);
  --yffl-shadow: 0 8px 24px rgba(15, 35, 68, .07);
  --yffl-shadow-lg: 0 16px 38px rgba(11, 31, 68, .17);
  --yffl-focus: 0 0 0 3px rgba(39, 93, 245, .18);
  --yffl-font: "Lato", "Segoe UI", Arial, sans-serif;
}

html {
  color-scheme: light;
  font-size: 16px;
}

body,
button,
input,
select,
textarea,
.sidebar-search-wrap kbd,
.tooltip,
.popover {
  font-family: var(--yffl-font) !important;
}

body {
  background: var(--yffl-canvas) !important;
  color: var(--yffl-text) !important;
  font-size: .875rem;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  color: var(--yffl-heading);
  font-family: var(--yffl-font) !important;
  font-weight: 900 !important;
  letter-spacing: -.025em;
  line-height: 1.18;
}

p,
li,
td,
th,
input,
select,
textarea,
button {
  line-height: 1.5;
}

small,
.small,
.text-muted {
  color: var(--yffl-muted) !important;
}

a {
  color: var(--yffl-blue);
  text-decoration-thickness: .08em;
  text-underline-offset: .14em;
}

a:hover {
  color: var(--yffl-red);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  border-radius: var(--yffl-radius-sm);
  outline: 3px solid rgba(39, 93, 245, .3) !important;
  outline-offset: 2px;
}

/* Surfaces */
.card,
.modal-content,
.dropdown-menu,
.yffl-panel,
.yffl-section,
.yffl-division,
.yffl-week-card,
.admin-content .card,
.admin-content .panel,
body [class*="yffl-"] [class$="-panel"],
body [class*="yffl-"] [class$="-card"],
body [class*="admin-"] [class$="-panel"],
body [class*="admin-"] [class$="-card"] {
  background: var(--yffl-surface);
  border: 1px solid var(--yffl-border) !important;
  border-radius: var(--yffl-radius-lg) !important;
  box-shadow: var(--yffl-shadow) !important;
}

.card-header,
.yffl-panel-head,
.yffl-section-header,
.yffl-division-header,
.yffl-week-header,
.admin-content .card-header,
body [class$="-panel-head"],
body [class$="-panel-header"] {
  align-items: center;
  background: linear-gradient(180deg, #fff, var(--yffl-surface-muted)) !important;
  border-bottom: 1px solid var(--yffl-border) !important;
  color: var(--yffl-heading) !important;
  font-family: var(--yffl-font) !important;
  font-size: .8125rem;
  font-weight: 900 !important;
  letter-spacing: .01em;
  min-height: 54px;
  padding: 14px 18px;
}

.modal-header {
  align-items: center;
  background: linear-gradient(135deg, var(--yffl-navy-strong), var(--yffl-navy-soft)) !important;
  border-bottom: 0 !important;
  color: #fff !important;
  min-height: 58px;
  padding: 16px 20px;
}

.modal-header .modal-title {
  color: #fff !important;
}

.modal-header .close {
  color: #fff;
  opacity: .82;
  text-shadow: none;
}

.card-body,
.modal-body {
  padding: 18px;
}

/* A rounded silhouette belongs to the outer surface only. Inner cards,
   tables, headers, and repeated items stay square and share dividers. */
.card .card,
.card [class$="-card"],
.card [class$="-panel"],
.card .table-responsive,
.card .yffl-table-wrap,
[class$="-panel"] [class$="-card"],
[class$="-panel"] [class$="-panel"],
[class$="-panel"] .table-responsive,
[class$="-panel"] .yffl-table-wrap,
[class$="-bar"] [class$="-card"],
[class$="-bar"] .table-responsive,
[class$="-bar"] .yffl-table-wrap {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.yffl-home .yh-scorebar .yh-score-card {
  border: 0 !important;
  border-radius: 0 !important;
  border-right: 1px solid #edf0f4 !important;
  box-shadow: none !important;
}

.yffl-home .yh-scorebar .yh-score-card:last-child {
  border-right: 0 !important;
}

.card > .table-responsive,
.card > .yffl-table-wrap,
[class$="-panel"] > .table-responsive,
[class$="-panel"] > .yffl-table-wrap {
  border-left: 0 !important;
  border-right: 0 !important;
}

/* Page introductions */
.yffl-page-header,
.yffl-hero,
.admin-page-intro,
.dashboard-hero,
.story-hero,
body [class*="yffl-"] [class$="-hero"] {
  background: linear-gradient(135deg, var(--yffl-navy-strong), var(--yffl-navy-soft)) !important;
  border: 0 !important;
  border-radius: var(--yffl-radius-hero) !important;
  box-shadow: var(--yffl-shadow-lg) !important;
  color: #fff !important;
}

.yffl-page-header h1,
.yffl-hero h1,
.admin-page-intro h1,
.dashboard-hero h1,
.story-hero h1,
body [class*="yffl-"] [class$="-hero"] h1 {
  color: #fff !important;
}

.yffl-page-header p,
.yffl-hero p,
.admin-page-intro p,
.dashboard-hero p,
.story-hero p,
body [class*="yffl-"] [class$="-hero"] p {
  color: #d3def0 !important;
}

/* Buttons and action links */
.btn,
button[class*="btn"],
button[class$="-button"],
a[class*="btn"],
a[class$="-button"] {
  align-items: center;
  border-radius: 10px !important;
  display: inline-flex;
  font-family: var(--yffl-font) !important;
  font-size: .75rem;
  font-weight: 900 !important;
  gap: .4rem;
  justify-content: center;
  letter-spacing: .025em;
  min-height: 40px;
  padding: .55rem .9rem;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease, transform .15s ease;
}

.btn:hover,
button[class*="btn"]:hover,
a[class*="btn"]:hover {
  transform: translateY(-1px);
}

.btn-primary,
.btn-info,
body [class*="yffl-"] [class$="-apply"],
body [class*="yffl-"] [class$="-save"] {
  background: var(--yffl-blue) !important;
  border-color: var(--yffl-blue) !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(39, 93, 245, .2);
}

.btn-primary:hover,
.btn-info:hover {
  background: var(--yffl-blue-dark) !important;
  border-color: var(--yffl-blue-dark) !important;
}

.btn-secondary,
.btn-light {
  background: #eef2f7 !important;
  border-color: #d8e0ea !important;
  color: #44536a !important;
}

.btn-danger {
  background: var(--yffl-danger) !important;
  border-color: var(--yffl-danger) !important;
}

.btn-outline-primary {
  border-color: #9eb6f7 !important;
  color: var(--yffl-blue) !important;
}

.btn-sm {
  border-radius: var(--yffl-radius-sm) !important;
  font-size: .6875rem;
  min-height: 34px;
  padding: .38rem .65rem;
}

/* Forms */
label,
.form-label {
  color: #526078 !important;
  font-family: var(--yffl-font) !important;
  font-size: .6875rem !important;
  font-weight: 900 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.form-control,
.custom-select,
select.form-control,
textarea.form-control,
input[type="text"],
input[type="search"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"] {
  background: #f9fbfd !important;
  border: 1px solid #d2dae6 !important;
  border-radius: 10px !important;
  color: var(--yffl-text) !important;
  font-family: var(--yffl-font) !important;
  font-size: .8125rem !important;
  min-height: 42px;
}

.form-control:focus,
.custom-select:focus,
select.form-control:focus,
textarea.form-control:focus,
input:focus {
  background: #fff !important;
  border-color: var(--yffl-blue) !important;
  box-shadow: var(--yffl-focus) !important;
}

.input-group-text {
  background: #eef2f7;
  border-color: #d2dae6;
  color: #526078;
}

/* Tables and data display */
.table-responsive,
.yffl-table-wrap {
  border-radius: var(--yffl-radius-md);
}

.table,
.yffl-table {
  background: #fff;
  color: var(--yffl-text) !important;
  font-family: var(--yffl-font) !important;
  margin-bottom: 0;
}

.table thead th,
.table .thead-dark th,
.yffl-table th,
.admin-content .table thead th {
  background: var(--yffl-navy) !important;
  border-color: var(--yffl-navy) !important;
  color: #fff !important;
  font-size: .625rem !important;
  font-weight: 900 !important;
  letter-spacing: .065em;
  padding: 11px 10px;
  text-transform: uppercase;
  vertical-align: middle;
  white-space: nowrap;
}

.table td,
.yffl-table td,
.admin-content .table td {
  border-color: #edf0f4 !important;
  color: var(--yffl-text);
  font-size: .75rem !important;
  padding: 11px 10px;
  vertical-align: middle;
}

.table-hover tbody tr:hover,
.table tbody tr:hover td,
.yffl-table tbody tr:hover td {
  background: #f6f9fe !important;
}

/* Small components */
.badge,
body [class$="-badge"],
body [class$="-tag"],
body [class$="-status"],
body [class$="-chip"] {
  border-radius: 999px !important;
  font-family: var(--yffl-font) !important;
  font-size: .625rem !important;
  font-weight: 900 !important;
  letter-spacing: .035em;
  padding: .42em .7em;
}

.alert {
  border: 1px solid transparent !important;
  border-left-width: 4px !important;
  border-radius: var(--yffl-radius-md) !important;
  box-shadow: var(--yffl-shadow-sm);
  font-size: .8125rem;
}

.alert-success { border-left-color: var(--yffl-success) !important; }
.alert-warning { border-left-color: #d99b24 !important; }
.alert-danger { border-left-color: var(--yffl-danger) !important; }
.alert-info { border-left-color: var(--yffl-blue) !important; }

.list-group-item {
  border-color: #e8edf3 !important;
  color: var(--yffl-text);
  font-size: .8125rem;
  padding: 12px 15px;
}

.pagination .page-link {
  border-color: var(--yffl-border);
  color: var(--yffl-blue);
  min-width: 38px;
  text-align: center;
}

.pagination .page-item:first-child .page-link {
  border-radius: 10px 0 0 10px;
}

.pagination .page-item:last-child .page-link {
  border-radius: 0 10px 10px 0;
}

.pagination .active .page-link {
  background: var(--yffl-blue);
  border-color: var(--yffl-blue);
}

.progress {
  background: #e9eef5;
  border-radius: 999px;
  height: 8px;
}

.progress-bar {
  background: var(--yffl-blue);
}

hr {
  border-top-color: var(--yffl-border);
}

/* Keep the administration area on the same brand system. */
body.admin-body,
body.admin-login-body {
  --admin-bg: var(--yffl-canvas);
  --admin-surface: var(--yffl-surface);
  --admin-sidebar: var(--yffl-navy-strong);
  --admin-sidebar-soft: var(--yffl-navy);
  --admin-primary: var(--yffl-blue);
  --admin-primary-soft: var(--yffl-blue-soft);
  --admin-text: var(--yffl-text);
  --admin-muted: var(--yffl-muted);
  --admin-border: var(--yffl-border);
  --admin-shadow: var(--yffl-shadow);
  font-family: var(--yffl-font) !important;
}

.admin-sidebar {
  background: linear-gradient(180deg, var(--yffl-navy-strong), #091327) !important;
}

.brand-mark {
  background: linear-gradient(135deg, var(--yffl-blue), var(--yffl-navy-soft)) !important;
}

@media (max-width: 1199.98px) and (min-width: 768px) {
  .yffl-home .yh-scorebar .yh-score-card:nth-child(4n) {
    border-right: 0 !important;
  }
}

@media (max-width: 767.98px) {
  /* Mobile content hierarchy: keep the title and primary task, remove
     desktop-only context, summary repetition, and decorative artwork. */
  .yffl-page-header p,
  .yffl-hero p,
  .admin-page-intro p,
  .dashboard-hero p,
  .story-hero p,
  body [class*="yffl-"] [class$="-hero"] p,
  body [class$="-hero-icon"],
  body [class$="-hero-meta"],
  .yffl-view-summary {
    display: none !important;
  }

  .yffl-page-header,
  .yffl-hero,
  .admin-page-intro,
  .dashboard-hero,
  .story-hero,
  body [class*="yffl-"] [class$="-hero"] {
    min-height: 0 !important;
    padding: 18px !important;
  }

  .yffl-page-header h1,
  .yffl-hero h1,
  .admin-page-intro h1,
  .dashboard-hero h1,
  .story-hero h1,
  body [class*="yffl-"] [class$="-hero"] h1 {
    font-size: 1.75rem !important;
    margin-bottom: 0 !important;
  }

  .yffl-forum-summary,
  .yffl-draft-summary,
  .yffl-transactions-summary,
  .yffl-awards-summary,
  .yffl-power-summary,
  .yp-summary-grid,
  .yr-summary-grid,
  .ysd-summary-grid,
  .ysc-summary-grid,
  .yt-summary,
  .ytp-summary,
  .yw-summary {
    display: none !important;
  }

  .admin-content [class$="-summary-grid"],
  .admin-content [class$="-stats"],
  .admin-content .story-summary,
  .admin-content .poll-summary-grid,
  .admin-content [class$="-hero"] p {
    display: none !important;
  }

  .yffl-topic-preview,
  .yffl-topic-author {
    display: none !important;
  }

  .yffl-forum-page .yffl-topic-row {
    min-height: 64px;
    padding: 10px 12px !important;
  }

  .yffl-home .yh-quick-grid {
    gap: 8px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .yffl-home .yh-quick {
    gap: 8px !important;
    padding: 11px !important;
  }

  .yffl-home .yh-quick-icon {
    flex-basis: 34px !important;
    height: 34px !important;
    width: 34px !important;
  }

  .yffl-home .yh-quick small {
    display: none !important;
  }

  .yffl-home .yh-scorebar .yh-score-card:nth-child(2n) {
    border-right: 0 !important;
  }

  .yffl-home .yh-scorebar .yh-score-card:nth-child(2n+1) {
    border-right: 1px solid #edf0f4 !important;
  }

  .table td,
  .yffl-table td,
  .admin-content .table td {
    padding: 8px !important;
  }

  .yffl-mobile-limited {
    display: none !important;
  }

  .yffl-mobile-more {
    background: #eef3fb;
    border: 0;
    border-top: 1px solid var(--yffl-border);
    color: var(--yffl-blue);
    cursor: pointer;
    display: block;
    font-size: .6875rem;
    font-weight: 900;
    letter-spacing: .055em;
    min-height: 46px;
    padding: 12px 16px;
    text-align: center;
    text-transform: uppercase;
    width: 100%;
  }

  .yffl-site-footer .yffl-footer-search,
  .yffl-site-footer .yffl-footer-navigation,
  .yffl-site-footer .yffl-footer-brand-copy,
  .yffl-site-footer .yffl-footer-bottom span:not(:first-child) {
    display: none !important;
  }

  .yffl-site-footer .yffl-footer-top {
    justify-content: center !important;
    padding: 8px 16px 18px !important;
  }

  .yffl-site-footer .yffl-footer-bottom {
    justify-content: center !important;
    padding: 12px 16px !important;
  }

  .card,
  .modal-content,
  .yffl-panel,
  .yffl-section,
  body [class*="yffl-"] [class$="-panel"],
  body [class*="yffl-"] [class$="-card"] {
    border-radius: 14px !important;
  }

  .yffl-page-header,
  .yffl-hero,
  .admin-page-intro,
  .dashboard-hero,
  .story-hero,
  body [class*="yffl-"] [class$="-hero"] {
    border-radius: 16px !important;
  }

  .card-body,
  .modal-body {
    padding: 16px;
  }

  .card .card,
  .card [class$="-card"],
  .card [class$="-panel"],
  [class$="-panel"] [class$="-card"],
  [class$="-panel"] [class$="-panel"],
  [class$="-bar"] [class$="-card"] {
    border-radius: 0 !important;
  }

}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
