:root{--navy:#062b54;--orange:#ff6b00;--bg:#f4f6f9;--card:#fff;--border:#e2e6ec;--text:#1c2733;--muted:#5a6a7a;}
*{box-sizing:border-box;}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);}
a{color:var(--navy);}
.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;padding:12px 24px;}
.topbar .brand{font-weight:700;letter-spacing:.02em;}
.topbar nav a{color:#fff;text-decoration:none;margin-left:18px;font-size:.92rem;opacity:.9;}
.topbar nav a:hover{opacity:1;text-decoration:underline;}
.wrap{max-width:960px;margin:0 auto;padding:32px 20px;}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--navy),#0a3d78);padding:24px;}
.login{background:var(--card);border-radius:14px;padding:36px 32px;width:100%;max-width:360px;box-shadow:0 20px 50px rgba(0,0,0,.25);}
.login h1{margin:0 0 4px;font-size:1.4rem;color:var(--navy);}
.login p{margin:0 0 20px;color:var(--muted);font-size:.9rem;}
label{display:block;font-size:.85rem;margin:14px 0 4px;color:var(--muted);}
input,select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:.95rem;}
.button{margin-top:18px;width:100%;padding:11px;border:none;border-radius:8px;background:var(--orange);color:#fff;font-weight:600;cursor:pointer;font-size:.95rem;}
.button:hover{opacity:.92;}
.button.secondary{background:var(--navy);}
.error-box{background:#fde8e8;color:#b42318;padding:10px 12px;border-radius:8px;font-size:.85rem;margin-top:12px;}
.success-box{background:#e6f6ec;color:#0f7a3d;padding:10px 12px;border-radius:8px;font-size:.85rem;margin-top:12px;}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:20px;}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;text-decoration:none;color:var(--text);display:block;transition:box-shadow .15s;}
.card:hover{box-shadow:0 6px 20px rgba(0,0,0,.08);}
.card .icon{font-size:1.8rem;}
.card h3{margin:10px 0 4px;font-size:1.05rem;}
.card .tag{display:inline-block;font-size:.72rem;background:#fff3e6;color:var(--orange);padding:2px 8px;border-radius:20px;margin-top:6px;}
.card.disabled{opacity:.55;pointer-events:none;}
table{width:100%;border-collapse:collapse;margin-top:16px;background:var(--card);border-radius:10px;overflow:hidden;}
th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:.88rem;}
th{background:#eef1f5;color:var(--muted);font-weight:600;}
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:.72rem;font-weight:600;}
.pill.role-superadmin{background:#fde8e8;color:#b42318;}
.pill.role-admin{background:#fff3e6;color:var(--orange);}
.pill.role-viewer{background:#eaf1fb;color:var(--navy);}
.pill.status-draft{background:#f0f0f0;color:#666;}
.pill.status-published{background:#e6f6ec;color:#0f7a3d;}
form.inline{display:inline;}
.checks{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px;}
.checks label{display:flex;align-items:center;gap:6px;font-size:.85rem;margin:0;}
.checks input{width:auto;}
h1,h2{color:var(--navy);}
.section{margin-top:32px;}

.portal-card{padding:0;overflow:hidden}.portal-card .card-link{padding:20px;text-decoration:none;color:var(--text);display:block}.portal-card .card-link:hover{box-shadow:none}.portal-status-form{padding:0 20px 16px;margin:0}.portal-status-form .button{margin-top:0;width:auto;padding:8px 13px;font-size:.85rem}
