.login-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 2rem 1rem 0;
  background: radial-gradient(circle at 72% 18%, rgba(69,183,214,.35), transparent 24%), linear-gradient(180deg,#061c2d 0%,#0c3b59 58%,#071824 100%);
}
.login-shell::before {
  content: ""; position: absolute; z-index: 0; inset: 58% 0 0;
  background: linear-gradient(90deg,transparent 49.8%,rgba(116,201,220,.35) 50%,transparent 50.2%), repeating-linear-gradient(90deg,transparent 0 9.8%,rgba(82,139,158,.16) 10%), linear-gradient(180deg,rgba(3,19,29,.2),#030d14);
  clip-path: polygon(0 34%,18% 25%,39% 31%,59% 17%,79% 28%,100% 18%,100% 100%,0 100%);
}
.flight-scene { position:absolute; z-index:1; inset:0; pointer-events:none; overflow:hidden; }
.flying-plane {
  position:absolute; display:block; color:rgba(220,244,250,.84); font-family:"Segoe UI Symbol",sans-serif;
  font-size:clamp(1.4rem,2.5vw,2.5rem); line-height:1; filter:drop-shadow(0 0 9px rgba(83,207,235,.5)); will-change:transform;
}
.flying-plane::after { content:""; position:absolute; right:85%; top:48%; width:130px; height:1px; background:linear-gradient(90deg,transparent,rgba(203,240,249,.55)); }
.plane-one { top:20%; animation:fly-right 16s linear infinite; }
.plane-two { top:44%; font-size:clamp(1rem,1.8vw,1.8rem); animation:fly-left 22s linear -8s infinite; }
.plane-three { top:67%; font-size:clamp(.9rem,1.4vw,1.4rem); animation:fly-right 27s linear -17s infinite; opacity:.7; }
@keyframes fly-right { from{transform:translateX(-18vw) translateY(12px) rotate(-5deg)} 48%{transform:translateX(48vw) translateY(-15px) rotate(1deg)} to{transform:translateX(112vw) translateY(5px) rotate(4deg)} }
@keyframes fly-left { from{transform:translateX(112vw) translateY(-8px) scaleX(-1) rotate(-3deg)} 52%{transform:translateX(48vw) translateY(15px) scaleX(-1) rotate(2deg)} to{transform:translateX(-18vw) translateY(-5px) scaleX(-1) rotate(4deg)} }
.control-tower { position:relative; z-index:2; width:min(520px,94vw); display:flex; flex-direction:column; align-items:center; filter:drop-shadow(0 32px 45px rgba(0,0,0,.5)); }
.login-card.tower-cabin {
  position:relative; z-index:3; width:100%; padding:2rem 4.25rem 2.35rem; border:1px solid rgba(153,224,240,.58); border-top:8px solid #50bed1; border-radius:0;
  background:linear-gradient(110deg,rgba(255,255,255,.94),rgba(232,246,250,.86)),rgba(255,255,255,.88); backdrop-filter:blur(3px);
  clip-path:polygon(8% 0,92% 0,100% 15%,94% 100%,6% 100%,0 15%); box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}
.login-card.tower-cabin::before,.login-card.tower-cabin::after { content:""; position:absolute; top:0; bottom:0; width:1px; background:rgba(27,95,119,.22); transform:skew(-7deg); }
.login-card.tower-cabin::before { left:11%; }
.login-card.tower-cabin::after { right:11%; transform:skew(7deg); }
.tower-kicker { margin:.8rem 0 .15rem; color:#247b98; font-size:.68rem; font-weight:900; letter-spacing:.26em; text-align:center; }
.tower-cabin .login-logo { margin-inline:auto; }
.tower-cabin h1 { text-align:center; letter-spacing:.06em; color:#082f49; }
.tower-cabin > .muted { text-align:center; margin-top:.35rem; }
.tower-cabin input { background:rgba(255,255,255,.92); border-color:#abc9d4; }
.tower-cabin button { background:linear-gradient(135deg,#0f6fa5,#164c75); box-shadow:0 8px 20px rgba(12,73,107,.24); }
.tower-neck { width:43%; height:105px; margin-top:-1px; background:linear-gradient(90deg,#172e3b,#45606d 48%,#142936); clip-path:polygon(14% 0,86% 0,100% 100%,0 100%); }
.tower-base { width:58%; height:20px; border-radius:4px 4px 0 0; background:linear-gradient(180deg,#55717d,#142a36); }
@media(max-height:760px){.login-shell{padding-top:.75rem}.login-card.tower-cabin{padding-top:1.2rem;padding-bottom:1.35rem}.tower-neck{height:55px}.tower-cabin .login-logo{max-height:65px}}
@media(max-width:560px){.login-card.tower-cabin{padding-inline:2.7rem}.tower-neck{height:70px}}
@media(prefers-reduced-motion:reduce){.flying-plane{animation:none}.plane-one{left:8%}.plane-two{right:8%}.plane-three{left:72%}}

/* Tour de controle panoramique validee pour la page de connexion. */
.login-shell{min-height:100vh;padding:clamp(4.5rem,11vh,8rem) 1rem 2rem;background:#06182a url('/tower-control-login-v2.png') center/cover no-repeat}
.login-shell::before{inset:0;clip-path:none;background:linear-gradient(90deg,rgba(2,13,25,.38),transparent 30% 70%,rgba(2,13,25,.38)),linear-gradient(180deg,rgba(2,12,24,.14),transparent 65%,rgba(2,12,24,.3))}
.flight-scene{z-index:1}.control-tower{width:min(390px,88vw);filter:drop-shadow(0 18px 38px rgba(0,0,0,.6))}
.login-card.tower-cabin{width:100%;padding:1rem 1.4rem 1.25rem;border:1px solid rgba(52,210,235,.72);border-top:1px solid rgba(52,210,235,.72);border-radius:8px;clip-path:none;background:linear-gradient(180deg,rgba(3,29,47,.97),rgba(4,20,35,.98));box-shadow:0 0 0 1px rgba(33,158,190,.2),0 0 34px rgba(0,194,231,.2);backdrop-filter:blur(8px)}
.login-card.tower-cabin::before,.login-card.tower-cabin::after{display:none}.tower-cabin .login-logo{width:180px;max-height:58px;padding:.25rem;background:#fff;border-radius:5px}.tower-kicker{display:none}.tower-cabin h1{margin:.7rem 0 .2rem;color:#dff9ff;font-size:1.35rem;letter-spacing:.08em}.tower-cabin>.muted{margin:.15rem 0 .7rem;color:#9dc8d5}.tower-cabin label{color:#ccecf4}.tower-cabin input{min-height:42px;background:rgba(4,21,35,.92);border-color:#287995;color:#fff}.tower-cabin input:focus{border-color:#46d4ed;box-shadow:0 0 0 3px rgba(70,212,237,.15)}.tower-cabin button{min-height:44px;background:linear-gradient(135deg,#087ea3,#0ea8ca);box-shadow:0 8px 22px rgba(0,164,205,.3)}.tower-neck,.tower-base{display:none}
#activation-form .password-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.55rem}#activation-form .password-entry input{min-width:0;width:100%}#activation-form .password-entry button{width:auto;min-width:88px;margin-top:.4rem;padding-inline:1rem;white-space:nowrap}
@media(max-height:780px){.login-shell{padding-top:2rem;background-position:center}.login-card.tower-cabin{padding:.7rem 1.15rem}.tower-cabin .login-logo{max-height:46px}.tower-cabin h1{font-size:1.1rem}.tower-cabin>.muted{display:none}}
@media(max-width:600px){.login-shell{padding-top:8vh;background-position:center;background-size:auto 100%}.login-shell::before{background:rgba(2,13,25,.34)}.control-tower{width:min(360px,92vw)}.login-card.tower-cabin{padding:1rem}.flying-plane{opacity:.6}}
