
:root{--primary:#17324d;--accent:#c58a35;--bg:#f3f6f8;--card:#fff;--text:#17212b;--muted:#667786;--danger:#b42318;--ok:#16794b;--line:#dce4ea;--shadow:0 8px 30px #17324d12}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--ok)}
.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,var(--primary),#284f6d)}
.login-card{width:min(440px,100%);background:#fff;border-radius:22px;padding:34px;box-shadow:0 24px 80px #0004}.brand-badge{width:68px;height:68px;border-radius:18px;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:800;font-size:20px}.login-card h1{margin:18px 0 4px}.login-card form{display:grid;gap:14px;margin-top:24px}.login-card label,.field{display:grid;gap:6px;font-weight:650}.login-card input,input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd6de;border-radius:10px;background:#fff}.primary{background:var(--primary);color:#fff;border:0;border-radius:10px;padding:12px 16px;font-weight:750}.link-btn{border:0;background:none;color:var(--primary);padding:12px 0}
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}aside{background:var(--primary);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.side-head{display:flex;gap:12px;align-items:center;padding:20px}.side-head .logo{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--primary);display:grid;place-items:center;font-weight:900}.side-head small{display:block;opacity:.7}nav{padding:8px;display:grid;gap:4px}nav button{border:0;background:transparent;color:#fff;text-align:left;padding:11px 13px;border-radius:10px;display:flex;gap:10px;align-items:center}nav button:hover,nav button.active{background:#ffffff18}nav button:disabled{opacity:.45;cursor:not-allowed}nav small{display:block;font-size:10px}.side-user{margin-top:auto;padding:18px;border-top:1px solid #ffffff22}.side-user small{display:block;opacity:.7}.side-user button{margin-top:10px;border:1px solid #ffffff44;background:transparent;color:#fff;border-radius:8px;padding:7px 10px}
main{min-width:0}header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:16px;position:sticky;top:0;z-index:4}header h2{margin:0;font-size:20px}header small{color:var(--muted)}.header-actions{margin-left:auto}.header-actions button,.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px}.menu{display:none;border:0;background:none;font-size:22px}#content{padding:24px;max-width:1500px;margin:auto}
.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow)}.kpi strong{font-size:28px;display:block}.kpi small{color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 10px}.section-title h3{margin:0}.toolbar{display:flex;gap:9px;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto;min-width:180px}.search-big{font-size:18px;padding:15px!important}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:11px 12px;border-bottom:1px solid #edf1f4;text-align:left}th{background:#f7f9fb;position:sticky;top:0;z-index:1;font-size:12px;text-transform:uppercase;color:#526472}tbody tr.clickable:hover{background:#f4f8fb;cursor:pointer}.badge{display:inline-block;padding:3px 8px;border-radius:99px;background:#eaf0f4;font-size:12px}.badge.ok{background:#e6f5ee}.badge.warn{background:#fff3d6;color:#7c5500}.badge.danger{background:#fde9e7;color:#a02b20}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .wide{grid-column:1/-1}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.danger-btn{border:1px solid #f2c6c1;background:#fff5f4;color:var(--danger);border-radius:9px;padding:9px 12px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.tabs button{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:9px}.tabs button.active{background:var(--primary);color:#fff}.notice{padding:12px 14px;border-radius:10px;background:#eef5fb;border:1px solid #d3e5f4;margin:10px 0}.warning{background:#fff8e6;border-color:#f3dfa5}.diff-old{color:#8b2d25;text-decoration:line-through}.diff-new{color:#17683f;font-weight:650}.progress{height:9px;background:#e7edf1;border-radius:99px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--primary)}
dialog{width:min(850px,94vw);max-height:92vh;border:0;border-radius:16px;padding:0;box-shadow:0 25px 90px #0005}dialog form{padding:24px;overflow:auto;max-height:92vh}.modal-close{float:right;border:0;background:#edf1f4;border-radius:50%;width:34px;height:34px;font-size:20px}.toast{position:fixed;right:20px;bottom:20px;z-index:99;background:#18222b;color:#fff;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}
@media(max-width:900px){.app{grid-template-columns:1fr}aside{position:fixed;z-index:20;width:260px;transform:translateX(-105%);transition:.2s}aside.open{transform:none}.menu{display:block}.cards{grid-template-columns:repeat(2,1fr)}#content{padding:14px}header{padding:0 14px}.form-grid{grid-template-columns:1fr}.toolbar input,.toolbar select{width:100%;min-width:0}.header-actions{display:none}}
@media(max-width:520px){.cards{grid-template-columns:1fr}.login-card{padding:24px;border-radius:16px}.table-wrap.mobile-cards{overflow:visible;border:0;background:none}.mobile-cards table,.mobile-cards thead,.mobile-cards tbody,.mobile-cards tr,.mobile-cards td{display:block;min-width:0}.mobile-cards thead{display:none}.mobile-cards tr{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:8px}.mobile-cards td{border:0;padding:5px 8px}.mobile-cards td:before{content:attr(data-label);font-size:11px;text-transform:uppercase;color:var(--muted);display:block}}
@media print{aside,header,.no-print{display:none!important}.app{display:block}#content{padding:0}.card{box-shadow:none;border:0}}

/* PILOTE V2.4 — connexion inspirée de BALISE */
body.pilote-login-bg{
  min-height:100vh;
  background:
    linear-gradient(rgba(7,22,38,var(--login-overlay,.48)),rgba(7,22,38,var(--login-overlay,.48))),
    var(--login-bg) center/cover fixed no-repeat !important;
}
.login-card.pilote-login-card{
  max-width:780px;
  width:min(92vw,780px);
  border-radius:28px;
  padding:52px clamp(24px,6vw,72px);
  background:rgba(9,30,49,.68);
  color:#fff;
  border:1px solid rgba(255,255,255,.20);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  backdrop-filter:blur(5px);
}
.login-card.pilote-login-card h1{
  color:#fff;
  text-align:center;
  font-size:clamp(2rem,5vw,3.2rem);
  letter-spacing:.03em;
}
.login-card.pilote-login-card p{color:#fff;text-align:center;font-size:clamp(1rem,2vw,1.25rem)}
.login-card.pilote-login-card label{color:#fff}
.login-card.pilote-login-card input{
  background:rgba(255,255,255,.94);
  min-height:58px;
  font-size:1.05rem;
}
.login-card.pilote-login-card button[type="submit"]{
  min-height:58px;
  font-size:1.1rem;
  font-weight:800;
}
@media(max-width:600px){
  .login-card.pilote-login-card{width:94vw;padding:30px 20px;border-radius:22px}
}

/* PILOTE V3.5 */
.editor-tools{display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:#eef3f6;border:1px solid #ccd7df;border-bottom:0;border-radius:10px 10px 0 0}.editor-tools button,.editor-tools select{padding:7px 9px}.rich-editor{min-height:360px;background:white;border:1px solid #ccd7df;padding:20mm 18mm;outline:none;overflow:auto}.rich-editor img{max-width:100%;height:auto}.paper-preview{background:white;color:#111;max-width:210mm;min-height:240mm;margin:14px auto;padding:18mm;box-shadow:0 2px 15px #0002}.member-card{width:85mm;height:55mm;border:1px solid #9aaab5;border-radius:4mm;padding:7mm;display:flex;flex-direction:column;justify-content:space-between;background:white;color:#17324d;margin:15px auto}.member-card span{font-size:11px}.checkin-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid #e3e8ec}.ag-counters{font-size:20px;margin:10px 0}.notice.ok{border-left-color:#2f855a}@media(max-width:700px){.rich-editor{padding:12px;min-height:300px}.paper-preview{padding:12px;min-height:400px}.checkin-row{align-items:stretch;flex-direction:column}.checkin-row button{width:100%;min-height:48px}}
/* PILOTE V3.6 */
.a4-shell{background:#dfe5e9;padding:18px;overflow:auto;border-radius:12px}.a4-page{width:210mm;min-height:297mm;box-sizing:border-box;background:#fff;color:#111;margin:auto;padding:20mm 18mm;box-shadow:0 4px 22px #0003}.a4-page[contenteditable=true]{outline:2px solid transparent}.a4-page[contenteditable=true]:focus{outline-color:var(--primary)}
.setting-list{display:grid;gap:8px;margin:10px 0}.setting-row{display:grid;grid-template-columns:1fr 130px auto;gap:8px;align-items:center}.setting-row input,.setting-row select{width:100%}.icon-picker{font-size:20px}.shortcut-preview{display:flex;flex-wrap:wrap;gap:10px}.shortcut-tile{min-width:150px;padding:14px;border:1px solid #d8e0e5;border-radius:12px;background:#fff}.shortcut-tile .ico{font-size:24px;display:block;margin-bottom:5px}.color-preview{height:44px;border-radius:10px;border:1px solid #ccd7df}.future-box{border:1px dashed #9fb2bf;padding:14px;border-radius:12px;background:#f7fafb}.doc-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.doc-size{font-weight:700}.mail-config-disabled{opacity:.8}.dedupe-group{padding:10px;border:1px solid #e0b4b4;border-radius:10px;margin:8px 0;background:#fff8f8}
@media(max-width:900px){.a4-page{width:100%;min-height:70vh;padding:14px}.setting-row{grid-template-columns:1fr}.a4-shell{padding:8px}}
@media print{body *{visibility:hidden!important}.a4-page,.a4-page *,.paper-preview,.paper-preview *,.member-card,.member-card *{visibility:visible!important}.a4-page,.paper-preview{position:absolute;left:0;top:0;width:210mm;min-height:297mm;box-shadow:none;margin:0;padding:20mm 18mm}.sidebar,header,.modal-close,.editor-tools{display:none!important}}
#modal{max-width:min(96vw,1200px);width:min(96vw,1200px)}

/* PILOTE V3.7 — Accès PILOTE & Portail adhérents */
.portal-view{min-height:100vh;background:#eef2f4}.portal-hero{min-height:100vh;background:linear-gradient(#071b2baa,#071b2baa),linear-gradient(135deg,#17324d,#315e78);background-size:cover;background-position:center;padding:clamp(18px,5vw,64px)}.portal-shell{max-width:1000px;margin:auto}.portal-brand{display:flex;align-items:center;gap:12px;color:white;font-weight:900;font-size:22px;margin-bottom:22px}.portal-logo{height:56px;max-width:160px;object-fit:contain}.portal-card{position:relative;background:#fff;border-radius:24px;padding:clamp(22px,5vw,58px);box-shadow:0 24px 70px #0005;overflow:hidden}.portal-step{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--portal-primary,#17324d)}.portal-card h1{font-size:clamp(28px,5vw,48px);line-height:1.05;margin:12px 0;color:var(--portal-primary,#17324d)}.portal-card>p{font-size:18px;max-width:720px}.portal-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:30px 0}.portal-main-btn,.portal-secondary-btn{border:0;border-radius:14px;padding:16px 20px;font-size:16px;font-weight:800;cursor:pointer}.portal-main-btn{background:var(--portal-primary,#17324d);color:white}.portal-secondary-btn{background:#edf2f5;color:#17324d}.portal-footer{margin-top:30px;padding-top:18px;border-top:1px solid #e1e6e9;color:#667}.portal-closed{padding:24px;margin:25px 0;border-radius:14px;background:#f4f6f7}.preview-ribbon{position:absolute;right:-48px;top:25px;transform:rotate(35deg);background:#d7a63b;color:#17212b;padding:8px 60px;font-weight:900;font-size:11px}.portal-progress{display:flex;align-items:center;margin:28px 0}.portal-progress b,.portal-progress i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--portal-primary);color:#fff;font-style:normal}.portal-progress i{background:#dfe5e8;color:#5b6770}.portal-progress span{height:3px;flex:1;background:#dfe5e8}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.portal-grid label{display:grid;gap:5px}.portal-grid .wide{grid-column:1/-1}.portal-grid input{padding:12px;border:1px solid #ccd5da;border-radius:10px}.access-url{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f2f6f8;border:1px solid #d5e0e6;padding:12px;border-radius:12px}.access-url span{font-weight:800;flex:1;min-width:220px}.portal-admin-preview{background:#e7ecef;padding:18px;border-radius:14px;margin:16px 0}.mini-portal{max-width:560px;margin:auto;background:white;padding:25px;border-radius:18px;box-shadow:0 6px 18px #0002}.mini-portal h3{font-size:26px;margin:8px 0}.mini-portal button{border:0;color:white;border-radius:10px;padding:11px 15px;font-weight:800}
@media(max-width:650px){.portal-choice,.portal-grid{grid-template-columns:1fr}.portal-grid .wide{grid-column:auto}.portal-hero{padding:12px}.portal-card{border-radius:18px}.portal-choice button{min-height:58px}}

/* PILOTE V3.8 — AG opérationnelle */
.ag-dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.ag-dashboard>div{background:#f3f7f9;border:1px solid #dce5ea;border-radius:12px;padding:12px;text-align:center}.ag-dashboard b{display:block;font-size:24px;color:var(--primary)}.ag-dashboard span{font-size:12px;color:#60717c}.ag-person{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:12px;align-items:center;padding:10px;border-bottom:1px solid #e3e8ec}.ag-person-name{display:grid}.ag-person-name small{color:#71808a}.ag-person-actions{display:flex;gap:6px;flex-wrap:wrap}.ag-person-actions button{min-height:40px}
@media(max-width:700px){.ag-dashboard{grid-template-columns:repeat(2,1fr)}.ag-person{grid-template-columns:1fr}.ag-person-actions{display:grid;grid-template-columns:1fr 1fr}.ag-person-actions button{min-height:50px}}
