/* Normandie Transports | Édition Signature 2.2 */
:root{--brand-bordeaux:#8e2130;--brand-bordeaux-deep:#641a29;--brand-navy:#172845;--brand-navy-2:#223b60;--brand-cream:#fff9f0;--brand-parchment:#f2eadf;--brand-gold:#c7a279;--brand-ink:#243148;--brand-line:#decfc2}
body{background:radial-gradient(circle at 85% -20%,#f8e9e4 0,transparent 37%),linear-gradient(165deg,#f9f5ee,#f0e8de 70%)}
.sidebar{width:286px;background:linear-gradient(160deg,#14263f 0%,#233857 80%,#452738 125%);border-right:1px solid #40506a}
.brand{padding:5px 9px 24px;gap:13px}.brand img{width:62px;height:62px;border:0;background:transparent;object-fit:contain;box-shadow:0 6px 18px #0002}.brand .brandtitle{font-size:16px;letter-spacing:.75px;line-height:1.1}.brand small{font-size:9px;color:#dbbaa9;font-weight:600}
.nav button{border:1px solid transparent;transition:background .15s,border-color .15s,transform .15s}
.nav button:hover,.nav button.active{background:linear-gradient(110deg,#a02c42,#762637);color:#fff;border-color:#b15662;box-shadow:0 7px 18px #220f1d3d}.nav button:focus-visible{outline:2px solid #d4aa8a;outline-offset:2px}
.shell{padding-top:29px}.heading h1{font-size:28px}.heading{margin-bottom:22px}.heading p{font-size:13px}
.btn{background:linear-gradient(135deg,#a23046,#7e2333);border-color:#9e4554;box-shadow:0 5px 14px #8d243019;transition:transform .14s,box-shadow .14s}.btn:hover{transform:translateY(-1px);box-shadow:0 9px 20px #8d24302e}.btn.positive{background:linear-gradient(135deg,#a23046,#7e2333)}.btn.secondary{background:#253d5c;border-color:#374f6f;box-shadow:0 4px 12px #1b305021}
.tile,.panel{background:#fffdf8;border-color:#ded0c2;box-shadow:0 8px 30px #4933270a}.panel h2{font-weight:750}.tile{position:relative;overflow:hidden}.tile:before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#8e2130,#d2ab86)}
.auth{background:radial-gradient(circle at 72% 24%,#8b4b5652,transparent 44%),linear-gradient(125deg,#14263f,#203554 60%,#4d2637);padding:20px}
.auth-layout{display:grid;grid-template-columns:minmax(330px,1fr) minmax(380px,470px);width:min(1050px,100%);min-height:640px;background:#fff9f0;border-radius:25px;overflow:hidden;box-shadow:0 32px 100px #06091455;border:1px solid #d0b7aa}
.auth-promo{background:radial-gradient(circle at 60% 45%,#76344399,transparent 50%),linear-gradient(150deg,#1a3151,#111f35);color:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:54px;position:relative;overflow:hidden}
.auth-promo::before{content:'';position:absolute;width:460px;height:460px;border:1px solid #ffffff1a;border-radius:50%;right:-210px;top:-135px;box-shadow:0 0 0 65px #ffffff05,0 0 0 140px #ffffff04}
.auth-promo>*{position:relative;z-index:1}.auth-crest{width:205px;height:205px;object-fit:contain;filter:drop-shadow(0 14px 25px #0005);margin-bottom:25px}.auth-kicker{font-size:11px;letter-spacing:2.8px;text-transform:uppercase;color:#e7c9b3;font-weight:800}.auth-promo h2{font-size:37px;line-height:1.06;letter-spacing:-1.4px;margin:15px 0}.auth-promo p{color:#d5dded;font-size:14px;line-height:1.75;max-width:375px}.auth-features{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.auth-features span{border:1px solid #ffffff35;padding:7px 10px;border-radius:100px;color:#ebd7cd;font-size:10px;letter-spacing:.5px}.authbox{width:100%;padding:50px 40px 34px;border-radius:0;border:0;box-shadow:none;background:#fffaf4;align-self:center}.authbox h1{font-size:27px;color:#192b47;margin:10px 0}.authbox p{font-size:13.5px}.authbox label{color:#584e50;font-weight:650}.authbox input{min-height:45px;background:#fff;border:1px solid #d9c6bb}.authbox input:focus{outline-color:#a3334a}.authbox .btn{font-size:14px;padding:13px 15px}.authbox .note{color:#7d7270}.auth-mini-brand{display:flex;align-items:center;gap:11px;margin-bottom:23px}.auth-mini-brand img{width:55px;height:55px;object-fit:contain}.auth-mini-brand span{font-size:11px;letter-spacing:1.5px;font-weight:850;color:#8e2130}.auth-mini-brand small{display:block;letter-spacing:.1px;color:#756a66;margin-top:5px;font-weight:600}
.splash-layout{min-height:490px}.splash-content{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.splash-content img{width:140px;height:140px;object-fit:contain;filter:drop-shadow(0 16px 30px #0004)}.splash-content h1{font-size:34px;color:#fff}.splash-content p{color:#d8c6bd;font-size:13px}.splash-loader{height:4px;width:170px;border-radius:4px;background:#ffffff25;overflow:hidden;margin-top:25px}.splash-loader span{display:block;width:35%;height:100%;background:linear-gradient(90deg,#a84055,#d6aa87);border-radius:4px;animation:splashProgress 1.6s ease-in-out infinite alternate}@keyframes splashProgress{from{transform:translateX(-100%)}to{transform:translateX(340%)}}
.welcome{background:radial-gradient(circle at 87% 35%,#96374d8c,transparent 38%),linear-gradient(120deg,#172845,#2a3d5b 75%,#5c2b3f);border:1px solid #394862;border-radius:22px;padding:30px 34px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:216px;position:relative;overflow:hidden;box-shadow:0 18px 35px #1929471b}
.welcome::after{content:'';position:absolute;right:90px;top:-100px;width:370px;height:370px;border:1px solid #ffffff19;border-radius:50%;box-shadow:0 0 0 45px #ffffff08,0 0 0 100px #ffffff05}.welcome-copy{position:relative;z-index:1}.welcome .eyebrow{color:#e2bdb0;font-size:10.5px;font-weight:800;letter-spacing:2.3px;text-transform:uppercase;margin:0 0 13px}.welcome h2{color:#fff;font-size:29px;line-height:1.2;margin:0 0 11px;letter-spacing:-.7px}.welcome p{color:#d5deeb;line-height:1.65;font-size:13px;max-width:590px;margin:0}.welcome-logo{width:163px;height:163px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 15px 28px #050c144c);margin-right:42px}.welcome-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.welcome-actions .btn{padding:10px 15px}.welcome-actions .outline{border:1px solid #ffffff70;background:#ffffff1a;color:#fff;box-shadow:none}.quicklinks{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px}.quicklinks-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#8e2130;margin-right:5px}.quicklink{border:1px solid #ddc9bd;color:#243148;background:#fffbf6;border-radius:10px;padding:10px 14px;box-shadow:0 7px 15px #4332230b;font-weight:700;font-size:12px;cursor:pointer}.quicklink:hover{border-color:#9a4053;background:#fcf3ee}.quicklink span{margin-right:7px;font-size:15px}
.auth-legal{margin-top:28px;color:#8f8077;font-size:11px}.splash-layout .authbox{display:none}.sidebar .sidefoot strong{margin-top:7px}
@media(max-width:900px){.auth-layout{grid-template-columns:1fr;max-width:510px}.auth-promo{display:none}.authbox{padding:34px 28px}.welcome-logo{margin-right:0;width:130px;height:130px}.welcome{padding:26px}.welcome h2{font-size:25px}}
@media(max-width:730px){.sidebar{width:100%}.brand img{width:43px;height:43px}.welcome{min-height:auto;padding:22px}.welcome h2{font-size:22px}.welcome-logo{width:100px;height:100px;align-self:flex-end}.welcome-actions .btn{font-size:11px}.quicklinks{gap:6px}.quicklink{font-size:11px;padding:8px 10px}.splash-content img{width:115px;height:115px}}
@media(max-width:480px){.welcome-logo{display:none}.authbox{padding:30px 22px}.auth-layout{min-height:0}.welcome::after{right:-80px}.welcome h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
