/**
 * css/styles.css
 * ──────────────
 * Base styles: CSS variables, reset, typography, shared utility classes
 * (buttons, fields, badges, glass-card, grids, animations, hero, chips, modals).
 * This file contains only styles that are used across multiple pages.
 */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Mono:wght@400;500&family=Rajdhani:wght@300;400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0a0c0b;--bg2:#0f1210;--bg3:#141917;
  --glass:rgba(255,255,255,0.04);--glass2:rgba(255,255,255,0.07);
  --border:rgba(255,255,255,0.08);
  --green:#1db954;--green2:#0f7a37;--green3:#27ae60;--green-dim:#0d4a22;
  --red:#e53935;--grey:#8a9a8e;--grey2:#c8d4ca;--white:#f0f5f1;
  --graphite:#1c2320;--shadow:0 8px 40px rgba(0,0,0,0.6);
  --nav-height:68px;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--white);font-family:'DM Sans',sans-serif;overflow-x:hidden}
h1,h2,h3,.bebas{font-family:'Bebas Neue',sans-serif;letter-spacing:0.03em}
h4,h5,.rajdhani{font-family:'Rajdhani',sans-serif}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--green2);border-radius:2px}

.glass-card{background:var(--glass);border:1px solid var(--border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;transition:all 0.35s ease}
.glass-card:hover{background:var(--glass2);border-color:rgba(29,185,84,0.25);transform:translateY(-3px);box-shadow:0 20px 60px rgba(0,0,0,0.5),0 0 30px rgba(29,185,84,0.08)}
.glass-card .glass-card:hover{transform:none;box-shadow:none}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:8px;font-family:'Rajdhani',sans-serif;font-weight:600;font-size:15px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;border:none;transition:all 0.25s ease;text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--green);color:#000}
.btn-primary:hover{background:#22d45e;box-shadow:0 0 30px rgba(29,185,84,0.4);transform:translateY(-2px)}
.btn-outline{background:transparent;border:1px solid var(--green);color:var(--green)}
.btn-outline:hover{background:rgba(29,185,84,0.12);box-shadow:0 0 20px rgba(29,185,84,0.2)}
.btn-ghost{background:rgba(255,255,255,0.06);color:var(--white);border:1px solid var(--border)}
.btn-ghost:hover{background:rgba(255,255,255,0.12)}
.btn-red{background:var(--red);color:#fff;border:none}
.btn-red:hover{background:#ef5350}
.btn-sm{padding:8px 18px;font-size:13px}

/* ── Form fields ── */
.field{width:100%;padding:12px 16px;background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:8px;color:var(--white);font-family:'DM Sans',sans-serif;font-size:14px;outline:none;transition:border 0.2s}
.field:focus{border-color:var(--green)}
.field option{background:#1c2320}
label.lbl{display:block;font-family:'Rajdhani',sans-serif;font-weight:600;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;color:var(--grey);margin-bottom:6px}

/* ── Badges ── */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:11px;letter-spacing:0.1em;text-transform:uppercase}
.badge-green{background:rgba(29,185,84,0.15);color:var(--green);border:1px solid rgba(29,185,84,0.3)}
.badge-yellow{background:rgba(255,193,7,0.15);color:#ffc107;border:1px solid rgba(255,193,7,0.3)}
.badge-red{background:rgba(229,57,53,0.15);color:var(--red);border:1px solid rgba(229,57,53,0.3)}
.badge-grey{background:rgba(138,154,142,0.15);color:var(--grey2);border:1px solid rgba(138,154,142,0.3)}
.badge-blue{background:rgba(33,150,243,0.15);color:#42a5f5;border:1px solid rgba(33,150,243,0.3)}

/* ── Tags ── */
.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}
.tag-green{background:rgba(29,185,84,0.12);color:var(--green);border:1px solid rgba(29,185,84,0.2)}
.tag-blue{background:rgba(33,150,243,0.12);color:#42a5f5;border:1px solid rgba(33,150,243,0.2)}

/* ── Layout ── */
.section{padding:96px 0}
.container{max-width:1280px;margin:0 auto;padding:0 32px}
.section-label{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.section-title{font-size:clamp(36px,5vw,72px);line-height:1;color:var(--white)}
.section-sub{font-size:17px;line-height:1.7;color:var(--grey);max-width:620px;margin-top:16px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}

/* ── Animation ── */
.page-enter{animation:fadeUp 0.45s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ── Hero ── */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center top}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(10,12,11,0.92) 0%,rgba(10,12,11,0.7) 50%,rgba(10,12,11,0.4) 100%)}
.hero-content{position:relative;z-index:2;padding-top:68px}
.glow{text-shadow:0 0 40px rgba(29,185,84,0.4)}

/* ── Chips & Notices ── */
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:6px 14px;border-radius:20px;background:rgba(29,185,84,0.08);border:1px solid rgba(29,185,84,0.2);font-size:13px;color:var(--green);font-family:'Rajdhani',sans-serif;font-weight:600}
.notice{padding:20px 24px;border-radius:12px;background:rgba(255,193,7,0.08);border:1px solid rgba(255,193,7,0.2);color:#ffd54f;font-size:14px;line-height:1.6}
.notice a,.notice span[data-page]{color:var(--green);cursor:pointer;text-decoration:underline}

/* ── Modal ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(6px)}
.modal-box{background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:40px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto}

/* ── Stat strip (home page) ── */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.stat-item{background:var(--bg2);padding:28px 32px;text-align:center}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:52px;color:var(--green);line-height:1}
.stat-lbl{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:12px;letter-spacing:0.15em;text-transform:uppercase;color:var(--grey);margin-top:4px}

/* ── Upload area ── */
.upload-area{padding:32px;border:2px dashed var(--border);border-radius:12px;text-align:center;color:var(--grey);font-size:14px;cursor:pointer;transition:border-color 0.2s}
.upload-area:hover{border-color:var(--green);color:var(--grey2)}

/* ── User pill ── */
.user-pill{display:flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(255,255,255,0.04);border-radius:20px;border:1px solid var(--border)}

/* ── Missing utilities ── */
.divider{height:1px;background:var(--border);margin:32px 0}
.role-select{background:var(--graphite);border:1px solid var(--border);color:var(--white);border-radius:6px;padding:4px 8px;font-size:12px;font-family:'Rajdhani',sans-serif;cursor:pointer}
