/* Maranza Simulator Theme v1 (pixel streetwear vibe) */
/* Colors drawn from the logo: navy #0b2a36, mustard #f1c40f, off-white #f2efe9, red #c0392b */
:root {
  --mz-navy: #0b2a36;
  --mz-mustard: #f1c40f;
  --mz-offwhite: #f2efe9;
  --mz-red: #c0392b;
  --mz-bg: #0f1d24;
  --mz-card: #132730;
  --mz-text: #e8e6e3;
}
html, body {
  background: radial-gradient(1200px 800px at 50% -10%, #172c35 0%, var(--mz-bg) 50%, #0a171d 100%);
  color: var(--mz-text);
}
a { color: var(--mz-mustard); text-decoration: none; }
a:hover { text-decoration: underline; }
.navbar, header {
  background-color: var(--mz-navy) !important;
  border-bottom: 3px solid var(--mz-mustard);
}
.btn-maranza {
  background: linear-gradient(180deg, var(--mz-mustard), #d5ad0c);
  color: #111;
  border: 0;
  box-shadow: 0 6px 0 #6f5a08;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.btn-maranza:active { transform: translateY(1px); box-shadow: 0 5px 0 #6f5a08; }
.card, .panel, .box { background: var(--mz-card); border: 1px solid #25424f; border-radius: 14px; }
.badge-maranza { background: var(--mz-red); }
.logo-maranza { image-rendering: pixelated; }
footer { border-top: 2px solid #1f3a45; color: #b9c6cd; }


/* === Maranza Theme Refinements v1.1 === */
.brand-text { font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase; }
.navbar-brand img { height: 42px; vertical-align: middle; margin-right: 10px; image-rendering: pixelated; }
.navbar .nav-link { color: var(--mz-offwhite) !important; opacity: 0.95; }
.navbar .nav-link:hover { opacity: 1; }
.main-container, .container, .container-fluid { padding-top: 18px; padding-bottom: 18px; }
.form-control, .form-select { background: #0f2530; border: 1px solid #2b4b57; color: var(--mz-offwhite); }
.form-control::placeholder { color: #94a7ae; }
.table { color: var(--mz-offwhite); }
.table thead th { background: #16323d; border-bottom: 2px solid #25424f; }
.table-striped tbody tr:nth-of-type(odd) { background: #10262f; }
.alert { border: 1px solid #355c67; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--mz-mustard); }
.badge { border-radius: 10px; padding: 0.4em 0.6em; }
.login-hero { 
  min-height: 100vh; 
  display: grid; place-items: center; 
  background: radial-gradient(600px 400px at 50% -10%, #213f4a 0%, var(--mz-bg) 60%, #071319 100%);
}
.login-card { max-width: 420px; margin: 0 auto; }
footer a { color: #ffd24a; }
.btn-outline-maranza { border: 1px solid var(--mz-mustard); color: var(--mz-mustard); background: transparent; }
.btn-outline-maranza:hover { background: var(--mz-mustard); color: #111; }
hr { border-color: #24424f; }
pre, code { background: #0e1f26; color: #e6e9eb; }
.favicon-shadow { filter: drop-shadow(0 2px 0 #03171e); }

/* === Footer & Cookie Banner === */
footer { background: var(--mz-card); border-top: 1px solid #25424f; color: #cfe0e7; }
footer a { color: var(--mz-mustard); }
.link-underline { text-decoration: none; border-bottom: 1px dashed rgba(241,196,15,.6); }
.link-underline:hover { border-bottom-style: solid; }
.cookie-banner { position: fixed; left:0; right:0; bottom:0; z-index: 1055; background: rgba(10,23,29,.95); border-top: 2px solid #25424f; padding: 10px 0; }

/* === Accessibility & Contrast Fixes v1.2 === */
/* Force readable text on dark background */
html, body, .text-body { color: var(--mz-text) !important; }
.text-dark, .link-dark, .btn-link { color: var(--mz-offwhite) !important; }
.text-muted { color: #a9bcc3 !important; }

/* Navbar alignment & colors */
.navbar { background-color: var(--mz-navy) !important; border-bottom: 2px solid var(--mz-mustard); }
.navbar .container, .navbar .container-fluid { display:flex; align-items:center; }
.navbar .navbar-brand { display:flex; align-items:center; gap:.5rem; color: var(--mz-offwhite) !important; }
.navbar .nav-link { color: var(--mz-offwhite) !important; opacity: .95; }
.navbar .nav-link:hover { opacity: 1; text-decoration: underline; }
#themeToggle { border-color: #4d6a75; color: #e2e8ea; }
#themeToggle:hover { background: #17313c; }

/* Buttons */
.btn-dark { background:#122a33; color:#e8ecef; border-color:#24424f; }
.btn-dark:hover { background:#16323d; }
.btn-outline-secondary { color:#e2e8ea; border-color:#4d6a75; }
.btn-outline-secondary:hover { background:#4d6a75; color:#111; }
.btn-secondary { background:#2a4752; border-color:#355c67; color:#e8ecef; }
.btn-secondary:hover { background:#2f5360; }

/* Badges */
.badge.bg-secondary, .badge.text-bg-secondary { background:#355c67 !important; color:#eaf2f5 !important; }

/* Forms */
label { color:#d6e2e7; }
.form-control, .form-select { background:#0f2530; border:1px solid #2b4b57; color:#eaf2f5; }
.form-control:focus, .form-select:focus { border-color:#5fa4b8; box-shadow: 0 0 0 .2rem rgba(95,164,184,.25); }
.input-group-text { background:#0f2530; border:1px solid #2b4b57; color:#cfe0e7; }

/* Tables */
.table { color:#e8e6e3; }
.table thead th { background:#16323d; color:#eaf2f5; border-bottom:2px solid #25424f; }
.table tbody tr { border-color:#25424f; }
.table-striped tbody tr:nth-of-type(odd) { background:#10262f; }

/* Cards */
.card, .panel, .box { background: var(--mz-card); border: 1px solid #25424f; }
.card .card-title, .card h5, .card h6 { color:#eaf2f5; }

/* Utilities */
hr { border-color:#24424f; }
a { color: var(--mz-mustard); }
a:hover { text-decoration: underline; }
.small, .text-small { color:#b6c7cd; }

/* === Header & Hero Logo + Login Readability v1.3 === */
.navbar-brand img { height: 52px; }
.logo-hero { height: clamp(80px, 12vw, 150px); image-rendering: pixelated; filter: drop-shadow(0 4px 0 #03171e); }

/* Login page readability */
.login-hero { color: var(--mz-text); }
.login-card { background: var(--mz-card); border: 1px solid #25424f; }
.login-card label { color: #eaf2f5; font-weight: 600; }
.login-card .form-control { background:#0f2530; border:1px solid #2b4b57; color:#eaf2f5; }
.login-card .form-control::placeholder { color:#94a7ae; }
.login-card .btn { padding:.6rem 1rem; }
.login-card a { color: var(--mz-mustard); }
.login-card a:hover { text-decoration: underline; }

/* === A11y Focus & Invalid v1.4 === */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--mz-mustard);
  outline-offset: 2px;
}
.form-control.is-invalid, .was-validated .form-control:invalid {
  border-color: #dc3545; color: #ffecec; background-color: #2a1f22;
}
.form-select.is-invalid, .was-validated .form-select:invalid {
  border-color: #dc3545; color: #ffecec; background-color: #2a1f22;
}
.invalid-feedback { color: #ffb3b3; }
.valid-feedback { color: #b5f5c9; }

/* === Alerts Contrast v1.4 === */
.alert { color:#0b1114; }
.alert-warning { background-color: #fff3cd; border-color: #ffe08a; }
.alert-danger { background-color: #f8d7da; border-color: #f1aeb5; }
.alert-success { background-color: #d1e7dd; border-color: #a3cfbb; }
