/* ============================================================
   KASBAH FILM INVENTORY — ULTRA CHIC REDESIGN (CSS only)
   100% compatible avec le HTML/PHP existant — aucune classe renommée
   Bilingue FR/AR : Cairo (latin) + Noto Kufi Arabic (arabe)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700;800;900&family=Noto+Kufi+Arabic:wght@400;600;700;800&display=swap');

*{box-sizing:border-box}

:root{
  --ink:#25221e;
  --muted:#7d7668;
  --line:#e9e2d6;
  --bg:#faf7f2;
  --paper:#ffffff;
  --soft:#f4efe7;
  --orange:#c06b3e;
  --orange-dark:#8f4a26;
  --orange-soft:#f7e8dd;
  --copper-grad:linear-gradient(135deg,#d97f4a 0%,#c06b3e 55%,#a5552c 100%);
  --teal:#1f6b7a;
  --teal-soft:#e3f0f2;
  --green:#2e7d5b;
  --green-soft:#e5f2ec;
  --red:#b04338;
  --red-soft:#fbe9e7;
  --gold:#d9a441;
  --radius:16px;
  --radius-sm:11px;
  --shadow-sm:0 1px 2px rgba(64,45,28,.06),0 3px 10px rgba(64,45,28,.05);
  --shadow-md:0 2px 6px rgba(64,45,28,.07),0 14px 34px rgba(64,45,28,.10);
  --shadow-lg:0 8px 18px rgba(64,45,28,.10),0 26px 60px rgba(64,45,28,.16);
  --ease:cubic-bezier(.22,.9,.28,1);
  --font-ui:'Cairo','Noto Kufi Arabic','Segoe UI',Tahoma,Arial,sans-serif;
  --font-ar:'Noto Kufi Arabic','Cairo','Segoe UI',Tahoma,sans-serif;
}

body{
  margin:0;min-height:100vh;display:flex;flex-direction:column;
  background:
    radial-gradient(1100px 480px at 85% -10%,rgba(192,107,62,.07),transparent 60%),
    radial-gradient(900px 420px at -10% 30%,rgba(31,107,122,.05),transparent 55%),
    var(--bg);
  background-attachment:fixed;
  color:var(--ink);
  font:16px/1.55 var(--font-ui);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}

/* ---------- Arabe : typographie dédiée, pas de letter-spacing ---------- */
[lang="ar"],[dir="rtl"]{
  font-family:var(--font-ar);
  letter-spacing:0!important;
  line-height:1.75;
}
[dir="rtl"]{text-align:right}

::selection{background:rgba(192,107,62,.22)}

/* ---------- Header : verre dépoli ultra chic ---------- */
header{
  min-height:72px;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid rgba(233,226,214,.9);
  display:flex;align-items:center;justify-content:space-between;
  padding:10px max(22px,calc((100% - 1180px)/2));
  position:sticky;top:0;z-index:50;
}
header::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,transparent,var(--orange) 30%,var(--gold) 50%,var(--orange) 70%,transparent);
  opacity:.55;pointer-events:none;
}

.brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:900;color:var(--ink);text-decoration:none;letter-spacing:.01em}
.brand img,.brand-logo{width:56px;height:56px;object-fit:contain;border-radius:14px;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease)}
.brand:hover img{transform:scale(1.06) rotate(-2deg)}
.brand b{color:var(--orange)}
.brand>span{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

nav{display:flex;align-items:center;gap:6px;font-size:14px;flex-wrap:wrap;justify-content:flex-end}
nav span{color:var(--muted);font-weight:600}
nav a{color:var(--ink);text-decoration:none;font-weight:700;padding:9px 12px;border-radius:10px;transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}
nav a:hover,nav a:focus-visible{background:var(--orange-soft);color:var(--orange-dark);outline:none;transform:translateY(-1px)}
.nav-toggle{display:none;background:var(--soft);color:var(--ink);min-height:44px;border-radius:10px}
.nav-toggle span{font-size:13px;margin-left:6px;font-weight:800}

main{width:100%;max-width:1180px;flex:1;margin:auto;padding:40px 20px 90px}

h1{font-size:34px;line-height:1.14;margin:6px 0 10px;font-weight:900;letter-spacing:-.01em}
h2{font-size:22px;margin:4px 0 12px;font-weight:800}
h3{margin:22px 0 10px;font-weight:800}

/* ---------- Titres de page ---------- */
.title{margin-bottom:30px}
.title>span,.page-title>div>span,.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--orange);font-weight:800;text-transform:uppercase;font-size:12.5px;letter-spacing:.14em;
}
.title>span::before,.page-title>div>span::before,.eyebrow::before{
  content:"";width:26px;height:3px;border-radius:3px;background:var(--copper-grad);
}
.title>span[lang],.page-title>div>span{letter-spacing:.14em}
.title p{margin:6px 0 0;color:var(--muted);font-size:18px}
.title p[lang="ar"]{font-size:20px;color:#6d675b}
.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}
.page-title h1{margin:2px 0 0}

/* ---------- Cartes & surfaces ---------- */
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;box-shadow:var(--shadow-sm);
}

/* ---------- Login ---------- */
.login{max-width:460px;margin:44px auto;text-align:center;position:relative;overflow:hidden;padding:38px 34px}
.login::before{
  content:"";position:absolute;inset:0 0 auto 0;height:5px;
  background:var(--copper-grad);
}
.login h1{font-size:26px;margin:2px 0 2px}
.login p{color:var(--muted);margin:0 0 6px}
.login p[lang="ar"],.login p[dir="rtl"]{font-size:19px;color:#6d675b;font-weight:700;text-align:center}
.login form{text-align:left;margin-top:14px}
.login-icon{font-size:58px}
.logo-login{width:190px;height:190px;object-fit:contain;margin:0 auto 10px;border-radius:26px;display:block;box-shadow:var(--shadow-md)}

/* ---------- Formulaires ---------- */
label{display:flex;flex-direction:column;gap:8px;margin:15px 0;font-weight:800;font-size:14.5px}
input,select,textarea{
  width:100%;min-height:50px;border:1.5px solid #ddd5c6;border-radius:12px;
  padding:11px 14px;font:inherit;font-weight:600;color:var(--ink);
  background:#fffdfb;transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);
}
input:hover,select:hover,textarea:hover{border-color:#cbbfa9}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--orange);background:#fff;
  box-shadow:0 0 0 4px rgba(192,107,62,.15);
}
textarea{min-height:96px;resize:vertical}

/* ---------- Boutons ---------- */
button,.button{
  min-height:48px;border:0;border-radius:12px;padding:12px 18px;
  font:inherit;font-weight:800;font-size:15px;text-decoration:none;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease),filter .25s var(--ease);
}
button:focus-visible,.button:focus-visible{outline:3px solid rgba(192,107,62,.4);outline-offset:2px}
.primary{
  background:var(--copper-grad);color:#fff;
  box-shadow:0 4px 14px rgba(165,85,44,.35),inset 0 1px 0 rgba(255,255,255,.25);
}
.primary:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(165,85,44,.42),inset 0 1px 0 rgba(255,255,255,.25);filter:brightness(1.05)}
.primary:active{transform:translateY(0)}
.secondary{background:var(--soft);color:var(--ink);border:1px solid var(--line)}
.secondary:hover{background:#ece5d8;transform:translateY(-1px)}
.button.light{background:#fff;color:#25221e}
.button.light:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.22)}
.button.sync{background:linear-gradient(135deg,#2e9d6b,#1f7a50);color:#fff;box-shadow:0 4px 14px rgba(31,122,80,.3)}
.danger{background:linear-gradient(135deg,#c14d40,#9d3b32);color:#fff}
.wide{width:100%;margin-top:12px}
.big{font-size:17px;min-height:60px;border-radius:14px}
.back{color:var(--ink);font-weight:800;text-decoration:none;display:inline-flex;align-items:center;gap:7px;margin-bottom:6px}
.back:hover{color:var(--orange-dark)}

/* ---------- Alertes ---------- */
.alert{background:var(--red-soft);color:#8e352e;padding:13px 16px;border-radius:12px;margin:15px 0;font-weight:700;border:1px solid #f3cfc9}
.notice{background:var(--green-soft);color:#246848;padding:13px 16px;border-radius:12px;margin:15px 0;font-weight:700;border:1px solid #cde5d8}

/* ---------- Grille des domaines (Étape 1) ---------- */
.domain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.domain{
  position:relative;min-height:250px;background:var(--paper);
  border:1px solid var(--line);border-radius:20px;padding:28px 24px;
  text-align:center;text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;
  box-shadow:var(--shadow-sm);overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.domain::before{
  content:"";position:absolute;inset:0 0 auto 0;height:7px;
  background:linear-gradient(90deg,var(--dept,var(--orange)),color-mix(in srgb,var(--dept,var(--orange)) 55%,#fff));
}
.domain::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(420px 200px at 50% -60px,color-mix(in srgb,var(--dept,var(--orange)) 14%,transparent),transparent 70%);
  opacity:0;transition:opacity .35s var(--ease);pointer-events:none;
}
.domain:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--dept,var(--orange)) 45%,#fff)}
.domain:hover::after{opacity:1}
.domain b{
  font-size:64px;line-height:1;margin-top:6px;
  width:104px;height:104px;display:grid;place-items:center;border-radius:28px;
  background:color-mix(in srgb,var(--dept,var(--orange)) 10%,#fff);
  border:1px solid color-mix(in srgb,var(--dept,var(--orange)) 22%,#fff);
  transition:transform .35s var(--ease);
}
.domain:hover b{transform:scale(1.08) rotate(-3deg)}
.domain strong{font-size:23px;margin-top:16px;font-weight:900;letter-spacing:-.01em}
.domain em,.category em{font-style:normal;color:var(--muted);font-size:19px;margin-top:4px}
.domain em[lang="ar"]{color:#6d675b;font-weight:700}

/* Indicateur "speak" — les cartes parlent FR + AR au clic (feature existante) */
[data-speak-fr]{cursor:pointer}
[data-speak-fr] strong::after{
  content:"🔊";font-size:13px;margin-left:8px;vertical-align:2px;
  opacity:.55;transition:opacity .25s var(--ease);
}
[data-speak-fr]:hover strong::after{opacity:1}

/* ---------- Grille des catégories (Étape 2) ---------- */
.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.category{
  position:relative;min-height:170px;background:var(--paper);
  border:1px solid var(--line);border-radius:16px;padding:18px 14px;
  text-align:center;text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  box-shadow:var(--shadow-sm);overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.category::before{
  content:"";position:absolute;inset:0 0 auto 0;height:5px;
  background:linear-gradient(90deg,var(--dept,var(--orange)),color-mix(in srgb,var(--dept,var(--orange)) 50%,#fff));
}
.category:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--dept,var(--orange)) 40%,#fff)}
.category b{font-size:44px;line-height:1.1}
.category strong{font-size:16.5px;margin-top:8px;font-weight:800}
.category em{font-size:15px}
.center{text-align:center;margin-top:30px}

/* ---------- Page capture ---------- */
.capture-wrap{max-width:700px;margin:auto}
.capture-form{padding:30px}
.selected{
  display:flex;gap:16px;align-items:center;background:var(--paper);
  border:1px solid var(--line);border-left:7px solid var(--dept,var(--orange));
  padding:16px 18px;border-radius:14px;margin:18px 0;box-shadow:var(--shadow-sm);
}
.selected b{font-size:40px}
.selected strong,.selected span{display:block}
.selected strong{font-weight:900}
.selected span{color:var(--muted);font-size:17px}
.photo-button{
  height:180px;background:linear-gradient(180deg,#faf6ef,#f3ede2);
  border:2px dashed #c9bda6;border-radius:16px;
  align-items:center;justify-content:center;font-size:50px;cursor:pointer;
  transition:border-color .3s var(--ease),background .3s var(--ease),transform .3s var(--ease);
}
.photo-button:hover{border-color:var(--orange);background:linear-gradient(180deg,#fdf8f1,#f8efe2);transform:scale(1.005)}
.photo-button span,.photo-button small{font-size:18px;font-weight:800}
.photo-button small{color:var(--muted);font-weight:600}
.photo-button input{display:none}
.preview{width:100%;max-height:380px;object-fit:cover;border-radius:14px;box-shadow:var(--shadow-md);margin-top:6px}
.qty{text-align:center;margin:26px 0}
.qty>span{font-weight:900;font-size:17px}
.qty>div{display:flex;justify-content:center;align-items:center;gap:26px;margin-top:14px}
.qty button{
  width:64px;height:64px;border-radius:50%;font-size:32px;background:var(--paper);
  border:1.5px solid var(--line);color:var(--orange-dark);box-shadow:var(--shadow-sm);
}
.qty button:hover{background:var(--orange-soft);transform:scale(1.07)}
.qty output{font-size:42px;font-weight:900;min-width:90px;font-variant-numeric:tabular-nums}
.success{text-align:center;max-width:560px;margin:60px auto}
.success>div{font-size:74px;color:var(--green)}
.success small{display:block;color:var(--muted);margin:16px;font-size:15px}

/* ---------- Listes de captures ---------- */
.actions{display:flex;gap:9px;flex-wrap:wrap}
.capture-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.capture-card{
  background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  display:grid;grid-template-columns:190px 1fr;box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.capture-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.capture-card img{width:100%;height:100%;min-height:230px;object-fit:cover}
.capture-card>div{padding:18px}
.capture-card p{margin:5px 0}
.badge{display:inline-block;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.02em}
.badge.status-is-draft{background:#f1f5f9;color:#334155}
.badge.status-is-partial{background:#fef9c3;color:#854d0e}
.badge.status-is-ready{background:var(--green-soft);color:#166534}
.badge.status-is-running{background:var(--teal-soft);color:#075985}
.badge.status-is-synced{background:#25221e;color:#fff}
.badge.status-is-error{background:var(--red-soft);color:#991b1b}
.badge:not([class*="status-"]){background:var(--orange-soft);color:var(--orange-dark)}
.synced-line{font-size:12px;color:var(--muted)}
.empty{grid-column:1/-1;background:var(--paper);border:1.5px dashed #c9bda6;border-radius:16px;padding:52px;text-align:center;color:var(--muted);font-weight:600}

/* ---------- Revue / formulaires avancés ---------- */
.review{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}
.review>img{width:100%;max-height:800px;object-fit:contain;background:#1c1a17;border-radius:14px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.admin-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}
.assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;max-height:450px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fffdfb}
.assignment-grid h4{grid-column:1/-1;margin:12px 0 4px;border-bottom:1px solid var(--line);padding-bottom:6px;font-weight:800}
.check-card{display:flex;flex-direction:row;align-items:center;gap:9px;margin:0;padding:8px 10px;background:var(--soft);border-radius:9px;font-weight:600}
.check-card input,.inline input{width:auto;min-height:auto}
.inline{flex-direction:row;align-items:center}
.inline-form{display:inline-flex;gap:8px;align-items:center;margin:0}
.inline-form .button{min-height:40px;padding:8px 13px;font-size:13.5px}
.person{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}
.person:last-child{border-bottom:0}
.person b{font-weight:800}
.person span{display:block;color:var(--muted);font-size:13px}
.muted{color:var(--muted)}
.team-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}

/* ---------- Tableaux ---------- */
.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--line);background:var(--paper)}
.table-wrap .data-table,.table-wrap .table{border:0}
.data-table,.table{width:100%;border-collapse:collapse;background:var(--paper)}
.data-table th,.data-table td,.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.data-table th,.table th{
  font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);
  background:#fbf8f3;font-weight:800;position:sticky;top:0;
}
.data-table tbody tr,.table tbody tr{transition:background .2s var(--ease)}
.data-table tbody tr:hover,.table tbody tr:hover{background:#fbf7f0}
.data-table tr:last-child td,.table tr:last-child td{border-bottom:0}
.location-chip{display:inline-block;background:var(--teal-soft);color:#155263;border-radius:7px;padding:4px 9px;font-size:12px;font-weight:700}
.tag{display:inline-block;padding:4px 9px;border-radius:7px;background:var(--orange-soft);color:var(--orange-dark);font-size:11px;font-weight:800}

/* ---------- Statistiques / exports ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}
.stat{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;
  position:relative;overflow:hidden;box-shadow:var(--shadow-sm);
}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--copper-grad)}
.stat b{display:block;font-size:31px;font-weight:900;font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);font-size:13px;font-weight:700}
.export-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.card-actions form{margin:0}
.card-actions .button{min-height:42px}

/* ---------- IA ---------- */
.ai-box{border:1px solid #cfe0e4;background:linear-gradient(180deg,#f4f9fa,#eef5f6);border-radius:14px;padding:18px;margin:16px 0}
.ai-box h3{margin:0 0 6px}
.ai-action{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ai-action .button{min-height:48px}
.ai-state{font-size:14px;color:var(--muted);font-weight:600}
.ai-result{margin-top:14px;border-top:1px solid #cfe0e4;padding-top:14px}
.ai-result strong,.ai-result span{display:block}
.ai-confidence{display:inline-block!important;width:auto;background:var(--green-soft);color:#286246;border-radius:7px;padding:4px 9px;font-weight:800;margin-top:8px}
.ai-warning{color:#8a5227;margin-top:8px;font-size:14px;font-weight:600}
.ai-review{background:#f4f8f9;border-left:4px solid var(--teal);padding:13px;border-radius:10px;margin:12px 0}
.ai-review p{margin:7px 0}

/* ---------- Footer ---------- */
.site-footer,.app-footer{
  background:rgba(255,255,255,.9);border-top:1px solid var(--line);
  min-height:96px;padding:16px max(22px,calc((100% - 1180px)/2));
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  color:var(--muted);font-size:14px;position:relative;
}
.app-footer::before,.site-footer::before{
  content:"";position:absolute;top:-2px;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--orange) 35%,var(--gold) 50%,var(--orange) 65%,transparent);opacity:.5;
}
.site-footer{justify-content:center;text-align:center}
.site-footer img{width:48px;height:48px;object-fit:contain;border-radius:8px}
.site-footer p{margin:0}
.site-footer strong,.app-footer strong{color:var(--ink);font-weight:800}
.app-footer img{width:190px;height:84px;object-fit:contain}
.app-footer div{text-align:right}
.app-footer strong,.app-footer span{display:block}
.app-footer span{font-size:12px;color:var(--muted)}

/* ---------- Pages erreur / réparation ---------- */
.system-error,.repair-card{max-width:660px;margin:64px auto;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:38px;text-align:center;box-shadow:var(--shadow-md)}
.system-error img{width:110px;height:110px;object-fit:contain}
.system-error span,.eyebrow{display:block;color:var(--orange);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin:12px 0}
.system-error .eyebrow::before,.system-error span::before{display:none}
.system-error small{display:block;color:var(--muted);margin-top:20px;word-break:break-word}
.schema-checks{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:24px 0;text-align:left}
.schema-checks>div{display:flex;gap:10px;align-items:center;background:var(--soft);border-radius:9px;padding:10px;font-weight:600}
.schema-checks .sub{margin-left:18px;font-size:13px}
.schema-checks b{color:var(--green)}

/* ---------- Sélection en masse ---------- */
.selection-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-top:24px}
.selection-head h3,.selection-head p{margin:0}
.selection-tools{display:flex;gap:9px;flex-wrap:wrap}
.selection-tools .button{min-height:44px}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  header{align-items:center;padding:9px 14px}
  .brand img,.brand-logo{width:48px!important;height:48px!important}
  header nav{display:none;position:absolute;left:12px;right:12px;top:70px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow-lg);z-index:60;max-width:none!important}
  .nav-open header nav{display:grid;grid-template-columns:1fr 1fr}
  .nav-open header nav>span{display:block!important;grid-column:1/-1;padding:9px}
  .nav-toggle{display:inline-flex!important}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .export-grid{grid-template-columns:1fr}
  .app-footer{flex-direction:column;text-align:center;padding-bottom:22px}
  .app-footer div{text-align:center}
}
@media(max-width:800px){
  main{padding:28px 14px 60px}
  h1{font-size:27px}
  .brand span{font-size:16px}
  nav span{display:none}
  .domain-grid{grid-template-columns:1fr}
  .domain{min-height:190px}
  .domain b{width:88px;height:88px;font-size:52px;border-radius:22px}
  .domain strong{font-size:21px}
  .category-grid{grid-template-columns:repeat(2,1fr)}
  .category{min-height:150px}
  .page-title{align-items:flex-start;flex-direction:column}
  .capture-list,.review,.admin-layout{grid-template-columns:1fr}
  .capture-card{grid-template-columns:130px 1fr}
  .capture-card img{min-height:210px}
  .form-grid{grid-template-columns:1fr}
  .assignment-grid{grid-template-columns:1fr}
  .actions{width:100%}
  .actions .button{flex:1}
  .login{margin:26px auto;padding:28px 22px}
  .logo-login{width:150px;height:150px}
}
@media(max-width:620px){
  .selection-head{align-items:stretch;flex-direction:column}
  .selection-tools{display:grid;grid-template-columns:1fr 1fr}
  .selection-tools .button{width:100%;padding-left:8px;padding-right:8px}
}
@media(max-width:520px){
  .brand>span{display:none}
  .nav-open header nav{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
  .schema-checks{grid-template-columns:1fr}
}

/* ---------- Impression ---------- */
@media print{
  header,.app-footer,.no-print{display:none!important}
  body,main{background:#fff;padding:0}
  .card{border:0;padding:0;box-shadow:none}
  .data-table,.table{font-size:10px}
}

/* ---------- Accessibilité mouvement ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
