:root {
  --navy: #101d3d;
  --navy-soft: #17284f;
  --red: #e53935;
  --red-dark: #b91c1c;
  --ink: #172033;
  --muted: #718096;
  --surface: #ffffff;
  --page: #f4f7fb;
  --line: #e5eaf2;
  --green: #11966c;
}

html { font-size: 14px; position: relative; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }

body {
  margin: 0;
  padding: 0;
  background: var(--page);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.top-strip { background: #0a142e; color: #b9c6df; font-size: .75rem; padding: .4rem 0; letter-spacing: .02em; }
.main-navbar { background: var(--navy); padding: .8rem 0; box-shadow: 0 3px 12px rgba(16, 29, 61, .12); }
.brand-lockup { align-items: center; color: #fff !important; display: flex; font-size: 1.45rem; font-weight: 800; gap: .55rem; letter-spacing: -.04em; }
.brand-mark { align-items: center; background: var(--gold); border-radius: .7rem; color: var(--navy); display: inline-flex; font-size: 1.25rem; height: 2.25rem; justify-content: center; width: 2.25rem; }
.brand-accent { color: var(--red); }
.nav-links .nav-link, .main-navbar .nav-link { color: #dce5f7; font-size: .88rem; font-weight: 600; padding-left: .65rem; padding-right: .65rem; }
.main-navbar .nav-link:hover, .main-navbar .nav-link:focus { color: var(--red) !important; }
.discover-menu, .account-menu .dropdown-menu { border: 0; border-radius: .65rem; box-shadow: 0 .8rem 2rem rgba(10, 20, 46, .16); margin-top: .65rem; padding: .45rem; }
.discover-menu .dropdown-item, .account-menu .dropdown-item { border-radius: .4rem; color: var(--ink); font-size: .86rem; padding: .55rem .7rem; }
.discover-menu .dropdown-item:hover, .account-menu .dropdown-item:hover { background: #fce9e9; color: var(--red) !important; }
.nav-cta .nav-link, .register-link { background: var(--red); border-radius: .45rem; color: #fff !important; margin-left: .5rem; padding-left: .9rem !important; padding-right: .9rem !important; }
.user-greeting { color: #aebbd4 !important; }
.header-search { display: flex; flex: 1; max-width: 34rem; position: relative; }
.header-search .form-control { border: 0; border-radius: .45rem 0 0 .45rem; min-height: 2.55rem; padding-right: 2.7rem; }
.header-search button { background: var(--red); border: 0; border-radius: 0 .45rem .45rem 0; color: #fff; font-size: 1.4rem; width: 3rem; }

.page-container { min-height: calc(100vh - 190px); padding-bottom: 3rem; padding-top: 2rem; }
.site-footer { background: var(--navy); color: #9eacc7; font-size: .85rem; padding: 1.3rem 0; }
.site-footer .container { text-align: center; }
.eyebrow { color: var(--red-dark); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .13em; margin-bottom: .8rem; }

.hero-panel { background: linear-gradient(115deg, var(--navy), #1d3870); border-radius: 1.25rem; color: #fff; margin-bottom: 2.5rem; overflow: hidden; padding: clamp(2rem, 5vw, 4.5rem); position: relative; }
.hero-panel::after { background: radial-gradient(circle, rgba(255, 200, 61, .22), transparent 65%); content: ""; height: 30rem; position: absolute; right: -7rem; top: -9rem; width: 30rem; }
.hero-panel h1 { font-size: clamp(2.25rem, 5vw, 4.2rem); font-weight: 800; letter-spacing: -.055em; line-height: .98; margin: 0; position: relative; z-index: 1; }
.hero-panel h1 span { color: var(--red); }
.hero-copy { color: #c4d0e7; font-size: 1.08rem; line-height: 1.65; margin: 1.3rem 0 0; max-width: 35rem; position: relative; z-index: 1; }
.hero-panel .btn { position: relative; z-index: 1; }
.hero-panel .btn-primary { background: var(--red); border-color: var(--red); color: #fff; font-weight: 700; }
.hero-panel .btn-outline-light { border-color: #aebddb; color: #fff; }
.hero-stat-card { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 1rem; margin-left: auto; max-width: 17rem; padding: 1.5rem; position: relative; z-index: 1; }
.hero-stat-icon { align-items: center; background: var(--red); border-radius: 50%; color: #fff; display: flex; font-size: 1.4rem; font-weight: 800; height: 3.2rem; justify-content: center; margin-bottom: 1.5rem; width: 3.2rem; }
.hero-stat-card strong, .hero-stat-card span, .hero-stat-card small { display: block; }
.hero-stat-card span { color: #c4d0e7; font-size: .85rem; margin-top: .3rem; }
.hero-stat-card small { color: #c4d0e7; margin-top: 1rem; }
.hero-stat-line { background: rgba(255,255,255,.2); border-radius: 1rem; height: .35rem; margin-top: 1.3rem; }
.hero-stat-line span { background: var(--red); border-radius: inherit; height: 100%; margin: 0; width: 76%; }
.quick-link-card { align-items: flex-start; background: var(--surface); border: 1px solid var(--line); border-radius: .85rem; display: flex; gap: 1rem; height: 100%; padding: 1.3rem; transition: transform .2s, box-shadow .2s; }
.quick-link-card:hover { box-shadow: 0 .7rem 1.5rem rgba(18, 35, 70, .08); transform: translateY(-3px); }
.quick-link-card h2 { font-size: 1rem; font-weight: 750; margin: .1rem 0 .3rem; }
.quick-link-card p { color: var(--muted); font-size: .86rem; margin-bottom: .7rem; }
.quick-link-card a { color: var(--navy); font-size: .85rem; font-weight: 750; text-decoration: none; }
.quick-link-card a span, .deal-link span { color: var(--red-dark); margin-left: .25rem; }
.quick-icon { align-items: center; border-radius: .65rem; display: flex; flex: 0 0 2.7rem; font-size: 1.3rem; height: 2.7rem; justify-content: center; }
.hot-icon { background: #fff1d5; color: #d78c00; }.new-icon { background: #e8f1ff; color: #3775d0; }.share-icon { background: #e4f7ef; color: var(--green); }

.section-heading h1 { font-size: 2rem; font-weight: 800; letter-spacing: -.04em; }
.deal-search { align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: .7rem; display: flex; gap: .6rem; padding: .45rem; }
.search-input-wrap { flex: 1; position: relative; }.search-input-wrap input { border: 0; padding-left: 2.4rem; }.search-input-wrap input:focus { box-shadow: none; }.search-input-wrap > span { color: var(--muted); font-size: 1.4rem; left: .75rem; position: absolute; top: .25rem; }
.deal-search .btn { font-weight: 700; min-height: 2.4rem; }
.deal-card { background: var(--surface); border: 1px solid var(--line); border-radius: .85rem; overflow: hidden; transition: box-shadow .2s, transform .2s; }
.deal-card-link { color: inherit; display: block; height: 100%; text-decoration: none; }
.deal-card-link:focus-visible { border-radius: .85rem; outline: 3px solid rgba(229, 57, 53, .45); outline-offset: 3px; }
.deal-card-link:hover { color: inherit; }
.deal-card:hover { box-shadow: 0 1rem 2rem rgba(18, 35, 70, .1); transform: translateY(-4px); }
.deal-image-wrap { background: #edf2f8; height: 190px; overflow: hidden; position: relative; }.deal-image { height: 100%; object-fit: cover; transition: transform .35s; width: 100%; }.deal-card:hover .deal-image { transform: scale(1.04); }.deal-image-placeholder { align-items: center; color: #c1cad9; display: flex; font-size: 4rem; font-weight: 900; height: 100%; justify-content: center; }.deal-ribbon { background: var(--gold); color: var(--navy); font-size: .65rem; font-weight: 850; left: -.1rem; padding: .4rem .7rem; position: absolute; top: 1rem; }
.deal-card-body { padding: 1.35rem 1.45rem 1.45rem; }
.deal-card-footer { margin-top: 1rem; padding-top: 1rem; }
.community-score-display { color: var(--muted); font-size: 1rem; }.community-score-display strong { color: var(--navy); font-size: 1.25rem; }.voting-panel { align-items: center; display: flex; flex-wrap: wrap; gap: .55rem; }.voting-label { color: var(--muted); flex-basis: 100%; font-size: .85rem; font-weight: 650; }.voting-panel form { margin: 0; }.vote-button { background: transparent; border: 1px solid; border-radius: .5rem; font-size: .82rem; font-weight: 700; padding: .45rem .75rem; transition: background .2s, color .2s, transform .2s; }.vote-up { border-color: var(--green); color: var(--green); }.vote-down { border-color: var(--red); color: var(--red); }.vote-up:hover, .vote-up.is-selected { background: var(--green); color: #fff; }.vote-down:hover, .vote-down.is-selected { background: var(--red); color: #fff; }.vote-button:disabled { cursor: wait; opacity: .6; }.vote-status { color: var(--muted); font-size: .78rem; }
.quality-score strong { color: var(--red-dark); font-size: 1rem; }.community-score { color: var(--muted); font-size: .75rem; }.deal-link { color: var(--navy); font-size: .78rem; font-weight: 750; margin-left: auto; text-decoration: none; white-space: nowrap; }

.coming-soon-panel { background: linear-gradient(125deg, var(--navy), #1d3870); border-radius: 1.25rem; box-shadow: 0 1.5rem 4rem rgba(16, 29, 61, .16); color: #fff; margin: clamp(1rem, 5vw, 4rem) auto; max-width: 56rem; overflow: hidden; padding: clamp(2.5rem, 8vw, 6rem) clamp(1.5rem, 7vw, 5rem); position: relative; }
.coming-soon-panel::before { background: radial-gradient(circle, rgba(229, 57, 53, .28), transparent 68%); content: ""; height: 25rem; left: -12rem; position: absolute; top: -13rem; width: 25rem; }
.coming-soon-panel::after { background: radial-gradient(circle, rgba(255, 200, 61, .2), transparent 68%); bottom: -14rem; content: ""; height: 28rem; position: absolute; right: -11rem; width: 28rem; }
.coming-soon-panel > * { position: relative; z-index: 1; }
.coming-soon-eyebrow { color: #c4d0e7; display: block; font-size: .75rem; font-weight: 800; letter-spacing: .16em; margin: 1.5rem 0 1rem; }
.coming-soon-panel h1 { font-size: clamp(2.6rem, 7vw, 5rem); font-weight: 850; letter-spacing: -.06em; line-height: 1; }
.coming-soon-panel h1 span { color: var(--red); }
.coming-soon-copy { color: #c4d0e7; font-size: clamp(1rem, 2.5vw, 1.2rem); line-height: 1.7; margin: 1.5rem auto 0; max-width: 38rem; }
.coming-soon-status { align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 99rem; color: #e6edf9; display: inline-flex; font-size: .85rem; gap: .65rem; margin-top: 2rem; padding: .65rem 1rem; }
.coming-soon-status-dot { background: #38d39f; border-radius: 50%; box-shadow: 0 0 0 .25rem rgba(56, 211, 159, .15); height: .55rem; width: .55rem; }

.btn-primary { background: var(--navy); border-color: var(--navy); }.btn-primary:hover { background: var(--navy-soft); border-color: var(--navy-soft); }.form-control:focus, .form-select:focus { border-color: #8ba4d4; box-shadow: 0 0 0 .2rem rgba(55, 117, 208, .12); }
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { box-shadow: 0 0 0 .2rem rgba(229, 57, 53, .3); }

@media (max-width: 991.98px) { .header-search { max-width: none; } .nav-links .nav-link { padding-left: 0; } .nav-cta .nav-link, .register-link { display: inline-block; margin: .4rem 0; } }
@media (max-width: 575.98px) { .page-container { padding-top: 1rem; } .hero-panel { border-radius: .85rem; padding: 2rem 1.4rem; } .deal-search { align-items: stretch; flex-direction: column; } .deal-search .btn { width: 100%; } }