/* ======================== PORTAL LAYOUT ======================== */
.portal-layout { display:flex; min-height:100vh; background:var(--ink-100); }

/* Sidebar */
.portal-sidebar {
  width:240px; flex-shrink:0;
  background:var(--green-900); color:white;
  display:flex; flex-direction:column;
  position:sticky; top:0; height:100vh; overflow-y:auto;
  z-index:100;
}
.portal-sidebar-header { padding:1.25rem; border-bottom:1px solid rgba(255,255,255,.08); }
.portal-user-card { display:flex; align-items:center; gap:.75rem; padding:1rem 1.25rem; border-bottom:1px solid rgba(255,255,255,.08); }
.portal-user-photo { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.25); flex-shrink:0; }
.portal-user-name { font-size:.9rem; font-weight:700; color:white; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:130px; }

.portal-nav { flex:1; padding:.75rem 0; }
.portal-nav-item { display:flex; align-items:center; gap:.75rem; padding:.6rem 1.25rem; color:rgba(255,255,255,.68); font-size:.9rem; font-weight:500; transition:all .15s; text-decoration:none; }
.portal-nav-item:hover { color:white; background:rgba(255,255,255,.06); }
.portal-nav-item.active { color:white; background:rgba(255,255,255,.12); border-right:3px solid var(--gold-400); }
.portal-nav-icon { font-size:1rem; width:20px; text-align:center; }
.portal-sidebar-footer { border-top:1px solid rgba(255,255,255,.08); padding:.5rem 0; }
.portal-nav-logout { color:rgba(255,100,100,.7) !important; }
.portal-nav-logout:hover { color:#fca5a5 !important; background:rgba(255,0,0,.07) !important; }

/* Main */
.portal-main { flex:1; display:flex; flex-direction:column; min-width:0; }
.portal-topbar { background:white; border-bottom:1px solid var(--ink-200); padding:0 1.5rem; height:60px; display:flex; align-items:center; gap:1rem; position:sticky; top:0; z-index:50; }
.portal-menu-btn { display:none; flex-direction:column; gap:4px; background:none; border:none; cursor:pointer; padding:.5rem; }
.portal-menu-btn span { display:block; width:20px; height:2px; background:var(--ink-700); border-radius:2px; }
.portal-topbar-search { flex:1; }
.portal-topbar-right { display:flex; align-items:center; gap:1rem; margin-left:auto; }
.portal-topbar-btn { background:none; border:none; cursor:pointer; font-size:1.125rem; color:var(--ink-600); padding:.25rem; position:relative; }
.portal-topbar-user { display:flex; align-items:center; gap:.5rem; text-decoration:none; }
.portal-content { padding:1.75rem; flex:1; }

/* Portal dashboard widgets */
.portal-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.portal-grid-2 { display:grid; grid-template-columns:2fr 1fr; gap:1.5rem; }
.profile-complete-bar { height:8px; background:var(--ink-200); border-radius:4px; overflow:hidden; margin-top:.5rem; }
.profile-complete-fill { height:100%; background:linear-gradient(90deg, var(--green-600), var(--green-400)); border-radius:4px; transition:width .6s ease; }

/* Responsive Portal */
@media(max-width:1024px) {
  .portal-sidebar { position:fixed; left:0; top:0; transform:translateX(-100%); transition:transform .25s; }
  .portal-sidebar.is-open { transform:none; }
  .portal-menu-btn { display:flex; }
  .portal-grid-3 { grid-template-columns:1fr 1fr; }
  .portal-grid-2 { grid-template-columns:1fr; }
}
@media(max-width:640px) {
  .portal-content { padding:1rem; }
  .portal-grid-3 { grid-template-columns:1fr; }
}
