/* ============================================
   ROOT VARIABLES
   ============================================ */
:root {
  --orange: #EE9132; --orange-600: #d9791e; --orange-700: #b9631a;
  /* Deux oranges clairs à NE PAS confondre : */
  --orange-tint: #FCEBD7;  /* surface/fond très clair sur BLANC : chips, focus, grade D, hero. Usage fond clair. */
  --orange-clair: #FBD9B3; /* charte p.7 : accent chaud sur fonds SOMBRES uniquement (≠ --orange-tint). */
  --teal: #285b63; --teal-700: #1d474d; --teal-tint: #E4EFEF;
  --slate: #2D4150; /* charte : dark slate (ancrage Impact'Aidance) */
  --ink: #21303b;   /* neutre fonctionnel HORS charte : couleur de texte de base (plus foncé que dark slate pour le confort de lecture). Choix assumé. */
  --light-blue: #A6BDCD; /* charte: support / sous-titres, fonds sombres uniquement */
  --mint: #4FCDC1; --mint-dark: #1F857C; --mint-tint: #E3F6F3;
  /* Hors palette de marque : SEULE couleur sémantique d'alerte (note E, delta négatif, erreurs de formulaire, danger/suppression). Pas de rouge Tailwind ailleurs. */
  --risk: #C2543B; --risk-tint: #F8E6E0;
  --white: #fff; --paper: #F6F9F9; --paper-2: #EFF4F4;
  --line: #E5ECEC; --line-2: #D6E0E0;
  --muted: #5E7480; --muted-2: #86979F;
  --shadow: 0 1px 2px rgba(33,48,59,.04), 0 8px 24px rgba(33,48,59,.06);
  --shadow-lg: 0 2px 6px rgba(33,48,59,.05), 0 20px 48px rgba(33,48,59,.10);
  --r: 16px; --r-sm: 11px; --r-lg: 22px;
  --font: 'Mulish', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --maxw: 1180px;
}

/* Hide/shown utilities for mobile */
.show-mobile { display: none; }

/* ============================================
   COMPONENTS
   ============================================ */

/* Brand */
.brand { display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.22rem;color:var(--ink);letter-spacing:-.02em;}
.brand .mark { width:34px;height:34px;flex:0 0 auto;}
.brand small { font-family:var(--serif);font-style:italic;font-weight:500;font-size:.7rem;color:var(--mint-dark);display:block;line-height:1;margin-top:2px;letter-spacing:0;}
.foot .brand { color:#fff; }
.foot .brand small { color:var(--mint); }
/* Login : baseline en blanc sur le fond teal sombre de l'aside (le « A » reste orange via .wm-a) */
.auth-aside .brand small { color:#fff; }

/* Eyebrow */
.eyebrow { font-family:var(--serif);font-style:italic;font-weight:500;color:var(--mint-dark);font-size:1.02rem;letter-spacing:.01em;margin:0 0 .55rem;display:flex;align-items:center;gap:.5rem;}
.eyebrow.teal { color:var(--teal); }
.eyebrow.orange { color:var(--orange-700); }

/* Burger */
.burger { display:none;border:1px solid var(--line-2);background:#fff;border-radius:10px;width:42px;height:42px;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);}
.burger svg { width:22px;height:22px; }

/* Buttons */
.btn { display:inline-flex;align-items:center;gap:.5rem;font:inherit;font-weight:700;border:1.5px solid transparent;border-radius:999px;padding:.72rem 1.4rem;cursor:pointer;transition:.18s ease;font-size:.97rem;white-space:nowrap;line-height:1;}
.btn svg { width:18px;height:18px;flex:0 0 auto; }
.btn-primary { background:var(--orange);color:#fff;box-shadow:0 6px 16px rgba(238,145,50,.32); }
.btn-primary:hover { background:var(--orange-600);color:#fff;transform:translateY(-1px);box-shadow:0 9px 22px rgba(238,145,50,.38); }
.btn-ghost { background:#fff;border-color:var(--line-2);color:var(--ink); }
.btn-ghost:hover { border-color:var(--teal);color:var(--teal);background:#fff; }
.btn-teal { background:var(--teal);color:#fff; }
.btn-teal:hover { background:var(--teal-700);color:#fff;transform:translateY(-1px); }
.btn-mint { background:var(--mint-tint);color:var(--mint-dark);border-color:transparent; }
.btn-mint:hover { background:#d3f0eb;color:var(--mint-dark); }
.btn-sm { padding:.5rem .9rem;font-size:.85rem; }
.btn-block { width:100%;justify-content:center; }
/* Disabled state (e.g. "Générer le rapport" while documents are being extracted):
   faded + not-allowed, matching the blocked client link. */
.btn:disabled, .btn[disabled] { opacity:.55;cursor:not-allowed;box-shadow:none; }

.iconbtn { display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;border:1.5px solid var(--line-2);background:#fff;cursor:pointer;color:var(--muted);transition:.16s;}
.iconbtn:hover { border-color:var(--risk);color:var(--risk);background:var(--risk-tint); }
.iconbtn svg { width:18px;height:18px; }

/* Cards */
.card { background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow); }
.card-h { display:flex;align-items:center;gap:.8rem;padding:1.1rem 1.4rem;border-bottom:1px solid var(--line); }
.card-h h3 { font-size:1.05rem; }
.pad { padding: 1.2rem; }
@media (min-width: 768px) { .pad { padding: 1.5rem; } }
@media (min-width: 1024px) { .pad { padding: 1.7rem; } }
.soft { background:var(--paper);border-color:var(--line); }

/* Chips */
.chip { display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.78rem;padding:.32rem .7rem;border-radius:999px;letter-spacing:.01em; }
.chip-orange { background:var(--orange-tint);color:var(--orange-700); }
.chip-mint { background:var(--mint-tint);color:var(--mint-dark); }
.chip-teal { background:var(--teal-tint);color:var(--teal); }
.chip-risk { background:var(--risk-tint);color:var(--risk); }
.chip-grey { background:var(--paper-2);color:var(--muted); }
.dot { width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block; }

/* Grade */
.grade { display:inline-flex;align-items:center;justify-content:center;font-family:var(--font);font-weight:700;border-radius:12px;width:44px;height:44px;font-size:1.5rem;line-height:1; }
/* A→E scale on the charte colours ONLY (no custom hex): A mint, B light-blue, C orange clair,
   D orange, E risk (rouge). The letter is always white (reads better in the scoring block). */
.g-A { background:var(--mint);         color:var(--white); }
.g-B { background:var(--light-blue);   color:var(--white); }
.g-C { background:var(--orange-clair); color:var(--white); }
.g-D { background:var(--orange);       color:var(--white); }
.g-E { background:var(--risk);         color:var(--white); }

/* Forms */
.field { margin-bottom:1.05rem;min-width:0; }
.field>label { display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.85rem;color:var(--slate);margin-bottom:.4rem;}
.field .src { font-size:.7rem;font-weight:700;letter-spacing:.04em;color:var(--mint-dark);background:var(--mint-tint);padding:.16rem .5rem;border-radius:6px;text-transform:uppercase;}
.input { width:100%;font:inherit;font-size:.98rem;color:var(--ink);background:#fff;border:1.5px solid var(--line-2);border-radius:11px;padding:.7rem .85rem;transition:.15s;}
.input::placeholder { color:var(--muted-2); }
.input:focus { outline:none;border-color:var(--orange);box-shadow:0 0 0 4px var(--orange-tint); }
textarea.input { resize:vertical;min-height:120px;line-height:1.5; }
.select.input { appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235E7480' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.2rem;}
.field.filled .input { border-color:var(--mint);background:#FbFefe; }
.checkrow { display:flex;align-items:center;gap:.55rem;font-weight:500;color:var(--slate);font-size:.92rem;cursor:pointer; }
.checkrow input { width:18px;height:18px;accent-color:var(--orange); }

/* Search */
.search { position:relative; }
.search svg { position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted-2); }
.search .input { padding-left:2.5rem; }

/* Tabs */
.tabs { display:flex;gap:.3rem;border-bottom:1px solid var(--line);padding:0 .3rem;overflow-x:auto;scrollbar-width:none; }
.tabs::-webkit-scrollbar { display:none; }
.tab { appearance:none;border:none;background:none;font:inherit;font-weight:700;color:var(--muted);padding:1rem .95rem;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;display:flex;align-items:center;gap:.5rem;transition:.15s; }
.tab .cnt { font-size:.72rem;background:var(--paper-2);color:var(--muted);border-radius:999px;padding:.05rem .45rem;font-weight:700; }
.tab:hover { color:var(--ink); }
.tab.active { color:var(--orange-700);border-bottom-color:var(--orange); }
.tab.active .cnt { background:var(--orange-tint);color:var(--orange-700); }
.tab .cnt.completed { background:var(--mint-tint);color:var(--mint-dark); padding:0; }
.tab.active .cnt.completed { background:var(--mint-tint);color:var(--mint-dark); }
.tabpane { display:none;animation:fade .25s ease; }
.tabpane.active { display:block; }
.tab-nav-bottom { display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line-1); }
.btn-tabnav { appearance:none;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1.5px solid var(--line-2);background:var(--paper-2);color:var(--slate);cursor:pointer;border-radius:11px;transition:.16s; }
.btn-tabnav:hover:not(:disabled) { background:#e3eaea;color:var(--ink);border-color:var(--muted-2); }
.btn-tabnav:disabled { opacity:.4;cursor:default; }
.btn-tabnav-label { width:auto;height:auto;padding:.5rem 1rem;gap:.4rem;font-size:.85rem;font-weight:700; }
.tab-nav-dots { display:flex;gap:.45rem;align-items:center; }
.tab-nav-dot { width:8px;height:8px;border-radius:999px;border:none;background:var(--line-2);cursor:pointer;padding:0;transition:.15s; }
.tab-nav-dot:hover { background:var(--muted); }
.tab-nav-dot.active { background:var(--slate);width:22px; }

/* Group label */
.grouplab { display:flex;align-items:center;gap:.6rem;margin:1.4rem 0 .8rem;font-weight:700;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate); }
.grouplab:first-child { margin-top:.2rem; }
.grouplab .ln { flex:1;height:1px;background:var(--line); }

/* Doc upload */
.doc { display:flex;align-items:center;gap:.9rem;border:1.5px solid var(--line);border-radius:13px;padding:.8rem .9rem;background:#fff;margin-bottom:.7rem;transition:.15s; }
.doc.done { border-color:var(--mint);background:#FbFefe; }
.doc.todo { border-style:dashed;border-color:var(--line-2); }
.doc .fic { width:40px;height:40px;border-radius:10px;background:var(--paper-2);color:var(--muted);display:flex;align-items:center;justify-content:center;flex:0 0 auto; }
.doc.done .fic { background:var(--mint-tint);color:var(--mint-dark); }
.doc .fic svg { width:20px;height:20px; }
.doc .meta { flex:1;min-width:0; }
.doc .meta .nm { font-weight:700;font-size:.94rem;color:var(--ink);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap; }
.doc .meta .sub { font-size:.78rem;color:var(--muted);margin-top:.1rem; }
.doc .act { display:flex;align-items:center;gap:.45rem;flex:0 0 auto; }

/* State bar */
.statebar { height:9px;border-radius:999px;background:var(--paper-2);overflow:hidden; }
.statebar i { display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--mint),var(--teal)); }
.kv { display:flex;flex-direction:column;gap:.15rem; }
.kv .k { font-size:.74rem;color:var(--muted);font-weight:700;letter-spacing:.03em;text-transform:uppercase; }
.kv .v { font-weight:700;color:var(--ink);font-size:1.02rem; }

/* Admin rows */
.clientrow { border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:.8rem;transition:.15s;padding:1.05rem 1.2rem; }
.clientrow:hover { box-shadow:var(--shadow);border-color:var(--line-2); }
.clientrow-inner { display:flex;flex-direction:column;gap:.8rem; }
.clientrow-headline { display:flex;align-items:center;gap:.8rem;flex:1;min-width:0; }
.clientrow-info { flex:1;min-width:0; }
.clientrow-headline .nm { font-weight:700;color:var(--ink);font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.clientrow-info .nm { font-weight:700;color:var(--ink);font-size:1.05rem;word-break:break-word; }
.clientrow-meta { font-size:.82rem;color:var(--muted); }
.clientrow-status { font-size:.82rem; }
.clientrow-status .chip { font-size:.78rem; }
.clientrow-contact { font-size:.84rem;color:var(--slate);display:flex;flex-direction:column;gap:.2rem;max-width:100%; }
.clientrow-contact a { display:inline-flex;align-items:flex-start;gap:.4rem;color:var(--slate);font-weight:500;max-width:100%; }
.clientrow-contact a:hover { color:var(--teal); }
.clientrow-contact svg { width:14px;height:14px;color:var(--muted-2);flex:0 0 auto; }
.clientrow-actions.rowact { display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end; }

/* Truncate utility */
.truncate { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

.av-lg { width:46px;height:46px;border-radius:13px;background:var(--teal-tint);color:var(--teal);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex:0 0 auto; }
.rowact { display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end; }

/* Pager */
.pager { display:flex;gap:.4rem;align-items:center;justify-content:center;margin-top:1.6rem; }
.pager a { min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line-2);background:#fff;color:var(--slate);font-weight:700; }
.pager a.active { background:var(--teal);color:#fff;border-color:var(--teal); }
.pager a:hover:not(.active) { border-color:var(--teal);color:var(--teal); }

/* Toolbar */
.toolbar { display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-bottom:1.3rem; }
.toolbar .search { flex:1;min-width:220px; }

/* Dashboard */
.dash-kpi { position:relative;overflow:hidden; }
.dash-kpi .top { font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted); }
.dash-kpi .big { font-size:2.5rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1;margin:.4rem 0 .35rem; }
.dash-kpi .big small { font-size:1rem;font-weight:700;color:var(--muted); }
.delta { display:inline-flex;align-items:center;gap:.3rem;font-weight:700;font-size:.82rem;border-radius:999px;padding:.18rem .55rem; }
.delta.up { color:var(--risk);background:var(--risk-tint); }
.delta.down { color:var(--mint-dark);background:var(--mint-tint); }
.delta.good { color:var(--mint-dark);background:var(--mint-tint); }
.legend { display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.82rem;color:var(--muted);font-weight:500;margin-top:.7rem; }
.legend i { width:11px;height:11px;border-radius:3px;display:inline-block;margin-right:.35rem;vertical-align:-1px; }
.scale-tags { display:flex;gap:.8rem;flex-wrap:wrap;font-size:.78rem;font-weight:700;color:var(--muted);margin-top:.6rem; }

/* National band */
.natband { background:var(--teal);color:#fff;border-radius:var(--r);padding: 1.4rem;position:relative;overflow:hidden; }
@media (min-width: 768px) { .natband { padding: 1.8rem; } }
@media (min-width: 1024px) { .natband { padding: 2rem; } }
.natband .eyebrow { color:#bfe7e1; }
.natband h3 { color:#fff; }

/* Footer */
.foot { background:var(--teal);color:#cfe1e1;padding:2.6rem 0 2rem;position:relative;overflow:hidden; }
.foot a { color:#fff; }
.foot a:hover { color:#fff; }
.foot-in { max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative;z-index:2; }
.foot-top { display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:flex-start; }
.foot-links { display:flex;gap:2.4rem;flex-wrap:wrap; }
.foot-links h4 { color:#fff;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.7rem; }
.foot-links ul { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;font-size:.92rem; }
.foot-bottom { border-top:1px solid rgba(255,255,255,.16);margin-top:1.8rem;padding-top:1.2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:#a7c9c6; }

/* Auth */
.auth-aside { position:relative;overflow:hidden;background:radial-gradient(120% 80% at 80% 10%, #2f6a72 0%, var(--teal) 60%);color:#eaf3f3;padding: 2rem;display:flex;flex-direction:column;justify-content:space-between; }
@media (min-width: 768px) { .auth-aside { padding: 3rem; } }
@media (min-width: 1024px) { .auth-aside { padding: 4rem; } }
.auth-aside .quote { font-family:var(--serif);font-style:italic;font-size: 1.3rem;line-height:1.32;color:#fff;max-width:24ch; }
@media (min-width: 768px) { .auth-aside .quote { font-size: 1.6rem; } }
@media (min-width: 1024px) { .auth-aside .quote { font-size: 1.9rem; } }
.auth-aside .quote b { color:var(--orange); }
.auth-main { display:flex;align-items:center;justify-content:center;padding: 1.6rem;background:var(--paper); }
@media (min-width: 768px) { .auth-main { padding: 2.5rem; } }
@media (min-width: 1024px) { .auth-main { padding: 3rem; } }
.auth-card { width:100%;max-width:410px; }
.auth-pane { display:none; }
.auth-pane.active { display:block;animation:fade .25s ease; }

/* Note */
.note { font-size:.86rem;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.8rem .95rem;display:flex;gap:.6rem;align-items:flex-start; }
.note svg { width:18px;height:18px;color:var(--mint-dark);flex:0 0 auto;margin-top:1px; }

/* Backlink */
.backlink { display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--teal);font-size:.9rem;margin-bottom:1rem; }
.backlink svg { width:16px;height:16px; }

/* Pagehead */
.pagehead { display:flex;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1.6rem; }
.pagehead h1 { font-size: 1.7rem; }
@media (min-width: 768px) { .pagehead h1 { font-size: 2rem; } }
@media (min-width: 1024px) { .pagehead h1 { font-size: 2.3rem; } }
.pagehead .sub { color:var(--muted);margin-top:.35rem; }

/* Select line */
.selectline { display:flex;gap:.7rem;align-items:center;flex-wrap:wrap; }
.selectline .lbl { font-size:.8rem;color:var(--muted);font-weight:700; }

.lbl { font-size:.8rem;color:var(--muted);font-weight:700; }

/* Topo */
.topo { position:absolute;inset:auto 0 0 0;width:100%;height:auto;pointer-events:none;z-index:0; }

/* Hero */
.hero { position:relative;overflow:hidden;background:radial-gradient(120% 90% at 88% -10%, var(--mint-tint) 0%, rgba(227,246,243,0) 55%),radial-gradient(90% 80% at 0% 0%, var(--orange-tint) 0%, rgba(252,235,215,0) 45%),#fff;padding: 2.6rem 0 3.5rem; }
@media (min-width: 768px) { .hero { padding: 4rem 0 5.5rem; } }
@media (min-width: 1024px) { .hero { padding: 4.6rem 0 6rem; } }
.hero .wrap { position:relative;z-index:2; }
.hero h1 span { color:var(--orange); }
.hero p.lead { font-size:1.18rem;color:var(--slate);max-width:34ch;margin:1.1rem 0 1.8rem; }
.hero-cta { display:flex;gap:.8rem;flex-wrap:wrap; }
.hero-visual { position:relative;aspect-ratio:1/1;max-width:420px;margin-left:auto; }

/* Section */
section { padding: 2.6rem 0; }
@media (min-width: 768px) { section { padding: 4rem 0; } }
@media (min-width: 1024px) { section { padding: 5rem 0; } }
.section-tight { padding: 1.6rem 0; }
@media (min-width: 768px) { .section-tight { padding: 2rem 0; } }
@media (min-width: 1024px) { .section-tight { padding: 2.6rem 0; } }

/* App main */
.app-main { max-width:var(--maxw);margin:0 auto;padding: 1.6rem 24px 3rem; }
@media (min-width: 768px) { .app-main { padding: 2rem 24px 3.5rem; } }
@media (min-width: 1024px) { .app-main { padding: 2.4rem 24px 4rem; } }

/* KPIs */
.kpi { background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.5rem;position:relative;overflow:hidden; }
.kpi::before { content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--orange); }
.kpi.k-mint::before { background:var(--mint); }
.kpi.k-teal::before { background:var(--teal); }
.kpi .num { font-size:2.6rem;font-weight:700;letter-spacing:-.03em;color:var(--orange);line-height:1; }
.kpi.k-mint .num { color:var(--mint-dark); }
.kpi.k-teal .num { color:var(--teal); }
.kpi .lab { font-family:var(--serif);font-style:italic;color:var(--muted);font-size:.98rem;margin-top:.45rem; }

/* Solution cards */
.sol { position:relative;overflow:hidden;transition:.2s;cursor:default; }
.sol:hover { transform:translateY(-3px);box-shadow:var(--shadow-lg); }
.sol .ic { width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--mint-tint);color:var(--mint-dark);margin-bottom:1rem; }
.sol .ic svg { width:24px;height:24px; }
.sol .tag { font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-700); }
.sol h3 { margin:.5rem 0 .5rem; }

/* Pressures */
.pressures { display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center;font-weight:700;font-size: 1.2rem;color:var(--ink); }
@media (min-width: 768px) { .pressures { font-size: 1.5rem; } }
@media (min-width: 1024px) { .pressures { font-size: 1.7rem; } }
.pressures b { color:var(--teal); }
.pressures .sep { color:var(--orange); }

/* Colors */
.o { color:var(--orange); }
.t { color:var(--teal); }
.m { color:var(--mint-dark); }
.center { text-align:center; }
/* Wordmark : le « A » d'Aidance est TOUJOURS orange (charte p.7, interdit de le recolorer).
   Point d'enforcement unique — usage : Impact'<span class="wm-a">A</span>idance */
.wm-a { color:var(--orange); }

/* Request labels */
.req { font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase; }
.req-obl { color:var(--orange-700); }
.req-bonus { color:var(--mint-dark); }

.serif { font-family:var(--serif); }
.muted { color:var(--muted); }

/* Extraction gate (client view): while a document is being processed, each tab's
   data column shows the .extraction-pending-pane placeholder in place of the
   editable fields ([data-extracted-pane]). The documents list stays visible
   (with live status badges). Toggled by body.extraction-locked. */
.extraction-pending-pane { display:none; }
body.extraction-locked .extraction-pending-pane { display:flex; }
body.extraction-locked [data-extracted-pane] { display:none; }

/* Action links blocked (not hidden) while a document is being processed. */
body.extraction-locked .js-block-during-extraction {
    pointer-events:none;
    opacity:.55;
    cursor:not-allowed;
}

.wrap { max-width:var(--maxw);margin:0 auto;padding:0 24px; }
.grid { display:grid;gap:22px; }

/* ============================================
   RESPONSIVE
   ============================================ */

@media (min-width:769px) {
    .clientrow-inner { flex-direction:row;align-items:flex-start;gap:1rem; }
    .clientrow-headline { flex:0 0 auto;max-width:40%; }
    .clientrow-info { flex:1;min-width:0; }
    .clientrow-contact { min-width:200px;max-width:250px; }
    .clientrow-actions.rowact { justify-content:flex-end; }
}

@media (max-width:768px) {
    .hero-visual { margin:0 auto;max-width:300px; }
    .hero p.lead { max-width:none; }
    .auth-aside { display:none; }
    .clientrow-inner { flex-direction:column; }
    .clientrow-headline .nm { margin-top:.1rem; }
    .clientrow-contact { margin-top:.4rem; }
    .clientrow-actions.rowact { justify-content:flex-start; }
    .pagehead { align-items:flex-start; }
    .show-mobile { display:block; }
}

@media (max-width:560px) {
    .wrap,.app-main,.foot-in { padding-left:18px;padding-right:18px; }
    .clientrow-inner { gap:.6rem; }
    .clientrow-actions.rowact { gap:.4rem; }
    .clientrow-actions .btn { padding:.4rem .7rem;font-size:.8rem; }
}

@media (max-width:780px) {
    main.app-main .grid[style*="1.4fr"],main.app-main .grid[style*="1.55fr"] { grid-template-columns:1fr!important; }
    #ac-grid { grid-template-columns:1fr!important; }
}

@media print {
    body { background:#fff; }
}

/* ============================================
   ANIMATION
   ============================================ */

@keyframes fade {
    from { opacity:0;transform:translateY(4px); }
    to { opacity:1;transform:none; }
}
