*{box-sizing:border-box}body{margin:0;font:14px/1.6 "Segoe UI",sans-serif;color:#182b49;background:#f7f9fc}a{color:#2146ad;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:7px;background:#2146ad;color:white;padding:10px 16px;font-weight:600}button:disabled{opacity:.55;cursor:wait}button.secondary{background:white;color:#2146ad;border:1px solid #d9e2f2}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #cbd5e5;border-radius:7px;background:white;color:#182b49}label{display:block;font-size:13px;font-weight:600;margin-bottom:16px}label input,label select,label textarea{display:block;margin-top:6px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #2146ad;outline-offset:3px}[hidden]{display:none!important}.login{max-width:450px;margin:10vh auto;padding:32px;background:white;border:1px solid #e0e6ef;border-radius:14px}.brand{font-size:25px;font-weight:700;letter-spacing:-.6px;color:#183565}.brand small{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#71809a;font-weight:500}.login h1{font-size:24px;margin-top:35px}.login p{color:#68758b}.login button{width:100%}.login details{font-size:12px;margin-top:28px}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:white;border-right:1px solid #e0e6ef;padding:30px 22px;display:flex;flex-direction:column}.sidebar nav{display:grid;gap:7px;margin-top:44px}.sidebar nav a{padding:10px 12px;color:#53617b;border-radius:6px}.sidebar nav a[aria-current=page]{background:#edf2ff;color:#2146ad;font-weight:600}.sidebar-bottom{margin-top:auto;display:grid;gap:12px;font-size:12px}main{margin-left:238px;padding:0 38px 50px;max-width:1700px}header{height:77px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e0e6ef;color:#71809a;font-size:12px}.local{border:1px solid #dce3ef;padding:3px 10px;border-radius:20px}h1{font-size:29px;letter-spacing:-.7px;margin:30px 0 4px}h2{font-size:18px;margin:0 0 18px}h3{font-size:15px}.intro{color:#68758b;margin-bottom:27px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.stat,.panel{background:white;border:1px solid #e0e6ef;border-radius:10px;padding:22px}.stat strong{display:block;font-size:30px;font-weight:600;color:#2146ad}.stat span{font-size:12px;color:#68758b}.panel{margin:20px 0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{font-size:11px;font-weight:600;text-transform:uppercase;color:#71809a;letter-spacing:.4px}th,td{padding:13px 12px;border-bottom:1px solid #edf0f6}td{vertical-align:top}tr:last-child td{border:0}.badge{display:inline-block;padding:3px 9px;border-radius:5px;background:#edf2ff;color:#264da4;white-space:nowrap;font-size:11px}.badge.error,.badge.failed,.badge.interrupted{background:#fff0ef;color:#a33f3f}.badge.partial,.badge.pending,.badge.reviewing{background:#fff6df;color:#896014}.badge.success,.badge.corrected{background:#eaf6f1;color:#237459}.muted{color:#71809a;font-size:12px}.actions{display:flex;gap:8px;align-items:center}.actions button{font-size:12px;padding:6px 10px}.job-form{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end}.job-form label{margin:0}.search{max-width:400px;margin:20px 0}.empty{padding:35px;text-align:center;color:#71809a}.report{border-top:1px solid #e0e6ef;padding:22px 0}.report:first-child{border:0}.report p{white-space:pre-wrap;overflow-wrap:anywhere}.report form{display:grid;grid-template-columns:170px 1fr auto;gap:14px;align-items:end}.report label{margin:0}#status{color:#2146ad;margin:14px 0}#login-error{color:#a33f3f}.split{display:grid;grid-template-columns:2fr 1fr;gap:20px}.split .panel{min-width:0}details{margin:12px 0}summary{cursor:pointer}code{overflow-wrap:anywhere}.row-button{background:transparent;color:#2146ad;padding:0;text-align:left}.warning{background:#fff6df;border-radius:8px;padding:13px 17px;color:#765419}.back{display:inline-block;margin-top:22px}@media(max-width:900px){.sidebar{position:static;width:100%;padding:18px}.sidebar nav{margin-top:18px;display:flex;flex-wrap:wrap}.sidebar-bottom{display:flex;align-items:center;flex-wrap:wrap;margin-top:14px}main{margin:0;padding:0 18px 30px}.stats{grid-template-columns:repeat(2,1fr)}.split{display:block}.job-form,.report form{grid-template-columns:1fr}.login{margin:5vh 16px}.panel{padding:16px}}
.sidebar{overflow-y:auto}.sidebar nav{margin-top:25px}.sidebar-bottom{padding-top:20px}.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:20px 0}.filters label{margin:0;min-width:135px;flex:1}.filters>a{padding:10px}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;color:#71809a;font-size:12px}.page-button{display:inline-block;padding:7px 12px;border:1px solid #d9e2f2;border-radius:6px;background:white}.inline-form{display:flex;gap:15px;align-items:end}.inline-form label{margin:0;max-width:330px}.job-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.badge.old{background:#fff6df;color:#896014}.badge.cancelled,.badge.missing,.badge.empty{background:#f1f3f7;color:#65738b;padding:3px 9px}.account{border-bottom:1px solid #edf0f6;padding:12px 0}.account summary{padding:8px 0}.account form{margin-top:20px}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:500px}td details p{max-width:400px;overflow-wrap:anywhere}.actions{flex-wrap:wrap}#content{min-height:60vh}@media(max-width:900px){.inline-form{display:block}.inline-form button{margin-top:14px}.sidebar nav{gap:3px}.sidebar nav a{padding:7px}.pagination{flex-wrap:wrap}.filters label{min-width:140px}}

.import-mark{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;font-size:21px;font-weight:700;border-radius:50%}.import-yes{color:#18734a}.import-no{color:#c33f45}.import-mark.import-yes{background:#eaf6ef}.import-mark.import-no{background:#fff0f0}.catalog-key{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin:0 0 16px}.catalog-key .muted{margin-left:8px}.catalog-status{width:45px}.catalog-actions{text-align:right;white-space:nowrap;width:108px}.icon-button{padding:8px;background:transparent;color:#315699;border:1px solid #dce4f2;margin-left:6px;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover:not(:disabled){background:#edf2ff}.icon-button:disabled{cursor:default}.disclosure svg{transition:transform .15s}.disclosure[aria-expanded=true] svg{transform:rotate(90deg)}.coverage-row>td{padding:0 14px 18px;background:#f7f9fd}.coverage-content{padding:18px 12px}.coverage-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.coverage-content table{font-size:12px}.coverage-link{display:inline-block;margin-top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#catalog-table .catalog-row:hover{background:#fafbfe}@media(max-width:900px){#catalog-table{min-width:620px}.coverage-heading{align-items:start}.catalog-key .muted{margin-left:0}}

.coverage-reason{font-size:11px;max-width:260px;margin:5px 0}.coverage-reason p{white-space:normal}.coverage-content td:last-child{white-space:nowrap}

.website-reference{margin:0 0 24px;padding:16px;border-left:3px solid #bcccf6;overflow-wrap:anywhere}.website-reference>div{margin-top:6px}.website-reference small{display:block;margin-top:8px;color:#657391}

.discovery-panel{margin-bottom:24px;padding:16px;background:#fff;border:1px solid #dce4f5;border-radius:8px;overflow-wrap:anywhere}.discovery-links{padding-left:20px;max-height:420px;overflow:auto}.discovery-links li{padding:8px 0}.discovery-links small{color:#657391}.discovery-panel summary{cursor:pointer}

.document-filters{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.document-filters input{flex:1;min-width:180px}.structured-documents{margin:16px 0}.structured-documents td{vertical-align:top}.structured-documents td:first-child{min-width:230px;max-width:430px}.structured-documents td p{max-width:280px}.structured-documents [hidden]{display:none!important}

.structured-documents .document-filters{display:grid;grid-template-columns:minmax(180px,1fr) 210px 180px}.structured-documents table{table-layout:fixed;min-width:680px;width:100%}.structured-documents td{white-space:normal!important;overflow-wrap:anywhere}.structured-documents th:first-child{width:38%}.structured-documents th:nth-child(2){width:20%}.structured-documents th:nth-child(3){width:16%}.structured-documents th:last-child{width:26%}@media(max-width:700px){.structured-documents .document-filters{grid-template-columns:1fr}}

.website-choice{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:14px 0}.website-choice label{flex:1;min-width:180px}.website-choice select{width:100%;margin-top:6px}

.bulk-import{padding:16px 0 22px}.bulk-import p{margin:10px 0 0}.bulk-import button{white-space:normal}

.queue-panel{border-left:3px solid #2247bd}.queue-heading,.queue-counts,.queue-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.queue-heading{justify-content:space-between}.queue-heading h2{margin-bottom:5px}.queue-counts{margin:18px 0}.queue-counts strong{font-size:22px;color:#2247bd}.queue-running{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-bottom:18px}.queue-running a{display:flex;flex-direction:column;gap:6px;padding:14px;background:#f5f7fd;border-radius:7px;text-decoration:none}.queue-running span{font-size:12px}.queue-actions label{display:flex;gap:10px;align-items:center}.queue-actions select{width:auto}.queue-panel>.muted{margin-bottom:0}@media(max-width:600px){.queue-counts,.queue-actions{gap:12px}.queue-actions{align-items:stretch;flex-direction:column}.queue-running{grid-template-columns:1fr}}

/* Administration, identité CommuneRepère */
@font-face{font-family:Manrope;src:url('/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-600.ttf') format('truetype');font-weight:600 800;font-display:swap}
body{font-family:Manrope,"Segoe UI",sans-serif;background:#f6f8fd;color:#10284c}
.sidebar{width:260px;padding:28px 18px 16px;background:linear-gradient(180deg,#fff 65%,#f8faff);border-right:1px solid #e1e8f6;scrollbar-width:thin;scrollbar-color:#cbd6ed transparent}
.sidebar-brand{padding:0 14px 24px;border-bottom:1px solid #edf1f8}
.sidebar .brand{display:block;line-height:1.2}
.sidebar .brand img{display:block;width:188px;height:auto;max-width:100%}
.sidebar .brand small{margin:10px 0 0 2px;font-size:10px;letter-spacing:1.6px;color:#7a89a6}
.sidebar nav{display:grid;gap:24px;margin:26px 0}
.nav-group{display:grid;gap:5px}
.nav-label{font-size:10px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:#8491a8;margin:0 14px 6px}
.sidebar nav a{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:11px 14px;font-size:12px;font-weight:600;border-radius:9px;color:#536580;transition:background .15s,color .15s}
.sidebar nav a svg{flex-shrink:0;color:#7b8ca9}
.sidebar nav a:hover{background:#f1f5fc;color:#163eaf}
.sidebar nav a[aria-current=page]{background:#eaf0ff;color:#1943b6}
.sidebar nav a[aria-current=page] svg{color:#1943b6}
.sidebar nav a[aria-current=page]:before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:4px;background:#224abd}
.sidebar-bottom{display:block;padding-top:16px;border-top:1px solid #e5ebf6}
.public-site{display:flex;align-items:center;gap:10px;padding:8px 13px 17px;font-size:12px;font-weight:600}
.public-site svg{width:17px;height:17px}
.profile{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e3e9f5;border-radius:12px;padding:11px 9px}
.profile-avatar{display:flex;align-items:center;justify-content:center;width:35px;height:35px;flex-shrink:0;background:#edf2ff;color:#2146ad;font-size:15px;font-weight:600;border-radius:10px}
#identity{min-width:0;flex:1}
#identity strong,#identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#identity strong{font-size:12px;color:#162f54}
#identity small{font-size:10px;color:#7c8ca5;margin-top:2px}
.logout-button{display:flex;align-items:center;justify-content:center;background:transparent;color:#71809c;padding:8px;border-radius:8px}
.logout-button:hover{background:#eef3fd;color:#1c43ac}
.private-note{margin:11px 0 0;text-align:center;color:#95a0b4;font-size:9px;letter-spacing:.6px}
.menu-toggle{display:none}
main{margin-left:260px}
main>header{color:#687e9f;font-size:11px}
.local{background:#fff;border-color:#e0e7f5}
.panel,.stat{border-color:#e0e7f4;border-radius:13px;box-shadow:0 3px 14px #183a7910}
h1{color:#102b51}
@media(max-width:900px){
.sidebar{position:fixed;inset:0 0 auto;width:100%;height:78px;padding:12px 18px;z-index:20;overflow:visible;background:#fff;box-shadow:0 3px 16px #163d7610}
.sidebar-brand{display:flex;align-items:center;justify-content:space-between;padding:0;border:0}
.sidebar .brand img{width:145px}.sidebar .brand small{font-size:8px;margin-top:3px}
.menu-toggle{display:flex;background:transparent;color:#334155;padding:10px}
.menu-cross{display:none}.admin-menu-open .menu-bars{display:none}.admin-menu-open .menu-cross{display:block}
.sidebar nav,.sidebar-bottom{display:none}
main{margin-left:0;padding-top:78px}
body.admin-menu-open{overflow:hidden}
.admin-menu-open .sidebar{height:100dvh;overflow-y:auto;display:flex}
.admin-menu-open .sidebar nav{display:grid;gap:20px;margin:24px 0}
.admin-menu-open .sidebar-bottom{display:block;margin-top:auto}
.sidebar nav a{padding:10px 14px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.sidebar nav a{transition:none}}

.pagination{border-top:1px solid #edf1f8;padding-top:20px;margin-top:18px;gap:18px}
.pagination-info{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:#8190a8}
.pagination-info strong{font-weight:600;color:#425778}
.pagination-nav{display:flex;align-items:center;gap:5px}
.pagination .page-button,.pagination .page-gap{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border-radius:9px;font-size:12px;font-weight:600}
.pagination .page-button{border:1px solid transparent;color:#536580;background:transparent;transition:background .15s,color .15s}
.pagination .page-button:hover{background:#edf2ff;color:#1943b6}
.pagination .page-button[aria-current=page]{background:#2146b5;color:white;box-shadow:0 3px 8px #2146b521}
.pagination .page-arrow{border-color:#e1e7f3;background:white}
.pagination .page-button[aria-disabled=true]{color:#c3ccdb;background:#fafbfe;border-color:#edf1f7}
.pagination .page-gap{min-width:20px;padding:0 3px;color:#8492ab}
@media(max-width:600px){.pagination{flex-direction:column;align-items:center;gap:14px}.pagination-nav{gap:3px}.pagination .page-button{min-width:31px;height:34px;padding:0 5px;font-size:11px}.pagination .page-gap{min-width:16px}.pagination-info{font-size:11px}}

#status{min-height:20px;margin:10px 0;font-size:12px}

.session-loading{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:28px;color:#7a8ba7;font-size:12px}
.session-loading img{max-width:188px;height:auto}.session-loading p{margin:0;text-align:center}
.session-spinner{width:22px;height:22px;border:2px solid #e0e8fa;border-top-color:#2146b5;border-radius:50%;animation:session-spin .8s linear infinite}
@keyframes session-spin{to{transform:rotate(360deg)}}.noscript-note{text-align:center;padding:30px}
.login{display:grid;grid-template-columns:1fr 1fr;width:calc(100% - 64px);max-width:1000px;margin:8vh auto;padding:0;overflow:hidden;background:#fff;border:1px solid #dee6f4;border-radius:22px;box-shadow:0 24px 80px #14377412}
.login-story{position:relative;overflow:hidden;padding:58px 48px 36px;background:linear-gradient(145deg,#183ea8,#1046cf);color:white;display:flex;flex-direction:column}
.login-story:after{content:"";position:absolute;width:410px;height:410px;border:1px solid #ffffff16;border-radius:50%;bottom:-220px;right:-140px;box-shadow:0 0 0 44px #ffffff05,0 0 0 88px #ffffff05;pointer-events:none}
.login-eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;color:#c0d1ff}
.login-story h2{color:white;font-size:34px;line-height:1.4;letter-spacing:-1px;margin:44px 0 18px;font-weight:600}
.login-story>p{color:#d4e0ff;line-height:1.9;font-size:13px;max-width:315px;margin:0}
.login-features{display:grid;gap:24px;margin:45px 0;font-size:11px;color:#93b3ff}
.login-features span{display:flex;gap:18px;align-items:center}
.login-features strong{font-size:12px;font-weight:400;color:#f1f5ff}
.login-story-bottom{position:relative;margin-top:auto;font-size:10px;color:#bbceff;padding-top:32px}
.login-form-panel{padding:44px 48px 36px}
.login-logo{display:inline-block}.login-logo img{max-width:188px;height:auto}
.login-heading{margin:36px 0 28px}.login-kicker{color:#8a99b0;letter-spacing:1.5px;font-size:9px;font-weight:600}
.login .login-heading h1{margin:10px 0 8px;font-size:28px;letter-spacing:-.8px}
.login .login-heading p{font-size:12px;margin:0;color:#8390a7}
#login-form label{margin:0 0 8px;font-weight:600;font-size:12px;color:#304b70}
#login-form>input{margin-bottom:22px}
#login-form input{height:48px;border-color:#dce4f3;background:#fbfcff;border-radius:9px;font-size:12px}
#login-form input::placeholder{color:#9aa6ba}
.password-field{position:relative}.password-field input{padding-right:48px}
.login #password-toggle{position:absolute;right:6px;top:6px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;color:#8495b0}
.login #password-toggle:hover{background:#edf2fc;color:#2146ad}
.login #login-error{min-height:18px;margin:10px 0;color:#b34343;font-size:12px}
.login .login-submit{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:12px 18px;width:100%;font-size:12px;border-radius:9px;background:#2146b5;box-shadow:0 4px 12px #2146b51a}
.login .login-submit:hover{background:#173a9e}
.login .login-access{font-size:10px;line-height:1.9;text-align:center;color:#8a97ab;margin:22px 0 30px}
.login-return{display:block;text-align:center;font-size:11px}
@media(max-width:700px){.login{display:block;width:calc(100% - 32px);max-width:460px;margin:24px auto;border-radius:16px}.login-story{display:none}.login-form-panel{padding:30px 26px}.login-heading{margin-top:30px}.login .login-access{margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){.session-spinner{animation:none}}

.commune-progress{padding:18px 0 10px;border-bottom:1px solid #e8edf7}
.commune-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px}
.commune-progress-heading>span{font-size:11px;color:#8290a8}
.commune-progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
.commune-progress-stats>div{padding:14px 18px;background:#f5f7fd;border-radius:10px;display:flex;flex-direction:column;gap:4px}
.commune-progress-stats strong{font-size:30px;font-weight:600;color:#2146b5;line-height:1.3}
.commune-progress-stats span{font-size:12px;color:#657897}
.commune-progress-stats .commune-done{background:#edf7f4}.commune-done strong{color:#187b60}
.commune-progress progress{display:block;width:100%;height:6px;border:0;border-radius:10px;overflow:hidden;background:#edf1f9}
.commune-progress progress::-webkit-progress-bar{background:#edf1f9}.commune-progress progress::-webkit-progress-value{background:#2146b5;border-radius:10px}.commune-progress progress::-moz-progress-bar{background:#2146b5}
@media(max-width:600px){.commune-progress-stats{gap:7px}.commune-progress-stats>div{padding:12px 9px}.commune-progress-stats strong{font-size:25px}.commune-progress-stats span{font-size:11px}}

/* Account security */
.mfa-form{max-width:440px;display:grid;gap:12px;margin:20px 0}.mfa-form label{display:grid;gap:8px}.mfa-qr{display:block;width:240px;max-width:100%;height:auto;background:white;fill:#122442;shape-rendering:crispEdges;margin:18px 0}.mfa-key{display:block;overflow-wrap:anywhere;padding:12px 0}.mfa-codes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;margin:22px 0}.mfa-codes code{font-size:13px;background:#f1f5ff;padding:10px;overflow-wrap:anywhere}#mfa-controls details{margin:18px 0}#login-mfa input{width:100%}@media(max-width:480px){.mfa-codes{grid-template-columns:1fr}}

/* Supplied CommuneRepère wordmark, framed without altering the image. */
.admin-brand-logo{display:block;width:188px;max-width:100%;height:auto}.login-logo .admin-brand-logo{width:220px}.session-loading .admin-brand-logo{width:220px}@media(max-width:760px){.sidebar .admin-brand-logo{width:165px}}
