:root {
  --bg: #f5f7fa;
  --card: #ffffff;
  --text: #1e293b;
  --muted: #64748b;
  --line: #e2e8f0;
  --primary: #1e3a5f;
  --primary-2: #172e4d;
  --primary-soft: #eef3f8;
  --success: #2d6a6a;
  --success-soft: #e8f2f2;
  --info: #1e3a5f;
  --info-soft: #eef3f8;
  --warning: #6b7280;
  --warning-soft: #f1f5f9;
  --danger: #8b3a3a;
  --danger-soft: #f8eded;
  --cancel: #64748b;
  --cancel-soft: #f1f5f9;
  --orange: #6b7280;
  --orange-soft: #f1f5f9;
  --pro-navy: #1e3a5f;
  --pro-navy-hover: #172e4d;
  --pro-teal: #2d6a6a;
  --pro-teal-hover: #255858;
  --pro-slate: #64748b;
  --pro-slate-hover: #475569;
  --pro-secondary-bg: #eef2f6;
  --pro-secondary-border: #cbd5e1;
  --pro-secondary-text: #334155;
  --pro-danger: #8b3a3a;
  --pro-danger-hover: #743030;
  --brand: var(--primary);
  --brand-2: var(--primary-2);
  --saffron: var(--warning);
  --shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, .08);
  --radius: 10px;
  --radius-sm: 8px;
  --space: 10px;
  --control-h: 34px;
  --font: "Segoe UI", system-ui, -apple-system, sans-serif;
  --btn-radius: 10px;
  --btn-primary: #0d6efd;
  --btn-primary-light: #4dabf7;
  --btn-primary-hover: #0b5ed7;
  --btn-success: #28a745;
  --btn-success-hover: #218838;
  --btn-danger: #dc3545;
  --btn-danger-hover: #bb2d3b;
  --btn-warning: #fd7e14;
  --btn-warning-hover: #e96b0a;
  --btn-secondary: #6c757d;
  --btn-secondary-hover: #5c636a;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; overflow-x: hidden; }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.45;
}
a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-2); }
img { max-width: 100%; }

.app-shell { display: flex; flex-direction: column; min-height: 100vh; }
.app-header { background: linear-gradient(180deg, #1e3a5f 0%, #172e4d 100%); color: #fff; position: sticky; top: 0; z-index: 40; }
.header-bar {
  display: flex; align-items: center; gap: 10px; padding: 8px 12px; flex-wrap: nowrap;
}
.brand { display: flex; gap: 8px; align-items: center; padding: 0; flex-shrink: 0; }
.app-header .brand { display: none; }
.brand-mark {
  width: 36px; height: 36px; border-radius: 9px;
  background: linear-gradient(135deg, #14b8a6, #0e7490);
  display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .85rem; color: #fff;
}
.brand strong { display: block; font-size: .78rem; line-height: 1.2; }
.brand span { display: block; font-size: .62rem; color: #99f6e4; margin-top: 2px; }
.header-nav {
  display: flex; flex-wrap: nowrap; gap: 6px; flex: 1 1 auto;
  align-items: center; min-width: 0; width: 100%;
  overflow: visible;
}
.header-nav a.nav-pill,
.header-nav button.nav-pill {
  color: #fff;
  padding: 0 10px;
  min-height: 38px;
  border-radius: var(--btn-radius);
  font-size: .74rem;
  font-weight: 600;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  border: 0;
  box-shadow: none;
  flex: 1 1 0;
  min-width: 68px;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s ease, opacity .15s ease;
}
.header-nav a.nav-pill.nav-logout,
.header-nav a.nav-pill.nav-password {
  flex: 0 0 auto;
  min-width: 88px;
  margin-left: 4px;
}
.header-nav a.nav-pill > i,
.header-nav button.nav-pill > i {
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
}
.header-nav a.nav-pill:not(.active),
.header-nav button.nav-pill:not(.active) { opacity: .95; }
.header-nav a.nav-pill:hover,
.header-nav button.nav-pill:hover {
  color: #fff;
  opacity: 1;
  filter: none;
  transform: none;
  box-shadow: none;
}
.header-nav a.nav-pill.active,
.header-nav button.nav-pill.active {
  color: #fff;
  opacity: 1;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.25);
}
.header-nav .nav-dashboard { background: #0d6efd; }
.header-nav .nav-dashboard:hover { background: #0b5ed7; }
.header-nav .nav-students { background: #0d6efd; }
.header-nav .nav-students:hover { background: #0b5ed7; }
.header-nav .nav-employees { background: #28a745; }
.header-nav .nav-employees:hover { background: #218838; }
.header-nav .nav-dispatch { background: #28a745; }
.header-nav .nav-dispatch:hover { background: #218838; }
.header-nav .nav-ebooks { background: #0d6efd; }
.header-nav .nav-ebooks:hover { background: #0b5ed7; }
.header-nav .nav-expenses { background: #28a745; }
.header-nav .nav-expenses:hover { background: #218838; }
.header-nav .nav-media { background: #0d6efd; }
.header-nav .nav-media:hover { background: #0b5ed7; }
.header-nav .nav-events { background: #fd7e14; }
.header-nav .nav-events:hover { background: #e96b0a; }
.header-nav .nav-gallery { background: #0d6efd; }
.header-nav .nav-gallery:hover { background: #0b5ed7; }
.header-nav .nav-resolutions { background: #fd7e14; }
.header-nav .nav-resolutions:hover { background: #e96b0a; }
.header-nav .nav-survey { background: #6610f2; }
.header-nav .nav-survey:hover { background: #520dc2; }
.header-nav .nav-settings { background: #6c757d; }
.header-nav .nav-settings:hover { background: #5c636a; }
.header-nav .nav-logout { background: #dc3545; }
.header-nav .nav-logout:hover { background: #bb2d3b; }
.header-nav .nav-password { background: #c2410c; }
.header-nav .nav-password:hover { background: #9a3412; }
.header-nav a.nav-pill.active,
.header-nav button.nav-pill.active { background: inherit; filter: brightness(.92); }
.nav-dropdown {
  position: relative;
  flex: 1 1 0;
  min-width: 68px;
  display: flex;
}
.nav-dropdown > .nav-pill { width: 100%; }
.nav-dropdown .nav-caret { font-size: .62rem; opacity: .85; }
.nav-dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 60;
  min-width: 240px;
  max-height: min(70vh, 420px);
  overflow: auto;
  padding: 6px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .14);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu { display: block; }
.nav-dropdown-menu a {
  display: block;
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--text);
  font-size: .8rem;
  font-weight: 700;
  text-decoration: none;
}
.nav-dropdown-menu a:hover,
.nav-dropdown-menu a.is-current {
  background: #ede9fe;
  color: #5b21b6;
}
.header-sub {
  background: #fff; color: var(--text); border-bottom: 1px solid var(--line);
  padding: 8px 14px; display: flex; flex-direction: column; gap: 8px;
}
.header-sub:has(#survey-create-open):not(:has(.survey-hub-row)):not(:has(.settings-hub-row)):not(:has(.media-hub-row)) {
  flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between;
}
.header-sub:has(.media-hub-row) {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.header-sub .hub-nav { width: 100%; }
.header-sub .hub-nav-inline { width: auto; max-width: max-content; }
.survey-hub-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.survey-hub-row .hub-nav {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
}
.survey-hub-row .hub-nav-inline { max-width: none; }
.survey-hub-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex: 0 0 auto;
}
.survey-hub-row .btn {
  margin-left: 0;
  flex: 0 0 auto;
  white-space: nowrap;
}
.media-hub-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex: 0 0 auto;
}
.media-hub-row .hub-nav,
.media-hub-row .hub-nav-inline {
  width: auto;
  max-width: none;
  margin: 0;
}
.settings-hub-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.settings-hub-row .hub-nav {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
}
.survey-place-title {
  margin: 0;
  font-size: .92rem;
  font-weight: 800;
  align-self: center;
  white-space: nowrap;
  flex: 0 0 auto;
}
.header-below {
  background: #f8fafc;
  border-bottom: 1px solid var(--line);
  padding: 10px 14px 12px;
}
.header-below .survey-team-form-panel {
  box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
}
.survey-place-title-wrap { width: 100%; min-width: 0; }
.survey-place-title-form,
.survey-settings-form {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px 10px;
  width: 100%;
  min-width: 0;
}
.survey-row-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  height: 32px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
  flex: 0 0 auto;
}
.survey-row-tab-place { background: #0d9488; }
.survey-row-tab-details { background: #0d6efd; }
.survey-place-fields,
.survey-settings-fields {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
  min-width: 0;
  flex: 1 1 auto;
}
.survey-place-fields input {
  flex: 0 0 150px;
  width: 150px;
}
.survey-settings-fields input,
.survey-settings-fields select {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
}
.survey-place-title-form input,
.survey-settings-form input,
.survey-settings-form select {
  margin: 0;
  min-height: 32px;
  height: 32px;
  font-size: .78rem;
  font-weight: 600;
  padding: 0 8px;
  box-sizing: border-box;
}
.survey-settings-btn {
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 14px !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  border-radius: 8px;
  flex: 0 0 auto;
  white-space: nowrap;
}
.survey-team-title-form {
  display: block;
  width: 100%;
  min-width: 0;
}
.survey-team-add-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  background: #fff;
  border: 1px solid #c7d2fe;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(79, 70, 229, .06);
}
.survey-team-add-table td {
  border-right: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  padding: 6px 8px;
  vertical-align: bottom;
  background: #fff;
}
.survey-team-add-table tr:first-child td { background: #f8fafc; }
.survey-team-add-table tr.survey-team-add-places td {
  background: linear-gradient(180deg, #eef2ff 0%, #ecfdf5 100%);
  border-bottom: 0;
}
.survey-team-add-table td:last-child { border-right: 0; }
.survey-team-add-table .survey-team-assigned { width: 72px; }
.survey-team-guardian-cell .guardian-fields { margin: 0; min-width: 0; }
.survey-team-guardian-cell .guardian-fields > label {
  font-size: .66rem;
  font-weight: 800;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: 0 0 3px;
}
.survey-team-guardian-cell .guardian-type-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-bottom: 4px;
}
.survey-team-guardian-cell .guardian-type-option {
  font-size: .72rem;
  font-weight: 600;
  color: #475569;
}
.survey-team-guardian-cell .guardian-name-field input {
  width: 100%;
  min-width: 0;
}
.survey-team-add-create {
  width: 88px;
  text-align: center;
  vertical-align: middle !important;
  background: #ecfdf5 !important;
  border-bottom: 0 !important;
}
.survey-team-title-form label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  margin: 0;
  width: 100%;
}
.survey-team-title-form label span {
  font-size: .66rem;
  font-weight: 800;
  color: #64748b;
  line-height: 1.1;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.survey-team-title-form input,
.survey-team-title-form select {
  width: 100%;
  margin: 0;
  min-height: 32px;
  height: 32px;
  font-size: .78rem;
  padding: 0 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  background: #fff;
}
.survey-team-title-form input[type="file"] { padding: 3px 6px; }
.survey-team-loc-district span { color: #4f46e5; }
.survey-team-loc-block span { color: #0f766e; }
.survey-team-loc-village span { color: #c2410c; }
.survey-team-loc-district select { border-color: #a5b4fc; }
.survey-team-loc-block select { border-color: #5eead4; }
.survey-team-loc-village select { border-color: #fdba74; }
.survey-team-title-form .btn {
  min-height: 36px;
  height: 36px;
  padding: 0 16px;
  white-space: nowrap;
}
.survey-team-form-panel {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
}
.survey-team-form-section {
  padding: 12px 14px 14px;
  border-bottom: 1px solid #eef2f7;
}
.survey-team-form-section-loc {
  background: linear-gradient(180deg, #fafbff 0%, #f8fafc 100%);
}
.survey-team-form-section-title {
  margin: 0 0 10px;
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #475569;
  padding-left: 10px;
  border-left: 3px solid #4f46e5;
  line-height: 1.2;
}
.survey-team-form-panel .survey-team-form-section-title {
  display: none;
}
.survey-team-form-panel .survey-team-form-section {
  padding-top: 10px;
}
.survey-team-form-panel .survey-team-form-section:first-child {
  padding-top: 12px;
}
.survey-team-form-panel .survey-team-form-section-loc {
  padding-top: 6px;
  border-top: 1px solid #eef2f7;
}
.survey-team-form-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: end;
}
.survey-team-form-grid-login {
  grid-template-columns: minmax(88px, 1fr) minmax(100px, 1.1fr) 72px minmax(140px, 1.4fr);
  flex-wrap: nowrap;
}
.survey-team-form-section-loc .survey-team-form-grid-login {
  overflow-x: auto;
  padding-bottom: 2px;
}
.survey-team-form-grid-login .survey-team-form-assigned input {
  max-width: none;
  width: 100%;
  padding-left: 6px;
  padding-right: 6px;
  text-align: center;
}
.survey-team-form-field label,
.survey-team-form-field .guardian-fields > label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0;
  min-width: 0;
}
.survey-team-form-field label span,
.survey-team-form-field .guardian-fields > label {
  font-size: .66rem;
  font-weight: 800;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.survey-team-form-span-2 { grid-column: span 2; }
.survey-team-form-panel .survey-team-guardian-cell { grid-column: span 2; min-width: 0; }
.survey-team-form-assigned input { max-width: 108px; }
.survey-team-form-photo input[type="file"] {
  font-size: .72rem;
  padding: 6px 8px;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
}
.survey-team-form-photo-preview {
  display: inline-flex;
  margin-top: 6px;
}
.survey-team-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  align-items: center;
  padding: 10px 14px 12px;
  background: #f8fafc;
  border-top: 1px solid #eef2f7;
}
.survey-team-form-panel.is-compact .survey-team-form-section { padding: 8px 10px 10px; }
.survey-team-form-panel.is-compact .survey-team-form-section-title { margin-bottom: 8px; font-size: .64rem; }
.survey-team-form-panel.is-compact .survey-team-form-grid { gap: 8px 10px; }
.survey-team-form-panel.is-compact .survey-team-form-actions {
  padding: 8px 10px;
  border-top: 0;
  background: transparent;
}
.survey-team-form-panel .guardian-type-row:not(.guardian-type-ticks) {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 2px;
  margin-bottom: 6px;
  background: #e2e8f0;
  border-radius: 8px;
}
.survey-team-form-panel .guardian-type-option:not(.guardian-tick) {
  margin: 0;
  padding: 4px 12px;
  font-size: .72rem;
  font-weight: 700;
  color: #475569;
  border-radius: 6px;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.survey-team-form-panel .guardian-type-option:not(.guardian-tick):has(input:checked) {
  background: #fff;
  color: #0f172a;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
}
.survey-team-form-panel .guardian-name-field input {
  min-height: 32px;
  height: 32px;
  font-size: .78rem;
  padding: 0 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
}
.survey-team-list-card { margin-top: 0; }
.survey-team-list thead th {
  font-size: .68rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #64748b;
  background: #f8fafc;
}
.survey-team-list tbody td { vertical-align: middle; }
.survey-team-list .inline-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.survey-team-list .inline-form input[type="number"] {
  width: 72px;
  min-height: 32px;
  border-radius: 8px;
}
.survey-team-action-group {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 6px;
  align-items: center;
  max-width: none;
  white-space: nowrap;
}
.survey-team-list td.actions,
.survey-team-list td.actions .survey-team-action-group {
  white-space: nowrap;
}
.survey-team-list td.actions .btn {
  flex: 0 0 auto;
}
.survey-team-inline-toggle { display: inline; margin: 0; }
.survey-team-toggle-btn {
  background: #64748b !important;
  color: #fff !important;
  border: 0;
}
.survey-team-toggle-btn:hover { background: #475569 !important; color: #fff !important; }
.survey-team-edit-card .survey-assign-title {
  margin: 0 0 4px;
  padding: 14px 16px 0;
}
.survey-team-edit-card .survey-team-title-form { padding: 0 16px 16px; }
@media (max-width: 1200px) {
  .survey-team-form-grid:not(.survey-team-form-grid-login) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .survey-team-form-panel .survey-team-guardian-cell,
  .survey-team-form-span-2 { grid-column: span 2; }
  .survey-team-form-grid-login {
    grid-template-columns: repeat(4, minmax(100px, 1fr));
    min-width: 480px;
  }
}
@media (max-width: 720px) {
  .survey-team-form-grid:not(.survey-team-form-grid-login) { grid-template-columns: 1fr 1fr; }
  .survey-team-form-panel .survey-team-guardian-cell,
  .survey-team-form-span-2 { grid-column: 1 / -1; }
  .survey-team-form-actions { justify-content: stretch; }
  .survey-team-form-actions .btn { flex: 1 1 auto; }
}
.survey-team-loc-name { display: block; color: #4f46e5; font-weight: 700; }
.survey-team-loc-path { display: block; color: #0f766e; font-size: .78rem; }
.survey-team-photo {
  width: 42px; height: 42px; object-fit: cover; border-radius: 8px;
  border: 1px solid var(--line); display: block;
}
.header-sub:has(.survey-hub-row) h1 { display: none; }
.header-sub h1 { margin: 0; font-size: 1.05rem; font-weight: 750; letter-spacing: -.02em; color: var(--text); }
.nav-toggle {
  display: none; width: var(--control-h); height: var(--control-h);
  align-items: center; justify-content: center; border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; cursor: pointer;
}
.top-user { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: .8rem; white-space: nowrap; }
.content { padding: 12px 14px 20px; max-width: none; width: 100%; flex: 1; }

.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 12px 14px;
}
.card + .card, .grid + .card { margin-top: 10px; }
.card h2 { margin: 0 0 8px; font-size: 1.05rem; }
.card h3 { margin: 0 0 8px; font-size: .95rem; }
.card canvas { max-height: 220px; width: 100% !important; }
.chart-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-bottom: 14px; }
.chart-grid-8 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.chart-card { min-height: 280px; }
.chart-card h3 { margin: 0 0 10px; font-size: .95rem; font-weight: 700; }
.chart-card canvas { max-height: 220px; height: 200px !important; width: 100% !important; }
.survey-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-bottom: 14px; }
.survey-stats .stat { margin: 0; padding: 12px; }
.survey-header-create {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; width: 100%;
}
.survey-header-field {
  display: flex; flex-direction: column; gap: 3px; margin: 0; font-weight: 700; font-size: .72rem; color: var(--text);
}
.survey-header-field[hidden] { display: none !important; }
.survey-header-field span { line-height: 1.2; }
.survey-header-create input {
  min-height: 34px; min-width: 0; width: 150px; margin: 0; font-weight: 600; font-size: .85rem;
}
.survey-header-create input[name="title"] { width: 220px; }
.survey-header-field:first-of-type { flex: 1 1 180px; }
.survey-header-field:first-of-type input { width: 100%; }
.survey-header-create select {
  min-height: 34px; width: 180px; margin: 0; font-weight: 600; font-size: .85rem;
}
.survey-header-category select { width: 190px; }
.survey-header-custom input { width: 170px; }
.survey-list-filters {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 12px;
}
.survey-list-filters input, .survey-list-filters select {
  width: auto; min-width: 140px; margin: 0;
}
.survey-list-filters input[name="q"] { min-width: 220px; flex: 1 1 180px; }
.survey-cat-bar {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px;
}
.survey-cat-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 36px; padding: 0 14px; border-radius: 999px;
  background: #ede9fe; color: #5b21b6; font-weight: 800; font-size: .78rem;
  letter-spacing: .02em; text-transform: uppercase; text-decoration: none;
  border: 1px solid #ddd6fe;
}
.survey-cat-chip:hover, .survey-cat-chip.active {
  background: #6610f2; color: #fff; border-color: #6610f2;
}
.survey-home {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 12px;
  width: 100%;
  min-width: 0;
}
.survey-home-surveys {
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  max-width: none;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.survey-home .survey-campaign-list {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  flex: 1 1 auto;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  max-width: none;
  min-width: 0;
}
.survey-home .survey-campaign-item {
  display: flex;
  flex: 1 1 0;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.survey-home .survey-campaign-item .survey-campaign-card {
  flex: 1 1 auto;
  width: auto;
  max-width: none;
  min-width: 0;
}
.survey-home .survey-campaign-item.is-disabled .survey-campaign-card {
  opacity: .55;
  filter: grayscale(.25);
}
.survey-campaign-toggle {
  display: flex;
  flex: 0 0 auto;
  margin: 0;
}
.survey-toggle-btn {
  white-space: nowrap;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 750;
}
.survey-toggle-btn.is-on {
  background: #dc2626 !important;
  color: #fff !important;
  border: 0;
}
.survey-toggle-btn.is-on:hover { background: #b91c1c !important; color: #fff !important; }
.survey-toggle-btn.is-off {
  background: #15803d !important;
  color: #fff !important;
  border: 0;
}
.survey-toggle-btn.is-off:hover { background: #166534 !important; color: #fff !important; }
.survey-home .survey-campaign-card {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: none;
  min-width: 0;
  min-height: 56px;
  padding: 12px 18px;
  gap: 2px;
  border-radius: 999px;
  text-align: center;
}
.survey-home .survey-campaign-card .survey-card-name,
.survey-home .survey-campaign-card .survey-card-title,
.survey-home .survey-campaign-card .survey-card-dates,
.survey-home .survey-campaign-card .survey-card-stats {
  width: 100%;
  white-space: normal;
  text-align: center;
}
.survey-reports {
  margin-top: 28px;
  padding: 18px 18px 16px;
  max-width: 100%;
  min-width: 0;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: var(--shadow);
}
.survey-home .survey-reports {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  margin-top: 0;
  padding: 12px 12px 10px;
}
.survey-reports-head {
  margin: 0 0 14px;
}
.survey-reports-head h2 {
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: -.02em;
  color: var(--pro-navy);
}
.survey-reports-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .84rem;
}
.survey-report-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--pro-navy);
}
.survey-report-back:hover { color: var(--pro-teal); }
.survey-report-filters {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) repeat(3, minmax(0, 1fr)) auto;
  gap: 10px 12px;
  align-items: end;
  width: 100%;
  margin: 0 0 16px;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.survey-report-dates {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  align-items: end;
}
.survey-report-filters label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  font-size: .68rem;
  font-weight: 800;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.survey-report-filters input,
.survey-report-filters select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 38px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
  font-weight: 600;
  font-size: .82rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text);
}
.survey-report-filters input:focus,
.survey-report-filters select:focus {
  outline: 0;
  border-color: #94a3b8;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(30, 58, 95, .08);
}
.survey-report-filter-actions {
  display: flex;
  gap: 8px;
  align-items: end;
  justify-content: flex-end;
}
.survey-report-filter-actions .btn {
  min-height: 38px;
  padding: 0 16px;
  border-radius: 10px;
  font-weight: 700;
}
.survey-report-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}
.survey-report-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  min-height: 168px;
  padding: 16px 16px 14px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e8eef5;
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
  text-decoration: none;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.survey-report-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: #cbd5e1;
}
.survey-report-card:hover {
  transform: translateY(-3px);
  border-color: #c7d2e3;
  box-shadow: 0 14px 28px rgba(15, 23, 42, .08);
  color: inherit;
}
.survey-report-card-top {
  display: flex;
  align-items: center;
  gap: 10px;
}
.survey-report-card-top i {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--primary-soft);
  color: var(--pro-navy);
  font-size: .92rem;
}
.survey-report-progress::before { background: linear-gradient(90deg, #2d6a6a, #14b8a6); }
.survey-report-progress .survey-report-card-top i { background: #e6f4f1; color: #0f766e; }
.survey-report-districts::before { background: linear-gradient(90deg, #1e3a5f, #3b82f6); }
.survey-report-districts .survey-report-card-top i { background: #e8eef6; color: #1e3a5f; }
.survey-report-team::before { background: linear-gradient(90deg, #4338ca, #818cf8); }
.survey-report-team .survey-report-card-top i { background: #eef2ff; color: #4338ca; }
.survey-report-top::before { background: linear-gradient(90deg, #b45309, #f59e0b); }
.survey-report-top .survey-report-card-top i { background: #fff7ed; color: #b45309; }
.survey-report-low::before { background: linear-gradient(90deg, #9f1239, #fb7185); }
.survey-report-low .survey-report-card-top i { background: #fff1f2; color: #be123c; }
.survey-report-kicker {
  min-width: 0;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1.25;
}
.survey-report-card strong {
  margin-top: auto;
  font-size: 1.45rem;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -.03em;
  color: #0f172a;
  word-break: break-word;
}
.survey-report-meta {
  font-size: .78rem;
  color: #64748b;
  line-height: 1.4;
}
.survey-report-card .survey-meter {
  display: block;
  width: 100%;
  height: 7px;
  margin: 2px 0 0;
  background: #eef2f6;
  border-radius: 99px;
  overflow: hidden;
}
.survey-report-card .survey-meter span {
  min-width: 8px;
  background: linear-gradient(90deg, #0f766e, #14b8a6);
  border-radius: 99px;
}
.survey-home .survey-reports-head {
  margin: 0 0 8px;
}
.survey-home .survey-reports-head h2 { font-size: 1rem; }
.survey-home .survey-reports-head p { display: none; }
.survey-home .survey-report-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
  flex: 1 1 auto;
  align-content: stretch;
}
.survey-home .survey-report-card {
  min-width: 0;
  min-height: 120px;
  height: 100%;
  padding: 10px 12px;
  gap: 4px;
  border-radius: 12px;
}
.survey-home .survey-report-card-top { gap: 6px; }
.survey-home .survey-report-card-top i {
  width: 26px;
  height: 26px;
  flex-basis: 26px;
  border-radius: 8px;
  font-size: .7rem;
}
.survey-home .survey-report-kicker { font-size: .58rem; }
.survey-home .survey-report-card strong {
  margin-top: 2px;
  font-size: .95rem;
}
.survey-home .survey-report-meta {
  font-size: .65rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.survey-home .survey-report-card .survey-meter {
  height: 4px;
  margin: 2px 0 0;
}
.survey-report-detail { margin-top: 0; }
@media (max-width: 1400px) {
  .survey-report-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .survey-report-filters { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .survey-report-dates,
  .survey-report-filter-actions { grid-column: 1 / -1; }
  .survey-home .survey-report-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .survey-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .survey-report-filters { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .survey-report-dates { grid-column: 1 / -1; }
  .survey-home {
    flex-wrap: wrap;
  }
  .survey-home-surveys,
  .survey-home .survey-campaign-list {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
    max-width: none;
    flex-direction: row;
    flex-wrap: nowrap;
    height: auto;
  }
  .survey-home .survey-campaign-card {
    flex: 1 1 0;
    width: auto;
    max-width: none;
    min-height: 56px;
  }
  .survey-home .survey-report-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .survey-reports { padding: 14px; }
  .survey-report-grid { grid-template-columns: 1fr; }
  .survey-report-filters input,
  .survey-report-filters select { min-width: 0; width: 100%; }
  .survey-report-filters label,
  .survey-report-dates { flex: 1 1 100%; }
  .survey-report-filter-actions { width: 100%; }
  .survey-report-filter-actions .btn { flex: 1; justify-content: center; }
  .survey-home .survey-report-grid {
    display: flex;
    overflow-x: auto;
  }
  .survey-home .survey-report-card {
    flex: 0 0 140px;
    width: 140px;
  }
}
.survey-campaign-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.survey-campaign-card {
  display: inline-flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 8px;
  width: auto; max-width: 100%; min-height: 34px; padding: 4px 12px;
  cursor: pointer; background: #6610f2; color: #fff; border: 0;
  border-radius: 10px; box-shadow: none; user-select: none; text-decoration: none;
}
.survey-campaign-card:hover { filter: brightness(1.05); color: #fff; }
.survey-campaign-card:focus { outline: 3px solid rgba(102, 16, 242, .35); outline-offset: 2px; color: #fff; }
.survey-open-head { margin-bottom: 12px; }
.survey-open-head h2 { margin: 0 0 4px; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .03em; }
.survey-open-head p { margin: 0; color: var(--muted); }
.survey-open-actions {
  display: inline-flex; flex-wrap: nowrap; gap: 6px; align-items: center;
  background: #6610f2; padding: 6px 8px; border-radius: 12px;
}
.survey-card-main {
  display: inline-flex; align-items: center; gap: 8px; flex-wrap: nowrap; white-space: nowrap; min-width: 0;
}
.survey-campaign-card h2,
.survey-card-name {
  margin: 0; font-size: .78rem; font-style: normal; font-weight: 800;
  letter-spacing: .02em; text-transform: uppercase; color: #fff !important; line-height: 1.2;
}
.survey-card-title { margin: 0; font-size: .72rem; font-weight: 600; color: rgba(255,255,255,.92); }
.survey-campaign-card p { margin: 0; color: rgba(255,255,255,.9); font-size: .72rem; }
.survey-card-dates, .survey-card-stats { margin: 0; font-size: .72rem; font-weight: 650; color: rgba(255,255,255,.92); }
.survey-dash-btn.add-team { background: #0d9488; }
.survey-dash-btn.add-team:hover { background: #0f766e; }
.survey-campaign-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.survey-progress { text-align: right; }
.survey-progress b { display: block; font-size: 1.2rem; }
.survey-progress span { color: var(--muted); font-size: .78rem; }
.survey-dash-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.survey-dash-btn {
  display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: 6px;
  flex: 0 0 auto; min-height: 32px; padding: 0 12px; border-radius: 8px; color: #fff; font-weight: 700;
  text-align: center; font-size: .78rem; text-decoration: none; white-space: nowrap;
}
.survey-dash-btn i { font-size: .78rem; }
.survey-dash-btn.list { background: #0d6efd; }
.survey-dash-btn.form { background: #0d6efd; }
.survey-dash-btn.performance { background: #fd7e14; }
.survey-dash-btn.team { background: #198754; }
.survey-dash-btn.output { background: #6f42c1; }
.survey-dash-btn.settings { background: #6c757d; }
.survey-dash-btn:hover { filter: brightness(.95); color: #fff; }
.survey-campaign-card .survey-card-footer {
  display: none; margin: 0; padding: 0; background: transparent; border-radius: 0;
  flex-wrap: nowrap; gap: 4px; align-items: center;
}
.survey-campaign-card.is-open .survey-card-footer { display: inline-flex; }
.survey-campaign-card .survey-card-footer .survey-dash-btn {
  min-height: 26px; padding: 0 8px; font-size: .7rem; border-radius: 7px; gap: 4px;
}
.survey-campaign-card .survey-card-footer .survey-dash-btn i { font-size: .68rem; }
.survey-span-all { grid-column: 1 / -1; }
.survey-heading { margin: 4px 0 0; font-size: 1.02rem; }
.survey-info { margin: 0; padding: 8px 10px; background: var(--primary-soft); border-radius: var(--radius-sm); color: var(--muted); }
.survey-gps-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.survey-gps-row input { flex: 1 1 180px; min-width: 0; }
.survey-gps-row .btn { width: auto; flex: 0 0 auto; }
.survey-meter { display: inline-block; width: 90px; height: 8px; background: #e9ecef; border-radius: 99px; overflow: hidden; margin-right: 6px; vertical-align: middle; }
.survey-meter span { display: block; height: 100%; background: #198754; }
.inline-form { display: flex; gap: 6px; align-items: center; }
.inline-hidden { display: none; }
.hub-nav .hub-list, .hub-nav .hub-dash { background: #0d6efd; }
.hub-nav .hub-form { background: #0d6efd; }
.hub-nav .hub-post, .hub-nav-inline .hub-post { background: #0d6efd; }
.hub-nav .hub-gallery, .hub-nav-inline .hub-gallery { background: #495057; }
.hub-nav .hub-assign, .hub-nav-inline .hub-assign { background: #0f766e; }
.hub-nav .hub-add, .hub-nav-inline .hub-add { background: #198754; }
.hub-nav .hub-add-team { background: #0d9488; }
.hub-nav .hub-mobile { background: #7c3aed; }
.hub-nav-inline .hub-settings { background: #db2777; }
.hub-nav .hub-output { background: #6f42c1; }
.hub-nav .hub-performance { background: #fd7e14; }
.hub-nav .hub-output { background: #6f42c1; }
.condition-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.condition-tag { background: #eef2ff; color: #3730a3; border-radius: 999px; padding: 3px 10px; font-size: .78rem; font-weight: 600; }
.card.table-wrap, .stu-table-card { padding: 0; overflow: auto; }
.card.table-wrap table, .stu-table-card table { margin: 0; }
.card.table-wrap th:first-child, .card.table-wrap td:first-child,
.stu-table-card th:first-child, .stu-table-card td:first-child { padding-left: 12px; }
.card.table-wrap th:last-child, .card.table-wrap td:last-child,
.stu-table-card th:last-child, .stu-table-card td:last-child { padding-right: 12px; }

.grid { display: grid; gap: 10px; }
.grid-8, .grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-photo { min-width: 0; }
.gallery-photo img { width: 100%; height: 140px; object-fit: cover; border-radius: 12px; display: block; }
.gallery-photo-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.gallery-photo-actions form { margin: 0; }
.stat, .tile {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px;
  box-shadow: var(--shadow); display: flex; gap: 10px; align-items: center;
}
.stat:hover, .tile:hover { box-shadow: 0 8px 18px rgba(15,50,79,.08); }
a.stat { color: inherit; min-height: 76px; }
.tile { min-height: 68px; color: inherit; }
.icon {
  width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: .95rem; flex-shrink: 0;
}
.icon.teal { background: var(--info-soft); color: var(--info); }
.icon.blue, .icon.cyan { background: var(--info-soft); color: var(--info); }
.icon.green { background: var(--success-soft); color: var(--success); }
.icon.amber { background: var(--warning-soft); color: var(--warning); }
.icon.orange { background: #ffedd5; color: #c2410c; }
.icon.violet { background: #ede9fe; color: #6d28d9; }
.icon.rose { background: var(--danger-soft); color: var(--danger); }
.icon.slate { background: var(--cancel-soft); color: var(--cancel); }
.stat b { display: block; font-size: 1.15rem; line-height: 1.2; }
.tile b { display: block; font-size: .88rem; line-height: 1.25; }
.stat span, .tile span { color: var(--muted); font-size: .74rem; font-weight: 600; }

.filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0; align-items: center; }
.filters input, .filters select { min-width: 140px; width: auto; }
.survey-output-filters.toolbar.filters {
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: 100%;
  overflow-x: auto;
  gap: 6px;
}
.survey-output-filters input,
.survey-output-filters select {
  min-width: 0;
  width: auto;
  flex: 1 1 110px;
}
.survey-output-filters input[type="date"] {
  flex: 0 1 138px;
  min-width: 128px;
  width: 138px;
}
.survey-output-filters input[name="q"] {
  flex: 1 1 140px;
  min-width: 110px;
}
.survey-output-filters .btn {
  flex: 0 0 auto;
}
.send-to { flex-wrap: nowrap; }
.send-to .btn { flex: 0 0 auto; }
.send-to input[type="search"] { min-width: 180px; max-width: 240px; }
.send-to input[type="radio"] {
  position: absolute; opacity: 0; width: 0; height: 0; min-width: 0; margin: 0; pointer-events: none;
}
.send-to label.btn:has(input:checked),
.send-to .btn.active {
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.35);
  filter: brightness(1.05);
}
.contact-row input[type="checkbox"] { width: auto; min-width: 0; min-height: 18px; }
tr.contact-row[hidden] { display: none; }
.create-post-form { padding-bottom: 0; }
.post-compose-row {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(280px, 1.4fr);
  gap: 10px;
  align-items: start;
}
.post-compose-row input,
.post-compose-row textarea { margin: 0; min-width: 0; }
.post-compose-row textarea { min-height: 38px; height: 38px; resize: vertical; }
input, select, textarea {
  width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 6px 10px; min-height: var(--control-h); font: inherit; background: #fff; color: var(--text);
}
input[type="file"] {
  min-height: 40px;
  padding: 6px;
  background: #f8fafc;
  cursor: pointer;
}
textarea { min-height: 72px; }
select[multiple] { min-height: 200px; height: auto; padding: 6px; }
input:focus, select:focus, textarea:focus {
  outline: 2px solid rgba(30, 58, 95, .16); border-color: #94a3b8;
}
label { display: block; font-size: .74rem; font-weight: 700; margin: 8px 0 4px; color: var(--text); }
.row label, .filters label, .field label { margin-top: 0; }
form > label:first-of-type, .card > label:first-of-type { margin-top: 0; }
div[style="height:10px"], div[style="height:12px"], div[style="height:14px"], div[style="height:16px"] { display: none; }
.row { display: grid; gap: 8px; margin-bottom: 8px; }
.row-4 { grid-template-columns: repeat(4, 1fr); }
.row-3 { grid-template-columns: repeat(3, 1fr); }
.guardian-fields {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.guardian-fields > label {
  margin: 0 0 4px;
}
.guardian-series {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.guardian-type-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  align-items: center;
}
.guardian-type-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--text);
  margin: 0;
  white-space: nowrap;
}
.guardian-type-option input {
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
}
.guardian-name-field {
  width: 100%;
}
.guardian-name-field input {
  width: 100%;
  margin: 0;
}
.guardian-name-field[hidden] { display: none !important; }
.guardian-fields-oneline .guardian-series.guardian-oneline-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
}
.guardian-fields-oneline .guardian-type-ticks {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  margin: 0;
}
.guardian-fields-oneline .guardian-name-stack {
  flex: 1 1 auto;
  min-width: 0;
}
.guardian-fields-oneline .guardian-name-field,
.guardian-fields-oneline .guardian-name-field input {
  width: 100%;
  min-width: 0;
}
.guardian-tick {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 3px;
  cursor: pointer;
  user-select: none;
  margin: 0;
  white-space: nowrap;
}
.guardian-tick input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.guardian-tick-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  border: 1.5px solid #94a3b8;
  border-radius: 3px;
  background: #fff;
  font-size: .55rem;
  font-weight: 800;
  line-height: 1;
  color: transparent;
  flex-shrink: 0;
}
.guardian-tick > span:last-child {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1;
}
.guardian-tick:has(input:checked) .guardian-tick-box {
  border-color: #4f46e5;
  background: #4f46e5;
  color: #fff;
}
.guardian-tick:has(input:checked) .guardian-tick-box::before {
  content: "✓";
}
.survey-team-form-panel .guardian-fields-oneline > label {
  margin: 0 0 3px;
}
.survey-team-title-form label.guardian-tick,
.survey-team-form-panel label.guardian-tick {
  flex-direction: row !important;
  align-items: center;
  width: auto;
  min-width: 0;
  padding: 0;
  gap: 3px;
}
.survey-team-title-form label.guardian-tick span,
.survey-team-form-panel label.guardian-tick span {
  text-transform: uppercase;
  font-size: .58rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: .02em;
}
.survey-team-form-panel .guardian-fields-oneline .guardian-type-row.guardian-type-ticks {
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}
.survey-team-form-panel .guardian-fields-oneline .guardian-type-option.guardian-tick {
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.survey-team-form-panel .guardian-fields-oneline .guardian-type-option.guardian-tick:has(input:checked) {
  background: transparent;
  box-shadow: none;
}
.survey-team-form-panel .guardian-fields-oneline .guardian-name-field input {
  min-height: 32px;
  height: 32px;
  font-size: .78rem;
  padding: 0 8px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
}
.event-desc-row {
  display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: start; margin-bottom: 8px;
}
.event-att-side { display: flex; flex-direction: column; }
.event-att-side .btn { min-height: 72px; padding: 0 16px; }
.event-att-panel {
  margin: 10px 0; padding: 10px 12px; border: 1px solid var(--line);
  border-radius: var(--radius); background: #f8fafc;
}
.event-att-panel h3 { margin: 0 0 8px; }
.event-att-panel .table-wrap { max-height: 320px; overflow: auto; }
.event-att-panel input[type="radio"] { width: auto; min-width: 0; min-height: 0; }
.doc-upload-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.3fr) minmax(130px, .9fr) minmax(170px, 1.4fr) auto;
  gap: 8px;
  align-items: end;
}
.doc-upload-row input,
.doc-upload-row select { margin: 0; min-width: 0; }
.doc-upload-row .btn { width: auto; white-space: nowrap; }
.doc-upload-row-org {
  grid-template-columns: minmax(180px, 1.4fr) minmax(120px, .8fr) minmax(170px, 1.4fr) auto;
}
.doc-upload-row .doc-upload-actions > div { display: flex; gap: 6px; align-items: center; white-space: nowrap; }
.press-upload-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) minmax(130px, .8fr) minmax(160px, 1.3fr) auto;
  gap: 8px;
  align-items: end;
}
.press-upload-row input { margin: 0; min-width: 0; }
.press-upload-row .btn { width: auto; white-space: nowrap; }
.ebook-form-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) minmax(220px, 1.5fr) auto;
  gap: 10px;
  align-items: end;
  width: 100%;
}
.ebook-form-row > div { min-width: 0; }
.ebook-form-row input { margin: 0; min-width: 0; width: 100%; }
.ebook-form-row .ebook-form-actions { justify-self: end; }
.ebook-form-row .actions { min-height: 34px; justify-content: flex-end; }
.centre-form-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.2fr) minmax(160px, 1.3fr) minmax(120px, .8fr) minmax(150px, 1fr) minmax(100px, .6fr) auto;
  gap: 10px;
  align-items: end;
  width: 100%;
}
.centre-form-row > div { min-width: 0; }
.centre-form-row input, .centre-form-row select { margin: 0; min-width: 0; width: 100%; }
.centre-form-row input[type="file"] { padding: 6px 8px; }
.centre-form-row .centre-form-actions {
  display: flex; gap: 6px; align-items: center; justify-content: flex-end;
  min-height: 34px; white-space: nowrap;
}
.centre-form-row .centre-form-actions .btn { width: auto; }
.msg-form-row {
  display: grid;
  grid-template-columns: minmax(160px, .9fr) minmax(280px, 2fr) auto;
  gap: 10px;
  align-items: end;
  width: 100%;
}
.msg-form-row > div { min-width: 0; }
.msg-form-row input { margin: 0; min-width: 0; width: 100%; }
.msg-form-row .msg-form-actions {
  display: flex; gap: 6px; align-items: center; justify-content: flex-end;
  min-height: 34px; white-space: nowrap;
}
.msg-form-row .msg-form-actions .btn { width: auto; }
.ebook-table .col-sno { width: 72px; white-space: nowrap; }
.ebook-table th:nth-child(3), .ebook-table td:nth-child(3) { word-break: break-word; }
.row-2 { grid-template-columns: repeat(2, 1fr); }
.org-logo-block {
  display: block;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #f8fafc;
}
.org-logo-block > label { margin-top: 0; }
.org-logo-row {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.org-logo-preview-img {
  width: 88px;
  height: 88px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px;
  flex-shrink: 0;
}
.org-logo-controls { flex: 1; min-width: 220px; }
.org-logo-controls input[type="file"] { margin: 0; }
.org-logo-controls .hint { margin-top: 4px; }
.org-logo-remove {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 0;
  font-weight: 500;
  color: var(--muted);
}
.org-logo-remove input { width: auto; min-width: 0; min-height: 0; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; margin-bottom: 10px; background: #fbfdff; }
.panel-h { display: flex; gap: 8px; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.panel-h h3 { margin: 0; font-size: .95rem; }
.panel-h small { color: var(--muted); display: block; font-weight: 500; }
.admission-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 10px;
}
.form-section,
.form-section-standalone {
  display: grid;
  grid-template-columns: minmax(170px, 220px) 1fr;
  gap: 0 18px;
  border: 1px solid #d9e4ef;
  border-radius: 16px;
  padding: 0;
  background: linear-gradient(180deg, #fcfeff 0%, #f5f9fd 100%);
  box-shadow: 0 10px 26px rgba(15, 50, 79, .06);
  overflow: hidden;
  align-items: stretch;
}
.form-section-side {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 16px 16px 16px 18px;
  background: linear-gradient(180deg, rgba(15, 110, 106, .06) 0%, rgba(14, 95, 122, .02) 100%);
  border-right: 1px solid #deebf4;
  min-height: 100%;
}
.form-section-side .icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .92rem;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}
.form-section-side h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--text);
}
.form-section-side small {
  color: var(--muted);
  display: block;
  font-size: .74rem;
  font-weight: 500;
  line-height: 1.45;
  max-width: 170px;
}
.form-section-main {
  padding: 16px 18px;
  background: rgba(255,255,255,.72);
}
.form-section-main .row:last-child { margin-bottom: 0; }
.form-section-main label,
.form-section-standalone label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #42576d;
  margin-bottom: 4px;
}
.form-section-main input,
.form-section-main select,
.form-section-main textarea,
.form-section-standalone input,
.form-section-standalone select,
.form-section-standalone textarea {
  background: #fff;
  border-color: #cfdceb;
  box-shadow: inset 0 1px 2px rgba(15, 50, 79, .03);
}
.form-section-main input:focus,
.form-section-main select:focus,
.form-section-main textarea:focus,
.form-section-standalone input:focus,
.form-section-standalone select:focus,
.form-section-standalone textarea:focus {
  border-color: #8ab7da;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .10);
}
.form-section-main .hint,
.form-section-standalone .hint {
  margin-top: 4px;
  font-size: .67rem;
  color: #667b90;
}
.form-section-standalone {
  margin-bottom: 10px;
}
.form-section-standalone .form-section-main {
  padding: 16px 18px;
}
.icon.indigo { background: #e0e7ff; color: #4338ca; }
.event-file-form {
  display: flex; gap: 8px; align-items: center; margin-top: 8px;
}
.event-file-form input[type="file"] { flex: 1; min-width: 0; margin: 0; }
.event-file-form .btn { flex-shrink: 0; }
.table-wrap { overflow-x: auto; }
.full-table { width: 100%; }
.full-table th:nth-child(3), .full-table td:nth-child(3) { width: 32%; }
.full-table th:nth-child(4), .full-table td:nth-child(4) { width: 28%; }
table { width: 100%; border-collapse: collapse; table-layout: auto; }
th, td { padding: 7px 8px; border-bottom: 1px solid var(--line); text-align: left; font-size: .82rem; vertical-align: middle; }
th { font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); background: #f7fafc; font-weight: 750; }
.avatar { width: 32px; height: 32px; border-radius: 8px; object-fit: cover; background: #e2e8f0; }

.actions, .cp-actions {
  display: flex; flex-wrap: nowrap; gap: 4px; align-items: center; justify-content: flex-start; white-space: nowrap;
}
.actions form, .cp-actions form { display: inline-flex; margin: 0; flex-shrink: 0; }
/* Shrink action columns to button width and pin buttons to the right edge */
td.actions, td.col-actions {
  display: table-cell;
  width: 1px;
  white-space: nowrap;
  text-align: right;
  vertical-align: middle;
}
td.actions > .btn,
td.actions > form,
td.actions > .more,
td.col-actions > .btn,
td.col-actions > form,
td.col-actions > .more {
  display: inline-flex;
  vertical-align: middle;
  margin-left: 4px;
}
td.actions > :first-child,
td.col-actions > :first-child { margin-left: 0; }
table:has(td.actions) thead th:last-child,
table:has(td.col-actions) thead th:last-child,
th.col-actions {
  width: 1px;
  white-space: nowrap;
  text-align: right;
}
td.actions .btn, td.col-actions .btn, .cp-actions .btn, .actions .btn {
  min-height: 32px; padding: 0 12px; font-size: .72rem; gap: 6px; flex: 0 0 auto;
}
td.actions .btn > i, td.col-actions .btn > i, .cp-actions .btn > i, .actions .btn > i {
  width: auto; height: auto; font-size: .72rem;
}
.form-actions {
  display: flex; flex-wrap: wrap; gap: 5px; align-items: center; justify-content: flex-end; margin-top: 10px;
}
.form-compact {
  max-width: 820px;
  padding: 12px 14px;
}
.survey-settings-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin-top: 12px;
}
.survey-settings-split > .card { margin-top: 0; max-height: 70vh; overflow: auto; }
.survey-settings-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.survey-settings-head h3 { margin: 0; }
.survey-final-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
}
.survey-final-list-head h3 {
  margin: 0;
  font-size: 1rem;
}
.survey-final-list-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.survey-output-table { width: 100%; max-width: none; }
.survey-output-table table { width: 100%; table-layout: auto; }
.survey-output-table th, .survey-output-table td { width: auto; }
.survey-output-table th:last-child, .survey-output-table td:last-child {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}
@media (max-width: 900px) {
  .survey-output-table.is-supervisor-result .supervisor-desk-col {
    display: none;
  }
  .content:has(.survey-output-table.is-supervisor-result) > .survey-stats.supervisor-desk-col,
  .content:has(.survey-output-table.is-supervisor-result) > p.supervisor-desk-col {
    display: none;
  }
  .survey-output-table.is-supervisor-result table {
    table-layout: auto;
  }
  .survey-output-table.is-supervisor-result td.actions {
    white-space: nowrap;
  }
}
.survey-settings-panel .survey-place-title-form {
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.form-compact .row { gap: 8px 10px; margin-bottom: 8px; }
.form-compact label { margin: 0 0 3px; font-size: .72rem; }
.form-compact input, .form-compact select, .form-compact textarea {
  min-height: 30px; padding: 4px 8px; font-size: .8rem;
}
.form-compact textarea { min-height: 52px; height: 52px; resize: vertical; }
.form-compact .hint { margin-top: 2px; font-size: .66rem; }
.form-compact .form-actions { margin-top: 8px; }
.label-with-info {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.survey-info-btn {
  position: relative;
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #4f46e5;
  color: #fff;
  font-size: .72rem;
  line-height: 1;
  cursor: pointer;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 2px rgba(79, 70, 229, .35);
}
.survey-info-btn:hover,
.survey-info-btn:focus {
  background: #1d4ed8;
}
.survey-info-pop { display: none !important; }
.survey-info-modal-box {
  width: min(440px, 100%);
  max-height: min(80vh, 560px);
  overflow: auto;
  padding: 16px 18px 18px;
  cursor: pointer;
}
.survey-info-modal-title {
  margin: 0 0 12px;
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1.35;
  color: #0f172a;
}
.survey-info-modal-body {
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.6;
  color: #0f172a;
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
}
.survey-field-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.survey-status-info-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.survey-status-info-row select { flex: 1 1 auto; min-width: 0; }
.survey-info-tick {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0 10px;
  min-height: 32px;
  border: 1px solid #c7d2fe;
  border-radius: 8px;
  background: #eef2ff;
  font-size: .78rem;
  font-weight: 700;
  color: #4f46e5;
  white-space: nowrap;
  cursor: pointer;
  flex: 0 0 auto;
}
.survey-info-tick input { margin: 0; width: 15px; height: 15px; accent-color: #4f46e5; }
.survey-status-cell {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
.survey-order-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
}
.survey-order-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 32px;
  color: #64748b;
  cursor: grab;
  flex: 0 0 auto;
}
.survey-order-handle:active { cursor: grabbing; }
.survey-field-row.is-dragging {
  opacity: .55;
  background: #eef2ff;
}
.survey-order-btn {
  min-width: 32px;
  padding: 4px 8px;
}
.survey-order-btn:disabled {
  opacity: .35;
  cursor: not-allowed;
}
.survey-option-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 8px;
}
.survey-option-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.survey-option-row input {
  flex: 1 1 auto;
  min-width: 0;
}
.survey-option-remove {
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  padding: 0;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fef2f2;
  color: #b91c1c;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.survey-option-remove:hover { background: #fee2e2; }
.survey-option-add { margin: 0; }
.survey-dash-map {
  margin-top: 4px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.survey-dash-map-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px 8px;
}
.survey-dash-map-head h3 { margin: 0; font-size: 1.02rem; }
.survey-dash-map-tools {
  display: flex;
  gap: 8px;
  padding: 0 14px 10px;
  flex-wrap: wrap;
}
.survey-dash-map-tools input[type="search"] {
  flex: 1 1 220px;
  min-width: 0;
  min-height: 34px;
  margin: 0;
}
.survey-dash-map-canvas {
  width: 100%;
  height: min(62vh, 560px);
  min-height: 320px;
  background: #e2e8f0;
}
.survey-dash-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  padding: 10px 14px 12px;
  border-top: 1px solid var(--line);
  font-size: .78rem;
  font-weight: 600;
  color: #475569;
}
.survey-dash-map-legend i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 99px;
  margin-right: 6px;
  vertical-align: middle;
}
.survey-map-pop { min-width: 180px; max-width: 260px; }
.survey-map-pop strong { display: block; margin-bottom: 6px; color: #0f172a; }
.survey-map-pop p { margin: 0 0 4px; font-size: .8rem; color: #334155; }
.survey-map-pop span { display: block; font-size: .68rem; font-weight: 700; color: #64748b; text-transform: uppercase; }
.survey-map-details { color: #475569 !important; }
@media (max-width: 700px) {
  .survey-dash-map-canvas { height: 52vh; min-height: 280px; }
}

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border-radius: var(--btn-radius); padding: 0 18px; min-height: 38px;
  border: 0; background: var(--btn-secondary); color: #fff;
  font-weight: 600; font-size: .875rem; cursor: pointer; line-height: 1.2; white-space: nowrap;
  box-shadow: none;
  transition: background .15s ease, filter .15s ease;
}
.btn > i {
  width: auto; height: auto; border-radius: 0;
  background: transparent;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; font-size: .875rem; line-height: 1;
}
.btn:hover {
  color: #fff; transform: none; filter: brightness(.96);
  box-shadow: none;
}
.btn:focus { outline: 2px solid rgba(13, 110, 253, .35); outline-offset: 1px; }
.btn:active { filter: brightness(.9); transform: none; }
.btn:disabled, .btn[disabled], .btn.is-disabled {
  opacity: .65; cursor: not-allowed; pointer-events: none; box-shadow: none; transform: none;
}

.btn-primary, .btn-info, .btn-outline-primary,
.btn-violet, .btn-cyan, .btn-indigo, .btn-rose, .btn-pink {
  background: linear-gradient(90deg, var(--btn-primary-light) 0%, var(--btn-primary) 100%); color: #fff;
}
.btn-primary:hover, .btn-info:hover, .btn-outline-primary:hover,
.btn-violet:hover, .btn-cyan:hover, .btn-indigo:hover, .btn-rose:hover, .btn-pink:hover {
  background: linear-gradient(90deg, #339af0 0%, var(--btn-primary-hover) 100%); color: #fff;
}

.btn-success, .btn-outline-success, .btn-parrot {
  background: var(--btn-success); color: #fff;
}
.btn-success:hover, .btn-outline-success:hover, .btn-parrot:hover {
  background: var(--btn-success-hover); color: #fff;
}

.btn-warning, .btn-warn, .btn-edit, .btn-orange, .btn-saffron {
  background: var(--btn-warning); color: #fff;
}
.btn-warning:hover, .btn-warn:hover, .btn-edit:hover, .btn-orange:hover, .btn-saffron:hover {
  background: var(--btn-warning-hover); color: #fff;
}

.btn-danger {
  background: var(--btn-danger); color: #fff;
}
.btn-danger:hover { background: var(--btn-danger-hover); color: #fff; }

.btn-slate, .btn-secondary {
  background: var(--btn-secondary); color: #fff;
}
.btn-slate:hover, .btn-secondary:hover {
  background: var(--btn-secondary-hover); color: #fff;
}

.btn-ghost {
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14);
  color: #ecfdf5; min-height: var(--control-h); box-shadow: none;
}
.btn-ghost:hover { background: rgba(255,255,255,.16); color: #fff; transform: none; }
.btn-sm { min-height: 32px; padding: 0 12px; font-size: .78rem; gap: 6px; }
.btn-sm > i { font-size: .78rem; }
.btn-block { width: 100%; }
.btn-more { width: 28px; padding: 0; min-width: 28px; color: var(--muted); border-radius: var(--radius-sm); }
.btn-more > i { width: auto; height: auto; background: transparent; }

.more { position: relative; display: inline-flex; }
.more-drop {
  display: none; position: absolute; right: 0; top: calc(100% + 4px); z-index: 40;
  min-width: 180px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(15,50,79,.12); padding: 4px; flex-direction: column;
}
.more.open .more-drop { display: flex; }
.more-drop .btn, .more-drop a.btn, .more-drop button.btn, .more-drop form .btn {
  width: 100%; justify-content: flex-start; background: transparent; border: 0; color: var(--text);
  border-radius: 8px; min-height: 32px; box-shadow: none; padding: 0 10px; transform: none;
}
.more-drop .btn > i { width: auto; height: auto; background: transparent; font-size: .875rem; }
.more-drop .btn:hover, .more-drop a.btn:hover { background: var(--primary-soft); color: var(--primary); transform: none; filter: none; }
.more-drop .btn-danger, .more-drop .btn-danger:hover { color: var(--danger); background: var(--danger-soft); }
.more-drop form { margin: 0; width: 100%; }

.stu-list-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.stu-list-head h2 { margin: 0; font-size: 1.2rem; font-weight: 800; letter-spacing: -.03em; }
.stu-list-head-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.stu-search { display: flex; gap: 6px; margin-bottom: 10px; max-width: 460px; }
.stu-search input { flex: 1; }
.stu-table { margin: 0; width: 100%; }
.stu-table th, .stu-table td { white-space: nowrap; }
.stu-table .col-actions { text-align: right; width: 1px; }

.modal-back { display: none; position: fixed; inset: 0; background: rgba(15,23,42,.45); z-index: 80; place-items: center; padding: 16px; }
.modal-back.open { display: grid; }
.modal-box { width: min(720px, 100%); background: #fff; border-radius: var(--radius); padding: 12px; box-shadow: var(--shadow); }
.survey-create-box { width: min(560px, 100%); padding: 18px 18px 14px; }
.survey-create-box h3 { margin: 0 0 12px; font-size: 1.05rem; }
.survey-create-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.survey-create-grid .survey-header-field { min-width: 0; }
.survey-create-grid .survey-header-field input,
.survey-create-grid .survey-header-field select { width: 100%; }
.survey-create-grid .survey-header-field:first-child { grid-column: 1 / -1; }
.survey-create-box .form-actions { margin-top: 14px; }
.delete-confirm-box { width: min(420px, 100%); padding: 18px 18px 14px; }
.delete-confirm-title { margin: 0 0 6px; font-size: 1.05rem; }
.delete-confirm-msg { margin: 0 0 12px; color: var(--muted); font-size: .86rem; font-weight: 500; }
.delete-confirm-box label { display: block; margin-bottom: 4px; font-size: .78rem; font-weight: 700; }
.delete-confirm-box input[type=password] { width: 100%; min-height: 38px; }
.delete-confirm-error { color: var(--danger); font-size: .78rem; margin: 6px 0 0; font-weight: 600; }
.delete-confirm-box .form-actions { margin-top: 14px; }
.id-card-page { min-height: 100vh; background: rgba(15,23,42,.08); display: grid; place-items: center; padding: 32px 20px 48px; }
.id-card-sheet {
  width: min(980px, 100%); background: #fff; border-radius: 18px; padding: 22px 26px 24px;
  box-shadow: 0 18px 50px rgba(15,23,42,.16);
}
.id-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.id-card-head h1 { margin: 0; font-size: 1.2rem; }
.id-card-head p { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
.id-card-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 16px 0 20px; }
.id-card-side { text-align: center; }
.id-card-side > span { display: block; font-size: .68rem; font-weight: 800; letter-spacing: .14em; color: #94a3b8; margin-bottom: 10px; }
.id-card {
  --id-accent: #0b1f3a;
  --id-accent-soft: #1e3a5f;
  width: 85.5mm; max-width: 85.5mm; height: 53.5mm; margin: 0 auto; border-radius: 2.5mm;
  overflow: hidden; background: #fff; border: 1px solid #e2e8f0; text-align: left;
  box-shadow: 0 12px 30px rgba(15,23,42,.12); position: relative;
  display: flex; flex-direction: column;
}
.id-card-banner {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  gap: 1.8mm; padding: 1.2mm 2.2mm;
  background: linear-gradient(180deg, var(--id-accent-soft) 0%, var(--id-accent) 100%);
  color: #fff;
  flex: 0 0 26%; min-height: 0; text-align: center;
}
.id-card-banner.thin { display: none; }
.id-card-logo-img {
  height: 88%; width: auto; aspect-ratio: 1; max-height: 12mm; max-width: 12mm;
  object-fit: contain; flex-shrink: 0;
  background: #fff; border-radius: 50%; padding: 0.5mm;
  box-shadow: 0 0 0 1px rgba(255,255,255,.25);
  margin: 0;
}
.id-card-brand { min-width: 0; text-align: center; line-height: 1.12; padding: 0; justify-self: center; }
.id-card-brand .org-full {
  margin: 0; font-size: 2.85mm; font-weight: 800; letter-spacing: .02em;
  text-transform: uppercase; color: #fff; white-space: nowrap;
}
.id-card-brand .org-place {
  display: block; margin: 0.35mm 0 0; font-size: 2.1mm; font-weight: 700;
  letter-spacing: .03em; text-transform: uppercase; color: rgba(255,255,255,.95);
}
.id-card-brand .org-mission {
  display: block; margin: 0.25mm 0 0; font-size: 1.9mm; font-weight: 600;
  font-style: italic; color: #bfdbfe;
}
.id-card-brand .org-govt {
  display: block; margin: 0.35mm auto 0; max-width: 100%;
  padding: 0.25mm 0.8mm; border-radius: 0.4mm;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.28);
  font-size: 1.95mm; font-weight: 700; letter-spacing: 0;
  color: #f8fafc; line-height: 1.15; white-space: nowrap;
}
.id-card-brand .org-short,
.id-card-type { display: none; }
.id-card-body {
  display: grid; grid-template-columns: 30% 1fr; gap: 2.4mm;
  padding: 1.4mm 2.4mm 1.2mm; flex: 1; align-items: stretch; background: #fff;
  min-height: 0;
}
.id-card-photo-wrap {
  display: grid; grid-template-rows: minmax(0, 1fr) auto;
  justify-items: stretch; align-items: stretch;
  gap: 0.7mm; height: 100%; min-height: 0;
}
.id-card-photo {
  width: 100%; height: 100%; min-width: 0; min-height: 0;
  object-fit: cover; border-radius: 0.5mm; justify-self: stretch;
  background: #e2e8f0; border: 1px solid #cbd5e1;
}
.id-card-photo.placeholder {
  display: flex; align-items: center; justify-content: center; color: #64748b; font-weight: 800; font-size: 5mm;
}
.id-card-sign-block {
  width: 100%; text-align: center; margin-top: 0; flex-shrink: 0;
}
.id-card-sign-front {
  max-width: 100%;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.id-card-sign-line {
  display: block; height: 3mm; border-bottom: 1px solid #64748b; margin: 0 auto 0.2mm;
  max-width: 100%;
  font-family: "Segoe Script", "Brush Script MT", cursive; font-size: 1.7mm; color: #334155;
  line-height: 3mm; overflow: hidden;
}
.id-card-sign-block small {
  display: block; font-size: 1.4mm; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; color: #0f172a;
}
.id-card-info {
  min-width: 0; padding-top: 0;
  display: flex; flex-direction: column; height: 100%;
}
.id-card-info h2,
.id-card-role { display: none; }
.id-card-fields {
  margin: 0; padding: 0; list-style: none;
  flex: 1; display: flex; flex-direction: column; justify-content: space-evenly;
  min-height: 0;
}
.id-card-fields li {
  display: grid; grid-template-columns: 21mm 2.2mm 1fr; gap: 0;
  align-items: baseline; padding: 0; font-size: 3mm; line-height: 1.18; color: #0b1f3a;
}
.id-card-fields .k { font-weight: 800; }
.id-card-fields .c { font-weight: 800; text-align: center; }
.id-card-fields .v { font-weight: 700; word-break: break-word; }
.id-card-footer-bar {
  flex: 0 0 13%; min-height: 0;
  background: var(--id-accent); color: #fff;
  text-align: center; padding: 0 1.2mm;
  font-size: 2.2mm; font-weight: 700; letter-spacing: .01em; text-transform: uppercase;
  line-height: 1.1; border-top: 1px solid rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
  white-space: nowrap; overflow: hidden;
}
.id-card-back {
  background: #fff;
  display: flex;
  flex-direction: column;
}
.id-card-back-inner {
  padding: 1.8mm 2.6mm 1mm;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.id-card-back h4 {
  margin: 0 0 1.2mm; font-size: 2.4mm; font-weight: 800; letter-spacing: .04em;
  color: #0b1f3a; text-align: left;
}
.id-card-terms {
  margin: 0; padding-left: 3.4mm; color: #1e3a5f; font-size: 2.2mm; line-height: 1.28;
  flex: 1;
}
.id-card-terms li { margin-bottom: 0.45mm; }
.id-card-qr {
  display: flex; flex-direction: column; align-items: flex-start;
  margin: 0 0 0.8mm; padding: 0;
}
.id-card-qr-box {
  width: 13mm; height: 13mm; background: #fff;
  border: 1px solid #e2e8f0; border-radius: 0.4mm; overflow: hidden;
}
.id-card-qr-box img,
.id-card-qr-box canvas,
.id-card-qr-box table {
  width: 13mm !important; height: 13mm !important; display: block;
}
.id-card-qr span {
  display: block; margin-top: 0.3mm; font-size: 1.3mm; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase; color: #0b1f3a;
}
.id-card-back-bottom {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 2mm;
  padding: 0.6mm 2.5mm 1.4mm;
  margin-top: auto;
}
.id-card-dates { text-align: left; font-size: 2.2mm; line-height: 1.25; color: #0b1f3a; }
.id-card-dates b { font-weight: 800; }
.id-card-back-sign {
  text-align: center; min-width: 32mm; justify-self: end;
}
.id-card-back-sign .id-card-sign-line { margin: 0 auto 0.4mm; width: 100%; max-width: 32mm; }
.id-card-back-sign small {
  display: block; font-size: 2.2mm; font-weight: 800; letter-spacing: .01em;
  text-transform: uppercase; color: #0f172a; line-height: 1.15; white-space: nowrap;
}
.id-card-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding-top: 10px; margin-top: 4px; border-top: 1px solid var(--line); }
.id-card-actions .btn { min-height: 38px; padding: 0 18px; }
/* legacy helpers kept safe */
.id-card-rows, .id-card-meta, .id-card-foot, .id-card-sign { display: none; }
.btn-outline-orange { background: #fff; color: #ea580c; border: 1px solid #fdba74; }
.btn-outline-orange:hover { background: #ffedd5; color: #ea580c; }
.badge { display: inline-block; border-radius: 999px; padding: 2px 7px; font-size: .68rem; font-weight: 700; }
.badge-ok { background: var(--success-soft); color: #155e75; }
.badge-info { background: var(--info-soft); color: #075985; }
.badge-warn { background: var(--warning-soft); color: #9a3412; }
.badge-danger { background: var(--danger-soft); color: #9f1239; }
.badge-muted { background: var(--cancel-soft); color: #475569; }
.alert { padding: 8px 12px; border-radius: var(--radius-sm); margin-bottom: 10px; font-weight: 600; font-size: .82rem; }
.alert-success { background: var(--success-soft); color: #155e75; }
.alert-error, .alert-danger { background: var(--danger-soft); color: #9f1239; }
.alert-warn { background: var(--warning-soft); color: #9a3412; }
.hint { color: var(--muted); font-size: .72rem; margin-top: 3px; }
.pager { display: flex; gap: 4px; margin-top: 10px; flex-wrap: wrap; }
.pager a { padding: 4px 8px; border-radius: 6px; border: 1px solid var(--line); background: #fff; color: var(--text); font-size: .78rem; }
.pager a.active { background: var(--primary); color: #fff; border-color: var(--primary); }

.login-wrap {
  min-height: 100vh;
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  padding: 0;
  background: #fff url('../images/login-bg.png') left center / cover no-repeat;
}
.login-hero { display: none; }
.login-panel {
  width: 33.333%;
  min-width: 300px;
  max-width: 440px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 36px 32px;
  min-height: 100vh;
  box-shadow: -8px 0 32px rgba(15, 23, 42, .08);
}
.login-card { width: 100%; max-width: 340px; background: transparent; border-radius: 0; padding: 0; box-shadow: none; }
.login-brand { text-align: center; margin-bottom: 22px; }
.login-logo { width: 92px; height: 92px; object-fit: contain; display: block; margin: 0 auto 14px; }
.login-brand h1 { margin: 0; font-size: 1.35rem; color: var(--text); letter-spacing: .02em; }
.login-brand-sub { margin: 6px 0 0; color: var(--muted); font-size: .82rem; font-weight: 600; }
.login-card-mark {
  width: 48px;
  height: 48px;
  margin: 0 0 12px;
  font-size: .95rem;
  border-radius: 10px;
}
.login-card h1 { margin: 0 0 6px; font-size: 1.35rem; color: var(--text); }
.login-brand h1 { margin: 0; }
.login-card p { color: var(--muted); margin: 0 0 18px; font-size: .85rem; line-height: 1.45; }
.login-card .field, .field { margin-bottom: 10px; }
.login-media-wrap {
  margin-top: 10px;
  width: 100%;
}
.login-media-btn {
  width: 100% !important;
  min-height: 44px !important;
  height: 44px;
  padding: 0 18px !important;
  box-sizing: border-box;
  background: #ea580c !important;
  color: #fff !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700 !important;
  font-size: .9rem !important;
  line-height: 1.2 !important;
  border-radius: var(--btn-radius, 10px);
  border: 0;
}
.login-media-btn span { color: #fff !important; }
.login-media-btn i { color: #fff !important; font-size: 1rem; }
.login-media-btn:hover {
  background: #c2410c !important;
  color: #fff !important;
  filter: none;
}
.login-mylogin-btn {
  width: 100% !important;
  min-height: 44px !important;
  height: 44px;
  margin-top: 10px;
  padding: 0 18px !important;
  box-sizing: border-box;
  background: #ea580c !important;
  color: #fff !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700 !important;
  font-size: .9rem !important;
  line-height: 1.2 !important;
  border-radius: var(--btn-radius, 10px);
  border: 0 !important;
}
.login-mylogin-btn span { color: #fff !important; }
.login-mylogin-btn i { color: #fff !important; font-size: 1rem; }
.login-mylogin-btn:hover {
  background: #c2410c !important;
  color: #fff !important;
  filter: none;
}
.login-apk {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  text-align: center;
}
.login-apk-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 10px;
  background: #15803d;
  color: #fff !important;
  text-decoration: none;
  font-weight: 750;
  font-size: .9rem;
  width: 100%;
  box-sizing: border-box;
}
.login-apk-link:hover {
  background: #166534;
  color: #fff !important;
}
.login-apk-link i {
  font-size: 1.15rem;
}
.login-apk-note {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 600;
}
@media (max-width: 900px) {
  .login-wrap {
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    background: #fff;
  }
  .login-panel {
    width: 100%;
    max-width: none;
    min-height: 100vh;
    min-width: 0;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 28px 20px 36px;
    padding-top: max(28px, env(safe-area-inset-top));
    box-shadow: none;
  }
  .login-card {
    max-width: 400px;
    margin: 0 auto;
    width: 100%;
  }
  .login-brand {
    margin-top: 8px;
    margin-bottom: 22px;
  }
  .login-logo {
    width: 96px;
    height: 96px;
    margin-bottom: 10px;
  }
  .login-brand h1 {
    font-size: 1.28rem;
  }
  .login-apk {
    margin-top: 14px;
    padding-top: 14px;
  }
  .login-apk-link {
    min-height: 42px;
    font-size: .88rem;
  }
}
.thumb { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); }
.profile-hero { display: flex; gap: 12px; align-items: center; }
.profile-hero img { width: 72px; height: 72px; object-fit: cover; border-radius: 12px; }
.kv { display: grid; grid-template-columns: 160px 1fr; gap: 6px 10px; font-size: .85rem; }
.kv b { color: var(--muted); font-weight: 600; }
.print-doc { max-width: 900px; margin: 12px auto; background: #fff; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); }
.survey-qa {
  max-width: 820px;
  margin: 12px auto;
  padding: 0;
  overflow: hidden;
}
.survey-qa-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 18px;
  flex-wrap: wrap;
  padding: 12px 16px;
  background: #0f766e;
  color: #fff;
}
.survey-qa-head-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.survey-qa-head strong { font-size: .98rem; }
.survey-qa-record {
  font-size: .78rem;
  opacity: .9;
}
.survey-qa-head-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  text-align: right;
  font-size: .78rem;
  line-height: 1.35;
  margin-left: auto;
}
.survey-qa-head-meta b {
  font-weight: 700;
  opacity: .9;
  margin-right: 4px;
}
@media (max-width: 640px) {
  .survey-qa-head-meta {
    align-items: flex-start;
    text-align: left;
    margin-left: 0;
    width: 100%;
  }
}
.survey-qa-row {
  display: grid;
  grid-template-columns: minmax(140px, .95fr) minmax(0, 1.2fr);
  gap: 8px 14px;
  padding: 10px 16px;
  border-bottom: 1px solid #e2e8f0;
  align-items: start;
}
.survey-qa-row:last-child { border-bottom: 0; }
.survey-qa-row.is-a { background: #f0fdfa; }
.survey-qa-row.is-b { background: #ffffff; }
.survey-qa-q {
  font-size: .82rem;
  font-weight: 750;
  color: #0f766e;
  line-height: 1.45;
}
.survey-qa-a {
  font-size: .9rem;
  font-weight: 650;
  color: #0f172a;
  line-height: 1.45;
  word-break: break-word;
}
.survey-final-report-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  margin: 14px 0 8px;
  min-height: 56px;
  padding: 14px 18px;
  border: 0;
  border-radius: 14px;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: .02em;
  color: #fff;
  background: linear-gradient(90deg, #7c3aed 0%, #2563eb 45%, #0d9488 100%);
  box-shadow: 0 10px 24px rgba(37, 99, 235, .28);
}
.survey-output-topbar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin: 0 0 12px;
}
.survey-final-report-btn-top {
  width: auto;
  min-width: 220px;
  margin: 0;
  min-height: 48px;
  padding: 12px 22px;
  font-size: 1rem;
}
.survey-final-report-btn:hover {
  color: #fff;
  filter: brightness(1.06);
}
.survey-final-report {
  max-width: 900px;
  margin: 0 auto 16px;
  padding: 0 0 18px;
}
.survey-final-report-wide {
  max-width: none;
  width: 100%;
  margin: 0 0 16px;
}
.survey-final-dash {
  margin: 0 0 12px;
  border-radius: 12px;
  border: 1px solid var(--line);
  padding: 16px 18px 18px;
}
.survey-final-dash-title {
  margin: 0 0 12px;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}
.survey-final-dash-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.survey-final-dash-card {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #f8fafc;
  padding: 12px 14px;
  min-height: 100%;
}
.survey-final-dash-card.is-hero {
  background: linear-gradient(180deg, #eff6ff, #f8fafc);
}
.survey-final-dash-card h3 {
  margin: 0 0 8px;
  font-size: .86rem;
  font-weight: 800;
  color: #334155;
  line-height: 1.35;
}
.survey-final-dash-value {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
}
.survey-final-dash-kpi {
  margin: 0 0 4px;
  font-size: .95rem;
  color: #0f172a;
}
.survey-final-dash-note {
  margin: 0 0 8px;
  font-size: .75rem;
}
.survey-final-dash-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .8rem;
}
.survey-final-dash-table th,
.survey-final-dash-table td {
  padding: 5px 6px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
}
.survey-final-dash-table th:last-child,
.survey-final-dash-table td:last-child,
.survey-final-dash-table th:nth-child(2),
.survey-final-dash-table td:nth-child(2) {
  text-align: right;
  white-space: nowrap;
}
.survey-final-dash-table th {
  color: #64748b;
  font-weight: 700;
}
.survey-final-tds {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 6px;
}
.survey-final-tds div {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 8px;
  text-align: center;
}
.survey-final-tds span {
  display: block;
  font-size: .7rem;
  color: #64748b;
  font-weight: 700;
  margin-bottom: 4px;
}
.survey-final-tds b {
  font-size: 1.15rem;
  color: #0f172a;
}
@media (max-width: 900px) {
  .survey-final-dash-grid { grid-template-columns: 1fr; }
}
.survey-final-report-head {
  padding: 18px 20px;
  background: linear-gradient(90deg, #7c3aed, #2563eb);
  color: #fff;
  border-radius: 12px 12px 0 0;
}
.survey-final-table {
  margin: 0;
  border-radius: 12px;
}
.survey-final-table table {
  width: 100%;
}
.survey-final-table tbody tr:nth-child(even) {
  background: #f8fafc;
}
.survey-final-report-head h1 {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 800;
}
.survey-final-report-head p {
  margin: 4px 0 10px;
  opacity: .95;
  font-weight: 650;
}
.survey-final-report-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  font-size: .85rem;
}
.survey-final-block {
  margin: 14px 16px 0;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.survey-final-block h2 {
  margin: 0;
  padding: 10px 14px;
  font-size: .95rem;
  background: #0f766e;
  color: #fff;
}
.survey-qa-compact {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.cert { border: 8px solid var(--primary); padding: 20px; text-align: center; position: relative; }
.experience-sheet {
  width: 100%;
  display: flex;
  justify-content: center;
  margin: 8px 0 16px;
}
.experience-page {
  position: relative;
  width: 210mm;
  max-width: 210mm;
  height: 297mm;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.1);
  border: 1px solid var(--line);
}
.experience-page.has-bg { border: 0; }
.experience-page.is-landscape {
  width: 297mm;
  max-width: 297mm;
  height: 210mm;
}
.experience-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  z-index: 0;
}
.experience-body {
  margin: 0 0 14px;
  font-size: 1rem;
  line-height: 1.55;
  text-align: justify;
  overflow-wrap: break-word;
  word-break: normal;
}
.experience-facts {
  text-align: left;
  line-height: 1.7;
}
.experience-duties {
  margin: 0 0 16px 1.1rem;
  padding: 0;
  font-size: .98rem;
  line-height: 1.5;
  overflow-wrap: break-word;
  word-break: normal;
}
.experience-duties li { margin: 0 0 4px; }
.experience-content {
  position: relative;
  z-index: 1;
  height: 100%;
  box-sizing: border-box;
  padding: 11% 10% 10%;
  display: flex;
  flex-direction: column;
  color: #1f2937;
  font-family: "Nirmala UI", "Mangal", "Raavi", "Times New Roman", Times, Georgia, serif;
}
.experience-info {
  margin-top: 2in;
}
.cert-missing-card ul {
  margin: 0 0 14px 1.2rem;
  padding: 0;
}
.cert-missing-card li { margin: 0 0 4px; }
.experience-letterhead { text-align: center; margin-bottom: 18px; }
.experience-org { font-size: 1.45rem; font-weight: 800; letter-spacing: .02em; color: #0f3d5c; }
.experience-org-sub { margin-top: 4px; font-size: .95rem; color: #475569; font-weight: 600; }
.experience-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: .9rem;
  margin-bottom: 18px;
}
.experience-heading {
  margin: 0 0 18px;
  text-align: center;
  font-size: 1.2rem;
  letter-spacing: .08em;
  text-decoration: underline;
  font-weight: 800;
}
.experience-sign {
  margin-top: auto;
  margin-bottom: 1in;
  padding-top: 28px;
  text-align: left;
  line-height: 1.45;
}
.experience-sign-title { font-size: .98rem; font-weight: 700; }
.experience-sign-name { font-size: 1.05rem; margin-top: 4px; }
.experience-sign-contact { font-size: .92rem; margin-top: 4px; }

.survey-cert-codes {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 16px;
  margin: 12px 0 16px;
}
.survey-cert-codes-qr-only {
  justify-content: flex-start;
}
.survey-cert-qr {
  width: 84px;
  height: 84px;
  flex: 0 0 auto;
}
.survey-cert-qr img {
  width: 100%;
  height: 100%;
  display: block;
  background: #fff;
}
.survey-cert-fields {
  display: grid;
  gap: 8px 0;
  margin: 18px 0 20px;
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: rgba(248, 250, 252, .92);
}
.survey-cert-fields > div {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 8px;
  align-items: baseline;
}
.survey-cert-fields dt {
  margin: 0;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #64748b;
}
.survey-cert-fields dd {
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
  color: #0f172a;
}
.experience-page.has-bg .survey-cert-fields {
  background: rgba(255, 255, 255, .88);
  border-color: rgba(15, 23, 42, .12);
}

.cert-options-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
}
.cert-options-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  min-width: 0;
}
.cert-options-meta strong {
  font-size: .95rem;
  color: var(--text);
}
.cert-options-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--pro-navy);
  background: var(--primary-soft);
  border: 1px solid var(--line);
}
.cert-options-badge i { font-size: .7rem; color: var(--pro-teal); }
.cert-options-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
@media (max-width: 700px) {
  .cert-options-bar { padding: 12px; }
  .cert-options-actions { width: 100%; }
  .cert-options-actions .btn { flex: 1 1 auto; justify-content: center; }
}

.mb-3 { margin-bottom: 10px; }
.tpl-preview img { width: 100%; height: auto; display: block; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.certificate-sheet { width: 100%; display: flex; justify-content: center; margin: 6px 0 12px; }
.certificate-canvas {
  position: relative; width: 100%; max-width: 1123px; aspect-ratio: 297 / 210;
  background: #fff; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,.1);
}
.certificate-canvas.marksheet-canvas,
.certificate-canvas.employee-certificate-canvas {
  max-width: 794px; aspect-ratio: 210 / 297;
}
.certificate-canvas.survey-certificate-canvas {
  max-width: 1123px;
  width: 100%;
  aspect-ratio: 297 / 210;
}
.certificate-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; }
.certificate-field { z-index: 2; color: #222; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.1; }
.certificate-barcode {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #fff;
  padding: 2px;
  box-sizing: border-box;
}
.certificate-barcode img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.certificate-qr img,
.certificate-qr canvas,
.certificate-qr table {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}
.marksheet-overlay { position: absolute; inset: 8% 7% 8%; z-index: 2; display: flex; flex-direction: column; gap: 10px; }
.marksheet-meta {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px;
  background: rgba(255,255,255,.86); border-radius: 8px; padding: 8px 10px; font-size: 13px;
}
.marksheet-meta span { display: block; color: var(--muted); font-size: 11px; }
.marksheet-table { width: 100%; border-collapse: collapse; background: rgba(255,255,255,.9); font-size: 12px; }
.marksheet-table th, .marksheet-table td { border: 1px solid #cbd5e1; padding: 5px 7px; text-align: center; }
.marksheet-table th:first-child, .marksheet-table td:first-child { text-align: left; }
.marksheet-table thead th { background: #fff7ed; }
.muted { color: var(--muted); }
.toolbar { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; align-items: center; }
.toolbar-right { justify-content: flex-end; }
.toolbar:has(h1), .toolbar:has(h2), .toolbar:has(h3), .toolbar:has(.filters), .toolbar:has(.hub-nav), .toolbar:has(.profile-hero) {
  justify-content: space-between;
}
.hub-nav {
  display: flex; flex-wrap: nowrap; gap: 6px; margin: 0; width: 100%;
  background: #fff;
  border: 1px solid var(--line); border-radius: var(--btn-radius); padding: 6px;
}
.hub-nav a {
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; flex: 1 1 0; min-width: 0;
  padding: 6px 4px; min-height: 52px; border-radius: var(--btn-radius);
  font-weight: 600; font-size: .68rem; line-height: 1.15; text-align: center;
  white-space: normal; color: #fff;
  background: var(--btn-secondary);
  border: 0;
  box-shadow: none;
  transition: background .15s ease, filter .15s ease;
}
.hub-nav a > i {
  width: auto; height: auto; border-radius: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; font-size: .8rem; flex-shrink: 0;
}
.hub-nav a:hover { filter: brightness(.96); color: #fff; transform: none; }
.hub-nav a.active {
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.3);
  filter: brightness(.92);
}
.hub-nav .hub-org, .hub-nav .hub-password, .hub-nav .hub-settings { background: var(--btn-secondary); }
.hub-nav-inline .hub-form { background: #0d6efd; }
.hub-nav-inline .hub-add { background: #198754; }
.hub-nav-inline .hub-mobile { background: #7c3aed; }
.hub-nav-inline .hub-team { background: #198754; }
.hub-nav-inline .hub-output { background: #6f42c1; }
.hub-nav-inline .hub-settings { background: #db2777; }
.hub-nav .hub-centres, .hub-nav .hub-employees, .hub-nav .hub-team, .hub-nav .hub-expenses,
.hub-nav .hub-volunteers, .hub-nav .hub-dispatch, .hub-nav .hub-members, .hub-nav .hub-contacts { background: var(--btn-success); }
.hub-nav .hub-designations, .hub-nav .hub-exams, .hub-nav .hub-events,
.hub-nav .hub-resolutions, .hub-nav .hub-analytics { background: var(--btn-warning); }
.hub-nav .hub-templates, .hub-nav .hub-certificates, .hub-nav .hub-list,
.hub-nav .hub-courses, .hub-nav .hub-subjects, .hub-nav .hub-marksheets,
.hub-nav .hub-documents, .hub-nav .hub-reports,
.hub-nav .hub-messages, .hub-nav .hub-users, .hub-nav .hub-daily,
.hub-nav .hub-monthly, .hub-nav .hub-logs,
.hub-nav a:not([class*="hub-"]) { background: #0d6efd; }
.hub-nav .hub-gallery, .hub-nav-inline .hub-gallery { background: #495057; }
.hub-nav .hub-post, .hub-nav-inline .hub-post { background: #0d6efd; }
.hub-nav .hub-logs { background: var(--btn-danger); }
.hub-nav-inline {
  width: auto;
  max-width: max-content;
  align-self: flex-start;
  padding: 4px;
  gap: 6px;
}
.hub-nav-inline a {
  flex: 0 0 auto;
  flex-direction: row;
  min-height: 32px;
  padding: 0 12px;
  font-size: .78rem;
  gap: 6px;
  white-space: nowrap;
}
.hub-nav-inline a > i { font-size: .78rem; }
.perm-table-wrap { padding: 0; margin-top: 8px; }
.perm-table { margin: 0; }
.perm-table th, .perm-table td { text-align: center; vertical-align: middle; }
.perm-table th:first-child, .perm-table td:first-child { text-align: left; min-width: 220px; }
.perm-check { display: inline-flex; align-items: center; justify-content: center; margin: 0; }
.perm-check input { width: auto; min-width: 0; min-height: 0; margin: 0; }
.checkgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px 8px; }
.checkgrid label { font-weight: 600; margin: 0; display: flex; gap: 6px; align-items: center; }
.checkgrid input { width: auto; min-height: 0; }

hr { border: 0; border-top: 1px solid var(--line); margin: 12px 0; }

@media (max-width: 1100px) {
  .grid-8, .grid-4, .row-4 { grid-template-columns: repeat(2, 1fr); }
  .chart-grid-8 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .header-nav a { padding: 6px 7px; font-size: .72rem; }
}
@media (max-width: 960px) {
  .nav-toggle { display: inline-flex; }
  .header-nav { display: none; width: 100%; order: 5; }
  .app-shell.nav-open .header-nav { display: flex; }
  .app-shell.is-field-user .header-nav.is-field-nav {
    display: flex;
    width: auto;
    order: 3;
    flex-direction: row;
  }
  .header-bar { flex-wrap: wrap; }
  .grid-3, .grid-2, .row-3, .row-2, .row-4, .grid-4, .grid-8, .kv, .checkgrid { grid-template-columns: 1fr; }
  .survey-qa-row { grid-template-columns: 1fr; gap: 4px; }
  .survey-dash-btn { flex: 0 0 auto; }
  .survey-settings-split { grid-template-columns: 1fr; }
  .survey-team-add-table { table-layout: auto; }
  .survey-team-title-form .btn { margin-left: 0; }
  .survey-header-create input, .survey-header-create input[name="title"] { width: 100%; }
  .post-fields.row-2 { grid-template-columns: 1fr 1fr; }
  .post-compose-row { grid-template-columns: minmax(180px, .9fr) minmax(220px, 1.4fr); }
  .doc-upload-row { grid-template-columns: 1.2fr .8fr 1.4fr auto; }
  .doc-upload-row-org { grid-template-columns: minmax(150px, 1.3fr) minmax(110px, .8fr) minmax(150px, 1.3fr) auto; }
  .press-upload-row { grid-template-columns: minmax(120px, 1.2fr) minmax(120px, .8fr) minmax(140px, 1.3fr) auto; }
  .ebook-form-row { grid-template-columns: minmax(160px, 1.4fr) minmax(160px, 1.2fr) auto; }
  .centre-form-row { grid-template-columns: minmax(130px, 1.1fr) minmax(140px, 1.2fr) minmax(110px, .8fr) minmax(130px, 1fr) minmax(90px, .6fr) auto; }
  .msg-form-row { grid-template-columns: minmax(140px, .9fr) minmax(200px, 2fr) auto; }
  .form-section, .form-section-standalone { grid-template-columns: 1fr; }
  .form-section-side { border-right: 0; border-bottom: 1px solid #deebf4; }
  .form-section-side small { max-width: none; }
  .profile-hero { display: flex; }
  .content { padding: 10px; }
  .top-user span { display: none; }
  .stu-search { max-width: none; }
}
.official-report {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px 32px;
  max-width: 210mm;
  margin: 0 auto 16px;
  color: #1f2937;
}
.official-report-head {
  display: flex;
  gap: 16px;
  align-items: center;
  border-bottom: 2px solid #1f4e79;
  padding-bottom: 12px;
  margin-bottom: 16px;
}
.official-report-logo { width: 72px; height: 72px; object-fit: contain; }
.official-org { font-weight: 800; color: #1f4e79; letter-spacing: .02em; }
.official-report h1 { margin: 4px 0 0; font-size: 1.35rem; color: #1f4e79; }
.official-report h2 { margin: 18px 0 8px; font-size: 1.05rem; color: #1f4e79; }
.official-table { width: 100%; border-collapse: collapse; margin: 8px 0 14px; }
.official-table th, .official-table td { border: 1px solid #94a3b8; padding: 8px 10px; vertical-align: top; text-align: left; }
.official-table th { width: 32%; background: #e8f0fe; color: #1f4e79; }
.official-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.official-photos figure { margin: 0; }
.official-photos img { width: 100%; max-height: 280px; object-fit: contain; border: 1px solid #cbd5e1; background: #f8fafc; }
.survey-mobile-wrap {
  display: flex;
  justify-content: center;
  padding: 8px 0 24px;
}
.survey-phone {
  width: 360px;
  max-width: 100%;
  background: #0f172a;
  border-radius: 36px;
  padding: 12px 10px 18px;
  box-shadow: 0 18px 50px rgba(15, 23, 42, .28);
}
.survey-phone-notch {
  width: 108px; height: 18px; margin: 0 auto 6px;
  background: #020617; border-radius: 0 0 14px 14px;
}
.survey-phone-status {
  display: flex; justify-content: space-between; align-items: center;
  color: #e2e8f0; font-size: .68rem; padding: 0 10px 8px; font-weight: 600;
}
.survey-phone-appbar {
  background: #1d4ed8; color: #fff; font-weight: 700;
  padding: 12px 14px; font-size: .92rem;
  border-radius: 4px 4px 0 0;
}
.survey-phone-body {
  background: #f8fafc;
  min-height: 480px; max-height: 62vh; overflow: auto;
  padding: 12px;
}
.survey-phone-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.survey-phone-form > div { display: block; }
.survey-phone-form .survey-span-all { grid-column: 1; }
.survey-phone-form .btn { width: 100%; margin-top: 6px; }
.survey-phone-nav {
  display: flex; align-items: center; gap: 8px; margin-top: 8px;
  position: sticky; bottom: 0; background: #f8fafc; padding-top: 8px;
}
.survey-phone-nav .btn { width: auto; flex: 1 1 0; margin-top: 0; }
.survey-phone-progress { flex: 0 0 auto; font-size: .78rem; font-weight: 700; color: #475569; }
.survey-phone-form .survey-gps-row { flex-direction: column; align-items: stretch; }
.survey-phone-form .survey-gps-row .btn { width: 100%; }
.survey-phone-home {
  width: 96px; height: 5px; margin: 12px auto 0;
  background: #64748b; border-radius: 99px;
}
.survey-mobile-wrap.is-team-profile .survey-phone-appbar {
  background: linear-gradient(120deg, #0f766e 0%, #0369a1 55%, #1d4ed8 100%);
}
.survey-phone-body-profile {
  padding: 0 !important;
  background: linear-gradient(180deg, #ecfeff 0%, #f8fafc 42%, #eff6ff 100%) !important;
}
.team-profile-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.team-profile-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 18px 20px;
  background:
    radial-gradient(circle at 18% 20%, rgba(45, 212, 191, .35), transparent 42%),
    radial-gradient(circle at 86% 12%, rgba(59, 130, 246, .28), transparent 40%),
    linear-gradient(145deg, #0f766e 0%, #0e7490 40%, #1d4ed8 100%);
  color: #fff;
  overflow: hidden;
}
.team-profile-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 28px;
  background: linear-gradient(180deg, transparent, rgba(248, 250, 252, .35));
  pointer-events: none;
}
.team-profile-photo-wrap {
  width: 118px;
  height: 118px;
  border-radius: 50%;
  padding: 4px;
  background: linear-gradient(145deg, #fef08a, #67e8f9 45%, #93c5fd);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .28);
  margin-bottom: 14px;
  z-index: 1;
}
.team-profile-photo {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  background: #fff;
  border: 3px solid rgba(255, 255, 255, .95);
}
.team-profile-photo-fallback {
  display: grid;
  place-items: center;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: .04em;
  color: #0f766e;
  background: linear-gradient(160deg, #ecfeff, #e0f2fe);
}
.team-profile-name {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .01em;
  text-shadow: 0 1px 8px rgba(15, 23, 42, .18);
  z-index: 1;
}
.team-profile-designation {
  margin: 8px 0 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
  color: #0f172a;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 4px 12px rgba(15, 23, 42, .12);
  z-index: 1;
}
.team-profile-status {
  margin-top: 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  z-index: 1;
}
.team-profile-status.is-active {
  color: #14532d;
  background: rgba(187, 247, 208, .95);
}
.team-profile-status.is-inactive {
  color: #7c2d12;
  background: rgba(254, 215, 170, .95);
}
.team-profile-list {
  list-style: none;
  margin: 0;
  padding: 16px 14px 18px;
  display: grid;
  gap: 10px;
}
.team-profile-row {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px 12px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .28);
  box-shadow: 0 6px 16px rgba(15, 23, 42, .05);
}
.team-profile-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: .95rem;
  flex: 0 0 auto;
}
.team-profile-row.is-guardian .team-profile-icon { background: linear-gradient(145deg, #f59e0b, #ea580c); }
.team-profile-row.is-userid .team-profile-icon { background: linear-gradient(145deg, #0ea5e9, #2563eb); }
.team-profile-row.is-contact .team-profile-icon { background: linear-gradient(145deg, #10b981, #059669); }
.team-profile-row.is-district .team-profile-icon { background: linear-gradient(145deg, #14b8a6, #0f766e); }
.team-profile-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.team-profile-label {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #64748b;
}
.team-profile-value {
  font-size: .98rem;
  font-weight: 750;
  color: #0f172a;
  word-break: break-word;
  line-height: 1.25;
}
.survey-mobile-wrap.is-live-profile {
  padding: 0 0 18px;
}
.survey-mobile-wrap.is-live-profile .survey-phone-profile {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
.survey-mobile-wrap.is-live-profile .survey-phone-body-profile {
  max-height: none;
  min-height: 0;
  overflow: visible;
  border-radius: 18px;
  border: 1px solid rgba(148, 163, 184, .28);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}
.team-profile-edit {
  margin: 0;
  border-radius: 0;
  border: 0;
  border-top: 1px solid rgba(148, 163, 184, .28);
  box-shadow: none;
  padding: 14px 14px 16px;
  background: #fff;
}
.team-profile-edit-title {
  margin: 0 0 10px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #0f766e;
}
.survey-mobile-wrap.is-live {
  padding: 0;
}
.survey-mobile-wrap.is-live .survey-phone {
  width: 100%;
  max-width: 560px;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  min-height: 0;
}
.survey-mobile-wrap.is-live .survey-phone-notch,
.survey-mobile-wrap.is-live .survey-phone-status,
.survey-mobile-wrap.is-live .survey-phone-home,
.survey-mobile-wrap.is-live .survey-phone-appbar {
  display: none;
}
.survey-mobile-wrap.is-live .survey-phone-body {
  position: relative;
  background: transparent;
  min-height: min(70vh, 560px);
  max-height: none;
  overflow: visible;
  padding: 0;
}
.survey-mobile-wrap.is-live .survey-phone-form {
  position: relative;
  z-index: 1;
}
.survey-mobile-wrap.is-live .survey-phone-body::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 12%;
  width: min(78%, 280px);
  height: min(78%, 280px);
  transform: translateX(-50%);
  background: url("../img/health-survey-logo.png") center / contain no-repeat;
  opacity: .16;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 640px) {
  .survey-mobile-wrap {
    padding: 0;
  }
  .survey-phone {
    width: 100%;
    max-width: 100%;
    border-radius: 0;
    min-height: 0;
    box-shadow: none;
    padding: 0 0 12px;
    background: transparent;
  }
  .survey-phone-notch,
  .survey-phone-status,
  .survey-phone-home { display: none; }
  .survey-phone-body {
    min-height: 0;
    max-height: none !important;
    border-radius: 0;
    background: transparent;
  }
}
.official-photos figcaption { font-size: .78rem; color: #475569; margin-top: 4px; font-style: italic; }
.official-source { font-size: .78rem; color: #64748b; margin-top: 18px; }
.official-table-wrap { overflow: auto; margin: 10px 0 14px; }
.survey-assign-card,
.survey-assign-table {
  margin-bottom: 16px;
}
.survey-assign-title {
  margin: 0 0 12px;
  font-size: 1.05rem;
}
.survey-assign-form label span,
.survey-assign-multi-head span,
.assign-popup-access > span {
  display: block;
  margin-bottom: 6px;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--muted);
}
.survey-assign-multi-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}
.survey-assign-multi-head > span:first-child { margin-bottom: 0; }
.survey-assign-multi-actions { display: flex; gap: 4px; flex-wrap: wrap; }
.survey-assign-form select[multiple] {
  min-height: 108px;
  width: 100%;
  font-size: .82rem;
}
.survey-assign-btn { background: #0f766e !important; color: #fff; }
.survey-assign-btn:hover { background: #115e59 !important; color: #fff; }
.survey-dash-btn { background: #4f46e5 !important; color: #fff; }
.survey-dash-btn:hover { background: #4338ca !important; color: #fff; }
td.actions .survey-assign-btn,
td.actions .survey-dash-btn,
td.actions .survey-view-btn,
td.actions .survey-edit-btn,
td.actions .survey-cert-btn { margin-right: 0; }
.survey-view-btn { background: #0369a1 !important; color: #fff; }
.survey-view-btn:hover { background: #075985 !important; color: #fff; }
.survey-edit-btn { background: #d97706 !important; color: #fff; }
.survey-edit-btn:hover { background: #b45309 !important; color: #fff; }
.survey-cert-btn { background: #7c3aed !important; color: #fff; }
.survey-cert-btn:hover { background: #6d28d9 !important; color: #fff; }
.member-dash-popup { width: min(640px, 100%); }
.member-dash-sub { margin: 0 0 6px; }
.member-dash-surveys { margin: 0 0 12px; font-size: .82rem; color: #0f766e; font-weight: 650; }
.survey-yesno-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.survey-yesno-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 88px; padding: 8px 16px; border-radius: 10px; cursor: pointer;
  border: 1px solid #cbd5e1; background: #fff; font-weight: 750;
}
.survey-yesno-btn input { position: absolute; opacity: 0; pointer-events: none; }
.survey-yesno-btn.is-on { background: #0f766e; border-color: #0f766e; color: #fff; }
.survey-yesno-section {
  margin-top: 12px; padding: 12px; border: 1px solid #e2e8f0;
  border-radius: 12px; background: #f8fafc;
}
.survey-yesno-section-title { margin: 0 0 10px; font-size: .95rem; }
.survey-yesno-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.survey-yesno-grid .survey-span-all { grid-column: 1 / -1; }
.survey-yesno-grid .survey-span-all { grid-column: 1 / -1; }
.survey-yesno-builder { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.survey-yesno-row { display: grid; grid-template-columns: 1.4fr 1fr .8fr 1.2fr auto; gap: 6px; align-items: center; }
@media (max-width: 800px) {
  .survey-yesno-grid, .survey-yesno-row { grid-template-columns: 1fr; }
}
.survey-field-home {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 0 16px;
  max-width: 480px;
  margin: 0 auto;
}
.survey-field-home-name {
  margin: 0 0 4px;
  font-weight: 750;
  font-size: 1.05rem;
}
.survey-field-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  padding: 12px 16px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 750;
  font-size: 1rem;
  color: #fff;
  border: 0;
}
.survey-field-btn i { font-size: 1.05rem; }
.survey-field-btn.is-dash { background: #4f46e5; }
.survey-field-btn.is-add { background: #15803d; }
.survey-field-btn.is-profile { background: #0369a1; }
.survey-field-btn.is-password { background: #c2410c; }
.survey-field-btn.is-result { background: #0f766e; }
.survey-field-btn.is-final-result { background: #7c3aed; }
.survey-field-btn.is-recheck { background: #d97706; }
.survey-review-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  max-width: 820px;
  margin: 14px auto 6px;
}
.survey-review-form { margin: 0; }
.survey-verify-btn,
.survey-recheck-btn {
  width: 100%;
  min-height: 48px;
  font-weight: 800;
  font-size: 1rem;
  border: 0;
  color: #fff !important;
}
.survey-verify-btn {
  background: linear-gradient(90deg, #15803d, #16a34a) !important;
}
.survey-recheck-btn {
  background: linear-gradient(90deg, #c2410c, #ea580c) !important;
}
.survey-verify-btn:disabled,
.survey-recheck-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.survey-review-status {
  max-width: 820px;
  margin: 0 auto 16px;
  text-align: center;
}
.survey-recheck-note {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #fff7ed;
  color: #9a3412;
  font-size: .92rem;
  line-height: 1.35;
}
.survey-recheck-note i { margin-right: 6px; }
.survey-mobile-resubmit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 52px;
  text-decoration: none;
  box-sizing: border-box;
}
.survey-recheck-cards {
  display: grid;
  gap: 12px;
}
.survey-recheck-card {
  border: 1px solid #fed7aa;
  border-radius: 12px;
  background: #fffbeb;
  padding: 14px;
}
.survey-recheck-card-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
  margin-bottom: 6px;
}
.survey-recheck-card-summary {
  margin: 0 0 12px;
  color: #444;
  line-height: 1.4;
}
.survey-mobile-wrap.is-recheck .survey-phone-nav {
  position: sticky;
  bottom: 0;
  padding-top: 8px;
  background: linear-gradient(180deg, transparent, #fff 28%);
}
.app-shell.is-field-user .header-nav.is-field-nav {
  display: flex;
  flex: 0 0 auto;
  width: auto;
  margin-left: auto;
  overflow: visible;
}
.app-shell.is-field-user .header-nav.is-field-nav a.nav-pill {
  flex: 0 0 auto;
  width: auto;
}
.member-dash-stats .stat b small {
  font-size: .7em;
  font-weight: 650;
  color: var(--muted);
}
.assign-popup-overlay {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 8px 0 18px;
}
.assign-popup-overlay.is-popup-only {
  position: fixed;
  inset: 0;
  z-index: 40;
  align-items: center;
  justify-content: center;
  padding: max(8px, env(safe-area-inset-top)) 10px max(8px, env(safe-area-inset-bottom));
  background: rgba(15, 23, 42, .45);
  overflow: auto;
}
.assign-popup {
  width: min(1080px, 96vw);
  max-height: min(92vh, 640px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dbe4f0;
  border-radius: 14px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .2);
  padding: 10px 12px 12px;
}
.survey-assign-form {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.assign-popup-body {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 8px;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
.assign-popup-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eef2f7;
  flex: 0 0 auto;
}
.assign-popup-head h2 {
  margin: 0;
  font-size: 1rem;
  font-weight: 750;
  color: #0f172a;
  letter-spacing: -.01em;
}
.assign-popup-close {
  width: 28px;
  height: 28px;
  line-height: 26px;
  text-align: center;
  border-radius: 8px;
  color: #475569;
  text-decoration: none;
  font-size: 1.2rem;
  background: #f1f5f9;
  border: 0;
  transition: background .15s ease, color .15s ease;
}
.assign-popup-close:hover {
  background: #fee2e2;
  color: #b91c1c;
}
.assign-section {
  margin: 0;
  padding: 8px 9px 10px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
  min-height: 0;
  overflow: auto;
}
.assign-section-location {
  border-color: #bfdbfe;
  background: linear-gradient(180deg, #eff6ff 0%, #fff 55%);
}
.assign-section-surveys {
  border-color: #c4b5fd;
  background: linear-gradient(180deg, #f5f3ff 0%, #fff 55%);
}
.assign-section-access {
  border-color: #99f6e4;
  background: linear-gradient(180deg, #f0fdfa 0%, #fff 55%);
}
.assign-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.assign-section-num {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  font-weight: 800;
  color: #fff;
  box-shadow: none;
}
.assign-section-location .assign-section-num { background: linear-gradient(135deg, #2563eb, #1d4ed8); }
.assign-section-surveys .assign-section-num { background: linear-gradient(135deg, #7c3aed, #6d28d9); }
.assign-section-access .assign-section-num { background: linear-gradient(135deg, #0d9488, #0f766e); }
.assign-section-label {
  margin: 0;
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: 0;
  text-transform: none;
  color: #0f172a;
}
.assign-section-desc {
  display: none;
}
.assign-all-banner {
  margin: 0 0 8px;
  border: 1px solid #93c5fd;
  border-radius: 10px;
  background: linear-gradient(90deg, #dbeafe 0%, #eff6ff 100%);
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.assign-all-banner.is-on {
  border-color: #2dd4bf;
  background: linear-gradient(90deg, #ccfbf1 0%, #ecfdf5 100%);
  box-shadow: 0 0 0 2px rgba(13, 148, 136, .1);
}
.assign-all-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 8px 10px;
  cursor: pointer;
  box-sizing: border-box;
}
.assign-all-toggle-icon {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #2563eb;
  border: 1px solid #bfdbfe;
  font-size: .85rem;
}
.assign-all-banner.is-on .assign-all-toggle-icon {
  background: #0f766e;
  color: #fff;
  border-color: #0f766e;
}
.assign-all-toggle-copy {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.assign-all-toggle-copy strong {
  font-size: .82rem;
  font-weight: 700;
  color: #0f172a;
}
.assign-all-toggle-copy span {
  font-size: .7rem;
  color: #64748b;
  line-height: 1.25;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}
.assign-all-switch {
  position: relative;
  flex: 0 0 auto;
  width: 40px;
  height: 22px;
}
.assign-all-switch input {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
  z-index: 2;
}
.assign-all-switch-ui {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #94a3b8;
  transition: background .18s ease;
}
.assign-all-switch-ui::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .25);
  transition: transform .18s ease;
}
.assign-all-switch input:checked + .assign-all-switch-ui {
  background: #0f766e;
}
.assign-all-switch input:checked + .assign-all-switch-ui::after {
  transform: translateX(18px);
}
.assign-popup-line {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 8px;
}
.assign-popup-line:last-child { margin-bottom: 0; }
.assign-popup-line-2 { align-items: start; }
.assign-section .assign-popup-field { margin-top: 0; }
.assign-popup-access,
.assign-popup-actions {
  grid-template-columns: 1fr;
}
.assign-btn-all,
.assign-btn-none {
  min-height: 26px;
  padding: 3px 10px !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  border: 0 !important;
  box-shadow: none;
}
.assign-btn-all {
  background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
  color: #fff !important;
}
.assign-btn-all:hover { filter: brightness(1.05); }
.assign-btn-none {
  background: linear-gradient(135deg, #f97316, #ea580c) !important;
  color: #fff !important;
}
.assign-btn-none:hover { filter: brightness(1.05); }
.assign-popup-surveys select[multiple] {
  min-height: 120px;
  height: calc(100% - 28px);
  max-height: 220px;
  width: 100%;
  border-radius: 8px;
  border: 1px solid #ddd6fe;
  background: #faf5ff;
  padding: 4px 6px;
  font-size: .8rem;
}
.assign-access-row {
  flex-wrap: wrap !important;
  overflow: visible !important;
  gap: 5px !important;
  min-height: auto !important;
  max-height: none !important;
  padding: 7px !important;
  border-color: #99f6e4 !important;
  background: #ecfdf5 !important;
}
.assign-access-chip {
  font-size: .72rem !important;
  padding: 4px 8px 4px 6px !important;
  border-radius: 999px !important;
  border-color: #5eead4 !important;
  background: #fff !important;
}
.assign-access-chip:has(input:checked) {
  border-color: #0f766e !important;
  background: #ccfbf1 !important;
  color: #115e59;
  font-weight: 650;
}
.assign-popup-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: 8px 0 0;
  padding-top: 2px;
  flex: 0 0 auto;
}
.assign-popup-draft-note { margin-right: auto; }
.assign-popup-draft { order: 1; }
.assign-popup-submit {
  order: 2;
  min-width: 120px;
  min-height: 36px;
  padding: 8px 14px !important;
  border-radius: 9px !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  background: linear-gradient(135deg, #0f766e, #0d9488) !important;
  border: 0 !important;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .22);
}
.assign-popup-submit:hover { filter: brightness(1.05); }
.assign-popup-field { min-width: 0; }
.assign-chip-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 5px;
  overflow-x: auto;
  padding: 6px;
  min-height: 34px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #f8fbff;
}
.assign-popup-access .assign-chip-row {
  flex-wrap: wrap;
  overflow: visible;
}
.assign-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  font-size: .72rem;
  background: #fff;
  border: 1px solid #93c5fd;
  border-radius: 999px;
  padding: 3px 8px 3px 5px;
  cursor: pointer;
}
.assign-chip:has(input:checked) {
  border-color: #2563eb;
  background: #dbeafe;
  color: #1e3a8a;
}
.assign-popup-surveys select[multiple] { min-height: 92px; }
@media (max-width: 900px) {
  .assign-popup {
    width: min(560px, 96vw);
    max-height: min(92vh, 860px);
  }
  .assign-popup-body {
    grid-template-columns: 1fr;
    overflow: auto;
  }
  .assign-popup-line { grid-template-columns: 1fr; }
  .assign-popup-overlay.is-popup-only { padding-top: 12px; align-items: flex-start; }
}
@media (orientation: landscape) and (max-height: 520px) {
  .assign-popup {
    width: min(96vw, 1100px);
    max-height: 94vh;
    padding: 8px 10px 10px;
  }
  .assign-popup-body {
    grid-template-columns: 1.1fr 1fr 1fr;
  }
  .assign-popup-head { margin-bottom: 6px; padding-bottom: 6px; }
  .assign-section { padding: 6px 7px 8px; }
  .assign-popup-surveys select[multiple] {
    min-height: 72px;
    max-height: 140px;
  }
}
@media print {
  .app-header, .toolbar, .btn, .filters, .pager, .no-print, .hub-nav, .nav-toggle, .more, .cert-options-bar { display: none !important; }
  .app-shell, .content { display: block; background: #fff; padding: 0; }
  .print-doc, .cert, .certificate-canvas, .experience-page, .id-card { box-shadow: none; border: 0; }
  .id-card { width: 85.5mm !important; max-width: 85.5mm !important; height: 53.5mm !important; }
  .certificate-canvas, .experience-page { max-width: 210mm; width: 210mm; }
  .experience-page { height: 297mm; }
  .certificate-canvas.survey-certificate-canvas,
  .experience-page.is-landscape {
    max-width: 297mm !important;
    width: 297mm !important;
    height: 210mm !important;
  }
  .experience-sheet { margin: 0; }
  .experience-info { margin-top: 2in; }
  .experience-page.is-landscape .experience-info { margin-top: 0.6in; }
  .experience-sign { margin-bottom: 1in; text-align: left; }
  .experience-page.is-landscape .experience-sign { margin-bottom: 0.5in; }
  .official-report { border: 0; max-width: none; padding: 16mm; }
  .alert { display: none !important; }
  @page { size: A4 portrait; margin: 0; }
  @page survey-certificate-landscape { size: A4 landscape; margin: 0; }
  .experience-page.is-landscape { page: survey-certificate-landscape; }
}
