/* Socle commun aux pages du portail. Les aperçus du site municipal restent autonomes. */
:root{--bg:#f7f8f2;--card:#fffefb;--text:#203c39;--muted:#586b66;--line:#d8e1d6;--accent:#175c55;--accent-2:#537537;--ok:#38673e;--warn:#80591c;--err:#a33636;--radius:12px}
body{line-height:1.6}body[ data-section]{overflow-wrap:anywhere}body [hidden]{display:none!important}
a{text-underline-offset:3px}h1{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:650;letter-spacing:-.045em;line-height:1.16}h2{font-size:1.35rem;letter-spacing:-.025em;font-weight:650;margin-top:1.8rem}h3{font-size:1.04rem;font-weight:650}p.muted{line-height:1.75}
header.top{background:#fcfdf9;border-bottom:1px solid var(--line)}header.top .in{max-width:1320px;padding:1rem 1.5rem;gap:1rem}.brand{font-size:1.4rem;letter-spacing:-.04em;flex-shrink:0}.brand small{letter-spacing:0;font-size:.78rem;max-width:150px;line-height:1.4}.brand:before{content:'';display:block;flex-shrink:0;width:33px;height:38px;border-radius:11px 11px 11px 3px;background:linear-gradient(#fffefb,#fffefb) 11px 9px/4px 20px no-repeat,linear-gradient(#fffefb,#fffefb) 11px 25px/13px 4px no-repeat,#175c55;transform:rotate(-7deg)}
nav.main{gap:.25rem}nav.main a{font-size:.82rem;padding:.55rem .7rem;border-radius:6px}nav.main a.on,nav.main a:hover{background:#e5eddf;color:var(--accent)}.who{flex-wrap:wrap;font-size:.78rem;gap:.6rem}.who form{flex-shrink:0}.portal-menu{margin-left:auto}main{max-width:1320px;padding:2rem 1.5rem 3.5rem;min-width:0}main>.row:first-child{margin-bottom:.6rem;align-items:center}main>h1:first-child{margin-bottom:.8rem}main>.muted{max-width:900px;margin-bottom:1.5rem}.row>*{min-width:0}.grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:1.2rem;align-items:start}.grid>*{min-width:0}.card{padding:1.35rem 1.5rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 12px #203c3905}.card>:first-child{margin-top:0}.card>:last-child{margin-bottom:0}.card:focus-within{border-color:#9cb594}.hero{background:linear-gradient(110deg,#eef3e3,#fffefb);border-color:#d2dec8}.hero h1{max-width:900px}
.btn{border-radius:7px;font-size:.88rem;padding:.7rem 1rem;min-height:42px;font-weight:650;line-height:1.4;transition:background-color .18s,box-shadow .18s}.btn.sm{font-size:.77rem;min-height:34px;padding:.4rem .65rem}.btn.sec{border-color:#b2c4ac;background:#fffefb;color:#175c55}.btn.sec:hover{background:#edf3e7;border-color:#6f9364}.btn:hover{filter:none;box-shadow:0 4px 12px #203c3915}.btn.ok{background:var(--ok)}.btn.warn{background:var(--warn)}.btn.danger{background:var(--err)}button:disabled{cursor:not-allowed;opacity:.6}button{font:inherit}button:not(.btn){accent-color:var(--accent)}
label{font-size:.88rem;line-height:1.5;margin:1rem 0 .35rem;font-weight:650}input,select,textarea{border-color:#b9c9b5;border-radius:7px;padding:.7rem .8rem;background:#fff;font-size:.92rem;line-height:1.5;color:var(--text);max-width:100%}input:focus,textarea:focus,select:focus{border-color:#537f69}input[type=checkbox],input[type=radio]{width:auto;accent-color:#175c55;min-width:17px;min-height:17px;vertical-align:middle}input[type=color]{padding:.25rem;min-height:44px}input[type=file]{background:#f2f5ec;font-size:.8rem}input[type=file]::file-selector-button{border:1px solid #b9c9b5;border-radius:5px;background:#fffefb;color:#175c55;padding:.4rem .6rem;margin-right:.65rem;cursor:pointer}textarea{line-height:1.65;resize:vertical}.hint{font-size:.78rem;line-height:1.65}.row>label:has(input[type=radio]){border:1px solid var(--line);padding:.5rem .7rem;border-radius:7px;background:#fffefb;cursor:pointer}.row>label:has(input[type=radio]:checked){border-color:#6f9364;background:#eaf1df;color:#355f35}
.tbl{border-color:var(--line);background:#fffefb;max-width:100%;overscroll-behavior-x:contain}.tbl:focus-visible{outline-offset:3px}table{background:#fffefb;font-size:.85rem}th{font-size:.67rem;letter-spacing:.06em;background:#f0f4e9;color:#516a4c;padding:.85rem .8rem}td{padding:.8rem;border-color:#e6ecdf;line-height:1.6}tbody tr:hover{background:#f6f8ef}td .badge{font-size:.71rem}td .btn{white-space:normal}td a{overflow-wrap:anywhere}.tbl+*{margin-top:1rem}.kpi{gap:.35rem;position:relative}.kpi b{font-size:2rem;letter-spacing:-.04em;font-weight:600;line-height:1.2}.kpi span{font-size:.8rem}.card.kpi{border-top:3px solid #89a373}.bar{height:7px;background:#e3eadb;border-radius:8px}.bar i{background:linear-gradient(90deg,#175c55,#7f9b56);border-radius:8px}.chart i{background:#367667}.badge{font-size:.75rem;padding:.2rem .6rem;line-height:1.5}.badge.info{background:#e4efea;color:#235f51}.badge.work{background:#efebf5;color:#615077}.badge.ok{background:#e5efda;color:#3d6131}.badge.muted{background:#edf0e8;color:#596651}.badge.warn{background:#f7ecd8;color:#80591c}.badge.err{background:#f8e5e1;color:#913b32}.flash{border-radius:9px;font-size:.88rem;line-height:1.7}.flash.ok{background:#edf4e5;border-color:#c9dcbb;color:#3c6132}.flash.warn,#constat{background:#fcf4e7;border-color:#e5d2ad;color:#74511b}.flash.err{background:#faede9;border-color:#e6c2ba;color:#8c352f}
.sub{gap:.4rem;padding:0 0 1rem;margin-top:1.2rem;border-bottom:1px solid var(--line)}.sub a{font-size:.77rem;padding:.5rem .75rem;border-radius:6px;background:#fffefb}.sub a:hover{border-color:#88a77c;background:#eef3e5}.sub a.on{background:var(--accent);color:white;border-color:var(--accent)}details.card>summary{cursor:pointer;padding:.2rem 0;font-size:.9rem}details.card[open]>summary{border-bottom:1px solid var(--line);padding-bottom:.8rem;margin-bottom:1rem}summary::marker{color:#63854d}.msg{background:#fffefb;border:1px solid var(--line);border-left:3px solid #8ca77a;border-radius:2px 9px 9px 2px;padding:.9rem 1rem;font-size:.88rem}.msg .m{font-size:.72rem;margin-bottom:.5rem}.pj img{border-color:var(--line);border-radius:8px}.steps{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.steps div{border-color:var(--line);background:#fffefb}.steps div:before{margin-right:.5rem;background:#587b40}.storyboard{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr))}code{background:#edf1e6;color:#45603e}pre{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:1rem;background:#f0f4e9;color:#203c39}footer{border-top:1px solid var(--line);background:#f0f3e9;padding:1.5rem;font-size:.74rem}.skip{z-index:100}.skip:focus{left:10px;top:10px}:focus-visible{outline:3px solid #a46b1e;outline-offset:3px}
body[data-section=acces] main{max-width:900px;padding-top:3rem}body[data-section=acces] main>.card{padding:2rem!important;border-top:4px solid #78965d;background:linear-gradient(160deg,#fffefb 70%,#eef3e2);box-shadow:0 14px 36px #203c3910}body[data-section=acces] h1{font-size:2.1rem}body[data-section=acces] form>.mt>.btn{width:100%;margin-top:.3rem}body[data-section=depot] main{max-width:1000px}body[data-section=depot] main>.card{border-top:3px solid #7e995f}body[data-section=depot] form>label{margin-top:1.5rem}body[data-section=depot] form>.mt{border-top:1px solid var(--line);padding-top:1.2rem}body[data-section=recueil] main>.card{border-radius:10px}body[data-section=recueil] main>.card>.row>h2{font-size:1.2rem}body[data-section=journal] main{max-width:1000px}body[data-section=journal] main>.card{border-left:3px solid #7d9a5d;padding:1.5rem 1.7rem}body[data-section=journal] main>.card h2{font-family:Georgia,serif;font-size:1.6rem;font-weight:400}body[data-section=administration] main>.sub{background:#edf2e5;padding:.8rem;border:1px solid var(--line);border-radius:9px}body[data-section=administration] main>h1{font-size:2rem}
@media(max-width:900px){header.top .in{gap:.8rem}#portal-navigation{order:3;width:100%;margin-left:0;padding-top:.7rem;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}#portal-navigation a{padding:.65rem .8rem}.who{width:100%;order:4}.grid{gap:1rem}}
@media(max-width:600px){main{padding:1.5rem 1rem 2.5rem}header.top .in{padding:1rem}.brand small{max-width:135px}.brand:before{width:28px;height:34px;background-position:9px 7px,9px 23px,0 0}.card{padding:1.1rem}.sub a{font-size:.73rem}.row{gap:.7rem}h1{font-size:1.9rem}h2{font-size:1.2rem}.kpi b{font-size:1.7rem}th,td{padding:.65rem}.tbl table{min-width:520px}.tbl{overflow-x:auto}.tbl:before{content:'Tableau défilant horizontalement';display:block;padding:.45rem .7rem;color:#586b66;font-size:.65rem;background:#f0f4e9}body[data-section=acces] main{padding:1.5rem 1rem}body[data-section=acces] main>.card{padding:1.5rem!important;margin:1rem auto!important}body[data-section=journal] main>.card{padding:1.2rem}input,select,textarea{font-size:16px}input[type=file]{font-size:.78rem}.who .muted{font-size:.72rem}.who .btn{min-height:34px}.annot-ov{background:#eef3e8}.annot-bar{color:#203c39}.step{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.btn{transition:none}.bar i{transition:none}}
@media print{main{max-width:none;padding:0}body{background:white}.card{box-shadow:none}.tbl{overflow:visible}.tbl:before{display:none}.tbl table{min-width:0}.sub,.portal-menu{display:none!important}body[data-section=acces] main>.card{box-shadow:none!important}}
@media(max-width:600px){.tbl td{min-width:100px}.tbl th{white-space:nowrap}}

/* Le dossier reçu et les échanges DSI prolongent la même interface. */
.project-bar{background:#edf3e7;border-color:var(--accent);border-radius:9px;padding:1rem 1.2rem}.project-bar span,.kit-file small{color:var(--muted)}.project-bar>a:first-child{font-weight:700}.kit-nav a{background:var(--card);border-color:var(--line);border-radius:7px;color:var(--accent)}.kit-nav a:hover{background:#e5eddf}.kit-file,.kit-received,.kit-edit{border-color:var(--line)}.kit-file{background:#f8faf3}.kit-edit summary{color:var(--accent)}.source-note{background:#eef3e7;border-color:#7d9a5d}.project-step{transition:border-color .18s,box-shadow .18s}.project-step:hover{border-color:#7d9a5d;box-shadow:0 6px 18px #203c3910}.project-step b{color:var(--accent)}.ref-project{max-width:1160px}.ref-project>h1{max-width:900px}.kit-section h2{letter-spacing:-.025em}.desk>.card{margin-bottom:1.5rem;border-left:3px solid #7d9a5d}.desk>.card h2{font-size:1.25rem}
@media(prefers-reduced-motion:reduce){.project-step{transition:none}}

/* Le projet est la navigation principale ; les outils restent accessibles. */
.portal-tools{position:relative;font-size:.82rem}.portal-tools>summary{cursor:pointer;padding:.55rem .7rem;border-radius:6px;color:#175c55}.portal-tools[open]>summary{background:#e5eddf}.portal-tools-links{position:absolute;z-index:50;right:0;top:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:420px;max-width:calc(100vw - 3rem);padding:.7rem;gap:.2rem;border:1px solid #d8e1d6;border-radius:10px;background:#fcfdf9;box-shadow:0 10px 30px #203c3922}.portal-tools-links a{display:block}.portal-tools>summary:focus-visible{outline:3px solid #a46b1e;outline-offset:2px}@media(max-width:900px){.portal-tools{grid-column:1/-1}.portal-tools-links{position:static;box-shadow:none;width:100%;max-width:100%}}@media print{.portal-tools{display:none}}

/* Références accessibles à la demande, navigation centrée sur les usages. */
.project-context{margin:0 0 1.25rem;border:1px solid var(--line);border-radius:8px;background:#f4f7ef}.project-context>summary{cursor:pointer;padding:.75rem 1rem;min-height:44px;font-size:.84rem;font-weight:650}.project-context>summary span{font-size:.76rem;font-weight:400}.project-context .project-bar{margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.observer-note{padding:.55rem .8rem;border-left:3px solid #6f9364;background:#eef3e7;font-size:.8rem;margin-bottom:1rem}
@media(max-width:600px){.project-context>summary span{display:block;margin-left:1rem}.portal-tools-links a{min-height:44px}.who{gap:.55rem}.who>.muted{max-width:100%;overflow-wrap:anywhere}}
