:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif; color: #182033; background: #f4f6fa; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }
button, input { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.muted { color: #6f788b; }
.error { min-height: 22px; margin: 10px 0 0; color: #b42318; }
.login-view { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 15% 10%, #fff1f2, transparent 34%), #f4f6fa; }
.login-card { width: min(440px, 100%); padding: 42px; border: 1px solid #d9deea; border-radius: 24px; background: #fff; box-shadow: 0 22px 70px rgba(31, 42, 68, .12); }
.brand-logo { display: block; width: 190px; max-height: 72px; margin: 0 auto 28px; }
.product-kicker { margin: 0 0 6px; color: #d5000d; font-size: 12px; font-weight: 750; letter-spacing: .14em; }
h1, h2, p { margin-top: 0; }
.login-card label { display: grid; gap: 8px; margin-top: 20px; color: #4f586b; }
.login-card input { width: 100%; height: 48px; border: 1px solid #cfd5e1; border-radius: 10px; padding: 0 14px; outline: none; }
.login-card input:focus { border-color: #d5000d; box-shadow: 0 0 0 3px rgba(213, 0, 13, .09); }
.password-field { display: grid; grid-template-columns: 1fr 48px; gap: 8px; }
.password-toggle { border: 1px solid #cfd5e1; border-radius: 10px; background: #fff; color: #4f586b; }
.password-toggle svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.password-toggle[aria-pressed="false"] .eye-slash { display: none; }
.primary { border: 0; background: #d5000d; color: #fff; font-weight: 700; }
.full { width: 100%; height: 50px; margin-top: 24px; border-radius: 10px; }
.security-note { margin: 28px 0 0; color: #8991a2; font-size: 12px; text-align: center; }
.state-card { width: min(520px, calc(100% - 48px)); margin: 15vh auto; padding: 36px; border: 1px solid #d9deea; border-radius: 18px; background: #fff; text-align: center; }
.app { min-height: 100vh; display: grid; grid-template-columns: 236px 1fr; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 18px; background: #171b27; color: #fff; display: flex; flex-direction: column; }
.sidebar-logo { width: 164px; max-height: 60px; margin: 0 auto 10px; filter: brightness(0) invert(1); }
.environment { margin: 0 auto 30px; color: #adb5c7; font-size: 12px; }
.sidebar nav { display: grid; gap: 6px; }
.nav { padding: 12px 14px; border: 0; border-radius: 9px; background: transparent; color: #bdc5d5; text-align: left; }
.nav:hover, .nav.active { background: #2b3142; color: #fff; }
.sidebar-footer { margin-top: auto; display: grid; gap: 12px; color: #adb5c7; font-size: 12px; }
.sidebar-footer button { padding: 10px; border: 1px solid #465066; border-radius: 8px; background: transparent; color: #fff; }
main { min-width: 0; padding: 36px 42px; }
header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
header h1 { margin: 0; }
header button, .section-head button, .session-item button, .state-card button { padding: 9px 14px; border: 1px solid #cfd5e1; border-radius: 8px; background: #fff; color: #30384a; }
.panel { display: none; }
.panel.active { display: block; }
.kpi-grid { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 14px; }
.kpi { padding: 22px; border: 1px solid #dde2ec; border-radius: 14px; background: #fff; }
.kpi strong { display: block; margin-top: 8px; font-size: 30px; }
.notice { margin-top: 18px; padding: 20px; border-left: 4px solid #d5000d; border-radius: 8px; background: #fff; }
.notice p { margin: 8px 0 0; color: #6f788b; }
.section-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.section-head h2 { margin-bottom: 6px; }
.section-head p { margin-bottom: 0; color: #6f788b; }
.table-wrap { overflow: auto; border: 1px solid #dde2ec; border-radius: 12px; background: #fff; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 13px 14px; border-bottom: 1px solid #edf0f5; text-align: left; vertical-align: top; }
th { color: #697286; background: #fafbfc; font-size: 12px; white-space: nowrap; }
.badge { display: inline-block; margin: 1px 4px 1px 0; padding: 3px 7px; border-radius: 999px; background: #eef1f6; font-size: 12px; }
.badge.active, .badge.succeeded { background: #e9f8ef; color: #137a3d; }
.badge.locked, .badge.denied, .badge.failed, .badge.disabled { background: #fff0f0; color: #b42318; }
.session-list { display: grid; gap: 12px; }
.session-item { display: flex; justify-content: space-between; gap: 20px; padding: 18px; border: 1px solid #dde2ec; border-radius: 12px; background: #fff; }
.session-item p { margin: 5px 0 0; color: #6f788b; font-size: 13px; }
@media (max-width: 980px) { .app { grid-template-columns: 1fr; } .sidebar { position: static; height: auto; } .sidebar nav { grid-template-columns: repeat(4, 1fr); } .sidebar-footer { margin-top: 18px; } main { padding: 24px 18px; } .kpi-grid { grid-template-columns: repeat(2, 1fr); } }
