:root{--navy:#102a40;--navy2:#173954;--ink:#182c3b;--muted:#6c7e89;--teal:#1b8399;--aqua:#dff3f6;--blue:#327abe;--border:#dce4e9;--white:#fff;--bg:#f3f6f8;--soft:#edf3f6;--shadow:0 10px 28px rgba(26,54,74,.06);--rad:18px;--red:#d14c4c;--orange:#d38b2e;--green:#27765b}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);scroll-behavior:smooth}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%}h1,h2,h3,h4,p{margin:0}h1{font-size:clamp(1.65rem,3vw,2.35rem);letter-spacing:-.04em;line-height:1.14}h2{font-size:1.15rem;letter-spacing:-.025em}h3{font-size:1rem}p{line-height:1.55}.app-shell{min-height:100vh;display:grid;grid-template-columns:255px minmax(0,1fr)}.sidebar{height:100vh;position:sticky;top:0;background:var(--navy);padding:28px 17px;color:#fff;display:flex;flex-direction:column;gap:11px}.brand{display:flex;gap:10px;align-items:center;padding:0 10px 22px}.brand strong{font-size:1.3rem;letter-spacing:-.04em}.brand small,.residence small{display:block;color:#a9c2cf;font-size:.68rem;margin-top:2px}.brand-symbol{height:38px;width:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#216c81;color:#c8f1f6;font-weight:900;font-size:2rem;line-height:1}.side-label{font-size:.64rem;letter-spacing:.14em;color:#8faabb;font-weight:800;margin:15px 12px 4px}.residence{background:#204159;border:1px solid #305269;border-radius:12px;display:flex;align-items:center;gap:10px;padding:12px 10px;font-size:.87rem}.residence-mark{border-radius:9px;background:#31647b;color:#d2f5fb;width:34px;height:34px;display:grid;place-items:center;font-weight:800}.side-nav{display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:12px;border-radius:11px;padding:12px 12px;font-size:.85rem;color:#b7cbd7;border:0;background:transparent;text-align:left;width:100%}.nav-link svg{width:18px;height:18px;flex:none}.nav-link:hover{background:#204359;color:#fff}.nav-link.active{background:#285167;color:#fff;font-weight:700}.side-footer{margin-top:auto;border-top:1px solid #2c4960;padding:18px 10px 0;font-size:.76rem;color:#d4e2e8}.status-dot{display:inline-block;width:8px;height:8px;border-radius:100%;background:#6dddac;margin-right:5px}.side-footnote{display:block;color:#91acb9;font-size:.68rem;margin-top:7px}.right-pane{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,54px);gap:16px}.breadcrumb{font-size:.77rem;color:#8596a2;letter-spacing:.035em}.breadcrumb strong{color:#334d5e;font-weight:650;letter-spacing:0}.crumbsep{margin:0 11px;color:#c1cbd2}.mode-pill{border-radius:99px;background:#e9f5f5;color:#317587;font-size:.67rem;letter-spacing:.06em;font-weight:800;padding:8px 11px}.mobile-logo{display:none}.main-content{max-width:1360px;margin:auto;padding:38px clamp(22px,4vw,54px) 65px}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:25px}.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:10px}.subtitle{color:var(--muted);margin-top:10px;max-width:780px;font-size:.94rem}.layout-2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:20px}.layout-even{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:24px 0}.stat{background:#fff;border:1px solid var(--border);padding:20px 21px;border-radius:15px;box-shadow:var(--shadow)}.stat .stat-label{color:var(--muted);font-size:.76rem;font-weight:600}.stat .stat-number{font-size:2rem;font-weight:780;letter-spacing:-.055em;margin:7px 0 1px}.stat .stat-foot{font-size:.72rem;color:#8ba0a9}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--rad);box-shadow:var(--shadow);overflow:hidden}.panel-inner{padding:24px}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px}.hero{background:linear-gradient(115deg,#102b42,#1e5067);color:#fff;border-radius:20px;padding:clamp(25px,4vw,40px);display:flex;justify-content:space-between;gap:22px;overflow:hidden;position:relative}.hero:after{content:"";width:260px;height:260px;position:absolute;right:-80px;top:-85px;border:44px solid #ffffff0c;border-radius:50%;pointer-events:none}.hero h1{max-width:550px}.hero p{color:#c4dee7;max-width:550px;font-size:.9rem;margin:12px 0 23px}.hero-copy{z-index:1}.hero-mark{font-size:8rem;line-height:1;opacity:.3;transform:rotate(-18deg);z-index:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:11px;padding:11px 17px;font-weight:700;font-size:.85rem;min-height:43px;transition:.1s}.btn svg{height:16px;width:16px}.btn-primary{background:#177e98;color:#fff}.btn-primary:hover{background:#116e88}.btn-white{background:#fff;color:#194b5f}.btn-secondary{background:#f0f5f7;color:#284c5e;border-color:#dfebee}.btn-secondary:hover{background:#e5eff2}.btn-outline{background:#fff;border-color:var(--border);color:#2d4d60}.btn-danger{background:#fff1f0;color:#aa2929;border-color:#f2c5bf}.btn:disabled{opacity:.5;cursor:not-allowed}.text-button{background:none;border:0;color:var(--teal);font-weight:750;font-size:.83rem;padding:3px}.row{display:flex;align-items:center;gap:12px}.space-between{justify-content:space-between}.wrap{flex-wrap:wrap}.list-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-top:1px solid #eaf0f3}.list-item:first-child{border-top:0}.list-item strong{display:block;font-size:.88rem}.list-item small{color:var(--muted);display:block;margin-top:6px;font-size:.76rem}.record-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;font-weight:900;flex-shrink:0;font-size:.69rem}.record-icon.EF{background:#e7f2ff;color:#236cba}.record-icon.ECS{background:#fff0ef;color:#be4545}.record-icon.RET{background:#fff4e4;color:#ac6b24}.tag{font-size:.69rem;font-weight:800;white-space:normal;display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:6px 9px}.tag.warning{background:#fff4df;color:#8d651e}.tag.success{background:#e7f5ec;color:#29754d}.tag.muted{background:#eef2f4;color:#6b7d88}.tag.info{background:#e5f3fb;color:#30698c}.tag.error{background:#fff0ed;color:#ad4e41}.soft-note{border:1px solid #d8e9ef;background:#eff8fa;border-radius:12px;padding:15px 17px;color:#315969;font-size:.81rem;line-height:1.55}.soft-note.warning{border-color:#f0dfb7;background:#fffaf0;color:#76561e}.soft-note.danger{border-color:#f1caca;background:#fff6f4;color:#984c46}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-row{display:flex;flex-direction:column;gap:7px}.form-row label,.field-title{font-size:.77rem;color:#496172;font-weight:750}.input,.select,.textarea{background:#fff;width:100%;border:1px solid #d6e1e7;border-radius:10px;padding:11px 12px;min-height:44px;color:#223a4b;outline:0}.textarea{min-height:95px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:#5eafc0;box-shadow:0 0 0 3px #e7f6f8}.span2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}.mini-hint{font-size:.73rem;color:var(--muted);line-height:1.5}.lookup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.result-card{border:1px solid #e1e8ed;border-radius:15px;padding:20px;background:#fff;margin-top:14px}.result-title{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.result-title h3{font-size:1.05rem}.result-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:17px}.datum{padding:12px 14px;border-radius:10px;background:#f5f8fa}.datum dt{font-size:.69rem;text-transform:uppercase;letter-spacing:.06em;color:#708894;font-weight:750;margin:0 0 5px}.datum dd{margin:0;font-size:.88rem;font-weight:650}.result-warning{margin-top:14px}.empty{padding:32px;text-align:center;color:#718591;border:1px dashed #cbd9df;background:#fafcfd;border-radius:13px}.empty h3{color:#244b60;margin-bottom:7px}.section-spacer{height:18px}.notice-stack{display:grid;gap:10px}.notice{display:flex;gap:11px;align-items:flex-start;padding:14px;border-radius:12px;background:#f2f7f9;border:1px solid #e2ebef;font-size:.83rem}.notice .number{width:27px;height:27px;background:#d7edf2;border-radius:9px;display:grid;place-items:center;color:#246c80;font-size:.79rem;font-weight:800;flex:none}.notice strong{display:block;margin-bottom:4px}.notice small{display:block;color:var(--muted);line-height:1.45;font-size:.75rem}.records-list{display:grid;gap:12px}.record-card{border:1px solid var(--border);border-radius:14px;background:#fff;padding:19px;display:flex;justify-content:space-between;gap:18px;align-items:center}.record-card-main{min-width:0}.record-card h3{font-size:.98rem;margin:8px 0}.record-card p{font-size:.78rem;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;border:1px solid #dae5e9;background:#f5f8fa;font-size:.69rem;border-radius:8px;padding:5px 7px;color:#5b7180;font-weight:650}.record-actions{display:flex;gap:9px;flex-wrap:wrap}.relation{display:flex;gap:12px;align-items:center;justify-content:center;padding:25px 5px;flex-wrap:wrap}.rel-building{background:#fff;border:1px solid #d8e5ea;border-radius:16px;padding:22px;min-width:210px;flex:1;max-width:370px}.rel-building .building-title{font-size:1.08rem;font-weight:800}.rel-building .building-sub{color:var(--muted);font-size:.79rem;margin-top:7px}.rel-arrow{font-size:2rem;color:#2e98aa}.rel-circuits{display:flex;gap:5px;margin-top:13px}.circuit-badge{border-radius:7px;padding:7px 9px;font-size:.7rem;font-weight:800}.circuit-badge.EF{color:#2165b3;background:#e5f0ff}.circuit-badge.ECS{color:#b34342;background:#ffeded}.circuit-badge.RET{color:#aa6c25;background:#fff1dc}.map-frame{background:#e9eff2;border-radius:13px;border:1px solid #d5e1e7;overflow:auto;max-height:565px;text-align:center}.map-frame img{display:block;max-width:none;width:100%;height:auto;min-width:600px;transition:width .15s}.map-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px;flex-wrap:wrap}.map-controls button{width:38px;height:38px;border:1px solid #dbe7eb;background:#fff;border-radius:10px;font-weight:800;font-size:1.25rem}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.photo-card{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:#fff}.photo-card img{height:188px;width:100%;object-fit:cover;background:#edf3f5}.photo-card .photo-info{padding:14px}.photo-card .photo-info strong{font-size:.85rem}.photo-card .photo-info p{color:var(--muted);font-size:.74rem;margin-top:6px}.photo-card .photo-info .tag{margin-top:9px}.photo-preview{max-width:100%;width:240px;border:1px solid var(--border);border-radius:10px;max-height:200px;object-fit:contain}.photo-placeholder{border:1px dashed #cbd9df;border-radius:12px;padding:20px;text-align:center;color:#76909d;font-size:.79rem}.timeline{border-left:2px solid #deebee;padding-left:19px;display:grid;gap:18px;margin:9px}.timeline-item{position:relative}.timeline-item:before{content:"";position:absolute;left:-26px;top:5px;background:#5ca6b6;width:12px;height:12px;border:3px solid #e7f4f6;border-radius:50%}.timeline-item strong{font-size:.87rem}.timeline-item small{display:block;color:var(--muted);margin:5px 0}.timeline-item p{font-size:.81rem}.data-action{border:1px solid #e0e9ed;border-radius:13px;padding:19px;display:flex;gap:15px;justify-content:space-between;align-items:center;margin-top:12px}.data-action h3{font-size:.91rem}.data-action p{font-size:.77rem;color:var(--muted);margin-top:7px;max-width:420px}.footer-notice{font-size:.74rem;color:#8da1aa;text-align:center;margin-top:38px}.divider{height:1px;background:#e5edf1;margin:22px 0}.modal-backdrop{position:fixed;inset:0;background:#071d2ac4;display:flex;align-items:center;justify-content:center;z-index:30;padding:18px}.modal-backdrop[hidden]{display:none}.modal-panel{background:#fff;border-radius:18px;padding:22px;max-width:770px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 15px 65px #0005}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}.icon-button{height:32px;width:32px;border:0;background:#eff5f7;border-radius:8px;font-size:1.25rem}.toast{position:fixed;bottom:23px;right:23px;background:#183b4e;color:#fff;box-shadow:0 14px 32px #0002;padding:12px 18px;border-radius:10px;font-size:.82rem;z-index:50;max-width:330px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}.mobile-nav{display:none}.table-list{width:100%;border-collapse:collapse}.table-list td{padding:10px;border-bottom:1px solid #e7edf0;vertical-align:top;font-size:.83rem}.table-list td:first-child{font-weight:700;color:#718590;width:38%}.small-gap{display:grid;gap:8px}.top-actions{display:flex;gap:10px;flex-wrap:wrap}.field-check{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#f4f8fa;border-radius:11px;font-size:.79rem;line-height:1.45}.field-check input{margin-top:3px}.hidden{display:none!important}@media(max-width:1100px){.app-shell{grid-template-columns:215px minmax(0,1fr)}.sidebar{padding:23px 12px}.main-content{padding:30px 26px 70px}.layout-2{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:750px){.app-shell{display:block}.sidebar{display:none}.topbar{height:63px;padding:0 18px}.mobile-logo{display:flex;align-items:center;gap:9px;font-size:.96rem}.mobile-logo .brand-symbol{width:30px;height:30px;border-radius:9px;font-size:1.5rem}.breadcrumb{display:none}.mode-pill{font-size:.61rem;padding:7px 9px}.main-content{padding:25px 16px 110px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;align-items:stretch;justify-content:space-around;background:#fff;border-top:1px solid #e0e8ee;padding:6px 4px max(7px,env(safe-area-inset-bottom));box-shadow:0 -5px 30px #0a263012}.mobile-nav .nav-link{display:flex;flex-direction:column;gap:3px;color:#7a929c;font-size:.62rem;padding:6px 3px;border-radius:8px;min-width:0;flex:1;white-space:nowrap;align-items:center}.mobile-nav .nav-link svg{height:19px;width:19px}.mobile-nav .nav-link.active{background:#e7f4f6;color:#147b91}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat{padding:16px}.stat .stat-number{font-size:1.6rem}.stat .stat-label{font-size:.7rem}.hero-mark{display:none}.hero{padding:26px}.hero h1{font-size:1.8rem}.layout-even,.lookup-grid,.form-grid,.result-body{grid-template-columns:1fr}.span2{grid-column:span 1}.section-heading{flex-wrap:wrap}.panel-inner{padding:18px}.photo-grid{grid-template-columns:1fr}.photo-card img{height:210px}.record-card{flex-direction:column;align-items:flex-start}.relation{flex-direction:column}.rel-building{width:100%;max-width:none}.rel-arrow{transform:rotate(90deg)}.map-frame img{min-width:550px}.data-action{align-items:flex-start;flex-direction:column}.toast{right:15px;left:15px;bottom:91px;max-width:none}.modal-panel{padding:18px}.row.mobile-wrap{flex-wrap:wrap}}@media(min-width:750px){.hero{min-height:230px}}
/* AquaGest v0.2 — localisation et itinéraire */
.photo-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:14px}
.photo-zone{border:1px dashed #bfd2db;background:#f7fafb;padding:17px;border-radius:13px;min-width:0}
.photo-zone h3{font-size:.9rem;margin:0 0 9px;color:#173954}
.photo-zone .mini-hint{display:block;margin-top:8px;line-height:1.55}
.photo-preview-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:13px}
.photo-preview-grid .photo-preview{width:150px;height:120px;object-fit:cover}
.photo-item{display:flex;flex-direction:column;gap:6px;max-width:150px}
.photo-item label{font-size:.72rem;color:#687e89}
.photo-item input{vertical-align:middle}
.photo-empty{padding:18px 12px;border:1px dashed #c3d2d9;border-radius:12px;color:#75909b;font-size:.8rem;line-height:1.5;background:#f8fbfc}
.directions-box{border:1px solid #cbe3e8;border-radius:13px;background:#f0f8fa;padding:17px;margin:13px 0;white-space:pre-wrap;line-height:1.55;font-size:.88rem}
.directions-box strong{display:block;color:#1f6171;margin-bottom:6px}
.section-kicker{font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:#397d8b;font-weight:800;margin-bottom:10px}
.photo-head{font-size:.83rem;font-weight:800;margin:15px 0 8px;color:#183d52}
.tag.muted{background:#eff3f5}
@media(max-width:750px){.photo-columns{grid-template-columns:1fr}.photo-preview-grid .photo-preview{width:142px;height:108px}}
