:root {
  --bg0: #0a1a30;
  --bg1: #123058;
  --bg2: #18406f;
  --card: rgba(255, 255, 255, 0.08);
  --card-border: rgba(212, 175, 90, 0.18);
  --text: #f4f8fc;
  --muted: #b7c7db;
  --accent: #1f5fba;
  --accent-2: #3d86d6;
  --gold: #c9a227;
  --gold-2: #e6c45a;
  --danger: #d96464;
  --ok: #3cbc8b;
  --shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
  --radius: 18px;
  --font: "Vazirmatn", Tahoma, sans-serif;
}

* { box-sizing: border-box; }
html, body {
  margin: 0;
  min-height: 100%;
  font-family: var(--font);
  color: var(--text);
  background:
    radial-gradient(1200px 600px at 90% -10%, rgba(47, 125, 225, 0.35), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(74, 163, 255, 0.18), transparent 55%),
    linear-gradient(160deg, var(--bg0), var(--bg1) 45%, #071526);
}

a { color: inherit; text-decoration: none; }
code {
  font-family: ui-monospace, monospace;
  background: rgba(0,0,0,.25);
  padding: .15rem .4rem;
  border-radius: 8px;
}

.bg-glow {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(circle at center, black, transparent 85%);
  opacity: .35;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1.5rem;
  backdrop-filter: blur(16px);
  background: linear-gradient(180deg, rgba(8, 22, 44, 0.94), rgba(10, 28, 54, 0.86));
  border-bottom: 2px solid rgba(201, 162, 39, 0.45);
}

.brand {
  display: flex;
  align-items: center;
  gap: .85rem;
}
.brand img, .uni-logo-header {
  width: 52px;
  height: auto;
  max-height: 56px;
  object-fit: contain;
}
.uni-logo {
  width: min(220px, 70vw);
  height: auto;
  margin-bottom: .75rem;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,.35));
}
.login-brand .muted.small { margin-top: .25rem; }

.access-summary { margin-bottom: .5rem; }
.access-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}
.access-summary-grid span { display: block; margin-bottom: .25rem; font-size: .85rem; }
.access-summary-grid strong { font-size: 1rem; line-height: 1.6; }

.info-box {
  background: rgba(47,125,225,.12);
  border: 1px solid rgba(74,163,255,.28);
  border-radius: 14px;
  padding: 1rem;
  margin: 1rem 0;
}
.switch-mode {
  text-align: center;
  margin-top: 1rem;
}
.switch-mode a {
  color: #9fd0ff;
  text-decoration: underline;
}

@media (max-width: 860px) {
  .access-summary-grid { grid-template-columns: 1fr; }
}
.brand strong { display: block; font-size: 1.05rem; }
.brand small { color: var(--muted); font-size: .78rem; line-height: 1.4; max-width: 340px; display:block; }

.topbar nav,
.main-nav {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex-wrap: wrap;
}
.nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: .45rem .9rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: var(--text);
  font-weight: 600;
  font-size: .9rem;
  transition: .18s ease;
}
.nav-btn:hover {
  background: rgba(201, 162, 39, .16);
  border-color: rgba(201, 162, 39, .45);
  color: #fff;
}
.nav-btn.is-active {
  background: linear-gradient(135deg, #1f5fba, #184a94);
  border-color: rgba(230, 196, 90, .5);
  box-shadow: 0 8px 18px rgba(18, 58, 110, .35);
}

.user-chip {
  background: rgba(201, 162, 39, .12);
  border: 1px solid rgba(201, 162, 39, .4);
  padding: .4rem .75rem;
  border-radius: 999px;
  font-size: .86rem;
}

.container {
  width: min(1180px, calc(100% - 2rem));
  margin: 1.5rem auto 3rem;
}
.login-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: calc(100vh - 170px);
}

.footer {
  text-align: center;
  color: var(--muted);
  padding: 1.5rem;
  font-size: .9rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  border: 1px solid transparent;
  border-radius: 12px;
  padding: .7rem 1.05rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: .2s ease;
}
.btn-primary {
  background: linear-gradient(135deg, #2f7de1, #1f5fba);
  color: #fff;
  box-shadow: 0 10px 24px rgba(47,125,225,.32);
}
.btn-primary:hover { filter: brightness(1.05); transform: translateY(-1px); }
.btn-ghost {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.14);
  color: var(--text);
}
.btn-gold {
  background: linear-gradient(135deg, #d4af37, #b48a1c);
  color: #1a1405;
  border-color: #e6c45a;
  box-shadow: 0 8px 18px rgba(180, 138, 28, .28);
}
.btn-gold:hover { filter: brightness(1.06); transform: translateY(-1px); }
.btn-danger {
  background: rgba(217,100,100,.15);
  border-color: rgba(217,100,100,.4);
  color: #ffb4b4;
}
.btn-sm { padding: .42rem .75rem; font-size: .85rem; border-radius: 10px; }
.btn-lg { padding: .95rem 1.35rem; font-size: 1.05rem; }
.btn-block { width: 100%; }

.campus-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.35rem;
  padding: 1.35rem 1.4rem;
  border-radius: 22px;
  border: 1px solid rgba(201, 162, 39, .28);
  background:
    linear-gradient(135deg, rgba(201,162,39,.12), transparent 40%),
    linear-gradient(160deg, rgba(20,52,96,.75), rgba(10,28,54,.55));
  box-shadow: var(--shadow);
}
.campus-kicker {
  margin: 0 0 .35rem;
  color: var(--gold-2);
  font-size: .92rem;
  font-weight: 700;
}
.campus-hero h1 { margin: 0 0 .35rem; }
.campus-room {
  border-top: 3px solid rgba(201, 162, 39, .55);
}
.rooms-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem;
  align-items: stretch;
}
.room-card {
  display: flex;
  flex-direction: column;
  min-height: 210px;
  padding: 1.2rem 1.25rem 1.15rem;
  text-align: right;
}
.room-card .card-top {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}
.room-card .card-top h2 {
  margin: 0;
  flex: 1;
  font-size: 1.08rem;
  line-height: 1.75;
  text-align: right;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.room-card .badge {
  flex: 0 0 auto;
  margin-top: .15rem;
}
.room-owner {
  margin: .7rem 0 0;
  text-align: right;
}
.room-card .card-actions {
  margin-top: auto;
  padding-top: 1rem;
  display: grid;
  grid-template-columns: 1.35fr .9fr;
  gap: .55rem;
}
.room-card .card-actions .btn {
  width: 100%;
  white-space: nowrap;
}
.badge-ready {
  background: rgba(201,162,39,.12);
  border-color: rgba(201,162,39,.4);
  color: #f3de9a;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(5, 12, 24, .62);
  padding: 1rem;
}
.modal-backdrop[hidden] { display: none; }
.modal-card {
  width: min(420px, 100%);
  background: #123058;
  border: 1px solid rgba(201, 162, 39, .35);
  border-radius: 20px;
  padding: 1.25rem 1.3rem 1.4rem;
  box-shadow: var(--shadow);
}
.modal-card h2 { margin: 0 0 .4rem; font-size: 1.15rem; }
.media-card { margin-bottom: 1rem; }
.media-user-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .45rem;
}
.media-pick {
  display: flex;
  gap: .5rem;
  align-items: end;
  flex-wrap: wrap;
}
.media-pick select { flex: 1; min-width: 220px; }
.media-pick .user-filter {
  min-width: 180px;
  flex: 1;
}
.granted-list {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .6rem 0;
}
.granted-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .25rem .6rem;
  border-radius: 999px;
  background: rgba(47,125,225,.16);
  border: 1px solid rgba(74,163,255,.35);
  font-size: .85rem;
}
.users-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.users-toolbar .search-box {
  flex: 1;
  min-width: 220px;
}
.users-toolbar input[type="search"] {
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding: .7rem .9rem;
  font: inherit;
  text-align: right;
}
.users-table {
  min-width: 560px;
}
.users-table tbody tr {
  cursor: pointer;
}
.users-table tbody tr:hover {
  background: rgba(74, 163, 255, .08);
}
.users-table tbody tr.is-selected {
  background: rgba(201, 162, 39, .14);
  outline: 1px solid rgba(201, 162, 39, .5);
}
.users-table td, .users-table th {
  white-space: nowrap;
}
.users-table td .ops { flex-wrap: wrap; }
.selection-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding: .75rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(201, 162, 39, .35);
  background: rgba(201, 162, 39, .08);
}
.selection-bar .btn:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: none;
}
.modal-card.wide { width: min(520px, 100%); }
.user-hint { margin: .75rem 0 0; }
.upload-progress {
  margin-top: .9rem;
  padding: .85rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(74, 163, 255, .35);
  background: rgba(47, 125, 225, .12);
}
.upload-progress[hidden] { display: none; }
.upload-progress-top {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .55rem;
  font-size: .92rem;
}
.upload-progress-bar {
  height: 12px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(0, 0, 0, .28);
}
.upload-progress-bar > span {
  display: block;
  height: 100%;
  width: 0%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2f7de1, #c9a227);
  transition: width .15s ease;
}

.page-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.page-head h1 { margin: 0 0 .35rem; }
.muted { color: var(--muted); }
.small { font-size: .9rem; }

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 1rem;
}
.grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.card {
  background: var(--card);
  border: 1px solid var(--card-border);
  border-radius: var(--radius);
  padding: 1.15rem;
  box-shadow: var(--shadow);
}
.card h2 { margin: 0 0 .75rem; font-size: 1.15rem; }
.card-top {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: start;
}
.card-top h2 { margin: 0; }
.card-actions {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
.stack { display: grid; gap: .6rem; }

.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .25rem .65rem;
  font-size: .8rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  white-space: nowrap;
}
.badge-live {
  background: rgba(47,125,225,.2);
  border-color: rgba(74,163,255,.5);
  color: #9fd0ff;
}

.auth-card {
  width: min(440px, 100%);
  margin: 2rem auto;
  background: var(--card);
  border: 1px solid var(--card-border);
  border-radius: 22px;
  padding: 1.5rem;
  box-shadow: var(--shadow);
}
.auth-card.wide { width: min(640px, 100%); }
.settings-card {
  width: min(760px, 100%);
  margin: 0 auto 2rem;
  background: var(--card);
  border: 1px solid var(--card-border);
  border-radius: 22px;
  padding: 1.4rem 1.5rem 1.6rem;
  box-shadow: var(--shadow);
  direction: rtl;
  text-align: right;
}
.settings-card h1 {
  margin: 0 0 1rem;
  text-align: right;
  font-size: 1.35rem;
}
.login-hero-card {
  margin: 0;
  text-align: center;
}
.login-brand {
  text-align: center;
  margin-bottom: 1.35rem;
}
.login-brand img {
  display: block;
  width: 88px;
  height: auto;
  margin: 0 auto .85rem;
}
.login-brand h1 {
  margin: 0 0 .45rem;
  font-size: 1.45rem;
  line-height: 1.7;
  text-align: center;
  font-weight: 800;
}
.login-brand .login-uni-name {
  margin: 0;
  text-align: center;
  line-height: 1.85;
  color: var(--muted);
  font-size: .98rem;
  font-weight: 500;
}
.login-brand p {
  margin: 0;
  text-align: center;
  line-height: 1.8;
}
.login-brand .muted.small {
  margin-top: .35rem;
}
.login-hero-card .form {
  text-align: center;
}
.login-hero-card .form label {
  text-align: center;
}
.login-hero-card .form input,
.login-hero-card .captcha-question,
.login-hero-card .captcha-box .muted {
  text-align: center;
}
.login-hero-card .form input::placeholder {
  text-align: center;
}
.auth-card h1 { margin-top: 0; text-align: right; }
.login-hero-card .login-brand h1 { text-align: center; }
.captcha-box { margin-top: .2rem; }
.captcha-row {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: .7rem;
  align-items: center;
}
.captcha-question {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 12px;
  border: 1px dashed rgba(74,163,255,.45);
  background: rgba(47,125,225,.12);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: .04em;
  direction: ltr;
}
@media (max-width: 640px) {
  .captcha-row { grid-template-columns: 1fr; }
}

.form { display: grid; gap: .9rem; margin-top: 1rem; }
.form-rtl,
.form-rtl * {
  direction: rtl;
  text-align: right;
}
.form .field {
  display: grid;
  gap: .45rem;
}
.form .field > label,
.form label {
  color: var(--muted);
  font-size: .95rem;
  text-align: right;
}
.form input,
.form textarea,
.form select {
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding: .8rem .9rem;
  font: inherit;
  direction: rtl;
  text-align: right;
}
.form input[type="checkbox"],
.form input[type="radio"],
.form input[type="file"] {
  width: auto;
  padding: 0;
  background: transparent;
  border: none;
}
.form .input-num {
  direction: ltr;
  text-align: right;
  unicode-bidi: plaintext;
}
.form input:focus, .form textarea:focus, .form select:focus {
  outline: 2px solid rgba(47,125,225,.45);
  border-color: transparent;
}
.form input::placeholder,
.form textarea::placeholder {
  text-align: right;
  direction: rtl;
}

.access-box {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  padding: 1rem 1.05rem;
  margin: .2rem 0;
  background: rgba(0,0,0,.14);
  text-align: right;
}
.access-box h2 {
  margin: 0 0 .35rem;
  color: #9fd0ff;
  font-size: 1.05rem;
  text-align: right;
}
.access-box .hint {
  margin: 0 0 .8rem;
  color: var(--muted);
  font-size: .88rem;
  text-align: right;
}
.choice-list {
  display: grid;
  gap: .55rem;
}
.choice {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: .85rem;
  margin: 0;
  padding: .75rem .85rem;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.04);
  cursor: pointer;
  color: var(--text);
  text-align: right;
}
.choice:hover {
  border-color: rgba(74,163,255,.35);
  background: rgba(47,125,225,.1);
}
.choice input {
  width: 1.15rem;
  height: 1.15rem;
  margin: .2rem 0 0;
  flex: 0 0 auto;
  accent-color: #2f7de1;
}
.choice-text {
  display: grid;
  gap: .2rem;
  flex: 1;
  text-align: right;
}
.choice-text strong {
  color: var(--text);
  font-size: .98rem;
}
.choice-text small {
  color: var(--muted);
  font-weight: 400;
  line-height: 1.7;
  display: block;
}
.choice-check {
  align-items: center;
}

/* سازگاری با استایل‌های قبلی */
.radio {
  display: flex !important;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: .7rem;
  margin: .55rem 0;
  color: var(--text) !important;
  text-align: right;
}
.radio input { margin-top: .35rem; width: auto; }
.radio span { display: grid; gap: .15rem; text-align: right; flex: 1; }
.radio small { color: var(--muted); font-weight: 400; }
.check {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: .55rem;
  text-align: right;
}
.check input { width: auto; }

.copy-row {
  display: flex;
  gap: .5rem;
  margin: .4rem 0 .7rem;
}
.copy-row input {
  flex: 1;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding: .7rem .8rem;
  font: inherit;
}

.members-card h2 { margin-top: 0; }
.member-add-form {
  display: grid;
  grid-template-columns: 1.4fr 1fr auto;
  gap: .8rem;
  align-items: end;
  margin-top: .8rem;
}
.member-add-form .field { margin: 0; }
.inline-role-form select {
  min-width: 140px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding: .45rem .6rem;
  font: inherit;
}
@media (max-width: 860px) {
  .member-add-form { grid-template-columns: 1fr; }
}

.table-wrap { overflow: auto; }
table {
  width: 100%;
  border-collapse: collapse;
}
th, td {
  text-align: right;
  padding: .75rem .5rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
th { color: var(--muted); font-weight: 600; }
.ops {
  display: flex;
  gap: .4rem;
  align-items: center;
}

.empty {
  text-align: center;
  padding: 3rem 1rem;
  background: var(--card);
  border: 1px dashed rgba(255,255,255,.18);
  border-radius: var(--radius);
}
.empty h1, .empty h2 { margin-top: 0; }

.flash-wrap { display: grid; gap: .5rem; margin-bottom: 1rem; }
.flash {
  padding: .8rem 1rem;
  border-radius: 12px;
  border: 1px solid transparent;
}
.flash-ok {
  background: rgba(60,188,139,.15);
  border-color: rgba(60,188,139,.35);
}
.flash-error {
  background: rgba(217,100,100,.15);
  border-color: rgba(217,100,100,.35);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
  margin-bottom: 1rem;
}
.stat-card {
  background: linear-gradient(160deg, rgba(47,125,225,.22), rgba(255,255,255,.05));
  border: 1px solid rgba(74,163,255,.28);
  border-radius: 16px;
  padding: 1rem;
}
.stat-card span { color: var(--muted); font-size: .9rem; }
.stat-card strong {
  display: block;
  margin-top: .35rem;
  font-size: 1.8rem;
}

.host-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.meter-label {
  display: flex;
  justify-content: space-between;
  margin-bottom: .4rem;
  color: var(--muted);
}
.meter {
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  overflow: hidden;
}
.meter i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #2f7de1, #4aa3ff);
  border-radius: inherit;
}
.meter-net i { width: 40%; }

.stats-grid.stats-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.stats-grid.stats-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.room-block {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  margin: .75rem 0;
  background: rgba(0,0,0,.16);
  overflow: hidden;
}
.room-block summary {
  cursor: pointer;
  padding: .9rem 1rem;
  list-style: none;
}
.room-block summary::-webkit-details-marker { display: none; }
.room-summary {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  align-items: center;
}
.room-body {
  padding: 0 1rem 1rem;
  border-top: 1px solid rgba(255,255,255,.08);
}
.room-body h3 {
  margin: .9rem 0 .5rem;
  font-size: 1rem;
}
.mini-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  color: var(--muted);
  font-size: .9rem;
  margin: .7rem 0;
}
.role-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .8rem;
}
.role-card {
  background: rgba(47,125,225,.1);
  border: 1px solid rgba(74,163,255,.25);
  border-radius: 14px;
  padding: .9rem;
}
.role-card h3 { margin: 0 0 .35rem; font-size: 1rem; }
.role-card ul {
  margin: .6rem 0 0;
  padding: 0 1rem 0 0;
  color: var(--muted);
  line-height: 1.8;
  font-size: .88rem;
}
.inline-role select {
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding: .45rem .55rem;
  font: inherit;
}
.inline-password {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  min-width: 150px;
}
.inline-password input {
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding: .4rem .55rem;
  font: inherit;
  width: 100%;
  text-align: center;
}
.inline-password .btn {
  padding: .4rem .6rem;
  font-size: .85rem;
}
.head-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

@media (max-width: 960px) {
  .role-grid, .stats-grid.stats-3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .role-grid, .stats-grid.stats-3 { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .topbar { flex-direction: column; align-items: stretch; }
  .page-head, .campus-hero { flex-direction: column; align-items: stretch; }
  .brand small { max-width: none; }
  .rooms-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .stats-grid, .host-grid { grid-template-columns: 1fr; }
}
