:root{--navy:#0a1726;--navy2:#17324d;--gold:#b98a42;--paper:#f4f1ea;--white:#fff;--ink:#182431;--muted:#66717c;--line:#dbe0e3;--danger:#a32b2b;--success:#18734a;--warn:#926719;--radius:16px;--shadow:0 14px 38px rgba(10,23,38,.09)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:linear-gradient(145deg,#eef2f4,#faf8f3 55%,#eee9df);color:var(--ink);font-family:Manrope,Arial,sans-serif;min-height:100vh}.app-header{height:76px;background:rgba(10,23,38,.97);color:#fff;display:flex;align-items:center;gap:28px;padding:0 max(22px,calc((100vw - 1440px)/2));position:sticky;top:0;z-index:10;box-shadow:0 8px 30px rgba(0,0,0,.18)}.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none}.brand img{width:38px;height:38px}.brand span{display:flex;flex-direction:column}.brand strong{font-family:Fraunces,serif}.brand small{font-size:9px;letter-spacing:.25em;color:#b9c1c9}.app-header nav{display:flex;align-items:center;gap:9px;font-size:13px;flex:1;color:#aeb8c2}.app-header nav a{color:#d5dce2}.shell{max-width:1440px;margin:auto;padding:44px 24px 70px}.intro{max-width:940px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--gold);font-size:12px;font-weight:800}.intro h1{font:700 clamp(34px,5vw,58px)/1 Fraunces,serif;margin:12px 0}.intro>p:not(.eyebrow){font-size:18px;color:var(--muted)}.privacy-note{margin-top:20px;padding:12px 16px;border-left:3px solid var(--gold);background:#fff8e8;border-radius:0 10px 10px 0}.tabs{display:flex;gap:8px;margin:35px 0 18px;border-bottom:1px solid #cbd2d7}.tabs button{border:0;background:transparent;padding:14px 24px;font:700 15px Manrope;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent}.tabs button[aria-selected=true]{color:var(--navy2);border-color:var(--gold)}.workspace{display:none}.workspace.is-active{display:block}.card{background:rgba(255,255,255,.94);border:1px solid rgba(23,50,77,.12);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card h2{font-size:17px;margin:0 0 8px}.card p{color:var(--muted);font-size:13px}.date-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,340px));gap:20px;margin-bottom:18px}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.action-grid .card{display:flex;flex-direction:column}.action-grid .button{margin-top:auto;align-self:flex-start}.upload-form input[type=file]{margin:9px 0 18px;max-width:100%;font-size:13px}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#43505e}input,select{width:100%;border:1px solid #bdc7ce;border-radius:9px;background:#fff;padding:11px 12px;font:500 14px Manrope;color:var(--ink)}input:focus,select:focus{outline:3px solid rgba(185,138,66,.2);border-color:var(--gold)}.button{border:1px solid transparent;border-radius:9px;padding:10px 16px;font:700 13px Manrope;text-decoration:none;cursor:pointer;display:inline-flex;justify-content:center;align-items:center}.button:disabled{opacity:.45;cursor:not-allowed}.button-primary{background:var(--navy2);color:#fff}.button-primary:hover:not(:disabled){background:#21486d}.button-secondary{background:#f1eadc;color:#60481e;border-color:#dbc89f}.button-ghost{background:transparent;color:inherit;border-color:#8795a2}.button-large{font-size:15px;padding:14px 24px}.amount-editor,.manual{margin:18px 0}.inline-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}.technical-note{color:#735b2a!important}.manual summary{font-weight:800;cursor:pointer}.manual-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:18px;align-items:end}.manual-grid .button{height:41px}.messages{margin:16px 0}.message{white-space:pre-line;padding:12px 15px;border-radius:10px;margin:8px 0;font-size:13px}.message-error{background:#fbe7e7;color:#7a1e1e;border:1px solid #e6b2b2}.message-warning{background:#fff6de;color:#725116;border:1px solid #ead69f}.message-info{background:#e8f2f8;color:#24536c;border:1px solid #bdd7e6}.message-success{background:#e5f5ec;color:#145b3b;border:1px solid #add8c1}.table-card{padding:0;overflow:hidden}.table-toolbar{display:flex;align-items:center;gap:16px;padding:18px 20px}.table-toolbar>div{min-width:160px}.table-toolbar h2{margin:0}.table-toolbar span{font-size:12px;color:var(--muted)}.table-toolbar input{margin-left:auto;max-width:340px}.table-scroll{overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #e8ecee}th{background:#eef2f4;color:#40505d;position:sticky;top:0}td input{min-width:125px;padding:6px 8px}.status-ok{color:var(--success);font-weight:800}.status-error{color:var(--danger);font-weight:800}.row-actions{display:flex;gap:5px}.row-actions button,.pagination button{border:1px solid #c8d0d5;background:#fff;border-radius:7px;padding:6px 9px;cursor:pointer}.empty{text-align:center;color:var(--muted);padding:35px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:13px 20px;font-size:12px}.summary{margin-top:18px;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.metric{border-left:2px solid #d8c292;padding-left:12px}.metric span{display:block;color:var(--muted);font-size:11px}.metric strong{font-size:18px}.generate-bar{text-align:right;margin-top:18px}dialog{border:0;border-radius:18px;box-shadow:0 25px 80px rgba(0,0,0,.3);width:min(760px,calc(100% - 30px));padding:0}dialog::backdrop{background:rgba(5,15,25,.72)}.review{padding:28px;position:relative}.review h2{font:700 27px Fraunces;margin-top:0}.dialog-close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:28px;cursor:pointer}.review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.review-grid p{margin:0;padding:9px;background:#f3f5f5;border-radius:8px;display:flex;justify-content:space-between;gap:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}footer{background:var(--navy);color:#b9c1c9;padding:24px max(22px,calc((100vw - 1440px)/2));display:flex;justify-content:space-between;font-size:12px}footer a{color:#fff}@media(max-width:1000px){.action-grid{grid-template-columns:1fr 1fr}.manual-grid{grid-template-columns:repeat(3,1fr)}.summary{grid-template-columns:repeat(3,1fr)}.app-header nav{display:none}}@media(max-width:700px){.app-header{height:auto;padding:13px 16px;flex-wrap:wrap}.app-header>.button{margin-left:auto}.shell{padding:28px 14px}.date-grid,.action-grid,.inline-form,.manual-grid{grid-template-columns:1fr}.summary{grid-template-columns:1fr 1fr}.tabs button{flex:1;padding:12px 5px}.table-toolbar{flex-wrap:wrap}.table-toolbar input{order:3;max-width:none}.review-grid{grid-template-columns:1fr}footer{flex-direction:column;gap:8px}}

label small{font-size:10px;font-weight:500;color:var(--muted)}.source-choice{margin-bottom:18px}.source-choice legend{font-weight:800;padding:0 8px}.source-choice [role=radiogroup]{display:flex;gap:24px;flex-wrap:wrap}.source-choice label{display:flex;flex-direction:row;align-items:center;font-size:14px}.source-choice input{width:auto}.encours-source{grid-template-columns:2fr 1fr}.model-card{align-items:center;text-align:center}.excel-button{display:inline-flex;flex-direction:column;align-items:center;gap:4px;color:#107c41;font-weight:800;text-decoration:none;border:1px solid #a9cfba;border-radius:12px;padding:12px 20px;background:#edf8f2}.excel-button img{width:48px;height:48px}.excel-button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.button.is-loading{position:relative;cursor:wait}.button.is-loading::before{content:"";width:14px;height:14px;margin-right:8px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{display:grid;place-items:center}.login-shell{width:min(480px,calc(100% - 28px));padding:40px 0}.login-card h1{font:700 34px Fraunces,serif}.login-form{display:grid;gap:18px;margin:24px 0}.back-link{color:var(--navy2)}.verification-shell{max-width:1200px;margin:auto;padding:40px 24px 70px}.control-groups{display:grid;gap:16px;margin:20px 0}.control-group h2{margin-top:0}.control-list{margin:0;padding-left:22px}.control-list li{margin:7px 0}.preview-dat{background:#091421;color:#e7f0f7;border-radius:10px;padding:16px;white-space:pre;overflow:auto;font:12px/1.55 Consolas,monospace}.verification-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin:20px 0}.no-batch{text-align:center;padding:45px}.details-code{font-size:10px;color:var(--muted)}
