/* PaaS Admin-aligned visual layer. No API, form or deployment behavior changes. */
.portal-console {
  --pc-ink:#172238; --pc-muted:#718197; --pc-line:#e1e7ef;
  --pc-blue:#126bfa; --pc-nav:#0e1624; --bs-primary:#126bfa;
  --bs-primary-rgb:18,107,250; --bs-body-color:#172238;
  background:#fff; color:var(--pc-ink);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR',sans-serif;
  font-size:14px; line-height:1.55; margin:0;
}
.portal-console .sidebar {
  width:240px; background:var(--pc-nav); padding:0;
  position:fixed; inset:0 auto 0 0; min-height:0; overflow-y:auto;
  display:flex; flex-direction:column; border-right:1px solid #1e2b3e;
}
.portal-console .sidebar .brand {
  min-height:84px; padding:22px 20px; border-bottom:1px solid #ffffff14;
  display:flex; align-items:center; gap:10px; color:#fff; font-size:17px;
}
.portal-console .sidebar .brand a { font-size:17px; gap:10px; letter-spacing:-.3px; }
.portal-brand-mark {
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  width:34px; height:34px; border-radius:9px; background:#126bfa;
  color:white; font-size:21px; font-weight:800; vertical-align:middle;
}
.portal-brand-caption {display:block; font-size:9px; letter-spacing:1.4px; font-weight:500; color:#92a2b8; margin-top:3px;}
.portal-console .sidebar .top-tabs {padding:8px 12px; gap:4px; border-bottom:1px solid #ffffff14;}
.portal-console .sidebar .top-tabs a {color:#aeb9c8; border:0; border-radius:6px; font-size:12px; padding:8px;}
.portal-console .sidebar .top-tabs a.active {background:#1b2739; color:#fff;}
.portal-console .sidebar .menu-section {padding:8px 10px;}
.portal-console .sidebar .section-label {color:#8b9bb1; padding:8px 12px; font-size:10px; letter-spacing:1px;}
.portal-console .sidebar .menu-item,
.portal-console .sidebar .menu-toggle,
.portal-console .sidebar .nav-link {padding:9px 12px; border-radius:6px; color:#aeb9c8; font-size:13px; line-height:1.5;}
.portal-console .sidebar .menu-item:hover,
.portal-console .sidebar .menu-toggle:hover,
.portal-console .sidebar .nav-link:hover {background:#172235; color:#fff;}
.portal-console .sidebar .menu-item.active,
.portal-console .sidebar .nav-link.active {background:#1b2739; color:#fff; box-shadow:inset 3px 0 #126bfa;}
.portal-console .sidebar .menu-item.disabled {color:#7f8da1; opacity:.65;}
.portal-console .sidebar .submenu {background:transparent; padding-top:4px;}
.portal-console .sidebar .submenu .menu-item {padding-left:36px;}
.portal-console .sidebar .user-area {padding:16px 12px; flex-wrap:wrap; gap:8px; border-top:1px solid #ffffff14;}
.portal-console .sidebar .username {min-width:80px; overflow-wrap:anywhere; color:#c5cfdd;}
.portal-console .sidebar .user-area a {color:#aeb9c8;}
.portal-console .main-content {margin-left:240px; padding:0 32px 32px; min-width:0; min-height:100vh;}
.portal-context {height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--pc-line); color:var(--pc-muted); font-size:12px; margin-bottom:28px;}
.portal-context span[aria-hidden] {padding:0 10px; color:#b5c1d0;}
.portal-account {color:#435269; max-width:45%; overflow-wrap:anywhere;}
.portal-console .page-header {padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid var(--pc-line);}
.portal-eyebrow {font-size:10px; font-weight:700; letter-spacing:1.3px; color:#149465; margin-bottom:7px;}
.portal-console .page-header h5 {font-size:28px; font-weight:700; letter-spacing:-1px; color:var(--pc-ink);}
.portal-console .topbar {box-shadow:none; border-radius:0; padding:0 0 24px; border-bottom:1px solid var(--pc-line); margin-bottom:24px; gap:12px; flex-wrap:wrap;}
.portal-console .topbar h5 {font-size:26px; letter-spacing:-.8px;}
.portal-console .card, .portal-console .stat-card {
  border:1px solid var(--pc-line)!important; border-radius:10px!important;
  box-shadow:none!important; background:#fff;
}
.portal-console .card-header {background:#f8fafc; border-bottom:1px solid var(--pc-line); padding:14px 20px; font-weight:600;}
.portal-console .card-body {padding:20px;}
.portal-console .card-footer {background:#f8fafc; border-top:1px solid var(--pc-line);}
.portal-console .table {font-size:13px; --bs-table-hover-bg:#f5f9ff; --bs-table-border-color:#e1e7ef;}
.portal-console .table>:not(caption)>*>* {padding:13px 14px!important; vertical-align:middle!important; border-bottom-color:var(--pc-line);}
.portal-console .table thead th {background:#f8fafc; color:#60748d; font-size:11px; font-weight:600; white-space:nowrap;}
.portal-console .table tbody td {color:#25344a;}
.portal-console .table-responsive {border-radius:8px;}
.portal-console .btn {border-radius:6px; font-size:13px; font-weight:500; padding:8px 14px; box-shadow:none;}
.portal-console .btn-sm {padding:5px 10px; font-size:12px;}
.portal-console .btn-primary {--bs-btn-bg:#126bfa; --bs-btn-border-color:#126bfa; --bs-btn-hover-bg:#075de5; --bs-btn-hover-border-color:#075de5; background:#126bfa; border-color:#126bfa;}
.portal-console .btn-primary:hover {background:#075de5; border-color:#075de5;}
.portal-console .btn-outline-primary {--bs-btn-color:#126bfa; --bs-btn-border-color:#c5d9fb; --bs-btn-hover-bg:#126bfa; --bs-btn-hover-border-color:#126bfa;}
.portal-console .form-control, .portal-console .form-select, .portal-console .input-group-text {border-color:#d6dfeb; border-radius:6px; font-size:13px; min-height:36px;}
.portal-console .form-control:focus,.portal-console .form-select:focus {border-color:#126bfa; box-shadow:0 0 0 3px #126bfa18;}
.portal-console .form-label {color:#435269; font-size:12px; font-weight:600;}
.portal-console .text-muted {color:#718197!important;}
.portal-console .nav-tabs {border-color:var(--pc-line); gap:4px;}
.portal-console .nav-tabs .nav-link {border:0; border-bottom:2px solid transparent; color:#60748d; padding:12px 16px; font-size:13px;}
.portal-console .nav-tabs .nav-link.active {color:#126bfa; border-bottom-color:#126bfa; background:#f5f9ff;}
.portal-console .badge {font-size:11px; font-weight:600; padding:5px 8px; border-radius:5px;}
.portal-console .alert {border-radius:8px; font-size:13px;}
.portal-console .modal-content {border:1px solid var(--pc-line); border-radius:12px; box-shadow:0 20px 70px #0e162430;}
.portal-console .modal-header,.portal-console .modal-footer {border-color:var(--pc-line); padding:16px 20px;}
.portal-console .modal-title {font-size:17px; font-weight:600;}
.portal-console .modal-body {padding:20px;}
.portal-console pre {border-radius:8px;}
.portal-console :is(a,button):focus-visible {outline:2px solid #126bfa; outline-offset:3px;}
.portal-auth {background:#f5f7fb;}
.portal-auth .navbar {background:#0e1624!important; padding:16px 0; box-shadow:none!important;}
.portal-auth .navbar-brand {color:white; font-weight:700; display:flex; align-items:center; gap:10px;}
.portal-auth .navbar .nav-link {color:#c5cfdd;}
.portal-auth .navbar-toggler {background:#e1e7ef;}
.portal-auth main {padding-top:64px!important;}
.portal-auth main>.container {max-width:900px;}
.portal-auth .card-header {font-size:21px; color:#172238; padding:24px; background:white;}
.portal-auth .card-body {padding:28px 24px;}
@media(min-width:769px) {
 .portal-user .card-body>.d-flex.mb-3 {flex-wrap:wrap; row-gap:10px!important;}
}
/* v2: match the actual Admin shell, not the legacy portal navigation. */
.portal-console {--pc-surface:#fff; --pc-soft:#f8fafc; letter-spacing:-.012em; -webkit-font-smoothing:antialiased;}
.portal-console .sidebar {width:262px; padding:10px 14px 18px; z-index:80;}
.portal-console .sidebar .brand {position:relative; min-height:57px; padding:5px 42px 15px 4px; border:0;}
.portal-console .sidebar .brand a {font-size:24px; font-weight:800; color:#fff; text-decoration:none; letter-spacing:-.03em;}
.portal-theme-toggle {position:absolute; right:2px; top:7px; width:34px; height:34px; border:0; border-radius:7px; background:transparent; color:#e7eef8; font-size:23px; cursor:pointer;}
.portal-theme-toggle:hover {background:#ffffff14;}
.portal-nav {padding-top:16px;}
.portal-console .sidebar .section-label {padding:12px 10px 5px; font-size:9px; font-weight:800; color:#718096; letter-spacing:.1em;}
.portal-console .sidebar .menu-item {display:flex; align-items:center; min-height:39px; margin:1px 0; padding:9px 11px; gap:10px; font-size:12px; font-weight:600; text-decoration:none;}
.portal-console .sidebar .menu-item i {width:22px; text-align:center; font-size:14px;}
.portal-console .sidebar .user-area {display:flex; margin-top:auto; font-size:11px;}
.portal-console .sidebar .username {flex:1;}
.portal-console .sidebar .user-area a {font-size:11px; text-decoration:none;}
.portal-user .main-content {margin-left:262px; padding:0;}
.portal-user .portal-context {position:sticky; top:0; z-index:70; height:64px; margin:0; padding:0 30px; background:var(--pc-surface); flex-wrap:nowrap;}
.portal-crumb {display:flex; align-items:center; gap:8px; min-width:0;}
.portal-crumb strong {color:var(--pc-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.portal-account {display:flex; align-items:center; gap:12px; font-size:11px; flex-shrink:0;}
.portal-avatar {display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#eaf2ff; color:#126bfa; font-weight:700;}
.portal-menu-toggle {display:none; border:1px solid var(--pc-line); border-radius:5px; background:var(--pc-surface); color:var(--pc-ink); padding:4px 8px;}
.portal-content {padding:24px 30px 32px;}
.portal-console .page-header {padding:0 0 20px; margin:0 0 22px;}
.portal-console .page-header h5 {font-size:27px; line-height:1.25; font-weight:760; letter-spacing:-.035em;}
.portal-console .portal-eyebrow {font-size:9px; margin-bottom:5px; letter-spacing:.08em;}
.portal-console .card,.portal-console .stat-card {border-radius:8px!important;}
.portal-console .btn {border-radius:5px; font-size:12px; font-weight:650;}
/* Legacy list toolbars use inline pastel fills; normalize those exact variants. */
.portal-console .btn[style*="background:#4a90d9"] {background:#126bfa!important; color:#fff!important;}
.portal-console .btn[style*="background:#3dbdad"],
.portal-console .btn[style*="background:#87ceeb"],
.portal-console .btn[style*="background:#9aa5b4"] {background:var(--pc-surface)!important; color:var(--pc-ink)!important; border:1px solid var(--pc-line)!important;}
html[data-theme="dark"] .portal-console {--pc-ink:#e5e7eb; --pc-muted:#94a3b8; --pc-line:#334155; --pc-surface:#0f172b; --pc-soft:#1d293d; --bs-body-bg:#0f172b; --bs-body-color:#e5e7eb; --bs-border-color:#334155; background:#0f172b; color:#e5e7eb;}
html[data-theme="dark"] .portal-console :is(.card,.stat-card,.modal-content,.topbar) {background:var(--pc-surface)!important; color:var(--pc-ink);}
html[data-theme="dark"] .portal-console :is(.card-header,.card-footer,.table thead th,.input-group-text) {background:var(--pc-soft)!important; color:#cbd5e1; border-color:var(--pc-line);}
html[data-theme="dark"] .portal-console .table {--bs-table-bg:#111c2d; --bs-table-color:#e5e7eb; --bs-table-striped-bg:#18263a; --bs-table-striped-color:#e5e7eb; --bs-table-hover-bg:#18263a; --bs-table-hover-color:#e5e7eb;}
html[data-theme="dark"] .portal-console .table tbody td {color:#e5e7eb;}
html[data-theme="dark"] .portal-console :is(.form-control,.form-select) {background-color:#111c2d; color:#e5e7eb; border-color:#475569;}
html[data-theme="dark"] .portal-console :is(.text-muted,.form-text,.portal-account,.form-label) {color:#94a3b8!important;}
html[data-theme="dark"] .portal-console :is(.text-dark,.bg-light,.bg-white) {background-color:var(--pc-soft)!important; color:#e5e7eb!important;}
html[data-theme="dark"] .portal-console .nav-tabs .nav-link {color:#94a3b8;}
html[data-theme="dark"] .portal-console .nav-tabs .nav-link.active {background:#1d293d; color:#67a5ff;}
html[data-theme="dark"] .portal-console .btn[style*="background:#fff"] {background:#1d293d!important; color:#cbd5e1!important; border-color:#475569!important;}
html[data-theme="dark"] .portal-console .btn-outline-secondary {color:#cbd5e1; border-color:#475569;}
html[data-theme="dark"] .portal-console .form-control::placeholder {color:#7f8da1;}
html[data-theme="dark"] .portal-console .modal-content .btn-close {filter:invert(1);}
@media(max-width:768px) {
 .portal-user .sidebar {position:fixed; inset:64px auto 0 0; width:262px; max-height:none; transform:translateX(-100%); transition:transform .18s ease;}
 .portal-user.portal-nav-open .sidebar {transform:translateX(0); box-shadow:15px 0 30px #0003;}
 .portal-user .main-content {margin-left:0;}
 .portal-user .portal-context {padding:0 16px;}
 .portal-content {padding:20px 16px;}
 .portal-menu-toggle {display:inline-block;}
 .portal-account>span:first-child {display:none;}
}
.portal-admin .main-content {margin-left:262px;}
@media(max-width:768px) {
 .portal-admin .sidebar {position:relative; inset:auto; width:100%; max-height:330px; border-right:0;}
 .portal-console .sidebar .brand {min-height:64px; padding:14px 18px;}
 .portal-console .sidebar .menu-section {padding:3px 10px;}
 .portal-console .sidebar .menu-section:has(>.menu-item.disabled):not(:has(.menu-toggle)) {display:none;}
 .portal-console .sidebar .submenu.open {display:flex; flex-wrap:wrap; gap:4px;}
 .portal-console .sidebar .submenu .menu-item {width:auto; padding:8px 12px;}
 .portal-console .sidebar .user-area {padding:10px 18px;}
 .portal-admin .main-content {margin-left:0; padding:0 16px 24px;}
 .portal-context {height:auto; min-height:52px; margin-bottom:20px; padding:12px 0; flex-wrap:wrap;}
 .portal-console .page-header h5 {font-size:24px;}
 .portal-console .card-body {padding:14px;}
 .portal-console .card-body>.d-flex {flex-wrap:wrap;}
 .portal-console .card-body>.d-flex>.ms-auto {margin-left:0!important; flex-wrap:wrap; max-width:100%;}
 .portal-console .input-group {max-width:100%;}
 .portal-auth main {padding-top:28px!important;}
}
/* v3: readable secondary text; keep headings and large metrics unchanged. */
.portal-console :is(small,.small,.form-text,.form-label) {font-size:14px!important; line-height:1.6;}
.portal-console :is(.btn,.btn-sm,.badge) {font-size:13px;}
.portal-console .badge {line-height:1.35;}
.portal-console :is(.form-control,.form-select,.input-group-text,.table) {font-size:14px;}
.portal-console .table thead th {font-size:13px;}
.portal-console .sidebar .menu-item {font-size:14px;}
.portal-console .sidebar :is(.section-label,.user-area,.user-area a) {font-size:12px;}
.portal-console :is(.portal-context,.portal-account) {font-size:13px;}
.portal-console .portal-eyebrow {font-size:12px;}
.portal-console .portal-content :is(
 [style*="font-size:0.68rem"], [style*="font-size:0.7rem"],
 [style*="font-size:0.72rem"], [style*="font-size:0.75rem"],
 [style*="font-size:0.76rem"], [style*="font-size:0.78rem"],
 [style*="font-size:0.8rem"], [style*="font-size:0.82rem"],
 [style*="font-size:10px"], [style*="font-size:11px"],
 [style*="font-size:12px"], [style*="font-size:13px"],
 [style*="font-size: 13px"]
) {font-size:14px!important;}
.portal-console .portal-content :is(.text-muted,.form-text) {line-height:1.6;}
