:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#173341;background:#f2f6f7}*{box-sizing:border-box}body{margin:0}.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{background:#123844;color:#d2e4e5;padding:27px 17px;display:flex;flex-direction:column;gap:43px}.brand{display:flex;gap:11px;align-items:center;padding:0 12px}.brand strong{font-size:22px;color:white;letter-spacing:.04em}.brand small{display:block;font-size:12px;margin-top:3px}.mark{background:#2bc0ad;color:#053641;font-size:24px;font-weight:800;border-radius:12px;padding:8px 13px}nav{display:grid;gap:5px}nav button{border:0;background:none;color:#c3dadc;text-align:left;border-radius:10px;padding:13px 14px;font:600 14px inherit;cursor:pointer}nav button span{padding-left:10px}nav button.active,nav button:hover{background:#23616b;color:white}.sidefoot{font-size:13px;line-height:1.7;margin-top:auto;padding:14px;color:#c9e1df;border-top:1px solid #32606b}.sidefoot span{opacity:.7}main{min-width:0}.topbar{height:104px;padding:20px 35px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #dce8e8}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.13em;font-weight:800;color:#57828b}h1{font-size:25px;margin:5px 0 0;color:#173943}.headright{display:flex;gap:17px;align-items:center}.demo{background:#fff4dd;color:#715116;border:1px solid #f0daab;border-radius:20px;padding:7px 12px;font-size:12px;font-weight:700}.avatar{background:#d7eeee;color:#17646a;border-radius:50%;padding:13px;font-size:12px;font-weight:800}#app-content{padding:28px 35px 55px;max-width:1540px;margin:auto}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:15px;margin:0 0 19px}.sectionhead h2{margin:0;font-size:21px}.muted{color:#617984;font-size:14px;line-height:1.5}.sectionhead p{margin:6px 0 0}.button{background:#086f78;color:white;border:1px solid #086f78;border-radius:9px;padding:11px 15px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.button.light{background:white;color:#0d6370;border-color:#b8d0d2}.button:hover{filter:brightness(.92)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.card,.panel{background:white;border:1px solid #dce6e7;border-radius:14px;box-shadow:0 4px 16px #16425208}.card{padding:20px}.card .label{font-size:13px;color:#617a83;font-weight:650}.card strong{font-size:30px;display:block;margin:11px 0 5px;letter-spacing:-.04em}.card small{color:#607780}.card.accent{border-top:4px solid #1caaa3}.layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,1fr);gap:16px;margin-top:18px}.panel{padding:21px}.panel h3{margin:0 0 14px;font-size:16px}.barrow{display:grid;grid-template-columns:125px 1fr 45px;align-items:center;gap:12px;margin:15px 0;font-size:13px}.track{height:12px;border-radius:10px;background:#e6eeee;overflow:hidden}.fill{display:block;background:#168d92;height:100%;border-radius:10px}.mini-list{list-style:none;margin:0;padding:0}.mini-list li{padding:12px 0;border-bottom:1px solid #edf2f2;display:flex;justify-content:space-between;gap:10px;font-size:14px}.mini-list li:last-child{border:0}.status{background:#e5f5f0;color:#137058;border-radius:20px;padding:4px 9px;font-size:12px;font-weight:700}.status.pending{background:#fff1dc;color:#92601c}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:#647b84;background:#f5f9f9;padding:13px 12px;white-space:nowrap}.table td{padding:14px 12px;border-top:1px solid #e6eeee}.table tr:hover td{background:#f7fbfb}.table button{border:0;background:none;color:#087786;font:inherit;font-weight:700;cursor:pointer;text-align:left}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:17px}.field{display:flex;flex-direction:column;gap:6px;color:#5c727b;font-size:13px;font-weight:700}.field input,.field select{border:1px solid #c9dadd;border-radius:8px;min-width:150px;padding:10px 12px;background:white;color:#153843;font:inherit;font-size:14px}.field input:focus,.field select:focus{outline:2px solid #55b8bd}.househead{display:grid;grid-template-columns:1fr auto;gap:12px}.househead h2{margin:0;font-size:23px}.score{background:#075f69;color:white;border-radius:13px;padding:18px 23px;min-width:205px}.score span{font-size:12px;display:block;opacity:.85}.score strong{display:block;font-size:32px;margin:4px 0}.tabs{display:flex;gap:5px;border-bottom:1px solid #d9e7e8;margin:21px 0 18px;overflow:auto}.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:13px 15px;white-space:nowrap;font-weight:700;color:#67818a;cursor:pointer}.tabs button.active{color:#086c77;border-color:#0a8990}.detailgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.kv span{display:block;font-size:12px;color:#6a8086}.kv strong{display:block;margin-top:5px;font-size:14px;font-weight:650}.back{border:0;background:none;color:#087785;font-weight:700;cursor:pointer;padding:0;margin-bottom:17px}.notice{border-left:4px solid #e0a043;background:#fff8e9;padding:13px 15px;border-radius:5px;font-size:14px;color:#6a521e;margin:17px 0}.mapframe{width:100%;height:690px;border:1px solid #d5e2e3;border-radius:13px;background:white}.empty{padding:45px 20px;text-align:center;color:#607a83}.pills{display:flex;gap:7px;flex-wrap:wrap}.pill{background:#e9f3f4;color:#26666e;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:700}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}.detailgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.app{display:block}.sidebar{padding:12px;gap:10px}.brand{padding:0}.brand small,.sidefoot{display:none}nav{display:flex;overflow:auto}nav button{white-space:nowrap;padding:9px}nav button span{padding-left:2px}.topbar{height:auto;padding:18px;align-items:start}.headright{gap:5px}.demo{max-width:126px}.avatar{display:none}#app-content{padding:18px}.cards{grid-template-columns:1fr 1fr}.card strong{font-size:24px}.househead{grid-template-columns:1fr}.detailgrid{grid-template-columns:1fr 1fr}.mapframe{height:620px}}@media(max-width:450px){.cards,.detailgrid{grid-template-columns:1fr}.sectionhead{display:block}}
.map-panel{padding:0;overflow:hidden}.map-panel-head{padding:18px 20px 10px;display:flex;justify-content:space-between;align-items:center;gap:12px}.map-panel-head h3{margin:0}.dashboard-map{width:100%;height:510px;border:0;display:block}.map-note{padding:10px 18px;background:#f5f9f9;border-top:1px solid #e0ebec;color:#617984;font-size:13px}.house-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px}.preview{position:sticky;top:20px;align-self:start}.preview-head{display:flex;gap:13px;align-items:center}.photo-placeholder{display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:12px;background:#dbecee;color:#256b75;font-size:22px;font-weight:800}.photo-placeholder.large{width:80px;height:80px;font-size:29px}.score-mini{font-size:23px;font-weight:800;color:#076d77}.query-grid{display:grid;grid-template-columns:repeat(3,minmax(155px,1fr));gap:13px;margin:15px 0}.query-grid .field input,.query-grid .field select{width:100%;min-width:0}.query-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.query-summary{background:#edf7f7;border-left:4px solid #138d93;padding:13px 16px;border-radius:6px;margin:18px 0}.code-preview{white-space:pre-wrap;overflow-wrap:anywhere;background:#183942;color:#d7eff0;padding:14px;border-radius:9px;font-size:12px;line-height:1.5}.table .photo-placeholder{width:35px;height:35px;border-radius:8px;font-size:13px}.table td small{display:block;color:#67808a}.table td .photo-placeholder{margin-right:8px}.portrait-cell{display:flex;align-items:center}.field small{font-weight:400;color:#69808a}.inline-meta{font-size:12px;color:#67808a}.field-row{display:flex;gap:12px;flex-wrap:wrap}.selected-row td{background:#eaf5f5!important}@media(max-width:1050px){.house-layout{grid-template-columns:1fr}.preview{position:static}.query-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.query-grid{grid-template-columns:1fr}.dashboard-map{height:440px}.map-panel-head{display:block}}
/* Adaptations des écrans PHP au thème de la plateforme en ligne. */
.sidebar .brand img{width:48px;height:48px;object-fit:cover;object-position:center 35%;background:#fff;border-radius:10px}.sidebar nav a{display:block;border-radius:10px;padding:13px 14px;color:#c3dadc;font-size:14px;font-weight:650;text-decoration:none}.sidebar nav a.active,.sidebar nav a:hover{background:#23616b;color:#fff}.content{padding:28px 35px 55px;max-width:1540px;margin:auto}.headright span{font-size:13px;color:#617984}.headright form{margin:0}.card span{display:block;color:#617a83;font-size:13px;font-weight:650}.card strong{display:block;font-size:30px;margin:11px 0 5px}.card small{color:#607780}.panel{margin-top:16px}.filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:13px}.filters label,.login-card label{display:flex;flex-direction:column;gap:6px;color:#5c727b;font-size:13px;font-weight:700}.filters input,.filters select,.login-card input{border:1px solid #c9dadd;border-radius:8px;min-width:0;padding:10px 12px;background:#fff;color:#153843;font:inherit;font-size:14px;width:100%}.filters input:focus,.filters select:focus,.login-card input:focus{outline:2px solid #55b8bd}.filter-panel .actions{margin:16px 0 0}.panel .table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:#647b84;background:#f5f9f9;padding:13px 12px;white-space:nowrap}.table td{padding:14px 12px;border-top:1px solid #e6eeee}.table tbody tr:hover td{background:#f7fbfb}.table .selected-row td{background:#eaf5f5}.table a{color:#087786;font-weight:700;text-decoration:none}.table a:hover{text-decoration:underline}.person{display:flex;gap:8px;align-items:center}.portrait{width:35px;height:35px;border-radius:8px;background:#dbecee;display:grid;place-items:center;color:#256b75;font-size:10px;font-weight:800}.portrait-large{width:120px;height:95px;border-radius:12px;background:#e7f0f0;display:grid;place-items:center;text-align:center;font-size:12px;color:#66838b}.status{background:#e5f5f0;color:#137058;border-radius:20px;padding:4px 9px;font-size:12px;font-weight:700}.empty{padding:45px 20px;text-align:center;color:#607a83}.notice{border-left:4px solid #e0a043;background:#fff8e9;padding:13px 15px;border-radius:5px;font-size:14px;color:#6a521e;margin:17px 0}.map-panel iframe{width:100%;height:510px;border:0;display:block}.map-head{padding:18px 20px 10px;display:flex;justify-content:space-between;align-items:center;gap:12px}.map-head h3{margin:0}.map-note{padding:10px 18px;background:#f5f9f9;border-top:1px solid #e0ebec;color:#617984;font-size:13px}.fullmap{width:100%;height:720px;border:0}.househead{display:grid;grid-template-columns:1fr auto;gap:12px}.househead h2{font-size:23px;margin:0}.detailgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.detailgrid span{display:block;font-size:12px;color:#6a8086}.detailgrid strong{display:block;margin-top:5px;font-size:14px;font-weight:650}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two-cols .panel{margin:0}.line{border-bottom:1px solid #edf2f2;padding:12px 0;font-size:14px;margin:0}.mini-list a{color:#087786;font-weight:700}.barrow{grid-template-columns:125px 1fr 45px}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#d6eeee,transparent 34%),#eef5f6;padding:22px}.login-card{width:min(440px,100%);background:#fff;border:1px solid #d9e7e8;box-shadow:0 18px 50px #123a451c;border-radius:18px;padding:34px}.login-logo{height:130px;text-align:center;margin-bottom:8px;overflow:hidden}.login-logo img{height:158px;width:185px;object-fit:cover;object-position:center 28%;margin-top:-3px}.login-card h1{margin:5px 0;font-size:25px}.login-card form{display:grid;gap:17px;margin-top:24px}.login-foot{margin:25px 0 0;color:#69808a;text-align:center;font-size:12px}.button.full{width:100%}.query-summary{background:#edf7f7;border-left:4px solid #138d93;padding:13px 16px;border-radius:6px;margin:18px 0}.code-preview{white-space:pre-wrap;overflow-wrap:anywhere;background:#183942;color:#d7eff0;padding:14px;border-radius:9px;font-size:12px;line-height:1.5}.preview .preview-head{display:flex;gap:13px;align-items:center}.preview .photo-placeholder.large{width:80px;height:80px}.preview .detailgrid{grid-template-columns:1fr 1fr}.preview .score{margin:17px 0}.panel h3{font-size:16px}.results-count{margin:16px 0}.query-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.query-actions form{margin:0}@media(max-width:1050px){.filters{grid-template-columns:repeat(2,1fr)}.house-layout{grid-template-columns:1fr}.preview{position:static}}@media(max-width:700px){.sidebar{padding:12px;gap:10px}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{white-space:nowrap;padding:9px}.content{padding:18px}.topbar{height:auto;padding:18px;align-items:start}.headright{flex-direction:column;align-items:end}.filters{grid-template-columns:1fr}.detailgrid{grid-template-columns:1fr 1fr}.two-cols{grid-template-columns:1fr}.househead{grid-template-columns:1fr}.map-panel iframe{height:440px}.login-card{padding:25px}}
.filter-panel.advanced .filters{grid-template-columns:repeat(3,minmax(155px,1fr))}.house-layout .panel{margin:0}.preview{position:sticky;top:20px;align-self:start}.preview .detailgrid strong{overflow-wrap:anywhere}.table .person small{display:block;margin-top:3px}.sidebar nav a{line-height:1.25}@media(max-width:1050px){.filter-panel.advanced .filters{grid-template-columns:repeat(2,1fr)}.preview{position:static}}@media(max-width:700px){.filter-panel.advanced .filters{grid-template-columns:1fr}}
.v3-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.v3-columns .panel{min-width:0}.v3-items{list-style:none;padding:0;margin:0}.v3-items li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #e6eeee;font-size:14px}.v3-items strong{color:#116b75}.v3-items span{text-align:right;overflow-wrap:anywhere}.v3-note{margin-top:18px}@media(max-width:950px){.v3-columns{grid-template-columns:1fr}}

/* Disposition mobile de la plateforme PHP. */
html,body{max-width:100%;overflow-x:clip}
.app>main,.content,.panel,.layout>*,.house-layout>*,.two-cols>*,.v3-columns>*{min-width:0}
.content,.panel,.card{overflow-wrap:anywhere}
.sidebar .menu-button{display:none}
.sidebar nav a:focus-visible,.button:focus-visible,.menu-button:focus-visible,.table a:focus-visible{outline:3px solid #37c1b9;outline-offset:2px}
.tablewrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tablewrap table{min-width:620px}
.cards{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}
@media(max-width:1100px){
  .app{grid-template-columns:205px minmax(0,1fr)}
  .house-layout{grid-template-columns:1fr}
  .preview{position:static}
  .filters,.filter-panel.advanced .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .app{display:block}
  .sidebar{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px 16px}
  .sidebar .brand{min-width:0;padding:0}
  .sidebar .brand img{width:43px;height:43px}
  .sidebar .brand small{display:block}
  .sidebar .sidefoot{display:none}
  .sidebar nav{grid-column:1/-1;display:flex;gap:6px;overflow-x:auto;padding:2px 0 5px}
  .sidebar nav a{flex:none;white-space:nowrap;min-height:44px;display:flex;align-items:center}
  .nav-ready .sidebar .menu-button{display:flex;align-items:center;gap:10px;min-height:44px;padding:9px 14px;border:1px solid #6b9ca3;border-radius:9px;background:#20525d;color:#fff;font:600 14px inherit;cursor:pointer}
  .nav-ready .sidebar nav{display:none}
  .nav-ready.nav-open .sidebar nav{display:grid;grid-template-columns:1fr;max-height:min(65vh,450px);overflow-y:auto;overflow-x:hidden}
  .nav-ready.nav-open .sidebar nav a{white-space:normal}
  .topbar{height:auto;min-height:94px;padding:16px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
  .topbar>div:first-child{min-width:0;flex:1 1 210px}
  .topbar h1{font-size:21px;overflow-wrap:anywhere}
  .topbar .headright{flex:1 1 180px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
  .topbar .headright span{overflow-wrap:anywhere;text-align:right}
  .content{padding:16px 14px 32px;width:100%}
  .sectionhead{display:flex;flex-wrap:wrap;align-items:flex-start}
  .sectionhead .button{max-width:100%}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card,.panel{padding:16px}
  .map-panel{padding:0}
  .map-panel iframe,.fullmap{height:min(65vh,480px)}
  .map-head{flex-wrap:wrap}
  .filters,.filter-panel.advanced .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detailgrid,.preview .detailgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two-cols,.v3-columns{grid-template-columns:1fr}
  .househead{grid-template-columns:1fr}
  .score{width:100%;min-width:0}
  .tablewrap{padding:0}
  .tablewrap table{font-size:13px}
  .tablewrap th,.tablewrap td{padding:11px 10px}
  .barrow{grid-template-columns:minmax(75px,105px) minmax(0,1fr) 40px;gap:7px}
  .login-card{padding:24px}
}
@media(max-width:480px){
  .sidebar .brand small{display:none}
  .topbar .headright{justify-content:space-between}
  .cards,.filters,.filter-panel.advanced .filters,.detailgrid,.preview .detailgrid{grid-template-columns:1fr}
  .card strong{font-size:26px}
  .sectionhead .button,.filter-panel .actions .button{width:100%;text-align:center}
  .filter-panel .actions{display:grid;gap:9px}
  .map-panel iframe,.fullmap{height:390px}
  .login-body{padding:12px}
  .login-card{padding:18px}
  .login-logo{height:110px}
  .login-logo img{height:134px}
}

/* Administration des comptes */
.user-error {border-left:4px solid #b42318;color:#922018}
.button.user-danger {background:#b42318;color:#fff}
#user-editor {scroll-margin-top:24px}
.panel form .filters {margin-bottom:18px}
.panel input[type="checkbox"] {width:22px;height:22px;align-self:flex-start}
