.cab-public-card {
  --cab-dark: #0f172a;
  --cab-muted: #64748b;
  --cab-border: #e5e7eb;
  max-width: 760px;
  margin: 28px auto;
  padding: clamp(22px, 4vw, 34px);
  background: rgba(255,255,255,.96);
  border: 1px solid var(--cab-border);
  border-radius: 26px;
  box-shadow: 0 24px 70px rgba(15,23,42,.10);
  color: var(--cab-dark);
}
.cab-public-card h3 { margin: 0 0 8px; font-size: clamp(24px, 3vw, 34px); line-height: 1.1; letter-spacing: -0.03em; }
.cab-public-card p { color: var(--cab-muted); margin-top: 0; }
.cab-public-form { display: grid; gap: 10px; }
.cab-public-form label { font-weight: 700; margin-top: 8px; }
.cab-public-form input, .cab-public-form select, .cab-public-form textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid #dbe3ef;
  border-radius: 14px;
  padding: 10px 14px;
  box-sizing: border-box;
  background: #fff;
  color: #111827;
}
.cab-public-form textarea { min-height: 110px; resize: vertical; }
.cab-public-form button {
  margin-top: 14px;
  border: 0;
  border-radius: 999px;
  min-height: 52px;
  padding: 0 22px;
  background: #0f172a;
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
}
.cab-public-form button:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(15,23,42,.18); background: #1e293b; }
.cab-public-success, .cab-public-error { border-radius: 16px; padding: 12px 14px; margin: 16px 0; font-weight: 700; }
.cab-public-success { background: #ecfdf5; color: #047857; }
.cab-public-error { background: #fef2f2; color: #b91c1c; }
@media (max-width: 640px) { .cab-public-card { border-radius: 20px; } }

/* Teacher frontend portal */
.cab-teacher-portal { --cab-dark:#0f172a; --cab-muted:#64748b; --cab-border:#e5e7eb; max-width: 1180px; margin: 28px auto; color: var(--cab-dark); }
.cab-portal-hero { background: radial-gradient(circle at 10% 0%, rgba(37,99,235,.20), transparent 32%), linear-gradient(135deg,#0f172a,#1e293b); color:#fff; border-radius: 28px; padding: clamp(22px,4vw,34px); display:flex; justify-content:space-between; gap:20px; align-items:flex-end; box-shadow: 0 26px 70px rgba(15,23,42,.20); }
.cab-portal-hero span { text-transform: uppercase; letter-spacing: .16em; color:#93c5fd; font-size: 11px; font-weight: 800; }
.cab-portal-hero h3 { color:#fff; margin: 8px 0; font-size: clamp(28px,4vw,46px); line-height: 1; letter-spacing: -.045em; }
.cab-portal-hero p { color: rgba(255,255,255,.74); margin: 0; max-width: 680px; }
.cab-portal-user { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 18px; padding: 12px 14px; white-space: nowrap; }
.cab-portal-stats { display:grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 18px 0; }
.cab-portal-stats div { background:#fff; border:1px solid var(--cab-border); border-radius: 20px; padding: 18px; box-shadow: 0 16px 42px rgba(15,23,42,.06); }
.cab-portal-stats span { display:block; color:var(--cab-muted); font-weight:700; }
.cab-portal-stats strong { display:block; margin-top:5px; font-size: 32px; letter-spacing: -.03em; }
.cab-portal-filter { display:flex; gap:10px; background:#fff; border:1px solid var(--cab-border); border-radius:20px; padding:14px; box-shadow: 0 16px 42px rgba(15,23,42,.05); margin-bottom:18px; }
.cab-portal-filter input, .cab-portal-filter select { min-height:46px; border:1px solid #dbe3ef; border-radius:14px; padding: 8px 12px; flex:1; }
.cab-portal-filter button, .cab-portal-button, .cab-portal-card-actions button { min-height:46px; border:0; border-radius:999px; padding:0 18px; background:#0f172a; color:#fff !important; text-decoration:none; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:.25s ease; }
.cab-portal-filter button:hover, .cab-portal-button:hover, .cab-portal-card-actions button:hover { transform: translateY(-1px); background:#1e293b; }
.cab-portal-button-light { background:#fff; color:#0f172a !important; border:1px solid var(--cab-border); }
.cab-portal-list { display:grid; gap:14px; }
.cab-portal-request-card { display:flex; justify-content:space-between; gap:18px; align-items:center; background:#fff; border:1px solid var(--cab-border); border-radius:24px; padding:18px; box-shadow: 0 16px 42px rgba(15,23,42,.06); }
.cab-portal-request-card h4 { margin: 10px 0 4px; font-size:22px; letter-spacing:-.025em; }
.cab-portal-request-card p { margin:0 0 6px; color:var(--cab-muted); }
.cab-portal-card-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cab-portal-card-actions form { margin:0; }
.cab-badge { display:inline-flex; align-items:center; border-radius:999px; padding:4px 10px; font-size:12px; font-weight:800; margin-right:5px; }
.cab-badge-pending{background:#fff7ed;color:#c2410c}.cab-badge-approved{background:#eff6ff;color:#1d4ed8}.cab-badge-sent{background:#ecfdf5;color:#047857}.cab-badge-rejected{background:#fef2f2;color:#b91c1c}
.cab-detail-shell { display:grid; gap:16px; margin-top:16px; }
.cab-detail-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px; border:1px solid #dbeafe; border-radius:24px; background:#fff; box-shadow:0 18px 50px rgba(15,23,42,.07); }
.cab-detail-hero h2 { margin:10px 0 6px; font-size:clamp(24px,3vw,40px); letter-spacing:-.04em; }
.cab-detail-hero p { margin:0; color:#64748b; }
.cab-detail-actions, .cab-action-panel { display:flex; gap:8px; flex-wrap:wrap; }
.cab-action-panel { background:#f8fafc; border:1px solid #e2e8f0; border-radius:20px; padding:14px; }
.cab-action-panel form { display:flex; gap:8px; align-items:center; margin:0; }
.cab-action-panel textarea { min-width:260px; min-height:44px; border:1px solid #dbe3ef; border-radius:12px; padding:8px 10px; }
.cab-action-panel .button, .cab-detail-actions .button { min-height:42px; border-radius:999px; padding:0 16px; background:#0f172a; color:#fff!important; text-decoration:none; border:0; display:inline-flex; align-items:center; }
.cab-detail-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:16px; }
.cab-detail-card { background:#fff; border:1px solid var(--cab-border); border-radius:22px; padding:18px; box-shadow:0 16px 42px rgba(15,23,42,.06); }
.cab-detail-card-wide { grid-column:1/-1; }
.cab-detail-card h3 { margin:0 0 14px; }
.cab-detail-card dl { display:grid; grid-template-columns: 180px minmax(0,1fr); gap:10px 14px; margin:0; }
.cab-detail-card dt { color:#64748b; font-weight:800; }
.cab-detail-card dd { margin:0; word-break:break-word; }
.cab-timeline { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.cab-timeline li { padding:12px 14px; border:1px solid #e2e8f0; border-radius:16px; background:#f8fafc; }
.cab-timeline span { display:block; color:#64748b; font-size:12px; margin-top:2px; }
@media (max-width: 760px){ .cab-portal-hero,.cab-portal-request-card,.cab-detail-hero{flex-direction:column;align-items:flex-start}.cab-portal-stats,.cab-detail-grid{grid-template-columns:1fr}.cab-portal-filter,.cab-action-panel,.cab-action-panel form{flex-direction:column}.cab-action-panel textarea{min-width:0;width:100%}.cab-detail-card-wide{grid-column:auto}.cab-detail-card dl{grid-template-columns:1fr}.cab-portal-filter button,.cab-portal-button,.cab-portal-card-actions button{width:100%} }

/* WooCommerce student account certificates */
.cab-account-certificates { --cab-dark:#0f172a; --cab-muted:#64748b; --cab-border:#e5e7eb; color:var(--cab-dark); display:grid; gap:18px; }
.cab-account-hero { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; padding:clamp(20px,4vw,30px); border-radius:26px; background:linear-gradient(135deg,#0f172a,#1e293b); color:#fff; box-shadow:0 22px 60px rgba(15,23,42,.18); }
.cab-account-hero span { display:block; text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:800; color:#93c5fd; }
.cab-account-hero h3 { margin:8px 0; color:#fff; font-size:clamp(26px,4vw,42px); line-height:1; letter-spacing:-.045em; }
.cab-account-hero p { margin:0; color:rgba(255,255,255,.74); max-width:640px; }
.cab-account-hero strong { min-width:70px; min-height:70px; border-radius:22px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; font-size:34px; color:#fff; }
.cab-account-empty { background:#fff; border:1px solid var(--cab-border); border-radius:22px; padding:24px; box-shadow:0 16px 42px rgba(15,23,42,.06); }
.cab-account-empty h4 { margin:0 0 8px; font-size:22px; }
.cab-account-empty p { margin:0; color:var(--cab-muted); }
.cab-account-list { display:grid; gap:14px; }
.cab-account-card { display:flex; justify-content:space-between; align-items:center; gap:18px; background:#fff; border:1px solid var(--cab-border); border-radius:24px; padding:18px; box-shadow:0 16px 42px rgba(15,23,42,.06); }
.cab-account-card h4 { margin:10px 0 4px; font-size:22px; letter-spacing:-.025em; color:var(--cab-dark); }
.cab-account-card p { margin:0 0 6px; color:var(--cab-muted); }
.cab-account-card small { color:var(--cab-muted); }
.cab-account-card-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cab-account-card-actions a { min-height:44px; border-radius:999px; padding:0 16px; display:inline-flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--cab-border); color:#0f172a!important; text-decoration:none!important; font-weight:800; transition:.25s ease; }
.cab-account-card-actions a:hover { transform:translateY(-1px); box-shadow:0 12px 28px rgba(15,23,42,.10); }
.cab-account-card-actions .cab-account-download { background:#0f172a; color:#fff!important; border-color:#0f172a; }
@media (max-width:760px){ .cab-account-hero,.cab-account-card{flex-direction:column;align-items:flex-start}.cab-account-hero strong{min-width:58px;min-height:58px;font-size:28px}.cab-account-card-actions{width:100%;justify-content:stretch}.cab-account-card-actions a{width:100%} }
