
:root{
  --bg:#edf3fa;
  --card:#ffffff;
  --line:#d8e3ef;
  --text:#16355c;
  --muted:#557095;
  --brand:#1f5aa8;
  --brand-dark:#194784;
  --soft:#f7fbff;
  --success-bg:#ecfdf5;
  --success-line:#a7f3d0;
  --success-text:#047857;
  --warn-bg:#fff7ed;
  --warn-line:#fdba74;
  --warn-text:#9a3412;
  --shadow:0 18px 40px rgba(15, 23, 42, 0.10);
  --radius:28px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
.page-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-layout{width:min(1260px,100%);min-height:680px;background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:grid;grid-template-columns:1.12fr .88fr}
.brand-panel{position:relative;padding:26px 34px 34px;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(20,52,94,.58)),linear-gradient(135deg,#d9e6f5 0%,#a6b7cb 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.logo-row{display:flex;gap:24px;align-items:flex-start}
.logo-box{color:#183c73;background:rgba(255,255,255,.22);padding:14px 16px;border-radius:18px;backdrop-filter:blur(4px)}
.logo-box .logo-title{font-size:18px;font-weight:800;letter-spacing:.08em}
.logo-box .logo-sub{font-size:26px;font-weight:800;line-height:1}
.logo-box .logo-caption{font-size:10px;font-weight:700;letter-spacing:.1em;margin-top:6px}
.logo-box.commercial .logo-sub{font-size:20px}
.brand-hero{margin-top:16px;position:relative;min-height:330px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(8,28,58,.22));padding:20px 16px;overflow:hidden}
.brand-badge{position:absolute;top:18px;left:18px;display:inline-block;background:rgba(255,255,255,.24);color:#fff;font-weight:700;font-size:14px;padding:11px 16px;border-radius:999px}
.brand-circle{position:relative;width:min(520px,100%);aspect-ratio:1/1;margin:18px auto 0;border-radius:50%}
.brand-circle::before{content:"";position:absolute;inset:48px;border:5px solid rgba(8,30,63,.92);border-radius:50%}
.circle-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:#08264f;font-weight:800;font-size:clamp(36px,5vw,64px);line-height:.98}
.circle-label{position:absolute;color:#08264f;font-weight:800;font-size:clamp(16px,1.7vw,28px);white-space:nowrap}
.top{top:30px;left:50%;transform:translateX(-50%)}
.right-top{top:86px;right:36px;transform:rotate(58deg)}
.right{top:175px;right:8px;transform:rotate(88deg)}
.bottom-right{bottom:92px;right:44px;transform:rotate(126deg)}
.bottom{bottom:32px;left:50%;transform:translateX(-50%)}
.bottom-left{bottom:96px;left:42px;transform:rotate(-140deg)}
.left-bottom{top:175px;left:10px;transform:rotate(-86deg)}
.left{top:108px;left:26px;transform:rotate(-66deg)}
.left-top{top:52px;left:112px;transform:rotate(-30deg)}
.feature-list{display:grid;gap:14px;margin-top:16px}
.feature-card{background:rgba(37,84,135,.88);border:1px solid rgba(255,255,255,.10);color:#fff;border-radius:18px;padding:18px 16px}
.feature-card h3{margin:0 0 8px;font-size:18px}
.feature-card p{margin:0;line-height:1.45;color:rgba(255,255,255,.94)}
.form-panel{background:#fff;display:flex;align-items:center;justify-content:center;padding:32px}
.form-inner{width:min(430px,100%)}
.eyebrow{font-size:14px;font-weight:800;letter-spacing:.22em;color:#0d4a8f;margin-bottom:18px}
.form-inner h1{margin:0 0 10px;color:#18457f;font-size:62px;line-height:.96}
.intro{margin:0 0 22px;font-size:18px;line-height:1.5;color:var(--muted)}
.field-group{margin-bottom:18px}
.field-group label{display:block;font-size:14px;font-weight:800;margin-bottom:10px;color:#0f3568}
input[type="email"],input[type="password"],input[type="text"]{width:100%;border:1px solid #c9d7e8;border-radius:18px;padding:15px 18px;font-size:16px;color:#173b6c;background:#f8fbff}
.password-wrap{position:relative}
.password-wrap input{padding-right:84px}
.inline-btn{position:absolute;top:50%;right:14px;transform:translateY(-50%)}
.link-btn{background:none;border:none;color:#1d4ed8;font-weight:700;cursor:pointer;padding:0;font-size:14px}
.sub-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:8px 0 24px}
.remember-wrap{display:flex;align-items:center;gap:10px;font-size:14px;color:#2f4f78}
.login-btn{width:100%;border:none;border-radius:18px;padding:18px 20px;font-size:18px;font-weight:800;cursor:pointer;background:linear-gradient(180deg,#2f66b3,#275ca7);color:#fff;box-shadow:0 14px 24px rgba(47,102,179,.22)}
.login-btn:hover{background:linear-gradient(180deg,#285ca6,#214f90)}
.status-box{margin-top:16px;border-radius:16px;padding:14px 16px;line-height:1.5;font-size:14px}
.status-box.success{background:var(--success-bg);border:1px solid var(--success-line);color:var(--success-text)}
.status-box.warning{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-text)}
.hidden{display:none!important}
.session-card{margin-top:18px;border:1px solid var(--line);border-radius:22px;padding:18px;background:var(--soft)}
.session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.session-user{display:flex;gap:14px;align-items:center}
.avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#fff}
.avatar-fallback{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;background:#dbe7f5;color:#173b6c;border:1px solid var(--line)}
.session-name{font-size:18px;font-weight:800;color:#173b6c}
.session-role{margin-top:5px;font-size:14px;color:var(--muted)}
.session-access{margin-top:14px;font-size:14px;line-height:1.5;color:#36557d}
.session-actions{margin-top:16px}
.secondary-btn,.ghost-btn{border:none;cursor:pointer;font-weight:700;border-radius:14px;padding:11px 14px}
.secondary-btn{background:#e7edf5;color:#133864}
.ghost-btn{background:#fff;color:#1d4ed8;border:1px solid #c9d7e8}
.debug-box{margin-top:18px;border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:#fbfdff}
.debug-box summary{cursor:pointer;font-weight:700;color:#325785}
.debug-box pre{margin:10px 0 0;white-space:pre-wrap;word-break:break-word;font-size:12px;color:#173b6c}
@media (max-width:1080px){.login-layout{grid-template-columns:1fr}.form-panel{padding:26px}}
@media (max-width:720px){.page-shell{padding:14px}.brand-panel{padding:18px}.form-inner h1{font-size:48px}.sub-actions{flex-direction:column;align-items:flex-start}.circle-center{font-size:42px}}
