.portal-shell{background:#f8fafc;min-height:100vh}.portal-header{align-items:center;gap:24px;height:56px;padding:0 24px;line-height:56px;display:flex;background:#6366f1!important}.portal-brand{white-space:nowrap;font-size:16px;font-weight:600;text-decoration:none;color:#fff!important}.portal-nav{flex:1;min-width:0;background:0 0!important;border-bottom:none!important}.portal-nav .ant-menu-item{color:#ffffffd9!important}.portal-nav .ant-menu-item-selected{color:#fff!important;background:#ffffff29!important}.portal-header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.portal-user-name{font-size:13px;color:#ffffffe6!important}.portal-logout{padding-inline:0;color:#fff!important}.portal-content{width:100%;max-width:960px;margin:0 auto;padding:32px 20px 48px}.portal-loading{background:#f5f7fb;justify-content:center;align-items:center;min-height:100vh;display:flex}.portal-auth-page{background:#f5f7fb;flex-direction:column;min-height:100vh;display:flex}.portal-auth-topbar{color:#fff;background:#6366f1;align-items:center;height:56px;padding:0 24px;font-size:16px;font-weight:600;display:flex}.portal-auth-body{flex:1;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex}.portal-auth-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-width:440px;padding:28px 28px 24px;box-shadow:0 1px 3px #0f172a14}.portal-auth-card h1{color:#0f172a;margin:0 0 20px;font-size:22px;font-weight:700}.portal-auth-footer{text-align:center;margin-top:16px}.portal-auth-footer a{color:#6366f1}.portal-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.portal-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.portal-stat-card small{color:#64748b;margin-bottom:6px;display:block}.portal-stat-card strong{color:#0f172a;font-size:28px}@media (width<=768px){.portal-header{flex-wrap:wrap;gap:8px;height:auto;padding:12px 16px}.portal-nav{order:3;width:100%}.portal-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
