/* /admin /portal /panel /yonetim giriş ekranı (tools/portal_giris_ekrani.py). Kök: .portal-login.pl2 */
.portal-login.pl2{--pl-bg:#040b18;--pl-bg2:#071a36;--pl-line:rgba(86,150,255,.18);--pl-line2:rgba(86,150,255,.32);--pl-text:#eaf2ff;--pl-muted:#8fa7c9;--pl-blue:#2f86ff;--pl-blue2:#1667f2;--pl-cyan:#6cc4ff;
  position:relative;min-height:100vh;display:grid;grid-template-columns:minmax(380px,35%) 1fr;align-items:stretch;padding:0;margin:0;max-width:none;width:100%;color:var(--pl-text);
  background:radial-gradient(1200px 700px at 78% 60%,#0b2b63 0%,rgba(7,26,54,0) 60%),linear-gradient(180deg,var(--pl-bg2),var(--pl-bg))!important;font-family:Inter,"Segoe UI",Arial,sans-serif}
.portal-login.pl2 *{box-sizing:border-box}
body:has(.portal-login.pl2){background:#040b18}
.pl2 .pl-logo-acik{display:none!important}
.pl2 .pl-form-col{position:relative;display:flex;flex-direction:column;padding:44px clamp(28px,5vw,88px) 28px;margin:0;border-right:1px solid var(--pl-line2);
  background:linear-gradient(180deg,rgba(6,18,38,.92),rgba(4,11,24,.96));box-shadow:1px 0 0 rgba(47,134,255,.25),12px 0 60px rgba(0,0,0,.35);max-width:none;min-height:100vh}
.pl2 .pl-form-col::after{content:"";position:absolute;top:0;right:-1px;width:2px;height:100%;background:linear-gradient(180deg,transparent,var(--pl-blue) 30%,var(--pl-blue) 70%,transparent);opacity:.7}
.pl2 .pl-logo{display:inline-block;width:160px}
.pl2 .pl-logo img{width:160px;height:auto;display:block}
.pl2 .pl-form-inner{margin:auto 0;max-width:470px;width:100%;padding:40px 0}
.pl2 .pl-eyebrow{margin:0 0 14px;color:var(--pl-cyan);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.pl2 h1{margin:0 0 18px;font-size:clamp(30px,2.6vw,44px);line-height:1.12;font-weight:800;color:var(--pl-text);letter-spacing:0}
.pl2 h1 span{color:var(--pl-blue)}
.pl2 .pl-lead{margin:0 0 34px;color:var(--pl-muted);font-size:17px;line-height:1.55}
.pl2 .pl-form{display:block;margin:0;padding:0;background:none;border:0;box-shadow:none}
.pl2 .pl-form label{display:block;margin:0 0 8px;font-size:14px;font-weight:600;color:#cfdcf2}
.pl2 .pl-field{position:relative;display:block;margin-bottom:20px}
.pl2 .pl-field-ico{position:absolute;left:16px;top:50%;transform:translateY(-50%);display:flex;pointer-events:none}
.pl2 .pl-field-ico svg,.pl2 .pl-eye svg{width:19px;height:19px;fill:none;stroke:#8fb1e6;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pl2 .pl-field input{width:100%;height:52px;margin:0;padding:0 48px;border:1px solid var(--pl-line2);border-radius:8px;background:rgba(9,24,48,.85)!important;color:var(--pl-text)!important;font:inherit;font-size:15px;outline:none;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.pl2 .pl-field input::placeholder{color:#5f7799}
.pl2 .pl-field input:focus{border-color:var(--pl-blue);box-shadow:0 0 0 3px rgba(47,134,255,.25)}
.pl2 .pl-field input:-webkit-autofill{-webkit-text-fill-color:var(--pl-text);box-shadow:0 0 0 40px #0a1a33 inset;caret-color:var(--pl-text)}
.pl2 .pl-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;padding:6px;border:0;border-radius:6px;background:none;cursor:pointer;line-height:0}
.pl2 .pl-eye:hover svg,.pl2 .pl-eye.is-on svg{stroke:var(--pl-cyan)}
.pl2 .pl-eye:focus-visible{outline:2px solid rgba(108,196,255,.6)}
.pl2 .pl-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:54px;margin-top:8px;border:0;border-radius:8px;cursor:pointer;
  background:linear-gradient(90deg,var(--pl-blue2),var(--pl-blue));color:#fff;font:inherit;font-size:16px;font-weight:700;box-shadow:0 10px 30px rgba(22,103,242,.35);transition:transform .15s,box-shadow .15s,filter .15s}
.pl2 .pl-submit-ico{display:flex}
.pl2 .pl-submit-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pl2 .pl-submit:hover{filter:brightness(1.08);box-shadow:0 12px 36px rgba(22,103,242,.5)}
.pl2 .pl-submit:active{transform:translateY(1px)}
.pl2 .pl-submit:focus-visible{outline:3px solid rgba(108,196,255,.6);outline-offset:3px}
.pl2 .pl-submit:disabled{opacity:.65;cursor:wait}
.pl2 .pl-error{margin:4px 0 12px;padding:10px 12px;border:1px solid rgba(255,120,120,.35);border-radius:8px;background:rgba(120,20,30,.25);color:#ffb0b0;font-size:14px}
.pl2 .pl-note{margin:20px 0 0;color:#6f86a8;font-size:13px;line-height:1.5}
.pl2 .pl-note a{color:var(--pl-cyan);text-decoration:none;font-weight:600}
.pl2 .pl-note a:hover{text-decoration:underline}
.pl2 .pl-foot{margin:0;color:#4d6386;font-size:12px}
/* sağ panel */
.pl2 .pl-visual{position:relative;overflow:hidden;min-height:100vh;padding:clamp(40px,7vh,96px) clamp(28px,4vw,72px) 48px;display:flex;flex-direction:column;justify-content:center;gap:28px;isolation:isolate;background:none;border:0}
.pl2 .pl-visual::before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(70,130,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(70,130,255,.06) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 70% 55%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 70% 55%,#000 30%,transparent 75%)}
.pl2 .pl-dekor{position:absolute;inset:0;z-index:-1;pointer-events:none}
.pl2 .pl-copy{max-width:640px;position:relative;z-index:2}
.pl2 .pl-copy h2{margin:0 0 16px;font-size:clamp(26px,2.2vw,38px);line-height:1.2;font-weight:800;color:var(--pl-text);letter-spacing:0}
.pl2 .pl-copy>p:not(.pl-eyebrow){margin:0;color:#b6c8e4;font-size:17px;line-height:1.6}
.pl2 .pl-card{position:relative;z-index:2;max-width:680px;border:1px solid var(--pl-line2);border-radius:12px;background:linear-gradient(180deg,rgba(10,26,54,.86),rgba(6,17,37,.9));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.pl2 .pl-card-head{display:flex;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid var(--pl-line)}
.pl2 .pl-card-head strong{font-size:18px;color:var(--pl-text)}
.pl2 .pl-status{margin-left:auto;display:flex;align-items:center;gap:8px;color:#4ade9a;font-size:14px;font-weight:600}
.pl2 .pl-status i{width:10px;height:10px;border-radius:50%;background:#22c77a;box-shadow:0 0 0 4px rgba(34,199,122,.18);animation:plPulse 2.4s ease-in-out infinite}
.pl2 .pl-metrics{display:grid;grid-template-columns:repeat(4,1fr)}
.pl2 .pl-metric{display:flex;gap:12px;padding:18px 16px}
.pl2 .pl-metric+.pl-metric{border-left:1px solid var(--pl-line)}
.pl2 .pl-metric small{display:block;margin:2px 0 8px;color:#b9c9e2;font-size:13px;white-space:nowrap}
.pl2 .pl-metric strong{font-size:30px;font-weight:700;line-height:1;color:var(--pl-text)}
.pl2 .pl-metric em{margin-left:8px;color:#4ade9a;font-size:12px;font-style:normal;font-weight:600}
.pl2 .pl-card-note{margin:0;padding:10px 24px 12px;border-top:1px solid var(--pl-line);color:#6f86a8;font-size:12px}
.pl2 .pl-ico{flex:0 0 auto;display:inline-grid;place-items:center;color:var(--pl-blue)}
.pl2 .pl-ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pl2 .pl-features{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:820px}
.pl2 .pl-feature{padding:22px 20px;border:1px solid var(--pl-line2);border-radius:10px;background:rgba(7,19,41,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .2s,transform .2s}
.pl2 .pl-feature:hover{border-color:rgba(47,134,255,.55);transform:translateY(-2px)}
.pl2 .pl-feature h3{margin:16px 0 8px;font-size:15px;font-weight:700;color:var(--pl-text)}
.pl2 .pl-feature p{margin:0;color:#9fb3d1;font-size:13px;line-height:1.5}
/* harita */
.pl2 .pl-map{position:absolute;right:-6%;top:28%;width:min(68%,1100px);perspective:1600px}
.pl2 .pl-map-svg{display:block;width:100%;height:auto;overflow:visible;transform:rotateX(38deg) rotateZ(-9deg);transform-origin:60% 60%;filter:drop-shadow(0 30px 60px rgba(0,30,90,.6))}
.pl2 .pl-land-shadow{fill:#02081a;opacity:.85;filter:url(#plSoft)}
.pl2 .pl-land{fill:url(#plLand)}
.pl2 .pl-edge{fill:none;stroke:#4b98ff;stroke-width:1.4;stroke-linejoin:round;opacity:.9}
.pl2 .pl-edge-glow{fill:none;stroke:#2f86ff;stroke-width:7;opacity:.25;filter:url(#plGlow)}
.pl2 .pl-arc{fill:none;stroke:#4f9bff;stroke-width:1.3;opacity:.55}
.pl2 .pl-beam{fill:none;stroke:#8fd3ff;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:170 1000}
.pl2 .pl-head{fill:#fff;filter:drop-shadow(0 0 6px #8fd3ff) drop-shadow(0 0 12px #2f86ff)}
.pl2 .pl-city{fill:#6cc4ff;opacity:.8}
.pl2 .pl-pin-body{fill:#2f86ff;stroke:#9fd2ff;stroke-width:1.2;filter:url(#plGlow)}
.pl2 .pl-pin-dot{fill:#e9f6ff}
.pl2 .pl-pin-base{fill:#9fd2ff;opacity:.9}
.pl2 .pl-ring{fill:none;stroke:#5fb4ff;stroke-width:1.4;opacity:0;transform-box:fill-box;transform-origin:center;animation:plRing 2.8s ease-out infinite}
.pl2 .pl-ring2{animation-delay:1.4s}
/* yüzen karolar */
.pl2 .pl-tiles{position:absolute;z-index:1;top:8%;right:2.5%;width:360px;height:380px}
.pl2 .pl-tile{position:absolute;width:150px;padding:18px 16px;display:flex;flex-direction:column;gap:22px;border:1px solid rgba(110,170,255,.35);border-radius:12px;
  background:linear-gradient(160deg,rgba(28,58,112,.75),rgba(9,22,48,.8));box-shadow:0 18px 40px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.08);color:#cfe1ff;font-size:15px;font-weight:600;line-height:1.25;
  transform:perspective(900px) rotateY(-24deg) rotateX(10deg) rotate(-8deg);animation:plFloat 7s ease-in-out infinite}
.pl2 .pl-tile .pl-ico svg{width:32px;height:32px;filter:drop-shadow(0 0 8px rgba(47,134,255,.8))}
.pl2 .pl-tile1{left:0;top:30px}
.pl2 .pl-tile2{left:130px;top:110px;animation-delay:-2.3s}
.pl2 .pl-tile3{left:225px;top:225px;animation-delay:-4.6s}
@keyframes plRing{0%{opacity:.9;transform:scale(.3)}100%{opacity:0;transform:scale(1.8)}}
@keyframes plPulse{0%,100%{box-shadow:0 0 0 3px rgba(34,199,122,.2)}50%{box-shadow:0 0 0 7px rgba(34,199,122,.05)}}
@keyframes plFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}
@media (max-width:1700px){.pl2 .pl-tiles{display:none}}
@media (max-width:1400px){.pl2 .pl-map{width:78%;right:-18%;top:34%}}
@media (max-width:1100px),(max-height:760px){.pl2 .pl-features{display:none}}
@media (max-width:1100px){.portal-login.pl2{grid-template-columns:minmax(360px,44%) 1fr}.pl2 .pl-metrics{grid-template-columns:repeat(2,1fr)}.pl2 .pl-metric:nth-child(3){border-left:0}.pl2 .pl-metric:nth-child(n+3){border-top:1px solid var(--pl-line)}}
@media (max-width:860px){.portal-login.pl2{grid-template-columns:1fr}.pl2 .pl-visual{display:none}.pl2 .pl-form-col{border-right:0;
  background:radial-gradient(600px 400px at 100% 100%,rgba(22,103,242,.25),transparent 70%),linear-gradient(180deg,rgba(6,18,38,.96),rgba(4,11,24,.98))}.pl2 .pl-form-col::after{display:none}}
@media (max-width:480px){.pl2 .pl-form-col{padding:28px 18px 20px}.pl2 .pl-lead{font-size:16px;margin-bottom:26px}}
@media (prefers-reduced-motion:reduce){.portal-login.pl2 *{animation:none!important}}
/* ---------- açık tema (panel-theme.js: html[data-theme="light"]) ---------- */
html[data-theme="light"] body:has(.portal-login.pl2){background:#f3f7fd}
html[data-theme="light"] .portal-login.pl2{--pl-line:rgba(22,103,242,.12);--pl-line2:rgba(22,103,242,.2);--pl-text:#0f1d33;--pl-muted:#5b6f8c;--pl-blue:#1667f2;--pl-blue2:#0f56d6;--pl-cyan:#0d63d8;
  color:var(--pl-text);background:radial-gradient(1100px 680px at 78% 60%,#d7e7ff 0%,rgba(234,242,255,0) 62%),linear-gradient(180deg,#f7faff,#eaf1fb)!important}
html[data-theme="light"] .pl2 .pl-logo-koyu{display:none!important}
html[data-theme="light"] .pl2 .pl-logo-acik{display:block!important}
html[data-theme="light"] .pl2 .pl-form-col{background:linear-gradient(180deg,#ffffff,#f8fbff);box-shadow:1px 0 0 rgba(22,103,242,.18),12px 0 50px rgba(15,40,90,.08)}
html[data-theme="light"] .pl2 .pl-form-col::after{opacity:.45}
html[data-theme="light"] .pl2 .pl-form label{color:#24385a}
html[data-theme="light"] .pl2 .pl-field input{background:#fff!important;color:var(--pl-text)!important;border-color:#cfdbec}
html[data-theme="light"] .pl2 .pl-field input::placeholder{color:#8a9bb5}
html[data-theme="light"] .pl2 .pl-field input:-webkit-autofill{-webkit-text-fill-color:var(--pl-text);box-shadow:0 0 0 40px #eef4ff inset;caret-color:var(--pl-text)}
html[data-theme="light"] .pl2 .pl-field-ico svg,html[data-theme="light"] .pl2 .pl-eye svg{stroke:#5d7aa6}
html[data-theme="light"] .pl2 .pl-eye:hover svg,html[data-theme="light"] .pl2 .pl-eye.is-on svg{stroke:var(--pl-blue)}
html[data-theme="light"] .pl2 .pl-submit{box-shadow:0 10px 26px rgba(22,103,242,.28)}
html[data-theme="light"] .pl2 .pl-error{background:#fff1f1;border-color:#f3b4b4;color:#b42323}
html[data-theme="light"] .pl2 .pl-note{color:#5b6f8c}
html[data-theme="light"] .pl2 .pl-foot{color:#8293ad}
html[data-theme="light"] .pl2 #portalTurnstileBox{background:#f2f7ff!important;border-color:#cfdcf0!important}
html[data-theme="light"] .pl2 #portalTurnstileBox strong{color:#1d4f9e!important}
html[data-theme="light"] .pl2 .pl-visual::before{background-image:linear-gradient(rgba(22,103,242,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(22,103,242,.07) 1px,transparent 1px)}
html[data-theme="light"] .pl2 .pl-copy>p:not(.pl-eyebrow){color:#3c5274}
html[data-theme="light"] .pl2 .pl-card{background:rgba(255,255,255,.9);border-color:#d6e2f3;box-shadow:0 20px 50px rgba(15,40,90,.12)}
html[data-theme="light"] .pl2 .pl-metric small{color:#4d6283}
html[data-theme="light"] .pl2 .pl-metric em,html[data-theme="light"] .pl2 .pl-status{color:#12945c}
html[data-theme="light"] .pl2 .pl-card-note{color:#7385a3}
html[data-theme="light"] .pl2 .pl-feature{background:rgba(255,255,255,.88);border-color:#d6e2f3;box-shadow:0 10px 26px rgba(15,40,90,.07)}
html[data-theme="light"] .pl2 .pl-feature:hover{border-color:rgba(22,103,242,.45)}
html[data-theme="light"] .pl2 .pl-feature p{color:#566b8c}
html[data-theme="light"] .pl2 .pl-map-svg{filter:drop-shadow(0 26px 40px rgba(22,80,180,.18))}
html[data-theme="light"] .pl2 .pl-land{fill:url(#plLandLight)}
html[data-theme="light"] .pl2 .pl-land-shadow{fill:#9fb8e0;opacity:.45}
html[data-theme="light"] .pl2 .pl-edge{stroke:#2f7df0;opacity:.85}
html[data-theme="light"] .pl2 .pl-edge-glow{stroke:#7fb2ff;opacity:.35}
html[data-theme="light"] .pl2 .pl-arc{stroke:#2f7df0;opacity:.4}
html[data-theme="light"] .pl2 .pl-beam{stroke:#1667f2}
html[data-theme="light"] .pl2 .pl-head{fill:#ffffff;filter:drop-shadow(0 0 5px #1667f2) drop-shadow(0 0 10px #5aa2ff)}
html[data-theme="light"] .pl2 .pl-city{fill:#1667f2;opacity:.65}
html[data-theme="light"] .pl2 .pl-pin-body{fill:#1667f2;stroke:#ffffff}
html[data-theme="light"] .pl2 .pl-pin-base{fill:#5f9cf5;opacity:.6}
html[data-theme="light"] .pl2 .pl-ring{stroke:#1667f2}
html[data-theme="light"] .pl2 .pl-tile{background:linear-gradient(160deg,rgba(255,255,255,.92),rgba(232,241,255,.88));border-color:#cfdff6;color:#1d3557;box-shadow:0 18px 40px rgba(15,40,90,.14),inset 0 1px 0 #fff}
html[data-theme="light"] .pl2 .pl-tile .pl-ico svg{filter:none}
@media (max-width:860px){html[data-theme="light"] .pl2 .pl-form-col{background:radial-gradient(600px 400px at 100% 100%,rgba(22,103,242,.12),transparent 70%),linear-gradient(180deg,#fff,#f4f8ff)}}
