.ov-portal{--ov-pdark:#123c52;--ov-plight:#edf5f3;--ov-pborder:#dfe9e7;--ov-pmuted:#617983;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#253c48;width:100%;max-width:1160px;margin:0 auto 30px}.ov-portal *,.ov-public-form *,.ov-login *{box-sizing:border-box}.ov-portal h2,.ov-portal h3,.ov-portal h4{color:#123c52}.ov-portal h2{margin:4px 0 4px;font-size:clamp(1.7rem,3vw,2.4rem)}.ov-portal h3{font-size:1.25rem;margin:0 0 15px}.ov-portal h4{margin:0;font-size:1.05rem}.ov-portal-head{display:flex;gap:25px;justify-content:space-between;align-items:center;background:linear-gradient(115deg,#123c52,#2d697b);color:#fff;padding:28px;border-radius:19px 19px 0 0}.ov-portal-head h2{color:#fff}.ov-portal-head p{margin:4px 0;color:#d2e5e7}.ov-eyebrow{font-size:.71rem;letter-spacing:.15em;font-weight:800;color:#b9dacf}.ov-portal-logout{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.ov-portal-logout a{color:#fff;text-decoration:underline;font-size:.9rem}.ov-tabs{background:#f1f6f4;display:flex;gap:5px;overflow-x:auto;padding:12px 15px;border:1px solid var(--ov-pborder);border-top:0;white-space:nowrap}.ov-tabs a{color:#3d5c67;display:inline-flex;padding:10px 14px;border-radius:12px;text-decoration:none;font-weight:650;font-size:.9rem}.ov-tabs a:hover,.ov-tabs a.ov-active{background:#fff;color:#123c52;box-shadow:0 2px 12px rgba(32,74,75,.08)}.ov-portal-body{background:#fff;border:1px solid var(--ov-pborder);border-top:0;padding:25px;border-radius:0 0 18px 18px;min-height:360px}.ov-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.ov-stat{background:#f7faf8;border:1px solid #e0eae5;border-radius:14px;padding:17px;min-height:110px}.ov-stat span,.ov-stat small{display:block;color:#677e7d;font-size:.83rem}.ov-stat strong{display:block;margin-top:5px;color:#123c52;font-size:2rem;line-height:1.2}.ov-stat small{font-size:.77rem;margin-top:7px}.ov-two{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.ov-panel{background:#fff;border:1px solid var(--ov-pborder);border-radius:17px;padding:22px;margin:0 0 21px;box-shadow:0 6px 20px rgba(29,66,76,.035)}.ov-panel h3:first-child{margin-top:0}.ov-panel p{overflow-wrap:anywhere}.ov-muted{color:var(--ov-pmuted)}.ov-small{font-size:.86rem;color:#607b82}.ov-activity{padding:0;list-style:none;margin:5px 0 18px}.ov-activity li{display:flex;gap:8px;flex-direction:column;border-bottom:1px solid var(--ov-pborder);padding:10px 0}.ov-activity strong{font-size:.9rem}.ov-activity span{font-size:.86rem;color:#617781}.ov-checkline{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--ov-pborder);padding:10px 0;font-size:.9rem}.ov-check-yes{color:#277d57}.ov-check-no{color:#9b6d41}.ov-alert{padding:15px 17px;border-radius:12px;margin:13px 0 22px;font-size:.9rem}.ov-success{background:#e8f7ed;border:1px solid #a4ddba;color:#1c623e}.ov-error{background:#fff0ed;border:1px solid #edbcb1;color:#8d382a}.ov-info{background:#edf6f9;border:1px solid #c5e1e8;color:#215467}.ov-form,.ov-public-form{width:100%}.ov-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.ov-field{display:flex;flex-direction:column;gap:6px;margin:0 0 13px;min-width:0}.ov-field span{font-weight:670;font-size:.87rem;color:#355362}.ov-field input,.ov-field select,.ov-field textarea,.ov-inline-form select,.ov-login input[type=text],.ov-login input[type=password]{border:1px solid #cbdad8;background:#fff;color:#243d46;border-radius:10px;padding:11px 12px;width:100%;max-width:100%;font-size:.95rem;min-height:46px}.ov-field textarea{min-height:95px}.ov-field input:focus,.ov-field textarea:focus,.ov-field select:focus{outline:3px solid rgba(90,180,187,.28);border-color:#5491a2}.ov-submit{display:inline-flex;align-items:center;justify-content:center;background:#14536a!important;border:1px solid #14536a!important;color:white!important;padding:11px 19px;border-radius:11px;font-size:.92rem;line-height:1.3;min-height:44px;font-weight:750;text-decoration:none!important;cursor:pointer}.ov-submit:hover{background:#246b7f!important}.ov-inline{display:inline-flex}.ov-smallbtn{background:#f4f8f6;border:1px solid #dae8e4;color:#214c5c;padding:8px 12px;border-radius:8px;text-decoration:none;font-weight:650;white-space:nowrap;font-size:.86rem}.ov-heading-actions{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.ov-heading-actions h3,.ov-heading-actions h4{margin:0}.ov-table-wrap{overflow-x:auto;max-width:100%;border:1px solid #e2eae6;border-radius:13px;margin-bottom:24px}.ov-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:620px}.ov-table th{background:#f1f6f3;color:#42636a;padding:12px;text-align:left;white-space:nowrap}.ov-table td{padding:13px 12px;border-top:1px solid #e5eeea;vertical-align:top}.ov-table tr:hover td{background:#f9fbf9}.ov-pill{display:inline-flex;border-radius:30px;padding:4px 9px;background:#edf1f4;font-size:.74rem;font-weight:700;color:#4b5d6a;white-space:nowrap}.ov-pill-termine,.ov-pill-traitee,.ov-pill-payee,.ov-pill-accepte{background:#e3f5eb;color:#26734b}.ov-pill-en_cours,.ov-pill-envoyee{background:#e6f3f7;color:#28667b}.ov-pill-annule,.ov-pill-refuse{background:#fbece8;color:#a34234}.ov-pill-nouvelle,.ov-pill-attente{background:#fff1d8;color:#88601b}.ov-week{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));overflow-x:auto;gap:10px;padding:2px 0 23px;margin-bottom:6px}.ov-day{border:1px solid var(--ov-pborder);border-radius:12px;min-height:160px;padding:9px;min-width:125px}.ov-day-head{font-weight:800;font-size:.86rem;color:#194b5c;border-bottom:1px solid var(--ov-pborder);padding:4px 0 9px;margin-bottom:8px}.ov-event{border-left:3px solid #76a4a4;background:#eff7f6;border-radius:7px;padding:7px;margin:5px 0;display:flex;flex-direction:column;gap:1px;font-size:.74rem;line-height:1.3}.ov-event span{font-weight:650;word-break:break-word}.ov-event small{color:#607881;font-size:.68rem}.ov-inline-form{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.ov-inline-form select{width:auto;max-width:170px;min-height:38px;padding:5px}.ov-inline-form .ov-submit{min-height:38px;padding:8px 10px;font-size:.82rem}.ov-check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;margin:13px 0;line-height:1.5}.ov-check input{accent-color:#1c6071;min-width:17px;height:17px;margin-top:4px}.ov-request{margin-bottom:13px}.ov-export{margin:15px 0}.ov-employee-mission{border:1px solid #dceae5;border-left:5px solid #7d9e81;border-radius:12px;padding:16px;margin:14px 0;background:#fbfdfb}.ov-employee-mission h4{margin:10px 0 4px}.ov-employee-mission .ov-small{margin:3px 0 9px}.ov-mission-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.ov-public-form{border:1px solid #e1eae6;border-radius:17px;padding:22px;background:#fafcfb}.ov-public-form .ov-submit{margin-top:9px}.ov-hp{position:absolute;left:-10000px;opacity:0}.ov-login{max-width:570px;padding:25px;background:#f8fbf9;border:1px solid #dfeae5;border-radius:17px}.ov-login h2{margin:0 0 10px}.ov-login label{display:block;font-weight:650;font-size:.88rem}.ov-login p.login-username,.ov-login p.login-password{margin:12px 0}.ov-login #wp-submit{background:#14536a;color:white;font-weight:700;border:0;border-radius:10px;padding:12px 22px;cursor:pointer}.ov-login .login-remember label{display:flex;gap:8px;align-items:center}
@media(max-width:1000px){.ov-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-week{grid-template-columns:repeat(7,minmax(150px,1fr))}}
@media(max-width:650px){.ov-portal-head{padding:19px;align-items:flex-start}.ov-portal-body{padding:15px}.ov-portal-head h2{font-size:1.65rem}.ov-portal-logout{font-size:.8rem}.ov-two,.ov-form-grid{grid-template-columns:1fr}.ov-stat-grid{gap:8px}.ov-stat{padding:12px;min-height:95px}.ov-stat strong{font-size:1.6rem}.ov-stat span{font-size:.74rem}.ov-tabs{padding:8px}.ov-tabs a{padding:9px 12px;font-size:.82rem}.ov-panel{padding:15px}.ov-public-form{padding:16px}}

/* 1.7 mobile et suivi terrain */
.ov-portal,.ov-portal-body,.ov-panel,.ov-table-wrap,.ov-stat-grid{min-width:0;max-width:100%}
.ov-private-panel{padding:13px 16px;background:#f0f6f5;border:1px solid #dae7e3;border-radius:13px;margin:12px 0}
.ov-private-panel h4{margin:5px 0 8px}.ov-checkin-form{padding:13px;border:1px solid #dce6e4;border-radius:12px;margin:10px 0}
.ov-checkin-form .ov-field{margin:12px 0}.ov-checkin-form input[type=file]{max-width:100%;width:100%;background:white;padding:8px;border:1px solid #d0dbdb;border-radius:10px}
.ov-panel .ov-inline-form input[type=month]{max-width:100%;font-size:16px;padding:9px;border-radius:10px;border:1px solid #d6e1df}
@media(max-width:650px){.ov-portal{width:100%}.ov-portal-head{flex-direction:column;gap:8px}.ov-portal-logout{flex-direction:row;align-items:center;flex-wrap:wrap}.ov-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.ov-portal-body{padding:11px}.ov-tabs{scrollbar-width:thin}.ov-employee-mission{padding:12px}.ov-mission-head{flex-direction:column;align-items:flex-start}}

/* 1.8 installable PWA, standalone bottom navigation for phone */
.ov-pwa-dock{display:none}
.ov-pwa-install{margin:10px 0 15px;padding:12px 14px;border:1px solid #afcfc4;border-radius:13px;background:#f3faf7;display:flex;gap:10px;align-items:center;justify-content:space-between}
.ov-pwa-install[hidden]{display:none!important}
.ov-pwa-install strong{color:#153f4c;font-size:.9rem}.ov-pwa-install p{font-size:.78rem;color:#4e6970;margin:4px 0 0;line-height:1.35}
.ov-pwa-install button{flex:none;border:1px solid #c2d8d5;background:#fff;color:#144457;border-radius:9px;font:600 .8rem system-ui;padding:9px;min-height:40px;cursor:pointer}
.ov-pwa-install #ov-pwa-install-button{background:#164e60;color:#fff}
@media(max-width:760px){
 .ov-portal:has(.ov-pwa-dock){padding-bottom:calc(75px + env(safe-area-inset-bottom, 0px))}
 .ov-portal .ov-pwa-dock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;bottom:0;right:0;z-index:10020;background:#fff;border-top:1px solid #dce8e4;box-shadow:0 -4px 24px rgba(14,46,58,.12);padding:5px max(5px,env(safe-area-inset-left)) calc(5px + env(safe-area-inset-bottom,0px)) max(5px,env(safe-area-inset-right))}
 .ov-portal .ov-pwa-dock a{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-width:0;min-height:54px;color:#547079;text-decoration:none!important;font-size:.62rem;font-weight:700;border-radius:9px}
 .ov-portal .ov-pwa-dock a[aria-current="page"]{color:#16546a;background:#eaf4f1}
 .ov-portal .ov-pwa-icon{font-size:1.35rem;line-height:1.35}
}

/* V1.9 - congés et remplacements */
.ov-pill-remplacement{background:#fff1d0;color:#8b5711}.ov-replace-item{border-bottom:1px solid #e4ece8;padding:12px 0}.ov-replace-item:last-child{border-bottom:0}.ov-replace-item .ov-inline-form{margin-top:8px}.ov-event:has(strong) {overflow-wrap:anywhere}
