:root{
    --ink:#eef2f7;
    --ink-2:#d8dee8;
    --muted:#9aa7ba;
    --line:#283247;
    --soft:#121826;
    --soft-2:#182133;
    --white:#111827;
    --brand:#090d16;
    --brand-2:#111827;
    --brand-3:#1f2937;
    --accent:#d6a35a;
    --accent-2:#f0c879;
    --accent-soft:#2b2114;
    --green:#42c184;
    --red:#ff6b66;
    --orange:#f0a245;
    --blue:#7aa7ff;
    --shadow:0 22px 65px rgba(0,0,0,.36);
    --shadow-soft:0 10px 28px rgba(0,0,0,.26);
    --radius:20px;
    --radius-sm:14px;
    --font:Inter, Arial, Helvetica, sans-serif;
    color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;font-family:var(--font);background:linear-gradient(180deg,#f7f7f5 0%,#edf0f3 100%);color:var(--ink);min-height:100%}
body{font-size:15px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:none}
img{max-width:100%}
button,input,select,textarea{font-family:inherit}
.app-shell{display:flex;min-height:100vh}
.mobile-overlay{display:none}
.sidebar{width:282px;position:fixed;left:0;top:0;bottom:0;background:
    radial-gradient(circle at 0 0,rgba(224,176,116,.16),transparent 32%),
    linear-gradient(180deg,var(--brand),var(--brand-2));
    color:#fff;padding:22px 18px;display:flex;flex-direction:column;z-index:30;box-shadow:10px 0 34px rgba(17,24,39,.17)}
.logo-box{display:flex;align-items:center;gap:12px;margin-bottom:22px;color:#fff;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:13px;text-decoration:none;min-height:76px}
.logo-symbol{width:48px;height:48px;flex:0 0 48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-2),var(--accent));font-weight:950;color:#21170d;letter-spacing:.04em;box-shadow:0 12px 24px rgba(0,0,0,.20)}
.logo-text{display:block;font-size:16px;font-weight:950;line-height:1.15;color:#fff;letter-spacing:-.02em}
.logo-text small{display:block;font-size:11px;font-weight:750;color:rgba(255,255,255,.72);margin-top:4px;letter-spacing:0}
.nav{display:flex;flex-direction:column;gap:7px}
.nav a{display:flex;align-items:center;gap:11px;color:#edf1f7;padding:13px 12px;border-radius:15px;font-weight:850;transition:.16s ease;min-height:48px;position:relative}
.nav a:hover,.nav a.active{background:rgba(255,255,255,.115);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.nav a.active:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:99px;background:var(--accent-2)}
.nav-icon{width:24px;text-align:center;font-size:18px;line-height:1}
.sidebar-footer{margin-top:auto;border-radius:20px;background:linear-gradient(135deg,rgba(224,176,116,.22),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.11);padding:16px;color:#fff;min-height:110px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;overflow:hidden;position:relative}
.sidebar-footer:before{content:"";position:absolute;right:-26px;top:-26px;width:92px;height:92px;border-radius:50%;background:rgba(255,255,255,.06)}
.sidebar-footer strong{font-size:14px;font-weight:950}.sidebar-footer span{font-size:12px;color:rgba(255,255,255,.72);line-height:1.35}
.main{margin-left:282px;width:calc(100% - 282px);min-height:100vh;display:flex;flex-direction:column}
.topbar{height:74px;background:rgba(255,255,255,.91);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid rgba(217,222,232,.9);position:sticky;top:0;z-index:20}
.mobile-menu{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:24px;color:var(--brand);align-items:center;justify-content:center;box-shadow:var(--shadow-soft)}
.brand-title{min-width:0}.brand-title strong{display:block;color:var(--ink);font-size:19px;font-weight:950;letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62vw}.brand-title span{display:block;font-size:13px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62vw}
.user-menu{display:flex;align-items:center;gap:12px;color:var(--ink);min-width:0}.user-identity{line-height:1.1}.user-identity strong{font-size:13px}.user-identity small{font-size:12px;color:var(--muted)}
.avatar{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-3));color:#fff;font-weight:950;box-shadow:0 10px 22px rgba(17,24,39,.18);flex:0 0 42px}
.content{padding:28px 30px 44px;max-width:1480px;width:100%;margin:0 auto}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.page-title h1{margin:0;color:var(--ink);font-size:33px;letter-spacing:-.04em;line-height:1.05}.page-title p{margin:7px 0 0;color:var(--muted);line-height:1.45}
.card{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:20px}.card h2,.card h3{margin-top:0;color:var(--ink);letter-spacing:-.02em}.card h2{font-size:22px}.card h3{font-size:18px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-section-title{font-size:16px;font-weight:950;margin:18px 0 10px;color:var(--ink);padding-top:4px}.form-group label{display:block;font-weight:900;color:var(--ink-2);font-size:13px;margin-bottom:8px}.help-text{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.35}
.form-control,select,textarea,input[type="date"],input[type="number"],input[type="text"],input[type="email"],input[type="password"]{width:100%;height:48px;border:1px solid #cfd6e2;border-radius:14px;padding:0 14px;background:#fff;color:var(--ink);font-size:15px;outline:none;transition:border-color .15s ease, box-shadow .15s ease, background .15s ease}
select{appearance:auto}.form-control[readonly],input[readonly]{background:#f7f8fa;color:#5d6675}textarea.form-control,textarea{height:116px;padding:13px 14px;resize:vertical;line-height:1.45}.form-control:focus,select:focus,textarea:focus,input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(185,132,71,.13)}
.radio-pills{display:flex;flex-wrap:wrap;gap:10px}.radio-pill input{display:none}.radio-pill span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:12px 14px;border-radius:14px;font-weight:900;color:var(--ink-2);background:#fff;cursor:pointer;min-height:46px}.radio-pill input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:#3f2a15;box-shadow:inset 0 0 0 1px rgba(185,132,71,.12)}.required{color:var(--red)}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;align-items:center;margin-top:22px}.btn{border:0;border-radius:14px;padding:12px 16px;font-weight:900;cursor:pointer;display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:46px;line-height:1.15;transition:transform .12s ease, box-shadow .12s ease, background .12s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(180deg,var(--accent-2),var(--accent));color:#21170d;box-shadow:0 11px 20px rgba(185,132,71,.23)}.btn-secondary{background:#edf1f6;color:var(--ink);border:1px solid #d2dae5}.btn-outline{background:#fff;color:var(--ink);border:1px solid #cdd6e2}.btn-danger{background:var(--red);color:#fff}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:950;white-space:nowrap}.badge-green{background:#e7f6ef;color:#0a6f49}.badge-red{background:#fdebea;color:#b4232b}.badge-orange{background:#fff3df;color:#a65c00}.badge-blue{background:#e9f1ff;color:#204c8f}.badge-gray{background:#eef1f5;color:#526173}.flash{border-radius:15px;padding:14px 16px;margin-bottom:18px;font-weight:850}.flash.success{background:#e7f6ef;color:#0a6f49;border:1px solid #ccebdd}.flash.error{background:#fdebea;color:#b4232b;border:1px solid #fad1cf}
.upload-box{display:block;border:2px dashed #c3a171;background:#fffaf2;border-radius:18px;padding:20px;text-align:center;color:#4c3216;font-weight:950;cursor:pointer;min-height:92px}.upload-box:hover{background:#fff6e8}.upload-box small{display:block;color:var(--muted);font-weight:650;margin-top:6px}.preview-grid,.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px;margin-top:14px}.preview-item,.photo-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#f0f2f5;min-height:92px}.preview-item img,.photo-item img{width:100%;height:116px;object-fit:cover;display:block}.photo-item .delete-link{position:absolute;right:7px;top:7px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;color:var(--red);font-weight:950;box-shadow:0 6px 14px rgba(0,0,0,.14)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;min-width:820px}.table th,.table td{padding:13px 13px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:top}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.045em;color:#5d697a;background:#f8fafc;position:sticky;top:0;z-index:1}.table tr:hover{background:#fcfdff}.table td .btn{margin:2px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.stat-card strong{display:block;font-size:31px;color:var(--ink);margin-top:8px;letter-spacing:-.04em}.stat-card span{color:var(--muted);font-weight:900}.stat-card small{color:var(--accent);font-weight:900}.searchbar{display:flex;gap:12px;margin-bottom:18px}.searchbar input{height:54px}.searchbar .btn{height:54px}.filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.detail-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px}.check-table{width:100%;border-collapse:collapse}.check-table td,.check-table th{padding:11px 8px;border-bottom:1px solid var(--line);font-size:14px}.toggle{display:inline-flex;width:44px;height:24px;border-radius:999px;background:#d6dce6;position:relative;vertical-align:middle}.toggle:after{content:"";position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;left:3px;top:3px;box-shadow:0 2px 4px rgba(0,0,0,.2)}.toggle.on{background:var(--green)}.toggle.on:after{left:23px}.footer-note{padding:12px 32px;color:var(--muted);font-weight:800;font-size:13px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;background:#fff}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 0,rgba(224,176,116,.24),transparent 28%),linear-gradient(135deg,var(--brand),#3b455d)}.login-card{width:min(460px,100%);background:#fff;border-radius:26px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.login-card img{display:none}.login-card:before{content:'Maintenance patrimoine';display:block;font-size:25px;font-weight:950;color:var(--ink);margin-bottom:8px;letter-spacing:-.035em}.login-card:after{content:'Portails · Clôtures · Mobilier urbain';display:block;color:var(--muted);font-weight:800;margin-bottom:20px}.print-only{display:none}
@media(max-width:1100px){
    .sidebar{transform:translateX(-104%);transition:transform .22s ease;width:286px}.sidebar.open{transform:translateX(0)}.mobile-overlay{display:block;position:fixed;inset:0;background:rgba(17,24,39,.36);z-index:25;opacity:0;pointer-events:none;transition:.18s ease}.menu-open .mobile-overlay{opacity:1;pointer-events:auto}.menu-open{overflow:hidden}.main{margin-left:0;width:100%}.mobile-menu{display:inline-flex}.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
    body{background:#f4f5f7}.topbar{padding:0 12px;height:62px}.mobile-menu{display:none}.brand-title strong{font-size:16px;max-width:calc(100vw - 88px)}.brand-title span{display:none}.user-menu{gap:8px}.user-menu .no-print{display:none}.avatar{width:38px;height:38px;border-radius:14px}.content{padding:16px 10px 102px}.page-title{display:block;margin-bottom:14px}.page-title h1{font-size:25px;line-height:1.08}.page-title p{font-size:13px}.grid-2,.grid-3,.grid-4,.stats,.filters{grid-template-columns:1fr;gap:12px}.card{padding:14px;border-radius:18px;margin-bottom:14px;box-shadow:0 8px 24px rgba(17,24,39,.055)}.card h2{font-size:19px}.form-section-title{margin:15px 0 8px}.form-control,select,textarea,input[type="date"],input[type="number"],input[type="text"],input[type="email"],input[type="password"]{height:50px;font-size:16px;border-radius:14px}textarea.form-control,textarea{height:120px}.radio-pills{display:grid;grid-template-columns:1fr;gap:8px}.radio-pill span{justify-content:center;min-height:50px}.searchbar{flex-direction:column;gap:8px}.searchbar .btn{width:100%;height:50px}.preview-grid,.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-box{padding:18px;min-height:84px}.footer-note{display:none}
    .btn-row{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:24;justify-content:stretch;box-shadow:0 -12px 24px rgba(17,24,39,.08)}.btn-row .btn{flex:1;padding:11px 8px;font-size:13px;min-height:48px}.btn-row .btn:only-child{max-width:none}
    .sidebar{transform:none!important;left:0;top:auto;right:0;bottom:0;width:100%;height:74px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:rgba(17,24,39,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 -12px 34px rgba(17,24,39,.22);z-index:28}.logo-box,.sidebar-footer{display:none}.nav{height:100%;display:flex;flex-direction:row;gap:4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav::-webkit-scrollbar{display:none}.nav a{min-width:74px;flex:0 0 74px;height:62px;padding:6px 4px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:10px;line-height:1.1;text-align:center;color:rgba(255,255,255,.72)}.nav a span:last-child{display:block}.nav-icon{width:auto;font-size:19px}.nav a.active{background:rgba(224,176,116,.18);color:#fff;box-shadow:inset 0 0 0 1px rgba(224,176,116,.20)}.nav a.active:before{display:none}.mobile-overlay{display:none!important}.menu-open{overflow:auto}
    .table-wrap{border:0;overflow:visible;background:transparent}.table{min-width:0;border-collapse:separate;border-spacing:0 10px}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(17,24,39,.055);overflow:hidden;margin-bottom:10px}.table td{border:0;border-bottom:1px solid var(--line);padding:10px 12px;font-size:14px}.table td:last-child{border-bottom:0}.table td:before{content:attr(data-label);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.045em;color:var(--muted);font-weight:950;margin-bottom:4px}.table td[data-label="Actions"],.table td[data-label="Action"]{display:flex;flex-wrap:wrap;gap:6px}.table td[data-label="Actions"]:before,.table td[data-label="Action"]:before{width:100%;display:block}.table td .btn{flex:1 1 auto;min-height:40px;padding:9px 10px;font-size:12px}.hide-mobile{display:none!important}
}
@media(max-width:420px){.content{padding-left:8px;padding-right:8px}.page-title h1{font-size:23px}.nav a{min-width:68px;flex-basis:68px;font-size:9.5px}.nav-icon{font-size:18px}.stats{gap:10px}.stat-card{padding:14px}.stat-card strong{font-size:27px}}
@media print{body{background:#fff}.sidebar,.topbar,.btn-row,.no-print,.footer-note,.mobile-overlay{display:none!important}.main{margin:0;width:100%}.content{padding:0;max-width:none}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.print-only{display:block}.page-title h1{font-size:26px}.table{min-width:0}.table th,.table td{font-size:11px;padding:6px}}

/* Correctif V5 : site unique + boutons visibles sur smartphone */
.form-group-wide{grid-column:span 2}
@media(max-width:720px){
  .form-group-wide{grid-column:1 / -1}
  .content{padding-bottom:calc(190px + env(safe-area-inset-bottom))!important}
  .btn-row{position:fixed!important;left:0!important;right:0!important;bottom:calc(74px + env(safe-area-inset-bottom))!important;background:rgba(255,255,255,.98)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:10px!important;border-top:1px solid var(--line)!important;z-index:40!important;justify-content:stretch!important;box-shadow:0 -12px 24px rgba(17,24,39,.10)!important;display:flex!important;visibility:visible!important;opacity:1!important}
  .btn-row .btn{flex:1 1 0!important;min-height:52px!important;padding:11px 8px!important;font-size:13px!important;white-space:normal!important;text-align:center!important;display:inline-flex!important}
  .sidebar{z-index:35!important}
  .check-table-photos{width:100%;border-collapse:separate;border-spacing:0 10px}
  .check-table-photos thead{display:none}
  .check-table-photos,.check-table-photos tbody,.check-table-photos tr,.check-table-photos td{display:block;width:100%}
  .check-table-photos tr{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(17,24,39,.055);overflow:hidden;margin-bottom:10px}
  .check-table-photos td{border:0;border-bottom:1px solid var(--line);padding:11px 12px;font-size:14px}
  .check-table-photos td:last-child{border-bottom:0}
  .check-table-photos td:before{content:attr(data-label);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.045em;color:var(--muted);font-weight:950;margin-bottom:5px}
  .upload-box-mini{min-height:64px;padding:14px;font-size:13px}
}


/* Patch V6 - Charte graphique sombre confortable */
html,body{background:radial-gradient(circle at 14% -10%,rgba(214,163,90,.13),transparent 30%),linear-gradient(180deg,#0b101b 0%,#111827 48%,#0b101b 100%)!important;color:var(--ink)!important}
a{color:#f0c879}.app-shell{background:transparent}.main{background:transparent}.content{background:transparent}.topbar{background:rgba(10,15,25,.88)!important;border-bottom:1px solid rgba(214,163,90,.12)!important;color:var(--ink)!important;box-shadow:0 12px 34px rgba(0,0,0,.22)}.brand-title strong,.brand-title span,.user-menu,.user-identity strong{color:var(--ink)!important}.user-identity small{color:var(--muted)!important}.mobile-menu{background:#121826!important;border-color:#2d3a52!important;color:var(--ink)!important}.sidebar{background:radial-gradient(circle at 0 0,rgba(214,163,90,.22),transparent 30%),linear-gradient(180deg,#080d16,#111827 58%,#0b101b)!important;border-right:1px solid rgba(214,163,90,.08)}.logo-box{background:rgba(255,255,255,.055)!important;border-color:rgba(214,163,90,.16)!important}.logo-symbol{background:linear-gradient(135deg,#f0c879,#b98447)!important;color:#171008!important}.nav a{color:rgba(238,242,247,.78)!important}.nav a:hover,.nav a.active{background:rgba(214,163,90,.13)!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(214,163,90,.14)!important}.sidebar-footer{background:linear-gradient(135deg,rgba(214,163,90,.16),rgba(255,255,255,.035))!important;border-color:rgba(214,163,90,.13)!important}.card,.stat-card,.detail-card,.login-card{background:linear-gradient(180deg,rgba(24,32,48,.97),rgba(18,24,38,.97))!important;border-color:#283247!important;box-shadow:0 20px 55px rgba(0,0,0,.34)!important;color:var(--ink)!important}.card h1,.card h2,.card h3,.page-title h1,.form-section-title{color:var(--ink)!important}.page-title p,.help-text,.card p,.footer-note{color:var(--muted)!important}.form-group label{color:var(--ink-2)!important}.form-control,select,textarea,input[type="date"],input[type="number"],input[type="text"],input[type="email"],input[type="password"],input[type="file"]{background:#0f1726!important;color:var(--ink)!important;border-color:#334159!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.form-control[readonly],input[readonly]{background:#151e30!important;color:#adb8ca!important}select option{background:#0f1726;color:#eef2f7}.form-control::placeholder,textarea::placeholder,input::placeholder{color:#7f8da3}.form-control:focus,select:focus,textarea:focus,input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 4px rgba(214,163,90,.16)!important;background:#111b2c!important}.radio-pill span{background:#0f1726!important;color:var(--ink-2)!important;border-color:#334159!important}.radio-pill input:checked+span{background:linear-gradient(180deg,#2b2114,#211a12)!important;border-color:#d6a35a!important;color:#f8e4bd!important}.btn-primary{background:linear-gradient(180deg,#f0c879,#c8903f)!important;color:#171008!important;box-shadow:0 12px 25px rgba(216,163,90,.22)!important}.btn-secondary{background:#202b3e!important;color:#eef2f7!important;border:1px solid #344158!important}.btn-outline{background:#111827!important;color:#eef2f7!important;border:1px solid #39465e!important}.btn-danger{background:#b93436!important;color:#fff!important}.badge-green{background:#123326!important;color:#69df9b!important}.badge-red{background:#3a171a!important;color:#ff8a84!important}.badge-orange{background:#3a2814!important;color:#ffc36f!important}.badge-blue{background:#162747!important;color:#9ec0ff!important}.badge-gray{background:#202a3b!important;color:#b8c3d5!important}.flash.success{background:#123326!important;color:#76e7a5!important;border-color:#1e5a3f!important}.flash.error{background:#3a171a!important;color:#ff958f!important;border-color:#6a2929!important}.upload-box{background:linear-gradient(180deg,#171f30,#121a29)!important;border-color:#8b6732!important;color:#f3d39a!important}.upload-box:hover{background:#1b2638!important}.upload-box small{color:#a9b4c7!important}.preview-item,.photo-item{background:#0f1726!important;border-color:#2f3b52!important}.photo-item .delete-link{background:rgba(17,24,39,.92)!important;color:#ff7c78!important}.table-wrap{background:#141c2b!important;border-color:#283247!important}.table th{background:#111827!important;color:#b4bfd0!important;border-bottom-color:#283247!important}.table td{border-bottom-color:#283247!important;color:#e9eef6!important}.table tr:hover{background:#182133!important}.table td a{color:#f0c879}.check-table td,.check-table th{border-bottom-color:#283247!important;color:#e9eef6!important}.searchbar input{background:#0f1726!important}.footer-note{background:#0f1726!important;border-top-color:#283247!important}.login-page{background:radial-gradient(circle at 20% 0,rgba(214,163,90,.20),transparent 30%),linear-gradient(135deg,#070b12,#111827 55%,#0b101b)!important}.login-card:before{color:#eef2f7!important}.login-card:after{color:#9aa7ba!important}.toggle{background:#3a4558!important}.toggle:after{background:#e7edf7!important}.toggle.on{background:#157a55!important}.mobile-overlay{background:rgba(0,0,0,.62)!important}
@media(max-width:720px){body{background:linear-gradient(180deg,#0b101b,#111827)!important}.topbar{background:rgba(10,15,25,.94)!important}.card{box-shadow:0 12px 34px rgba(0,0,0,.28)!important}.btn-row{background:rgba(13,19,31,.97)!important;border-top:1px solid #2a3549!important;box-shadow:0 -12px 26px rgba(0,0,0,.34)!important}.sidebar{background:rgba(9,13,22,.97)!important;border-top:1px solid rgba(214,163,90,.15)!important}.nav a.active{background:rgba(214,163,90,.18)!important}.table tr{background:linear-gradient(180deg,#182133,#131c2b)!important;border-color:#2a3549!important;box-shadow:0 10px 22px rgba(0,0,0,.22)!important}.table td{border-bottom-color:#2a3549!important}.table td:before{color:#9aa7ba!important}.check-table-photos tr{background:linear-gradient(180deg,#182133,#131c2b)!important;border-color:#2a3549!important;box-shadow:0 10px 22px rgba(0,0,0,.22)!important}.check-table-photos td{border-bottom-color:#2a3549!important}.check-table-photos td:before{color:#9aa7ba!important}.content{padding-bottom:calc(190px + env(safe-area-inset-bottom))!important}}
@media print{html,body{background:#fff!important;color:#111827!important}.card,.stat-card,.detail-card,.table-wrap{background:#fff!important;color:#111827!important;border-color:#ddd!important;box-shadow:none!important}.table th{background:#f5f5f5!important;color:#333!important}.table td{color:#111827!important;border-bottom-color:#ddd!important}.page-title h1,.card h1,.card h2,.card h3{color:#111827!important}}

/* Patch V7 - vignettes fiches dans les contrôles et dans la base */
.table .thumb-cell{width:92px;min-width:92px}
.list-thumb{width:76px;height:58px;object-fit:cover;border-radius:14px;display:block;border:1px solid rgba(214,163,90,.22);background:#0f1726;box-shadow:0 8px 18px rgba(0,0,0,.22)}
.list-thumb-empty{display:grid;place-items:center;color:#748198;font-weight:950;background:linear-gradient(180deg,#121a29,#0f1726);border:1px dashed #39465e}
.list-thumb-link{display:inline-block;border-radius:14px;outline:none}.list-thumb-link:focus .list-thumb{box-shadow:0 0 0 4px rgba(214,163,90,.18)}
@media(max-width:720px){
  .table .thumb-cell{width:100%;min-width:0}
  .table td[data-label="Photo"]{padding:12px!important}
  .table td[data-label="Photo"]:before{margin-bottom:8px!important}
  .list-thumb{width:100%;height:145px;border-radius:17px}
  .list-thumb-empty{height:92px}
}
@media print{.list-thumb{width:44px;height:34px;box-shadow:none;border-color:#ddd}.list-thumb-empty{height:34px;background:#fff;color:#777}}

/* Patch V8 - Tableau de bord synthétique sombre */
.dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;padding:24px;border-radius:26px;background:radial-gradient(circle at 10% 0,rgba(240,200,121,.18),transparent 34%),linear-gradient(135deg,rgba(28,38,56,.98),rgba(12,18,30,.98));border:1px solid rgba(214,163,90,.18);box-shadow:0 22px 55px rgba(0,0,0,.30)}
.dashboard-hero h1{margin:4px 0 6px;color:#f8fafc;font-size:36px;line-height:1;letter-spacing:-.045em}.dashboard-hero p{margin:0;color:#aab6c9;line-height:1.45}.dashboard-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#f0c879;font-size:12px;text-transform:uppercase;letter-spacing:.09em;font-weight:950}.dashboard-eyebrow:before{content:"";width:8px;height:8px;border-radius:50%;background:#f0c879;box-shadow:0 0 0 5px rgba(240,200,121,.13)}.dashboard-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi-card{position:relative;overflow:hidden;min-height:154px;padding:18px;border-radius:22px;background:linear-gradient(180deg,rgba(24,32,48,.98),rgba(16,23,37,.98));border:1px solid #2c3850;box-shadow:0 14px 34px rgba(0,0,0,.24);color:#eef2f7!important;text-decoration:none;display:flex;flex-direction:column;justify-content:flex-end}.kpi-card:after{content:"";position:absolute;right:-34px;top:-34px;width:100px;height:100px;border-radius:50%;background:rgba(214,163,90,.08)}.kpi-card:hover{transform:translateY(-2px);border-color:rgba(240,200,121,.38);box-shadow:0 18px 42px rgba(0,0,0,.32)}.kpi-card strong{font-size:42px;line-height:.95;letter-spacing:-.05em;color:#fff;margin:8px 0 4px}.kpi-card small{color:#97a5bb;line-height:1.35}.kpi-label{font-weight:950;color:#d8dee8;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.kpi-icon{position:absolute;left:16px;top:16px;width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:#111827;border:1px solid #354259;color:#f0c879;font-weight:950}.kpi-alert{border-color:rgba(255,107,102,.32);background:radial-gradient(circle at 90% 0,rgba(255,107,102,.14),transparent 34%),linear-gradient(180deg,rgba(30,29,43,.98),rgba(18,24,38,.98))}.kpi-alert .kpi-icon{color:#ff8a84;border-color:rgba(255,107,102,.35)}.dashboard-grid-main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:18px}.dashboard-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.dashboard-panel{padding:20px!important}.dashboard-panel h2{margin:0 0 4px!important;font-size:21px!important}.dashboard-panel p{margin:0;color:#97a5bb!important}.panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-score{min-width:56px;height:42px;border-radius:16px;display:grid;place-items:center;background:#111827;border:1px solid rgba(240,200,121,.22);color:#f0c879;font-weight:950;font-size:18px}.btn-small{min-height:38px!important;padding:8px 12px!important;border-radius:13px!important;font-size:13px!important}.bar-list{display:flex;flex-direction:column;gap:16px}.bar-row{display:grid;grid-template-columns:190px minmax(0,1fr) 48px;align-items:center;gap:12px}.bar-meta strong{display:block;color:#eef2f7;font-weight:950}.bar-meta span{display:block;color:#8f9db2;font-size:12px;margin-top:2px}.bar-track{height:12px;border-radius:999px;background:#0f1726;border:1px solid #2e3a51;overflow:hidden}.bar-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#d6a35a,#f0c879);min-width:4px}.bar-row em{font-style:normal;color:#c5cfde;font-weight:900;text-align:right}.health-panel{display:flex;flex-direction:column;align-items:center}.health-circle{width:168px;height:168px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#f0c879 var(--score-pct),#202a3b 0);position:relative;margin:2px auto 16px;box-shadow:inset 0 0 0 1px rgba(240,200,121,.18),0 16px 34px rgba(0,0,0,.24)}.health-circle:before{content:"";position:absolute;inset:15px;border-radius:50%;background:linear-gradient(180deg,#182133,#111827);border:1px solid #2d3950}.health-circle strong,.health-circle span{position:relative;z-index:1;grid-column:1;grid-row:1;text-align:center}.health-circle strong{font-size:36px;color:#fff;align-self:center;transform:translateY(-10px);letter-spacing:-.04em}.health-circle span{align-self:center;transform:translateY(22px);font-size:12px;color:#aab6c9;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.health-mini{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.health-mini span{padding:11px;border-radius:15px;background:#0f1726;border:1px solid #2d3950;color:#c8d1df;text-align:center;font-weight:850;font-size:13px}.priority-list,.compact-list{display:flex;flex-direction:column;gap:10px}.priority-item{display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px;align-items:center;padding:10px;border-radius:18px;background:#0f1726;border:1px solid #2b374e;color:#eef2f7!important;text-decoration:none}.priority-item:hover,.compact-item:hover,.sheet-mini-card:hover{border-color:rgba(240,200,121,.35);background:#131d2f}.priority-thumb{width:70px;height:58px;object-fit:cover;border-radius:14px;background:#121a29;border:1px solid rgba(214,163,90,.22)}.priority-thumb-empty{display:grid;place-items:center;color:#718098;font-weight:950}.priority-body{min-width:0}.priority-body strong{display:block;color:#eef2f7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.priority-body span{display:block;color:#aab6c9;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0 6px}.priority-body small{display:flex;gap:6px;flex-wrap:wrap}.compact-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:17px;background:#0f1726;border:1px solid #2b374e;color:#eef2f7!important;text-decoration:none}.compact-item strong{display:block;color:#eef2f7}.compact-item small{display:block;color:#98a6ba;font-size:12px;margin-top:3px}.empty-state{padding:16px;border-radius:17px;background:#0f1726;border:1px dashed #39465e;color:#95a3b8;text-align:center;font-weight:850}.sheet-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sheet-mini-card{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border-radius:18px;background:#0f1726;border:1px solid #2b374e;color:#eef2f7!important;text-decoration:none}.sheet-mini-thumb{width:74px;height:58px;border-radius:14px;object-fit:cover;background:#121a29;border:1px solid rgba(214,163,90,.22)}.sheet-mini-empty{display:grid;place-items:center;color:#718098;font-weight:950}.sheet-mini-card span{min-width:0}.sheet-mini-card strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-mini-card small{display:block;color:#98a6ba;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.quick-actions-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:0;margin-bottom:20px}.quick-actions-card a{padding:15px;border-radius:18px;background:rgba(240,200,121,.10);border:1px solid rgba(240,200,121,.18);color:#f3d39a!important;text-align:center;font-weight:950;text-decoration:none}.quick-actions-card a:hover{background:rgba(240,200,121,.16);border-color:rgba(240,200,121,.34)}
@media(max-width:1120px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid-main,.dashboard-grid-2{grid-template-columns:1fr}.bar-row{grid-template-columns:160px minmax(0,1fr) 44px}.sheet-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.dashboard-hero{padding:18px;border-radius:22px;align-items:stretch;flex-direction:column;margin-bottom:14px}.dashboard-hero h1{font-size:30px}.dashboard-hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.dashboard-hero-actions .btn{min-height:48px;padding:10px!important;font-size:13px!important}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi-card{min-height:132px;padding:14px;border-radius:19px}.kpi-card strong{font-size:34px}.kpi-card small{font-size:12px}.kpi-label{font-size:11px}.kpi-icon{width:32px;height:32px;border-radius:12px;left:12px;top:12px}.dashboard-grid-main,.dashboard-grid-2{gap:12px}.dashboard-panel{padding:16px!important}.panel-title-row{align-items:flex-start;margin-bottom:14px}.panel-title-row .btn{display:none}.bar-row{display:block}.bar-meta{display:flex;justify-content:space-between;gap:10px;align-items:flex-end;margin-bottom:8px}.bar-row em{display:block;text-align:left;margin-top:6px;font-size:12px;color:#94a3b8}.health-circle{width:142px;height:142px}.health-circle strong{font-size:31px}.health-mini{grid-template-columns:1fr}.priority-item{grid-template-columns:82px minmax(0,1fr);padding:10px}.priority-thumb{width:82px;height:70px}.compact-item{align-items:flex-start;flex-direction:column}.sheet-mini-grid{grid-template-columns:1fr}.sheet-mini-card{grid-template-columns:90px minmax(0,1fr)}.sheet-mini-thumb{width:90px;height:70px}.quick-actions-card{grid-template-columns:1fr;gap:8px}.quick-actions-card a{padding:13px}}
@media(max-width:420px){.kpi-grid{grid-template-columns:1fr}.dashboard-hero-actions{grid-template-columns:1fr}.priority-item{grid-template-columns:1fr}.priority-thumb{width:100%;height:128px}.sheet-mini-card{grid-template-columns:1fr}.sheet-mini-thumb{width:100%;height:125px}}
@media print{.dashboard-hero,.kpi-card,.dashboard-panel{box-shadow:none!important;background:#fff!important;color:#111827!important;border-color:#ddd!important}.dashboard-hero h1,.kpi-card strong,.dashboard-panel h2,.bar-meta strong,.compact-item strong,.priority-body strong{color:#111827!important}.kpi-card small,.dashboard-hero p,.dashboard-panel p,.compact-item small,.priority-body span{color:#555!important}.dashboard-grid-main,.dashboard-grid-2,.kpi-grid{grid-template-columns:1fr 1fr}.quick-actions-card{display:none!important}}

/* V10 - Travaux en régie */
.regie-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.regie-doc-note{padding:12px 14px;border-radius:16px;background:rgba(240,200,121,.08);border:1px solid rgba(240,200,121,.16);color:#f3d39a;font-weight:850}
@media(max-width:720px){.regie-photo-pair{grid-template-columns:1fr}.nav a{min-width:78px;flex-basis:78px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.kpi-grid{grid-template-columns:1fr}}


/* Correctif V16 — fichiers joints plus clairs et aperçus immédiats */
.section-help {
  margin: -4px 0 16px;
  color: var(--muted, #9aa7b5);
  font-size: .95rem;
  line-height: 1.45;
}

.document-upload-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 12px 0 16px;
}

.doc-upload-card {
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.035);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 12px 30px rgba(0,0,0,.16);
}

.doc-upload-card-wide {
  margin: 8px 0 22px;
}

.doc-upload-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-weight: 800;
  margin-bottom: 6px;
}

.doc-upload-help {
  color: var(--muted, #9aa7b5);
  font-size: .9rem;
  line-height: 1.35;
  margin-bottom: 12px;
}

.doc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}

.upload-choice,
.upload-choice-enhanced {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text, #eef2f7);
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}

.upload-choice:hover,
.upload-choice-enhanced:hover {
  background: rgba(255,255,255,.10);
}

.selected-file-list {
  display: grid;
  gap: 8px;
}

.selected-file-empty {
  border: 1px dashed rgba(255,255,255,.18);
  border-radius: 14px;
  padding: 12px;
  color: var(--muted, #9aa7b5);
  font-size: .9rem;
}

.selected-file-card {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.16);
  border-radius: 14px;
  padding: 9px;
}

.selected-file-thumb {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: rgba(218,177,91,.16);
  border: 1px solid rgba(218,177,91,.28);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: .75rem;
  font-weight: 900;
  color: var(--accent, #dab15b);
  flex: 0 0 auto;
}

.selected-file-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.selected-file-meta {
  min-width: 0;
}

.selected-file-meta strong,
.selected-file-meta small {
  display: block;
}

.selected-file-meta strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .92rem;
}

.selected-file-meta small {
  color: var(--muted, #9aa7b5);
  margin-top: 3px;
}

.document-existing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.existing-doc-group {
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.025);
}

.existing-doc-group h4 {
  margin: 0 0 10px;
  font-size: 1rem;
}

@media (max-width: 760px) {
  .document-upload-grid,
  .document-existing-grid {
    grid-template-columns: 1fr;
  }
  .doc-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .upload-choice,
  .upload-choice-enhanced {
    width: 100%;
  }
}

/* V20 - travaux externalisés : documents et réception détaillée */
.reception-section {
  margin-top: 22px;
  border: 1px solid rgba(218,177,91,.24) !important;
  background: linear-gradient(180deg, rgba(218,177,91,.08), rgba(255,255,255,.025)) !important;
}
.reception-section h2 {
  display: flex;
  align-items: center;
  gap: 10px;
}
.reception-section h2::before {
  content: '✓';
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #0f172a;
  background: var(--accent, #dab15b);
  font-size: 17px;
  font-weight: 950;
}
.existing-file-card {
  text-decoration: none;
  color: inherit;
}
.existing-file-card:hover {
  border-color: rgba(218,177,91,.35);
  background: rgba(218,177,91,.08);
}
.existing-photo-grid {
  margin: 8px 0 12px;
}
.doc-upload-card .doc-upload-title {
  color: var(--text, #eef2f7);
}
.doc-upload-card label,
.doc-upload-card-wide label {
  cursor: pointer;
}
@media(max-width:720px){
  .page-title > .btn-row {
    width: 100%;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .reception-section {
    padding: 14px !important;
  }
}
@media print{
  .reception-section {
    background: #fff !important;
    border-color: #ddd !important;
  }
  .reception-section h2::before { display:none; }
}


/* V25 - groupes de mobilier */
.furniture-group-box,.group-progress-card{border:1px solid rgba(240,200,121,.22)!important;background:linear-gradient(180deg,rgba(33,40,55,.96),rgba(18,24,38,.96))!important}
.group-progress-card h2,.furniture-group-box h2{color:#f0c879!important}
@media(max-width:720px){.group-progress-card .grid,.furniture-group-box .grid{grid-template-columns:1fr!important}.group-progress-card,.furniture-group-box{padding:14px!important}}


/* Correctif V26 — fusion agents V24 + groupes mobilier V25 + cache smartphone */
.user-mobile-name{
  display:none;
  max-width:260px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-weight:950;
  color:var(--ink, #eef2f7);
  font-size:14px;
  line-height:1.1;
}
.agents-actions{
  position:static!important;
  background:transparent!important;
  padding:0!important;
  border:0!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  justify-content:flex-start!important;
  align-items:center!important;
  box-shadow:none!important;
  z-index:auto!important;
}
.agents-actions .btn{
  flex:0 0 auto!important;
  min-height:42px!important;
  font-size:13px!important;
  padding:10px 12px!important;
}
.footer-note span:last-child{color:#f0c879!important;font-weight:950!important}
@media(max-width:720px){
  .topbar{gap:8px!important;align-items:center!important}
  .brand-title{min-width:0!important;flex:1 1 auto!important}
  .brand-title strong{max-width:calc(100vw - 170px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important}
  .user-menu{min-width:0!important;max-width:48vw!important;justify-content:flex-end!important;gap:6px!important}
  .user-menu .avatar{display:none!important}
  .user-mobile-name{display:block!important;color:#eef2f7!important;text-align:right!important;font-size:13px!important;max-width:45vw!important}
  .user-menu .user-identity{display:none!important}
  .agents-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important;margin-top:10px!important}
  .agents-actions .btn{width:100%!important;min-height:46px!important;font-size:13px!important}
  .table td .agents-actions{padding-top:8px!important}
}

/* V27 - groupes de mobilier visibles et utilisables sur smartphone */
.furniture-group-box.is-visible,
.group-progress-card.is-visible{display:block!important;}
form:has(input[name="element_type"][value="mobilier"]:checked) [data-furniture-group],
form:has(input[name="object_family"][value="mobilier"]:checked) [data-furniture-group],
form:has(select[name="element_type"] option[value="mobilier"]:checked) [data-furniture-group],
form:has(select[name="object_family"] option[value="mobilier"]:checked) [data-furniture-group]{display:block!important;}
@media(max-width:720px){
  .furniture-group-box,
  .group-progress-card{
    margin:16px 0!important;
    padding:18px!important;
    border-radius:24px!important;
    border:1px solid rgba(240,200,121,.34)!important;
    background:linear-gradient(180deg,rgba(35,43,60,.98),rgba(16,23,37,.98))!important;
  }
  .furniture-group-box h2,
  .group-progress-card h2{
    font-size:1.18rem!important;
    margin-bottom:8px!important;
  }
  .furniture-group-box .grid,
  .group-progress-card .grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .furniture-group-box .radio-pill{
    width:100%!important;
    min-height:56px!important;
    justify-content:flex-start!important;
    font-size:1rem!important;
  }
  .furniture-group-box input[type="number"],
  .group-progress-card input[type="number"]{
    min-height:56px!important;
    font-size:1.05rem!important;
  }
}

/* V28 - recherche rapide fiche technique associée */
.native-sheet-select-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}
.sheet-search-widget {
  margin-top: 10px;
  position: relative;
  z-index: 5;
}
.sheet-search-row {
  display: grid;
  grid-template-columns: minmax(155px, 0.35fr) minmax(220px, 1fr);
  gap: 10px;
  align-items: center;
}
.sheet-search-row .sheet-family-filter:only-child,
.sheet-search-row .sheet-search-inputbox:first-child:last-child {
  grid-column: 1 / -1;
}
.sheet-search-inputbox {
  position: relative;
}
.sheet-search-input {
  padding-right: 44px !important;
}
.sheet-search-clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 10px;
  background: rgba(255,255,255,0.10);
  color: var(--text, #f8fafc);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.sheet-search-clear:hover { background: rgba(255,255,255,0.18); }
.sheet-search-results {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  max-height: min(430px, 55vh);
  overflow: auto;
  padding: 8px;
  border: 1px solid rgba(148,163,184,0.25);
  border-radius: 18px;
  background: rgba(15, 23, 42, 0.98);
  box-shadow: 0 24px 70px rgba(0,0,0,0.45);
  backdrop-filter: blur(10px);
  z-index: 80;
}
.sheet-suggestion {
  width: 100%;
  display: block;
  text-align: left;
  border: 1px solid transparent;
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 6px;
  background: rgba(255,255,255,0.045);
  color: var(--text, #f8fafc);
  cursor: pointer;
}
.sheet-suggestion strong {
  display: block;
  font-size: 0.96rem;
  line-height: 1.25;
}
.sheet-suggestion small {
  display: block;
  margin-top: 4px;
  color: var(--muted, #aab4c3);
  font-size: 0.82rem;
  line-height: 1.25;
}
.sheet-suggestion:hover,
.sheet-suggestion.is-selected {
  border-color: rgba(230, 190, 92, 0.55);
  background: rgba(230, 190, 92, 0.12);
}
.sheet-search-empty {
  padding: 14px;
  color: var(--muted, #aab4c3);
  font-size: 0.9rem;
}
.sheet-search-help { margin-top: 8px; }
@media (max-width: 760px) {
  .sheet-search-row {
    grid-template-columns: 1fr;
  }
  .sheet-search-input,
  .sheet-family-filter {
    min-height: 54px;
    font-size: 16px !important;
  }
  .sheet-search-results {
    position: fixed;
    left: 12px;
    right: 12px;
    top: auto;
    bottom: calc(92px + env(safe-area-inset-bottom));
    max-height: 48vh;
    border-radius: 22px;
    z-index: 999;
  }
  .sheet-suggestion {
    padding: 15px 14px;
    margin-bottom: 8px;
  }
  .sheet-suggestion strong { font-size: 1rem; }
}


/* V29 - Ergonomie mobile contrôles
   Cache la barre des exports globaux sur smartphone pour libérer l'espace.
   Les exports restent disponibles depuis l'onglet Exports et sur ordinateur. */
@media (max-width: 820px) {
    .controls-export-toolbar {
        display: none !important;
    }
}

/* V30 - Recherche fiche associée mobile : les suggestions ne recouvrent plus la zone de saisie */
@media (max-width: 820px) {
    .sheet-search-widget {
        position: relative !important;
        z-index: 1 !important;
        margin-bottom: 14px !important;
    }

    .sheet-search-row {
        position: relative !important;
        z-index: 2 !important;
    }

    .sheet-search-inputbox,
    .sheet-search-input,
    .sheet-family-filter {
        position: relative !important;
        z-index: 3 !important;
    }

    .sheet-search-results {
        position: static !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: 100% !important;
        max-height: 285px !important;
        margin-top: 10px !important;
        margin-bottom: 14px !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        border-radius: 18px !important;
        box-shadow: inset 0 0 0 1px rgba(255,255,255,0.035), 0 12px 28px rgba(0,0,0,0.22) !important;
        background: rgba(15, 23, 42, 0.96) !important;
        z-index: 1 !important;
    }

    .sheet-search-results[hidden] {
        display: none !important;
    }

    .sheet-suggestion {
        padding: 13px 12px !important;
        margin-bottom: 7px !important;
        border-radius: 16px !important;
    }

    .sheet-suggestion strong {
        font-size: 0.95rem !important;
        line-height: 1.28 !important;
    }

    .sheet-suggestion small {
        font-size: 0.78rem !important;
    }
}


/* V31 - Recherche fiche associée : positionnement mobile avec clavier ouvert.
   Le champ remonte et les suggestions restent visibles au-dessus du clavier. */
@media (max-width: 820px) {
    body.sheet-search-keyboard-active {
        overflow-x: hidden !important;
    }

    body.sheet-search-keyboard-active .btn-row {
        display: none !important;
    }

    body.sheet-search-keyboard-active .content {
        padding-bottom: calc(58vh + 120px) !important;
    }

    body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile {
        scroll-margin-top: 92px !important;
        margin-bottom: calc(42vh + 28px) !important;
    }

    body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile .sheet-search-results {
        display: block;
        position: relative !important;
        max-height: var(--sheet-search-mobile-max, 220px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 8px !important;
    }

    body.sheet-search-keyboard-active .sidebar {
        transform: translateY(110%) !important;
        pointer-events: none !important;
    }

    body.sheet-search-keyboard-active .topbar {
        z-index: 40 !important;
    }
}

/* V32 - améliorations métier et mobile */
.native-site-select-hidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.site-search-widget{margin-top:8px;display:flex;flex-direction:column;gap:10px}.site-search-inputbox{position:relative}.site-search-input{padding-right:48px!important}.site-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:12px;background:#5a5f69;color:#fff;font-weight:950;font-size:22px;line-height:1;display:grid;place-items:center}.site-search-results{max-height:300px;overflow:auto;padding:8px;border-radius:18px;background:#0f1726;border:1px solid #334159;box-shadow:0 16px 34px rgba(0,0,0,.28)}.site-suggestion{width:100%;text-align:left;display:block;border:1px solid #283247;background:#151e30;color:#eef2f7;border-radius:16px;padding:13px 14px;margin-bottom:8px}.site-suggestion strong{display:block;font-weight:950;line-height:1.25}.site-suggestion small{display:block;color:#9ca8bc;margin-top:4px;line-height:1.25}.site-add-suggestion{border-color:rgba(240,200,121,.4);background:linear-gradient(180deg,rgba(240,200,121,.16),rgba(24,32,48,.96));color:#f8e4bd}.site-search-manual{padding:12px;border-radius:18px;background:#101827;border:1px solid rgba(240,200,121,.28);display:grid;gap:10px}.site-search-manual[hidden]{display:none!important}.site-search-manual label{font-weight:950;color:#f8e4bd}.site-manual-actions{display:flex;gap:10px;flex-wrap:wrap}.site-manual-feedback{color:#f0c879;font-weight:850}.site-search-empty{padding:12px;color:#9ca8bc}
.ral-current-preview{display:flex;align-items:center;gap:9px;margin-top:8px;padding:10px 12px;border-radius:14px;background:#0f1726;border:1px solid #2d3950;color:#dfe6ef;font-weight:850}.ral-dot{width:22px;height:22px;border-radius:50%;background:var(--ral,#6b7280);border:2px solid rgba(255,255,255,.75);box-shadow:0 0 0 1px rgba(0,0,0,.35)}.ral-swatch-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.ral-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #334159;background:#121b2d;color:#eef2f7;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850}.ral-chip:hover{border-color:#d6a35a;background:#182234}.ral-chip .ral-dot{width:18px;height:18px}
.state-select{font-weight:950;border-width:2px!important}.state-select[data-state-level="bon"]{border-color:#2fbf71!important;background:linear-gradient(90deg,rgba(47,191,113,.18),#0f1726)!important}.state-select[data-state-level="moyen"]{border-color:#e5c542!important;background:linear-gradient(90deg,rgba(229,197,66,.20),#0f1726)!important}.state-select[data-state-level="mauvais"]{border-color:#f59e0b!important;background:linear-gradient(90deg,rgba(245,158,11,.22),#0f1726)!important}.state-select[data-state-level="critique"]{border-color:#ef4444!important;background:linear-gradient(90deg,rgba(239,68,68,.24),#0f1726)!important}.state-pills .state-bon input:checked+span{border-color:#2fbf71!important;color:#b9f8d2!important;background:rgba(47,191,113,.16)!important}.state-pills .state-moyen input:checked+span{border-color:#e5c542!important;color:#fff0a3!important;background:rgba(229,197,66,.16)!important}.state-pills .state-mauvais input:checked+span{border-color:#f59e0b!important;color:#ffd6a0!important;background:rgba(245,158,11,.16)!important}.state-pills .state-critique input:checked+span{border-color:#ef4444!important;color:#ffb4b4!important;background:rgba(239,68,68,.18)!important}.action-pills .radio-pill span{justify-content:flex-start!important;text-align:left}.control-state-table th:nth-child(4),.control-state-table td:nth-child(4){min-width:180px}
@media (max-width:820px){.site-search-widget{margin-top:10px}.site-search-results{max-height:260px;border-radius:20px}.site-suggestion{padding:14px;margin-bottom:9px}.site-suggestion strong{font-size:16px}.site-suggestion small{font-size:13px}.site-manual-actions .btn{width:100%}.ral-swatch-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ral-chip{justify-content:flex-start;min-height:42px;border-radius:14px}.control-state-table .state-select{min-height:52px}.dashboard-hero-actions{display:grid!important;grid-template-columns:1fr;gap:10px}.dashboard-hero-actions .btn{width:100%;min-height:56px}.action-pills{grid-template-columns:1fr!important}.action-pills .radio-pill span{min-height:58px}.site-search-results,.sheet-search-results{scrollbar-width:thin}}


/* V33 - corrections mobile : suggestions uniquement après saisie + RAL compact dans le menu */
.native-ral-select-hidden{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.ral-dropdown-widget{
  position:relative;
  margin-top:0;
  z-index:6;
}
.ral-dropdown-button{
  width:100%;
  min-height:56px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 16px;
  border-radius:18px;
  border:1px solid #334159;
  background:#0f1726;
  color:#eef2f7;
  font:inherit;
  font-weight:850;
  text-align:left;
  cursor:pointer;
}
.ral-dropdown-button b{
  margin-left:auto;
  font-size:18px;
  color:#c6cedc;
}
.ral-placeholder{color:#9ca8bc;font-weight:600}
.ral-dropdown-list{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 8px);
  max-height:300px;
  overflow:auto;
  padding:8px;
  border-radius:18px;
  background:#0f1726;
  border:1px solid #334159;
  box-shadow:0 18px 38px rgba(0,0,0,.32);
  z-index:90;
}
.ral-dropdown-list[hidden]{display:none!important}
.ral-dropdown-option{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:9px 12px;
  margin-bottom:6px;
  border:1px solid transparent;
  border-radius:14px;
  background:#151e30;
  color:#eef2f7;
  text-align:left;
  font-weight:850;
  cursor:pointer;
}
.ral-dropdown-option:last-child{margin-bottom:0}
.ral-dropdown-option:hover,
.ral-dropdown-option.is-selected{
  border-color:rgba(240,200,121,.55);
  background:rgba(240,200,121,.12);
}
.ral-empty-dot{width:22px;height:22px;border-radius:50%;border:2px solid #64748b;display:inline-block;flex:0 0 auto;opacity:.55}
.ral-current-preview,.ral-swatch-list{display:none!important}
@media (max-width:820px){
  .ral-dropdown-list{position:static;margin-top:8px;max-height:245px;border-radius:18px}
  .ral-dropdown-button{min-height:58px;font-size:16px}
  .ral-dropdown-option{min-height:48px;font-size:15px}
}

/* V8 - champs vides plus propres sur mobile */
.clearable-field{position:relative;display:block}.clearable-field>.form-control{padding-right:48px!important}.clear-field-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:10px;background:#5a5f69;color:#fff;font-weight:950;font-size:22px;line-height:1;display:none;place-items:center;z-index:2}.clearable-field.has-value .clear-field-btn{display:grid}.clearable-field textarea.form-control + .clear-field-btn{top:22px;transform:none}.site-search-widget:not(.has-value) .site-search-clear{display:none}.site-search-widget:not(.has-value) .site-search-input{padding-right:18px!important}


/* V15 - Contrôle : recherche fiche sans filtre famille + scroll mobile renforcé */
.sheet-search-widget[data-control-clean="1"],
form .sheet-search-widget {
  scroll-margin-top: 120px;
}
@media (max-width: 820px) {
  .sheet-search-row {
    grid-template-columns: 1fr !important;
  }
  .sheet-search-row .sheet-family-filter {
    display: none !important;
  }
  .sheet-search-widget {
    scroll-margin-top: 125px !important;
  }
  body.sheet-search-keyboard-active .content {
    padding-bottom: calc(64vh + 160px) !important;
  }
  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile {
    scroll-margin-top: 125px !important;
    margin-bottom: calc(48vh + 44px) !important;
  }
  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile .sheet-search-results {
    max-height: var(--sheet-search-mobile-max, 300px) !important;
  }
}


/* V16 - Harmonisation globale des recherches fiche associée (contrôle, régie, externalisé) */
.sheet-search-widget {
  margin-top: 8px !important;
}
.sheet-search-row {
  grid-template-columns: 1fr !important;
}
.sheet-search-row .sheet-family-filter {
  display: none !important;
}
.sheet-search-inputbox {
  width: 100% !important;
}
.sheet-search-input {
  min-height: 50px !important;
  border-radius: 16px !important;
}
.sheet-search-help {
  font-size: .82rem !important;
  opacity: .82 !important;
}
.sheet-search-results {
  width: 100% !important;
}
.sheet-suggestion strong {
  overflow-wrap: anywhere;
}
@media (max-width: 820px) {
  .sheet-search-widget {
    scroll-margin-top: 150px !important;
    margin-bottom: 18px !important;
  }
  .sheet-search-input {
    min-height: 58px !important;
    font-size: 16px !important;
  }
  .sheet-search-results {
    max-height: 350px !important;
  }
  body.sheet-search-keyboard-active .content {
    padding-bottom: calc(72vh + 190px) !important;
  }
  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile {
    scroll-margin-top: 155px !important;
    margin-bottom: calc(55vh + 70px) !important;
  }
  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile .sheet-search-results {
    max-height: var(--sheet-search-mobile-max, 360px) !important;
  }
}

/* V22 - Correctif ergonomie mobile recherche :
   - suppression des grands blancs et des allers-retours de scroll ;
   - résultats affichés dans un panneau fixe visible au-dessus du clavier ;
   - aucun défilement automatique forcé. */
@media (max-width: 820px) {
  body.sheet-search-keyboard-active .content,
  body.sheet-search-keyboard-active .main-content,
  body.sheet-search-keyboard-active main {
    padding-bottom: inherit !important;
  }

  body.sheet-search-keyboard-active .sheet-search-widget,
  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile {
    margin-bottom: 12px !important;
    scroll-margin-top: 0 !important;
  }

  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile .sheet-search-results,
  .sheet-search-widget.is-searching-mobile .sheet-search-results:not([hidden]) {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: auto !important;
    bottom: calc(10px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-height: min(var(--sheet-search-mobile-max, 280px), 42vh) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 9999 !important;
    margin: 0 !important;
    padding: 8px !important;
    border-radius: 20px !important;
    background: rgba(15, 23, 42, 0.99) !important;
    border: 1px solid rgba(240, 200, 121, 0.32) !important;
    box-shadow: 0 18px 42px rgba(0,0,0,.55) !important;
  }

  .sheet-search-widget.is-searching-mobile .sheet-search-results[hidden] {
    display: none !important;
  }

  body.sheet-search-keyboard-active .btn-row,
  body.sheet-search-keyboard-active .form-actions,
  body.sheet-search-keyboard-active .sticky-actions {
    display: flex !important;
  }

  body.sheet-search-keyboard-active .sidebar {
    transform: none !important;
    pointer-events: auto !important;
  }

  .sheet-suggestion {
    min-height: 56px !important;
  }
}


/* V24 - Ergonomie mobile premium : recherche lisible sous le champ, aide courte, scroll doux sans vide. */
.sheet-search-help{
  margin-top:4px!important;
  margin-bottom:0!important;
  font-size:.78rem!important;
  line-height:1.25!important;
  opacity:.72!important;
}
.sheet-search-widget{gap:6px!important;}
@media (max-width:820px){
  .sheet-search-widget{
    position:relative!important;
    z-index:20!important;
    margin-top:6px!important;
    margin-bottom:10px!important;
    scroll-margin-top:82px!important;
  }
  .sheet-search-row{gap:8px!important;}
  .sheet-search-input{min-height:54px!important;}
  .sheet-search-help{font-size:12px!important;}
  body.sheet-search-keyboard-active .content,
  body.sheet-search-keyboard-active .main-content,
  body.sheet-search-keyboard-active main{
    padding-bottom:120px!important;
  }
  body.sheet-search-keyboard-active .sheet-search-widget,
  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile{
    margin-bottom:10px!important;
    scroll-margin-top:82px!important;
  }
  body.sheet-search-keyboard-active .sheet-search-widget.is-searching-mobile .sheet-search-results,
  .sheet-search-widget.is-searching-mobile .sheet-search-results:not([hidden]),
  .sheet-search-results:not([hidden]){
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-height:min(var(--sheet-search-mobile-max,240px),38vh)!important;
    margin:6px 0 4px 0!important;
    padding:7px!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    border-radius:18px!important;
    z-index:30!important;
  }
  .sheet-suggestion{min-height:50px!important;padding:11px 12px!important;margin-bottom:6px!important;}
  .sheet-suggestion strong{font-size:.94rem!important;line-height:1.2!important;}
  .sheet-suggestion small{font-size:.76rem!important;line-height:1.15!important;margin-top:3px!important;}
  .site-search-widget{gap:6px!important;margin-top:6px!important;margin-bottom:10px!important;}
  .site-search-results{max-height:min(240px,38vh)!important;margin-top:6px!important;padding:7px!important;}
  .site-suggestion{min-height:50px!important;padding:11px 12px!important;margin-bottom:6px!important;}
  .btn-row,.form-actions,.sticky-actions{gap:8px!important;}
}

/* =========================================================
   GPCMU V4 PRO — couche mobile métier unifiée
   ========================================================= */
:root{
  --pro-bg:#0f172a;
  --pro-panel:#111827;
  --pro-card:#ffffff;
  --pro-text:#111827;
  --pro-muted:#667085;
  --pro-line:#e5e7eb;
  --pro-primary:#2563eb;
  --pro-primary-dark:#1d4ed8;
  --pro-success:#16a34a;
  --pro-radius:18px;
  --pro-shadow:0 18px 45px rgba(15,23,42,.12);
}

.gpcmu-pro-ready .content{scroll-behavior:smooth;}
.card{border-radius:var(--pro-radius); border:1px solid rgba(226,232,240,.9);}
.page-title{gap:14px; align-items:flex-start;}
.page-title h1{letter-spacing:-.02em;}
.page-title p,.help-text{color:var(--pro-muted);}
.help-text{font-size:.88rem; line-height:1.35; margin-top:6px;}
.form-section-title{font-weight:800; color:#0f172a; margin:28px 0 14px; padding-top:4px; border-top:1px solid rgba(226,232,240,.8);}
.form-group label{font-weight:700; color:#1f2937; margin-bottom:7px;}
.form-control, input, select, textarea{border-radius:14px!important; min-height:46px;}
textarea.form-control{min-height:96px;}
.btn{border-radius:14px; min-height:44px; font-weight:800;}
.btn-row{gap:10px; flex-wrap:wrap;}
.btn-row.compact{margin-top:8px;}
.btn-row.compact .btn{min-height:38px; padding:8px 12px; font-size:.88rem;}

.native-select-hidden{position:absolute!important; opacity:0!important; pointer-events:none!important; width:1px!important; height:1px!important; overflow:hidden!important;}
.pro-combo,.pro-inline-suggest{position:relative; width:100%;}
.pro-combo-input{padding-right:42px!important; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' viewBox='0 0 24 24' stroke='%23667085' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m21 21-4.35-4.35M10.5 18a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15Z'/%3E%3C/svg%3E") no-repeat right 14px center;}
.pro-suggestion-list{position:absolute; z-index:9999; left:0; right:0; top:calc(100% + 6px); max-height:var(--suggest-max-height, 250px); overflow:auto; background:#fff; border:1px solid rgba(148,163,184,.45); border-radius:16px; box-shadow:0 18px 44px rgba(15,23,42,.22); padding:6px; -webkit-overflow-scrolling:touch;}
.pro-suggestion-item{display:block; width:100%; text-align:left; border:0; background:#fff; padding:12px 13px; border-radius:12px; color:#111827; font-weight:700; cursor:pointer;}
.pro-suggestion-item + .pro-suggestion-item{margin-top:3px;}
.pro-suggestion-item:hover,.pro-suggestion-item:focus{background:#eff6ff; outline:0;}
.pro-suggestion-item small{display:block; margin-top:3px; font-weight:600; color:#667085; font-size:.8rem; line-height:1.25;}
.pro-suggestion-item.add{color:#1d4ed8; background:#eff6ff;}
.pro-suggestion-empty{padding:12px; color:#667085; font-weight:700;}
.manual-choice-panel{display:none; margin-top:10px; padding:12px; border-radius:16px; background:#f8fafc; border:1px dashed #cbd5e1;}
.manual-choice-panel.show{display:block;}
.radio-pills{gap:8px;}
.radio-pill{border-radius:14px; min-height:44px;}
.upload-box{border-radius:18px;}
.preview-item img{border-radius:12px;}
.table-wrap{border-radius:16px; overflow:auto;}

@media (max-width:780px){
  body{background:#f3f4f6;}
  .main{min-width:0;}
  .topbar{position:sticky; top:0; z-index:40; min-height:58px; padding:8px 12px; backdrop-filter:blur(16px);}
  .brand-title span,.user-mobile-name,.user-identity{display:none!important;}
  .content{padding:12px 10px 88px!important;}
  .page-title{margin-bottom:10px;}
  .page-title h1{font-size:1.38rem; line-height:1.12;}
  .page-title p{font-size:.9rem; margin-top:4px;}
  .card{padding:14px!important; border-radius:20px; box-shadow:0 10px 26px rgba(15,23,42,.08);}
  .grid,.grid-2,.grid-3,.grid-4{display:grid!important; grid-template-columns:1fr!important; gap:12px!important;}
  .form-section-title{margin:20px 0 10px; font-size:.98rem;}
  .form-group{margin-bottom:8px;}
  .form-group label{font-size:.92rem;}
  .help-text{font-size:.8rem; margin-top:4px;}
  .form-control, input, select, textarea{min-height:48px!important; font-size:16px!important;}
  textarea.form-control{min-height:88px!important;}
  .btn-row{position:sticky; bottom:0; z-index:30; background:linear-gradient(180deg, rgba(243,244,246,0), #f3f4f6 20%, #f3f4f6); padding:18px 0 8px; margin-top:16px;}
  .btn-row .btn{flex:1 1 auto; justify-content:center;}
  .btn-row.compact{position:static; background:transparent; padding:0;}
  .pro-suggestion-list{max-height:min(var(--suggest-max-height, 220px), 42vh); border-radius:16px;}
  .pro-suggestion-item{padding:11px 12px; font-size:.92rem;}
  .radio-pills{display:grid; grid-template-columns:1fr; gap:8px;}
  .radio-pill{width:100%; justify-content:flex-start; padding:11px 12px;}
  .check-table, .check-table tbody, .check-table tr, .check-table td{display:block; width:100%;}
  .check-table thead{display:none;}
  .check-table tr{border:1px solid #e5e7eb; border-radius:16px; padding:10px; margin-bottom:10px; background:#fff;}
  .check-table td{border:0!important; padding:7px 0!important;}
  .check-table td::before{content:attr(data-label); display:block; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; color:#667085; font-weight:800; margin-bottom:3px;}
}

/* GPCMU V34 — stabilisation smartphone définitive */
@media (max-width: 820px){
  html{ scroll-behavior:auto!important; }
  body.gpcmu-keyboard-open .btn-row{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  body.gpcmu-keyboard-open .sidebar{
    transform:translateY(110%)!important;
    pointer-events:none!important;
  }
  body.gpcmu-keyboard-open .content{
    padding-bottom:24px!important;
  }
  .site-search-widget-v4{ position:relative!important; z-index:50!important; }
  .site-search-widget-v4 .site-search-results{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    margin-top:8px!important;
    max-height:min(240px, 34vh)!important;
    overflow:auto!important;
  }
  .site-search-widget-v4 .site-search-input{ font-size:16px!important; }
  select:focus{ scroll-margin-top:90px!important; }
}

/* V125 - confort mobile formulaire création fiche */
@media (max-width: 768px) {
  html { scroll-behavior: auto !important; }
  body { overflow-anchor: none; }
  .equipment-frequency-section { scroll-margin-top: 76px; scroll-margin-bottom: 130px; }
  input, textarea, select, button { scroll-margin-top: 76px; scroll-margin-bottom: 130px; }
  .sheet-search-keyboard-active { padding-bottom: 0 !important; }
  .sheet-search-results, .site-suggestion-results, .ral-dropdown-list {
    max-height: min(45vh, 320px);
    z-index: 10000;
  }
  .form-group:focus-within { position: relative; z-index: 20; }
}

/* V1.1 - Fiche technique compacte : mobilier, popups, GPS */
.gmu-hidden-select{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.furniture-group-compact{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 18px;padding:10px 12px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:rgba(15,23,42,.04)}
.compact-check{display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}.compact-check input{width:20px;height:20px;accent-color:#22c55e}.compact-qty{display:flex;align-items:center;gap:8px;font-weight:700}.compact-qty input{width:90px;min-height:42px}.compact-qty input:disabled{opacity:.45}
.select-popup-button{width:100%;min-height:52px;border:1px solid rgba(148,163,184,.35);border-radius:14px;background:rgba(255,255,255,.06);color:inherit;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;font-weight:800;text-align:left;cursor:pointer}.select-popup-button strong{font-size:20px;opacity:.8}.select-popup-button:hover{border-color:rgba(34,197,94,.65)}
.frequency-summary-box{display:grid;gap:12px}
.gmu-modal[hidden]{display:none!important}.gmu-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:flex-end;justify-content:center}.gmu-modal-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.72);backdrop-filter:blur(4px)}.gmu-modal-panel{position:relative;width:min(720px,100%);max-height:88vh;overflow:auto;background:#0f172a;color:#f8fafc;border:1px solid rgba(148,163,184,.25);border-radius:22px 22px 0 0;box-shadow:0 -24px 80px rgba(0,0,0,.35);padding:16px}.gmu-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.gmu-modal-head h2{margin:0;font-size:20px}.gmu-modal-close{border:0;background:rgba(255,255,255,.08);color:#fff;width:42px;height:42px;border-radius:50%;font-size:28px;line-height:1;cursor:pointer}.gmu-modal-open{overflow:hidden}.gmu-site-search{margin-bottom:12px}.gmu-site-results{display:grid;gap:8px}.gmu-site-result{display:block;width:100%;text-align:left;border:1px solid rgba(148,163,184,.25);border-radius:14px;background:rgba(255,255,255,.06);color:#fff;padding:12px 14px;cursor:pointer}.gmu-site-result strong{display:block}.gmu-site-result small{display:block;color:#cbd5e1;margin-top:4px}.gmu-empty{padding:18px;text-align:center;color:#cbd5e1}.gmu-frequency-grid{display:grid;gap:16px}.gmu-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px}.gmu-choice{display:flex;align-items:center;gap:10px;border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:12px;background:rgba(255,255,255,.06);font-weight:800}.gmu-choice input{width:20px;height:20px;accent-color:#22c55e}.gmu-frequency-validate{width:100%;min-height:52px}@media (min-width:760px){.gmu-modal{align-items:center}.gmu-modal-panel{border-radius:22px}.gmu-frequency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.gmu-choice-list{grid-template-columns:1fr}.furniture-group-compact{align-items:stretch}.compact-qty input{width:110px}}




/* V1.1.2 - Bouton Annuler sur toutes les fenêtres de sélection fiche technique */
.gmu-modal-panel{display:flex;flex-direction:column;}
.gmu-modal-body{overflow:auto;}
.gmu-modal-footer{position:sticky;bottom:-16px;margin:14px -16px -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#0f172a;border-top:1px solid rgba(148,163,184,.22);display:flex;gap:10px;justify-content:flex-end;}
.gmu-modal-cancel{min-height:48px;min-width:120px;justify-content:center;}
@media (max-width:560px){.gmu-modal-footer{justify-content:stretch}.gmu-modal-cancel{width:100%;}}

/* V1.1.3 - Bouton Annuler dans les blocs Utiliser / Ajouter durablement */
.manual-select-v14-row,
.custom-option-row{
  display:grid!important;
  grid-template-columns:1fr 1fr 1fr!important;
  gap:10px!important;
  align-items:stretch!important;
}
.manual-select-v14-input,
.custom-option-input{
  grid-column:1 / -1!important;
  width:100%!important;
}
.manual-select-v14-row .btn,
.custom-option-row .btn,
.site-manual-actions .btn{
  min-height:54px!important;
  border-radius:14px!important;
  padding:10px 8px!important;
  justify-content:center!important;
  text-align:center!important;
  white-space:normal!important;
  line-height:1.12!important;
}
.manual-select-v14-cancel,
.custom-option-cancel,
.site-manual-cancel{
  background:transparent!important;
  border:1px solid rgba(148,163,184,.38)!important;
  color:inherit!important;
}
.site-manual-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr 1fr!important;
  gap:10px!important;
  align-items:stretch!important;
}
@media (max-width:560px){
  .manual-select-v14-row,
  .custom-option-row,
  .site-manual-actions{
    grid-template-columns:1fr 1fr 1fr!important;
  }
  .manual-select-v14-row .btn,
  .custom-option-row .btn,
  .site-manual-actions .btn{
    min-width:0!important;
    font-size:.86rem!important;
  }
}

/* V1.14 - Fenêtre fréquences compacte : boutons carrés 2 par ligne + actions alignées */
.gmu-frequency-compact-modal .gmu-modal-panel{
  max-height:78vh;
  padding:14px;
}
.gmu-frequency-compact-modal .gmu-modal-body{
  padding-bottom:0;
}
.gmu-frequency-compact-modal .gmu-modal-footer{
  display:none!important;
}
.gmu-frequency-compact{
  gap:12px;
}
.gmu-frequency-compact > div > label{
  display:block;
  margin:0 0 8px;
  font-weight:800;
  color:#f8fafc;
}
.gmu-choice-tiles{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  margin:0 0 10px!important;
}
.gmu-choice-tile{
  min-height:58px;
  justify-content:center;
  text-align:center;
  border-radius:14px!important;
  padding:10px 8px!important;
  cursor:pointer;
  user-select:none;
}
.gmu-choice-tile input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.gmu-choice-tile span{
  font-weight:900;
  font-size:15px;
  line-height:1.15;
}
.gmu-choice-tile:has(input:checked){
  border-color:#22c55e!important;
  background:rgba(34,197,94,.16)!important;
  box-shadow:inset 0 0 0 2px rgba(34,197,94,.35);
}
.gmu-frequency-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:8px;
}
.gmu-frequency-actions .btn{
  min-height:52px;
  width:100%;
}
.gmu-frequency-actions .gmu-frequency-validate{
  width:100%;
}
@media (max-width:560px){
  .gmu-frequency-compact-modal .gmu-modal-panel{
    max-height:82vh;
  }
  .gmu-choice-tiles{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .gmu-choice-tile{
    min-height:54px;
  }
}


/* =========================================================
   PATCH V117 — Fiche technique : boutons uniquement en bas de page
   Objectif : supprimer la barre flottante Annuler / Créer la fiche
   pendant la saisie de la fiche technique. Les boutons restent dans le
   formulaire, uniquement à la fin de la page.
   ========================================================= */
body.fiche-create-page .content{
  padding-bottom:calc(100px + env(safe-area-inset-bottom))!important;
}
body.fiche-create-page .fiche-create-form{
  margin-bottom:18px!important;
  padding-bottom:18px!important;
}
body.fiche-create-page .fiche-create-form .btn-row,
body.fiche-create-page .fiche-create-form .fiche-create-actions{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  z-index:auto!important;
  width:100%!important;
  margin:22px 0 0 0!important;
  padding:14px 0 0 0!important;
  border-top:1px solid rgba(148,163,184,.22)!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  justify-content:stretch!important;
}
body.fiche-create-page .fiche-create-form .btn-row .btn,
body.fiche-create-page .fiche-create-form .fiche-create-actions .btn{
  flex:1 1 0!important;
  min-height:54px!important;
}
@media(max-width:720px){
  body.fiche-create-page .content{
    padding-bottom:calc(104px + env(safe-area-inset-bottom))!important;
  }
  body.fiche-create-page .fiche-create-form .btn-row,
  body.fiche-create-page .fiche-create-form .fiche-create-actions{
    position:static!important;
    bottom:auto!important;
    padding:14px 0 0 0!important;
    border-top:1px solid #2a3549!important;
    background:transparent!important;
  }
}

/* V120 - confort de défilement fiche technique */
@media (max-width:820px){
  body.fiche-create-page{scroll-padding-top:92px;scroll-padding-bottom:160px;}
}

/* V130 - affichage évolution contrôle */
.badge small{font-size:11px;font-weight:850;opacity:.82;margin-left:2px}
.priority-body small .badge{margin-top:2px}
.table .badge{vertical-align:middle}

/* GMU V131 - Interventions régie : anomalies du dernier contrôle */
.regie-anomaly-card{border:1px solid rgba(255,255,255,.08)!important;background:linear-gradient(180deg,rgba(24,33,51,.98),rgba(19,28,43,.98))!important;margin:16px 0!important}
.regie-anomaly-list{display:grid;gap:10px;margin-top:12px}
.regie-last-control{font-size:.9rem;color:#b8c3d5;background:rgba(15,23,38,.7);border:1px solid #2a3549;border-radius:14px;padding:10px 12px}
.regie-empty-anomalies{color:#b8c3d5;background:rgba(15,23,38,.7);border:1px dashed #334159;border-radius:14px;padding:14px;text-align:center;font-weight:800}
.regie-anomaly-line{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;border-radius:16px;border:1px solid #334159;background:#0f1726;color:#eef2f7;cursor:pointer}
.regie-anomaly-line input{width:22px;height:22px;accent-color:#22c55e}
.regie-anomaly-main{display:flex;flex-direction:column;gap:3px;min-width:0}.regie-anomaly-main strong{font-size:.98rem}.regie-anomaly-main small{color:#b8c3d5;line-height:1.35}.regie-anomaly-badge{font-size:.82rem;font-weight:950;border-radius:999px;padding:6px 9px;white-space:nowrap;color:#fff;background:#64748b}.regie-anomaly-line.state-moyen .regie-anomaly-badge{background:#f59e0b;color:#241500}.regie-anomaly-line.state-mauvais .regie-anomaly-badge{background:#f97316;color:#2a0d00}.regie-anomaly-line.state-critique .regie-anomaly-badge{background:#ef4444;color:#fff}.regie-resolved-history{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.regie-resolved-history strong{color:#dbe4f0;width:100%;font-size:.9rem}@media(max-width:720px){.regie-anomaly-line{grid-template-columns:auto 1fr;align-items:flex-start}.regie-anomaly-badge{grid-column:2;justify-self:start}.regie-anomaly-card{margin:12px 0!important}}


/* GMU V132 - Interventions régie : anomalies compactes avec photos avant/après */
.regie-anomaly-block{border:1px solid #334159;background:#0f1726;border-radius:16px;padding:10px;display:grid;gap:10px}
.regie-anomaly-block .regie-anomaly-line{border:0!important;background:transparent!important;padding:0!important;border-radius:0!important}
.regie-anomaly-photo-zone{border-top:1px solid rgba(255,255,255,.08);padding-top:9px;display:grid;gap:8px}
.regie-anomaly-photo-title{font-size:.86rem;font-weight:900;color:#dbe4f0;display:flex;justify-content:space-between;gap:8px;align-items:center}.regie-anomaly-photo-title small{color:#91a0b8;font-weight:700}
.regie-anomaly-upload{display:inline-flex!important;align-items:center;justify-content:center;min-height:38px;border-radius:12px;padding:8px 10px!important;font-size:.86rem;justify-self:start}
.regie-anomaly-existing-photos{display:flex;gap:6px;flex-wrap:wrap}.regie-anomaly-existing-photos a{width:54px;height:54px;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.14);display:block;background:#111827}.regie-anomaly-existing-photos img{width:100%;height:100%;object-fit:cover;display:block}
.selected-file-pill{display:inline-flex;max-width:100%;padding:5px 8px;border-radius:999px;background:#1f2a3d;color:#dbe4f0;font-size:.78rem;margin:2px 4px 2px 0;word-break:break-word}
@media(max-width:720px){.regie-anomaly-block{padding:9px}.regie-anomaly-upload{width:100%}.regie-anomaly-photo-title{display:block}.regie-anomaly-existing-photos a{width:48px;height:48px}}

/* GMU V133 — vignettes photos par anomalie régie */
.regie-anomaly-new-photos{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.regie-photo-thumb{position:relative;width:58px;height:58px;border-radius:11px;overflow:hidden;border:1px solid rgba(255,255,255,.16);background:#111827;display:flex;align-items:center;justify-content:center;color:#dbe4f0;text-decoration:none}
.regie-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.regie-photo-thumb small{position:absolute;right:3px;bottom:3px;background:rgba(0,0,0,.68);color:#fff;border-radius:999px;min-width:18px;height:18px;line-height:18px;text-align:center;font-size:.68rem;font-weight:900}
.regie-photo-help{font-size:.78rem;font-weight:700;color:#9fb0c8;margin:4px 0 6px}
@media(max-width:720px){.regie-photo-thumb{width:52px;height:52px}}

/* GMU V134 — compteur photos retiré, aide compacte */
.regie-photo-counter{display:none!important}
.regie-photo-help{font-size:.78rem;font-weight:700;color:#9fb0c8;margin:4px 0 6px}

/* GPCMU V21 Phase 3 - styles communs PhotoManager */
.gmu-removable-preview,
.regie-photo-thumb-removable,
.gmu-removable-file,
.gpcmu-photo-preview-item {
    position: relative;
}
.gmu-photo-remove,
.gmu-file-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 999px;
    background: rgba(20, 24, 35, .88);
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    line-height: 28px;
    text-align: center;
    cursor: pointer;
    z-index: 3;
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
}
.gmu-file-remove {
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    background: #7f1d1d;
}
.selected-file-card.gmu-removable-file {
    padding-right: 42px;
}
.gmu-photo-remove:active {
    transform: scale(.94);
}
.gmu-file-remove:active {
    transform: translateY(-50%) scale(.94);
}
.gpcmu-photo-preview-item {
    display: inline-block;
    margin: 6px;
}
.gpcmu-photo-preview-item img {
    display: block;
}

/* =========================================================
   V25 — Réception externalisée : popup mobile plein écran
   Objectif : éviter l'effet fenêtre zoomée sur smartphone et rendre
   la réception plus lisible avec en-tête et actions fixes.
   ========================================================= */
.external-reception-modal .gmu-modal-panel{
  overflow:hidden;
}
.external-reception-modal .gmu-modal-head{
  flex:0 0 auto;
}
.external-reception-modal .gmu-modal-body{
  flex:1 1 auto;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.external-reception-modal .gmu-modal-footer{
  flex:0 0 auto;
}
.external-reception-modal input,
.external-reception-modal textarea,
.external-reception-modal select{
  font-size:16px;
}
.external-reception-modal .grid.grid-3 label{
  min-height:46px;
  display:flex;
  align-items:center;
  gap:10px;
}

@media (max-width:760px){
  .external-reception-modal{
    align-items:stretch!important;
    justify-content:stretch!important;
  }
  .external-reception-modal .gmu-modal-backdrop{
    backdrop-filter:none;
    background:rgba(2,6,23,.88);
  }
  .external-reception-modal .gmu-modal-panel{
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    border-radius:0!important;
    border-left:0!important;
    border-right:0!important;
    border-bottom:0!important;
    padding:0!important;
    box-shadow:none!important;
    display:flex!important;
    flex-direction:column!important;
  }
  @supports not (height:100dvh){
    .external-reception-modal .gmu-modal-panel{
      height:100vh!important;
      max-height:100vh!important;
      min-height:100vh!important;
    }
  }
  .external-reception-modal .gmu-modal-head{
    position:sticky;
    top:0;
    z-index:3;
    min-height:74px;
    margin:0!important;
    padding:16px 18px 12px;
    background:#0f172a;
    border-bottom:1px solid rgba(148,163,184,.22);
  }
  .external-reception-modal .gmu-modal-head h2{
    font-size:22px;
    line-height:1.15;
  }
  .external-reception-modal .gmu-modal-close{
    width:52px;
    height:52px;
    font-size:34px;
    flex:0 0 auto;
  }
  .external-reception-modal .gmu-modal-body{
    padding:14px 18px 120px!important;
    flex:1 1 auto!important;
    overflow:auto!important;
  }
  .external-reception-modal .grid,
  .external-reception-modal .grid.grid-2,
  .external-reception-modal .grid.grid-3{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .external-reception-modal .grid.grid-3 label{
    width:100%;
    min-height:54px;
    padding:10px 12px;
    border:1px solid rgba(148,163,184,.22);
    border-radius:14px;
    background:rgba(255,255,255,.04);
  }
  .external-reception-modal .grid.grid-3 input[type="checkbox"]{
    width:22px;
    height:22px;
    flex:0 0 auto;
  }
  .external-reception-modal textarea.form-control{
    min-height:116px;
  }
  .external-reception-modal .gmu-modal-footer{
    position:fixed!important;
    left:0;
    right:0;
    bottom:0!important;
    z-index:4;
    margin:0!important;
    padding:12px 18px calc(12px + env(safe-area-inset-bottom))!important;
    background:rgba(15,23,42,.98)!important;
    border-top:1px solid rgba(148,163,184,.28)!important;
    display:grid!important;
    grid-template-columns:1fr 1.4fr;
    gap:12px!important;
  }
  .external-reception-modal .gmu-modal-footer .btn{
    width:100%;
    min-height:56px;
    justify-content:center;
    padding-left:10px;
    padding-right:10px;
    font-size:15px;
  }
}

/* =========================================================
   V26 — Réception externalisée : footer mobile compact et fond opaque
   Objectif : masquer totalement les boutons de la fiche derrière la popup
   et rendre Annuler / Valider moins envahissants sur smartphone.
   ========================================================= */
@media (max-width:760px){
  .external-reception-modal{
    z-index:99999!important;
    background:#020617!important;
  }
  .external-reception-modal .gmu-modal-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:0!important;
    background:#020617!important;
    opacity:1!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .external-reception-modal .gmu-modal-panel{
    position:relative!important;
    z-index:1!important;
    background:#0f172a!important;
  }
  .external-reception-modal .gmu-modal-body{
    padding-bottom:92px!important;
  }
  .external-reception-modal .gmu-modal-footer{
    z-index:6!important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom))!important;
    background:#07101f!important;
    box-shadow:0 -12px 28px rgba(0,0,0,.55)!important;
    grid-template-columns:1fr 1.25fr!important;
    gap:10px!important;
  }
  .external-reception-modal .gmu-modal-footer .btn{
    min-height:46px!important;
    border-radius:16px!important;
    padding:8px 10px!important;
    font-size:14px!important;
    line-height:1.15!important;
  }
}


/* =========================================================
   V27 — Réception externalisée : boutons footer plus petits
   Objectif : réduire l'emprise visuelle des actions sur mobile.
   ========================================================= */
@media (max-width:760px){
  .external-reception-modal .gmu-modal-body{
    padding-bottom:78px!important;
  }
  .external-reception-modal .gmu-modal-footer{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom))!important;
  }
  .external-reception-modal .gmu-modal-footer .btn{
    width:auto!important;
    min-height:42px!important;
    height:42px!important;
    border-radius:14px!important;
    padding:7px 14px!important;
    font-size:13px!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    flex:0 0 auto!important;
  }
  .external-reception-modal .gmu-modal-footer .btn-secondary{
    min-width:112px!important;
    max-width:34vw!important;
  }
  .external-reception-modal .gmu-modal-footer .btn-primary{
    min-width:168px!important;
    max-width:52vw!important;
  }
}

/* V28 — Réception externalisée : signatures tactiles */
.external-signature-modal .gmu-modal-panel {
    background: #ffffff;
}
.signature-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.signature-card {
    border: 1px solid #d9e2ef;
    border-radius: 14px;
    padding: 12px;
    background: #f8fafc;
}
.signature-card h3 {
    margin: 0 0 8px;
    font-size: 15px;
    color: #1f2937;
}
.signature-pad {
    width: 100%;
    height: 150px;
    display: block;
    border: 1px dashed #93a4b8;
    border-radius: 12px;
    background: #fff;
    touch-action: none;
}
.signature-existing {
    width: 100%;
    max-height: 110px;
    object-fit: contain;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    margin-bottom: 8px;
}
.signature-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}
.signature-footer {
    justify-content: center;
    gap: 10px;
}
.signature-footer .btn {
    min-width: 130px;
    width: auto;
    max-width: 220px;
    padding-inline: 14px;
}
@media (max-width: 720px) {
    .external-signature-modal .gmu-modal-panel {
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
    }
    .signature-grid {
        grid-template-columns: 1fr;
    }
    .signature-pad {
        height: 140px;
    }
    .signature-footer .btn {
        min-width: 112px;
        max-width: 180px;
        height: 44px;
        font-size: 13px;
    }
}

/* V29 — Travaux externalisés : réception/signature mobile fiabilisées */
.external-reception-modal.is-open,
.external-signature-modal.is-open {
    z-index: 10000;
}
.external-reception-modal .gmu-modal-panel,
.external-signature-modal .gmu-modal-panel {
    background: #101827 !important;
    color: #eef3ff !important;
}
.external-reception-footer,
.external-signature-footer {
    background: #0b1220 !important;
    border-top: 1px solid rgba(148,163,184,.25) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom)) !important;
}
.external-reception-footer .btn,
.external-signature-footer .btn {
    width: auto !important;
    flex: 0 0 auto !important;
    min-height: 42px !important;
    height: 42px !important;
    border-radius: 14px !important;
    padding: 8px 14px !important;
    font-size: 14px !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
}
.external-reception-footer .reception-cancel-btn,
.external-signature-footer .signature-back-btn {
    min-width: 104px !important;
    max-width: 34vw !important;
}
.external-reception-footer .reception-validate-btn {
    min-width: 170px !important;
    max-width: 54vw !important;
}
.external-signature-footer .signature-final-btn {
    min-width: 128px !important;
    max-width: 45vw !important;
}
.external-signature-modal .gmu-modal-head h2,
.external-signature-modal .signature-card h3 {
    color: #f8fafc !important;
}
.external-signature-modal .section-help {
    color: #aeb8ca !important;
}
.external-signature-modal .signature-card {
    background: #162235 !important;
    border-color: rgba(148,163,184,.28) !important;
}
.external-signature-modal .signature-pad {
    background: #ffffff !important;
    border: 2px dashed rgba(221, 172, 81, .75) !important;
}
body.gmu-modal-open .bottom-nav,
body.gmu-modal-open .btn-row.sticky,
body.gmu-modal-open .action-bar,
body.gmu-modal-open .page-actions {
    visibility: hidden !important;
    pointer-events: none !important;
}
.external-reception-modal.is-open .gmu-modal-panel,
.external-signature-modal.is-open .gmu-modal-panel {
    visibility: visible !important;
}
@media (max-width: 720px) {
    .external-reception-modal .gmu-modal-panel,
    .external-signature-modal .gmu-modal-panel {
        width: 100vw !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
    }
    .external-reception-modal .gmu-modal-body,
    .external-signature-modal .gmu-modal-body {
        padding-bottom: 92px !important;
    }
    .external-reception-footer .btn,
    .external-signature-footer .btn {
        height: 40px !important;
        min-height: 40px !important;
        font-size: 13px !important;
        padding-inline: 12px !important;
    }
    .external-reception-footer .reception-cancel-btn,
    .external-signature-footer .signature-back-btn {
        min-width: 96px !important;
    }
    .external-reception-footer .reception-validate-btn {
        min-width: 150px !important;
        max-width: 50vw !important;
    }
    .external-signature-footer .signature-final-btn {
        min-width: 116px !important;
    }
}

/* V30 — Signatures réception : centrage, noms et lisibilité mobile */
.external-signature-modal .gmu-modal-panel {
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.external-signature-modal .gmu-modal-body {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}
.external-signature-modal .signature-grid {
    width: 100% !important;
    max-width: 680px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.signature-person-name {
    margin: -4px 0 10px !important;
    padding: 8px 10px !important;
    border-radius: 10px !important;
    background: rgba(221, 172, 81, .12) !important;
    color: #f8fafc !important;
    font-weight: 800 !important;
    font-size: 14px !important;
    border: 1px solid rgba(221, 172, 81, .28) !important;
}
.external-signature-modal .signature-card {
    text-align: left !important;
}
@media (max-width: 720px) {
    .external-signature-modal .gmu-modal-panel {
        width: min(100vw, 720px) !important;
        max-width: 100vw !important;
        margin: 0 auto !important;
    }
    .external-signature-modal .gmu-modal-body {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
    .external-signature-modal .signature-grid {
        max-width: 100% !important;
        margin: 0 auto !important;
    }
    .external-signature-modal .signature-card {
        max-width: 640px !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* V31 — Travaux externalisés : barre d'actions simplifiée */
.external-edit-title .btn-row {
    display: none !important;
}
.external-edit-actionbar {
    gap: 10px !important;
    align-items: center !important;
    justify-content: center !important;
}
.external-edit-actionbar .btn,
.external-edit-actionbar .external-actions-summary {
    min-height: 48px !important;
    height: 48px !important;
    padding: 0 16px !important;
    border-radius: 14px !important;
    font-size: 15px !important;
    line-height: 48px !important;
    white-space: nowrap !important;
}
.external-return-btn { flex: 0 0 25% !important; max-width: 150px !important; }
.external-save-btn { flex: 1 1 42% !important; max-width: 260px !important; }
.external-actions-menu {
    position: relative !important;
    flex: 0 0 28% !important;
    max-width: 160px !important;
}
.external-actions-summary {
    list-style: none !important;
    width: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
}
.external-actions-summary::-webkit-details-marker { display: none !important; }
.external-actions-summary::after {
    content: '⋮' !important;
    margin-left: 8px !important;
    opacity: .8 !important;
    font-weight: 900 !important;
}
.external-actions-panel {
    position: absolute !important;
    right: 0 !important;
    bottom: calc(100% + 10px) !important;
    z-index: 80 !important;
    min-width: 240px !important;
    padding: 8px !important;
    border-radius: 16px !important;
    background: #111827 !important;
    border: 1px solid rgba(148,163,184,.35) !important;
    box-shadow: 0 18px 45px rgba(0,0,0,.45) !important;
}
.external-actions-panel a {
    display: block !important;
    padding: 12px 14px !important;
    color: #f8fafc !important;
    text-decoration: none !important;
    font-weight: 800 !important;
    border-radius: 12px !important;
}
.external-actions-panel a:hover,
.external-actions-panel a:focus {
    background: rgba(221,172,81,.14) !important;
}
@media (max-width: 720px) {
    .external-edit-actionbar {
        padding: 12px 10px !important;
        gap: 8px !important;
    }
    .external-edit-actionbar .btn,
    .external-edit-actionbar .external-actions-summary {
        min-height: 44px !important;
        height: 44px !important;
        line-height: 44px !important;
        font-size: 13px !important;
        padding: 0 10px !important;
        border-radius: 13px !important;
    }
    .external-return-btn { flex-basis: 25% !important; min-width: 86px !important; }
    .external-actions-menu { flex-basis: 27% !important; min-width: 92px !important; }
    .external-save-btn { flex-basis: 42% !important; min-width: 128px !important; }
    .external-actions-panel {
        right: -4px !important;
        min-width: min(82vw, 280px) !important;
    }
}

/* V32 — Suivi maintenance opérationnel */
.maintenance-kpi-grid .kpi-card strong{font-size:38px}
.maintenance-health-mini{grid-template-columns:1fr!important;width:100%}
.maintenance-health-mini span{text-align:left;display:flex;justify-content:space-between;gap:8px}
@media(max-width:720px){.maintenance-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.maintenance-kpi-grid .kpi-card{min-height:124px}.maintenance-kpi-grid .kpi-card strong{font-size:32px}}
@media(max-width:420px){.maintenance-kpi-grid{grid-template-columns:1fr}}

/* V33 — Suivi maintenance structuré */
.maintenance-section {
    margin-bottom: 18px;
}
.maintenance-priority-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.maintenance-priority-column h3 {
    margin: 0 0 10px;
    font-size: .98rem;
    color: var(--text, #f5f5f5);
}
.maintenance-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 12px;
}
.maintenance-status-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 7px 12px;
    background: rgba(255,255,255,.08);
    font-size: .9rem;
    font-weight: 700;
}
.maintenance-state-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0 18px;
}
.maintenance-state-card {
    text-decoration: none;
    border-radius: 16px;
    padding: 13px 10px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.08);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-height: 76px;
}
.maintenance-state-card strong {
    font-size: 1.45rem;
    color: #fff;
}
.maintenance-state-card span {
    font-size: .84rem;
    color: rgba(255,255,255,.78);
}
.maintenance-state-card.state-good { box-shadow: inset 0 0 0 1px rgba(39,174,96,.35); }
.maintenance-state-card.state-medium { box-shadow: inset 0 0 0 1px rgba(241,196,15,.35); }
.maintenance-state-card.state-bad { box-shadow: inset 0 0 0 1px rgba(230,126,34,.35); }
.maintenance-state-card.state-critical { box-shadow: inset 0 0 0 1px rgba(231,76,60,.45); }
.maintenance-state-card.state-neutral { box-shadow: inset 0 0 0 1px rgba(149,165,166,.35); }
@media (max-width: 900px) {
    .maintenance-priority-grid { grid-template-columns: 1fr; }
    .maintenance-state-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* V34 — Centre de pilotage opérationnel complet */
.pilot-search-card {
    margin-bottom: 18px;
    padding: 18px !important;
}
.pilot-search-form label {
    display: block;
    margin: 0 0 8px;
    color: #f0c879;
    font-size: .82rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.pilot-search-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}
.pilot-search-line input {
    width: 100%;
    min-height: 48px;
    border-radius: 16px;
    border: 1px solid #2b374e;
    background: #0f1726;
    color: #eef2f7;
    padding: 0 14px;
    font-weight: 800;
}
.pilot-search-line button {
    min-height: 48px;
    border-radius: 16px;
    border: 1px solid rgba(240,200,121,.32);
    background: rgba(240,200,121,.14);
    color: #f3d39a;
    padding: 0 18px;
    font-weight: 950;
}
.pilot-search-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}
.pilot-search-results a {
    display: block;
    text-decoration: none;
    color: #eef2f7 !important;
    border-radius: 16px;
    border: 1px solid #2b374e;
    background: #0f1726;
    padding: 12px 13px;
}
.pilot-search-results a:hover { border-color: rgba(240,200,121,.38); background:#131d2f; }
.pilot-search-type {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(240,200,121,.12);
    color: #f0c879;
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
}
.pilot-search-results strong,
.pilot-search-results small { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pilot-search-results small { margin-top: 4px; color: #98a6ba; }
.pilot-daily-card { border-color: rgba(240,200,121,.18) !important; }
.pilot-checklist-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}
.pilot-check-item {
    min-height: 98px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 14px;
    border-radius: 18px;
    text-align: center;
    text-decoration: none;
    color: #eef2f7 !important;
    background: #0f1726;
    border: 1px solid #2b374e;
}
.pilot-check-item strong {
    font-size: 2rem;
    line-height: 1;
    color: #fff;
}
.pilot-check-item span {
    font-size: .82rem;
    line-height: 1.25;
    color: #aab6c9;
    font-weight: 850;
}
.pilot-check-ok { border-color: rgba(39,174,96,.26); }
.pilot-check-ok strong { color: #8ee0aa; }
.pilot-check-warning { border-color: rgba(230,126,34,.35); }
.pilot-check-warning strong { color: #f2b16f; }
.pilot-check-bad { border-color: rgba(230,126,34,.45); box-shadow: inset 0 0 0 1px rgba(230,126,34,.12); }
.pilot-check-bad strong { color: #ffb86c; }
.pilot-check-critical { border-color: rgba(231,76,60,.50); box-shadow: inset 0 0 0 1px rgba(231,76,60,.16); }
.pilot-check-critical strong { color: #ff8a84; }
.maintenance-hero h1 { letter-spacing: -.055em; }
.quick-actions-card { margin-bottom: 0; }
.quick-actions-card { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media(max-width:900px){
    .pilot-checklist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pilot-search-results { grid-template-columns: 1fr; }
    .quick-actions-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width:520px){
    .pilot-search-line { grid-template-columns: 1fr; }
    .pilot-search-line button { width: 100%; }
    .pilot-checklist-grid { grid-template-columns: 1fr; }
    .pilot-check-item { min-height: 82px; flex-direction: row; justify-content: flex-start; text-align: left; }
    .pilot-check-item strong { min-width: 52px; text-align: center; }
    .quick-actions-card { grid-template-columns: 1fr; }
}

/* V35 — Assistant de maintenance intelligent */
.pilot-assistant-card{border-color:rgba(240,200,121,.24)!important;background:linear-gradient(180deg,rgba(26,35,52,.98),rgba(15,23,38,.98))!important}
.assistant-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:4px 0 16px}
.assistant-chip{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:10px;border-radius:16px;background:#0f1726;border:1px solid #2b374e;color:#c8d1df;font-weight:900;text-align:center}
.assistant-chip strong{font-size:22px;color:#fff}.assistant-critical{border-color:rgba(255,107,102,.36);color:#ffb1ad}.assistant-bad{border-color:rgba(255,165,0,.34);color:#ffd18d}.assistant-warning{border-color:rgba(240,200,121,.34);color:#f0c879}.assistant-info{border-color:rgba(96,165,250,.30);color:#bfdbfe}
.assistant-task-list{display:flex;flex-direction:column;gap:10px}.assistant-task{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;align-items:center;padding:12px;border-radius:18px;background:#0f1726;border:1px solid #2b374e;color:#eef2f7!important;text-decoration:none}.assistant-task:hover{border-color:rgba(240,200,121,.38);background:#131d2f}.assistant-task-rank{display:grid;place-items:center;min-height:42px;border-radius:14px;background:#111827;border:1px solid #354259;color:#f0c879;font-weight:950;text-align:center;font-size:13px}.assistant-task-body{min-width:0}.assistant-task-body strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assistant-task-body small{display:block;margin-top:4px;color:#9daabc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assistant-task-critical{border-color:rgba(255,107,102,.30)}.assistant-task-bad{border-color:rgba(255,165,0,.28)}.assistant-task-warning{border-color:rgba(240,200,121,.25)}.assistant-alerts{margin-top:14px;display:flex;flex-direction:column;gap:8px}.assistant-alert{display:block;padding:11px 13px;border-radius:15px;background:rgba(240,200,121,.08);border:1px solid rgba(240,200,121,.18);color:#f4d79f!important;text-decoration:none}.assistant-alert strong{display:block}.assistant-alert small{display:block;color:#b7c2d3;margin-top:3px}
@media(max-width:720px){.assistant-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-task{grid-template-columns:1fr}.assistant-task-rank{min-height:38px}.assistant-task-body strong,.assistant-task-body small{white-space:normal}}

/* V43 — Onglet exports ergonomique */
.export-hero{display:flex;justify-content:space-between;gap:18px;align-items:center;background:radial-gradient(circle at 100% 0,rgba(240,200,121,.18),transparent 28%),linear-gradient(135deg,#111827,#182235)!important}.export-kicker{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:#f0c879;font-weight:950;margin-bottom:6px}.export-hero h2{font-size:28px;margin:0 0 4px!important}.export-hero p{margin:0;max-width:780px}.export-hero-count{min-width:160px;text-align:center;border-radius:22px;border:1px solid rgba(240,200,121,.25);background:rgba(255,255,255,.055);padding:16px}.export-hero-count strong{display:block;font-size:38px;line-height:1;color:#f0c879}.export-hero-count span{font-weight:900;color:#b8c3d5}.export-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.export-card-head h2{margin-bottom:4px!important}.export-card-head p{margin:0;color:#9aa7ba}.export-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.export-filter-grid .form-group{margin:0}.export-wide{grid-column:span 2}.export-type-field{grid-column:span 2}.export-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid #283247}.export-actions .btn{min-width:170px}.export-filter-hidden{display:none!important}.export-criteria{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 16px}.export-criteria span{display:inline-flex;gap:6px;align-items:center;padding:8px 11px;border:1px solid #344158;border-radius:999px;background:#111827;color:#cbd5e1;font-weight:850}.export-criteria strong{color:#f0c879}.export-preview-table{max-height:560px}.export-preview-table .table{min-width:1050px}@media(max-width:920px){.export-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.export-wide,.export-type-field{grid-column:span 2}.export-hero{align-items:flex-start}.export-hero-count{min-width:130px}}@media(max-width:720px){.export-hero{display:block}.export-hero-count{margin-top:14px;width:100%}.export-filter-grid{grid-template-columns:1fr}.export-wide,.export-type-field{grid-column:auto}.export-card-head{display:block}.export-card-head .btn{width:100%;margin-top:12px}.export-actions{display:grid;grid-template-columns:1fr;position:static!important;background:transparent!important;border-top:1px solid #283247!important;box-shadow:none!important;padding:14px 0 0!important}.export-actions .btn{width:100%;min-width:0}.export-preview-card{margin-bottom:0}.export-page-title{padding-top:4px}.export-filter-card .form-control{min-height:52px}}


/* V46 — Harmonisation listes métier */
.list-search-card{margin-bottom:14px;}
.list-search-card .searchbar{margin-bottom:0;align-items:stretch;}
.list-search-card select{min-width:180px;}
.list-search-card .btn{white-space:nowrap;}
@media(max-width:720px){
  .list-search-card .searchbar{display:grid!important;grid-template-columns:1fr!important;}
  .list-search-card .searchbar input,.list-search-card .searchbar select,.list-search-card .searchbar .btn{width:100%!important;min-width:0!important;}
  .list-search-card + .card{margin-top:12px;}
}

/* V48 — Éléments techniques compacts : choix + photo associés */
.technical-elements-panel{border:1px solid rgba(214,163,90,.22);border-radius:22px;padding:12px;background:linear-gradient(180deg,rgba(214,163,90,.06),rgba(17,24,39,.20));margin-bottom:18px}
.technical-elements-panel .technical-elements-intro{display:flex;flex-direction:column;gap:4px;margin:0 0 12px!important}
.technical-elements-panel .technical-elements-intro strong{color:#f8e4bd;font-size:1.02rem}
.technical-elements-panel .technical-elements-intro span{color:#aeb9cb;font-weight:650;line-height:1.35}
.technical-elements-panel .technical-elements-intro em{display:block;margin-top:6px;color:#ffc36f;font-style:normal;font-weight:850}
.technical-elements-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.technical-element-card{border:1px solid #2f3b52;background:rgba(15,23,38,.72);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:9px;min-width:0;break-inside:avoid}
.technical-element-card.has-linked-fields{border-color:rgba(214,163,90,.28);background:linear-gradient(180deg,rgba(17,24,39,.92),rgba(15,23,38,.82))}
.technical-element-card-secondary{border-color:rgba(148,163,184,.28)}
.technical-element-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.technical-element-card-head h3{margin:0!important;color:#eef2f7!important;font-size:1rem!important;line-height:1.15}
.technical-element-card-head span{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;background:#162747;color:#9ec0ff;font-weight:900;font-size:.72rem;white-space:nowrap}
.technical-element-card p{margin:0;color:#aeb9cb;font-size:.84rem;line-height:1.3}
.technical-element-linked-fields{display:grid;grid-template-columns:1fr;gap:8px;margin:1px 0 0}
.technical-element-linked-field{margin:0!important}
.technical-element-linked-field label{font-size:.84rem!important;margin-bottom:5px!important;color:#d7deeb!important}
.technical-element-linked-field select{min-height:46px!important;font-size:.92rem!important;border-radius:13px!important;background:#101827!important}
.technical-element-actions{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:8px;align-items:stretch}
.technical-element-unknown{display:flex;align-items:center;gap:8px;border:1px solid #344158;background:#111827;border-radius:13px;padding:9px 10px;font-weight:950;color:#f8d9a0;cursor:pointer;min-height:48px;font-size:.84rem;line-height:1.15}
.technical-element-unknown input{width:18px;height:18px;accent-color:#d6a35a;flex:0 0 auto}
.technical-element-upload{min-height:48px!important;padding:9px 10px!important;font-size:.86rem!important;line-height:1.15!important;display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:2px;border-radius:13px!important}
.technical-element-upload small{font-size:.70rem!important;line-height:1.15!important;color:#aeb9cb!important;margin:0!important}
.technical-upload-main{font-weight:950;color:#f8d9a0;text-align:center}
.technical-element-preview{margin-top:0!important}
.technical-existing-photos strong{display:block;font-size:.82rem;color:#aeb9cb;margin-bottom:7px}
.photo-strip{display:flex;gap:8px;flex-wrap:wrap}
.photo-strip a{display:block;border-radius:12px;overflow:hidden;border:1px solid #2f3b52;background:#0f1726}
.photo-strip img{width:78px;height:78px;object-fit:cover;display:block}
.technical-elements-view-card h2{margin-bottom:10px}
.technical-elements-view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.technical-element-view-group{border:1px solid #2f3b52;background:rgba(15,23,38,.68);border-radius:16px;padding:12px;break-inside:avoid}
.technical-element-view-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.technical-element-view-title strong{color:#eef2f7}
.technical-element-view-values{border:1px solid rgba(214,163,90,.16);background:rgba(214,163,90,.055);border-radius:12px;padding:8px 10px;margin-bottom:8px}
.technical-element-view-values p{margin:0 0 4px!important;color:#cbd5e1}.technical-element-view-values p:last-child{margin-bottom:0!important}.technical-element-view-values strong{color:#f8d9a0}
.technical-element-view-strip img{width:96px;height:96px}
.fiches-table .badge-orange{display:inline-flex;margin-top:4px}
@media(max-width:720px){.technical-elements-panel{padding:11px;border-radius:18px}.technical-elements-grid,.technical-elements-view-grid{grid-template-columns:1fr!important}.technical-elements-panel .technical-elements-intro span{font-size:.9rem}.technical-element-card{border-radius:16px;padding:11px;gap:8px}.technical-element-card-head{align-items:flex-start}.technical-element-card-head span{font-size:.68rem}.technical-element-card p{font-size:.80rem}.technical-element-linked-field select{min-height:45px!important}.technical-element-actions{grid-template-columns:1fr 1fr}.technical-element-unknown,.technical-element-upload{min-height:46px!important}.technical-element-upload small{display:none}.photo-strip img{width:72px;height:72px}.technical-element-view-strip img{width:86px;height:86px}}
@media(max-width:380px){.technical-element-actions{grid-template-columns:1fr}.technical-element-unknown,.technical-element-upload{min-height:43px!important}}
@media print{.technical-elements-panel{border:0;padding:0;background:#fff}.technical-element-upload,.technical-element-preview,.technical-element-unknown{display:none!important}.technical-element-card,.technical-element-view-group{background:#fff!important;border-color:#cbd5e1!important}.technical-element-card-head h3,.technical-element-view-title strong{color:#111827!important}}

/* =========================================================
   V49 — Phase 1 : bloc Dimensions en fiche technique
   ========================================================= */
.dimensions-block,
.dimensions-view-card {
  border: 1px solid rgba(148,163,184,.24);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(15,23,42,.88), rgba(30,41,59,.62));
  box-shadow: 0 18px 46px rgba(2,6,23,.20);
  padding: 16px;
  margin: 0 0 18px;
}
.dimensions-view-card.card {
  margin-bottom: 18px;
}
.dimensions-block-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}
.dimensions-block-head h2,
.dimensions-block-head h3 {
  margin: 0;
  color: #f8fafc;
}
.dimensions-block-head span,
.dimensions-modal-subtitle {
  display: block;
  margin: 4px 0 0;
  color: #94a3b8;
  font-size: .92rem;
}
.dimensions-open-btn {
  min-height: 42px;
  white-space: nowrap;
}
.dimensions-summary {
  min-height: 46px;
}
.dimensions-summary-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.dimensions-summary-list div {
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 14px;
  background: rgba(15,23,42,.54);
  padding: 10px 12px;
}
.dimensions-summary-list dt {
  color: #94a3b8;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.dimensions-summary-list dd {
  margin: 3px 0 0;
  color: #f8fafc;
  font-weight: 900;
}
.dimensions-empty {
  border: 1px dashed rgba(148,163,184,.34);
  border-radius: 14px;
  color: #cbd5e1;
  padding: 14px;
  background: rgba(15,23,42,.35);
}
.dimensions-warning {
  color: #fbbf24 !important;
}
.dimensions-modal .gmu-modal-panel {
  width: min(860px, calc(100% - 22px));
  max-height: 88vh;
}
.dimensions-modal .gmu-modal-head {
  align-items: flex-start;
}
.dimensions-help-card {
  border: 1px solid rgba(34,197,94,.24);
  border-radius: 16px;
  background: rgba(34,197,94,.08);
  color: #d1fae5;
  padding: 12px 14px;
  margin-bottom: 14px;
  font-weight: 700;
}
.dimensions-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.dimensions-field[hidden] {
  display: none !important;
}
.dimensions-measure-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px;
  gap: 8px;
  align-items: stretch;
}
.dimensions-unit {
  min-width: 86px;
}
.dimensions-comment-field {
  grid-column: 1 / -1;
}
.dimensions-comment-field textarea {
  min-height: 92px;
}
.dimensions-field.has-error .form-control,
.dimensions-field.has-error select {
  border-color: rgba(239,68,68,.9) !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,.15);
}
.field-error {
  min-height: 18px;
  color: #fca5a5;
  font-size: .82rem;
  font-weight: 800;
  margin-top: 5px;
}
.dimensions-error-summary {
  color: #fecaca;
  font-weight: 900;
  margin-top: 12px;
}
.dimensions-modal-footer .btn {
  min-height: 48px;
}
.dimensions-readonly-list {
  display: grid;
  gap: 9px;
}
.dimensions-readonly-list p {
  margin: 0;
  border: 1px solid rgba(148,163,184,.2);
  border-radius: 14px;
  padding: 11px 12px;
  background: rgba(15,23,42,.46);
}
@media (max-width: 760px) {
  .dimensions-block-head {
    display: grid;
  }
  .dimensions-open-btn,
  .dimensions-block-head .btn {
    width: 100%;
    justify-content: center;
  }
  .dimensions-summary-list,
  .dimensions-fields-grid {
    grid-template-columns: 1fr;
  }
  .dimensions-modal .gmu-modal-panel {
    width: 100%;
    max-height: 92vh;
    border-radius: 22px 22px 0 0;
  }
  .dimensions-modal-footer {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
  .dimensions-modal-footer .btn {
    width: 100%;
  }
}

/* V49.2 - Blocs synthétiques + pop-up contrôle / travaux / régie */
.phase-block-form{padding-top:18px}.phase-block-shell{border:1px solid rgba(148,163,184,.22);background:linear-gradient(180deg,rgba(24,33,51,.94),rgba(15,23,38,.96));border-radius:24px;padding:16px;margin:0 0 18px;box-shadow:0 18px 50px rgba(0,0,0,.22)}.phase-block-shell-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.phase-block-shell-head h2{margin:0 0 4px;color:#f8fafc;font-size:1.28rem}.phase-block-shell-head p{margin:0;color:#aeb9cb;font-weight:700;line-height:1.35}.phase-block-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.phase-block-card{position:relative;display:flex;flex-direction:column;gap:10px;min-height:205px;border:1px solid rgba(148,163,184,.20);border-radius:22px;background:radial-gradient(circle at top left,rgba(212,168,90,.10),transparent 35%),linear-gradient(180deg,#172033,#111827);padding:15px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:transform .16s ease,border-color .16s ease,background .16s ease}.phase-block-card:hover,.phase-block-card:focus-visible{transform:translateY(-1px);border-color:rgba(212,168,90,.55);outline:none;background:radial-gradient(circle at top left,rgba(212,168,90,.16),transparent 38%),linear-gradient(180deg,#1a2539,#111827)}.phase-block-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.phase-block-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:15px;background:rgba(212,168,90,.14);border:1px solid rgba(212,168,90,.34);color:#f5d79c;font-weight:950}.phase-block-status{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;padding:4px 10px;background:rgba(148,163,184,.10);border:1px solid rgba(148,163,184,.18);color:#b8c3d5;font-size:.78rem;font-weight:950;white-space:nowrap}.phase-block-status.is-done{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.36);color:#bdf4cf}.phase-block-card h2{font-size:1.1rem;margin:0;color:#f8fafc}.phase-block-card p{margin:0;color:#aeb9cb;line-height:1.35;font-weight:700}.phase-block-summary{display:grid;gap:6px;min-height:48px;margin-top:auto}.phase-summary-row{display:grid;gap:1px;border-left:2px solid rgba(212,168,90,.38);padding-left:9px}.phase-summary-row strong{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#8693a8}.phase-summary-row em{font-style:normal;color:#eef2f7;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-block-empty{display:flex;align-items:center;color:#7f8da3;font-weight:900;min-height:38px}.phase-block-open{width:100%;justify-content:center;margin-top:2px}.phase-block-modal .gmu-modal-panel{width:min(980px,calc(100% - 26px));max-height:min(88vh,880px);background:linear-gradient(180deg,#111b2d,#0d1422);border-color:rgba(212,168,90,.26);box-shadow:0 30px 90px rgba(0,0,0,.55)}.phase-block-modal .gmu-modal-head{border-bottom:1px solid rgba(148,163,184,.16);padding-bottom:12px}.phase-block-modal .gmu-modal-head h2{color:#f8fafc}.phase-modal-intro{margin:4px 0 0;color:#aeb9cb;font-weight:700;line-height:1.35}.phase-block-modal-body{display:grid;gap:14px;padding-right:2px}.phase-block-modal-body>h2,.phase-block-modal-body>h3{margin-top:0}.phase-block-modal-body>.card{margin:0}.phase-block-modal-body .card{border-color:rgba(148,163,184,.18)}.phase-block-modal-footer{background:linear-gradient(180deg,rgba(13,20,34,.88),#0d1422);border-color:rgba(148,163,184,.18)}.phase-invalid-field{border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,.12)!important}.phase-field-error{margin-top:7px;color:#fecaca;font-weight:900;font-size:.88rem}.phase-block-form>.btn-row{margin-top:18px}.phase-block-form .external-reception-launch{border-color:rgba(212,168,90,.26);background:linear-gradient(180deg,#172033,#111827);border-radius:22px}.phase-block-form .external-reception-launch h2{margin-top:0}.phase-block-form .group-progress-card[style*="display: none"]{display:none!important}@media(max-width:900px){.phase-block-grid{grid-template-columns:1fr}.phase-block-card{min-height:0}.phase-block-modal .gmu-modal-panel{width:100%;max-height:92vh;border-radius:24px 24px 0 0}.phase-block-shell{padding:14px;border-radius:22px}.phase-block-shell-head h2{font-size:1.12rem}.phase-summary-row em{white-space:normal}.phase-block-modal-footer{justify-content:stretch}.phase-block-modal-footer .btn{flex:1;min-height:52px}}@media(max-width:560px){.phase-block-shell{margin-left:-4px;margin-right:-4px}.phase-block-card{padding:14px;border-radius:20px}.phase-block-icon{width:38px;height:38px}.phase-block-status{font-size:.72rem}.phase-block-card h2{font-size:1.02rem}.phase-block-card p{font-size:.9rem}.phase-block-modal .gmu-modal-panel{max-height:94vh;padding:14px}.phase-block-modal .gmu-modal-body{padding-bottom:4px}.phase-block-modal-footer{margin-left:-14px;margin-right:-14px;margin-bottom:-14px;padding-left:14px;padding-right:14px}}

/* PATCH 04 — Compteurs fixes de l'onglet Base */
.stats.base-counters{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:900px){
    .stats.base-counters{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:720px){
    .stats.base-counters{grid-template-columns:1fr;}
}

/* PATCH 05 — bouton de déconnexion visible */
.logout-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  padding:9px 13px;
  border-radius:14px;
  border:1px solid rgba(214,163,90,.34);
  background:rgba(214,163,90,.10);
  color:#f3d39a!important;
  font-size:12px;
  font-weight:950;
  line-height:1;
  text-decoration:none!important;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
  transition:background .15s ease,border-color .15s ease,transform .12s ease,box-shadow .12s ease;
}
.logout-button:hover{
  background:rgba(214,163,90,.17);
  border-color:rgba(240,200,121,.58);
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.logout-button-icon{
  font-size:15px;
  line-height:1;
}
.logout-button-text{
  display:inline-block;
}
@media(max-width:780px){
  .topbar .user-menu{
    flex:0 0 auto!important;
    max-width:none!important;
    gap:6px!important;
  }
  .topbar .logout-button{
    width:42px;
    min-width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    border-radius:14px;
  }
  .topbar .logout-button-text{
    display:none!important;
  }
  .topbar .logout-button-icon{
    font-size:18px;
  }
  .topbar .brand-title strong{
    max-width:calc(100vw - 92px)!important;
  }
}
@media(max-width:420px){
  .topbar .brand-title strong{
    max-width:calc(100vw - 82px)!important;
  }
}


/* PHASE 1D — Consultation mobile : boutons à l'emplacement d'origine, design compact */
.view-action-bar .view-action-card{
  text-decoration:none!important;
}
.view-action-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  line-height:1;
}
.sheet-view-actions .inline-delete-form{
  margin:0;
}
@media(max-width:720px){
  body .content{
    padding-bottom:calc(236px + env(safe-area-inset-bottom))!important;
  }
  body .page-title.sheet-view-title{
    margin-bottom:12px!important;
  }
  body .view-action-bar{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    z-index:41!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
    width:auto!important;
    justify-content:stretch!important;
    align-items:stretch!important;
    margin:0!important;
    padding:8px!important;
    border:1px solid rgba(57,70,94,.72)!important;
    border-radius:22px!important;
    background:rgba(13,19,31,.94)!important;
    box-shadow:0 16px 34px rgba(0,0,0,.34)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
  }
  body .control-edit-actions{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body .view-action-bar .view-action-card,
  body .view-action-bar .inline-delete-form .btn-danger{
    width:100%!important;
    min-width:0!important;
    min-height:56px!important;
    height:auto!important;
    padding:7px 5px!important;
    border-radius:17px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    white-space:normal!important;
    text-align:center!important;
    line-height:1.05!important;
    font-size:12px!important;
    font-weight:950!important;
    background:linear-gradient(180deg,#151f31,#101827)!important;
    border:1px solid #35435c!important;
    color:#f4f7fb!important;
    box-shadow:0 7px 16px rgba(0,0,0,.20)!important;
  }
  body .view-action-bar .view-action-card:hover{
    transform:none!important;
  }
  body .view-action-bar .view-action-icon{
    min-width:0!important;
    min-height:18px!important;
    font-size:18px!important;
    color:#6aa6ff!important;
  }
  body .view-action-bar .view-action-icon-pdf{
    width:27px!important;
    height:19px!important;
    border-radius:5px!important;
    border:1px solid currentColor!important;
    font-size:9px!important;
    letter-spacing:-.02em!important;
  }
  body .view-action-bar .view-action-card-edit .view-action-icon{color:#5b9dff!important;}
  body .view-action-bar .view-action-card-map .view-action-icon{color:#58d68d!important;}
  body .view-action-bar .view-action-card-pdf .view-action-icon{color:#ff7d85!important;}
  body .view-action-bar .view-action-card-mail .view-action-icon{color:#b879ff!important;}
  body .view-action-bar .view-action-card-create,
  body .view-action-bar .view-action-card-save{
    background:linear-gradient(180deg,#f0c879,#c8903f)!important;
    border-color:rgba(240,200,121,.42)!important;
    color:#171008!important;
    box-shadow:0 10px 24px rgba(216,163,90,.20)!important;
  }
  body .view-action-bar .view-action-card-create .view-action-icon,
  body .view-action-bar .view-action-card-save .view-action-icon{
    color:#171008!important;
  }
  body .sheet-view-actions .inline-delete-form{
    grid-column:1 / -1!important;
    justify-self:center!important;
    width:min(170px,54%)!important;
    display:block!important;
  }
  body .sheet-view-actions .inline-delete-form .btn-danger{
    min-height:34px!important;
    padding:7px 12px!important;
    border-radius:14px!important;
    flex-direction:row!important;
    gap:7px!important;
    font-size:12px!important;
    background:rgba(185,52,54,.15)!important;
    border-color:rgba(255,124,120,.42)!important;
    color:#ff8a84!important;
    box-shadow:none!important;
  }
  body .sheet-view-actions .inline-delete-form .btn-danger::before{
    content:"🗑";
    font-size:14px;
    line-height:1;
  }
  body .control-edit-actions .view-action-card{
    min-height:58px!important;
  }
}
@media(max-width:380px){
  body .view-action-bar{
    left:8px!important;
    right:8px!important;
    gap:7px!important;
    padding:7px!important;
    border-radius:20px!important;
  }
  body .view-action-bar .view-action-card,
  body .view-action-bar .inline-delete-form .btn-danger{
    min-height:52px!important;
    border-radius:15px!important;
    font-size:11.5px!important;
  }
  body .view-action-bar .view-action-icon{
    font-size:17px!important;
  }
}

/* PHASE 2 — Aide GPS : patrimoine à proximité */
.nearby-sheet-actions{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:10px;
}
.nearby-sheet-button{
  width:100%;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:14px;
  font-weight:900;
  letter-spacing:.01em;
}
.nearby-sheet-button.is-loading{
  opacity:.82;
  cursor:wait;
}
.nearby-sheet-status{
  display:block;
  min-height:18px;
  color:#93a4bd;
  font-size:.82rem;
  line-height:1.35;
}
.nearby-sheet-status.is-success{color:#86efac}
.nearby-sheet-status.is-error{color:#fca5a5}
.nearby-sheet-status.is-info{color:#bfdbfe}
.nearby-sheet-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:16px;
  background:rgba(2,6,23,.68);
  backdrop-filter:blur(8px);
  opacity:0;
  transition:opacity .16s ease;
}
.nearby-sheet-modal-backdrop.is-open{opacity:1}
.nearby-sheet-modal{
  width:min(680px,100%);
  max-height:min(82vh,720px);
  overflow:hidden;
  border:1px solid rgba(148,163,184,.26);
  border-radius:24px 24px 18px 18px;
  background:linear-gradient(180deg,#111827,#0b1220);
  box-shadow:0 24px 70px rgba(0,0,0,.45);
  color:#e5edf8;
  transform:translateY(18px);
  transition:transform .16s ease;
}
.nearby-sheet-modal-backdrop.is-open .nearby-sheet-modal{transform:translateY(0)}
.nearby-sheet-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:16px 16px 12px;
  border-bottom:1px solid rgba(148,163,184,.18);
}
.nearby-sheet-modal-head strong{
  display:block;
  font-size:1.04rem;
  color:#f8fafc;
}
.nearby-sheet-modal-head span{
  display:block;
  margin-top:4px;
  color:#9fb0c8;
  font-size:.86rem;
  line-height:1.35;
}
.nearby-sheet-modal-close{
  width:38px;
  height:38px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:999px;
  background:#172033;
  color:#e5edf8;
  font-size:1.45rem;
  line-height:1;
  font-weight:900;
}
.nearby-sheet-modal-body{
  max-height:calc(min(82vh,720px) - 82px);
  overflow:auto;
  padding:14px 16px 16px;
  -webkit-overflow-scrolling:touch;
}
.nearby-sheet-list{
  display:grid;
  gap:10px;
}
.nearby-sheet-choice{
  width:100%;
  display:block;
  text-align:left;
  border:1px solid rgba(148,163,184,.22);
  border-radius:17px;
  background:linear-gradient(180deg,#182236,#121a2b);
  color:#e5edf8;
  padding:13px;
  box-shadow:0 8px 22px rgba(0,0,0,.18);
}
.nearby-sheet-choice:active{
  transform:scale(.99);
}
.nearby-sheet-choice-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.nearby-sheet-choice-top strong{
  color:#f8fafc;
  font-size:.98rem;
}
.nearby-sheet-choice-top em{
  flex:0 0 auto;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(34,197,94,.15);
  border:1px solid rgba(34,197,94,.35);
  color:#bbf7d0;
  font-style:normal;
  font-weight:950;
  font-size:.78rem;
}
.nearby-sheet-choice-name,
.nearby-sheet-choice-meta,
.nearby-sheet-choice-address{
  display:block;
  line-height:1.35;
}
.nearby-sheet-choice-name{
  color:#e2e8f0;
  font-weight:850;
}
.nearby-sheet-choice-meta{
  margin-top:5px;
  color:#9fb0c8;
  font-size:.84rem;
}
.nearby-sheet-choice-address{
  margin-top:3px;
  color:#7f8da3;
  font-size:.8rem;
}
.nearby-sheet-message{
  border:1px solid rgba(148,163,184,.24);
  border-radius:18px;
  background:#111827;
  color:#dbe4f0;
  padding:16px;
  line-height:1.45;
}
.nearby-sheet-message-error{
  border-color:rgba(248,113,113,.35);
  background:rgba(127,29,29,.18);
  color:#fecaca;
}
.nearby-sheet-message-info{
  border-color:rgba(96,165,250,.28);
  background:rgba(30,64,175,.15);
  color:#bfdbfe;
}
@media (min-width:760px){
  .nearby-sheet-modal-backdrop{
    align-items:center;
  }
  .nearby-sheet-button{
    width:auto;
    padding-left:16px;
    padding-right:16px;
  }
}
@media (max-width:720px){
  .nearby-sheet-actions{
    margin-top:8px;
  }
  .nearby-sheet-button{
    min-height:40px;
    border-radius:13px;
    font-size:.9rem;
  }
  .nearby-sheet-modal-backdrop{
    padding:10px;
    align-items:flex-end;
  }
  .nearby-sheet-modal{
    width:100%;
    max-height:86vh;
    border-radius:22px 22px 0 0;
  }
  .nearby-sheet-modal-body{
    max-height:calc(86vh - 82px);
    padding:12px 12px 18px;
  }
  .nearby-sheet-choice{
    padding:12px;
    border-radius:15px;
  }
}

/* PHASE 3 — Localisation directe Google Maps, sans onglet carte indépendant */
.geo-card{
  padding:16px;
  margin:10px 0 18px;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(15,23,38,.98),rgba(17,24,39,.98));
  border:1px solid rgba(240,200,121,.22);
}
.geo-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
}
.geo-card-head strong,
.geo-card-head span{display:block}
.geo-card-head strong{color:#f7fafc;font-size:1rem}
.geo-card-head span{color:#aeb8c8;margin-top:4px;font-size:.88rem}
.geo-chip{
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(240,200,121,.12);
  border:1px solid rgba(240,200,121,.22);
  color:#f0c879!important;
  font-weight:900;
  font-size:.72rem!important;
  text-transform:uppercase;
}
.geo-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:6px 0 8px}
.geo-actions .disabled{opacity:.45;pointer-events:none;filter:grayscale(.35)}
.gpcmu-map-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  white-space:nowrap;
  min-height:38px;
  vertical-align:middle;
}
.gpcmu-map-button-icon{line-height:1}
.gpcmu-map-button-label{line-height:1.15}
.gpcmu-map-button--compact{
  min-height:34px;
  padding:8px 11px;
  font-size:.86rem;
}
.gpcmu-map-button--small{
  min-height:32px;
  padding:7px 10px;
}
.gpcmu-map-button.is-disabled,
.gpcmu-map-button[aria-disabled="true"]{
  opacity:.42;
  cursor:not-allowed;
  pointer-events:none;
  filter:grayscale(.55);
  background:rgba(30,41,59,.45)!important;
  border-color:rgba(148,163,184,.18)!important;
  color:#94a3b8!important;
  box-shadow:none!important;
}
.table td[data-label="Actions"] .gpcmu-map-button{
  margin-top:4px;
}
.sheet-view-actions .gpcmu-map-button.view-action-card{
  text-decoration:none;
}
.location-inline-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:8px;
}
@media (max-width:720px){
  .geo-card{padding:13px;border-radius:18px}
  .geo-card-head{flex-direction:column}
  .geo-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .geo-actions .btn{width:100%;justify-content:center}
  .gpcmu-map-button{
    min-height:40px;
    border-radius:13px;
    font-size:.88rem;
  }
  .gpcmu-map-button--compact{
    min-height:36px;
    padding:8px 10px;
  }
  .table td[data-label="Actions"] .gpcmu-map-button{
    width:100%;
    margin:4px 0 0;
  }
  .location-inline-actions .gpcmu-map-button{
    width:100%;
  }
}

/* PHASE 4A — Fiches techniques générales / Autres ouvrages */
.general-page-title{align-items:flex-start}
.general-page-title .btn{white-space:nowrap}
.general-sheet-kicker{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:950;color:#f0c879;margin-bottom:6px}
.general-sheet-form-intro{margin:-4px 0 16px;padding:14px 16px;border-radius:18px;background:rgba(240,200,121,.08);border:1px solid rgba(240,200,121,.18)}
.general-sheet-form-intro p{margin:0;color:#aeb8c8;font-weight:750;line-height:1.4}
.general-sheet-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid rgba(148,163,184,.20)}
.general-sheet-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.general-sheet-stats .stat-card strong{font-size:30px}
.general-sheet-filters{grid-template-columns:repeat(6,minmax(0,1fr))}
.general-sheets-table .general-list-actions{gap:6px!important}
.general-view-grid{align-items:start}
.general-view-title .general-sheet-actions{border-top:0;padding-top:0;margin-top:0;justify-content:flex-end}
.general-document-list{display:grid;gap:9px;margin-top:12px}
.general-document-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;background:#0f1726;border:1px solid #2d3950;color:#eef2f7!important;font-weight:850;text-decoration:none}
.general-document-link:hover{border-color:rgba(240,200,121,.35);background:#131d2f}
.general-document-link small{color:#94a3b8;font-weight:800;white-space:nowrap}
.general-sheet-existing-media{margin-top:12px}
.general-sheet-form textarea[name="address"]{min-height:84px}
.general-sheet-form .geo-card{margin-bottom:4px}
.general-sheet-search .searchbar{margin-bottom:12px}
.general-sheet-search .filters select,.general-sheet-search .filters input{min-width:0}
.general-sheet-form .form-group-wide{grid-column:span 2}
.general-sheet-form .custom-option-panel{margin-top:8px}
.general-sheet-form .upload-box input{display:none}
.general-sheet-form .upload-box{min-height:82px}
.general-sheet-form .help-text code,.card code{color:#f0c879;background:rgba(240,200,121,.10);padding:2px 5px;border-radius:6px}
@media(max-width:980px){
  .general-sheet-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .general-view-title{display:block}
  .general-view-title .general-sheet-actions{margin-top:12px;justify-content:flex-start}
}
@media(max-width:720px){
  .general-page-title .btn{width:100%;margin-top:12px}
  .general-sheet-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .general-sheet-filters{grid-template-columns:1fr}
  .general-sheet-actions{display:grid;grid-template-columns:1fr;gap:8px;position:static!important;background:transparent!important;box-shadow:none!important;border-top:1px solid rgba(148,163,184,.20)!important;padding:12px 0 0!important}
  .general-sheet-actions .btn,.general-sheet-actions form,.general-sheet-actions form .btn{width:100%;min-width:0;justify-content:center}
  .general-sheet-form .form-group-wide{grid-column:1 / -1}
  .general-sheet-badges .badge{white-space:normal}
  .general-document-link{align-items:flex-start;flex-direction:column}
  .general-document-link small{white-space:normal}
}
@media(max-width:420px){.general-sheet-stats{grid-template-columns:1fr}}

/* =========================================================
   V55 / Phase 4B — Valeur patrimoniale et artistique
   ========================================================= */
.badge-purple{background:#2b1d42!important;color:#d7b6ff!important}
.heritage-form-block{margin:22px 0;padding:18px;border-radius:20px;background:linear-gradient(180deg,rgba(43,29,66,.55),rgba(18,24,38,.88));border:1px solid rgba(216,163,90,.20);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.heritage-form-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.heritage-form-header h3{margin:0;color:#f8e4bd;font-size:1.15rem}.heritage-form-header p{margin:5px 0 0;color:#aeb8c8;line-height:1.4}.heritage-kicker{display:inline-flex;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:950;color:#f0c879;margin-bottom:5px}.heritage-toggle{display:inline-flex!important;align-items:center;gap:9px;margin:0!important;padding:10px 12px;border-radius:14px;background:rgba(15,23,38,.78);border:1px solid rgba(240,200,121,.18);white-space:nowrap;color:#f8e4bd!important;font-weight:950!important}.heritage-toggle input{width:18px;height:18px;accent-color:#d6a35a}.heritage-details{border-radius:16px;background:rgba(15,23,38,.45);border:1px solid rgba(148,163,184,.14);padding:0 14px 14px}.heritage-details summary{cursor:pointer;padding:14px 2px;font-weight:950;color:#eef2f7;list-style:none}.heritage-details summary::-webkit-details-marker{display:none}.heritage-details summary:before{content:'▸';display:inline-block;margin-right:8px;color:#f0c879;transition:transform .15s ease}.heritage-details[open] summary:before{transform:rotate(90deg)}.heritage-section-title{margin:16px 0 10px;padding-top:12px;border-top:1px solid rgba(148,163,184,.18);font-size:.98rem;font-weight:950;color:#f8e4bd}.heritage-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;padding:2px}.heritage-choice{display:flex!important;align-items:flex-start;gap:8px;margin:0!important;padding:9px 10px;border-radius:13px;background:#0f1726;border:1px solid #334159;color:#dce5f2!important;font-weight:800!important;line-height:1.25}.heritage-choice input{margin-top:2px;accent-color:#d6a35a}.heritage-choice span{font-size:.86rem}.heritage-admin-adder{margin-top:8px;padding:10px;border-radius:13px;background:rgba(240,200,121,.07);border:1px dashed rgba(240,200,121,.25)}.heritage-admin-adder label{font-size:.8rem!important;color:#f0c879!important;margin-bottom:6px!important}.heritage-admin-adder select{width:100%}.heritage-admin-adder small{display:block;margin-top:6px;color:#aeb8c8}.heritage-schema-alert{padding:12px 14px;border-radius:14px;background:#3a2814;color:#ffc36f;border:1px solid rgba(255,195,111,.28);font-weight:850;margin:10px 0}.heritage-inline-badges,.heritage-list-badges,.heritage-view-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.heritage-inline-badges{margin-top:8px}.heritage-list-badges{display:inline-flex;margin-top:6px}.heritage-view-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.heritage-view-header h2{margin-bottom:4px}.heritage-view-card h3{font-size:1rem;margin:0 0 10px;color:#f8e4bd}.heritage-view-grid{gap:14px}.heritage-view-grid p{margin:0 0 10px}.heritage-form-grid textarea{min-height:112px}.heritage-form-block .custom-option-panel,.heritage-form-block .manual-select-v14-panel{margin-top:8px}
.fiches-table .heritage-list-badges .badge,.general-sheets-table .heritage-list-badges .badge{margin-top:3px;white-space:normal}.list-search-card select[name="heritage_filter"],.list-search-card select[name="heritage_element_type"]{min-width:210px}
@media(max-width:780px){.heritage-form-header,.heritage-view-header{display:block}.heritage-toggle{margin-top:12px!important;width:100%;justify-content:center;white-space:normal}.heritage-checkbox-grid{grid-template-columns:1fr;max-height:none}.heritage-form-block{padding:14px;border-radius:18px}.heritage-details{padding:0 10px 12px}.heritage-inline-badges .badge,.heritage-view-badges .badge{white-space:normal}.list-search-card select[name="heritage_filter"],.list-search-card select[name="heritage_element_type"]{width:100%;min-width:0}}
.heritage-history-mini{margin-top:16px;padding-top:14px;border-top:1px solid rgba(148,163,184,.18)}

/* =========================================================
   V57 / Phase 4D — Liaison régie avec fiches techniques générales
   ========================================================= */
.regie-attachment-card{
  margin:12px 0 20px;
  padding:16px;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(17,24,39,.96),rgba(15,23,38,.98));
  border:1px solid rgba(240,200,121,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.regie-attachment-pane{
  margin-top:12px;
  padding:14px;
  border-radius:18px;
  background:rgba(15,23,38,.78);
  border:1px solid rgba(148,163,184,.16);
}
.regie-manual-context{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(148,163,184,.18);
}
.regie-state-impact-card{
  margin:18px 0;
  border:1px solid rgba(139,92,246,.20)!important;
  background:linear-gradient(180deg,rgba(43,29,66,.38),rgba(15,23,38,.92))!important;
}
.regie-state-impact-card h2{
  color:#f4e8ff;
}
.regie-state-impact-card .section-help{
  color:#b9c3d3;
}
.regie-attachment-card .form-group-wide{
  grid-column:span 2;
}
.regie-attachment-pane[hidden],
.regie-state-impact-card[hidden]{
  display:none!important;
}
@media(max-width:720px){
  .regie-attachment-card{
    padding:13px;
    border-radius:18px;
  }
  .regie-attachment-pane{
    padding:12px;
    border-radius:16px;
  }
  .regie-attachment-card .form-group-wide{
    grid-column:1 / -1;
  }
}

/* PHASE 4H — Alertes patrimoniales dans régie et travaux externalisés */
.heritage-intervention-alert{
    margin:18px 0;
    padding:18px;
    border:1px solid rgba(245,158,11,.34);
    background:linear-gradient(135deg,rgba(69,43,16,.92),rgba(127,29,29,.48) 52%,rgba(15,23,42,.96));
    box-shadow:0 18px 45px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.05);
}
.heritage-intervention-alert[hidden]{display:none!important}
.heritage-intervention-alert-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}
.heritage-intervention-alert-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:16px;background:rgba(245,158,11,.16);border:1px solid rgba(245,158,11,.36);font-size:1.35rem}
.heritage-intervention-alert h2{margin:2px 0 6px;color:#ffe7b5;font-size:1.2rem}.heritage-intervention-alert p{color:#f8e7c7;line-height:1.45}.heritage-intervention-badges{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}.heritage-intervention-alert-grid{gap:12px;margin:10px 0}.heritage-intervention-alert-grid p{margin:0;padding:12px;border-radius:14px;background:rgba(15,23,42,.58);border:1px solid rgba(255,255,255,.08);color:#e5e7eb}.heritage-intervention-alert-grid strong{color:#fde68a}.heritage-intervention-prescriptions{margin:10px 0;padding:12px 14px;border-radius:14px;background:rgba(15,23,42,.72);border-left:4px solid #f59e0b}.heritage-intervention-prescriptions strong{color:#fde68a}.heritage-intervention-prescriptions p{margin:6px 0 0;white-space:pre-wrap}.heritage-intervention-recommendations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.heritage-intervention-recommendations span{padding:10px 12px;border-radius:13px;background:rgba(2,6,23,.50);border:1px solid rgba(251,191,36,.20);font-weight:900;color:#fff7db;text-align:center}.heritage-visual-change-box{margin-top:12px;padding:12px;border-radius:16px;background:rgba(15,23,42,.70);border:1px solid rgba(255,255,255,.09)}.heritage-visual-change-choice{background:rgba(69,43,16,.60)!important;border-color:rgba(245,158,11,.36)!important}.heritage-visual-comment-group{margin-top:10px}.heritage-visual-comment-group textarea{min-height:94px}
@media(max-width:780px){.heritage-intervention-alert{padding:14px;border-radius:18px}.heritage-intervention-alert-head{display:block}.heritage-intervention-alert-icon{margin-bottom:10px}.heritage-intervention-recommendations{grid-template-columns:1fr}.heritage-intervention-alert-grid p{padding:10px}.heritage-intervention-badges .badge{white-space:normal}}

/* =========================================================
   PHASE 4I — Inventaire AGORA / exports patrimoniaux
   ========================================================= */
.agora-inventory-title .page-title-actions,
.page-title-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
}

.agora-inventory-stats .stat-card strong {
    letter-spacing: -0.03em;
}

.agora-inventory-search .searchbar {
    align-items: stretch;
}

.agora-inventory-search .searchbar select,
.agora-inventory-search .searchbar input {
    min-height: 44px;
}

.agora-inventory-filters {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.agora-inventory-criteria {
    margin-top: 12px;
}

.agora-inventory-card .export-card-head {
    align-items: flex-start;
}

.agora-inventory-table td small {
    color: var(--muted, #9ca3af);
}

.agora-inventory-table .badge {
    margin: 0 4px 4px 0;
}

.agora-inventory-table .general-list-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

@media (max-width: 760px) {
    .agora-inventory-title {
        gap: 12px;
    }

    .agora-inventory-title .page-title-actions {
        justify-content: stretch;
        width: 100%;
    }

    .agora-inventory-title .page-title-actions .btn {
        flex: 1 1 150px;
        min-height: 42px;
    }

    .agora-inventory-search .searchbar {
        display: grid;
        grid-template-columns: 1fr;
    }

    .agora-inventory-table td[data-label="Actions"] .btn,
    .agora-inventory-table td[data-label="Actions"] .location-btn {
        flex: 1 1 120px;
        justify-content: center;
    }
}


/* =========================================================
   V65 / Phase C — Navigation patrimoine simplifiée
   ========================================================= */
.patrimoine-title{align-items:flex-start}.patrimoine-kicker{display:inline-flex;margin-bottom:7px;color:#f0c879;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:950}.patrimoine-stats .stat-card strong{font-size:30px}.patrimoine-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.patrimoine-hub-card{display:flex;gap:16px;align-items:flex-start;min-height:170px;border:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,rgba(17,24,39,.96),rgba(15,23,38,.98))}.patrimoine-hub-card-primary{grid-column:1 / -1;background:linear-gradient(135deg,rgba(43,29,66,.74),rgba(15,23,38,.98) 62%);border-color:rgba(240,200,121,.24)}.patrimoine-card-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:17px;background:rgba(240,200,121,.10);border:1px solid rgba(240,200,121,.22);color:#f8e4bd;font-size:1.45rem;font-weight:950}.patrimoine-hub-card h2{margin:0 0 8px;color:#f8fafc}.patrimoine-hub-card p{margin:0;color:#aeb8c8;line-height:1.45}.patrimoine-card-meta{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 0}.patrimoine-card-meta span{display:inline-flex;padding:6px 9px;border-radius:999px;background:rgba(148,163,184,.10);border:1px solid rgba(148,163,184,.15);color:#dbeafe;font-size:.82rem;font-weight:850}.patrimoine-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.patrimoine-quick-card{margin-top:18px}.patrimoine-quick-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.patrimoine-quick-links a{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 10px;border-radius:14px;background:#0f1726;border:1px solid #2d3950;color:#eef2f7!important;text-decoration:none;font-weight:900;text-align:center}.patrimoine-quick-links a:hover{border-color:rgba(240,200,121,.38);background:#142034}.patrimoine-switcher{margin:14px 0 18px;padding:12px;border-radius:18px;background:rgba(15,23,38,.82);border:1px solid rgba(148,163,184,.15)}.patrimoine-switcher-head{display:flex;gap:12px;align-items:baseline;justify-content:space-between;margin-bottom:10px}.patrimoine-switcher-head span{font-weight:950;color:#f8e4bd}.patrimoine-switcher-head small{color:#94a3b8;font-weight:750}.patrimoine-switcher-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.patrimoine-switcher-link{display:flex;gap:10px;align-items:center;padding:10px 11px;border-radius:14px;background:#111827;border:1px solid rgba(148,163,184,.16);color:#eef2f7!important;text-decoration:none;min-height:58px}.patrimoine-switcher-link:hover{border-color:rgba(240,200,121,.34);background:#152033}.patrimoine-switcher-link.active{border-color:rgba(240,200,121,.55);box-shadow:inset 0 0 0 1px rgba(240,200,121,.18);background:rgba(240,200,121,.08)}.patrimoine-switcher-link.primary .patrimoine-switcher-icon{background:rgba(139,92,246,.18);border-color:rgba(139,92,246,.35);color:#d7b6ff}.patrimoine-switcher-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:12px;background:rgba(240,200,121,.10);border:1px solid rgba(240,200,121,.20);color:#f8e4bd;font-weight:950}.patrimoine-switcher-link strong{display:block;font-size:.92rem}.patrimoine-switcher-link small{display:block;color:#94a3b8;font-size:.74rem;line-height:1.2;margin-top:2px}
@media(max-width:980px){.patrimoine-hub-grid{grid-template-columns:1fr}.patrimoine-quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}.patrimoine-switcher-links{grid-template-columns:repeat(2,minmax(0,1fr))}.patrimoine-switcher-head{display:block}.patrimoine-switcher-head small{display:block;margin-top:4px}}
@media(max-width:720px){.patrimoine-title .page-title-actions{width:100%;display:grid;grid-template-columns:1fr;gap:8px}.patrimoine-hub-card{display:block;padding:15px}.patrimoine-card-icon{margin-bottom:12px}.patrimoine-card-actions .btn{flex:1 1 130px;justify-content:center}.patrimoine-quick-links{grid-template-columns:1fr}.patrimoine-switcher{padding:10px}.patrimoine-switcher-links{grid-template-columns:1fr}.patrimoine-switcher-link{min-height:54px}.patrimoine-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.patrimoine-stats{grid-template-columns:1fr}}




/* V68 - Phase D3 : champs "Valeur à préciser" affichés seulement après choix Autre */
.manual-select-v14,
.custom-option-panel{
  display:none!important;
  margin-top:8px!important;
}
.manual-select-v14.is-visible,
.custom-option-panel.is-visible{
  display:block!important;
}
.manual-select-v14[hidden],
.custom-option-panel[hidden]{
  display:none!important;
}
.manual-select-v14-label{
  display:block!important;
  margin-bottom:6px!important;
  color:#f0c879!important;
  font-weight:900!important;
  font-size:.88rem!important;
}
.manual-select-v14-help,
.custom-option-note{
  margin-top:6px!important;
  color:#94a3b8!important;
  font-size:.82rem!important;
  line-height:1.35!important;
}
.manual-select-v14-feedback,
.custom-option-feedback{
  margin-top:6px!important;
  min-height:18px!important;
  color:#9ee6b5!important;
  font-weight:800!important;
  font-size:.84rem!important;
}
.manual-select-v14-feedback.error,
.custom-option-feedback.error{
  color:#fecaca!important;
}

/* Phase 8 — indicateurs de pièces jointes travaux externalisés */
.doc-status-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}
.doc-status-badges .badge {
  white-space: nowrap;
}

/* =========================================================
   AGORA V2 — PHASE 14
   Formulaire de fiche technique structuré systématiquement par blocs
   ========================================================= */
body.ouvrage-form-page .content{max-width:1500px;margin:0 auto;}
.ouvrage-form-v14{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ouvrage-form-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start;}
.ouvrage-form-main{min-width:0;}
.ouvrage-form-index{position:sticky;top:82px;z-index:12;}
.ouvrage-form-index-card{
  padding:17px;
  border-radius:20px;
  border:1px solid rgba(214,163,90,.22);
  background:linear-gradient(180deg,rgba(22,30,45,.98),rgba(14,21,33,.98));
  box-shadow:0 18px 45px rgba(0,0,0,.25);
}
.ouvrage-form-index-kicker,.ouvrage-form-introduction-kicker{
  display:block;margin-bottom:6px;color:#f0c879;text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;font-weight:950;
}
.ouvrage-form-index-card>strong{display:block;color:#f8fafc;font-size:1.04rem;}
.ouvrage-form-index-card>p{margin:6px 0 14px;color:#94a3b8;font-size:.82rem;line-height:1.4;}
.ouvrage-form-index-card nav{display:grid;gap:6px;}
.ouvrage-form-index-card nav a{
  display:grid;grid-template-columns:29px minmax(0,1fr);gap:9px;align-items:center;
  min-height:42px;padding:7px 9px;border:1px solid transparent;border-radius:13px;
  color:#cbd5e1!important;text-decoration:none;background:rgba(255,255,255,.025);
}
.ouvrage-form-index-card nav a span{
  display:grid;place-items:center;width:27px;height:27px;border-radius:9px;
  border:1px solid rgba(148,163,184,.2);background:#0f1726;color:#94a3b8;font-size:.76rem;font-weight:950;
}
.ouvrage-form-index-card nav a strong{font-size:.82rem;line-height:1.15;}
.ouvrage-form-index-card nav a:hover,.ouvrage-form-index-card nav a.is-active{
  border-color:rgba(240,200,121,.42);background:rgba(240,200,121,.09);color:#fff!important;
}
.ouvrage-form-index-card nav a.is-active span{border-color:#d6a35a;background:#d6a35a;color:#171008;}
.ouvrage-form-index-note{display:flex;gap:9px;align-items:flex-start;margin-top:14px;padding-top:12px;border-top:1px solid rgba(148,163,184,.14);color:#94a3b8;}
.ouvrage-form-index-note span{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:8px;background:rgba(34,197,94,.12);color:#6ee7a1;font-weight:950;}
.ouvrage-form-index-note small{font-size:.74rem;line-height:1.35;}

.ouvrage-form-introduction{
  display:flex;justify-content:space-between;gap:18px;align-items:center;
  margin-bottom:16px;padding:18px 20px;border-radius:20px;
  border:1px solid rgba(214,163,90,.22);
  background:radial-gradient(circle at 100% 0,rgba(214,163,90,.18),transparent 38%),linear-gradient(135deg,rgba(28,36,53,.98),rgba(15,23,38,.98));
}
.ouvrage-form-introduction h2{margin:0;color:#f8fafc;font-size:1.25rem;letter-spacing:-.02em;}
.ouvrage-form-introduction p{margin:6px 0 0;color:#aeb8c8;line-height:1.45;}
.ouvrage-form-introduction-badge{flex:0 0 auto;padding:9px 12px;border-radius:999px;border:1px solid rgba(240,200,121,.28);background:rgba(240,200,121,.1);color:#f8e4bd;font-size:.78rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em;}

.ouvrage-form-block{
  scroll-margin-top:92px;margin:0 0 16px;border-radius:22px;overflow:hidden;
  border:1px solid #2b364b;background:linear-gradient(180deg,rgba(24,32,48,.98),rgba(17,24,38,.98));
  box-shadow:0 18px 48px rgba(0,0,0,.24);
}
.ouvrage-form-block-header{
  display:grid;grid-template-columns:38px 40px minmax(0,1fr);gap:11px;align-items:center;
  padding:16px 18px;border-bottom:1px solid rgba(148,163,184,.15);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0));
}
.ouvrage-form-block-number{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#d6a35a;color:#171008;font-weight:950;box-shadow:0 8px 20px rgba(214,163,90,.18);}
.ouvrage-form-block-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid rgba(240,200,121,.2);background:rgba(240,200,121,.08);color:#f8e4bd;font-size:1.05rem;font-weight:950;}
.ouvrage-form-block-heading h2{margin:0;color:#f8fafc;font-size:1.08rem;}
.ouvrage-form-block-heading p{margin:4px 0 0;color:#9aa7ba;font-size:.82rem;line-height:1.35;}
.ouvrage-form-block-body{padding:18px;}
.ouvrage-form-block-body>.form-group:last-child,.ouvrage-form-block-body>.grid:last-child{margin-bottom:0;}

.ouvrage-category-field{margin-bottom:18px;}
.ouvrage-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.ouvrage-category-card{position:relative;min-width:0;}
.ouvrage-category-card input{position:absolute;opacity:0;pointer-events:none;}
.ouvrage-category-card span{
  display:flex;flex-direction:column;align-items:flex-start;min-height:116px;padding:14px;border-radius:17px;
  border:1px solid #344159;background:#0f1726;color:#eef2f7;cursor:pointer;transition:.18s ease;
}
.ouvrage-category-card span b{display:grid;place-items:center;width:33px;height:33px;margin-bottom:10px;border-radius:11px;background:#182338;border:1px solid #334159;color:#f0c879;font-size:1rem;}
.ouvrage-category-card span strong{font-size:.95rem;}
.ouvrage-category-card span small{display:block;margin-top:6px;color:#8f9caf;font-size:.73rem;line-height:1.32;}
.ouvrage-category-card:hover span{transform:translateY(-1px);border-color:rgba(240,200,121,.4);background:#131d2f;}
.ouvrage-category-card input:focus-visible+span{outline:3px solid rgba(214,163,90,.28);outline-offset:2px;}
.ouvrage-category-card input:checked+span{border-color:#d6a35a;background:linear-gradient(180deg,#2b2114,#211a12);box-shadow:inset 0 0 0 1px rgba(240,200,121,.16),0 10px 28px rgba(0,0,0,.18);}
.ouvrage-category-card input:checked+span b{background:#d6a35a;color:#171008;border-color:#f0c879;}
.ouvrage-category-card input:checked+span small{color:#d9c8a8;}

.ouvrage-group-panel{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:10px 18px;align-items:center;margin-top:6px;padding:14px 15px;border-radius:16px;border:1px dashed #3a465c;background:rgba(15,23,38,.62);}
.ouvrage-group-panel .compact-check{display:flex;align-items:center;gap:10px;font-weight:900;color:#e8edf5;}
.ouvrage-group-panel .compact-check input{width:20px;height:20px;accent-color:#d6a35a;}
.ouvrage-group-panel .compact-qty{display:flex;align-items:center;justify-content:flex-end;gap:9px;font-weight:850;color:#cbd5e1;}
.ouvrage-group-panel .compact-qty .form-control{max-width:88px;}
.ouvrage-group-panel .help-text{grid-column:1/-1;margin:0;}

.ouvrage-form-subsection{margin:0 0 15px;padding:15px;border-radius:17px;border:1px solid rgba(148,163,184,.14);background:rgba(15,23,38,.48);}
.ouvrage-form-subsection:last-child{margin-bottom:0;}
.ouvrage-form-subsection-head{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin-bottom:13px;padding-bottom:10px;border-bottom:1px solid rgba(148,163,184,.12);}
.ouvrage-form-subsection-head strong{color:#f8fafc;font-size:.92rem;}
.ouvrage-form-subsection-head span{color:#8f9caf;font-size:.75rem;text-align:right;}
.ouvrage-custom-fields-section{margin-top:15px;}

.ouvrage-form-details{margin:0 0 15px;border:1px solid rgba(148,163,184,.17);border-radius:17px;background:rgba(15,23,38,.46);overflow:hidden;}
.ouvrage-form-details>summary{cursor:pointer;list-style:none;padding:14px 15px;color:#f4d7a2;font-weight:900;}
.ouvrage-form-details>summary::-webkit-details-marker{display:none;}
.ouvrage-form-details>summary:after{content:'+';float:right;color:#f0c879;font-size:1.1rem;}
.ouvrage-form-details[open]>summary:after{content:'−';}
.ouvrage-form-details[open]>summary{border-bottom:1px solid rgba(148,163,184,.14);}
.ouvrage-form-details>.grid{padding:15px;}

.ouvrage-existing-media{margin-bottom:16px;padding:15px;border-radius:17px;border:1px solid rgba(148,163,184,.16);background:rgba(15,23,38,.56);}
.ouvrage-existing-media-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:13px;}
.ouvrage-existing-media-head strong{display:block;color:#f8fafc;}
.ouvrage-existing-media-head span{display:block;margin-top:4px;color:#f0c879;font-size:.78rem;font-weight:850;}
.ouvrage-existing-media-head small{color:#8f9caf;text-align:right;max-width:390px;line-height:1.35;}
.ouvrage-existing-photo-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.ouvrage-existing-photo-grid a{display:block;aspect-ratio:1.35/1;border-radius:12px;overflow:hidden;border:1px solid #344159;background:#0f1726;}
.ouvrage-existing-photo-grid img{width:100%;height:100%;object-fit:cover;display:block;}
.ouvrage-existing-documents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.ouvrage-existing-documents a{display:flex;gap:9px;align-items:center;min-width:0;padding:10px 11px;border-radius:12px;border:1px solid #344159;background:#0f1726;color:#e9eef6!important;text-decoration:none;}
.ouvrage-existing-documents a strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;}
.ouvrage-existing-documents a:hover{border-color:rgba(240,200,121,.38);}
.ouvrage-media-upload-grid{align-items:stretch;}
.ouvrage-media-upload-grid>.form-group{display:flex;flex-direction:column;}
.ouvrage-media-upload-grid .upload-box{flex:1;}

.ouvrage-form-final-check{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:18px 0 0;padding:15px 17px;border-radius:18px;border:1px solid rgba(34,197,94,.22);background:rgba(34,197,94,.075);}
.ouvrage-form-final-check strong{color:#d9fbe5;}
.ouvrage-form-final-check p{margin:4px 0 0;color:#9bc9ad;font-size:.82rem;}
.ouvrage-form-final-check>span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:13px;background:rgba(34,197,94,.15);color:#79e5a5;font-size:1.2rem;font-weight:950;}
.ouvrage-form-actions{margin-top:12px!important;padding-top:15px!important;}

body.ouvrage-form-page .patrimoine-switcher{margin-bottom:16px;}
body.ouvrage-form-page .heritage-form-block{margin:0;border-color:rgba(148,163,184,.16)!important;box-shadow:none!important;}
body.ouvrage-form-page .heritage-form-header{padding-top:0;}

@media(max-width:1180px){
  .ouvrage-form-layout{grid-template-columns:210px minmax(0,1fr);gap:15px;}
  .ouvrage-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ouvrage-existing-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(max-width:900px){
  .ouvrage-form-layout{display:block;}
  .ouvrage-form-index{position:static;margin-bottom:12px;}
  .ouvrage-form-index-card{padding:12px;}
  .ouvrage-form-index-card>p,.ouvrage-form-index-note{display:none;}
  .ouvrage-form-index-card nav{display:flex;overflow-x:auto;gap:7px;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
  .ouvrage-form-index-card nav a{flex:0 0 auto;min-width:132px;grid-template-columns:27px minmax(0,1fr);}
}
@media(max-width:720px){
  body.ouvrage-form-page .content{padding-left:9px!important;padding-right:9px!important;}
  .ouvrage-form-introduction{display:block;padding:15px;}
  .ouvrage-form-introduction-badge{display:inline-flex;margin-top:11px;}
  .ouvrage-form-block{border-radius:19px;margin-bottom:13px;scroll-margin-top:74px;}
  .ouvrage-form-block-header{grid-template-columns:32px 34px minmax(0,1fr);gap:8px;padding:13px;}
  .ouvrage-form-block-number{width:30px;height:30px;border-radius:10px;}
  .ouvrage-form-block-icon{width:32px;height:32px;border-radius:10px;}
  .ouvrage-form-block-heading h2{font-size:1rem;}
  .ouvrage-form-block-heading p{font-size:.76rem;}
  .ouvrage-form-block-body{padding:13px;}
  .ouvrage-category-grid{grid-template-columns:1fr;}
  .ouvrage-category-card span{min-height:88px;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-content:center;}
  .ouvrage-category-card span b{grid-row:1/3;margin:0;}
  .ouvrage-category-card span small{margin-top:3px;}
  .ouvrage-group-panel{grid-template-columns:1fr;}
  .ouvrage-group-panel .compact-qty{justify-content:flex-start;}
  .ouvrage-form-subsection{padding:12px;}
  .ouvrage-form-subsection-head{display:block;}
  .ouvrage-form-subsection-head span{display:block;margin-top:4px;text-align:left;}
  .ouvrage-existing-media-head{display:block;}
  .ouvrage-existing-media-head small{display:block;margin-top:7px;text-align:left;}
  .ouvrage-existing-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .ouvrage-existing-documents{grid-template-columns:1fr;}
  .ouvrage-form-final-check{align-items:flex-start;}
}
@media(max-width:420px){
  .ouvrage-existing-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ouvrage-form-index-card nav a{min-width:120px;}
}

/* =========================================================
   AGORA V2 — PHASE 15
   Modèles métier et personnalisation par famille d’ouvrage
   ========================================================= */
.ouvrage-template-profile,
.ouvrage-template-dimension-summary{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:14px 0 16px;
  padding:14px 15px;
  border:1px solid rgba(214,163,90,.23);
  border-radius:17px;
  background:linear-gradient(135deg,rgba(214,163,90,.09),rgba(15,23,38,.68));
}
.ouvrage-template-profile-icon,
.ouvrage-template-dimension-summary>span:first-child{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid rgba(240,200,121,.25);
  background:rgba(214,163,90,.13);
  color:#f0c879;
  font-weight:950;
  font-size:1rem;
}
.ouvrage-template-profile strong,
.ouvrage-template-dimension-summary strong{
  display:block;
  color:#f8fafc;
  font-size:.93rem;
}
.ouvrage-template-profile p,
.ouvrage-template-dimension-summary p{
  margin:4px 0 0;
  color:#9ba8bb;
  font-size:.79rem;
  line-height:1.4;
}
.ouvrage-template-characteristics .ouvrage-form-subsection-head>div{min-width:0;}
.ouvrage-template-characteristics .ouvrage-form-subsection-head>div span{display:block;margin-top:4px;text-align:left;}
.ouvrage-template-characteristics .badge{flex:0 0 auto;}
.ouvrage-template-migration-alert{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:13px 14px;
  border:1px solid rgba(245,158,11,.28);
  border-radius:14px;
  background:rgba(245,158,11,.08);
  color:#f8d89a;
}
.ouvrage-template-migration-alert span{color:#c9b58e;font-size:.8rem;line-height:1.4;}
.ouvrage-advanced-characteristics>.help-text,
.ouvrage-admin-characteristics>.help-text{padding:0 15px;margin:12px 0 0;}
.ouvrage-advanced-characteristics>.grid,
.ouvrage-admin-characteristics>.grid{padding-top:12px;}
[data-custom-field-row][hidden],
[data-dimension-row][hidden],
[data-family-custom-row][hidden],
[data-system-advanced-section][hidden],
[data-admin-fields-section][hidden],
[data-dimension-secondary-details][hidden]{display:none!important;}
.ouvrage-template-dimension-summary{grid-template-columns:42px minmax(0,1fr);}
.ouvrage-template-dimension-summary>span:first-child{font-size:1.15rem;}
.ouvrage-form-v14 select[data-ouvrage-family]{font-weight:850;}
.ouvrage-form-v14 [data-family-custom-row]{align-self:end;}
.ouvrage-view-details{
  margin-top:14px;
  border-top:1px solid rgba(148,163,184,.16);
  padding-top:12px;
}
.ouvrage-view-details>summary{cursor:pointer;color:#f0c879;font-weight:900;margin-bottom:10px;}
.ouvrage-template-view-banner{
  display:grid;
  grid-template-columns:50px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  border-color:rgba(214,163,90,.25)!important;
  background:radial-gradient(circle at 100% 0,rgba(214,163,90,.15),transparent 38%),linear-gradient(135deg,rgba(27,36,53,.98),rgba(15,23,38,.98))!important;
}
.ouvrage-template-view-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:15px;
  background:rgba(214,163,90,.13);
  border:1px solid rgba(240,200,121,.25);
  color:#f0c879;
  font-size:1.2rem;
  font-weight:950;
}
.ouvrage-template-view-banner h2{margin:2px 0 0;color:#f8fafc;}
.ouvrage-template-view-banner p{margin:5px 0 0;color:#9ba8bb;}
.ouvrage-template-view-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;}

@media(max-width:720px){
  .ouvrage-template-profile,
  .ouvrage-template-dimension-summary,
  .ouvrage-template-view-banner{grid-template-columns:38px minmax(0,1fr);align-items:start;}
  .ouvrage-template-profile>.badge,
  .ouvrage-template-view-meta{grid-column:1/-1;justify-content:flex-start;}
  .ouvrage-template-profile-icon,
  .ouvrage-template-dimension-summary>span:first-child{width:34px;height:34px;}
  .ouvrage-template-view-icon{width:38px;height:38px;border-radius:12px;}
}

/* ================================================================
   AGORA — Phase 16 : grilles de contrôle adaptées par famille
   ================================================================ */
.control-adaptive-form{display:grid;gap:18px;}
.control-profile-banner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  padding:18px 20px;
  border:1px solid rgba(214,163,90,.30);
  border-radius:18px;
  background:radial-gradient(circle at 100% 0,rgba(214,163,90,.16),transparent 38%),linear-gradient(135deg,rgba(27,36,53,.98),rgba(15,23,38,.98));
  box-shadow:0 12px 28px rgba(2,8,23,.18);
}
.control-profile-kicker{
  display:block;
  margin-bottom:4px;
  color:#f0c879;
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.control-profile-banner strong{display:block;color:#f8fafc;font-size:1.16rem;line-height:1.25;}
.control-profile-banner p{margin:6px 0 0;color:#aeb9c9;line-height:1.45;max-width:880px;}
.control-profile-banner>.badge{justify-self:end;max-width:280px;text-align:center;white-space:normal;}
.global-condition-display{
  height:76px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.18rem;
  font-weight:950;
  border:2px solid #334159;
  background:#0f1726;
  color:#eef2f7;
}
.global-condition-display.state-parfait{background:linear-gradient(180deg,rgba(22,163,74,.22),rgba(15,23,38,.92));border-color:#22c55e;color:#c8f7d8;}
.global-condition-display.state-bon{background:linear-gradient(180deg,rgba(59,130,246,.22),rgba(15,23,38,.92));border-color:#3b82f6;color:#c9dcff;}
.global-condition-display.state-moyen{background:linear-gradient(180deg,rgba(229,197,66,.20),rgba(15,23,38,.92));border-color:#e5c542;color:#fff0a3;}
.global-condition-display.state-mauvais{background:linear-gradient(180deg,rgba(249,115,22,.20),rgba(15,23,38,.92));border-color:#f97316;color:#ffd0ae;}
.global-condition-display.state-critique{background:linear-gradient(180deg,rgba(239,68,68,.24),rgba(15,23,38,.92));border-color:#ef4444;color:#ffc4c4;}
.control-grid-card{padding:18px;}
.control-items-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.control-item-card{
  position:relative;
  min-width:0;
  border:1px solid #2a3549;
  border-radius:18px;
  background:linear-gradient(180deg,#182133,#131c2b);
  padding:15px;
  overflow:hidden;
}
.control-item-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:linear-gradient(#d6a35a,#f0c879);
  opacity:.72;
}
.control-item-section{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  margin:0 0 9px;
  padding:4px 9px;
  border:1px solid rgba(214,163,90,.25);
  border-radius:999px;
  background:rgba(214,163,90,.08);
  color:#e8c990;
  font-size:.69rem;
  font-weight:950;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.control-item-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px;}
.control-item-topline strong{font-size:1.04rem;color:#eef2f7;line-height:1.32;}
.control-item-help{min-height:38px;margin:0 0 12px;color:#94a3b8;font-size:.79rem;line-height:1.45;}
.state-choice-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:12px;}
.state-choice{min-height:46px;padding:7px 5px;border-radius:13px;border:1px solid #334159;background:#0f1726;color:#dbe4f0;font-weight:950;font-size:.86rem;cursor:pointer;}
.state-choice:hover{border-color:#64748b;transform:translateY(-1px);}
.state-choice.is-active{box-shadow:0 0 0 3px rgba(255,255,255,.04), inset 0 0 0 1px rgba(255,255,255,.08);}
.state-choice.state-bon.is-active{border-color:#22c55e;background:rgba(22,163,74,.25);color:#c8f7d8;}
.state-choice.state-moyen.is-active{border-color:#f59e0b;background:rgba(245,158,11,.24);color:#fde7b0;}
.state-choice.state-mauvais.is-active{border-color:#f97316;background:rgba(249,115,22,.24);color:#ffd0ae;}
.state-choice.state-critique.is-active{border-color:#ef4444;background:rgba(239,68,68,.25);color:#ffc4c4;}
.control-comment-group textarea{min-height:82px;}
.control-upload{min-height:58px!important;margin-top:6px;}
.control-upload small{display:inline;margin-left:6px;}
.photo-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.photo-strip img{width:58px;height:58px;object-fit:cover;border-radius:12px;border:1px solid #334159;}
.alert.alert-warning{
  border:1px solid rgba(245,158,11,.34);
  background:rgba(245,158,11,.09);
  color:#f8d89a;
  border-radius:14px;
  padding:12px 14px;
}
@media(max-width:980px){
  .control-items-compact{grid-template-columns:1fr;}
}
@media(max-width:720px){
  .control-profile-banner{grid-template-columns:1fr;padding:15px;}
  .control-profile-banner>.badge{justify-self:start;max-width:100%;}
  .state-choice-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .control-item-help{min-height:0;}
}

/* AGORA — Phase 17 : moteur commun des anomalies */
.badge-yellow{background:#fff8d9;color:#8a6500}
.anomaly-workflow-card,.anomaly-central-card{border:1px solid rgba(205,150,74,.32)!important;background:linear-gradient(180deg,rgba(42,32,19,.38),rgba(18,24,38,.97))!important}
.anomaly-workflow-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.anomaly-workflow-head h2,.anomaly-central-card h2{margin:3px 0 6px}
.anomaly-workflow-head p,.anomaly-central-card p{margin:0}
.anomaly-workflow-summary{padding:10px 12px;margin:10px 0 14px;border-radius:12px;background:rgba(214,163,90,.10);border:1px solid rgba(214,163,90,.18);font-weight:800;color:var(--ink-2)}
.anomaly-workflow-table td{vertical-align:top;min-width:115px}
.anomaly-workflow-table td:first-child{min-width:230px}
.anomaly-workflow-table textarea{min-width:220px;resize:vertical}
.anomaly-workflow-table select{min-width:190px}
.anomaly-empty{padding:20px;border:1px dashed #46526a;border-radius:14px;text-align:center;color:var(--muted)}
.anomaly-highlight{outline:2px solid var(--accent);outline-offset:-2px;background:rgba(214,163,90,.12)!important}
.anomaly-description{display:inline-block;max-width:480px;white-space:normal;color:var(--muted)}
.anomaly-summary-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.anomaly-stats .stat-card strong{font-size:30px}
@media (max-width:900px){
  .anomaly-workflow-head{flex-direction:column}
  .anomaly-workflow-table textarea,.anomaly-workflow-table select{min-width:160px}
}
@media (prefers-color-scheme:dark){.badge-yellow{background:#3b3214;color:#ffe08a}}

/* AGORA — Phase 18 : réception externalisée et réserves individuelles */
.grid-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.btn-success{background:linear-gradient(180deg,#34d399,#159568);color:#061b13;box-shadow:0 10px 22px rgba(21,149,104,.24)}
.flash.warning{background:#fff3df;color:#9a5700;border:1px solid #f0d4a4}
.external-work-form{padding:18px}
.form-section-block{margin:0 0 18px;padding:18px;border:1px solid rgba(148,163,184,.22);border-radius:22px;background:linear-gradient(180deg,rgba(24,33,51,.94),rgba(15,23,38,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.form-section-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:17px;padding-bottom:13px;border-bottom:1px solid rgba(148,163,184,.15)}
.form-section-heading>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;border-radius:13px;background:rgba(214,163,90,.14);border:1px solid rgba(214,163,90,.34);color:#f5d79c;font-weight:950}
.form-section-heading h2{margin:0 0 3px!important;color:#f8fafc!important;font-size:1.22rem!important}
.form-section-heading p{margin:0;color:#9eabc0;font-weight:700;line-height:1.4}
.reception-section{border-color:rgba(214,163,90,.34);background:radial-gradient(circle at 100% 0,rgba(214,163,90,.10),transparent 32%),linear-gradient(180deg,rgba(24,33,51,.97),rgba(15,23,38,.98))}
.reception-criteria-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 17px}
.reception-criterion{display:flex;align-items:center;gap:10px;min-height:50px;padding:11px 13px;border:1px solid #334159;border-radius:14px;background:#111827;color:#dbe4f0;font-weight:850}
.reception-criterion input{width:19px;height:19px;accent-color:#d6a35a}
.reception-validation-note{margin-top:14px;padding:12px 14px;border-radius:14px;border:1px solid rgba(34,197,94,.28);background:rgba(34,197,94,.10);color:#bdf4cf}
.external-reception-stats{margin-bottom:18px}
.external-reception-stats .stat-card strong{font-size:1.55rem;line-height:1.1}
.reception-reserves-section{margin:0 0 18px!important;border:1px solid rgba(249,115,22,.28)!important;background:radial-gradient(circle at 100% 0,rgba(249,115,22,.08),transparent 30%),linear-gradient(180deg,#182033,#101725)!important}
.reception-reserves-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.reception-reserves-heading h2{margin:3px 0 5px!important}.reception-reserves-heading p{margin:0;color:#9eabc0;max-width:760px}
.reception-reserve-list{display:grid;gap:14px}
.reception-reserve-card{position:relative;padding:15px;border:1px solid rgba(249,115,22,.24);border-radius:18px;background:linear-gradient(180deg,rgba(31,41,58,.96),rgba(17,24,39,.98));transition:opacity .15s ease,border-color .15s ease}
.reception-reserve-card.is-removed{display:none}
.reception-reserve-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}
.reception-reserve-head>div{display:grid;gap:3px}.reception-reserve-head strong{font-size:1.02rem;color:#f8fafc}.reception-reserve-head small{color:#8390a4}
.btn-small{min-height:36px;padding:7px 10px;font-size:.78rem}
.reserve-upload-label{display:flex;align-items:center;justify-content:center;margin-top:10px;min-height:42px;padding:8px 10px;border:1px dashed #526078;border-radius:12px;color:#cbd5e1;font-weight:800;cursor:pointer}
.reserve-upload-label input{max-width:100%;margin-left:8px}
.reserve-resolution-zone{margin-top:10px;padding-top:12px;border-top:1px solid rgba(148,163,184,.14)}
.reserve-photo-strip img{width:72px;height:58px}.reserve-photo-strip a{display:inline-flex}
.badge-yellow{background:#fff8d9;color:#8a6500}
@media(max-width:1100px){.grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}.reception-criteria-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.grid-5{grid-template-columns:1fr}.external-work-form{padding:10px}.form-section-block{padding:14px;border-radius:18px}.form-section-heading{gap:10px}.form-section-heading>span{flex-basis:32px;width:32px;height:32px}.reception-reserves-heading{display:block}.reception-reserves-heading .btn{width:100%;margin-top:12px}.reception-criteria-grid{grid-template-columns:1fr}.reception-reserve-head{align-items:center}.reserve-upload-label{display:block}.reserve-upload-label input{display:block;margin:7px 0 0;width:100%}}
@media(prefers-color-scheme:dark){.flash.warning{background:#3a2b12;color:#f8d89a;border-color:#73531f}}

/* AGORA — Phase 19 : clôture interne des interventions en régie */
.btn-warning{background:linear-gradient(180deg,#fbbf24,#d97706);color:#241407;box-shadow:0 10px 22px rgba(217,119,6,.24)}
.text-warning{color:#f0b35b!important}
.regie-workflow-form{padding:18px}
.regie-closure-section{border-color:rgba(66,193,132,.30);background:radial-gradient(circle at 100% 0,rgba(66,193,132,.10),transparent 30%),linear-gradient(180deg,rgba(24,33,51,.97),rgba(15,23,38,.98))}
.regie-closure-note,.regie-closure-rules{margin-top:14px;padding:13px 15px;border:1px solid rgba(214,163,90,.28);border-radius:15px;background:rgba(214,163,90,.08);color:#dbe4f0;line-height:1.55}
.regie-closure-rules ul{margin:8px 0 0;padding-left:20px}.regie-closure-rules li+li{margin-top:5px}
.regie-closure-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.regie-closure-stats .stat-card strong{font-size:1.55rem;line-height:1.12}
.closure-anomaly-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-height:50px;padding:11px 13px;border:1px solid #334159;border-radius:14px;background:#111827}
.closure-anomaly-summary strong{color:#a7f3d0}.closure-anomaly-summary span{color:#f8d89a;font-weight:800}
.regie-photo-exemption{margin-top:12px}
.regie-closure-fieldset{border:0;padding:0;margin:0;min-width:0}
.regie-closure-fieldset[disabled]{opacity:.72}.regie-closure-fieldset[disabled] .form-section-block{filter:saturate(.78)}
@media(max-width:1100px){.regie-closure-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.regie-workflow-form{padding:10px}.regie-closure-stats{grid-template-columns:1fr}.closure-anomaly-summary{align-items:flex-start;flex-direction:column}}

/* ========================================================================== 
   Phase 20 — chronologie consolidée de la fiche technique
   ========================================================================== */
.ouvrage-timeline-card .export-card-head{align-items:flex-start;gap:1rem}.ouvrage-timeline{position:relative;margin-top:1rem}.ouvrage-timeline:before{content:"";position:absolute;left:14px;top:8px;bottom:8px;width:2px;background:rgba(255,255,255,.12)}.ouvrage-timeline-item{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:1rem;padding:0 0 1.1rem}.ouvrage-timeline-marker{position:relative;z-index:1;width:16px;height:16px;margin:6px 0 0 7px;border-radius:50%;background:#8b8f98;border:3px solid var(--card-bg,#1f2228);box-shadow:0 0 0 2px rgba(255,255,255,.12)}.ouvrage-timeline-content{border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:1rem;background:rgba(255,255,255,.025)}.ouvrage-timeline-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.ouvrage-timeline-head>div{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.ouvrage-timeline-head time{white-space:nowrap;font-size:.84rem;opacity:.72}.ouvrage-timeline-content p{margin:.7rem 0 0}.ouvrage-timeline-foot{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:.8rem}.ouvrage-timeline-foot .btn{padding:.4rem .7rem}.ouvrage-timeline-transitions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:.75rem;font-size:.9rem}.ouvrage-timeline-transitions>span{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .55rem;border-radius:10px;background:rgba(255,255,255,.04)}.timeline-control .ouvrage-timeline-marker{background:#3b82f6}.timeline-anomaly .ouvrage-timeline-marker{background:#f59e0b}.timeline-regie .ouvrage-timeline-marker{background:#10b981}.timeline-external .ouvrage-timeline-marker{background:#a855f7}.timeline-state .ouvrage-timeline-marker{background:#eab308}.timeline-sheet .ouvrage-timeline-marker{background:#8b8f98}@media(max-width:760px){.ouvrage-timeline-head{display:block}.ouvrage-timeline-head time{display:block;margin-top:.5rem}.ouvrage-timeline-foot{align-items:flex-start}.ouvrage-timeline-content{padding:.85rem}.ouvrage-timeline-item{gap:.65rem}}

/* ========================================================================== 
   Phase 21 — fiche technique sous forme de dossier opérationnel central
   ========================================================================== */
.ouvrage-dossier-hero{display:grid;grid-template-columns:220px minmax(0,1fr) minmax(220px,300px);gap:20px;align-items:stretch;margin-bottom:14px;padding:20px;border:1px solid rgba(214,163,90,.25);border-radius:26px;background:radial-gradient(circle at 100% 0,rgba(214,163,90,.13),transparent 32%),linear-gradient(180deg,rgba(25,34,52,.99),rgba(14,21,34,.99));box-shadow:0 22px 56px rgba(0,0,0,.34)}
.ouvrage-dossier-cover{min-height:170px;border-radius:20px;overflow:hidden;border:1px solid rgba(214,163,90,.25);background:#0f1726}.ouvrage-dossier-cover a,.ouvrage-dossier-cover img{display:block;width:100%;height:100%}.ouvrage-dossier-cover img{object-fit:cover}.ouvrage-dossier-cover-empty{display:grid;place-items:center;width:100%;height:100%;min-height:170px;color:#f0c879;font-size:2.2rem;font-weight:950;letter-spacing:.08em;background:radial-gradient(circle at 50% 30%,rgba(214,163,90,.13),transparent 38%),#0f1726}
.ouvrage-dossier-identity{align-self:center;min-width:0}.ouvrage-dossier-identity h1{margin:5px 0 7px;color:#f8fafc;font-size:clamp(1.75rem,3vw,2.7rem);line-height:1.02;letter-spacing:-.035em}.ouvrage-dossier-reference{margin:0;color:#d7dfeb;font-size:1rem}.ouvrage-dossier-location-line{margin:8px 0 0;color:#9eabc0}.ouvrage-dossier-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.ouvrage-dossier-situation{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:18px;border:1px solid #354158;border-radius:20px;background:#111827}.ouvrage-dossier-situation>span{color:#9daabd;font-size:.75rem;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.ouvrage-dossier-situation strong{color:#f8fafc;font-size:1.3rem;line-height:1.15}.ouvrage-dossier-situation small{color:#9daabd;line-height:1.4}.ouvrage-dossier-situation-danger{border-color:rgba(248,113,113,.42);background:linear-gradient(180deg,rgba(67,26,31,.82),rgba(28,21,30,.94))}.ouvrage-dossier-situation-warning{border-color:rgba(245,158,11,.38);background:linear-gradient(180deg,rgba(62,42,18,.78),rgba(27,24,26,.94))}.ouvrage-dossier-situation-info{border-color:rgba(96,165,250,.34);background:linear-gradient(180deg,rgba(24,45,75,.76),rgba(19,26,39,.94))}.ouvrage-dossier-situation-ok{border-color:rgba(52,211,153,.30);background:linear-gradient(180deg,rgba(20,55,44,.72),rgba(18,27,35,.94))}
.ouvrage-dossier-actions{position:sticky;top:70px;z-index:24;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:10px;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:rgba(10,16,27,.94);box-shadow:0 13px 30px rgba(0,0,0,.27);backdrop-filter:blur(14px)}.ouvrage-dossier-actions .btn{min-height:40px;padding:8px 12px;border-radius:12px;font-size:.82rem}
.ouvrage-dossier-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.ouvrage-dossier-kpi{display:flex;min-height:112px;flex-direction:column;justify-content:flex-end;padding:14px;border:1px solid #2d394f;border-radius:18px;background:linear-gradient(180deg,#182235,#111827);color:#eef2f7!important;text-decoration:none;box-shadow:0 12px 30px rgba(0,0,0,.22)}.ouvrage-dossier-kpi:hover{transform:translateY(-2px);border-color:rgba(240,200,121,.36)}.ouvrage-dossier-kpi span{color:#9ba9bd;font-size:.72rem;font-weight:950;text-transform:uppercase;letter-spacing:.055em}.ouvrage-dossier-kpi strong{margin:6px 0 3px;color:#fff;font-size:1.35rem;line-height:1.05}.ouvrage-dossier-kpi small{color:#8f9db1;line-height:1.3}.ouvrage-dossier-kpi.is-alert{border-color:rgba(248,113,113,.36);background:radial-gradient(circle at 100% 0,rgba(248,113,113,.12),transparent 42%),linear-gradient(180deg,#211d2b,#111827)}
.ouvrage-dossier-alert-panel{margin-bottom:16px!important}.ouvrage-dossier-alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ouvrage-dossier-alert{display:grid;grid-template-columns:12px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:12px 13px;border:1px solid #344158;border-radius:15px;background:#111827;color:#e9eef6!important;text-decoration:none}.ouvrage-dossier-alert:hover{border-color:rgba(240,200,121,.38);background:#151f31}.ouvrage-dossier-alert-dot{width:10px;height:10px;border-radius:50%;background:#94a3b8}.ouvrage-dossier-alert strong,.ouvrage-dossier-alert small{display:block}.ouvrage-dossier-alert small{margin-top:3px;color:#95a3b7;line-height:1.35}.ouvrage-dossier-alert b{color:#718096;font-size:1.25rem}.ouvrage-dossier-alert-danger{border-color:rgba(248,113,113,.30)}.ouvrage-dossier-alert-danger .ouvrage-dossier-alert-dot{background:#f87171}.ouvrage-dossier-alert-warning{border-color:rgba(245,158,11,.28)}.ouvrage-dossier-alert-warning .ouvrage-dossier-alert-dot{background:#f59e0b}.ouvrage-dossier-alert-info .ouvrage-dossier-alert-dot{background:#60a5fa}.ouvrage-dossier-clear{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid rgba(52,211,153,.26);border-radius:15px;background:rgba(52,211,153,.08)}.ouvrage-dossier-clear strong{color:#a7f3d0}.ouvrage-dossier-clear span{color:#9fb7ac}
.ouvrage-dossier-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:start}.ouvrage-dossier-index{position:sticky;top:132px;z-index:12}.ouvrage-dossier-index-card{padding:14px;border:1px solid #2d394f;border-radius:20px;background:linear-gradient(180deg,rgba(24,33,51,.98),rgba(15,23,38,.98));box-shadow:0 16px 38px rgba(0,0,0,.25)}.ouvrage-dossier-index-card>strong{display:block;margin-bottom:10px;color:#f5d79c;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.ouvrage-dossier-index-card nav{display:grid;gap:5px}.ouvrage-dossier-index-card nav a{display:grid;grid-template-columns:29px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:36px;padding:6px 8px;border-radius:11px;color:#cbd5e1!important;text-decoration:none;font-size:.8rem;font-weight:800}.ouvrage-dossier-index-card nav a:hover{background:rgba(214,163,90,.10);color:#fff!important}.ouvrage-dossier-index-card nav a>span{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#0f1726;border:1px solid #344158;color:#f0c879;font-size:.7rem}.ouvrage-dossier-index-card nav a>b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#202a3b;color:#b7c2d3;font-size:.68rem}.ouvrage-dossier-main{min-width:0}.ouvrage-dossier-section{scroll-margin-top:132px;margin-bottom:16px!important;padding:20px!important}.ouvrage-dossier-section-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:17px;padding-bottom:13px;border-bottom:1px solid rgba(148,163,184,.14)}.ouvrage-dossier-section-head>div:nth-child(2){min-width:0;flex:1}.ouvrage-dossier-section-head h2{margin:2px 0 3px!important;font-size:1.35rem!important}.ouvrage-dossier-section-head p{margin:0!important;color:#94a2b6!important}.ouvrage-dossier-section-number{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:13px;background:rgba(214,163,90,.13);border:1px solid rgba(214,163,90,.31);color:#f0c879;font-weight:950}.ouvrage-dossier-section-head>.badge,.ouvrage-dossier-section-head>.btn,.ouvrage-dossier-section-head>div:last-child:not(:nth-child(2)){margin-left:auto;align-self:center}
.ouvrage-dossier-model-note,.ouvrage-dossier-note{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:13px 14px;border:1px solid rgba(214,163,90,.20);border-radius:14px;background:rgba(214,163,90,.07)}.ouvrage-dossier-model-note strong,.ouvrage-dossier-note strong{flex:0 0 190px;color:#f2d299}.ouvrage-dossier-model-note span,.ouvrage-dossier-note span{color:#c4cedc;line-height:1.5}.ouvrage-dossier-description{margin-bottom:15px;padding:14px;border:1px solid rgba(148,163,184,.15);border-radius:15px;background:#111827}.ouvrage-dossier-description h3{margin:0 0 6px!important}.ouvrage-dossier-description p{margin:0!important}.ouvrage-dossier-patrimoine-text{padding:14px;border:1px solid rgba(214,163,90,.18);border-radius:15px;background:rgba(214,163,90,.055)}.ouvrage-dossier-patrimoine-text h3{margin:0 0 5px!important}.ouvrage-dossier-patrimoine-text h3:not(:first-child){margin-top:15px!important}.ouvrage-dossier-patrimoine-text p{margin:0!important}
.ouvrage-latest-control{padding:16px;border:1px solid rgba(96,165,250,.27);border-radius:18px;background:radial-gradient(circle at 100% 0,rgba(96,165,250,.09),transparent 35%),#111827}.ouvrage-latest-control-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ouvrage-latest-control-head h3{margin:3px 0 3px!important;font-size:1.25rem!important}.ouvrage-latest-control-head p{margin:0!important}.ouvrage-control-profile-line{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:13px 0;padding:10px 12px;border-radius:12px;background:#0f1726;border:1px solid #2d394f}.ouvrage-control-profile-line strong{color:#dce6f4}.ouvrage-control-profile-line span{color:#f2c879;font-size:.8rem;font-weight:850}.ouvrage-control-points{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.ouvrage-control-point{min-height:116px;padding:11px;border:1px solid #2d394f;border-radius:14px;background:#0f1726}.ouvrage-control-point>span{display:block;color:#7f8ca0;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.ouvrage-control-point>strong{display:block;margin:5px 0 8px;color:#e8eef7;line-height:1.25}.ouvrage-control-point>small{display:block;margin-top:7px;color:#91a0b4;line-height:1.35}.ouvrage-module-summary{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.ouvrage-module-summary>span{display:flex;align-items:baseline;gap:7px;min-height:44px;padding:9px 12px;border:1px solid #344158;border-radius:13px;background:#111827;color:#9eabc0;font-size:.78rem;font-weight:850}.ouvrage-module-summary strong{color:#f8fafc;font-size:1.25rem}.ouvrage-dossier-empty-action{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:18px;border:1px dashed #45536b;border-radius:16px;background:#111827}.ouvrage-dossier-empty-action strong{color:#f8fafc}.ouvrage-dossier-empty-action span{color:#95a3b7}.ouvrage-dossier-empty-action .btn{margin-top:5px}
@media(max-width:1300px){.ouvrage-dossier-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.ouvrage-control-points{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1050px){.ouvrage-dossier-hero{grid-template-columns:170px minmax(0,1fr)}.ouvrage-dossier-situation{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.ouvrage-dossier-situation strong{font-size:1.05rem}.ouvrage-dossier-layout{grid-template-columns:1fr}.ouvrage-dossier-index{position:sticky;top:70px;z-index:23;overflow:hidden}.ouvrage-dossier-index-card{padding:9px;border-radius:16px;background:rgba(10,16,27,.96);backdrop-filter:blur(12px)}.ouvrage-dossier-index-card>strong{display:none}.ouvrage-dossier-index-card nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:2px;-webkit-overflow-scrolling:touch}.ouvrage-dossier-index-card nav a{flex:0 0 auto;min-width:auto}.ouvrage-dossier-index-card nav a>b{display:none}.ouvrage-dossier-section{scroll-margin-top:128px}.ouvrage-control-points{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.ouvrage-dossier-hero{grid-template-columns:92px minmax(0,1fr);gap:12px;padding:13px;border-radius:20px}.ouvrage-dossier-cover{min-height:92px;border-radius:15px}.ouvrage-dossier-cover-empty{min-height:92px;font-size:1.25rem}.ouvrage-dossier-identity h1{font-size:1.45rem}.ouvrage-dossier-reference{font-size:.8rem}.ouvrage-dossier-location-line{font-size:.78rem}.ouvrage-dossier-situation{grid-template-columns:1fr;gap:4px;padding:12px}.ouvrage-dossier-actions{top:58px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.ouvrage-dossier-actions .btn{flex:0 0 auto}.ouvrage-dossier-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ouvrage-dossier-kpi{min-height:96px;padding:11px}.ouvrage-dossier-kpi strong{font-size:1.12rem}.ouvrage-dossier-alert-list{grid-template-columns:1fr}.ouvrage-dossier-section{padding:14px!important;border-radius:19px}.ouvrage-dossier-section-head{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px}.ouvrage-dossier-section-number{width:32px;height:32px;border-radius:10px}.ouvrage-dossier-section-head>.badge,.ouvrage-dossier-section-head>.btn,.ouvrage-dossier-section-head>div:last-child:not(:nth-child(2)){grid-column:1/-1;margin-left:0;justify-self:start}.ouvrage-dossier-model-note,.ouvrage-dossier-note{display:block}.ouvrage-dossier-model-note strong,.ouvrage-dossier-note strong{display:block;margin-bottom:5px}.ouvrage-latest-control-head{display:block}.ouvrage-latest-control-head>div:last-child{margin-top:9px}.ouvrage-control-profile-line{display:block}.ouvrage-control-profile-line span{display:block;margin-top:5px}.ouvrage-control-points{grid-template-columns:1fr}.ouvrage-module-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ouvrage-module-summary>span{display:block}.ouvrage-module-summary strong{display:block}.ouvrage-dossier-index{top:58px}}
@media(max-width:460px){.ouvrage-dossier-hero{grid-template-columns:1fr}.ouvrage-dossier-cover{max-height:180px;aspect-ratio:16/9}.ouvrage-dossier-kpis{grid-template-columns:1fr}.ouvrage-dossier-section-head h2{font-size:1.12rem!important}.ouvrage-module-summary{grid-template-columns:1fr}}
@media print{.ouvrage-dossier-hero{grid-template-columns:120px minmax(0,1fr);padding:12px;background:#fff!important;color:#111827!important;border-color:#bbb!important;box-shadow:none!important}.ouvrage-dossier-cover{min-height:90px}.ouvrage-dossier-situation{display:none}.ouvrage-dossier-identity h1,.ouvrage-dossier-reference{color:#111827!important}.ouvrage-dossier-location-line{color:#555!important}.ouvrage-dossier-kpis{grid-template-columns:repeat(3,1fr)}.ouvrage-dossier-kpi{min-height:auto;background:#fff!important;color:#111827!important;border-color:#ccc!important;box-shadow:none!important}.ouvrage-dossier-kpi strong{color:#111827!important}.ouvrage-dossier-alert-panel{break-inside:avoid}.ouvrage-dossier-layout{display:block}.ouvrage-dossier-section{padding:12px!important;break-inside:auto}.ouvrage-dossier-section-head{break-after:avoid}.ouvrage-dossier-section-number{background:#fff!important;color:#333!important;border-color:#bbb!important}.ouvrage-latest-control,.ouvrage-control-point,.ouvrage-control-profile-line,.ouvrage-dossier-description,.ouvrage-dossier-note,.ouvrage-dossier-model-note,.ouvrage-dossier-patrimoine-text,.ouvrage-module-summary>span{background:#fff!important;color:#111827!important;border-color:#ccc!important}.ouvrage-control-point>strong,.ouvrage-module-summary strong{color:#111827!important}.ouvrage-dossier-alert-list{grid-template-columns:1fr 1fr}.ouvrage-dossier-alert{background:#fff!important;color:#111827!important;border-color:#ccc!important}.ouvrage-dossier-alert small{color:#555!important}}

/* =========================================================
   PHASE 22 — Inventaire opérationnel et exports multi-critères
   ========================================================= */
.inventaire-switcher{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 18px;padding:10px;border:1px solid rgba(148,163,184,.22);border-radius:18px;background:rgba(15,23,42,.34)}
.inventaire-switcher-link{display:flex;flex-direction:column;justify-content:center;min-height:58px;padding:10px 14px;border-radius:15px;color:inherit!important;text-decoration:none;border:1px solid rgba(148,163,184,.24);background:rgba(255,255,255,.045)}
.inventaire-switcher-link:hover{border-color:rgba(240,200,121,.45);background:rgba(240,200,121,.07)}
.inventaire-switcher-link.is-active{border-color:rgba(240,200,121,.7);background:linear-gradient(135deg,rgba(240,200,121,.15),rgba(255,255,255,.03));box-shadow:inset 0 0 0 1px rgba(240,200,121,.12)}
.inventaire-switcher-link strong{font-size:.96rem;color:#f8fafc}.inventaire-switcher-link small{margin-top:3px;color:#94a3b8;font-size:.76rem;font-weight:750}
.inventory-preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}
.inventory-preset-card{display:flex;gap:11px;align-items:center;min-height:78px;padding:12px 14px;border-radius:18px;border:1px solid rgba(148,163,184,.17);background:linear-gradient(180deg,rgba(17,24,39,.92),rgba(15,23,38,.98));color:#eef2f7!important;text-decoration:none}
.inventory-preset-card:hover,.inventory-preset-card.is-active{border-color:rgba(240,200,121,.48);background:linear-gradient(135deg,rgba(240,200,121,.11),rgba(15,23,38,.98));transform:translateY(-1px)}
.inventory-preset-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:13px;background:rgba(240,200,121,.12);border:1px solid rgba(240,200,121,.23);color:#f8e4bd;font-weight:950;font-size:1rem}
.inventory-preset-card strong{display:block;font-size:.91rem}.inventory-preset-card small{display:block;margin-top:3px;color:#94a3b8;font-size:.74rem;line-height:1.28}
.inventory-operational-stats{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:16px}.inventory-operational-stats .stat-card{min-height:112px}.inventory-operational-stats .stat-card strong{font-size:30px}
.inventory-filter-panel{margin-bottom:15px}.inventory-search-row{display:grid;grid-template-columns:minmax(260px,2fr) minmax(160px,1fr) minmax(190px,1fr) auto;gap:10px;align-items:end}.inventory-search-main{min-width:0}.inventory-filter-submit{min-height:44px}
.inventory-advanced-filters{margin-top:13px;border-top:1px solid rgba(148,163,184,.14);padding-top:12px}.inventory-advanced-filters>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:42px;color:#f8e4bd;font-weight:950}.inventory-advanced-filters>summary::-webkit-details-marker{display:none}.inventory-advanced-filters>summary:after{content:'+';display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:rgba(240,200,121,.1);border:1px solid rgba(240,200,121,.22)}.inventory-advanced-filters[open]>summary:after{content:'−'}
.inventory-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.inventory-filter-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.inventory-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 14px;padding:10px 12px;border-radius:16px;border:1px solid rgba(148,163,184,.17);background:rgba(15,23,42,.48)}.inventory-active-filters>strong{color:#f8e4bd;margin-right:3px}.inventory-active-filters span{display:inline-flex;gap:5px;align-items:center;padding:6px 9px;border-radius:999px;background:rgba(148,163,184,.1);border:1px solid rgba(148,163,184,.16);color:#dbe5f2;font-size:.78rem}.inventory-active-filters span b{color:#f0c879}
.inventory-results-card{overflow:hidden}.inventory-export-actions{display:flex;gap:7px;flex-wrap:wrap}.inventory-table-wrap{margin:0 -1px -1px}.inventory-report-table th{white-space:nowrap}.inventory-report-table td{vertical-align:top}.inventory-report-table td:nth-child(1){min-width:220px}.inventory-report-table td:nth-child(2){min-width:190px}.inventory-report-table td:nth-child(5){min-width:210px}.inventory-name-link{color:#f8fafc!important;text-decoration:none;font-weight:900}.inventory-name-link:hover{color:#f0c879!important}.inventory-status-badges{display:flex;flex-wrap:wrap;gap:5px}.inventory-status-badges .badge{white-space:normal;text-align:left}
.inventory-completeness{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:150px}.inventory-completeness span{display:flex;justify-content:center;align-items:center;min-height:28px;padding:5px 7px;border-radius:9px;border:1px solid rgba(148,163,184,.15);font-size:.72rem;font-weight:900}.inventory-completeness .ok{color:#a7f3d0;background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.25)}.inventory-completeness .missing{color:#fecaca;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.25)}.inventory-completeness .heritage{color:#fde68a;background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.25)}.inventory-completeness .neutral{color:#cbd5e1;background:rgba(148,163,184,.08)}
.inventory-row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:135px}.inventory-row-actions .btn,.inventory-row-actions .location-btn{flex:1 1 110px;justify-content:center}.inventory-empty-state{display:flex;flex-direction:column;gap:5px;padding:28px;text-align:center;color:#cbd5e1}.inventory-empty-state strong{color:#f8fafc;font-size:1rem}.inventory-pagination{display:flex;justify-content:center;align-items:center;gap:12px;padding:15px;border-top:1px solid rgba(148,163,184,.15)}.inventory-pagination span{font-weight:900;color:#dbe5f2}
.inventory-export-scope{margin-bottom:15px}.inventory-export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.inventory-export-card{display:flex;flex-direction:column;min-height:230px}.inventory-export-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.inventory-export-card h2{margin:5px 0 0;font-size:1.08rem}.inventory-export-count{display:block;color:#f0c879;font-weight:950;font-size:2rem;line-height:1}.inventory-export-card p{color:#9ca3af;line-height:1.5;flex:1}.inventory-export-formats{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.inventory-export-note{margin-top:15px}.inventory-export-note-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.inventory-export-note-grid div{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border-radius:14px;background:rgba(15,23,42,.52);border:1px solid rgba(148,163,184,.14)}.inventory-export-note-grid strong{color:#f8e4bd}.inventory-export-note-grid span{color:#94a3b8;font-size:.82rem;line-height:1.35}
@media(max-width:1180px){.inventory-operational-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:880px){.inventory-search-row{grid-template-columns:1fr 1fr}.inventory-search-main{grid-column:1/-1}.inventory-filter-submit{width:100%}.inventory-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-export-grid{grid-template-columns:1fr}.inventory-report-table td:nth-child(n){min-width:0}.inventory-export-note-grid{grid-template-columns:1fr}}
@media(max-width:620px){.inventaire-switcher{grid-template-columns:1fr}.inventory-preset-grid{grid-template-columns:1fr}.inventory-operational-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-search-row,.inventory-filter-grid{grid-template-columns:1fr}.inventory-search-main{grid-column:auto}.inventory-filter-actions,.inventory-export-actions,.inventory-export-formats{display:grid;grid-template-columns:1fr}.inventory-filter-actions .btn,.inventory-export-actions .btn,.inventory-export-formats .btn{width:100%;justify-content:center}.inventory-active-filters{align-items:flex-start}.inventory-active-filters>strong{width:100%}.inventory-completeness{grid-template-columns:1fr 1fr}.inventory-pagination{flex-wrap:wrap}.inventory-pagination .btn{flex:1 1 140px}.inventory-operational-stats .stat-card{min-height:96px}}

/* =========================================================
   PHASE 23 — Centre de pilotage opérationnel
   ========================================================= */
.pilotage-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 16px;padding:24px;border:1px solid rgba(240,200,121,.28);border-radius:24px;background:radial-gradient(circle at 100% 0,rgba(214,163,90,.17),transparent 38%),linear-gradient(135deg,#1a2537,#101827 70%);box-shadow:0 18px 42px rgba(2,8,23,.22)}
.pilotage-hero h1{margin:4px 0 8px;color:#f8fafc;font-size:clamp(1.7rem,3vw,2.55rem);line-height:1.05}.pilotage-hero p{margin:0;max-width:780px;color:#aeb9ca;font-size:1rem;line-height:1.55}.pilotage-hero-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.pilotage-hero-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.pilotage-hero-meta span{padding:6px 9px;border:1px solid rgba(148,163,184,.17);border-radius:999px;background:rgba(15,23,42,.35);color:#d7dfeb;font-size:.75rem;font-weight:850}
.pilotage-filter-card{margin-bottom:16px}.pilotage-filter-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end}.pilotage-filter-form .form-group{margin:0}.pilotage-filter-actions{display:flex;gap:7px;align-items:center}.pilotage-filter-actions .btn{min-height:44px;white-space:nowrap}
.pilotage-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.pilotage-kpi-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;min-height:116px;padding:16px;border:1px solid rgba(148,163,184,.18);border-radius:20px;background:linear-gradient(180deg,rgba(24,33,51,.97),rgba(14,22,36,.99));color:inherit!important;text-decoration:none;overflow:hidden;box-shadow:0 10px 24px rgba(2,8,23,.13)}.pilotage-kpi-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--kpi-accent,#64748b);opacity:.86}.pilotage-kpi-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--kpi-accent,#64748b) 55%,transparent)}.pilotage-kpi-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;border:1px solid color-mix(in srgb,var(--kpi-accent,#64748b) 38%,transparent);background:color-mix(in srgb,var(--kpi-accent,#64748b) 13%,transparent);color:color-mix(in srgb,var(--kpi-accent,#64748b) 72%,#fff);font-weight:950;font-size:1.08rem}.pilotage-kpi-body{display:flex;flex-direction:column;min-width:0}.pilotage-kpi-body strong{color:#f8fafc;font-size:2rem;line-height:1}.pilotage-kpi-body span{margin-top:6px;color:#e6edf7;font-weight:900}.pilotage-kpi-body small{margin-top:3px;color:#8f9db1;font-size:.74rem}.kpi-neutral{--kpi-accent:#94a3b8}.kpi-critical{--kpi-accent:#ef4444}.kpi-warning{--kpi-accent:#f59e0b}.kpi-info{--kpi-accent:#38bdf8}.kpi-gold{--kpi-accent:#d6a35a}
.pilotage-main-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:16px;margin-bottom:16px}.pilotage-secondary-grid,.pilotage-work-grid,.pilotage-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.pilotage-panel{min-width:0}.pilotage-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:15px;padding-bottom:13px;border-bottom:1px solid rgba(148,163,184,.14)}.pilotage-panel-head h2{margin:3px 0 5px!important;color:#f8fafc!important;font-size:1.14rem!important}.pilotage-panel-head p{margin:0;color:#95a2b6;line-height:1.42;font-size:.82rem}.pilotage-panel-kicker{color:#efc984;font-size:.67rem;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.pilotage-alert-list,.pilotage-priority-list,.pilotage-work-list,.pilotage-heritage-list{display:grid;gap:8px}.pilotage-alert-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:11px;align-items:center;min-height:70px;padding:10px 12px;border:1px solid rgba(148,163,184,.14);border-radius:16px;background:rgba(15,23,42,.43);color:inherit!important;text-decoration:none}.pilotage-alert-item:hover{background:rgba(255,255,255,.055);transform:translateX(2px)}.pilotage-alert-level{display:flex;align-items:center;justify-content:center;min-height:30px;padding:5px 7px;border-radius:10px;font-size:.69rem;font-weight:950;text-align:center}.alert-critical .pilotage-alert-level{background:rgba(239,68,68,.16);border:1px solid rgba(239,68,68,.32);color:#fecaca}.alert-warning .pilotage-alert-level{background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.30);color:#fde3a7}.alert-info .pilotage-alert-level{background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.26);color:#bae6fd}.pilotage-alert-content{display:flex;flex-direction:column;min-width:0}.pilotage-alert-content strong{color:#eef2f7;font-size:.86rem;line-height:1.35}.pilotage-alert-content small{margin-top:4px;color:#8f9db1;line-height:1.35}.pilotage-alert-action{color:#e9c887;font-size:.74rem;font-weight:950;white-space:nowrap}
.pilotage-priority-item{display:grid;grid-template-columns:36px minmax(0,1fr) 42px;gap:10px;align-items:center;padding:10px 11px;border-radius:15px;border:1px solid rgba(148,163,184,.14);background:rgba(15,23,42,.38);color:inherit!important;text-decoration:none}.pilotage-priority-item:hover{border-color:rgba(240,200,121,.34);background:rgba(240,200,121,.055)}.pilotage-priority-rank{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:rgba(214,163,90,.13);border:1px solid rgba(214,163,90,.25);color:#f0c879;font-weight:950}.pilotage-priority-body{display:flex;flex-direction:column;min-width:0}.pilotage-priority-body strong{color:#eef2f7;font-size:.85rem;line-height:1.3}.pilotage-priority-body>small{margin-top:3px;color:#8f9db1}.pilotage-tag-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.pilotage-tag-row span{padding:4px 6px;border-radius:999px;background:rgba(148,163,184,.09);border:1px solid rgba(148,163,184,.13);color:#cfd8e5;font-size:.64rem;font-weight:850}.pilotage-score{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px solid rgba(240,200,121,.35);color:#f4d79f;font-weight:950;font-size:.78rem}
.pilotage-activity-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end;height:225px;padding:18px 10px 5px;border-radius:17px;border:1px solid rgba(148,163,184,.13);background:linear-gradient(180deg,rgba(15,23,42,.15),rgba(15,23,42,.45))}.pilotage-month-column{display:grid;grid-template-rows:22px minmax(0,1fr) 25px;gap:5px;align-items:end;height:100%;text-align:center}.pilotage-month-column>strong{color:#e6edf7;font-size:.78rem}.pilotage-month-column>small{color:#8f9db1;font-size:.67rem;font-weight:850}.pilotage-month-bar{display:flex;flex-direction:column-reverse;align-self:end;width:min(38px,72%);height:var(--pilot-height);min-height:4px;margin:0 auto;border-radius:9px 9px 4px 4px;overflow:hidden;background:rgba(148,163,184,.08);box-shadow:0 8px 18px rgba(2,8,23,.18)}.pilotage-month-bar span{min-height:0;flex-grow:var(--segment);flex-basis:0}.bar-control{background:#38bdf8}.bar-regie{background:#d6a35a}.bar-external{background:#a78bfa}.pilotage-chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:11px;color:#9da9ba;font-size:.73rem;font-weight:850}.pilotage-chart-legend span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:3px}.legend-control:before{background:#38bdf8}.legend-regie:before{background:#d6a35a}.legend-external:before{background:#a78bfa}
.pilotage-distribution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pilotage-distribution-grid h3{margin:0 0 10px;color:#dfe7f1;font-size:.86rem}.pilotage-distribution-list{display:grid;gap:9px}.pilotage-distribution-row>span{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px}.pilotage-distribution-row b{color:#dfe7f1;font-size:.77rem}.pilotage-distribution-row small{color:#f0c879;font-weight:950}.pilotage-distribution-row>i{display:block;height:7px;border-radius:999px;background:rgba(148,163,184,.10);overflow:hidden}.pilotage-distribution-row>i>em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#b98745,#f0c879)}
.pilotage-work-item{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:64px;padding:10px 11px;border:1px solid rgba(148,163,184,.13);border-radius:15px;background:rgba(15,23,42,.38);color:inherit!important;text-decoration:none}.pilotage-work-item:hover{border-color:rgba(240,200,121,.3);background:rgba(255,255,255,.045)}.pilotage-work-status{display:flex;align-items:center;justify-content:center;min-height:29px;padding:5px 7px;border-radius:9px;font-size:.66rem;font-weight:950;text-align:center}.status-critical{color:#fecaca;background:rgba(239,68,68,.14);border:1px solid rgba(239,68,68,.28)}.status-warning{color:#fde3a7;background:rgba(245,158,11,.13);border:1px solid rgba(245,158,11,.26)}.status-info{color:#bae6fd;background:rgba(56,189,248,.11);border:1px solid rgba(56,189,248,.23)}.pilotage-work-item>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.pilotage-work-item strong{color:#e8eef7;font-size:.82rem;line-height:1.3}.pilotage-work-item small{margin-top:3px;color:#8f9db1}.pilotage-work-item>b{color:#f0c879;font-size:.7rem;white-space:nowrap}
.pilotage-timeline{display:grid}.pilotage-timeline-item{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;padding:0 0 14px;color:inherit!important;text-decoration:none}.pilotage-timeline-item:not(:last-child):before{content:"";position:absolute;left:9px;top:17px;bottom:0;width:1px;background:rgba(148,163,184,.2)}.pilotage-timeline-dot{position:relative;z-index:1;width:19px;height:19px;margin-top:2px;border:4px solid #172134;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 1px rgba(148,163,184,.3)}.event-controle .pilotage-timeline-dot{background:#38bdf8}.event-regie .pilotage-timeline-dot{background:#d6a35a}.event-externalise .pilotage-timeline-dot,.event-reception .pilotage-timeline-dot{background:#a78bfa}.event-anomalie .pilotage-timeline-dot,.event-reserve .pilotage-timeline-dot{background:#f97316}.pilotage-timeline-body{display:flex;flex-direction:column;min-width:0;padding:0 0 2px}.pilotage-timeline-body small{color:#8290a5;font-size:.67rem}.pilotage-timeline-body strong{margin-top:3px;color:#e8eef7;font-size:.82rem;line-height:1.3}.pilotage-timeline-body span{margin-top:2px;color:#9ba8b8;font-size:.73rem}
.pilotage-heritage-summary{display:flex;align-items:flex-end;gap:9px;margin:0 0 13px;padding:13px 14px;border-radius:16px;background:linear-gradient(135deg,rgba(214,163,90,.14),rgba(15,23,42,.42));border:1px solid rgba(214,163,90,.24)}.pilotage-heritage-summary strong{color:#f3d59c;font-size:2.25rem;line-height:1}.pilotage-heritage-summary span{padding-bottom:3px;color:#dbe4ef;font-weight:900}.pilotage-heritage-list>a{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;padding:10px 11px;border-radius:14px;border:1px solid rgba(148,163,184,.13);background:rgba(15,23,42,.36);color:inherit!important;text-decoration:none}.pilotage-heritage-list>a:hover{border-color:rgba(214,163,90,.3)}.pilotage-heritage-level{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:rgba(214,163,90,.13);border:1px solid rgba(214,163,90,.28);color:#f0c879;font-weight:950}.pilotage-heritage-list>a>span:last-child{display:flex;flex-direction:column;min-width:0}.pilotage-heritage-list strong{color:#e8eef7;font-size:.8rem}.pilotage-heritage-list small{margin-top:3px;color:#8f9db1}
.pilotage-empty-state{display:flex;flex-direction:column;gap:4px;padding:22px;border:1px dashed rgba(148,163,184,.22);border-radius:15px;text-align:center}.pilotage-empty-state strong{color:#e8eef7}.pilotage-empty-state span{color:#8f9db1;font-size:.8rem}
@media(max-width:1240px){.pilotage-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pilotage-main-grid{grid-template-columns:1fr}.pilotage-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.pilotage-filter-actions{grid-column:1/-1}}
@media(max-width:900px){.pilotage-secondary-grid,.pilotage-work-grid,.pilotage-bottom-grid{grid-template-columns:1fr}.pilotage-hero{align-items:flex-start;flex-direction:column}.pilotage-hero-actions{justify-content:flex-start}.pilotage-distribution-grid{grid-template-columns:1fr}.pilotage-activity-chart{height:205px}}
@media(max-width:640px){.pilotage-kpi-grid,.pilotage-filter-form{grid-template-columns:1fr}.pilotage-filter-actions{display:grid;grid-template-columns:1fr 1fr;grid-column:auto}.pilotage-filter-actions .btn{justify-content:center}.pilotage-kpi-card{min-height:98px}.pilotage-alert-item{grid-template-columns:1fr;gap:6px}.pilotage-alert-level{justify-self:start}.pilotage-alert-action{justify-self:end}.pilotage-priority-item{grid-template-columns:34px minmax(0,1fr)}.pilotage-score{display:none}.pilotage-activity-chart{gap:4px;padding-inline:3px}.pilotage-month-bar{width:25px}.pilotage-work-item{grid-template-columns:1fr}.pilotage-work-status{justify-self:start}.pilotage-work-item>b{justify-self:end}.pilotage-hero-actions{display:grid;grid-template-columns:1fr;width:100%}.pilotage-hero-actions .btn{justify-content:center}}
@media print{.pilotage-hero{background:#fff!important;color:#111827!important;border-color:#bbb!important;box-shadow:none!important}.pilotage-hero h1,.pilotage-kpi-body strong,.pilotage-panel-head h2,.pilotage-alert-content strong,.pilotage-priority-body strong,.pilotage-work-item strong,.pilotage-timeline-body strong,.pilotage-heritage-list strong{color:#111827!important}.pilotage-hero p,.pilotage-hero-meta span,.pilotage-kpi-body span,.pilotage-kpi-body small,.pilotage-panel-head p,.pilotage-alert-content small,.pilotage-priority-body>small,.pilotage-work-item small,.pilotage-timeline-body span,.pilotage-timeline-body small{color:#555!important}.pilotage-kpi-grid{grid-template-columns:repeat(4,1fr)}.pilotage-kpi-card,.pilotage-panel,.pilotage-alert-item,.pilotage-priority-item,.pilotage-work-item,.pilotage-heritage-list>a{background:#fff!important;border-color:#ccc!important;box-shadow:none!important;break-inside:avoid}.pilotage-main-grid,.pilotage-secondary-grid,.pilotage-work-grid,.pilotage-bottom-grid{display:block}.pilotage-panel{margin-bottom:12px}.pilotage-activity-chart{height:170px}}

/* =====================================================================
   AGORA — Phase 24 — Administration des modèles métier
   ===================================================================== */
.admin-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px;padding:26px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,rgba(214,163,90,.13),rgba(18,24,38,.96));box-shadow:var(--shadow-soft)}
.admin-hero h1{margin:4px 0 8px;font-size:34px;letter-spacing:-.035em}.admin-hero p{margin:0;color:var(--muted);max-width:780px}.admin-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.admin-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.admin-dashboard-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--soft);color:var(--ink);box-shadow:var(--shadow-soft);transition:.18s ease}.admin-dashboard-card:hover{transform:translateY(-2px);border-color:rgba(214,163,90,.62);background:var(--soft-2)}.admin-dashboard-icon{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-2);font-size:25px;font-weight:900}.admin-dashboard-card strong{display:block;font-size:17px;margin-bottom:5px}.admin-dashboard-card p{margin:0;color:var(--muted);line-height:1.45}.admin-dashboard-card small{display:block;color:var(--accent-2);margin-top:7px}.admin-dashboard-card em{font-style:normal;font-weight:850;color:var(--accent-2)}
.admin-guidance>h2{margin-top:0}.admin-guidance .grid>div{padding:15px;border-radius:15px;background:var(--soft);border:1px solid var(--line)}.admin-guidance p{color:var(--muted);margin:7px 0 0;line-height:1.5}
.admin-tabs{display:flex;gap:10px;margin-bottom:18px;overflow:auto;padding-bottom:3px}.admin-tabs a{display:flex;align-items:center;gap:9px;white-space:nowrap;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--ink);font-weight:850}.admin-tabs a span{width:25px;height:25px;border-radius:9px;display:grid;place-items:center;background:var(--soft-2);color:var(--muted)}.admin-tabs a.active{border-color:rgba(214,163,90,.62);background:var(--accent-soft);color:var(--accent-2)}.admin-tabs a.active span{background:var(--accent);color:#21170d}
.admin-model-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(480px,1.3fr);gap:18px;align-items:start}.admin-model-list,.admin-model-editor,.admin-control-editor{margin:0}.admin-model-list{max-height:calc(100vh - 180px);overflow:auto;position:sticky;top:92px}.admin-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.admin-section-head h2{margin:0 0 5px}.admin-section-head p{margin:0;color:var(--muted)}
.admin-family-group{margin-top:18px}.admin-family-group>h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}.admin-family-list{display:grid;gap:7px}.admin-family-row{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--soft);color:var(--ink)}.admin-family-row:hover,.admin-family-row.selected{border-color:rgba(214,163,90,.65);background:var(--accent-soft)}.admin-family-row strong,.admin-family-row small{display:block}.admin-family-row small{color:var(--muted);margin-top:4px}.admin-family-meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.admin-family-meta small{font-size:11px}
.admin-empty-state{text-align:center;padding:48px 20px}.admin-empty-state>span{width:70px;height:70px;margin:0 auto 15px;border-radius:22px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-2);font-size:30px}.admin-empty-state h2{margin:0 0 8px}.admin-empty-state p{color:var(--muted);max-width:420px;margin:0 auto}
.admin-editor-form{display:grid;gap:15px}.admin-editor-form .form-group{margin:0}.admin-dimension-picker fieldset{border:1px solid var(--line);border-radius:15px;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-dimension-picker legend{padding:0 7px;font-weight:900;color:var(--accent-2)}.admin-dimension-picker label{display:flex;gap:7px;align-items:flex-start;font-size:13px;color:var(--ink)}.admin-dimension-picker input{margin-top:2px}.admin-switches{display:flex;flex-wrap:wrap;gap:12px}.admin-switch{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--soft);font-weight:750}.admin-switch input{width:18px;height:18px}.admin-danger-zone{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}
.admin-field-list{display:grid;gap:9px}.admin-field-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.admin-field-row>div:first-child{min-width:0}.admin-field-row strong,.admin-field-row small{display:block}.admin-field-row small{color:var(--muted);margin-top:4px}.admin-field-row>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.admin-control-selector{margin-bottom:18px}.admin-control-editor{max-width:1120px}.admin-control-items{display:grid;gap:12px}.admin-control-item{border:1px solid var(--line);border-radius:17px;background:var(--soft);padding:15px}.admin-control-item header{display:flex;align-items:center;gap:11px;margin-bottom:12px}.admin-control-item header>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-2);font-weight:950}.admin-control-item header strong,.admin-control-item header small{display:block}.admin-control-item header small{color:var(--muted);margin-top:2px}
.btn-small{padding:7px 10px!important;font-size:12px!important;border-radius:10px!important}
@media(max-width:1050px){.admin-model-layout{grid-template-columns:1fr}.admin-model-list{position:static;max-height:none}.admin-dashboard-grid{grid-template-columns:1fr}.admin-control-editor{max-width:none}}
@media(max-width:700px){.admin-hero{align-items:flex-start;flex-direction:column;padding:19px}.admin-hero h1{font-size:27px}.admin-dashboard-card{grid-template-columns:50px minmax(0,1fr)}.admin-dashboard-card em{grid-column:2}.admin-dashboard-icon{width:50px;height:50px}.admin-section-head{flex-direction:column}.admin-family-row,.admin-field-row{align-items:flex-start;flex-direction:column}.admin-family-meta{align-items:flex-start;text-align:left}.admin-field-row>div:last-child{justify-content:flex-start}.admin-dimension-picker fieldset{grid-template-columns:1fr}.admin-tabs a{padding:10px 12px}}

/* =====================================================================
   AGORA — Phase 25 — Signalements et profil Déclarant
   ===================================================================== */
.signalement-hero,.signalement-detail-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:20px;padding:26px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,rgba(122,167,255,.14),rgba(18,24,38,.98));box-shadow:var(--shadow-soft)}
.signalement-hero h1,.signalement-detail-hero h1{margin:4px 0 8px;font-size:34px;letter-spacing:-.04em}.signalement-hero p{margin:0;color:var(--muted);max-width:800px}.signalement-badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.signalement-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:18px}.signalement-kpi{display:flex;flex-direction:column;gap:4px;padding:17px;border:1px solid var(--line);border-radius:18px;background:var(--soft);color:var(--ink);box-shadow:var(--shadow-soft)}.signalement-kpi strong{font-size:28px;line-height:1;color:var(--accent-2)}.signalement-kpi span{font-weight:850;color:var(--muted)}.signalement-kpi.is-alert strong{color:var(--orange)}.signalement-kpi.is-critical strong{color:var(--red)}.signalement-kpi.is-ok strong{color:var(--green)}
.signalement-filter-card{padding:17px}.signalement-filter-form{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.8fr)) auto;gap:13px;align-items:end}.signalement-filter-form .form-group{margin:0}.signalement-filter-actions{display:flex;gap:8px;align-items:center}.signalement-mine{align-self:center;margin-top:23px}.signalement-table td{vertical-align:middle}.signalement-row-new{background:rgba(240,162,69,.07)}.signalement-empty{display:flex;flex-direction:column;align-items:center;gap:5px;padding:44px 20px;color:var(--muted)}.signalement-empty strong{color:var(--ink);font-size:18px}
.signalement-form{display:grid;gap:18px}.signalement-form>.card{margin:0}.signalement-gps-grid{align-items:end}.signalement-geolocate .btn{width:100%}.signalement-conversion-banner{margin-bottom:18px}.signalement-media-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-bottom:14px}.signalement-media-strip img{width:100%;height:105px;object-fit:cover;border-radius:13px;border:1px solid var(--line)}.signalement-document-list{display:grid;gap:8px;padding:0;list-style:none}.signalement-document-list li a{display:flex;align-items:center;gap:8px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink)}
.signalement-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,.75fr);gap:18px;align-items:start}.signalement-detail-grid main,.signalement-detail-grid aside{min-width:0}.signalement-detail-card,.signalement-side-card{margin-bottom:16px}.signalement-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.signalement-section-head h2{margin:2px 0 0}.signalement-section-head>span{color:var(--muted);font-size:12px;white-space:nowrap}.signalement-description{font-size:16px;line-height:1.65;color:var(--ink-2);padding:16px;border-radius:15px;background:var(--soft);border:1px solid var(--line)}.signalement-meta-grid>div{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.signalement-meta-grid small,.signalement-meta-grid strong{display:block}.signalement-meta-grid small{color:var(--muted);margin-bottom:5px}.signalement-media-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.signalement-media-gallery a{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px}.signalement-media-gallery img{width:100%;height:145px;object-fit:cover;border-radius:15px;border:1px solid var(--line)}
.signalement-side-card h2{font-size:18px}.signalement-side-card dl{display:grid;gap:10px;margin:0}.signalement-side-card dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.signalement-side-card dd{margin:-6px 0 0;font-weight:800;color:var(--ink-2)}.signalement-actions-card form{display:grid;gap:12px}.signalement-reopen-form{margin-top:12px!important}.signalement-conversion-actions{display:grid;gap:8px}.signalement-conversion-actions .btn{width:100%;justify-content:flex-start}.signalement-converted{padding:11px;border-radius:12px;background:rgba(66,193,132,.09);border:1px solid rgba(66,193,132,.25)}
.signalement-history{display:grid;gap:0}.signalement-history article{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;position:relative;padding-bottom:18px}.signalement-history article:not(:last-child):before{content:"";position:absolute;left:6px;top:13px;bottom:0;width:2px;background:var(--line)}.signalement-history-dot{width:14px;height:14px;border-radius:50%;margin-top:4px;background:var(--accent);box-shadow:0 0 0 4px rgba(214,163,90,.13);z-index:1}.signalement-history strong,.signalement-history small{display:block}.signalement-history small{color:var(--muted);margin-top:3px}.signalement-history p{margin:7px 0 0;color:var(--ink-2);line-height:1.45}
.ouvrage-dossier-section-number{min-width:40px}.signalement-mine input{display:none}.signalement-mine span{min-height:46px}
@media(max-width:1180px){.signalement-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.signalement-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.signalement-filter-actions{grid-column:1/-1}.signalement-mine{margin-top:0}}
@media(max-width:900px){.signalement-detail-grid{grid-template-columns:1fr}.signalement-detail-grid aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.signalement-detail-grid aside>.card{margin:0}.signalement-actions-card{grid-column:1/-1}}
@media(max-width:680px){.signalement-hero,.signalement-detail-hero{align-items:flex-start;flex-direction:column;padding:19px}.signalement-hero h1,.signalement-detail-hero h1{font-size:27px}.signalement-kpi-grid,.signalement-filter-form{grid-template-columns:1fr}.signalement-filter-actions{display:grid;grid-template-columns:1fr 1fr;grid-column:auto}.signalement-detail-grid aside{grid-template-columns:1fr}.signalement-actions-card{grid-column:auto}.signalement-section-head{flex-direction:column}.signalement-media-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.signalement-media-gallery img{height:120px}}
@media print{.signalement-hero,.signalement-detail-hero,.signalement-kpi,.signalement-detail-card,.signalement-side-card{background:#fff!important;border-color:#bbb!important;color:#111827!important;box-shadow:none!important}.signalement-hero h1,.signalement-detail-hero h1,.signalement-detail-card h2,.signalement-side-card h2,.signalement-description{color:#111827!important}.signalement-detail-grid{display:block}.signalement-detail-grid aside>.card{margin-bottom:10px}.signalement-description,.signalement-meta-grid>div{background:#fff!important}}

/* ======================================================================
   PHASE 31 — RECETTE FONCTIONNELLE ET NON-RÉGRESSION
   ====================================================================== */
.qa-page-title { align-items: flex-start; }
.qa-gate { margin-bottom: 1rem; }
.qa-summary-grid { margin-bottom: 1rem; }
.qa-stat { display: flex; flex-direction: column; gap: .25rem; min-height: 110px; justify-content: center; }
.qa-stat strong { font-size: 2rem; line-height: 1; }
.qa-stat span { color: var(--muted, #94a3b8); }
.qa-stat.success strong { color: #5ee39a; }
.qa-stat.danger strong { color: #ff8c8c; }
.qa-stat.warning strong { color: #ffd36a; }
.qa-guidance code { color: #ffd36a; }
.qa-section-heading,
.qa-domain-heading,
.qa-result-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.qa-section-heading p,
.qa-domain-heading h2 { margin: 0; }
.qa-auto-table td:nth-child(3) { white-space: nowrap; }
.qa-filters label,
.qa-result-form label { display: flex; flex-direction: column; gap: .4rem; font-weight: 700; }
.qa-filters input,
.qa-filters select,
.qa-result-form input,
.qa-result-form select,
.qa-result-form textarea,
.qa-reset input { width: 100%; }
.qa-domain-list { display: grid; gap: 1.25rem; }
.qa-domain { display: grid; gap: .75rem; }
.qa-domain-heading { padding: .15rem .2rem; }
.qa-domain-heading span { color: var(--muted, #94a3b8); font-weight: 700; }
.qa-test-card { border: 1px solid #2c3a52; border-radius: 18px; background: #111827; overflow: hidden; scroll-margin-top: 90px; }
.qa-test-card.status-passed { border-color: rgba(94, 227, 154, .5); }
.qa-test-card.status-failed { border-color: rgba(255, 108, 108, .75); }
.qa-test-card.status-blocked { border-color: rgba(255, 211, 106, .7); }
.qa-test-card details > summary { list-style: none; display: flex; align-items: center; gap: .75rem; cursor: pointer; padding: 1rem 1.1rem; font-weight: 800; }
.qa-test-card details > summary::-webkit-details-marker { display: none; }
.qa-test-card details > summary::after { content: '＋'; margin-left: auto; color: #d1a94e; font-size: 1.1rem; }
.qa-test-card details[open] > summary::after { content: '−'; }
.qa-test-id { display: inline-flex; min-width: 72px; justify-content: center; border-radius: 999px; padding: .28rem .55rem; background: #243148; color: #f8fafc; font-size: .82rem; letter-spacing: .04em; }
.qa-test-title { flex: 1; }
.qa-status-badge { margin-left: auto; }
.qa-status-passed { background: rgba(34, 197, 94, .17); color: #86efac; }
.qa-status-failed { background: rgba(239, 68, 68, .18); color: #fca5a5; }
.qa-status-blocked { background: rgba(245, 158, 11, .17); color: #fcd34d; }
.qa-status-not_applicable { background: rgba(148, 163, 184, .18); color: #cbd5e1; }
.qa-status-not_run { background: rgba(59, 130, 246, .14); color: #bfdbfe; }
.qa-test-body { border-top: 1px solid #2c3a52; padding: 1rem; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 1rem; }
.qa-test-spec { display: grid; gap: .75rem; }
.qa-test-spec > div { background: #0b1220; border: 1px solid #253248; border-radius: 14px; padding: .85rem; }
.qa-test-spec p { margin: .35rem 0 0; }
.qa-test-spec ol,
.qa-test-spec ul { margin: .45rem 0 0; padding-left: 1.25rem; }
.qa-test-spec li + li { margin-top: .35rem; }
.qa-result-form { display: grid; gap: .85rem; align-content: start; background: #0b1220; border: 1px solid #253248; border-radius: 14px; padding: .9rem; }
.qa-result-footer small { color: var(--muted, #94a3b8); text-align: right; }
.qa-reset .inline-form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: .75rem; align-items: end; }

@media (max-width: 1100px) {
    .qa-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .qa-test-body { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .qa-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .qa-section-heading,
    .qa-domain-heading,
    .qa-result-footer { align-items: flex-start; flex-direction: column; }
    .qa-test-card details > summary { align-items: flex-start; flex-wrap: wrap; }
    .qa-test-id { min-width: auto; }
    .qa-status-badge { margin-left: 0; }
    .qa-test-card details > summary::after { margin-left: auto; }
    .qa-reset .inline-form { grid-template-columns: 1fr; }
}
@media print {
    .qa-filters,
    .qa-reset,
    .qa-result-form button,
    .qa-test-card details > summary::after { display: none !important; }
    .qa-test-card { break-inside: avoid; background: #fff; color: #111; border-color: #bbb; }
    .qa-test-card details { display: block; }
    .qa-test-card details > summary { color: #111; }
    .qa-test-card details > .qa-test-body { display: grid !important; border-color: #ccc; }
    .qa-test-spec > div,
    .qa-result-form { background: #fff; color: #111; border-color: #ccc; }
}


/* Phase 31 — Correctif CTL-04 / CTL-07 : photos d'anomalies et consultation contrôle */
.anomaly-source-photos{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.6rem;align-items:center}
.anomaly-source-photos a{display:block;border:1px solid rgba(205,160,74,.35);border-radius:10px;overflow:hidden;background:#0d1524;line-height:0}
.anomaly-source-photos img{display:block;width:74px;height:58px;object-fit:cover}
.anomaly-source-photos-table{margin-top:0;min-width:78px}
.anomaly-source-photos-table img{width:68px;height:54px}
.anomaly-source-photos-form img{width:72px;height:56px}
.anomaly-source-photos-dossier img{width:76px;height:58px}
.anomaly-source-photos-control img{width:64px;height:50px}
.anomaly-source-photos-view img{width:110px;height:84px}
.control-view-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.control-view-summary .card{margin:0;display:flex;flex-direction:column;gap:.45rem;min-height:128px}
.control-view-summary .card>span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.control-view-summary .card>strong{font-size:1.1rem}
.control-view-card{margin-bottom:1rem}
.control-view-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.control-view-point{border:1px solid var(--line);border-left-width:5px;border-radius:16px;padding:1rem;background:rgba(10,18,31,.38)}
.control-view-point.state-border-bon{border-left-color:#3ba66b}
.control-view-point.state-border-moyen{border-left-color:#d6a245}
.control-view-point.state-border-mauvais{border-left-color:#e27a3f}
.control-view-point.state-border-critique{border-left-color:#d94a4a}
.control-view-point-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.control-view-point-head span{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.control-view-point-head h3{margin:.2rem 0 0}
.control-view-comment{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line)}
.control-view-comment p{margin:.35rem 0 0}
@media (max-width:900px){.control-view-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.control-view-points{grid-template-columns:1fr}}
@media (max-width:560px){.control-view-summary{grid-template-columns:1fr}.anomaly-source-photos-view img{width:90px;height:70px}}

/* Phase 31 — refonte ciblée du parcours Régie */
.regie-simple-form{display:grid;gap:18px}.regie-origin-control{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 16px;border:1px solid rgba(212,166,82,.35);border-radius:14px;background:rgba(212,166,82,.08)}.regie-simple-anomaly-list{display:grid;gap:14px}.regie-simple-anomaly-card{border:1px solid var(--border,#334155);border-radius:16px;overflow:hidden;background:rgba(15,23,42,.32);transition:border-color .2s,box-shadow .2s}.regie-simple-anomaly-card.is-selected{border-color:#d4a652;box-shadow:0 0 0 1px rgba(212,166,82,.22)}.regie-simple-anomaly-toggle{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:rgba(255,255,255,.025);cursor:pointer}.regie-simple-anomaly-toggle input{margin-top:4px;transform:scale(1.2)}.regie-simple-anomaly-toggle span{display:grid;gap:3px}.regie-simple-anomaly-toggle small{color:var(--muted,#94a3b8)}.regie-simple-anomaly-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;padding:16px}.regie-simple-anomaly-title{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.regie-simple-anomaly-main p{margin:10px 0}.regie-simple-anomaly-proof{display:grid;gap:8px;align-content:start}.regie-simple-summary,.regie-simple-final-summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(212,166,82,.32);border-radius:14px;background:rgba(212,166,82,.07)}.regie-resolved-list{display:grid;gap:14px}.regie-resolved-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.55fr) minmax(180px,.55fr);gap:16px;padding:16px;border:1px solid var(--border,#334155);border-radius:14px;background:rgba(15,23,42,.28)}.regie-resolved-card p{margin:8px 0}.regie-resolved-card .upload-choice{margin-top:8px}.regie-simple-form .ouvrage-view-details{margin-top:10px}
@media(max-width:900px){.regie-simple-anomaly-body,.regie-resolved-card{grid-template-columns:1fr}.regie-simple-summary,.regie-simple-final-summary{align-items:flex-start;flex-direction:column}}

/* Phase 31 — Correctif 38J : parcours Travaux externalisés simplifié */
.external-simple-form,
.external-reception-simple-form{display:grid;gap:18px}
.external-anomaly-choice-list,
.external-reception-anomaly-list,
.external-reception-history{display:grid;gap:14px}
.external-anomaly-choice{display:flex;gap:13px;align-items:flex-start;padding:15px 16px;border:1px solid var(--line,#334155);border-radius:16px;background:rgba(15,23,42,.32);cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
.external-anomaly-choice:has(input:checked){border-color:#d4a652;box-shadow:0 0 0 1px rgba(212,166,82,.22);background:rgba(212,166,82,.07)}
.external-anomaly-choice>input{margin-top:5px;transform:scale(1.2)}
.external-anomaly-choice-body{display:grid;gap:5px;min-width:0;flex:1}
.external-anomaly-choice-body small{color:var(--muted,#94a3b8)}
.external-anomaly-choice-body>span:not(.anomaly-source-photos){color:#cbd5e1}
.external-status-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.external-status-choice{display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:4px;align-items:start;padding:16px;border:1px solid var(--line,#334155);border-radius:16px;background:rgba(15,23,42,.32);cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
.external-status-choice input{grid-row:1/3;margin-top:4px;transform:scale(1.15)}
.external-status-choice strong{font-size:1rem}
.external-status-choice span{color:var(--muted,#94a3b8);font-size:.9rem;line-height:1.4}
.external-status-choice:has(input:checked){border-color:#d4a652;box-shadow:0 0 0 1px rgba(212,166,82,.22);background:rgba(212,166,82,.07)}
.external-reception-anomaly{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);gap:18px;padding:16px;border:1px solid var(--line,#334155);border-radius:16px;background:rgba(15,23,42,.32)}
.external-reception-anomaly-info{display:grid;gap:7px;align-content:start}
.external-reception-anomaly-info small{color:var(--muted,#94a3b8)}
.external-reception-anomaly-info p{margin:.35rem 0}
.external-reception-anomaly-decision{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;padding:13px;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:rgba(7,13,24,.36)}
.external-reception-anomaly-decision>span,
.external-reception-anomaly-decision textarea,
.external-reception-anomaly-decision .upload-box,
.external-reception-anomaly-decision .preview-grid{grid-column:1/-1}
.external-reception-anomaly-decision>label:not(.upload-box){display:flex;gap:8px;align-items:center;padding:10px 12px;border:1px solid rgba(148,163,184,.24);border-radius:12px;cursor:pointer}
.external-reception-anomaly-decision>label:has(input:checked){border-color:#d4a652;background:rgba(212,166,82,.09)}
.external-reception-result-preview{padding:15px 17px;border:1px solid rgba(212,166,82,.38);border-radius:15px;background:rgba(212,166,82,.08);line-height:1.55}
.external-reception-result-preview strong{color:#f7cf77}
.external-reception-history-card{border:1px solid var(--line,#334155);border-radius:16px;padding:16px;background:rgba(15,23,42,.28)}
.external-reception-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.external-reception-history-head>div{display:grid;gap:3px}
.external-reception-history-head small{color:var(--muted,#94a3b8)}
.external-reception-history-card ul{margin:.65rem 0;padding-left:1.2rem}
.external-signature-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px}
.external-signature-view figure{margin:0;padding:10px;border:1px solid rgba(148,163,184,.22);border-radius:12px;background:rgba(7,13,24,.35)}
.external-signature-view img{display:block;width:100%;height:120px;object-fit:contain;background:#fff;border-radius:8px}
.external-signature-view figcaption{margin-top:7px;color:var(--muted,#94a3b8);font-size:.85rem}
.external-reception-simple-form>.form-section-block[data-contradictory-signatures] .signature-card{background:#162235;border-color:rgba(148,163,184,.28)}
.external-reception-simple-form>.form-section-block[data-contradictory-signatures] .signature-card h3{color:#f8fafc}
.external-reception-simple-form>.form-section-block[data-contradictory-signatures] .signature-pad{background:#fff;border:2px dashed rgba(221,172,81,.75)}
@media(max-width:900px){
  .external-reception-anomaly{grid-template-columns:1fr}
  .external-status-choice-grid,.external-signature-view{grid-template-columns:1fr}
}
@media(max-width:600px){
  .external-anomaly-choice,.external-reception-anomaly{padding:13px}
  .external-reception-anomaly-decision{grid-template-columns:1fr}
  .external-reception-anomaly-decision>label:not(.upload-box){grid-column:1/-1}
  .external-reception-history-head{flex-direction:column}
}

/* 39C — Actions horizontales sous les lignes des listes opérationnelles.
   Applicable sur ordinateur, tablette et mobile. */
.operational-list-table .operational-data-row > td {
  border-bottom: 0;
}

.operational-list-table .operational-actions-row > td {
  padding: 0 12px 12px;
  border-bottom: 1px solid var(--line);
  background: rgba(15, 23, 38, .34);
}

.operational-list-table .operational-actions-row > td::before {
  display: none;
  content: none;
}

.operational-row-actions {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  align-items: center;
  min-height: 48px;
  margin: 0 -4px;
  padding: 8px 10px;
  border-top: 1px solid rgba(148, 163, 184, .16);
  border-radius: 0 0 14px 14px;
  background: rgba(9, 14, 24, .46);
}

.operational-row-actions > .btn,
.operational-row-actions > .gpcmu-map-button,
.operational-row-actions > .inline-delete-form,
.operational-row-actions > .operational-actions-label {
  margin: 4px;
}

.operational-row-actions > .btn,
.operational-row-actions > .gpcmu-map-button {
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
  min-height: 38px;
  white-space: nowrap;
}

.operational-row-actions > .inline-delete-form {
  display: -webkit-inline-flex;
  display: inline-flex;
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
}

.operational-row-actions > .inline-delete-form .btn {
  margin: 0 !important;
  min-height: 38px;
  white-space: nowrap;
}

.operational-actions-label {
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
  padding: 0 5px 0 1px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.operational-list-table .operational-data-row:hover > td,
.operational-list-table .operational-data-row:hover + .operational-actions-row > td {
  background-color: rgba(255, 255, 255, .035);
}

@media (max-width: 720px) {
  .operational-list-table .operational-data-row {
    margin-bottom: 0;
    border-bottom: 0;
    border-radius: 18px 18px 0 0;
  }

  .operational-list-table .operational-actions-row {
    margin-top: 0;
    margin-bottom: 10px;
    border-top: 0;
    border-radius: 0 0 18px 18px;
  }

  .operational-list-table .operational-actions-row > td {
    padding: 0 8px 8px;
    border-bottom: 0;
  }

  .operational-row-actions {
    padding: 7px 4px 4px;
    border-radius: 0 0 15px 15px;
  }

  .operational-actions-label {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
    width: 100%;
    padding-left: 4px;
  }

  .operational-row-actions > .btn,
  .operational-row-actions > .gpcmu-map-button,
  .operational-row-actions > .inline-delete-form {
    -webkit-flex: 1 1 118px;
    flex: 1 1 118px;
  }

  .operational-row-actions > .inline-delete-form .btn {
    width: 100%;
  }
}

@media print {
  .operational-actions-row {
    display: none !important;
  }
  .operational-list-table .operational-data-row > td {
    border-bottom: 1px solid #ddd;
  }
}

/* AGORA 4.32.9 — Correctif 40C : architecture simplifiée des filtres Inventaire */
.inventory-filter-head{align-items:center;gap:16px}
.inventory-filter-head>div:first-child{min-width:0}
.inventory-active-preset{display:flex;align-items:center;gap:10px;min-width:220px;padding:9px 12px;border:1px solid rgba(240,200,121,.28);border-radius:14px;background:rgba(240,200,121,.08)}
.inventory-active-preset>span{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:#0f1726;border:1px solid rgba(240,200,121,.28);color:#f0c879;font-weight:950}
.inventory-active-preset small,.inventory-active-preset strong{display:block}.inventory-active-preset small{color:#9daabd;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.inventory-active-preset strong{margin-top:2px;color:#f8e4bd;font-size:.82rem}
.inventory-primary-filters{display:grid;grid-template-columns:minmax(260px,2fr) repeat(5,minmax(135px,1fr));gap:10px;align-items:end}
.inventory-primary-filters .form-group{margin:0;min-width:0}
.inventory-advanced-filters{margin-top:15px;padding-top:13px}
.inventory-advanced-filters>summary{gap:14px;justify-content:flex-start;padding:0 2px}
.inventory-advanced-filters>summary>span{color:#f8e4bd;font-weight:950}
.inventory-advanced-filters>summary>small{margin-left:auto;color:#8997aa;font-size:.73rem;font-weight:700;text-align:right}
.inventory-advanced-filters>summary:after{margin-left:0;flex:0 0 28px}
.inventory-advanced-groups{display:grid;gap:12px;margin-top:12px}
.inventory-filter-group{padding:14px;border:1px solid rgba(148,163,184,.15);border-radius:16px;background:rgba(15,23,42,.38)}
.inventory-filter-group-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(148,163,184,.12)}
.inventory-filter-group-title>span{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:rgba(214,163,90,.11);border:1px solid rgba(214,163,90,.24);color:#f0c879;font-weight:950}
.inventory-filter-group-title h3{margin:0!important;color:#eef2f7!important;font-size:.9rem!important}.inventory-filter-group-title p{margin:3px 0 0!important;color:#8f9db1!important;font-size:.74rem!important;line-height:1.35}
.inventory-filter-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}
.inventory-filter-grid-compact .form-group{margin:0;min-width:0}
.inventory-filter-actions-primary{justify-content:flex-end;align-items:center;margin-top:15px;padding-top:14px;border-top:1px solid rgba(148,163,184,.14)}
.inventory-filter-actions-primary .btn{min-width:135px;justify-content:center}

@media(max-width:1320px){
    .inventory-primary-filters{grid-template-columns:minmax(260px,2fr) repeat(3,minmax(150px,1fr))}
    .inventory-primary-filters .inventory-search-main{grid-column:1/-1}
}
@media(max-width:980px){
    .inventory-filter-head{align-items:flex-start;flex-direction:column}
    .inventory-active-preset{min-width:0;width:100%}
    .inventory-primary-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
    .inventory-primary-filters .inventory-search-main{grid-column:1/-1}
    .inventory-filter-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
    .inventory-primary-filters,.inventory-filter-grid-compact{grid-template-columns:1fr}
    .inventory-primary-filters .inventory-search-main{grid-column:auto}
    .inventory-advanced-filters>summary>small{display:none}
    .inventory-filter-group{padding:12px}
    .inventory-filter-actions-primary{display:grid;grid-template-columns:1fr}
    .inventory-filter-actions-primary .btn{width:100%}
}

/* Correctif 40D1 : signalements actifs dans la liste des fiches */
.table td a.ouvrage-signalement-badge{
  color:inherit!important;
  text-decoration:none!important;
  margin-top:4px;
  max-width:100%;
  white-space:normal;
  text-align:left;
}
.table td a.ouvrage-signalement-badge:hover{
  filter:brightness(1.08);
}


/* AGORA 4.32.12 — Correctif 40D2 : confirmation visuelle des fichiers sélectionnés */
.gmu-file-selection-status[hidden]{display:none!important}
.gmu-file-selection-status{
  margin:8px 0 0;
  padding:9px 11px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:11px;
  background:rgba(15,23,38,.72);
  color:#aeb9ca;
  font-size:.78rem;
  font-weight:750;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.gmu-file-selection-status.is-selected{
  border-color:rgba(214,163,90,.48);
  background:rgba(214,163,90,.10);
  color:#f8e4bd;
}
.gmu-file-selection-status.is-selected:before{
  content:'✓';
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  margin-right:7px;
  border-radius:50%;
  background:#174b36;
  color:#7be2a8;
  font-size:.72rem;
  font-weight:950;
  vertical-align:middle;
}
.upload-box.has-file-selection,
.upload-choice.has-file-selection,
.reserve-upload-label.has-file-selection{
  border-color:#d6a35a!important;
  box-shadow:0 0 0 3px rgba(214,163,90,.10)!important;
}
@media(max-width:640px){
  .gmu-file-selection-status{font-size:.76rem;padding:9px 10px}
}

/* AGORA 4.32.13 — Correctif 40D2A : aperçu et retrait des pièces jointes */
.gpcmu-photo-preview-item{
  width:min(170px,100%);
  vertical-align:top;
  border:1px solid rgba(148,163,184,.22);
  border-radius:14px;
  overflow:hidden;
  background:rgba(15,23,38,.76);
}
.gpcmu-photo-preview-item img{
  width:100%;
  height:112px;
  object-fit:cover;
}
.gmu-selected-photo-meta{
  display:block;
  padding:7px 9px 9px;
  color:#c8d2df;
  font-size:.72rem;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.selected-file-compat-warning{
  grid-column:1/-1;
  padding:9px 11px;
  border:1px solid rgba(245,158,11,.38);
  border-radius:11px;
  background:rgba(245,158,11,.10);
  color:#f8d89b;
  font-size:.78rem;
  line-height:1.4;
}
.gmu-file-selection-status{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.gmu-file-selection-status > span{
  min-width:0;
  overflow-wrap:anywhere;
}
.gmu-file-selection-clear{
  flex:0 0 auto;
  border:1px solid rgba(248,113,113,.42);
  border-radius:9px;
  background:rgba(127,29,29,.58);
  color:#fee2e2;
  padding:6px 9px;
  font-size:.72rem;
  font-weight:850;
  cursor:pointer;
}

.ouvrage-existing-photo-grid{
  align-items:start;
}
.ouvrage-existing-photo-item,
.ouvrage-existing-document-item{
  position:relative;
  min-width:0;
  border-radius:12px;
  transition:opacity .18s ease,border-color .18s ease,filter .18s ease;
}
.ouvrage-existing-photo-item > a{
  display:block;
  aspect-ratio:1.35/1;
  border-radius:12px;
  overflow:hidden;
  border:1px solid #344159;
  background:#0f1726;
}
.ouvrage-existing-photo-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ouvrage-existing-document-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
  align-items:center;
  padding:0;
  border:1px solid #344159;
  background:#0f1726;
}
.ouvrage-existing-document-item > a{
  display:flex;
  gap:9px;
  align-items:center;
  min-width:0;
  padding:10px 11px;
  color:#e9eef6!important;
  text-decoration:none;
}
.ouvrage-existing-document-item > a strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.82rem;
}
.ouvrage-existing-media-remove{
  position:absolute;
  top:6px;
  right:6px;
  z-index:4;
  border:1px solid rgba(248,113,113,.48);
  border-radius:9px;
  background:rgba(69,10,10,.90);
  color:#fee2e2;
  padding:5px 8px;
  font-size:.68rem;
  font-weight:900;
  cursor:pointer;
}
.ouvrage-existing-document-item .ouvrage-existing-media-remove{
  position:static;
  margin-right:7px;
}
.ouvrage-existing-media-removal-note{
  display:none;
  position:absolute;
  left:7px;
  right:7px;
  bottom:7px;
  z-index:3;
  padding:5px 7px;
  border-radius:8px;
  background:rgba(127,29,29,.92);
  color:#fff;
  font-size:.66rem;
  font-weight:850;
  text-align:center;
}
.ouvrage-existing-document-item .ouvrage-existing-media-removal-note{
  left:8px;
  right:8px;
  bottom:-26px;
}
.ouvrage-existing-photo-item.is-marked-for-removal > a,
.ouvrage-existing-document-item.is-marked-for-removal > a{
  opacity:.32;
  filter:grayscale(1);
}
.ouvrage-existing-photo-item.is-marked-for-removal,
.ouvrage-existing-document-item.is-marked-for-removal{
  outline:2px solid rgba(248,113,113,.72);
}
.ouvrage-existing-media [data-existing-media-item].is-marked-for-removal .ouvrage-existing-media-removal-note{
  display:block;
}
.ouvrage-existing-media [data-existing-media-item].is-marked-for-removal .ouvrage-existing-media-remove{
  border-color:rgba(134,239,172,.52);
  background:rgba(20,83,45,.92);
  color:#dcfce7;
}
.ouvrage-existing-documents{
  row-gap:34px;
}
#ouvrage-document-preview{
  margin-top:9px;
}

@media(max-width:640px){
  .gpcmu-photo-preview-item{width:calc(50% - 12px)}
  .gmu-file-selection-status{align-items:flex-start;flex-direction:column}
  .ouvrage-existing-media-remove{font-size:.72rem;padding:6px 9px}
}


/* Correctif 40E1 : pièces jointes patrimoniales dédiées */
.heritage-attachments-panel,
.heritage-view-documents {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(212, 175, 55, .28);
    border-radius: 14px;
    background: rgba(17, 24, 39, .48);
}
.heritage-attachments-head {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .85rem;
}
.heritage-attachments-head > div {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: .2rem;
}
.heritage-attachments-head span,
.heritage-document-item small {
    color: var(--muted, #9ca3af);
}
.heritage-document-list {
    display: grid;
    gap: .6rem;
    margin-bottom: .85rem;
}
.heritage-document-item a > span:last-child {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: .15rem;
}
.heritage-document-upload {
    margin-top: .65rem;
}
.heritage-document-preview {
    margin-top: .65rem;
}
.ouvrage-dossier-heritage-documents {
    margin-top: 1rem;
}
@media (max-width: 700px) {
    .heritage-attachments-head {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        flex-direction: column;
    }
}

/* AGORA 4.33.1 — Phase 33C : affichage du suivi des contrôles */
.control-followup-stat-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.75rem;
  margin:0 0 1rem;
}
.control-followup-stat{
  display:-webkit-box;
  display:-webkit-flex;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
  -webkit-flex-direction:column;
  flex-direction:column;
  gap:.25rem;
  min-height:82px;
  padding:.9rem 1rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  text-decoration:none;
  box-shadow:0 12px 30px rgba(0,0,0,.16);
}
.control-followup-stat strong{font-size:1.45rem;line-height:1}
.control-followup-stat span{font-size:.78rem;font-weight:850;line-height:1.25}
.control-followup-stat.badge-green{background:#123326!important;color:#69df9b!important}
.control-followup-stat.badge-yellow{background:#3b3214!important;color:#ffe08a!important}
.control-followup-stat.badge-orange{background:#3a2814!important;color:#ffc36f!important}
.control-followup-stat.badge-red{background:#3a171a!important;color:#ff8a84!important}
.control-followup-filter-card{padding:1rem}
.control-followup-primary-filters{
  display:grid;
  grid-template-columns:minmax(240px,2fr) minmax(190px,1fr) minmax(190px,1fr) auto auto;
  gap:.7rem;
  -webkit-box-align:center;
  -webkit-align-items:center;
  align-items:center;
}
.control-followup-advanced-filters{margin-top:.75rem;border-top:1px solid rgba(255,255,255,.08);padding-top:.7rem}
.control-followup-advanced-filters summary{cursor:pointer;font-weight:850;color:var(--ink-2);list-style-position:inside}
.control-followup-advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.75rem}
.control-followup-advanced-grid label{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;gap:.35rem}
.control-followup-advanced-grid label>span{font-size:.78rem;font-weight:850;color:var(--muted)}
.control-followup-list-heading{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;gap:1rem;margin-bottom:.75rem}
.control-followup-list-heading h2{margin-bottom:.2rem}
.control-followup-current-cell{min-width:205px}
.control-followup-current-cell>small{display:block;margin-top:.4rem;color:var(--muted);line-height:1.35}
.control-followup-current-cell>.badge+.badge{margin-top:.35rem}
.control-followup-historical-note{display:inline-block;margin-top:.35rem;color:var(--muted)}
.control-followup-view-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
.control-followup-view-summary .card{min-height:144px}
.control-followup-view-summary .card>small{line-height:1.35}
.control-followup-current-card{border-color:rgba(214,163,90,.32)!important}
.control-followup-current-card>.ouvrage-dossier-section-head>.badge{align-self:flex-start}
.control-followup-current-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem;margin:1rem 0}
.control-followup-current-grid>div{padding:.8rem;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(15,23,38,.6)}
.control-followup-current-grid span{display:block;color:var(--muted);font-size:.74rem;font-weight:800;margin-bottom:.35rem}
.control-followup-current-grid strong{font-size:1rem;color:var(--ink)}
.control-followup-dates{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:.7rem;margin:.8rem 0}
.control-followup-dates span{padding:.55rem .75rem;border-radius:10px;background:rgba(214,163,90,.1);border:1px solid rgba(214,163,90,.18)}
.control-followup-actions-block{margin-top:1.2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}
.control-followup-actions-block h3{margin-bottom:.7rem}
@media(max-width:1250px){
  .control-followup-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .control-followup-view-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .control-followup-current-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .control-followup-primary-filters{grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) minmax(180px,1fr)}
  .control-followup-primary-filters .btn{width:100%}
}
@media(max-width:760px){
  .control-followup-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .control-followup-primary-filters,.control-followup-advanced-grid{grid-template-columns:1fr}
  .control-followup-view-summary,.control-followup-current-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .control-followup-list-heading{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}
}
@media(max-width:480px){
  .control-followup-stat-grid,.control-followup-view-summary,.control-followup-current-grid{grid-template-columns:1fr}
  .control-followup-stat{min-height:70px}
}
@media print{
  .control-followup-current-card{border:1px solid #b8b8b8!important}
  .control-followup-current-grid{grid-template-columns:repeat(3,1fr)}
  .control-followup-current-grid>div{background:#fff;border-color:#ccc}
}

/* AGORA 4.33.2 — Correctif 42A : sélections métier contrôlées */
.ouvrage-subfamily-combobox{
  position:relative;
  min-width:0;
}
.ouvrage-subfamily-options[hidden]{display:none!important}
.ouvrage-subfamily-options{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 6px);
  z-index:180;
  max-height:260px;
  overflow-y:auto;
  padding:6px;
  border:1px solid #344159;
  border-radius:14px;
  background:#101923;
  box-shadow:0 18px 42px rgba(0,0,0,.38);
  -webkit-overflow-scrolling:touch;
}
.ouvrage-subfamily-option{
  display:block;
  width:100%;
  min-height:42px;
  padding:10px 11px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#eaf1fa;
  font:inherit;
  font-size:.86rem;
  font-weight:800;
  line-height:1.3;
  text-align:left;
  cursor:pointer;
}
.ouvrage-subfamily-option:hover,
.ouvrage-subfamily-option:focus,
.ouvrage-subfamily-option.is-active{
  outline:0;
  background:#1c2940;
  color:#f6d18c;
}
.ouvrage-subfamily-combobox>.form-control[aria-expanded="true"]{
  border-color:#d6a35a!important;
  box-shadow:0 0 0 3px rgba(214,163,90,.12)!important;
}
@media(max-width:640px){
  .ouvrage-subfamily-options{max-height:220px}
  .ouvrage-subfamily-option{min-height:46px;font-size:.9rem}
}

/* AGORA 4.33.4 — Phase 33D : suivi opérationnel transversal */
.ouvrage-operational-current-card{margin:0 0 18px;border-color:rgba(214,163,90,.24);background:linear-gradient(180deg,rgba(23,32,49,.98),rgba(13,21,34,.99))}.ouvrage-operational-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ouvrage-operational-grid>div{display:flex;flex-direction:column;min-height:112px;padding:15px;border:1px solid rgba(148,163,184,.15);border-radius:17px;background:rgba(15,23,42,.43)}.ouvrage-operational-grid span{color:#91a1b6;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.ouvrage-operational-grid strong{margin-top:8px;color:#f8fafc;font-size:1.12rem;line-height:1.25}.ouvrage-operational-grid small{margin-top:7px;color:#b9c5d4;line-height:1.45}.ouvrage-operational-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:13px}.ouvrage-control-latest-badges{display:flex;justify-content:flex-end;align-items:center;gap:7px;flex-wrap:wrap}.control-origin-badge{display:inline-flex;align-items:center;gap:5px;color:#9eacbe;font-size:.72rem;font-weight:800}
.inventory-operational-current{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin-bottom:8px}.inventory-operational-current small{max-width:280px;color:#a9b7c9;line-height:1.35}.inventory-status-badges{display:flex;flex-wrap:wrap;gap:5px}
.pilotage-followup-section{margin:0 0 16px}.pilotage-followup-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.pilotage-followup-card{position:relative;display:flex;flex-direction:column;min-height:112px;padding:14px;border:1px solid rgba(148,163,184,.16);border-radius:17px;background:rgba(15,23,42,.43);color:inherit!important;text-decoration:none;overflow:hidden}.pilotage-followup-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--followup-accent,#94a3b8)}.pilotage-followup-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--followup-accent,#94a3b8) 55%,transparent)}.pilotage-followup-card span{color:#dfe7f1;font-size:.78rem;font-weight:900}.pilotage-followup-card strong{margin-top:8px;color:#f8fafc;font-size:1.9rem;line-height:1}.pilotage-followup-card small{margin-top:8px;color:#8f9db1;font-size:.7rem;line-height:1.35}.pilotage-followup-card.is-red{--followup-accent:#ef4444}.pilotage-followup-card.is-orange{--followup-accent:#f59e0b}.pilotage-followup-card.is-yellow{--followup-accent:#eab308}.pilotage-followup-card.is-green{--followup-accent:#22c55e}.pilotage-operational-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:11px}.pilotage-operational-overview>a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px 12px;border:1px solid rgba(148,163,184,.14);border-radius:14px;background:rgba(15,23,42,.32);color:inherit!important;text-decoration:none}.pilotage-operational-overview strong{justify-self:end;color:#f8fafc;font-size:1.08rem}.pilotage-operational-overview small{color:#8f9db1}.pilotage-distribution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pilotage-distribution-row.operational-red>i>em{background:#ef4444}.pilotage-distribution-row.operational-orange>i>em{background:#f59e0b}.pilotage-distribution-row.operational-yellow>i>em{background:#eab308}.pilotage-distribution-row.operational-green>i>em{background:#22c55e}
@media(max-width:1180px){.ouvrage-operational-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pilotage-followup-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.pilotage-distribution-grid{grid-template-columns:1fr}}
@media(max-width:760px){.ouvrage-operational-grid,.pilotage-followup-overview,.pilotage-operational-overview{grid-template-columns:1fr}.ouvrage-operational-grid>div{min-height:0}.ouvrage-operational-actions{display:grid;grid-template-columns:1fr}.ouvrage-operational-actions .btn{justify-content:center}.ouvrage-control-latest-badges{justify-content:flex-start}.pilotage-operational-overview>a{grid-template-columns:auto 1fr auto}}
@media print{.ouvrage-operational-current-card,.pilotage-followup-section,.pilotage-followup-card,.pilotage-operational-overview>a{background:#fff!important;border-color:#bbb!important;box-shadow:none!important}.ouvrage-operational-grid strong,.pilotage-followup-card strong,.pilotage-operational-overview strong{color:#111827!important}.ouvrage-operational-grid span,.ouvrage-operational-grid small,.pilotage-followup-card span,.pilotage-followup-card small,.pilotage-operational-overview small{color:#555!important}.pilotage-followup-overview{grid-template-columns:repeat(5,1fr)}}

/* AGORA 4.33.9 — Correctif 43D : situation actuelle prioritaire */
.ouvrage-list-current-situation,
.inventory-current-situation-cell{position:relative}
.ouvrage-list-current-status,
.inventory-operational-current{padding:10px 11px;border:1px solid rgba(148,163,184,.14);border-left:4px solid #64748b;border-radius:13px;background:rgba(15,23,42,.42)}
.ouvrage-list-current-status.is-red,
.inventory-current-situation-cell.is-red .inventory-operational-current{border-left-color:#ef4444;background:rgba(127,29,29,.16)}
.ouvrage-list-current-status.is-orange,
.inventory-current-situation-cell.is-orange .inventory-operational-current{border-left-color:#f59e0b;background:rgba(120,53,15,.14)}
.ouvrage-list-current-status.is-yellow,
.inventory-current-situation-cell.is-yellow .inventory-operational-current{border-left-color:#eab308;background:rgba(113,63,18,.12)}
.ouvrage-list-current-status.is-green,
.inventory-current-situation-cell.is-green .inventory-operational-current{border-left-color:#22c55e;background:rgba(20,83,45,.12)}
.ouvrage-list-current-status>small{display:block;margin-top:6px;color:#c0cad7;line-height:1.4}
.ouvrage-list-current-counts{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 6px}
.ouvrage-list-current-situation>.ouvrage-list-current-counts+small{color:#8f9db1}
.inventory-current-situation-cell.is-red .inventory-operational-current .badge,
.ouvrage-list-current-status.is-red .badge{box-shadow:0 0 0 3px rgba(239,68,68,.10)}
@media(max-width:760px){.ouvrage-list-current-status,.inventory-operational-current{padding:9px 10px}}
@media print{.ouvrage-list-current-status,.inventory-operational-current{background:#fff!important;border-color:#aaa!important;border-left-width:4px!important}}



/* AGORA 4.33.6 — Correctif 43C : barème automatique des contrôles à cinq niveaux. */


/* AGORA 4.33.7 — Correctif 43C1 : légende d’aide à l’évaluation des points contrôlés. */
.control-evaluation-guide{
  margin:14px 0 18px;
  padding:14px;
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(15,23,38,.84),rgba(17,24,39,.96));
}
.control-evaluation-guide-title{
  display:block;
  margin-bottom:10px;
  color:#eef2f7;
  font-size:.92rem;
  line-height:1.35;
}
.control-evaluation-guide-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.control-evaluation-guide-item{
  display:grid;
  grid-template-columns:14px minmax(0,1fr);
  align-items:start;
  gap:9px;
  min-width:0;
  padding:10px 11px;
  border:1px solid #2d394f;
  border-radius:13px;
  background:#111827;
}
.control-evaluation-dot{
  width:12px;
  height:12px;
  margin-top:3px;
  border-radius:999px;
  box-shadow:0 0 0 3px rgba(255,255,255,.04);
}
.control-evaluation-guide-item div{min-width:0;}
.control-evaluation-guide-item strong{
  display:block;
  margin-bottom:2px;
  color:#f8fafc;
  font-size:.84rem;
  line-height:1.25;
}
.control-evaluation-guide-item span:not(.control-evaluation-dot){
  display:block;
  color:#aeb9c9;
  font-size:.78rem;
  line-height:1.4;
}
.control-evaluation-guide-item.state-critique{border-color:rgba(239,68,68,.38);}
.control-evaluation-guide-item.state-critique .control-evaluation-dot{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.14);}
.control-evaluation-guide-item.state-mauvais{border-color:rgba(249,115,22,.38);}
.control-evaluation-guide-item.state-mauvais .control-evaluation-dot{background:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.14);}
.control-evaluation-guide-item.state-moyen{border-color:rgba(229,197,66,.38);}
.control-evaluation-guide-item.state-moyen .control-evaluation-dot{background:#e5c542;box-shadow:0 0 0 3px rgba(229,197,66,.14);}
.control-evaluation-guide-item.state-bon{border-color:rgba(34,197,94,.38);}
.control-evaluation-guide-item.state-bon .control-evaluation-dot{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.14);}
@media(max-width:720px){
  .control-evaluation-guide{padding:12px;}
  .control-evaluation-guide-grid{grid-template-columns:1fr;}
}


/* AGORA 4.33.9 — Correctif 43D : situation actuelle comme source d’état unique. */

/* AGORA 4.35.2 — Phase 35D : qualité des localisations et doublons */
.geo-chip.is-success,
.geo-chip.is-precise,
.geo-chip.is-acceptable{
  color:#86efac!important;
  background:rgba(34,197,94,.12);
  border-color:rgba(34,197,94,.30);
}
.geo-chip.is-warning,
.geo-chip.is-unknown,
.geo-chip.is-approximate{
  color:#fde68a!important;
  background:rgba(245,158,11,.12);
  border-color:rgba(245,158,11,.30);
}
.geo-chip.is-danger,
.geo-chip.is-insufficient{
  color:#fca5a5!important;
  background:rgba(239,68,68,.12);
  border-color:rgba(239,68,68,.30);
}
.geo-quality-help{
  margin:0 0 10px;
  padding:9px 11px;
  border-radius:12px;
  color:#cbd5e1;
  background:rgba(15,23,42,.55);
  border:1px solid rgba(148,163,184,.14);
  font-size:.86rem;
}
.geo-duplicate-zone{display:none;margin:12px 0 8px}
.geo-duplicate-zone.has-results{display:block}
.geo-duplicate-alert,
.geo-duplicate-info{
  padding:13px;
  border-radius:16px;
  border:1px solid rgba(245,158,11,.34);
  background:rgba(120,53,15,.18);
}
.geo-duplicate-alert.is-strong{
  border-color:rgba(239,68,68,.44);
  background:rgba(127,29,29,.20);
}
.geo-duplicate-alert.is-server-warning{
  border-color:rgba(245,158,11,.44);
}
.geo-duplicate-alert>strong,
.geo-duplicate-info>strong{display:block;color:#f8fafc;margin-bottom:4px}
.geo-duplicate-alert>p,
.geo-duplicate-info>span{display:block;color:#cbd5e1;margin:0 0 10px;font-size:.88rem}
.geo-duplicate-list{display:grid;gap:7px;margin:9px 0}
.geo-duplicate-list a{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:10px 11px;
  border-radius:12px;
  text-decoration:none;
  color:#f8fafc;
  background:rgba(15,23,42,.72);
  border:1px solid rgba(148,163,184,.18);
}
.geo-duplicate-list a:hover{border-color:rgba(240,200,121,.48)}
.geo-duplicate-list small{color:#94a3b8}
.geo-duplicate-confirmation{
  display:flex;
  gap:9px;
  align-items:flex-start;
  padding:10px 11px;
  margin-top:10px;
  border-radius:12px;
  background:rgba(2,6,23,.50);
  color:#f8fafc;
  font-weight:750;
}
.geo-duplicate-confirmation input{margin-top:3px;transform:scale(1.15)}
.location-quality-stats{margin-bottom:16px}
.location-quality-stats .card{
  display:flex;
  flex-direction:column;
  gap:5px;
  text-decoration:none;
  color:inherit;
  min-height:92px;
}
.location-quality-stats .card strong{font-size:1.75rem;color:#f8fafc}
.location-quality-stats .card span{color:#94a3b8;font-weight:800}
.location-quality-stats .card.is-active{
  border-color:rgba(240,200,121,.55);
  box-shadow:0 0 0 2px rgba(240,200,121,.12);
}
.location-quality-badge{
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:900;
}
.location-quality-badge.is-success{color:#86efac;background:rgba(34,197,94,.13)}
.location-quality-badge.is-warning{color:#fde68a;background:rgba(245,158,11,.13)}
.location-quality-badge.is-danger{color:#fca5a5;background:rgba(239,68,68,.13)}
.location-quality-actions{display:flex;flex-wrap:wrap;gap:7px}
.duplicate-pair-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px;
}
.duplicate-pair-card{
  padding:14px;
  border-radius:16px;
  background:rgba(15,23,42,.68);
  border:1px solid rgba(245,158,11,.28);
}
.duplicate-pair-card.is-strong{border-color:rgba(239,68,68,.42)}
.duplicate-pair-card>strong{display:block;color:#f8fafc;margin-bottom:10px}
.duplicate-pair-card>div{padding:8px 0;border-top:1px solid rgba(148,163,184,.12)}
.duplicate-pair-card a{display:block;color:#f8fafc;font-weight:850;text-decoration:none}
.duplicate-pair-card small{display:block;color:#94a3b8;margin-top:3px}
.duplicate-pair-card p{margin:10px 0 0;color:#cbd5e1;font-size:.86rem}
@media(max-width:900px){
  .location-quality-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .geo-chip{max-width:100%;white-space:normal;text-align:center}
  .geo-duplicate-list a{padding:9px}
  .location-quality-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .location-quality-stats .card{min-height:78px;padding:12px}
  .location-quality-stats .card:first-child{grid-column:1/-1}
  .location-quality-actions .btn{width:100%;justify-content:center}
  .duplicate-pair-grid{grid-template-columns:1fr}
}


/* Phase 38C — parcours Régie depuis un signalement */
.signalement-regie-source{border-left:4px solid var(--primary);display:grid;gap:.8rem}
.signalement-regie-source.is-compact{margin-bottom:1rem}
.signalement-regie-source .signalement-section-head{margin-bottom:0}
.signalement-existing-actions{display:grid;gap:.5rem;margin:.75rem 0;padding:0;list-style:none}
.signalement-existing-actions li{padding:.65rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--card-soft,#f7f8fa)}
.checkbox-card{display:flex;align-items:flex-start;gap:.75rem;padding:.9rem;border:1px solid var(--border);border-radius:12px;background:var(--card-soft,#f7f8fa);cursor:pointer}
.checkbox-card input{width:1.2rem;height:1.2rem;margin-top:.15rem;flex:0 0 auto}
.checkbox-card span{display:block;line-height:1.4}
.signalement-multiple-action-warning{border-width:2px}
.signalement-anomaly-choice span{height:100%;align-items:flex-start;text-align:left}
.signalement-anomaly-decision [hidden]{display:none!important}
@media (max-width:760px){.signalement-regie-source .signalement-section-head{align-items:flex-start}.checkbox-card{padding:.75rem}}

/* Phase 38E — lecture synthétique des actions liées aux signalements */
.signalement-action-list{display:grid;gap:10px}
.signalement-action-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--soft)}
.signalement-action-item>div{min-width:0}.signalement-action-item strong{display:inline-block;margin-right:8px;color:var(--ink-2)}
.signalement-action-item p{margin:6px 0;color:var(--ink-2)}.signalement-action-item small{display:block;color:var(--muted)}
@media(max-width:680px){.signalement-action-item{flex-direction:column}.signalement-action-item .btn{width:100%}}
@media print{.signalement-action-item{background:#fff!important;border-color:#bbb!important;break-inside:avoid}}


/* AGORA 4.38.13 — Correctif 68I1 : ajout cumulatif des photos de signalement */
.signalement-photo-preview{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;
  margin-top:14px;
}
.signalement-photo-preview .gpcmu-photo-preview-item{
  display:block;
  width:100%;
  max-width:none;
  margin:0;
  min-width:0;
  background:rgba(15,23,38,.92);
}
.signalement-photo-preview .gpcmu-photo-preview-item img{
  width:100%;
  height:150px;
  object-fit:contain;
  background:#0b1220;
}
.signalement-photo-preview .selected-file-empty{
  grid-column:1/-1;
}
@media(max-width:640px){
  .signalement-photo-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .signalement-photo-preview .gpcmu-photo-preview-item{width:100%;margin:0}
  .signalement-photo-preview .gpcmu-photo-preview-item img{height:132px}
}
@media(max-width:380px){
  .signalement-photo-preview{grid-template-columns:1fr}
  .signalement-photo-preview .gpcmu-photo-preview-item img{height:180px}
}

/* AGORA 4.38.15 — Correctif 68I2 : bloc de décision signalement clair et accessible */
.signalement-anomaly-decision{
  scroll-margin-top:96px;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.signalement-decision-question{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin:4px 0 14px;
}
.signalement-decision-question h3{
  margin:0;
  color:var(--ink,#f8fafc);
  font-size:1rem;
  line-height:1.45;
}
.signalement-required-badge{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(245,158,11,.5);
  background:rgba(245,158,11,.12);
  color:#fbbf24;
  font-size:.76rem;
  font-weight:900;
  white-space:nowrap;
}
.signalement-decision-error{
  margin:0 0 14px;
}
.signalement-anomaly-decision.is-invalid{
  border-color:#ef4444!important;
  box-shadow:0 0 0 3px rgba(239,68,68,.16);
  background:linear-gradient(180deg,rgba(127,29,29,.10),transparent 42%);
}
.signalement-anomaly-decision.is-invalid .signalement-decision-question h3{
  color:#fecaca;
}
.signalement-anomaly-choice:focus-within{
  outline:3px solid rgba(59,130,246,.34);
  outline-offset:2px;
}
@media(max-width:640px){
  .signalement-decision-question{flex-direction:column;gap:8px}
  .signalement-required-badge{white-space:normal}
  .signalement-anomaly-decision.is-invalid{scroll-margin-top:78px}
}


/* Correctif 68I4 : contexte du signalement harmonisé dans Régie et Externalisé */
.signalement-source-context-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.signalement-source-context-item{display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-left:4px solid var(--line-strong,var(--line));border-radius:12px;background:var(--soft)}
.signalement-source-context-item small{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.signalement-source-context-item strong{color:var(--ink);line-height:1.25;overflow-wrap:anywhere}
.signalement-source-context-item.is-critical{border-left-color:#dc2626;background:rgba(220,38,38,.08)}
.signalement-source-context-item.is-high{border-left-color:#f97316;background:rgba(249,115,22,.08)}
.signalement-source-context-item.is-normal{border-left-color:#d4a017}
.signalement-source-context-item.is-low{border-left-color:#16a34a;background:rgba(22,163,74,.06)}
.signalement-source-description{margin:0}
.signalement-source-location{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;padding:11px 13px;border:1px dashed var(--line);border-radius:12px;background:var(--surface)}
.signalement-source-location strong{white-space:nowrap}.signalement-source-location span{color:var(--ink-2);overflow-wrap:anywhere}
.signalement-source-media-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-top:1px solid var(--line);padding-top:12px}
.signalement-source-media-head span{color:var(--muted);font-size:12px;text-align:right}
@media(max-width:680px){.signalement-source-context-grid{grid-template-columns:1fr 1fr}.signalement-source-context-item{padding:10px}.signalement-source-media-head{align-items:flex-start;flex-direction:column;gap:3px}.signalement-source-media-head span{text-align:left}.signalement-source-location{align-items:flex-start;flex-direction:column}}
@media(max-width:390px){.signalement-source-context-grid{grid-template-columns:1fr}}

/* AGORA 4.38.19 — Correctif 68I5 : réouverture explicite des signalements */
.signalement-reopen-card{border-left:4px solid #f59e0b;scroll-margin-top:96px}
.signalement-reopen-card .patrimoine-kicker{color:#fbbf24}
.signalement-reopen-card h2{margin-top:4px}
.signalement-reopen-form{display:grid;gap:12px;margin-top:12px!important}
.signalement-reopen-form textarea{min-height:92px;resize:vertical}
.signalement-reopen-form .btn{width:100%;justify-content:center}
@media(max-width:680px){.signalement-reopen-card{scroll-margin-top:78px}.signalement-reopen-form textarea{min-height:110px}}



/* AGORA 4.38.20 — Correctif 68I5A : contraste du bloc Action complémentaire */
.signalement-multiple-action-warning{
  border-color:rgba(214,163,90,.46);
  background:linear-gradient(180deg,rgba(214,163,90,.05),rgba(15,23,42,.18));
}
.signalement-multiple-action-warning .signalement-existing-actions li{
  background:rgba(10,15,25,.74)!important;
  border-color:rgba(214,163,90,.28)!important;
}
.signalement-multiple-action-warning .signalement-existing-actions a{
  color:#f4c978!important;
  font-weight:850;
  text-decoration:none;
}
.signalement-multiple-action-warning .signalement-existing-actions a:hover,
.signalement-multiple-action-warning .signalement-existing-actions a:focus-visible{
  color:#ffe2a6!important;
  text-decoration:underline;
}
.signalement-multiple-action-warning .checkbox-card{
  background:rgba(10,15,25,.82)!important;
  border-color:rgba(214,163,90,.42)!important;
  color:#eef2f7!important;
}
.signalement-multiple-action-warning .checkbox-card strong{
  color:#ffffff!important;
}
.signalement-multiple-action-warning .checkbox-card small{
  display:block;
  margin-top:4px;
  color:#b9c3d0!important;
}
.signalement-multiple-action-warning .checkbox-card input{
  accent-color:#d6a35a;
}
.signalement-multiple-action-warning .checkbox-card:focus-within{
  outline:3px solid rgba(244,201,120,.38);
  outline-offset:2px;
}
@media(max-width:680px){
  .signalement-multiple-action-warning .checkbox-card{padding:13px}
  .signalement-multiple-action-warning .checkbox-card span{min-width:0}
}

/* Phase 39A2 : titres personnalisables des critères de contrôle */
.admin-control-item header > div{min-width:0;flex:1}
.admin-control-item header strong{overflow-wrap:anywhere;word-break:normal}

/* AGORA 4.39.2 — Phase 39A3 : critères actifs et option Non applicable */
.control-item-card[hidden]{display:none!important}
.state-choice-row{grid-template-columns:repeat(auto-fit,minmax(94px,1fr))}
.state-choice[hidden]{display:none!important}
.state-choice:disabled{cursor:not-allowed;opacity:.48;transform:none}
.state-choice.state-non_applicable.is-active{
  border-color:#94a3b8;
  background:rgba(100,116,139,.28);
  color:#e2e8f0;
}
.global-condition-display.state-non_evalue{
  background:linear-gradient(180deg,rgba(100,116,139,.20),rgba(15,23,38,.92));
  border-color:#64748b;
  color:#dbe4f0;
}
.control-view-point.state-border-non_applicable{border-left-color:#94a3b8}
.admin-control-item-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0 0 14px;
  padding:11px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface);
}
.admin-control-item-options .admin-switch{margin:0;min-width:0}
.admin-control-item-status{font-style:normal;white-space:nowrap}
.admin-control-item{
  transition:opacity .18s ease,border-color .18s ease,background-color .18s ease;
}
.admin-control-item.is-inactive{
  opacity:.72;
  border-style:dashed;
  border-color:#64748b;
  background:rgba(100,116,139,.08);
}
.admin-control-item.is-inactive header>span{background:rgba(100,116,139,.18);color:#cbd5e1}
@media(max-width:720px){
  .admin-control-item-options{grid-template-columns:1fr}
  .admin-control-item header{align-items:flex-start;flex-wrap:wrap}
  .admin-control-item-status{margin-left:45px}
}
@media(max-width:430px){
  .state-choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .state-choice.state-non_applicable{grid-column:1/-1}
}

/* AGORA 4.39.5 — Phase 39A4 : historique, PDF et non-régression des modèles de contrôle */
.control-history-snapshot-card{
  border-color:rgba(214,163,90,.34);
  background:linear-gradient(180deg,rgba(214,163,90,.07),rgba(15,23,38,.96));
}
.control-history-snapshot-card .ouvrage-dossier-section-head{align-items:flex-start}
.control-history-snapshot-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.control-history-snapshot-grid>div{
  min-width:0;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(15,23,38,.68);
}
.control-history-snapshot-grid span,
.control-history-snapshot-grid small{
  display:block;
  color:var(--muted);
  font-size:.78rem;
}
.control-history-snapshot-grid strong{
  display:block;
  margin:4px 0 2px;
  overflow-wrap:anywhere;
  color:var(--text);
}
@media(max-width:900px){
  .control-history-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .control-history-snapshot-grid{grid-template-columns:1fr}
  .control-history-snapshot-card .ouvrage-dossier-section-head>.badge{white-space:normal;text-align:left}
}
