:root{--ink:#1a2c3d;--muted:#768595;--navy:#172738;--slate:#31465d;--paper:#f3f5f7;--edge:#e3e8ed;--ocean:#1f6875;--teal:#167c83;--gold:#ad7c3a;--white:#fff;--radius:14px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #48bbc5;outline-offset:2px}input,select,textarea{border:1px solid #d8e0e7;border-radius:9px;padding:10px 11px;background:#fff;color:#21394b;min-width:0;width:100%;font-size:13px}textarea{resize:vertical}label{display:block;color:#576a7c;font-size:12px;font-weight:660;letter-spacing:.012em}label input,label select,label textarea{display:block;margin-top:7px;font-weight:450}h1,h2,h3,p{margin-top:0}h1{font-size:25px;letter-spacing:-.04em;font-weight:760}h2{font-size:18px;letter-spacing:-.025em}h3{font-size:14px}.eyebrow{font-size:10px;font-weight:760;letter-spacing:.12em;color:#778b98;margin-bottom:9px}.btn{padding:10px 13px;border:1px solid #d8e0e7;background:#fff;color:#334a5a;border-radius:9px;font-size:12px;font-weight:730;white-space:nowrap}.btn:hover{background:#f1f7f8}.btn-primary,.primary{background:#147a83;border-color:#147a83;color:white}.btn-primary:hover,.primary:hover{background:#0b6a75;color:white}.full,.fill{width:100%}.shell{display:flex;min-height:100vh}.sidebar{width:224px;background:var(--navy);color:#dbe6ed;min-height:100vh;flex:none;display:flex;flex-direction:column;padding:25px 13px 15px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:4px 12px 24px}.brand-logo{display:grid;place-items:center;background:#d7e9e4;color:#0f5d63;font-size:26px;font-weight:750;width:40px;height:40px;border-radius:12px}.brand strong{letter-spacing:.15em;display:block;font-size:18px;color:white}.brand span{font-size:8px;font-weight:800;letter-spacing:.09em;color:#a5bec9}.sidebar-caption{color:#8ca9b7;font-size:9px;letter-spacing:.12em;font-weight:800;padding:10px 13px 14px}.nav{display:flex;align-items:center;gap:13px;border:0;background:transparent;width:100%;border-radius:10px;text-align:left;color:#b4c7d4;padding:12px 13px;font-size:19px;margin:2px 0}.nav span{font-size:12px;font-weight:680}.nav.active{background:#2c5361;color:#ecffff;box-shadow:inset 3px 0 #65cec2}.nav:hover{background:#274052;color:white}.sidebar-spacer{flex:1}.sidebar-bottom{border-top:1px solid #34475a;padding:18px 5px 3px;display:flex;align-items:center;gap:9px}.avatar{width:33px;height:33px;border-radius:50%;background:#2f6571;display:grid;place-items:center;color:#a7e7e0;font-size:18px}.who{flex:1;min-width:0}.who strong{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who small{font-size:10px;color:#9baeba}.logout{background:transparent;border:0;color:#a8c4cc;font-size:20px}.workspace{width:calc(100% - 224px);padding:26px 27px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:19px}.topbar h1{margin:0}.topbar .eyebrow{margin-bottom:6px}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip{background:#e9f3ef;border:1px solid #d7e7e2;color:#387b6a;padding:9px 13px;border-radius:40px;font-size:11px;font-weight:680;white-space:nowrap}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid #e4e9e8;background:#eaf3f1;border-radius:12px;padding:14px 19px;margin-bottom:17px}.intro strong{display:block;font-size:13px;margin-bottom:4px}.intro span:not(.warning-chip){color:#697f83;font-size:11px}.warning-chip{font-size:10px;font-weight:750;padding:7px 10px;border:1px solid #efd8ac;border-radius:30px;background:#fff5e5;color:#95692c;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.stats>div{padding:16px 19px;background:#fff;border:1px solid var(--edge);border-radius:12px}.stats span{font-size:11px;color:#6c7c8b;font-weight:690}.stats strong{display:block;font-size:28px;letter-spacing:-.05em;margin:8px 0 5px}.stats small{font-size:10px;color:#8b98a4}.map-layout{display:grid;grid-template-columns:minmax(450px,1fr) 312px;gap:15px;align-items:start}.map-column,.detail,.data-panel{background:white;border:1px solid var(--edge);border-radius:var(--radius);box-shadow:0 3px 16px #1c3b4911;overflow:hidden}.toolbar{display:flex;gap:9px;padding:13px;background:#fff;border-bottom:1px solid var(--edge);align-items:center}.toolbar select{width:153px;flex:none}.field-icon{background:#f8fafb;border:1px solid #dbe3e7;border-radius:9px;display:flex;align-items:center;padding:0 10px;font-size:17px;color:#899ca9;flex:1;min-width:100px}.field-icon input{background:transparent;border:0;padding:10px;width:100%;outline:0}.map-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid var(--edge);background:#fbfcfd}.toolset{display:flex;gap:5px;flex-wrap:wrap}.toolset button{border:1px solid #e0e6ea;background:white;border-radius:7px;color:#6d7e8a;font-size:11px;font-weight:740;padding:8px 10px}.toolset button:hover{color:#0e5e6a}.toolset button.selected{color:#0e7882;background:#eaf6f5;border-color:#c0e8e6}.map-viewport{height:min(62vh,760px);min-height:535px;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;background:#e8ece9;background-image:radial-gradient(#d9dfd9 1px,transparent 1px);background-size:15px 15px}.map-viewport svg{height:100%;width:100%;user-select:none;touch-action:none;cursor:grab}.map-viewport svg.mode-place{cursor:crosshair}.zone-shape{stroke-width:2.4;vector-effect:non-scaling-stroke;cursor:pointer;stroke-linejoin:round}.zone-shape:hover{stroke-width:3.6}.plot-marker{cursor:pointer;stroke:white;stroke-width:1.1;vector-effect:non-scaling-stroke}.plot-marker:hover{stroke:#121c26;stroke-width:2.5}.plot-selected{stroke:#0d1923;stroke-width:3.4;filter:drop-shadow(0 0 2px white)}.plot-outline{stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer}.vertex{cursor:move;fill:white;stroke:#152c3d;stroke-width:2;vector-effect:non-scaling-stroke}.map-legend{position:absolute;bottom:20px;left:14px;display:flex;align-items:center;gap:13px;flex-wrap:wrap;background:#fffffff3;border-radius:8px;padding:8px 11px;font-size:10px;font-weight:660;color:#4b606e;box-shadow:0 3px 16px #0002}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:4px}.pending{background:#d6a343}.verified{background:#1b9873}.free{background:#8b98a4}.map-footer{position:absolute;bottom:1px;right:8px;color:#fff;font-size:9px;text-shadow:0 1px 4px #000}.detail{position:relative}.detail-head{border-bottom:1px solid var(--edge);padding:22px 18px 16px;display:flex;justify-content:space-between;align-items:start;gap:10px}.detail-head .eyebrow{margin-bottom:9px}.detail-head h2{margin:0;line-height:1.35;font-size:16px}.detail-badge{border-radius:25px;padding:6px 8px;background:#e7ecf0;font-size:10px;font-weight:800;color:#62798b}.empty-detail{text-align:center;padding:32px 25px 23px}.illustration{margin:0 auto 16px;background:#eaf4f3;border-radius:16px;width:75px;height:75px;display:grid;place-items:center;font-size:42px;color:#42878a}.empty-detail h3{font-size:14px}.empty-detail p{font-size:12px;line-height:1.7;color:#84919b}.detail form{padding:15px 17px;display:flex;flex-direction:column;gap:12px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.meta{line-height:1.9;font-size:11px;color:#748394;background:#f5f7f9;padding:10px 12px;border-radius:8px}.meta strong{color:#526574}.hint{font-size:11px;line-height:1.6;color:#8895a0}.recent{border-top:1px solid var(--edge);padding:15px 18px}.recent>strong{font-size:12px;display:flex;justify-content:space-between}.recent>strong span{color:#81909e}.recent #shortResults{margin-top:9px;max-height:250px;overflow:auto}.result{width:100%;display:flex;align-items:center;gap:8px;text-align:left;border:0;border-bottom:1px solid #eff1f3;background:#fff;padding:9px 0;font-size:11px;color:#375267}.result:hover{background:#f3f8f8}.result span{flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.result b{font-size:10px;color:#788b9a}.data-panel{min-height:450px}.data-title{padding:26px 28px 17px;border-bottom:1px solid var(--edge)}.data-title h2{font-size:21px;margin-bottom:7px}.data-title p{font-size:12px;color:#80919f;max-width:680px}.data-panel>.toolbar input{max-width:420px}.table-scroll{overflow:auto;max-height:64vh}.table-scroll table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;background:#f7fafb;color:#6a7c88;font-size:11px;padding:14px 17px;position:sticky;top:0}td{padding:11px 17px;border-bottom:1px solid #edf0f3;color:#42576a}tbody tr:hover{background:#f8fafc}.table-foot{font-size:12px;color:#8494a1;padding:14px 20px}.status{padding:5px 7px;border-radius:6px;font-size:10px;font-weight:750;white-space:nowrap}.status.a_verifier{background:#fff2db;color:#a17524}.status.verifie{background:#e7f7ef;color:#12805c}.status.libre{background:#f0f1f4;color:#667487}.rowbtn{border:1px solid #d8e4e7;background:#fff;border-radius:7px;color:#1c7580;padding:6px 10px;font-size:11px}.zone-cards{padding:20px 25px;display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:12px}.zone-card{border:1px solid #e0e8ed;border-radius:12px;padding:17px;display:flex;flex-direction:column;gap:9px}.zone-color{width:11px;height:11px;display:inline-block;border-radius:50%;margin-right:8px}.zone-card h3{font-size:15px;margin:0}.zone-card p{color:#7b8c99;font-size:11px;line-height:1.5}.zone-card .buttons{display:flex;gap:7px;margin-top:auto}.zone-form{margin:4px 25px 25px;border:1px solid #e4ecef;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:13px;max-width:640px}.zone-form h3{font-size:16px;margin:0}.zone-form #zoneColor{width:80px;height:36px;padding:4px}.buttons{display:flex;gap:8px;flex-wrap:wrap}#usersList{padding:18px 26px}#usersList .userrow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--edge);font-size:12px}.userrow .muted{color:#8194a2}.temp-password{border:1px solid #b6dfd7;background:#ebfaf7;padding:14px;border-radius:10px;font-size:12px;overflow-wrap:anywhere}.audit-list{margin:0 25px 28px}.audit-row{font-size:12px;color:#7b8a98;border-bottom:1px solid var(--edge);padding:10px 0}#panel-agents h3{margin:20px 25px 12px}#toast{position:fixed;z-index:50;bottom:20px;right:20px;background:#173b44;color:white;border-radius:10px;padding:12px 18px;font-size:12px;box-shadow:0 9px 35px #0003;max-width:420px;opacity:0;pointer-events:none;transition:opacity .22s}#toast.show{opacity:1}#toast.error{background:#a23b40}.only-admin{display:none!important}body[data-role="admin"] .only-admin{display:flex!important}body[data-role="admin"] section.only-admin{display:block!important}body[data-role="admin"] button.nav.only-admin{display:flex!important}body[data-role="reader"] #moveTool,body[data-role="reader"] #rectTool,body[data-role="reader"] #newPointTool,body[data-role="reader"] #savePlot,body[data-role="reader"] #exportBtn{display:none}body[data-role="reader"] #plotForm input:not([disabled]),body[data-role="reader"] #plotForm textarea,body[data-role="reader"] #plotForm select{pointer-events:none;background:#f5f8fa}
.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:linear-gradient(130deg,#0e3340,#1f5360 45%,#e9f0ed 45.05%,#f5f8f7)}.login-box{width:min(440px,100%);background:#fff;border:1px solid #e6ebe9;border-radius:20px;padding:40px;box-shadow:0 18px 55px #091f2526}.login-box .logo-square{background:#e4f1eb;color:#1b756f;font-size:36px;width:58px;height:58px;display:grid;place-items:center;border-radius:18px;margin-bottom:25px}.login-box h1{font-size:28px;line-height:1.15;margin-bottom:10px}.login-subtitle{font-size:13px;color:#7e909c;line-height:1.65;margin-bottom:28px}.login-box form{display:flex;flex-direction:column;gap:17px}.login-box form button{border:0;border-radius:9px;padding:13px;margin-top:5px;font-weight:750}.login-foot{font-size:11px;color:#8b9aa5;text-align:center;margin-top:24px;margin-bottom:0}.login-error{padding:10px;background:#fee7e7;border-radius:8px;font-size:12px;color:#9f4141;margin-bottom:18px}
@media(max-width:1390px){.map-layout{grid-template-columns:minmax(390px,1fr) 286px}.workspace{padding:23px 20px}.stats>div{padding:13px}}
@media(max-width:1120px){.sidebar{width:66px;padding:19px 7px}.sidebar .brand{padding:0 5px 26px}.sidebar .brand>div:nth-child(2),.sidebar-caption,.nav span,.who,.logout{display:none}.nav{justify-content:center;padding:12px}.workspace{width:calc(100% - 66px)}.map-layout{grid-template-columns:minmax(0,1fr)}.map-viewport{height:600px}.topbar{align-items:flex-start}.stats{grid-template-columns:repeat(2,1fr)}.detail{display:grid;grid-template-columns:1fr 1fr}.detail-head{grid-column:1/-1}.recent{border-top:0;border-left:1px solid var(--edge)}}
@media(max-width:700px){.workspace{padding:16px 9px}.topbar{flex-direction:column}.intro{align-items:flex-start;flex-direction:column}.stats{gap:7px}.stats>div{padding:12px}.stats strong{font-size:22px}.toolbar{flex-wrap:wrap}.toolbar .field-icon{flex-basis:100%}.toolbar select{flex:1}.map-viewport{min-height:460px;height:60vh}.detail{display:block}.two-cols{grid-template-columns:1fr}.zone-cards{grid-template-columns:1fr}.login-box{padding:27px}}
/* The hidden attribute must win over role-based layout rules. */
[hidden],body.app-page section.tab-panel[hidden]{display:none!important}

/* Registre et pièces - Atlas Beauvois, interface originale */
.dossier-layout{display:grid;grid-template-columns:265px minmax(0,1fr);min-height:540px}.dossier-lookup{border-right:1px solid var(--edge);padding:18px;background:#fafcfc}.dossier-lookup input{margin-top:9px;width:100%}.dossier-results{max-height:600px;overflow:auto;padding-top:8px}.dossier-result{display:flex;flex-direction:column;width:100%;text-align:left;background:white;border:1px solid #e2eaec;border-radius:9px;padding:12px;margin:7px 0;cursor:pointer;gap:5px;font-size:12px;color:#314e5d}.dossier-result small{color:#85969f}.dossier-result:hover{background:#edf7f6;border-color:#a3cbc8}.dossier-editor{padding:22px;min-width:0}#dossierEmpty{padding:55px 20px;text-align:center;color:#7b8a9a}#dossierEmpty .illustration{margin-bottom:14px}.dossier-titleline{display:flex;justify-content:space-between;align-items:center;gap:13px}.dossier-titleline h3{font-size:20px;margin:6px 0}.data-warning{background:#fff8ed;border:1px solid #f4dfbb;border-radius:10px;padding:12px;color:#89632b;font-size:12px;line-height:1.6;margin:15px 0}#dossierForm{display:flex;flex-direction:column;gap:15px}.three-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.document-section{border-top:1px solid #e3e9ee;margin-top:22px;padding-top:22px}.document-section h3{font-size:16px;margin-bottom:8px}.document-row{padding:12px 0;border-bottom:1px solid #edf0f4;display:flex;align-items:center;justify-content:space-between;gap:14px}.document-row>div:first-child{display:flex;flex-direction:column;gap:4px}.document-row small{color:#8a98a6}.document-row .btn{font-size:11px;text-decoration:none}.upload-controls{display:flex;align-items:center;gap:10px;margin:16px 0;flex-wrap:wrap}.upload-controls input{max-width:300px}.upload-controls button{white-space:nowrap}
@media(max-width:900px){.dossier-layout{grid-template-columns:1fr}.dossier-lookup{border-right:0;border-bottom:1px solid var(--edge)}.dossier-results{max-height:175px}.three-cols{grid-template-columns:1fr}}


/* ATLAS 5 – Interface sobre inspirée de l'ergonomie des outils cartographiques,
   réalisation originale et indépendante de toute marque tierce. */
body.app-page {--paper:#f7f7f5;--navy:#252b2b;--ink:#26302e;--edge:#e3e5e1;--teal:#335f56;background:#f7f7f5;color:#25332e}
.app-page .shell{display:block;min-height:100vh}
.app-page .sidebar{width:100%;height:62px;min-height:62px;position:sticky;z-index:20;top:0;display:flex;flex-direction:row;align-items:center;padding:0 24px;gap:18px;background:#27322e;border-bottom:1px solid #39443f;box-shadow:0 2px 12px #00000014}
.app-page .brand{padding:0;gap:9px;flex:0 0 195px}
.app-page .brand-logo{width:33px;height:33px;border-radius:9px;background:#e8efe7;color:#3b7056;font-size:22px}
.app-page .brand strong{font-size:14px;letter-spacing:.11em}
.app-page .brand span{font-size:8px;color:#b1c5bb}
.app-page .sidebar-caption{display:none}
.app-page .sidebar nav{display:flex;gap:2px;align-items:center;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin}
.app-page .nav{width:auto;margin:0;font-size:14px;white-space:nowrap;border-radius:6px;padding:9px 10px;gap:7px;color:#d1dcd5}
.app-page .nav span{font-size:12px;font-weight:580}
.app-page .nav.active{background:#455b4d;box-shadow:none;color:white}
.app-page .nav:hover{background:#405147}
.app-page .sidebar-spacer{display:none}
.app-page .sidebar-bottom{flex:0 0 auto;border:0;padding:0;max-width:185px;gap:8px}
.app-page .avatar{width:27px;height:27px;background:#49675a;color:#dcebe0}
.app-page .who strong{font-size:10px}.app-page .who small{font-size:9px}
.app-page .logout{font-size:19px;padding:4px}
.app-page .workspace{width:100%;max-width:1760px;margin:0 auto;padding:17px 24px 28px}
.app-page .topbar{margin:0 0 12px;min-height:47px;align-items:center}
.app-page .topbar h1{font-size:23px;letter-spacing:-.035em;font-weight:730}
.app-page .topbar .eyebrow{font-size:10px;color:#71827a;letter-spacing:.08em;margin-bottom:4px}
.app-page .top-actions .chip{display:none}
.app-page .top-actions .btn{padding:8px 12px;font-weight:600;font-size:12px;border-radius:7px}
.app-page .btn-primary{background:#336559;border-color:#336559}
.app-page .btn-primary:hover{background:#234e45;border-color:#234e45}
.app-page .intro, .app-page .stats{display:none}
.app-page .map-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
.app-page.has-selection .map-layout{grid-template-columns:minmax(0,1fr) 330px}
.app-page .map-column,.app-page .detail,.app-page .data-panel{border:1px solid #dee2dc;box-shadow:0 1px 6px #0000000c;border-radius:9px;background:#fff}
.app-page .toolbar{padding:9px 12px;gap:8px;border-bottom:1px solid #e6e8e5;background:#fff}
.app-page .toolbar .field-icon{max-width:640px;flex:1}
.app-page .toolbar input{max-width:none}
.app-page .toolbar select{width:145px;padding:9px;border-radius:7px;font-size:12px}
.app-page .toolbar input{font-size:13px;border-color:#e4e7e5;background:#fafbf9}
.app-page .map-tools{background:#fff;justify-content:space-between;padding:6px 12px;gap:6px;border-bottom:1px solid #e4e7e5}
.app-page .map-tools .toolset{gap:5px;align-items:center;display:flex}
.app-page .map-tools button,.app-page .map-tools summary{border-radius:7px;border:1px solid #e2e6e1;padding:7px 10px;background:#fbfcfb;color:#3b5147;font-size:11px;font-weight:650;white-space:nowrap}
.app-page .map-tools button:hover,.app-page .map-tools summary:hover{background:#e9f2ec}
.app-page .map-tools .selected{background:#e8f0ea;color:#286046;border-color:#b9d6c2}
.app-page .map-tools #toggleRepers[aria-pressed=true]{background:#eaf1e6;color:#2b6645;border-color:#bed6c1}
.app-page .advanced-tools{display:inline-block;position:relative;z-index:8}
.app-page .advanced-tools summary{list-style:none;cursor:pointer;user-select:none}
.app-page .advanced-tools summary::-webkit-details-marker{display:none}
.app-page .advanced-actions{display:flex;gap:5px;position:absolute;left:0;top:calc(100% + 5px);background:white;box-shadow:0 9px 25px #0003;border:1px solid #d9e1dc;border-radius:8px;padding:8px;flex-wrap:wrap;width:260px}
.app-page .map-viewport{height:calc(100vh - 214px);min-height:610px;max-height:1080px;background:#2e3431;background-image:none;position:relative}
.app-page .map-viewport svg{width:100%;height:100%;}
.app-page .map-overline{position:absolute;top:14px;left:15px;z-index:3;pointer-events:none;background:#16231bd9;color:#f7f7f0;padding:9px 12px;border-radius:7px;display:flex;flex-direction:column;gap:3px;box-shadow:0 2px 10px #0004}
.app-page .map-overline strong{font-size:12px;font-weight:650}
.app-page .map-overline span{font-size:10px;color:#c6d9cc}
.app-page .map-legend{bottom:18px;left:14px;background:#202b24e3;color:white;box-shadow:0 3px 10px #0002;padding:8px 10px}
.app-page .map-legend .dot{border:1px solid #fff5}
.app-page .map-footer{color:#d6dfd7;opacity:.95}
.app-page .detail{display:none;max-height:calc(100vh - 137px);overflow:auto;align-self:start;position:sticky;top:78px}
.app-page.has-selection .detail{display:block}
.app-page .detail-head{padding:16px 15px 13px;background:#fbfcfa}
.app-page .detail-head h2{font-size:15px}
.app-page .detail-control{display:flex;gap:7px;align-items:center}
.app-page .detail-close{border:0;color:#52695b;background:#edf0eb;border-radius:7px;font-size:20px;width:30px;height:30px;padding:0}
.app-page .detail form{padding:14px;gap:9px}
.app-page .detail form label{font-size:11px}
.app-page .detail form input,.app-page .detail form select,.app-page .detail form textarea{font-size:12px;padding:8px;border-radius:6px}
.app-page .detail .recent{display:none}
.app-page .empty-detail{padding:12px}
.app-page .sector-label{fill:#fff;paint-order:stroke;stroke:#111c19;stroke-width:5px;stroke-linejoin:round;font-size:30px;font-weight:850;letter-spacing:2px;pointer-events:none;filter:drop-shadow(0 2px 3px #0006)}
.app-page.quiet-map:not(.repers-visible):not(.map-zoomed) .plot-marker:not(.plot-selected){opacity:0;stroke-opacity:0;pointer-events:all}
.app-page.quiet-map:not(.repers-visible):not(.map-zoomed) .plot-outline:not(.plot-selected){opacity:0}
.app-page .data-panel{min-height:60vh}
.app-page .data-title{background:#fff}
@media(max-width:1200px){.app-page .brand{flex-basis:133px}.app-page .brand span{display:none}.app-page .nav{font-size:11px;padding:9px 7px}.app-page .nav span{font-size:11px}.app-page .sidebar-bottom{max-width:70px}.app-page .who{display:none}.app-page.has-selection .map-layout{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:850px){.app-page .sidebar{padding:0 10px;gap:6px}.app-page .brand{flex-basis:42px}.app-page .brand div:last-child{display:none}.app-page .nav{padding:8px 7px}.app-page .nav span{font-size:11px}.app-page .workspace{padding:12px 10px}.app-page.has-selection .map-layout{grid-template-columns:1fr}.app-page .detail{position:static;max-height:none}.app-page .map-viewport{height:65vh;min-height:530px}.app-page .toolbar{flex-wrap:wrap}.app-page .toolbar select{width:auto;flex:1}.app-page .map-tools .toolset{flex-wrap:wrap}.app-page .topbar .eyebrow{display:none}}
@media(max-width:520px){.app-page .sidebar{height:58px;min-height:58px}.app-page .brand{flex-basis:34px}.app-page .nav{padding:7px 5px}.app-page .nav span{font-size:10px}.app-page .sidebar-bottom{display:none}.app-page .top-actions #reloadBtn{display:none}.app-page .topbar h1{font-size:20px}.app-page .map-viewport{height:63vh;min-height:480px}.app-page .map-footer{display:none}.app-page .map-overline{padding:7px 9px}.app-page .advanced-actions{left:auto;right:0}}

/* Liste courte de résultats : permet de choisir une tombe sans les repères */
.app-page .toolbar{position:relative}
.app-page #quickResults{position:absolute;z-index:15;top:calc(100% - 4px);left:13px;width:min(505px,calc(100% - 26px));background:white;box-shadow:0 14px 36px #15231a3b;border:1px solid #dce3dd;border-radius:7px;max-height:360px;overflow:auto;padding:4px}
.app-page #quickResults[hidden]{display:none}
.app-page #quickResults button{display:flex;justify-content:space-between;gap:12px;align-items:center;background:white;border:0;border-bottom:1px solid #edf0ed;width:100%;padding:10px;color:#23382d;text-align:left;font-size:12px;cursor:pointer}
.app-page #quickResults button:hover{background:#edf4ed}
.app-page #quickResults button strong{font-weight:650}
.app-page #quickResults button small{color:#688072;font-size:11px;white-space:nowrap}
.app-page #quickResults p{margin:8px 10px;color:#68776e;font-size:12px}

/* Atlas Beauvois · version opérationnelle v5 : outils de saisie supplémentaires */
.app-page .primary-add{background:#296251!important;color:#fff!important;border-color:#296251!important;font-weight:750!important;box-shadow:0 1px 3px #0001}
.app-page .primary-add:hover{background:#194d3f!important;color:#fff!important}
.app-page .source-details{padding:10px 0;border-top:1px solid #e6eae5;border-bottom:1px solid #e6eae5}
.app-page .source-details summary{cursor:pointer;color:#275746;font-weight:650;font-size:12px}
.app-page .source-details .two-cols{margin-top:12px}
.app-page .btn-subtle-danger{background:#fff;border-color:#f0dcdb;color:#a33e3e}
.app-page .btn-subtle-danger:hover{background:#fff2f1;color:#872c2c}
.new-plot-dialog{width:min(530px,calc(100vw - 22px));max-height:90vh;overflow:auto;border:1px solid #dbe5df;border-radius:16px;padding:0;box-shadow:0 25px 85px #0f282544;background:#fff;color:#263a31}
.new-plot-dialog::backdrop{background:#0c1919a3;backdrop-filter:blur(3px)}
.new-plot-dialog form{display:flex;flex-direction:column;gap:15px;padding:26px}
.new-plot-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.new-plot-dialog h2{margin:1px 0;font-size:21px;letter-spacing:-.025em}
.new-plot-dialog label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650}
.new-plot-dialog input,.new-plot-dialog select,.new-plot-dialog textarea{background:#fafdfb;border:1px solid #d7e0db;padding:10px;font:inherit;font-weight:400;border-radius:7px;min-width:0;width:100%;box-sizing:border-box}
.new-plot-dialog .coordinates{background:#eff5f1;border-radius:7px;padding:10px;color:#39604a;font-size:12px}
.new-plot-dialog .dialog-x{border:0;background:#f0f2f0;font-size:22px;border-radius:8px;width:32px;height:32px;cursor:pointer}
.new-plot-dialog .buttons{justify-content:flex-end;gap:9px}
.app-page .admin-backups{margin:22px 24px;padding:20px;border:1px solid #e1e8e2;border-radius:10px;background:#f8faf8;display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.app-page .admin-backups h3{width:100%;margin:0}.app-page .admin-backups p{width:100%;color:#617466;font-size:12px}
.app-page .admin-backups #archivedList{width:100%}
@media(max-width:700px){.app-page .primary-add{font-size:11px!important}.new-plot-dialog form{padding:18px}.new-plot-dialog .two-cols{grid-template-columns:1fr}}
