/* ============================================================
   FO DALKIA NORD OUEST — style.css — Sobre & Neutre
   ============================================================ */

:root {
    --primary:       #1c1c1e;
    --primary-dark:  #111113;
    --primary-light: #3a3a3c;
    --accent:        #c0392b;
    --accent-dark:   #962d22;
    --success:       #27ae60;
    --warning:       #e67e22;
    --danger:        #e74c3c;
    --bg:            #f5f5f7;
    --bg-card:       #ffffff;
    --text:          #1c1c1e;
    --text-muted:    #6e6e73;
    --text-light:    #aeaeb2;
    --border:        #e0e0e5;
    --shadow:        0 1px 8px rgba(0,0,0,.06);
    --shadow-md:     0 4px 20px rgba(0,0,0,.09);
    --shadow-lg:     0 8px 40px rgba(0,0,0,.12);
    --radius:        10px;
    --radius-sm:     7px;
    --radius-lg:     16px;
    --font-body:     'Source Sans 3', system-ui, sans-serif;
    --font-display:  'Raleway', sans-serif;
    --header-h:      64px;
    --sidebar-w:     255px;
    --container:     1180px;
    --container-md:  840px;
    --container-sm:  640px;
}

[data-theme="dark"] {
    --bg:       #1c1c1e;
    --bg-card:  #2c2c2e;
    --text:     #f2f2f7;
    --text-muted: #aeaeb2;
    --text-light: #6e6e73;
    --border:   #3a3a3c;
    --shadow:   0 1px 8px rgba(0,0,0,.3);
    --shadow-md:0 4px 20px rgba(0,0,0,.4);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: var(--font-body); background: var(--bg); color: var(--text); line-height: 1.65; -webkit-font-smoothing: antialiased; transition: background .25s, color .25s; }
a { color: var(--accent); text-decoration: none; transition: opacity .2s; }
a:hover { opacity: .75; }
img { max-width: 100%; display: block; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); font-weight: 700; line-height: 1.25; color: var(--text); }
ul, ol { list-style: none; }

.container    { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 1.5rem; }
.container-md { max-width: var(--container-md); }
.container-sm { max-width: var(--container-sm); }
.grid   { display: grid; gap: 1.25rem; }
.grid-2 { grid-template-columns: repeat(2,1fr); }
.grid-3 { grid-template-columns: repeat(3,1fr); }
.grid-4 { grid-template-columns: repeat(4,1fr); }
.py-5 { padding: 3.5rem 0; } .py-6 { padding: 5rem 0; }
.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}
.mb-3{margin-bottom:1rem}.gap-2{gap:.5rem}
.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-small{font-size:.85rem}
.w-100{width:100%}.d-flex{display:flex}.align-center{align-items:center}
.justify-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}

/* ================================================================
   HERO — sobre, sombre neutre
   ================================================================ */
.hero { background: linear-gradient(160deg, #111113 0%, #1c1c1e 60%, #2c2c2e 100%); padding: 5rem 0 4rem; text-align: center; position: relative; overflow: hidden; }
.hero::before { content:''; position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, rgba(192,57,43,.12) 0%, transparent 65%); pointer-events:none; }
.hero-content { position: relative; z-index: 1; }
.hero-badge { display:inline-flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.7); padding:.3rem .9rem; border-radius:100px; font-size:.75rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; margin-bottom:1.5rem; }
.hero h1 { font-family:var(--font-display); font-size:clamp(1.9rem,5vw,3rem); font-weight:900; color:#fff; margin-bottom:1rem; line-height:1.1; }
.hero-subtitle { font-size:1rem; color:rgba(255,255,255,.55); max-width:520px; margin:0 auto 2rem; }
.hero-buttons { display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; }
.btn-hero-outline { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.85); }
.btn-hero-outline:hover { background:rgba(255,255,255,.13); color:#fff; opacity:1; }
.hero-stats { background: #111113; padding:1.1rem 0; border-top: 1px solid rgba(255,255,255,.06); }
.hero-stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; text-align:center; }
.hero-stat-val   { font-size:1.8rem; font-weight:800; color:#fff; font-family:var(--font-display); line-height:1; }
.hero-stat-label { font-size:.68rem; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:.07em; margin-top:.3rem; white-space:nowrap; }

/* ================================================================
   PAGE HEADER
   ================================================================ */
.page-header { background: linear-gradient(135deg, #111113, #1c1c1e); padding:2.5rem 0; color:#fff; border-bottom:1px solid rgba(255,255,255,.06); }
.page-header h1 { font-size:1.8rem; color:#fff; margin-bottom:.35rem; }
.page-header p  { color:rgba(255,255,255,.5); font-size:.9rem; }
.breadcrumb { display:flex; align-items:center; gap:.5rem; font-size:.78rem; color:rgba(255,255,255,.4); margin-bottom:.6rem; }
.breadcrumb a { color:rgba(255,255,255,.55); }
.breadcrumb a:hover { color:#fff; opacity:1; }
.breadcrumb span { color:rgba(255,255,255,.75); }

/* ================================================================
   BUTTONS
   ================================================================ */
.btn { display:inline-flex; align-items:center; gap:.4rem; padding:.5rem 1.2rem; border-radius:var(--radius-sm); font-family:var(--font-body); font-size:.88rem; font-weight:600; cursor:pointer; border:1px solid transparent; transition:all .2s; text-decoration:none; white-space:nowrap; }
.btn-primary { background:var(--primary); color:#fff; }
.btn-primary:hover { background:var(--primary-light); color:#fff; opacity:1; }
.btn-accent  { background:var(--accent); color:#fff; }
.btn-accent:hover  { background:var(--accent-dark); color:#fff; opacity:1; }
.btn-outline { background:transparent; border-color:var(--border); color:var(--text); }
.btn-outline:hover { background:var(--bg-card); opacity:1; }
.btn-ghost   { background:transparent; color:var(--text-muted); }
.btn-ghost:hover   { background:var(--border); color:var(--text); opacity:1; }
.btn-danger  { background:var(--danger); color:#fff; border-color:var(--danger); }
.btn-danger:hover  { background:#c0392b; color:#fff; opacity:1; }
.btn-success { background:var(--success); color:#fff; }
.btn-lg { padding:.7rem 1.6rem; font-size:.97rem; }
.btn-sm { padding:.28rem .7rem; font-size:.78rem; }

/* ================================================================
   CARDS
   ================================================================ */
.card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; transition:box-shadow .2s; }
.card:hover { box-shadow:var(--shadow-md); }
.card-header { padding:.9rem 1.4rem; border-bottom:1px solid var(--border); font-weight:700; font-size:.75rem; color:var(--text-muted); display:flex; align-items:center; justify-content:space-between; font-family:var(--font-display); text-transform:uppercase; letter-spacing:.06em; }
.card-body { padding:1.4rem; }

.section-header { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:2rem; gap:1rem; flex-wrap:wrap; }
.section-title { font-size:1.6rem; position:relative; padding-bottom:.55rem; }
.section-title::after { content:''; position:absolute; bottom:0; left:0; width:40px; height:2px; background:var(--accent); border-radius:2px; }

/* ================================================================
   COMPOSANTS PAGE
   ================================================================ */
.elu-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:1.75rem 1rem 1.4rem; text-align:center; box-shadow:var(--shadow); transition:transform .2s, box-shadow .2s; }
.elu-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }
.elu-avatar { width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,#2c2c2e,#3a3a3c); margin:0 auto .9rem; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.2rem; font-weight:800; color:#fff; overflow:hidden; border:2px solid var(--border); }
.elu-avatar img { width:100%; height:100%; object-fit:cover; }
.elu-name { font-family:var(--font-display); font-weight:700; font-size:.92rem; }
.elu-role { font-size:.75rem; color:var(--text-muted); display:flex; align-items:center; gap:.3rem; justify-content:center; margin-top:.3rem; }

.doc-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:1.1rem 1.4rem; display:flex; align-items:center; gap:1.1rem; box-shadow:var(--shadow); transition:box-shadow .2s; }
.doc-card:hover { box-shadow:var(--shadow-md); }
.doc-icon { width:44px; height:44px; border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.doc-icon.pdf { background:rgba(192,57,43,.1); color:var(--accent); }
.doc-info { flex:1; min-width:0; }
.doc-title { font-weight:700; font-size:.92rem; margin-bottom:.15rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.doc-desc  { font-size:.8rem; color:var(--text-muted); margin-bottom:.3rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.doc-meta  { display:flex; align-items:center; gap:.65rem; font-size:.75rem; color:var(--text-muted); flex-wrap:wrap; }
.doc-pdf-label { background:rgba(192,57,43,.1); color:var(--accent); padding:.1rem .4rem; border-radius:4px; font-weight:700; font-size:.65rem; }

.link-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:1.1rem; display:flex; align-items:flex-start; gap:.9rem; box-shadow:var(--shadow); transition:all .2s; color:var(--text); text-decoration:none; }
.link-card:hover { box-shadow:var(--shadow-md); border-color:var(--text-light); opacity:1; }
.link-icon { width:40px; height:40px; border-radius:9px; background:var(--bg); color:var(--text-muted); display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; }
.link-title { font-weight:700; font-size:.88rem; margin-bottom:.15rem; }
.link-desc  { font-size:.78rem; color:var(--text-muted); line-height:1.45; }

.faq-item { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:.5rem; overflow:hidden; }
.faq-question { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.4rem; width:100%; background:none; border:none; cursor:pointer; text-align:left; font-family:var(--font-body); font-size:.92rem; font-weight:600; color:var(--text); gap:1rem; transition:background .2s; }
.faq-question:hover { background:var(--bg); }
.faq-question.open { color:var(--accent); }
.faq-icon svg { transition:transform .3s; flex-shrink:0; opacity:.5; }
.faq-question.open .faq-icon svg { transform:rotate(180deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s ease, padding .3s; font-size:.9rem; color:var(--text-muted); line-height:1.75; padding:0 1.4rem; }
.faq-answer.open { max-height:600px; padding:0 1.4rem 1.1rem; }

/* ================================================================
   AUTH
   ================================================================ */
.auth-page { min-height:calc(100vh - var(--header-h)); display:flex; align-items:center; justify-content:center; padding:3rem 1.5rem; background:linear-gradient(135deg,#111113,#1c1c1e); }
.auth-card { background:var(--bg-card); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.auth-card-header { background:linear-gradient(135deg,#111113,#1c1c1e); padding:2rem; text-align:center; }
.auth-card-header h2 { color:#fff; font-size:1.4rem; margin-bottom:.3rem; }
.auth-card-header p  { color:rgba(255,255,255,.45); font-size:.83rem; }
.auth-card-body { padding:2rem; }
.auth-divider { text-align:center; color:var(--text-muted); font-size:.82rem; position:relative; }
.auth-divider::before,.auth-divider::after { content:''; position:absolute; top:50%; width:40%; height:1px; background:var(--border); }
.auth-divider::before{left:0}.auth-divider::after{right:0}

/* ================================================================
   FORMS
   ================================================================ */
.form-group { margin-bottom:1rem; }
.form-label { display:block; font-size:.83rem; font-weight:600; color:var(--text); margin-bottom:.35rem; }
.form-label .req { color:var(--accent); }
.form-control { display:block; width:100%; padding:.55rem .85rem; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-sm); font-family:var(--font-body); font-size:.88rem; color:var(--text); transition:border-color .2s, box-shadow .2s; }
.form-control:focus { outline:none; border-color:var(--text-muted); box-shadow:0 0 0 3px rgba(0,0,0,.06); }
textarea.form-control { resize:vertical; min-height:90px; }
select.form-control { cursor:pointer; }
.form-check { display:flex; align-items:center; gap:.5rem; font-size:.86rem; cursor:pointer; }
.form-check input { accent-color:var(--primary); width:15px; height:15px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* ================================================================
   ALERTS / BADGES / TABLES
   ================================================================ */
.alert { display:flex; align-items:flex-start; gap:.7rem; padding:.85rem 1rem; border-radius:var(--radius-sm); font-size:.86rem; border:1px solid transparent; }
.alert-success { background:rgba(39,174,96,.08); color:#166534; border-color:rgba(39,174,96,.2); }
.alert-error   { background:rgba(231,76,60,.08); color:#991b1b; border-color:rgba(231,76,60,.2); }
.alert-info    { background:rgba(0,0,0,.04); color:var(--text-muted); border-color:var(--border); }
[data-theme="dark"] .alert-success { color:#86efac; }
[data-theme="dark"] .alert-error   { color:#fca5a5; }
[data-theme="dark"] .alert-info    { color:#d1d5db; }

.badge { display:inline-flex; align-items:center; gap:.2rem; padding:.18rem .55rem; border-radius:100px; font-size:.7rem; font-weight:700; letter-spacing:.02em; }
.badge-primary { background:rgba(28,28,30,.08); color:var(--primary); }
.badge-success { background:rgba(39,174,96,.1); color:var(--success); }
.badge-warning { background:rgba(230,126,34,.1); color:var(--warning); }
.badge-danger  { background:rgba(231,76,60,.1); color:var(--danger); }
.badge-gray    { background:var(--border); color:var(--text-muted); }
[data-theme="dark"] .badge-primary { background:rgba(255,255,255,.1); color:#f2f2f7; }

.table-responsive { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:.86rem; }
thead th { padding:.8rem 1.2rem; text-align:left; font-size:.72rem; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em; border-bottom:2px solid var(--border); background:var(--bg); white-space:nowrap; }
tbody td { padding:.85rem 1.2rem; border-bottom:1px solid var(--border); vertical-align:middle; }
tbody tr:hover { background:rgba(0,0,0,.02); }
tbody tr:last-child td { border-bottom:none; }
[data-theme="dark"] tbody tr:hover { background:rgba(255,255,255,.03); }

/* ================================================================
   ADMIN LAYOUT
   ================================================================ */
.admin-wrapper { display:flex; min-height:100vh; }
.admin-sidebar { width:var(--sidebar-w); min-height:100vh; background:#111113; flex-shrink:0; display:flex; flex-direction:column; position:sticky; top:0; overflow-y:auto; }
.admin-sidebar-header { padding:1.1rem 1rem; border-bottom:1px solid rgba(255,255,255,.06); }
.admin-nav { padding:.9rem .65rem; flex:1; display:flex; flex-direction:column; }
.admin-nav-section { font-size:.6rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.28); padding:.7rem .5rem .3rem; }
.admin-nav a { display:flex; align-items:center; gap:.55rem; padding:.5rem .7rem; border-radius:7px; font-size:.82rem; font-weight:500; color:rgba(255,255,255,.6); text-decoration:none; transition:all .2s; margin-bottom:.1rem; }
.admin-nav a:hover { background:rgba(255,255,255,.07); color:rgba(255,255,255,.9); opacity:1; }
.admin-nav a.active { background:rgba(255,255,255,.1); color:#fff; }
.admin-nav a svg { flex-shrink:0; opacity:.6; }
.admin-main { flex:1; padding:2rem; min-width:0; background:var(--bg); }
.admin-topbar { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:1.75rem; flex-wrap:wrap; gap:1rem; }
.admin-topbar h1 { font-size:1.5rem; margin-bottom:0; }
.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; margin-bottom:1.75rem; }
.stat-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:1.3rem; display:flex; align-items:center; gap:.9rem; box-shadow:var(--shadow); }
.stat-icon { width:46px; height:46px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.stat-icon.blue   { background:rgba(28,28,30,.07); color:var(--primary); }
.stat-icon.red    { background:rgba(192,57,43,.1);  color:var(--accent); }
.stat-icon.green  { background:rgba(39,174,96,.1);  color:var(--success); }
.stat-icon.orange { background:rgba(230,126,34,.1); color:var(--warning); }
.stat-val   { font-family:var(--font-display); font-size:1.9rem; font-weight:800; line-height:1; }
.stat-label { font-size:.72rem; color:var(--text-muted); margin-top:.2rem; text-transform:uppercase; letter-spacing:.05em; }

/* ================================================================
   MODALS
   ================================================================ */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1000; align-items:center; justify-content:center; padding:1.5rem; backdrop-filter:blur(4px); }
.modal-overlay.open { display:flex; animation:fadeInOverlay .2s ease; }
@keyframes fadeInOverlay { from{opacity:0} to{opacity:1} }
.modal { background:var(--bg-card); border-radius:var(--radius-lg); width:100%; max-width:540px; max-height:90vh; overflow-y:auto; box-shadow:var(--shadow-lg); animation:slideUp .22s ease; }
@keyframes slideUp { from{transform:translateY(16px);opacity:0} to{transform:none;opacity:1} }
.modal-header { display:flex; align-items:center; justify-content:space-between; padding:1.1rem 1.4rem; border-bottom:1px solid var(--border); }
.modal-header h3 { font-size:1rem; }
.modal-close { background:none; border:none; font-size:1.4rem; cursor:pointer; color:var(--text-muted); line-height:1; padding:.2rem .4rem; border-radius:5px; transition:background .2s; }
.modal-close:hover { background:var(--border); }
.modal-body { padding:1.4rem; }
.modal-footer { padding:.9rem 1.4rem; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:.65rem; }

/* ================================================================
   FOOTER
   ================================================================ */
.site-footer { background:#111113; color:rgba(255,255,255,.5); padding:3rem 0 0; margin-top:4rem; font-size:.86rem; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.06); }
.footer-brand p { color:rgba(255,255,255,.35); font-size:.82rem; line-height:1.65; }
.footer-col h4 { font-family:var(--font-display); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.28); margin-bottom:.85rem; }
.footer-col ul li { margin-bottom:.4rem; }
.footer-col a { color:rgba(255,255,255,.45); font-size:.83rem; transition:color .18s; }
.footer-col a:hover { color:#fff; opacity:1; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; padding:1rem 0; font-size:.73rem; color:rgba(255,255,255,.22); flex-wrap:wrap; gap:.5rem; }
.footer-bottom a { color:rgba(255,255,255,.32); }
.footer-bottom a:hover { color:rgba(255,255,255,.7); opacity:1; }

/* ================================================================
   DIVERS
   ================================================================ */
.cookie-banner { position:fixed; bottom:1.25rem; left:1.25rem; right:1.25rem; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:1rem 1.4rem; display:flex; align-items:center; justify-content:space-between; gap:1.25rem; box-shadow:var(--shadow-lg); z-index:500; flex-wrap:wrap; max-width:680px; margin:0 auto; }
.cookie-banner p { font-size:.83rem; margin:0; }
.cookie-actions { display:flex; gap:.45rem; flex-shrink:0; }
hr.divider { border:none; border-top:1px solid var(--border); margin:1.5rem 0; }
.prose p { margin-bottom:1rem; }
.prose strong { font-weight:700; }
.prose ul { margin-left:1.5rem; margin-bottom:1rem; list-style:disc; }
.prose ul li { margin-bottom:.4rem; line-height:1.7; }
.flash-message { animation:fadeInSlide .3s ease; }
@keyframes fadeInSlide { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:none} }
.fade-in { animation:fadeIn .35s ease; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}
.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}

/* ================================================================
   RESPONSIVE DESKTOP → TABLET
   ================================================================ */
@media (max-width: 1100px) {
    .admin-stats { grid-template-columns:repeat(2,1fr); }
    .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 900px) {
    .grid-4,.grid-3 { grid-template-columns:repeat(2,1fr); }
}

/* ================================================================
   RESPONSIVE MOBILE
   ================================================================ */
@media (max-width: 768px) {
    .admin-sidebar { display:none; }
    .admin-main    { padding:1rem; }
    .admin-stats   { grid-template-columns:repeat(2,1fr); gap:.65rem; }
    .footer-grid   { grid-template-columns:1fr; gap:1.5rem; }
    .footer-col    { border-top:1px solid rgba(255,255,255,.06); padding-top:1.1rem; }
    .footer-bottom { flex-direction:column; text-align:center; gap:.4rem; padding:.9rem 0; }
    .form-row      { grid-template-columns:1fr; }
    .grid-3,.grid-2 { grid-template-columns:1fr; }
    .hero          { padding:2.75rem 0 2.25rem; }
    .hero h1       { font-size:clamp(1.5rem,7vw,2.2rem); }
    .hero-subtitle { font-size:.92rem; }
    .page-header   { padding:1.5rem 0; }
    .page-header h1 { font-size:1.4rem; }
    .hero-buttons  { flex-direction:column; align-items:center; gap:.5rem; }
    .hero-buttons .btn { width:min(270px,90%); justify-content:center; }
    .hero-stats-grid { gap:.4rem; }
    .hero-stat-val   { font-size:1.4rem; }
    .hero-stat-label { font-size:.62rem; }
}

@media (max-width: 480px) {
    .brand-logo    { width:30px; height:30px; font-size:.85rem; }
    .admin-stats   { gap:.4rem; }
    .stat-card     { padding:.9rem; gap:.5rem; }
    .stat-val      { font-size:1.4rem; }
    .grid-4        { grid-template-columns:1fr 1fr; }
    .doc-card      { flex-direction:column; align-items:flex-start; gap:.5rem; }
    .modal         { border-radius:var(--radius); max-height:95vh; }
    .modal-body    { padding:1rem; }
    .cookie-banner { bottom:0; left:0; right:0; border-radius:var(--radius) var(--radius) 0 0; flex-direction:column; gap:.65rem; padding:.9rem; }
    .cookie-actions { width:100%; }
    .cookie-actions .btn { flex:1; justify-content:center; }
    .hero h1 { font-size:1.4rem; }
}
