/*! Task’in — © 2026 Fandry Ekwalla. Tous droits réservés. Copie, modification et diffusion interdites sans autorisation écrite (voir LICENSE). */
/* ===== PORTAIL PREMIUM : CONNEXION + PRÉSENTATION ===== */
#login-screen.portal-screen{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:clamp(12px,2.5vw,34px);overflow:auto;background:#0f1928;color:#1E2A3A}
.portal-screen:before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 80% 16%,rgba(43,76,126,.5),transparent 25%),radial-gradient(circle at 8% 84%,rgba(233,138,125,.13),transparent 28%)}
.portal-frame{--login-width:40%;position:relative;z-index:1;display:flex;width:min(1320px,100%);min-height:min(760px,calc(100vh - 48px));overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:22px;background:#F0F4F8;box-shadow:0 34px 90px rgba(0,0,0,.35)}
.portal-login-panel{position:relative;z-index:2;display:flex;flex:0 0 var(--login-width);min-width:310px;overflow:hidden;background:linear-gradient(145deg,#1E3760,#2B4C7E 67%,#244575);transition:flex-basis .62s cubic-bezier(.23,1,.32,1)}
.portal-login-panel:before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 0 64%,rgba(255,255,255,.07) 64.1% 64.4%,transparent 64.5% 100%),radial-gradient(circle at 72% 74%,rgba(185,204,230,.16),transparent 22%)}
.portal-login-panel:after{content:'';position:absolute;right:-75px;bottom:-75px;width:250px;height:250px;border:1px solid rgba(255,255,255,.15);border-radius:50%;box-shadow:0 0 0 22px rgba(255,255,255,.035),0 0 0 45px rgba(255,255,255,.025)}
.portal-login-card{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;width:100%;max-width:440px;margin:auto;padding:clamp(28px,4vw,54px);color:#fff}.portal-login-card>svg{width:62px!important;height:62px!important;margin:0 0 15px!important;border-radius:12px;box-shadow:0 7px 24px rgba(0,0,0,.18)}
.portal-login-card .login-logo{margin:0 0 4px!important;color:#fff!important;font-family:var(--display)!important;font-size:28px!important;letter-spacing:-.5px!important}.portal-login-card .login-title{margin:0 0 8px;color:#fff;font:600 29px var(--display);letter-spacing:-.7px}.portal-login-card .login-sub{margin:0 0 29px;color:#B9CCE6;font-size:12px;line-height:1.65}.portal-login-card .form-label{color:#D8E2EE;font-size:10px}.portal-login-card .form-input{border-color:rgba(255,255,255,.22);background:rgba(6,23,48,.25);color:#fff}.portal-login-card .form-input::placeholder{color:#B9CCE6}.portal-login-card .form-input:focus{border-color:#fff;box-shadow:0 0 0 3px rgba(233,138,125,.25)}.portal-login-card .login-btn{margin-top:17px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:#fff;color:#1E3760;box-shadow:0 9px 20px rgba(0,0,0,.18)}.portal-login-card .login-btn:hover{background:#FBE9E6;color:#1E3760;transform:translateY(-1px)}.portal-remember{display:flex;align-items:center;gap:8px;margin:2px 0 0;color:#D8E2EE;font-size:11px}.portal-remember input{width:15px;height:15px;accent-color:#E98A7D}.portal-login-card .login-error{text-align:left;color:#FFD3CC}.portal-discover-link{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding:10px 0 0;border:0;background:transparent;color:#B9CCE6;font:600 11px var(--font);cursor:pointer;text-align:left}.portal-discover-link:hover{color:#fff}.portal-discover-link span{display:inline-grid;width:19px;height:19px;place-items:center;border:1px solid rgba(255,255,255,.32);border-radius:50%;color:#E98A7D}
.portal-presentation-panel{position:relative;display:flex;flex:1;min-width:0;overflow:hidden;background:#F0F4F8}.portal-presentation-panel:before{content:'';position:absolute;right:-100px;top:-110px;width:420px;height:420px;border:1px solid rgba(43,76,126,.07);border-radius:48% 52% 45% 55%;box-shadow:0 0 0 28px rgba(43,76,126,.025),0 0 0 61px rgba(43,76,126,.018)}.portal-presentation-inner{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;padding:clamp(24px,3.7vw,52px)}
.portal-nav{display:flex;align-items:center;gap:clamp(10px,2vw,28px);min-height:34px}.portal-brand{display:flex;align-items:center;gap:8px;margin-right:auto;color:#1E3760;font:700 18px var(--display)}.portal-brand-mark{display:grid;width:29px;height:29px;place-items:center;border:1px solid var(--border);border-radius:7px;background:#fff;color:#2B4C7E;font-size:13px;box-shadow:0 3px 10px rgba(30,55,96,.1)}.portal-nav-link{border:0;background:transparent;color:#52667D;font:600 10px var(--font);cursor:pointer}.portal-nav-link:hover{color:#2B4C7E}.portal-theme-btn{display:grid;width:29px;height:29px;place-items:center;border:1px solid var(--border);border-radius:50%;background:#fff;color:#2B4C7E;cursor:pointer;font-size:13px}
.portal-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.6fr);gap:18px;align-items:end;margin:clamp(36px,7vh,76px) 0 20px}.portal-eyebrow{color:#2B4C7E;font:600 9px var(--mono);letter-spacing:1px;text-transform:uppercase}.portal-hero h1{margin:9px 0 8px;color:#1E3760;font:600 clamp(27px,3.3vw,51px) var(--display);line-height:1.02;letter-spacing:-1.2px}.portal-hero p{max-width:500px;margin:0;color:#6B7C93;font-size:12px;line-height:1.65}.portal-actions{display:flex;align-items:center;gap:12px;margin-top:17px}.portal-primary-action,.portal-secondary-action{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:9px;padding:10px 14px;font:600 11px var(--font);cursor:pointer}.portal-primary-action{background:#2B4C7E;color:#fff;box-shadow:0 8px 18px rgba(43,76,126,.22)}.portal-primary-action:hover{background:#1E3760;transform:translateY(-1px)}.portal-secondary-action{padding-left:0;background:transparent;color:#2B4C7E}.portal-route-note{align-self:end;padding:11px 13px;border-left:2px solid #E98A7D;background:#fff;color:#6B7C93;font-size:10px;line-height:1.5;box-shadow:0 7px 18px rgba(30,55,96,.08)}.portal-route-note strong{display:block;margin-bottom:2px;color:#1E3760;font-size:11px}
.portal-dashboard{display:grid;grid-template-columns:155px minmax(0,1fr);margin-top:16px;overflow:hidden;border:1px solid #E2E8F0;border-radius:13px;background:#fff;box-shadow:0 12px 34px rgba(30,55,96,.11)}.portal-side-menu{padding:18px 13px;background:#F7FAFC;border-right:1px solid #E2E8F0}.portal-side-title{display:flex;align-items:center;gap:7px;margin-bottom:18px;color:#1E3760;font:700 12px var(--display)}.portal-side-logo{display:grid;width:23px;height:23px;place-items:center;border-radius:6px;background:#2B4C7E;color:#fff;font-size:9px}.portal-side-item{display:flex;align-items:center;gap:8px;padding:8px 7px;border-radius:7px;color:#6B7C93;font-size:9px}.portal-side-item.active{background:#E6EDF6;color:#2B4C7E;font-weight:700}.portal-side-item i{width:12px;height:12px;border:1.5px solid currentColor;border-radius:3px}.portal-dashboard-main{padding:16px 18px}.portal-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.portal-kpi{padding:11px;border:1px solid #E2E8F0;border-radius:8px;background:#fff}.portal-kpi-label{color:#6B7C93;font-size:8px;text-transform:uppercase;letter-spacing:.35px}.portal-kpi-value{margin-top:5px;color:#1E3760;font:600 20px var(--mono)}.portal-kpi-value span{margin-left:4px;color:#6B7C93;font:400 8px var(--font)}.portal-kpi.good .portal-kpi-value{color:#3B8C6E}.portal-visual-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:10px;margin-top:12px}.portal-chart-card,.portal-map-card{position:relative;min-height:128px;padding:12px;border:1px solid #E2E8F0;border-radius:8px;background:#F7FAFC;overflow:hidden}.portal-widget-title{color:#6B7C93;font-size:9px;font-weight:700}.portal-bars{display:flex;align-items:end;gap:7px;height:78px;margin-top:14px;padding:0 2px}.portal-bars i{flex:1;min-width:6px;background:#2B4C7E;border-radius:3px 3px 0 0}.portal-bars i:nth-child(5){background:#E98A7D}.portal-map-card{background:linear-gradient(135deg,#F7FAFC,#fff)}.portal-map-card:before,.portal-map-card:after{content:'';position:absolute;border:1px dashed rgba(43,76,126,.42);border-radius:50%;transform:rotate(-28deg)}.portal-map-card:before{width:180px;height:60px;left:11px;top:52px}.portal-map-card:after{width:135px;height:48px;left:63px;top:29px}.portal-map-node{position:absolute;width:16px;height:16px;border:3px solid #fff;border-radius:50%;background:#E98A7D;box-shadow:0 0 0 2px #E98A7D;left:55%;top:52%}.portal-map-start{position:absolute;width:8px;height:8px;border-radius:50%;background:#2B4C7E;left:13%;bottom:21%}.portal-map-label{position:absolute;right:12px;bottom:11px;color:#2B4C7E;font:600 8px var(--mono);letter-spacing:.4px}.portal-module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:15px}.portal-module{display:flex;align-items:center;gap:8px;min-width:0;padding:11px 10px;border:1px solid #E2E8F0;border-radius:9px;background:#fff;color:#1E3760;font-size:9px;font-weight:700;box-shadow:0 4px 10px rgba(30,55,96,.04)}.portal-module i{display:grid;flex:0 0 21px;width:21px;height:21px;place-items:center;border-radius:5px;background:#E6EDF6;color:#2B4C7E;font-style:normal;font-size:12px}.portal-module b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-module em{margin-left:auto;color:#A0AAB8;font-style:normal}
.portal-slider{position:absolute;z-index:5;top:50%;left:var(--login-width);display:grid;width:43px;height:43px;place-items:center;border:3px solid #F0F4F8;border-radius:50%;background:#E98A7D;color:#fff;box-shadow:0 8px 22px rgba(101,55,45,.3);cursor:pointer;transform:translate(-50%,-50%);transition:left .62s cubic-bezier(.23,1,.32,1),transform .2s ease}.portal-slider:hover{transform:translate(-50%,-50%) scale(1.06)}.portal-slider:after{content:'↔';font:700 16px var(--mono)}.portal-slider span{position:absolute;top:50px;left:50%;color:#6B7C93;font:600 7px var(--mono);letter-spacing:1px;white-space:nowrap;transform:translateX(-50%);text-transform:uppercase}
.portal-frame.presentation-active{--login-width:25%}.portal-frame.presentation-active .portal-login-card{padding-left:24px;padding-right:24px}.portal-frame.presentation-active .portal-login-card .login-sub,.portal-frame.presentation-active .portal-login-card .portal-remember{display:none}.portal-frame.presentation-active .portal-login-card .login-title{font-size:23px}.portal-frame.presentation-active .portal-login-card>svg{width:48px!important;height:48px!important}.portal-frame.presentation-active .portal-login-card .login-logo{font-size:22px!important}.portal-frame.presentation-active .portal-login-card .form-row{margin-bottom:11px}.portal-frame.login-active{--login-width:46%}.portal-frame.login-active .portal-presentation-inner{opacity:.58;transform:translateX(16px);pointer-events:none}.portal-frame.login-active .portal-route-note{display:none}
.portal-frame.portal-night .portal-presentation-panel{background:#11161F}.portal-frame.portal-night .portal-presentation-panel:before{border-color:rgba(255,255,255,.07)}.portal-frame.portal-night .portal-brand,.portal-frame.portal-night .portal-hero h1,.portal-frame.portal-night .portal-side-title,.portal-frame.portal-night .portal-kpi-value,.portal-frame.portal-night .portal-module{color:#EBEEF3}.portal-frame.portal-night .portal-brand-mark,.portal-frame.portal-night .portal-theme-btn,.portal-frame.portal-night .portal-dashboard,.portal-frame.portal-night .portal-kpi,.portal-frame.portal-night .portal-module,.portal-frame.portal-night .portal-route-note{background:#171D29;border-color:#2A3344}.portal-frame.portal-night .portal-side-menu,.portal-frame.portal-night .portal-chart-card,.portal-frame.portal-night .portal-map-card{background:#1E2531;border-color:#2A3344}.portal-frame.portal-night .portal-hero p,.portal-frame.portal-night .portal-route-note,.portal-frame.portal-night .portal-nav-link,.portal-frame.portal-night .portal-kpi-label{color:#9AA6B8}.portal-frame.portal-night .portal-module i{background:#1A2740}.portal-frame.portal-night .portal-side-item.active{background:#1A2740}
@media(max-width:860px){#login-screen.portal-screen{align-items:stretch;padding:0}.portal-frame{min-height:100%;border:0;border-radius:0}.portal-login-panel{min-width:0}.portal-hero{grid-template-columns:1fr;margin-top:34px}.portal-route-note{display:none}.portal-dashboard{grid-template-columns:124px min-height:240px}.portal-side-menu{padding:13px 8px}.portal-side-item{gap:4px;font-size:8px}.portal-module-grid{grid-template-columns:repeat(2,1fr)}.portal-frame.presentation-active{--login-width:32%}.portal-frame.login-active{--login-width:50%}}
@media(max-width:630px){.portal-frame{display:block;overflow:visible}.portal-login-panel{min-height:510px}.portal-presentation-panel{min-height:650px}.portal-frame.presentation-active .portal-login-panel{min-height:245px}.portal-frame.presentation-active .portal-login-card{padding:20px 24px}.portal-frame.presentation-active .portal-login-card .form-row,.portal-frame.presentation-active .portal-login-card .login-btn{display:none}.portal-frame.presentation-active .portal-login-card .portal-discover-link{margin-top:10px}.portal-slider{top:auto;bottom:-21px;left:50%;transform:translateX(-50%)}.portal-slider:hover{transform:translateX(-50%) scale(1.06)}.portal-slider span{top:auto;bottom:-18px}.portal-presentation-inner{padding:47px 19px 24px}.portal-nav-link{display:none}.portal-hero h1{font-size:31px}.portal-dashboard{grid-template-columns:1fr}.portal-side-menu{display:none}.portal-kpi-grid{grid-template-columns:repeat(3,1fr)}.portal-kpi-value{font-size:15px}.portal-visual-grid{grid-template-columns:1fr}.portal-module-grid{grid-template-columns:1fr 1fr}.portal-frame.login-active .portal-presentation-inner{opacity:1;transform:none;pointer-events:auto}}

/* Portail directionnel : la présentation active est le site documentaire réel, pas un simple aperçu. */
.portal-frame{--portal-ease:cubic-bezier(.23,1,.32,1)}.portal-login-panel,.portal-presentation-panel,.portal-presentation-inner{transition:flex-basis .66s var(--portal-ease),opacity .38s var(--portal-ease),transform .66s var(--portal-ease),visibility .01s linear .66s}.portal-live-site{position:absolute;z-index:8;inset:0;display:flex;flex-direction:column;visibility:hidden;opacity:0;background:#F0F4F8;transform:translateX(26px);transition:opacity .4s var(--portal-ease),transform .66s var(--portal-ease),visibility .01s linear .66s}.portal-live-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:8px 16px;border-bottom:1px solid #E2E8F0;background:#fff}.portal-live-toolbar span{display:flex;align-items:center;gap:8px;color:#1E3760;font:700 12px var(--display)}.portal-live-toolbar span i{display:grid;width:22px;height:22px;place-items:center;border-radius:6px;background:#2B4C7E;color:#fff;font:700 10px var(--mono);font-style:normal}.portal-live-toolbar-actions{display:flex;gap:8px}.portal-live-toolbar button{border:1px solid #D3DDE8;border-radius:7px;padding:7px 10px;background:#fff;color:#2B4C7E;font:600 10px var(--font);cursor:pointer}.portal-live-toolbar button.portal-live-primary{border-color:#2B4C7E;background:#2B4C7E;color:#fff}.portal-live-site iframe{display:block;flex:1;width:100%;border:0;background:#F0F4F8}.portal-frame.presentation-active{--login-width:0%}.portal-frame.presentation-active .portal-login-panel{min-width:0;overflow:hidden;opacity:0}.portal-frame.presentation-active .portal-presentation-panel{flex-basis:100%}.portal-frame.presentation-active .portal-presentation-inner{visibility:hidden;opacity:0;transform:translateX(-24px)}.portal-frame.presentation-active .portal-live-site{visibility:visible;opacity:1;transform:translateX(0);transition-delay:0s}.portal-frame.presentation-active .portal-slider{left:0;border-color:#fff;transform:translate(-50%,-50%)}.portal-frame.presentation-active .portal-slider:after{content:'→'}.portal-frame.presentation-active .portal-slider span{color:#fff}.portal-frame.login-active{--login-width:100%}.portal-frame.login-active .portal-login-panel{flex-basis:100%;min-width:0}.portal-frame.login-active .portal-presentation-panel{flex-basis:0;overflow:hidden}.portal-frame.login-active .portal-slider{left:100%;transform:translate(-50%,-50%)}.portal-frame.login-active .portal-slider:after{content:'←'}.portal-frame.split-active{--login-width:40%}.portal-frame.split-active .portal-login-panel{min-width:310px;opacity:1}.portal-frame.split-active .portal-presentation-panel{flex-basis:auto;overflow:hidden}.portal-frame.split-active .portal-presentation-inner{visibility:visible;opacity:1;transform:none}.portal-frame.split-active .portal-live-site{visibility:hidden;opacity:0;transform:translateX(26px)}.portal-frame.split-active .portal-slider{left:40%;transform:translate(-50%,-50%)}.portal-frame.split-active .portal-slider:after{content:'↔'}.portal-frame.split-active .portal-slider span{color:#6B7C93}
@media(max-width:630px){.portal-frame.presentation-active .portal-login-panel{display:none}.portal-frame.login-active .portal-presentation-panel{display:none}.portal-frame.split-active .portal-presentation-panel{display:flex}.portal-frame.split-active .portal-login-panel{min-width:0}.portal-frame.presentation-active .portal-presentation-panel{min-height:100vh}.portal-frame.presentation-active .portal-live-toolbar{padding:7px 10px}.portal-frame.presentation-active .portal-live-toolbar span{font-size:11px}.portal-frame.presentation-active .portal-live-toolbar button{padding:6px 8px;font-size:9px}.portal-frame.presentation-active .portal-slider{top:50%;bottom:auto;left:0;transform:translate(-50%,-50%)}.portal-frame.presentation-active .portal-slider:hover{transform:translate(-50%,-50%) scale(1.06)}.portal-frame.login-active .portal-slider{top:50%;bottom:auto;left:100%;transform:translate(-50%,-50%)}.portal-frame.login-active .portal-slider:hover{transform:translate(-50%,-50%) scale(1.06)}}

/* VUE D’ENTRÉE FIDÈLE : proportions, hiérarchie et détails du visuel validé. */
.portal-frame.split-active{--login-width:28%;min-height:min(638px,calc(100vh - 40px));border-radius:10px;background:#F6F8FC}.portal-frame.split-active .portal-login-panel{flex-basis:28%;min-width:255px;background:#214A80}.portal-frame.split-active .portal-login-panel:before{background:linear-gradient(100deg,transparent 0 83%,rgba(255,255,255,.06) 83.1% 83.4%,transparent 83.5% 100%)}.portal-frame.split-active .portal-login-card{justify-content:center;max-width:none;padding:50px 36px 42px;background:transparent!important;border:0!important;box-shadow:none!important}.portal-frame.split-active .portal-login-card>svg{width:62px!important;height:62px!important;margin:0 0 38px!important;border-radius:12px;box-shadow:0 8px 18px rgba(0,0,0,.2)}.portal-frame.split-active .portal-login-card .login-logo{display:none}.portal-frame.split-active .portal-login-card .login-title{margin-bottom:22px;font:600 18px var(--font);letter-spacing:0}.portal-frame.split-active .portal-login-card .login-sub{display:none}.portal-frame.split-active .portal-login-card .form-row{margin-bottom:13px}.portal-frame.split-active .portal-login-card .form-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.portal-frame.split-active .portal-login-card .form-input{height:38px;padding:0 12px;border:1px solid rgba(255,255,255,.48);border-radius:6px;background:rgba(19,54,94,.24);font-size:10px}.portal-frame.split-active .portal-login-card .login-btn{display:block;width:100%;margin-top:14px;padding:10px;border:0;border-radius:6px;background:#E98A7D;color:#fff;font-size:11px;font-weight:700;cursor:pointer;}.portal-frame.split-active .portal-remember{margin:7px 0 21px;font-size:10px}.portal-frame.split-active .portal-discover-link{margin-top:26px;justify-content:center;padding:10px 12px;border:1px solid rgba(255,255,255,.52);border-radius:6px;color:#fff;font-size:10px}.portal-frame.split-active .portal-discover-link span{order:-1;border:0;color:#fff;font-size:14px}.portal-frame.split-active .portal-presentation-inner{padding:25px 42px 24px;background:#F6F8FC}.portal-frame.split-active .portal-nav{min-height:28px}.portal-frame.split-active .portal-brand{font-size:19px}.portal-frame.split-active .portal-brand-mark{width:32px;height:32px;background:#fff;color:#214A80}.portal-frame.split-active .portal-nav-link{font-size:10px;color:#263A54}.portal-frame.split-active .portal-theme-btn{width:26px;height:26px;border:0;background:transparent}.portal-frame.split-active .portal-hero{grid-template-columns:1fr;margin:36px 0 12px}.portal-frame.split-active .portal-eyebrow{display:none}.portal-frame.split-active .portal-hero h1{margin:0;color:#102D54;font:400 clamp(25px,3.25vw,45px) 'Sigmar One',cursive;line-height:1.08;letter-spacing:.4px;text-transform:uppercase}.portal-frame.split-active .portal-hero p{margin-top:8px;font-size:13px;color:#77869A}.portal-frame.split-active .portal-actions{margin-top:13px}.portal-frame.split-active .portal-primary-action{border-radius:6px;padding:10px 15px;background:#214A80;font-size:10px}.portal-frame.split-active .portal-secondary-action{font-size:10px}.portal-frame.split-active .portal-route-note{display:none}.portal-frame.split-active .portal-dashboard{grid-template-columns:136px minmax(0,1fr);min-height:260px;margin-top:13px;border-radius:6px;box-shadow:0 6px 18px rgba(30,55,96,.09)}.portal-frame.split-active .portal-side-menu{padding:15px 11px}.portal-frame.split-active .portal-side-title{margin-bottom:14px;font-size:11px}.portal-frame.split-active .portal-side-item{padding:7px 6px;font-size:8px}.portal-frame.split-active .portal-dashboard-main{padding:13px 15px}.portal-frame.split-active .portal-kpi-grid{gap:8px}.portal-frame.split-active .portal-kpi{padding:10px;border-radius:5px}.portal-frame.split-active .portal-kpi-value{font-size:18px}.portal-frame.split-active .portal-visual-grid{gap:9px;margin-top:10px}.portal-frame.split-active .portal-chart-card,.portal-frame.split-active .portal-map-card{min-height:121px;border-radius:5px}.portal-frame.split-active .portal-module-grid{gap:9px;margin-top:14px}.portal-frame.split-active .portal-module{min-height:55px;padding:10px 11px;border-radius:4px;font-size:9px}.portal-frame.split-active .portal-module i{width:25px;height:25px;background:transparent;color:#214A80;font-size:17px}.portal-frame.split-active .portal-slider{left:28%;width:40px;height:40px;border:3px solid #F6F8FC;background:#E98A7D;box-shadow:0 6px 16px rgba(101,55,45,.28)}.portal-frame.split-active .portal-slider:after{content:'‹›';font:700 16px var(--mono);letter-spacing:-5px}.portal-frame.split-active .portal-slider span{top:46px;color:#2B4C7E;font-size:6px}.portal-frame.split-active .portal-live-site{display:none}
@media(max-width:860px){.portal-frame.split-active{--login-width:32%}.portal-frame.split-active .portal-login-panel{flex-basis:32%;min-width:235px}.portal-frame.split-active .portal-slider{left:32%}.portal-frame.split-active .portal-presentation-inner{padding:23px 25px}.portal-frame.split-active .portal-dashboard{grid-template-columns:112px minmax(0,1fr)}.portal-frame.split-active .portal-module-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:630px){.portal-frame.split-active .portal-login-panel{min-height:470px}.portal-frame.split-active .portal-login-card{padding:35px 28px}.portal-frame.split-active .portal-presentation-inner{padding:38px 18px 22px}.portal-frame.split-active .portal-hero{margin-top:28px}.portal-frame.split-active .portal-hero h1{font-size:27px}.portal-frame.split-active .portal-dashboard{grid-template-columns:1fr}.portal-frame.split-active .portal-side-menu{display:none}.portal-frame.split-active .portal-live-site{display:none}}

/* Contraste de connexion et transitions continues. */
.portal-frame,.portal-login-panel,.portal-presentation-panel,.portal-live-site{will-change:flex-basis,transform,opacity}.portal-login-panel,.portal-presentation-panel{transition:flex-basis .7s cubic-bezier(.22,1,.36,1),min-width .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),opacity .32s ease}.portal-live-site{transition:opacity .34s ease .2s,transform .7s cubic-bezier(.22,1,.36,1),visibility 0s linear .7s}.portal-frame.presentation-active .portal-login-panel{flex:0 0 0%;min-width:0!important;width:0;opacity:0;transform:translateX(-28px)}.portal-frame.presentation-active .portal-presentation-panel{flex:1 1 100%;min-width:0;transform:none}.portal-frame.login-active .portal-login-panel{flex:1 1 100%;min-width:0;opacity:1;transform:none}.portal-frame.login-active .portal-presentation-panel{flex:0 0 0%;min-width:0;opacity:0;transform:translateX(28px)}.portal-frame.split-active .portal-login-panel,.portal-frame.split-active .portal-presentation-panel{opacity:1;transform:none}.portal-live-site:fullscreen,.portal-live-site:-webkit-full-screen{inset:0;display:flex;width:100vw;height:100vh;background:#F0F4F8;transform:none}.portal-live-site:fullscreen .portal-live-toolbar,.portal-live-site:-webkit-full-screen .portal-live-toolbar{min-height:54px;padding:10px 18px;box-shadow:0 2px 12px rgba(30,55,96,.11)}.portal-live-site:fullscreen iframe,.portal-live-site:-webkit-full-screen iframe{height:calc(100vh - 54px)}
.portal-frame.login-active .portal-login-card{max-width:448px;padding:42px 38px 34px!important;border:1px solid #E2E8F0!important;border-radius:16px!important;background:#FFFFFF!important;color:#1E2A3A!important;box-shadow:0 22px 54px rgba(9,27,55,.24)!important}.portal-frame.login-active .portal-login-card>svg{width:58px!important;height:58px!important;margin:0 0 25px!important;border-radius:11px;box-shadow:0 8px 20px rgba(30,55,96,.18)}.portal-frame.login-active .portal-login-card .login-logo{display:none}.portal-frame.login-active .portal-login-card .login-title{margin:0 0 7px;color:#1E3760;font:700 24px var(--display);letter-spacing:-.3px}.portal-frame.login-active .portal-login-card .login-sub{display:block;margin:0 0 23px;color:#5E7189;font-size:12px;line-height:1.55}.portal-frame.login-active .portal-login-card .form-label{position:static;width:auto;height:auto;clip:auto;margin-bottom:6px;color:#51657E;font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.portal-frame.login-active .portal-login-card .form-input{height:42px;border:1px solid #C8D4E2;border-radius:8px;background:#F8FAFD;color:#1E2A3A;font-size:12px;box-shadow:none}.portal-frame.login-active .portal-login-card .form-input::placeholder{color:#91A1B4}.portal-frame.login-active .portal-login-card .form-input:focus{border-color:#2B4C7E;background:#fff;box-shadow:0 0 0 3px rgba(43,76,126,.14)}.portal-frame.login-active .portal-remember{margin:2px 0 15px;color:#52667D;font-size:11px}.portal-frame.login-active .portal-remember input{accent-color:#E98A7D}.portal-frame.login-active .portal-login-card .login-btn{display:block;width:100%;margin:0;border:0;border-radius:9px;padding:12px 14px;background:#214A80;color:#fff;font-size:12px;font-weight:800;box-shadow:0 9px 18px rgba(33,74,128,.25)}.portal-frame.login-active .portal-login-card .login-btn:hover{background:#173B6A;color:#fff;transform:translateY(-1px)}.portal-frame.login-active .portal-discover-link{justify-content:flex-start;margin-top:17px;padding:4px 0;border:0;border-radius:0;color:#2B4C7E;font-size:10px}.portal-frame.login-active .portal-discover-link span{border:0;color:#E98A7D}.portal-frame.login-active .portal-login-card .login-error{margin:0 0 10px;color:#B8473B;font-size:11px;font-weight:700}.portal-frame.login-active .portal-slider{box-shadow:0 10px 28px rgba(101,55,45,.38)}
@media(prefers-reduced-motion:reduce){.portal-login-panel,.portal-presentation-panel,.portal-live-site{transition:none!important}}

/* Boucle décorative du fond : 3 scènes de voyage en lien avec les flux opérationnels. */
.portal-travel-loop{position:fixed;z-index:0;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 18% 24%,#203b69 0,transparent 31%),linear-gradient(120deg,#0E1929,#132944 58%,#0B1523);transition:opacity .28s ease}.portal-travel-scene{position:absolute;inset:0;opacity:0;will-change:opacity,transform}.portal-travel-scene:before,.portal-travel-scene:after{content:"";position:absolute}.travel-atlas{animation:atlasScene 36s linear infinite}.travel-journal{animation:journalScene 36s linear infinite}.travel-horizon{animation:horizonScene 36s linear infinite}
.travel-atlas:before{inset:12% 6% auto auto;width:min(54vw,780px);height:min(54vw,600px);border:1px solid rgba(185,204,230,.18);border-radius:47% 53% 54% 46%;box-shadow:0 0 0 32px rgba(185,204,230,.025),0 0 0 88px rgba(185,204,230,.018);transform:rotate(-11deg)}.travel-atlas:after{right:8%;top:24%;width:38%;height:21%;border-top:1px dashed rgba(185,204,230,.56);border-radius:50%;transform:rotate(-18deg);box-shadow:-18vw 9vw 0 -1px rgba(233,138,125,.96),-18vw 9vw 0 5px rgba(233,138,125,.13)}.travel-atlas .travel-aircraft{position:absolute;right:15%;top:24%;width:21px;height:21px;transform:rotate(16deg);color:#DCE9F9;filter:drop-shadow(0 0 8px rgba(185,204,230,.32));animation:aircraftGlide 10s cubic-bezier(.42,0,.58,1) infinite}.travel-atlas .travel-aircraft:before{content:"✈";font-size:22px;line-height:1}.travel-atlas .travel-country{position:absolute;right:29%;bottom:22%;color:rgba(185,204,230,.52);font:600 9px var(--mono);letter-spacing:2px}.travel-atlas .travel-country:before{content:"N 48°51’ / E 02°21’"}
.travel-journal:before{right:8%;bottom:9%;width:360px;height:235px;border:1px solid rgba(185,204,230,.15);border-radius:10px;background:linear-gradient(135deg,rgba(214,229,246,.07),transparent 45%),repeating-linear-gradient(0deg,transparent 0 20px,rgba(185,204,230,.055) 21px 22px);box-shadow:0 24px 60px rgba(0,0,0,.14);transform:rotate(-7deg)}.travel-journal:after{right:13%;bottom:18%;width:120px;height:120px;border:1px solid rgba(233,138,125,.45);border-radius:50%;box-shadow:0 0 0 9px rgba(233,138,125,.06);transform:rotate(10deg)}.travel-journal .travel-stamp{position:absolute;right:17%;bottom:25%;color:rgba(233,138,125,.9);font:700 18px var(--display);letter-spacing:1px;transform:rotate(-7deg)}.travel-journal .travel-stamp:before{content:"MISSION"}.travel-journal .travel-route{position:absolute;right:23%;bottom:31%;width:230px;height:1px;background:linear-gradient(90deg,transparent,rgba(185,204,230,.7),transparent);transform:rotate(-7deg)}.travel-journal .travel-route:after{content:"● · · · ◆ · · · ●";position:absolute;top:-10px;left:28px;color:#B9CCE6;font:9px var(--mono);letter-spacing:8px;white-space:nowrap}.travel-journal .travel-aircraft{position:absolute;right:39%;bottom:31%;color:#E98A7D;transform:rotate(-13deg);animation:journalFlyby 10s ease-in-out infinite}.travel-journal .travel-aircraft:before{content:"✈";font-size:17px}
.travel-horizon:before{right:-8%;bottom:-17%;width:84%;height:51%;border-radius:52% 48% 0 0;background:radial-gradient(ellipse at 44% 6%,rgba(226,240,224,.14),transparent 23%),linear-gradient(171deg,transparent 0 22%,rgba(80,131,119,.18) 22.5% 40%,rgba(34,70,104,.32) 40.5% 62%,rgba(16,35,60,.38) 62.5%)}.travel-horizon:after{right:11%;bottom:13%;width:260px;height:115px;border-top:1px solid rgba(185,204,230,.34);border-radius:50%;transform:rotate(-4deg)}.travel-horizon .travel-island{position:absolute;right:26%;bottom:20%;width:16px;height:16px;border:1px solid rgba(233,138,125,.8);border-radius:50%;box-shadow:0 0 0 5px rgba(233,138,125,.1),0 0 22px rgba(233,138,125,.42)}.travel-horizon .travel-aircraft{position:absolute;right:48%;bottom:32%;color:#E7F0FA;animation:horizonFloat 9s ease-in-out infinite}.travel-horizon .travel-aircraft:before{content:"✈";font-size:18px}.travel-horizon .travel-country{position:absolute;right:33%;bottom:13%;color:rgba(185,204,230,.57);font:600 8px var(--mono);letter-spacing:2px}.travel-horizon .travel-country:before{content:"CÔTE / 17:40 UTC"}
@keyframes atlasScene{0%{opacity:0;transform:scale(1.012)}4%,28%{opacity:.9;transform:scale(1)}33%,100%{opacity:0;transform:scale(.995)}}@keyframes journalScene{0%,31%{opacity:0;transform:scale(1.012)}36%,61%{opacity:.86;transform:scale(1)}66%,100%{opacity:0;transform:scale(.995)}}@keyframes horizonScene{0%,64%{opacity:0;transform:scale(1.012)}69%,94%{opacity:.84;transform:scale(1)}100%{opacity:0;transform:scale(.995)}}@keyframes aircraftGlide{0%,100%{transform:translate(-3vw,2vw) rotate(16deg)}50%{transform:translate(5vw,-3vw) rotate(16deg)}}@keyframes journalFlyby{0%,100%{transform:translateX(-12px) rotate(-13deg);opacity:.55}50%{transform:translateX(55px) rotate(-13deg);opacity:1}}@keyframes horizonFloat{0%,100%{transform:translate(-5px,5px) rotate(-7deg)}50%{transform:translate(34px,-12px) rotate(-7deg)}}
@media(max-width:760px){.travel-journal:before{right:-24%;bottom:5%;transform:scale(.82) rotate(-7deg)}.travel-atlas:before{right:-20%;width:82vw;height:82vw}.travel-horizon:before{width:120%;right:-32%}.travel-country,.travel-stamp{display:none}}@media(prefers-reduced-motion:reduce){.portal-travel-scene,.travel-atlas .travel-aircraft,.travel-journal .travel-aircraft,.travel-horizon .travel-aircraft{animation:none!important}.travel-atlas{opacity:.32}.travel-journal,.travel-horizon{display:none}}#login-screen:has(.portal-frame.presentation-active) .portal-travel-loop{opacity:0}
