.portal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.portal-panel { padding:24px; min-width:0; }
.portal-panel .notice { overflow-wrap:anywhere; }
.portal-panel h2 { margin:0 0 14px; font-size:19px; }
.portal-panel p { color:var(--muted); font-size:13px; line-height:1.6; }
.portal-wide { grid-column:1/-1; }
.sidebar-role { margin:0 24px 16px;color:var(--muted);font-size:12px; }
.portal-form { display:grid; gap:16px; }
.portal-form textarea { width:100%; min-height:90px; padding:11px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); }
.portal-form .btn { justify-self:start; }
.portal-details { display:grid; grid-template-columns:minmax(100px,1fr) 2fr; gap:10px; font-size:14px; overflow-wrap:anywhere; }
.portal-details dt { color:var(--muted); }.portal-details dd { margin:0; }
.portal-stats { display:flex; gap:12px; flex-wrap:wrap; }.portal-stat { border:1px solid var(--border); border-radius:12px; padding:18px; min-width:140px; flex:1; }.portal-stat strong { display:block;font-size:28px; }.portal-stat span { font-size:13px;color:var(--muted); }
.portal-actions { display:flex; gap:10px; flex-wrap:wrap; margin:16px 0; }
.portal-list { display:grid;gap:12px; }.portal-item { border:1px solid var(--border);border-radius:10px;padding:16px;overflow-wrap:anywhere; }.portal-item h3 { margin:0 0 8px;font-size:15px; }
.portal-dialog { border:0;border-radius:16px;width:min(850px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;padding:24px;color:var(--text);background:var(--surface); }.portal-dialog::backdrop { background:#14161b70; }
.portal-heading { display:flex;align-items:start;justify-content:space-between;gap:16px; }.portal-heading h2 { margin-top:0; }
.portal-filters { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;margin:18px 0; }
.portal-tabs { display:flex;gap:8px;flex-wrap:wrap;margin:16px 0; }.portal-tabs [aria-selected=true] { background:var(--accent);color:white; }
.portal-message { white-space:pre-wrap;overflow-wrap:anywhere; }.portal-muted { color:var(--muted);font-size:12px; }
@media(max-width:750px) { .portal-grid { grid-template-columns:1fr; }.portal-panel { padding:16px; }.portal-filters { grid-template-columns:1fr 1fr; }.portal-details { grid-template-columns:1fr;gap:4px; }.portal-details dd { margin-bottom:10px; } }
@media(max-width:450px) { .portal-filters { grid-template-columns:1fr; } }
