:root{
  --pnu-turquoise:#007580;
  --pnu-grey:#98989A;
  --pnu-blue:#00A6CE;
  --bg:#f3f7fa;
  --text:#111827;
  --muted:#6b7280;
  --card:#ffffff;
  --border:#dbe4ea;
  --shadow:0 10px 28px rgba(16, 24, 40, .08);
  --radius-md:12px;
  --radius-lg:18px;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  background:#f4f6f8;
  color:var(--text);
  font-family: "جامعة نورة", "Noura University", "Noto Kufi Arabic", "Segoe UI", Tahoma, Arial, sans-serif;
}

a{ color:var(--pnu-turquoise); text-decoration:none; }
a:hover{ text-decoration:none; }

.topbar{
  position:sticky;
  top:0;
  z-index:100;
  display:flex;
  align-items:center;
  gap:20px;
  padding:12px 24px;
  background:#07525f;
  color:#fff;
}

.topbar-left{
  display:flex;
  align-items:center;
  gap:10px;
}

.icon-btn{
  border:none;
  background:rgba(255,255,255,0.16);
  color:#fff;
  width:38px;
  height:38px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.icon-btn .icon{
  font-size:18px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-inline-start:auto;
}
.brand img{
  height:44px;
  width:44px;
  object-fit:contain;
  background:#0d6673;
  border-radius:50%;
  padding:6px;
}
.brand-meta{ display:flex; flex-direction:column; gap:4px; text-align:end; }
.brand-subtitle{ font-size:13px; color:#e6f3f5; font-weight:600; }

.navlinks{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.nav-link{
  color:#eaf5f7;
  padding:10px 14px;
  border-radius:10px;
  font-size:14px;
  font-weight:600;
  transition:.18s ease;
}

.nav-link:hover{
  color:#fff;
  background:rgba(255,255,255,0.16);
}

.nav-link.active{
  color:#fff;
  background:rgba(255,255,255,0.22);
}

.topbar-actions{ display:flex; gap:10px; }

.btn{
  border:1px solid var(--border);
  padding:8px 14px;
  border-radius:10px;
  background:#fff;
  color:#1f2937;
  font-weight:600;
  cursor:pointer;
}

.btn.primary{
  background:linear-gradient(135deg,var(--pnu-turquoise),#039caf);
  color:#fff;
  border-color:transparent;
}

.btn.light{
  background:#e9f4f6;
  color:#0c6472;
  border-color:transparent;
}

.btn.outline-light{
  background:transparent;
  color:#e9f4f6;
  border:1px solid rgba(255,255,255,0.4);
}

.btn.ghost{
  display:inline-flex;
  align-items:center;
  border-color:transparent;
  background:#eef8fa;
  color:var(--pnu-turquoise);
}

.btn.danger{
  background:#fee2e2;
  color:#b91c1c;
  border-color:#fca5a5;
}

.btn.outline-light.danger{
  background:transparent;
  color:#f87171;
  border-color:rgba(248, 113, 113, 0.7);
}

.icon-btn.danger{
  background:rgba(185, 28, 28, 0.18);
  color:#fee2e2;
  border:1px solid rgba(185, 28, 28, 0.45);
}

.badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  font-size:11px;
  font-weight:700;
  letter-spacing:.2px;
  text-transform:uppercase;
  padding:4px 9px;
  border-radius:999px;
  background:rgba(255,255,255,0.16);
  color:#e7f6f8;
}

.page-shell{ padding:0; }

.dashboard{
  min-height:calc(100vh - 92px);
}

.dashboard-layout{
  display:grid;
  grid-template-columns:minmax(0, 2.2fr) minmax(0, 1fr);
  gap:24px;
}

.dashboard-main,
.dashboard-aside{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.dashboard-alert{
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 20px;
  border-radius:16px;
  background:#fff3e0;
  border:1px dashed #efa56a;
  font-weight:600;
}

.dashboard-alert p{
  margin:6px 0 0;
  color:#7d5a2f;
  font-weight:500;
}

.dashboard-alert-icon{
  font-size:1.6rem;
  color:#efa56a;
}

.dashboard-actions{
  display:flex;
  gap:12px;
}

.dashboard-actions .btn{
  flex:1;
}

.btn.outline{
  background:transparent;
  border:1px solid rgba(0, 117, 128, 0.4);
  color:var(--pnu-turquoise);
}

.dashboard-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;
}

.stat-card{
  border-radius:16px;
  padding:18px;
  background:#f5fbff;
  border:1px solid rgba(15, 157, 205, 0.2);
  font-weight:600;
}

.stat-card small{
  color:var(--muted);
  font-weight:500;
}

.dashboard-search{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  background:var(--bg);
  border-radius:16px;
}

.users-page{
  min-height:calc(100vh - 84px);
  background:linear-gradient(180deg, #0c5c69 0, #094a5a 260px, #f5f7fa 260px);
}

.users-toolbar{
  margin-top:24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 20px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 18px 32px rgba(3, 56, 65, 0.18);
}

.users-search{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
}

.users-search-input{
  position:relative;
  flex:1;
  max-width:420px;
}

.users-search-input .input{
  width:100%;
  padding-inline-start:40px;
}

.users-body{
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:24px;
}

.users-form{
  padding:20px;
  border-radius:18px;
  box-shadow:0 18px 32px rgba(3, 56, 65, 0.12);
}

.users-form h3{
  margin-top:0;
}

.users-form-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
}

.users-form-grid label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:0.9rem;
  color:#1f2937;
}

.users-form-actions{
  margin-top:16px;
  display:flex;
  gap:12px;
}

.users-form-message{
  margin-top:10px;
  color:var(--muted);
}

.societies-form .societies-form-wide{
  grid-column:1 / -1;
}

.users-table{
  width:100%;
}

.societies-table{
  width:100%;
}

.societies-cell{
  display:flex;
  align-items:center;
  gap:12px;
}

.societies-logo{
  width:44px;
  height:44px;
  border-radius:14px;
  background:#e6f6f8;
  color:#0b6b76;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.societies-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.societies-name{
  font-weight:600;
  color:#0f172a;
}

.societies-email{
  font-size:0.85rem;
  color:var(--muted);
}

.societies-college-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:#d6f4ee;
  color:#0b6b76;
  font-weight:700;
  font-size:0.8rem;
}

.societies-count{
  font-weight:700;
  color:#0f172a;
}

.societies-actions{
  display:flex;
  gap:8px;
  align-items:center;
}

.users-cell{
  display:flex;
  align-items:center;
  gap:12px;
}

.users-avatar{
  width:40px;
  height:40px;
  border-radius:12px;
  background:#e6f6f8;
  color:#0b6b76;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
}

.users-name{
  font-weight:600;
  color:#0f172a;
}

.users-email{
  font-size:0.85rem;
  color:var(--muted);
}

.users-role-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:#e6f6f8;
  color:#0b6b76;
  font-weight:700;
  font-size:0.8rem;
}

.users-actions{
  display:flex;
  gap:8px;
  align-items:center;
}

.users-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:8px 6px 0;
  color:var(--muted);
  font-size:0.9rem;
}

.users-pagination{
  display:flex;
  align-items:center;
  gap:8px;
}

.users-page-btn{
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid var(--border);
  background:#fff;
  color:#1f2937;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
  cursor:pointer;
}

.users-page-btn.active{
  background:#0b6b76;
  border-color:#0b6b76;
  color:#fff;
  box-shadow:0 12px 18px rgba(11, 107, 118, 0.22);
}

.users-page-btn:disabled{
  opacity:0.5;
  cursor:not-allowed;
}

.dashboard-search .input{
  flex:1;
  background:#fff;
}

.dashboard-table{
  background:var(--card);
  border-radius:18px;
  border:1px solid var(--border);
  padding:10px 0;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.dashboard-table table{
  width:100%;
  border-collapse:collapse;
  font-size:.95rem;
}

.dashboard-table th,
.dashboard-table td{
  text-align:start;
  padding:14px 18px;
  border-bottom:1px solid #edf2f7;
}

.dashboard-table th{
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}

.requests-page{
  display:flex;
  flex-direction:column;
  gap:24px;
  padding:32px 28px 40px;
}

.requests-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:linear-gradient(135deg, #0a5d68, #0c4a57);
  border-radius:20px;
  padding:26px 32px;
  color:#fff;
}

.requests-hero h3{
  margin:0 0 6px;
  font-size:24px;
}

.requests-subtitle{
  margin:0;
  color:#d2eef2;
  font-weight:500;
}

.requests-search{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  padding:10px 14px;
  border-radius:16px;
  box-shadow:var(--shadow);
  min-width:320px;
}

.requests-search input{
  border:none;
  outline:none;
  width:100%;
  font-size:14px;
  color:#0f172a;
}

.requests-search .btn{
  padding:8px 18px;
  border-radius:12px;
  font-size:13px;
}

.requests-search-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:12px;
  background:#ecf6f7;
}

.requests-search-icon svg{
  width:16px;
  height:16px;
  fill:#0c6472;
}

.requests-summary{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:600;
}

.requests-summary-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:12px;
  background:#d7f8f4;
  color:#0c6472;
  font-size:18px;
}

.requests-card{
  background:#fff;
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:8px 0;
}

.requests-table{
  display:grid;
  gap:0;
}

.requests-row{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  align-items:center;
  padding:16px 24px;
  border-bottom:1px solid #edf2f7;
}

.requests-row:last-child{
  border-bottom:none;
}

.requests-header{
  font-size:13px;
  font-weight:700;
  color:#7b8794;
  background:#f9fbfc;
}

.requests-cell{
  font-weight:600;
  color:#1f2937;
}

.requests-id{
  color:#0c6472;
  font-weight:700;
}

.requests-date{
  color:#6b7280;
  font-weight:500;
}

.requests-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  background:#eef2f7;
  color:#475569;
}

.requests-status.is-success{
  background:#def7ec;
  color:#0f766e;
}

.requests-status.is-danger{
  background:#fde8e8;
  color:#b91c1c;
}

.requests-status.is-warning{
  background:#fef3c7;
  color:#b45309;
}

.requests-status.is-neutral{
  background:#eff4f8;
  color:#4b5563;
}

.requests-empty{
  background:#fff;
  border-radius:16px;
  padding:26px;
  text-align:center;
  color:#6b7280;
  box-shadow:var(--shadow);
}

.admin-inbox-hero{
  align-items:flex-end;
}

.admin-inbox-filter{
  display:flex;
  align-items:flex-end;
  gap:16px;
  background:#ffffff;
  padding:14px 16px;
  border-radius:16px;
  box-shadow:var(--shadow);
  min-width:280px;
}

.admin-inbox-filter label{
  display:block;
  font-size:12px;
  font-weight:600;
  color:#6b7280;
  margin-bottom:6px;
}

.admin-inbox-filter select{
  min-width:220px;
}

.admin-inbox-message{
  background:#fef7ec;
  border:1px solid #fde2b3;
  color:#b45309;
  padding:12px 16px;
  border-radius:12px;
  font-weight:600;
}

@media (max-width: 960px){
  .requests-hero{
    flex-direction:column;
    align-items:flex-start;
  }

  .requests-search{
    width:100%;
  }

  .requests-row{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    row-gap:12px;
  }

  .requests-header{
    display:none;
  }

  .admin-inbox-filter{
    width:100%;
    flex-direction:column;
    align-items:stretch;
  }

  .admin-inbox-filter select{
    width:100%;
  }
}

.home{
  min-height:calc(100vh - 84px);
  display:flex;
  flex-direction:column;
  gap:28px;
  background:linear-gradient(180deg, #0c5c69 0, #094a5a 260px, #f5f7fa 260px);
}

.home-hero{
  padding:32px 24px 0;
  display:flex;
  flex-direction:column;
  gap:24px;
  color:#eaf5f7;
}

.home-hero-header{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:16px;
}

.home-hero-title{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.home-hero-header h1{
  margin:0;
  font-size:1.8rem;
  color:#fff;
}

.home-hero-header p{
  margin:0;
  font-size:.95rem;
  color:rgba(255,255,255,0.75);
}

.home-hero-home{
  width:44px;
  height:44px;
  border-radius:12px;
  background:#d9f1f4;
  display:flex;
  align-items:center;
  justify-content:center;
}

.home-hero-icon{
  width:22px;
  height:22px;
  color:#0b6b78;
}

.home-hero-panel{
  background:#0b6b78;
  border-radius:18px;
  padding:30px 32px;
  display:flex;
  align-items:center;
  gap:28px;
  box-shadow:0 18px 32px rgba(3, 56, 65, 0.28);
}

.home-hero-panel-media{
  width:110px;
  height:110px;
  border-radius:18px;
  background:rgba(255,255,255,0.16);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

.panel-doc{
  width:70px;
  height:80px;
  border-radius:12px;
  background:#ffffff;
  position:relative;
  box-shadow:0 8px 20px rgba(15, 23, 42, 0.2);
}

.panel-doc span{
  position:absolute;
  right:12px;
  left:12px;
  height:6px;
  border-radius:999px;
  background:#cfecef;
}

.panel-doc span:nth-child(1){ top:16px; }
.panel-doc span:nth-child(2){ top:32px; }
.panel-doc span:nth-child(3){ top:48px; }

.panel-doc-clip{
  position:absolute;
  top:-8px;
  left:16px;
  width:28px;
  height:18px;
  border-radius:8px 8px 2px 2px;
  background:#dfeaed;
}

.home-hero-panel-content{
  display:flex;
  flex-direction:column;
  gap:10px;
  color:#f0f7f8;
}

.home-hero-panel-content h2{
  margin:0;
  font-size:1.55rem;
  color:#fff;
}

.home-hero-panel-content p{
  margin:0;
  color:rgba(255,255,255,0.85);
  line-height:1.7;
}

.home-hero-panel-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.btn-hero-primary{
  background:#ffffff;
  color:#0b6b78;
  border-color:transparent;
}

.btn-hero-secondary{
  color:#ffffff;
}

.society-section{
  background:#f4f6f8;
  padding:0 24px 48px;
  display:flex;
  flex-direction:column;
  gap:18px;
}

.society-section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.society-section-header h2{
  margin:0 0 6px;
  color:#1f2937;
}

.society-search-panel{
  display:flex;
  align-items:center;
  gap:12px;
  background:#ffffff;
  padding:14px 16px;
  border-radius:18px;
  box-shadow:0 16px 32px rgba(16, 24, 40, .12);
}

.society-search-panel .btn{
  min-width:110px;
}

.society-search-input{
  position:relative;
  flex:1;
}

.society-search-input .input{
  width:100%;
  background:white;
  border-radius:14px;
  padding-right:44px;
}

.society-search-icon{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  color:#9ca3af;
  width:18px;
  height:18px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.society-search-icon svg{
  width:18px;
  height:18px;
}

.society-loading,
.society-empty{
  padding:20px;
  border-radius:16px;
  background:#ffffff;
  color:var(--muted);
  text-align:center;
  font-weight:600;
}

.society-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:22px;
}

.society-card{
  border-radius:18px;
  border:1px solid #eef2f4;
  padding:20px 18px 22px;
  display:flex;
  flex-direction:column;
  gap:14px;
  background:#fff;
  box-shadow:0 10px 24px rgba(15, 23, 42, 0.08);
  text-align:center;
}

.society-card h3{
  margin:0;
  font-size:1.1rem;
}

.society-description{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.6;
}

.society-logo{
  width:88px;
  height:88px;
  border-radius:18px;
  background:#f7fafb;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  border:1px solid #eef2f4;
}

.society-logo img{
  max-width:70px;
  max-height:70px;
  object-fit:contain;
}

.society-logo-fallback{
  color:#0b6b78;
  font-size:1.4rem;
  font-weight:700;
}

.society-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#d7f4f8;
  color:#0b6b78;
  border-radius:999px;
  padding:6px 12px;
  font-size:.78rem;
  font-weight:700;
  width:max-content;
  margin:0 auto;
}

.w-full{
  width:100%;
}

.muted{
  color:var(--muted);
  font-size:.85rem;
}

.status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:4px 12px;
  font-size:.78rem;
  font-weight:700;
  background:#dffae6;
  color:#0f9dcd;
}

.status-pill.warning{
  background:#fff4d3;
  color:#e27c2b;
}

.profile-card{
  text-align:center;
  padding:22px 20px;
  border-radius:18px;
  background:#f9fbff;
  border:1px solid rgba(0, 117, 128, 0.1);
  box-shadow:0 12px 30px rgba(15, 157, 205, 0.08);
}

.profile-card img{
  border-radius:999px;
  width:96px;
  height:96px;
  object-fit:cover;
  margin-bottom:10px;
}

.profile-name{
  font-size:1.2rem;
  font-weight:700;
  margin-bottom:4px;
}

.profile-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px;
  margin-top:12px;
}

.profile-badges span{
  background:#e5f7ff;
  color:var(--pnu-turquoise);
  padding:6px 12px;
  border-radius:999px;
  font-weight:600;
  font-size:.82rem;
}

.announcement-card{
  padding:18px;
  border-radius:16px;
  background:#ffffff;
  border:1px solid var(--border);
  box-shadow:0 8px 24px rgba(15, 157, 205, 0.06);
}

.announcement-card p{
  margin:8px 0 0;
  color:var(--muted);
}

.announcement-title{
  font-weight:700;
  font-size:1rem;
}

.input, .form-control, input, select, textarea{
  border:1px solid var(--border);
  border-radius:10px;
  padding:9px 11px;
  background:#fff;
}

label{ font-weight:600; color:#111827; }
.rtl{ direction:rtl; }
.ltr{ direction:ltr; }

.apply-form{
  max-width:1100px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:24px;
  border-radius:26px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  direction:rtl;
}

.apply-form label{
  text-align:right;
}

.apply-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:22px 24px;
  border-radius:20px;
  background:linear-gradient(135deg, rgba(5, 83, 95, 0.08), rgba(15, 157, 205, 0.12));
  border:1px solid rgba(5, 83, 95, 0.14);
  position:relative;
  overflow:hidden;
}

.apply-header h3{
  margin:0 0 6px;
  font-size:1.6rem;
}

.apply-subtitle{
  margin:0;
  color:var(--muted);
  font-size:0.95rem;
}

.apply-badge{
  display:inline-flex;
  align-items:center;
  padding:6px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--border);
  font-weight:700;
  font-size:0.85rem;
  color:#0b6b76;
}

.apply-form-body{
  display:flex;
  flex-direction:column;
  gap:20px;
}

.apply-steps{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:10px;
}

.apply-step{
  display:flex;
  align-items:center;
  gap:10px;
  text-align:right;
  border:1px solid #d7e4e8;
  background:#ffffff;
  color:#334155;
  border-radius:14px;
  padding:11px 12px;
  transition:all .2s ease;
}

.apply-step:hover{
  border-color:#9ec2ca;
}

.apply-step-index{
  width:28px;
  height:28px;
  border-radius:50%;
  background:#e2e8f0;
  color:#334155;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  flex-shrink:0;
}

.apply-step-label{
  font-size:.9rem;
  font-weight:700;
}

.apply-step.active{
  border-color:#0b6b76;
  background:rgba(11, 107, 118, .08);
  color:#0f172a;
}

.apply-step.active .apply-step-index,
.apply-step.done .apply-step-index{
  background:#0b6b76;
  color:#fff;
}

.apply-step.done{
  border-color:#bfdde1;
  background:#f8fcfd;
}


.apply-section{
  border:1px solid #e2e8f0;
  padding:20px 22px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 30px rgba(15, 157, 205, 0.08);
}

.apply-section legend{
  padding:0 12px;
  font-weight:700;
  color:#0f172a;
  text-align:right;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}

.form-block{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.apply-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.apply-field.span-2{
  grid-column:1 / span 2;
}

.apply-field .form-control{
  background:#f8fafc;
  border-color:#e2e8f0;
  text-align:right;
}

.form-block .form-control{
  width:100%;
  text-align:right;
}

.apply-field .form-control:focus{
  outline:none;
  border-color:#0b6b76;
  box-shadow:0 0 0 3px rgba(11, 107, 118, 0.12);
}

.apply-validation{
  color:#b91c1c;
  font-size:0.82rem;
  font-weight:600;
}

.input.invalid, .form-control.invalid, input.invalid, select.invalid, textarea.invalid{
  border-color:#ef4444;
  background:#fff5f5;
}

.textarea-lg{
  min-height:110px;
}

.textarea-md{
  min-height:90px;
}

.apply-chips{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.apply-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:#f3f7f8;
  border:1px solid var(--border);
  font-weight:600;
  font-size:0.9rem;
}

.apply-upload{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.apply-upload-hint{
  color:var(--muted);
  font-size:0.85rem;
}

.apply-error{
  color:#b91c1c;
  margin-top:6px;
  font-weight:600;
}

.apply-checkbox{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:600;
}

.apply-actions{
  display:flex;
  align-items:center;
  gap:12px;
  justify-content:space-between;
  flex-wrap:wrap;
}

.apply-step-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.apply-success{
  color:#0f766e;
  font-weight:600;
}

@media (max-width: 900px){
  .apply-steps{
    grid-template-columns:1fr;
  }

  .apply-step{
    justify-content:flex-start;
  }

  .apply-header{
    flex-direction:column;
    align-items:flex-start;
  }

  .form-grid{
    grid-template-columns:1fr;
  }

  .apply-field.span-2{
    grid-column:1 / span 1;
  }
}

.login-page{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);
  grid-template-areas:"hero panel";
  background:#f5f7f9;
}

.login-hero{
  grid-area:hero;
  position:relative;
  display:flex;
  align-items:flex-end;
  padding:60px;
  color:#e9f6f7;
  background:linear-gradient(160deg, #05535f 0%, #0b6b76 45%, #0b8b9a 100%);
  overflow:hidden;
}

.login-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(255,255,255,0.14), transparent 55%),
    radial-gradient(circle at 70% 70%, rgba(255,255,255,0.1), transparent 60%);
  opacity:.6;
  pointer-events:none;
}

.login-hero-content{
  position:relative;
  max-width:420px;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.login-hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(255,255,255,0.16);
  padding:6px 12px;
  border-radius:999px;
  font-weight:600;
  font-size:14px;
}

.login-hero h1{
  margin:0;
  font-size:32px;
  font-weight:800;
}

.login-hero p{
  margin:0;
  color:#e4f5f7;
  font-size:16px;
  line-height:1.6;
}

.login-panel{
  grid-area:panel;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px 24px;
  background:#fbfcfd;
}

html[dir="rtl"] .login-page{
  grid-template-areas:"panel hero";
}

.login-card{
  width:min(520px, 100%);
  background:#fff;
  border-radius:22px;
  box-shadow:0 20px 40px rgba(15, 23, 42, 0.08);
  padding:36px 32px;
  display:flex;
  flex-direction:column;
  gap:24px;
}

.login-brand{
  display:flex;
  align-items:center;
  gap:12px;
}

.login-brand img{
  width:58px;
  height:58px;
  padding:8px;
  background:#f0f7f8;
  border-radius:50%;
}

.login-brand-text{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-weight:700;
  color:#3b3f45;
  text-align:start;
}

.login-header h2{
  margin:0;
  font-size:22px;
  font-weight:800;
  color:#0f172a;
}

.login-header p{
  margin:6px 0 0;
  color:#64748b;
  font-size:14px;
}

.login-tabs{
  display:flex;
  gap:8px;
  background:#f2f4f7;
  padding:6px;
  border-radius:14px;
}

.login-tab{
  flex:1;
  border:none;
  background:transparent;
  padding:10px 12px;
  border-radius:12px;
  font-weight:700;
  color:#6b7280;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}

.login-tab.active{
  background:#007580;
  color:#fff;
  box-shadow:0 8px 18px rgba(0, 117, 128, 0.25);
}

.login-tab-icon{
  display:inline-flex;
  width:30px;
  height:30px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:#007580;
}

.login-tab.active .login-tab-icon{
  background:rgba(255, 255, 255, 0.2);
  color:#fff;
}

.login-tab-icon svg{
  width:18px;
  height:18px;
}

.login-form{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.login-field{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-weight:700;
  color:#1f2937;
}

.login-field input{
  border-radius:12px;
  border:1px solid #e2e8f0;
  padding:12px 14px;
  background:#f8fafc;
  font-size:14px;
}

.login-field input:focus{
  outline:2px solid rgba(0, 117, 128, 0.25);
  border-color:#0f8fa0;
  background:#fff;
}

.login-forgot{
  border:none;
  background:transparent;
  padding:0;
  align-self:flex-start;
  color:#007580;
  font-weight:700;
  cursor:pointer;
}

.login-error{
  color:#b42318;
  background:#fef3f2;
  border:1px solid #fecaca;
  padding:10px 12px;
  border-radius:10px;
  font-weight:600;
}

.login-submit{
  width:100%;
  padding:12px 16px;
  border-radius:14px;
  font-size:16px;
  font-weight:800;
  box-shadow:0 12px 24px rgba(0, 117, 128, 0.2);
}

.login-register{
  display:flex;
  justify-content:center;
  gap:6px;
  color:#64748b;
  font-weight:600;
}

.login-register-link{
  border:none;
  background:transparent;
  color:#007580;
  font-weight:800;
  cursor:pointer;
}

.login-test-accounts.hidden{
  display:none;
}

.login-test-accounts{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  padding:18px;
  border-radius:16px;
}

.login-test-header h3{
  margin:0;
  font-size:16px;
  font-weight:800;
}

.login-test-header p{
  margin:6px 0 0;
  color:#64748b;
  font-size:13px;
}

.login-test-table{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:14px;
  font-size:13px;
}

.login-test-row{
  display:grid;
  grid-template-columns:1fr 1.4fr 1fr;
  gap:8px;
  padding:8px 10px;
  background:#fff;
  border-radius:10px;
  border:1px solid #edf2f7;
}

.login-test-row span{
  overflow:hidden;
  text-overflow:ellipsis;
}

.login-test-head{
  background:#eef6f7;
  border-color:#d4eef1;
  font-weight:700;
  color:#0f172a;
}

.register-page{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);
  grid-template-areas:"hero panel";
  background:#f5f7f9;
}

html[dir="rtl"] .register-page{
  grid-template-areas:"panel hero";
}

.register-hero{
  grid-area:hero;
}

.register-panel{
  grid-area:panel;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:64px 32px;
  background:#fff;
}

.register-content{
  width:min(560px, 100%);
  display:flex;
  flex-direction:column;
  gap:22px;
}

.register-header h2{
  margin:0;
  font-size:26px;
  font-weight:800;
  color:#0f172a;
}

.register-header p{
  margin:6px 0 0;
  color:#94a3b8;
  font-size:14px;
}

.register-form{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.register-label{
  font-weight:700;
  color:#1f2937;
}

.register-name-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.register-name-grid input{
  border-radius:12px;
  border:1px solid #eef2f7;
  padding:10px 12px;
  background:#f7f7f8;
  font-size:14px;
  text-align:center;
}

.register-input{
  position:relative;
}

.register-input input{
  width:100%;
  border-radius:12px;
  border:1px solid #eef2f7;
  padding:12px 44px 12px 14px;
  background:#f7f7f8;
  font-size:14px;
}

.register-input input:focus{
  outline:2px solid rgba(0, 117, 128, 0.2);
  border-color:#0f8fa0;
  background:#fff;
}

.register-input-icon{
  position:absolute;
  inset-inline-end:14px;
  top:50%;
  transform:translateY(-50%);
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#cbd5f5;
}

.register-input-icon.valid{
  color:#16a34a;
}

.register-input-icon.invalid{
  color:#dc2626;
}

.register-input-icon svg{
  width:18px;
  height:18px;
}

.register-terms{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:600;
  color:#0f172a;
}

.register-terms input{
  width:18px;
  height:18px;
}

.register-submit{
  width:100%;
  padding:12px 16px;
  border-radius:14px;
  font-size:16px;
  font-weight:800;
  box-shadow:0 12px 24px rgba(0, 117, 128, 0.2);
}

.register-login{
  display:flex;
  justify-content:center;
  gap:6px;
  color:#64748b;
  font-weight:600;
}

.register-message{
  padding:10px 12px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  font-weight:600;
}

@media (max-width: 900px){
  .topbar{ flex-wrap:wrap; }
  .topbar-actions{ width:100%; justify-content:flex-end; }
  .dashboard-layout{
    grid-template-columns:1fr;
  }
  .dashboard-actions{
    flex-direction:column;
  }
  .home-hero-panel{
    flex-direction:column;
    align-items:flex-start;
  }
  .login-page{
    grid-template-columns:1fr;
  }
  .login-hero{
    min-height:260px;
    padding:40px 24px;
  }
  .login-panel{
    padding:32px 18px 48px;
  }
  .login-card{
    padding:28px 22px;
  }
  .login-test-row{
    grid-template-columns:1fr;
  }
  .register-page{
    grid-template-columns:1fr;
  }
  .register-panel{
    padding:40px 20px 56px;
  }
  .register-name-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

.society-admin-details{
  padding:40px 0 80px;
}
.society-details-loading,
.society-details-empty{
  max-width:960px;
  margin:60px auto;
  padding:32px;
  background:#fff;
  border-radius:20px;
  text-align:center;
  box-shadow:0 18px 40px rgba(15, 23, 42, 0.08);
}
.society-details-hero{
  background:linear-gradient(180deg, #0d5962 0%, #0b3f4a 100%);
  color:#fff;
  padding:36px 32px 120px;
  border-radius:0 0 40px 40px;
}
.society-details-header{
  max-width:1200px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.society-details-brand{
  display:flex;
  align-items:center;
  gap:18px;
}
.society-details-logo{
  width:64px;
  height:64px;
  border-radius:16px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#0f525d;
  font-weight:700;
  box-shadow:0 8px 24px rgba(15, 23, 42, 0.12);
}
.society-details-logo img{
  width:44px;
  height:44px;
  object-fit:contain;
}
.society-details-logo.small{
  width:48px;
  height:48px;
}
.society-details-brand h1{
  margin:0 0 6px;
  font-size:26px;
  font-weight:700;
}
.society-details-subtitle{
  margin:0;
  opacity:0.75;
}
.society-details-actions{
  display:flex;
  gap:10px;
}
.society-details-card{
  max-width:1200px;
  margin:-70px auto 32px;
  background:#fff;
  border-radius:20px;
  padding:24px 28px;
  box-shadow:0 18px 40px rgba(15, 23, 42, 0.08);
}
.society-details-info{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-bottom:18px;
  border-bottom:1px solid #eef2f7;
}
.society-details-info h2{
  margin:0 0 8px;
  font-size:22px;
}
.society-details-meta{
  display:flex;
  gap:18px;
  color:#94a3b8;
  font-size:14px;
}
.society-details-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding-top:18px;
}
.society-tab{
  border:none;
  background:#f1f5f9;
  color:#0f172a;
  padding:8px 16px;
  border-radius:999px;
  cursor:pointer;
  font-size:14px;
}
.society-tab.active{
  background:#0f525d;
  color:#fff;
}
.society-details-content{
  max-width:1200px;
  margin:0 auto;
  padding:0 12px;
}
.society-details-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:24px;
}
.society-panel{
  background:#fff;
  border-radius:20px;
  padding:24px;
  box-shadow:0 12px 30px rgba(15, 23, 42, 0.08);
}
.society-panel-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
}
.society-panel-header h3{
  margin:0;
  font-size:18px;
}
.society-panel-body h4{
  margin:18px 0 10px;
}
.society-bullets{
  margin:0;
  padding:0 18px 0 0;
  display:grid;
  gap:10px;
}
.society-bullets li{
  color:#0f172a;
}
.bank-panel{
  text-align:center;
  display:grid;
  gap:12px;
}
.bank-logo{
  font-size:20px;
  font-weight:700;
  color:#0f525d;
}
.bank-name{
  color:#475569;
  font-size:14px;
}
.bank-row{
  display:flex;
  justify-content:space-between;
  color:#64748b;
  font-size:14px;
}
.bank-logo-image{
  width:90px;
  height:90px;
  object-fit:contain;
  margin:0 auto;
}
.society-message{
  max-width:1200px;
  margin:0 auto 16px;
  background:#ecfeff;
  border:1px solid #67e8f9;
  color:#0f525d;
  padding:12px 16px;
  border-radius:12px;
}
.society-message.error{
  background:#ffe8e8;
  border-color:#f8b4b4;
  color:#7f1d1d;
}
.society-form{
  padding:20px;
  margin-bottom:20px;
}
.society-field{
  display:grid;
  gap:6px;
  text-align:right;
}
.society-form-actions{
  display:flex;
  gap:8px;
  margin-top:12px;
}
.society-empty{
  background:#f8fafc;
  border-radius:16px;
  padding:16px;
  color:#64748b;
}
.society-row-actions{
  display:flex;
  gap:8px;
  justify-content:flex-start;
}
.society-memberships-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
}
.society-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:20px;
}
.membership-card{
  background:#fff;
  border-radius:18px;
  padding:20px;
  box-shadow:0 10px 24px rgba(15, 23, 42, 0.08);
  display:grid;
  gap:12px;
  position:relative;
}
.membership-card.highlighted{
  border:2px solid #8de7d1;
  background:#f0fdfa;
}
.membership-card-actions{
  display:flex;
  gap:8px;
}
.membership-logo{
  width:52px;
  height:52px;
  border-radius:14px;
  background:#f1f5f9;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  color:#0f525d;
}
.membership-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.membership-tags span{
  background:#e2e8f0;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  color:#0f172a;
}
.society-table{
  display:grid;
  gap:10px;
}
.society-table-head,
.society-table-row{
  display:grid;
  grid-template-columns:2fr 1.5fr 1fr 1fr 1fr;
  gap:12px;
  padding:12px 16px;
  align-items:center;
}
.society-table-head{
  color:#94a3b8;
  font-size:13px;
}
.society-table-row{
  background:#f8fafc;
  border-radius:16px;
}
.society-person{
  display:flex;
  align-items:center;
  gap:12px;
}
.society-avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  background:#0f525d;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
}
.society-person-name{
  font-weight:600;
}
.society-person-email{
  color:#94a3b8;
  font-size:12px;
}
.society-hint{
  color:#64748b;
  margin:0 0 16px;
}
.society-kpis{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:16px;
}
.society-kpis div{
  background:#f8fafc;
  padding:16px;
  border-radius:16px;
  text-align:center;
}
.society-kpis strong{
  display:block;
  font-size:22px;
  color:#0f525d;
}

@media (max-width: 980px){
  .society-details-header{
    flex-direction:column;
    align-items:flex-start;
  }
  .society-details-card{
    margin:-50px 16px 24px;
  }
  .society-details-grid{
    grid-template-columns:1fr;
  }
  .society-table-head,
  .society-table-row{
    grid-template-columns:1fr;
  }
}

.request-details{
  padding:0 0 80px;
}
.request-details-hero{
  background:linear-gradient(180deg, #0d5962 0%, #0b3f4a 100%);
  padding:36px 32px 120px;
  color:#fff;
  border-radius:0 0 40px 40px;
}
.request-details-header{
  max-width:1200px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.request-details-header h1{
  margin:0 0 6px;
  font-size:24px;
}
.request-details-body{
  max-width:1200px;
  margin:-70px auto 0;
  padding:0 16px;
}
.request-status-grid{
  display:grid;
  gap:12px;
  margin-bottom:24px;
}
.request-status{
  background:#fff7ed;
  border:1px dashed #f5c491;
  border-radius:16px;
  padding:16px;
  display:grid;
  gap:6px;
  color:#7c2d12;
}
.request-status.pending{
  background:#fff5e6;
  border-color:#f6c28b;
}
.request-status.rejected{
  background:#ffe8e8;
  border-color:#f8b4b4;
  color:#7f1d1d;
}
.request-status.accepted{
  background:#e6fffb;
  border-color:#7ed6c2;
  color:#0f766e;
}
.request-status-actions{
  display:flex;
  gap:8px;
  margin-top:6px;
}
.request-actions{
  background:#ffffff;
  border-radius:20px;
  box-shadow:0 12px 30px rgba(15, 23, 42, 0.08);
  padding:24px;
  margin-bottom:24px;
}
.request-actions-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.request-actions-header h3{
  margin:0 0 4px;
  font-size:20px;
}
.request-actions-header p{
  margin:0;
  color:#64748b;
}
.request-actions-message{
  background:#ecfdf3;
  color:#166534;
  padding:8px 14px;
  border-radius:999px;
  font-weight:600;
  font-size:13px;
}
.request-actions-message.is-danger{
  background:#fee2e2;
  color:#b91c1c;
}
.request-actions-message.is-warning{
  background:#fef3c7;
  color:#b45309;
}
.request-actions-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
}
.request-action-card{
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
  background:#f8fafc;
}
.request-action-card h4{
  margin:0;
  font-size:16px;
}
.request-action-card p{
  margin:0;
  color:#64748b;
  font-size:13px;
}
.request-details-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.request-card{
  background:#fff;
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15, 23, 42, 0.08);
  display:grid;
  gap:14px;
}
.request-card.wide{
  grid-column:1 / -1;
}
.request-card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.request-card-header h3{
  margin:0;
  font-size:16px;
}
.request-card-text{
  color:#64748b;
  margin:0;
}
.request-card-tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.request-card-tags span{
  background:#e2e8f0;
  border-radius:999px;
  padding:6px 12px;
  font-size:12px;
}

.request-timeline-card{
  margin-top:24px;
}
.request-timeline-list{
  list-style:none;
  margin:0;
  padding:8px 0 0;
  display:grid;
  gap:12px;
}
.request-timeline-item{
  position:relative;
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.request-timeline-item:not(:last-child)::after{
  content:"";
  position:absolute;
  left:14px;
  top:30px;
  width:2px;
  height:calc(100% + 8px);
  background:linear-gradient(180deg, #cbd5e1, #dbe4ef);
}
.request-timeline-dot{
  width:30px;
  height:30px;
  border-radius:50%;
  border:2px solid #1d4ed8;
  background:#fff;
  color:#1d4ed8;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  line-height:1;
  font-size:13px;
  box-shadow:0 0 0 4px #eff6ff;
  flex-shrink:0;
  margin-top:12px;
}
.request-timeline-content{
  flex:1;
  border:1px solid #e2e8f0;
  border-radius:8px;
  background:#fff;
  padding:10px 14px;
  display:grid;
  gap:4px;
  box-shadow:0 1px 2px rgba(15, 23, 42, 0.05);
}
.request-timeline-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  font-size:12px;
}
.request-timeline-meta strong{
  color:#1e293b;
  font-size:18px;
  line-height:1.1;
  font-weight:700;
}
.request-timeline-meta span{
  color:#475569;
  font-size:13px;
  font-weight:600;
}
.request-timeline-actor{
  color:#334155;
  font-weight:500;
  font-size:13px;
}
.request-timeline-notes{
  margin-top:4px;
  color:#1f2937;
  background:#fef9c3;
  border-top:1px solid #fde68a;
  padding:8px 10px;
  border-radius:4px;
  font-size:14px;
  line-height:1.5;
}
.request-timeline-dot.is-success{
  color:#16a34a;
  border-color:#16a34a;
  box-shadow:0 0 0 4px #dcfce7;
}
.request-timeline-dot.is-danger{
  color:#dc2626;
  border-color:#dc2626;
  box-shadow:0 0 0 4px #fee2e2;
}
.request-timeline-dot.is-warning{
  color:#d97706;
  border-color:#d97706;
  box-shadow:0 0 0 4px #ffedd5;
}
.request-timeline-content.is-success{
  border-color:#dcfce7;
  background:#f0fdf4;
}
.request-timeline-content.is-danger{
  border-color:#fee2e2;
  background:#fef2f2;
}
.request-timeline-content.is-warning{
  border-color:#ffedd5;
  background:#fff7ed;
}

@media (max-width: 768px){
  .request-timeline-meta strong{
    font-size:16px;
  }
  .request-timeline-meta span{
    font-size:12px;
  }
  .request-timeline-actor{
    font-size:12px;
  }
}
.request-attachment-inline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
  font-size:13px;
}
.request-attachment-inline a{
  color:#0f766e;
  font-weight:600;
}
.request-attachments{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}
.request-attachments li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
  font-size:13px;
}
.request-attachments a{
  color:#0f766e;
  font-weight:600;
}
.request-empty{
  color:#64748b;
  font-size:13px;
}
.request-upload{
  display:flex;
  gap:10px;
  justify-content:flex-end;
}
.request-form{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
}
.request-form .input{
  width:100%;
}
.request-details .request-form textarea.input{
  text-align:right;
  min-height:110px;
}
.request-form label{
  display:block;
  margin-bottom:6px;
  font-size:13px;
  color:#475569;
}
.request-field-wide{
  grid-column:1 / -1;
}
.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}

@media (max-width: 980px){
  .request-details-header{
    flex-direction:column;
    align-items:flex-start;
  }
  .request-details-body{
    margin-top:-50px;
  }
  .request-details-grid{
    grid-template-columns:1fr;
  }
  .request-actions-header{
    flex-direction:column;
    align-items:flex-start;
  }
  .request-actions-grid{
    grid-template-columns:1fr;
  }
}

.membership-proof-card{
  grid-column:1 / -1;
}
.membership-proof-header{
  align-items:flex-start;
  flex-wrap:wrap;
}
.membership-proof-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.membership-card-preview{
  border-radius:22px;
  padding:24px;
  color:#fff;
  background:linear-gradient(135deg, #04333b 0%, #07525f 55%, #0a6a7a 100%);
  box-shadow:0 14px 32px rgba(7, 82, 95, 0.35);
  display:grid;
  gap:18px;
}
.membership-card-branding{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.membership-card-brand{
  width:96px;
  height:auto;
  background:transparent;
  border-radius:10px;
  padding:0;
  object-fit:contain;
}
.membership-card-branding strong{
  display:block;
  font-size:22px;
}
.membership-card-branding small{
  display:block;
  color:rgba(255, 255, 255, 0.85);
}
.membership-card-identity h4{
  margin:0;
  font-size:24px;
}
.membership-card-identity span{
  display:inline-flex;
  margin-top:6px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255, 255, 255, 0.2);
  font-size:13px;
}
.membership-card-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 16px;
}
.membership-card-grid label{
  display:block;
  font-size:12px;
  color:rgba(255, 255, 255, 0.82);
}
.membership-card-grid strong{
  display:block;
  font-size:16px;
  margin-top:4px;
}
.membership-card-footer{
  border-top:1px solid rgba(255, 255, 255, 0.3);
  padding-top:10px;
  font-size:12px;
  color:rgba(255, 255, 255, 0.92);
}

@media (max-width: 768px){
  .membership-card-grid{
    grid-template-columns:1fr;
  }
}

@media print{
  body *{
    visibility:hidden;
  }
  #membershipProofCard,
  #membershipProofCard *{
    visibility:visible;
  }
  #membershipProofCard{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    box-shadow:none;
  }
  .membership-proof-print{
    margin:0;
    padding:24px;
    background:#fff;
  }
}

.alerts-page{display:grid;grid-template-columns:320px 1fr;gap:16px}
.panel{border:1px solid #d0d5dd;border-radius:8px;padding:12px;background:#fff}
.panel-title{font-weight:700;margin-bottom:10px}
.alerts-list ul{list-style:none;padding:0;margin-top:12px}
.alerts-list li{margin-bottom:6px}
.alerts-list li.selected .link-btn{border-color:#2e90fa;background:#eff8ff}
.link-btn{width:100%;text-align:start;border:1px solid #e4e7ec;border-radius:6px;background:#fff;padding:8px;display:flex;justify-content:space-between}
.field{width:100%;margin-bottom:10px;padding:8px}
.editor-toolbar button{margin-inline-end:6px}
.rich-editor{min-height:180px;border:1px solid #d0d5dd;border-radius:6px;padding:10px;background:#fff}
.editor-actions{margin-top:10px;display:flex;gap:10px}
.history-table{width:100%;border-collapse:collapse}
.history-table th,.history-table td{border:1px solid #eaecf0;padding:8px}
