:root {
  --sidebar-w:260px;
  --sidebar-w-compact:80px;
  --gap:16px;
  --radius:14px;
  --c-accent:#2ECC71;
  --c-accent-2:#2ECC71;
  --primary:#2ECC71;
  --primary-dark:#27AE60;
  --secondary:#2ECC71;
  --secondary-dark:#2477BA;
  --c-bg:#f7f9fb;
  --c-panel:#ffffff;
  --c-surface:#ffffff;
  --c-text:#0e2233;
  --c-muted:#64748B;
  --c-border:#E2E8F0;
  --shadow:0 8px 24px rgba(15,23,42,.08);
  --shadow-sm:0 4px 18px rgba(15,23,42,.08);
  --focus:0 0 0 3px rgba(52,152,219,.35);
  --success:#16A34A;
  --info:#2563EB;
  --warning:#D97706;
  --danger:#DC2626;
  --success-soft:rgba(22,163,74,.12);
  --info-soft:rgba(37,99,235,.12);
  --warning-soft:rgba(217,119,6,.14);
  --danger-soft:rgba(220,38,38,.12);
  --primary-soft:rgba(46,204,113,.12);
  --secondary-soft:rgba(52,152,219,.12);
  --font-sans:"Inter","Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;
  --space-xxs:0.25rem;
  --space-xs:0.5rem;
  --space-sm:0.75rem;
  --space-md:1rem;
  --space-lg:1.5rem;
  --space-xl:2rem;
  --space-2xl:3rem;
  --transition:200ms cubic-bezier(.33,.75,.4,1);
  --transition-slow:260ms cubic-bezier(.22,.61,.36,1);
  --topbar-height:64px;
  --sidebar-gradient:linear-gradient(180deg,rgba(14,26,43,.98),rgba(15,33,61,.92));
  --sidebar-text:#f8fafc;
  --topbar-bg:rgba(255,255,255,.94);
  color-scheme:light;

  /* legacy aliases */
  --bg:var(--c-bg);
  --card:var(--c-panel);
  --surface:var(--c-surface);
  --text:var(--c-text);
  --muted:var(--c-muted);
  --border:var(--c-border);
}

:root[data-theme="dark"] {
  --c-bg:#0b1220;
  --c-panel:#0f172a;
  --c-surface:#152340;
  --c-text:#e6eef8;
  --c-muted:#94A3B8;
  --c-border:rgba(148,163,184,.18);
  --shadow:0 8px 24px rgba(0,0,0,.4);
  --shadow-sm:0 4px 18px rgba(0,0,0,.32);
  --primary-soft:rgba(46,204,113,.2);
  --secondary-soft:rgba(52,152,219,.2);
  --success-soft:rgba(34,197,94,.2);
  --info-soft:rgba(96,165,250,.2);
  --warning-soft:rgba(253,186,116,.2);
  --danger-soft:rgba(248,113,113,.2);
  --sidebar-gradient:linear-gradient(180deg,rgba(9,17,31,.97),rgba(12,26,44,.94));
  --sidebar-text:#dbeafe;
  --topbar-bg:rgba(15,23,42,.92);
  color-scheme:dark;

  --bg:var(--c-bg);
  --card:var(--c-panel);
  --surface:var(--c-surface);
  --text:var(--c-text);
  --muted:var(--c-muted);
  --border:var(--c-border);
}

*,*::before,*::after {
  box-sizing:border-box;
}

html {
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

body {
  margin:0;
  font-family:var(--font-sans);
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  font-size:16px;
  min-height:100vh;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  transition:background var(--transition-slow), color var(--transition-slow);
}

img,picture,video,canvas,svg {
  display:block;
  max-width:100%;
}

img {
  height:auto;
  border-radius:inherit;
}

button,input,select,textarea {
  font:inherit;
  color:inherit;
}

button {
  border:none;
  background:none;
}

ul[class],ol[class] {
  padding:0;
  list-style:none;
}

a {
  color:inherit;
  text-decoration:none;
  transition:color var(--transition);
}

a:hover {
  color:var(--secondary);
}

.link-strong {
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  padding:0.15rem 0.55rem;
  border-radius:999px;
  background:var(--secondary-soft);
  color:var(--secondary-dark);
  font-weight:600;
  text-decoration:underline;
  transition:background var(--transition), color var(--transition);
}

.link-strong:hover,
.link-strong:focus-visible {
  background:rgba(36,119,186,.18);
  color:var(--secondary-dark);
}

strong {
  font-weight:700;
}

hr {
  border:none;
  border-top:1px solid var(--border);
  margin:var(--space-lg) 0;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.hidden {
  display:none !important;
}

:focus-visible {
  outline:var(--focus);
  outline-offset:2px;
}

:where(button, .btn):focus-visible {
  box-shadow:var(--focus);
  outline:none;
}

body::-webkit-scrollbar {
  width:10px;
}

body::-webkit-scrollbar-thumb {
  background:rgba(15,23,42,.18);
  border-radius:999px;
}

.container {
  width:min(100%,1200px);
  margin-inline:auto;
  padding-inline:clamp(var(--space-md),4vw,var(--space-xl));
}

.container.container--narrow {
  max-width:760px;
}

.grid-cards {
  display:grid;
  gap:var(--space-lg);
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
}

.stack-sm > * + * {
  margin-top:var(--space-sm);
}

.stack-md > * + * {
  margin-top:var(--space-md);
}

.stack-lg > * + * {
  margin-top:var(--space-lg);
}

.flex {
  display:flex;
}

.flex-col {
  flex-direction:column;
}

.flex-wrap {
  flex-wrap:wrap;
}

.items-center {
  align-items:center;
}

.items-start {
  align-items:flex-start;
}

.justify-between {
  justify-content:space-between;
}

.justify-center {
  justify-content:center;
}

.gap-xs {
  gap:var(--space-xs);
}

.gap-sm {
  gap:var(--space-sm);
}

.gap-md {
  gap:var(--space-md);
}

.gap-lg {
  gap:var(--space-lg);
}

.gap-xl {
  gap:var(--space-xl);
}

.w-full {
  width:100%;
}

.max-w-xs {
  max-width:320px;
}

.max-w-sm {
  max-width:420px;
}

.max-w-md {
  max-width:560px;
}

.max-w-lg {
  max-width:720px;
}

.mx-auto {
  margin-inline:auto;
}

.my-0 {
  margin-block:0;
}

.mt-sm { margin-top:var(--space-sm); }
.mt-md { margin-top:var(--space-md); }
.mt-lg { margin-top:var(--space-lg); }
.mt-xl { margin-top:var(--space-xl); }
.mb-0 { margin-bottom:0; }
.mb-sm { margin-bottom:var(--space-sm); }
.mb-md { margin-bottom:var(--space-md); }
.mb-lg { margin-bottom:var(--space-lg); }
.mb-xl { margin-bottom:var(--space-xl); }

.px-sm { padding-inline:var(--space-sm); }
.px-md { padding-inline:var(--space-md); }
.px-lg { padding-inline:var(--space-lg); }
.py-sm { padding-block:var(--space-sm); }
.py-md { padding-block:var(--space-md); }
.py-lg { padding-block:var(--space-lg); }
.p-sm { padding:var(--space-sm); }
.p-md { padding:var(--space-md); }
.p-lg { padding:var(--space-lg); }

.rounded {
  border-radius:var(--radius);
}

.rounded-md {
  border-radius:var(--radius-md);
}

.rounded-sm {
  border-radius:var(--radius-sm);
}

.shadow {
  box-shadow:var(--shadow);
}

.shadow-sm {
  box-shadow:var(--shadow-sm);
}

.text-sm {
  font-size:0.9rem;
}

.text-md {
  font-size:1.05rem;
}

.text-lg {
  font-size:1.25rem;
}

.text-muted {
  color:var(--muted);
}

.text-primary {
  color:var(--primary);
}

.text-secondary {
  color:var(--secondary);
}

.text-highlight {
  color:var(--secondary);
}

.text-center {
  text-align:center;
}

.badge {
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  border-radius:999px;
  padding:0.25rem 0.75rem;
  font-size:0.8rem;
  font-weight:600;
  background:var(--secondary-soft);
  color:var(--secondary-dark);
}

.badge-success { background:var(--success-soft); color:var(--success); }
.badge-info { background:var(--info-soft); color:var(--info); }
.badge-warning { background:var(--warning-soft); color:var(--warning); }
.badge-danger { background:var(--danger-soft); color:var(--danger); }

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.65rem 1.25rem;
  border-radius:999px;
  border:1px solid transparent;
  background:var(--card);
  color:var(--text);
  font-weight:600;
  transition:transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
  cursor:pointer;
  text-decoration:none;
  position:relative;
}

.btn:not(:disabled):hover {
  transform:translateY(-1px);
  box-shadow:var(--shadow-sm);
}

.btn:disabled {
  opacity:0.55;
  cursor:not-allowed;
  pointer-events:none;
}

.btn.is-loading {
  pointer-events:none;
}

.btn.is-loading .btn__label {
  display:inline-flex;
  align-items:center;
}

.btn__spinner {
  width:1.05rem;
  height:1.05rem;
  border-radius:50%;
  border:2px solid currentColor;
  border-bottom-color:transparent;
  display:inline-flex;
  animation:btn-spin .65s linear infinite;
}

@keyframes btn-spin {
  to {
    transform:rotate(1turn);
  }
}

.btn-primary {
  background:var(--primary);
  color:#fff;
  border-color:transparent;
}

.btn-primary:not(:disabled):hover {
  background:var(--primary-dark);
}

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

.btn-secondary:not(:disabled):hover {
  background:var(--secondary-dark);
}

.btn-ghost {
  background:transparent;
  border-color:var(--secondary);
  color:var(--secondary);
}

.btn-ghost:not(:disabled):hover {
  background:rgba(52,152,219,.08);
}

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

.btn-sm {
  padding:0.45rem 1rem;
  font-size:0.9rem;
}

.btn-full {
  width:100%;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="date"],
input[type="file"],
input[type="password"],
select,
textarea {
  width:100%;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--card);
  padding:0.7rem 0.85rem;
  transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);
  min-height:3rem;
}

input[type="file"] {
  padding:0.45rem 0.6rem;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  border-color:var(--secondary);
  box-shadow:var(--focus);
  outline:none;
}

textarea {
  resize:vertical;
}

.field {
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}

.field__label {
  font-weight:600;
}

.field__hint {
  font-size:0.85rem;
  color:var(--muted);
}

.field__error {
  font-size:0.85rem;
  color:var(--danger);
}

.field--password .password-field {
  position:relative;
  display:flex;
  align-items:center;
}

.field--password [data-password-input] {
  padding-right:3.25rem;
}

.password-toggle {
  position:absolute;
  top:50%;
  right:0.75rem;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  gap:0.25rem;
  font-size:0.85rem;
  font-weight:600;
  color:var(--muted);
  cursor:pointer;
  border-radius:999px;
  padding:0.2rem 0.55rem;
  transition:color var(--transition), background var(--transition);
}

.password-toggle:hover,
.password-toggle:focus-visible {
  color:var(--secondary-dark);
  background:rgba(52,152,219,.12);
}

.password-toggle[aria-pressed="true"] {
  color:var(--secondary-dark);
}

label.required::after {
  content:"*";
  color:var(--danger);
  margin-left:0.25rem;
}

.card {
  background:var(--card);
  border-radius:var(--radius);
  border:1px solid rgba(100,116,139,.12);
  padding:clamp(var(--space-md),3vw,var(--space-xl));
  box-shadow:var(--shadow);
}

.card--flat {
  box-shadow:none;
  border:1px solid var(--border);
}

.card__header {
  display:flex;
  gap:var(--space-sm);
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:var(--space-md);
}

.card__title {
  font-size:1.1rem;
  margin:0;
}

.section {
  padding-block:clamp(2.5rem,5vw,4.25rem);
}

.section + .section {
  padding-top:0;
}

.section__header {
  display:flex;
  flex-direction:column;
  gap:0.5rem;
  margin-bottom:var(--space-lg);
}

.section__title {
  margin:0;
  font-size:clamp(1.5rem,2.4vw,2rem);
}


.hero {
  padding-block:clamp(3rem,6vw,5.5rem);
  background:var(--card);
  border-radius:32px;
  box-shadow:0 20px 60px rgba(15,23,42,.08);
}

.hero__inner {
  display:grid;
  gap:var(--space-xl);
  align-items:center;
}

.hero__heading {
  font-size:clamp(2.25rem,6vw,3.5rem);
  line-height:1.1;
  margin:0;
}

.hero__lead {
  font-size:1.05rem;
  color:var(--muted);
  max-width:620px;
}

.hero__actions {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
}

.hero-badge {
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  padding:0.45rem 0.85rem;
  border-radius:999px;
  font-weight:600;
  background:rgba(46,204,113,.12);
  color:var(--primary-dark);
}

.search-bar {
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
  background:var(--card);
  padding:clamp(var(--space-md),4vw,var(--space-lg));
  border-radius:24px;
  border:1px solid rgba(148,163,184,.16);
  box-shadow:0 16px 36px rgba(15,23,42,.08);
}

.search-bar input[type="text"],
.search-bar input[type="search"] {
  font-size:1.05rem;
  min-height:3.25rem;
}

.search-bar .btn {
  min-height:3rem;
  border-radius:18px;
  padding-inline:var(--space-lg);
}

.stats-grid {
  display:grid;
  gap:var(--space-md);
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
}

.stat-card {
  padding:var(--space-md);
  border-radius:var(--radius);
  border:1px solid rgba(100,116,139,.1);
  background:var(--card);
  box-shadow:var(--shadow-sm);
}

.stat-card .stat-value {
  font-size:clamp(1.5rem,2.4vw,2rem);
  margin:0;
  font-weight:700;
}

.stat-card .stat-label {
  margin:0;
  color:var(--muted);
  font-size:0.95rem;
}

.steps-grid {
  display:grid;
  gap:var(--space-md);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.step-card {
  border-radius:var(--radius);
  border:1px solid rgba(100,116,139,.12);
  padding:var(--space-md);
  background:var(--card);
  box-shadow:var(--shadow-sm);
}

.cta-card {
  background:linear-gradient(135deg,rgba(46,204,113,.2),rgba(52,152,219,.2));
  border-radius:var(--radius);
  padding:clamp(var(--space-lg),5vw,var(--space-2xl));
  color:var(--text);
  display:grid;
  gap:var(--space-md);
}

.cta-actions {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
}

.form-shell {
  display:grid;
  gap:var(--space-lg);
}

.form-section {
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:var(--surface);
  padding:clamp(var(--space-lg),4vw,var(--space-xl));
  box-shadow:var(--shadow-sm);
  display:grid;
  gap:var(--space-md);
}

.form-section__header {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:var(--space-sm);
}

.form-section__title {
  flex:1 1 auto;
  margin:0;
  font-size:1.1rem;
  font-weight:600;
}

.form-section__desc {
  flex:1 1 100%;
  margin:0;
  font-size:0.9rem;
  color:var(--muted);
  max-width:60ch;
}

.form-section__body {
  display:grid;
  gap:var(--space-md);
}

.field--wide {
  grid-column:1 / -1;
}

.form-grid {
  display:grid;
  gap:var(--space-md);
}

.form-grid--two {
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.form-actions {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
  justify-content:flex-start;
}

.floating-actions {
  position:relative;
}

@media (max-width:768px) {
  .form-section {
    padding:var(--space-md);
  }

  .floating-actions {
    position:fixed;
    bottom:calc(var(--space-lg) + env(safe-area-inset-bottom, 0px));
    right:clamp(var(--space-md),7vw,var(--space-xl));
    flex-direction:column;
    align-items:flex-end;
    gap:var(--space-sm);
    z-index:45;
  }

  .floating-actions .btn {
    border-radius:999px;
    box-shadow:var(--shadow);
  }
}

.search-request-page .section {
  position:relative;
}

.search-request-hero {
  position:relative;
  overflow:hidden;
  border-radius:32px;
  padding:clamp(var(--space-xl),6vw,var(--space-2xl));
  border:1px solid rgba(129,140,248,.18);
  background:
    radial-gradient(circle at top left, rgba(56,189,248,.22), transparent 58%),
    radial-gradient(circle at 80% -20%, rgba(129,140,248,.2), transparent 65%),
    linear-gradient(180deg, rgba(248,250,252,.92), rgba(241,245,249,.88));
  box-shadow:0 28px 70px rgba(15,23,42,.08);
}

.search-request-hero::after {
  content:"";
  position:absolute;
  inset:auto -20% -35% -20%;
  height:55%;
  background:linear-gradient(130deg, rgba(56,189,248,.12), rgba(129,140,248,.08));
  filter:blur(40px);
  opacity:0.8;
  pointer-events:none;
}

.search-request-hero .section__title {
  font-size:clamp(1.9rem,4vw,2.6rem);
}

.search-request-steps {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-md);
  flex-wrap:wrap;
  margin-top:var(--space-lg);
  position:relative;
  z-index:1;
}

.search-request-step {
  display:inline-flex;
  align-items:center;
  gap:0.65rem;
  padding:0.55rem 1rem;
  border-radius:999px;
  border:1px solid rgba(129,140,248,.32);
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 28px rgba(15,23,42,.08);
  font-weight:600;
  color:rgba(30,41,59,.85);
}

.search-request-step > span:first-child {
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:linear-gradient(135deg, rgba(56,189,248,1), rgba(129,140,248,1));
  color:#fff;
  font-size:0.95rem;
  font-weight:700;
  box-shadow:0 12px 30px rgba(37,99,235,.28);
}

.search-request-step > span:last-child {
  font-size:0.95rem;
  color:rgba(51,65,85,.9);
}

.search-request-form {
  position:relative;
  border-radius:36px;
  border:1px solid rgba(148,163,184,.16);
  background:linear-gradient(180deg, rgba(255,255,255,.9), rgba(248,250,252,.92));
  box-shadow:0 36px 80px rgba(15,23,42,.08);
  padding:clamp(var(--space-xl),5vw,var(--space-2xl));
  backdrop-filter:blur(12px);
}

.search-request-form .search-request-block {
  position:relative;
  padding:clamp(var(--space-lg),4vw,var(--space-xl));
  padding-top:clamp(2.6rem,6vw,3.4rem);
  padding-left:clamp(2.4rem,6vw,3.6rem);
  border-radius:24px;
  border:1px solid rgba(148,163,184,.18);
  background:linear-gradient(165deg, rgba(255,255,255,.96), rgba(241,245,249,.92));
  box-shadow:0 22px 42px rgba(15,23,42,.08);
  overflow:hidden;
}

.search-request-form .search-request-block::before {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at top right, rgba(129,140,248,.14), transparent 48%);
  opacity:0.8;
  pointer-events:none;
  z-index:0;
}

.search-request-form .search-request-block::after {
  content:attr(data-step);
  position:absolute;
  top:clamp(1.2rem,4vw,1.8rem);
  left:clamp(1.4rem,5vw,2rem);
  width:42px;
  height:42px;
  border-radius:14px;
  display:grid;
  place-items:center;
  font-weight:700;
  font-size:1rem;
  color:#fff;
  background:linear-gradient(135deg,#38BDF8,#818CF8);
  box-shadow:0 18px 40px rgba(37,99,235,.28);
  z-index:1;
}

.search-request-block__header {
  position:relative;
  z-index:1;
  padding-left:clamp(2.8rem,7vw,4rem);
}

.search-request-block__header .section__title {
  font-size:clamp(1.25rem,3vw,1.45rem);
}

.search-request-form .form-grid,
.search-request-form .field,
.search-request-form .field textarea {
  position:relative;
  z-index:1;
}

.search-request-form :where(input, select, textarea) {
  background:rgba(248,250,252,.95);
  border:1px solid rgba(148,163,184,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
  transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);
}

.search-request-form :where(input, select, textarea):focus-visible {
  background:#fff;
  border-color:rgba(99,102,241,.6);
  box-shadow:0 0 0 4px rgba(129,140,248,.2);
  transform:translateY(-1px);
}

.search-request-form select {
  background-image:linear-gradient(180deg, rgba(255,255,255,0), rgba(226,232,240,.65));
}

.search-request-safe {
  display:flex;
  align-items:flex-start;
  gap:var(--space-md);
  border-radius:24px;
  border:1px solid rgba(56,189,248,.26);
  background:linear-gradient(140deg, rgba(56,189,248,.14), rgba(129,140,248,.12));
  padding:clamp(var(--space-md),4vw,var(--space-lg));
  box-shadow:0 18px 40px rgba(15,23,42,.06);
}

.search-request-safe span[aria-hidden="true"] {
  font-size:1.4rem;
}

.search-request-actions {
  justify-content:flex-end;
  gap:var(--space-sm);
}

.search-request-actions .btn-ghost {
  border-color:rgba(148,163,184,.26);
}

.search-request-page .text-muted {
  color:rgba(71,85,105,.85);
}

@media (max-width:768px) {
  .search-request-form {
    padding:var(--space-lg);
  }

  .search-request-form .search-request-block {
    padding:var(--space-lg);
    padding-top:calc(var(--space-lg) + 2.2rem);
    padding-left:var(--space-lg);
  }

  .search-request-block__header {
    padding-left:0;
  }

  .search-request-form .search-request-block::after {
    left:var(--space-lg);
  }

  .search-request-steps {
    justify-content:flex-start;
  }

  .search-request-actions {
    justify-content:flex-start;
  }

  .search-request-safe {
    flex-direction:column;
  }
}

.inline-hint {
  font-size:0.9rem;
  color:var(--muted);
}

.alert {
  border-radius:var(--radius-md);
  padding:0.85rem 1rem;
  border:1px solid transparent;
  background:var(--secondary-soft);
  color:var(--secondary-dark);
  display:flex;
  gap:var(--space-sm);
  align-items:flex-start;
}

.alert svg {
  min-width:1.25rem;
  margin-top:0.15rem;
}

.alert-success { background:var(--success-soft); border-color:rgba(22,163,74,.24); color:var(--success); }
.alert-info { background:var(--info-soft); border-color:rgba(37,99,235,.22); color:var(--info); }
.alert-warning { background:var(--warning-soft); border-color:rgba(217,119,6,.26); color:var(--warning); }
.alert-danger { background:var(--danger-soft); border-color:rgba(220,38,38,.24); color:var(--danger); }

.inline-errors {
  display:grid;
  gap:0.35rem;
}

.table-shell {
  border-radius:var(--radius);
  border:1px solid var(--border);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  background:var(--card);
  box-shadow:var(--shadow);
  position:relative;
}

.table-shell table {
  width:100%;
  border-collapse:collapse;
  min-width:680px;
}

.table-shell th,
.table-shell td {
  padding:0.85rem 1rem;
  text-align:left;
  border-bottom:1px solid var(--border);
  font-size:0.95rem;
}

.table-shell th {
  font-weight:600;
  color:var(--muted);
  background:rgba(247,249,251,.6);
}

.table-shell tbody tr:hover {
  background:rgba(52,152,219,.04);
}

.table-actions {
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
}

.table-actions .link-danger {
  color:var(--danger);
}

.pagination {
  display:flex;
  align-items:center;
  gap:var(--space-sm);
  justify-content:flex-end;
  margin-top:var(--space-lg);
  font-size:0.95rem;
}

.pagination a {
  padding:0.45rem 0.8rem;
  border-radius:999px;
  border:1px solid var(--border);
}

.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:var(--c-panel);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(148,163,184,.15);
  padding:var(--space-md) clamp(var(--space-md),4vw,var(--space-xl));
  transition:box-shadow var(--transition-slow), border-color var(--transition);
}

.site-header.is-scrolled {
  box-shadow:0 12px 30px rgba(15,23,42,.08);
  border-color:rgba(148,163,184,.22);
}

.site-brand {
  font-weight:700;
  font-size:1.1rem;
  display:flex;
  align-items:center;
  gap:0.45rem;
  color:var(--secondary);
}

.site-brand__logo,
.site-nav__brand-logo {
  width:40px;
  height:40px;
  border-radius:12px;
  object-fit:cover;
  flex-shrink:0;
  box-shadow:0 4px 14px rgba(15,23,42,.15);
}

.site-brand__text {
  font-weight:700;
  letter-spacing:.01em;
}

.site-header__inner {
  position:relative;
}

.site-nav {
  display:flex;
  align-items:center;
  gap:var(--space-lg);
}

.site-nav__links {
  display:flex;
  align-items:center;
  gap:1.25rem;
}

.site-nav__mobile-head,
.site-nav__subtitle {
  display:none;
}

.site-nav__brand {
  display:flex;
  align-items:center;
  gap:0.75rem;
  color:inherit;
  text-decoration:none;
}

.site-nav__brand-mark {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  font-weight:700;
  color:#fff;
}

.site-nav__brand-label {
  font-weight:600;
  letter-spacing:0.01em;
}

.site-nav__subtitle {
  margin:0;
  font-size:0.95rem;
  line-height:1.5;
  color:var(--muted);
}

.site-nav__link {
  position:relative;
  display:inline-flex;
  align-items:center;
  padding:0.35rem 0;
  font-weight:600;
  color:var(--c-muted);
  border-bottom:2px solid transparent;
  transition:color var(--transition), border-color var(--transition);
}

.site-nav__link.is-active,
.site-nav__link:hover {
  color:var(--secondary);
  border-color:var(--secondary);
}

.site-nav__toggle {
  display:none;
  align-items:center;
  justify-content:center;
  gap:0.35rem;
  width:2.75rem;
  height:2.75rem;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.35);
  background:rgba(255,255,255,.72);
  box-shadow:var(--shadow-sm);
  transition:transform var(--transition), box-shadow var(--transition);
  cursor:pointer;
  color:var(--c-text);
}

.site-nav__toggle:active {
  transform:scale(.97);
}

.site-nav__bar {
  display:block;
  width:1.4rem;
  height:2px;
  border-radius:999px;
  background:var(--c-text);
  transition:transform var(--transition);
}

.site-nav__close {
  display:none;
  align-self:flex-end;
  font-size:2rem;
  line-height:1;
  color:inherit;
  background:transparent;
  border:none;
  cursor:pointer;
}

.site-nav__overlay {
  display:none;
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.38);
  opacity:0;
  pointer-events:none;
  transition:opacity var(--transition-slow);
  z-index:25;
}

html[data-nav-open="1"] body {
  overflow:hidden;
}


main {
  padding-block:clamp(2.5rem,4vw,4rem);
}

.site-footer {
  background:var(--card);
  border-top:1px solid var(--border);
  padding-block:clamp(2rem,3vw,3rem);
  text-align:center;
  font-size:0.9rem;
  color:var(--muted);
}

.toaster {
  position:fixed;
  inset-inline:clamp(var(--space-sm),5vw,var(--space-xl));
  bottom:var(--space-sm);
  z-index:100;
  display:grid;
  gap:var(--space-sm);
  width:auto;
  max-width:420px;
}

.toaster[data-position="top-right"] {
  inset:auto clamp(var(--space-sm),4vw,var(--space-xl)) var(--space-xl) auto;
  top:var(--space-xl);
}

.toast {
  display:flex;
  gap:var(--space-sm);
  align-items:flex-start;
  padding:0.75rem 1rem;
  border-radius:18px;
  background:var(--card);
  box-shadow:0 16px 40px rgba(15,23,42,.16);
  border:1px solid rgba(148,163,184,.18);
  animation:toast-in var(--transition);
  width:min(360px,calc(100vw - 32px));
  pointer-events:auto;
}

.toast__icon {
  font-size:1.35rem;
  line-height:1;
}

.toast__content {
  flex:1;
  display:grid;
  gap:0.25rem;
}

.toast__title {
  font-weight:600;
  margin:0;
}

.toast__text {
  margin:0;
  font-size:0.95rem;
  color:var(--muted);
}

.toast__close {
  border:none;
  background:transparent;
  cursor:pointer;
  color:var(--muted);
  padding:0.15rem;
  border-radius:999px;
  transition:color var(--transition), background var(--transition);
}

.toast__close:hover {
  color:var(--text);
  background:rgba(148,163,184,.16);
}

.toast.is-leaving {
  opacity:0;
  transform:translateY(8px);
  transition:opacity var(--transition), transform var(--transition);
}

.toast-success { border-color:rgba(22,163,74,.28); }
.toast-info { border-color:rgba(37,99,235,.28); }
.toast-warning { border-color:rgba(217,119,6,.28); }
.toast-danger { border-color:rgba(220,38,38,.32); }

.toast-success {
  background:rgba(46,204,113,.12);
}

.toast-info {
  background:rgba(52,152,219,.12);
}

.toast-warning {
  background:rgba(217,119,6,.12);
}

.toast-danger {
  background:rgba(220,38,38,.12);
}

@keyframes toast-in {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:translateY(0); }
}

.modal {
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  z-index:110;
  visibility:hidden;
  pointer-events:none;
}

.modal.is-visible {
  visibility:visible;
  pointer-events:auto;
}

.modal__overlay {
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.45);
  opacity:0;
  transition:opacity var(--transition);
}

.modal.is-visible .modal__overlay {
  opacity:1;
}

.modal__content {
  position:relative;
  width:min(92vw,480px);
  background:var(--card);
  border-radius:var(--radius);
  padding:clamp(var(--space-lg),4vw,var(--space-xl));
  max-height:90vh;
  overflow:auto;
  box-shadow:0 20px 60px rgba(15,23,42,.28);
  transform:translateY(12px) scale(.98);
  opacity:0;
  transition:transform var(--transition-slow), opacity var(--transition-slow);
}

.modal.is-visible .modal__content {
  transform:translateY(0) scale(1);
  opacity:1;
}

.modal__title {
  font-size:1.35rem;
  margin-bottom:var(--space-sm);
}

.modal__actions {
  display:flex;
  justify-content:flex-end;
  gap:var(--space-sm);
  margin-top:var(--space-lg);
}

.modal__close {
  position:absolute;
  top:var(--space-sm);
  right:var(--space-sm);
  border:none;
  background:transparent;
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
  color:var(--muted);
}

.modal__close:hover {
  color:var(--text);
}

body.has-modal {
  overflow:hidden;
}

.toast-live-region,
.alert-live-region {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
}

.admin-shell {
  min-height:100vh;
  min-height:100dvh;
  --c-bg:#eef2f8;
  --c-panel:#ffffff;
  --c-surface:#f9fbff;
  --c-text:#1f2937;
  --c-muted:#64748b;
  --c-border:#d4deed;
  --shadow:0 16px 32px rgba(15,23,42,.08);
  --shadow-sm:0 8px 24px rgba(15,23,42,.06);
  --topbar-bg:rgba(255,255,255,.95);
  --primary:#2563EB;
  --primary-dark:#1D4ED8;
  --secondary:#0EA5E9;
  --secondary-dark:#0284C7;
  --primary-soft:rgba(37,99,235,.12);
  --secondary-soft:rgba(14,165,233,.12);
  --sidebar-gradient:linear-gradient(180deg,#1d4ed8,#1e3a8a);
  --sidebar-text:#f8fafc;
  --admin-nav-bg:linear-gradient(135deg, rgba(255,255,255,.18), rgba(37,99,235,.14));
  --admin-nav-border:rgba(255,255,255,.22);
  --admin-nav-hover:linear-gradient(135deg, rgba(255,255,255,.28), rgba(14,165,233,.22));
  --admin-nav-active:linear-gradient(135deg, rgba(37,99,235,.38), rgba(14,165,233,.32));
  --admin-indicator:linear-gradient(180deg,#38BDF8 0%,#2563EB 100%);
  background:
    radial-gradient(circle at 12% -20%, rgba(37,99,235,.12), transparent 55%),
    radial-gradient(circle at 85% 0, rgba(14,165,233,.1), transparent 60%),
    linear-gradient(200deg,#f5f7fb 0%,#e7edf8 45%,#e0e9f7 100%);
  color:var(--c-text);
}

.admin-layout {
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr;
  min-height:100vh;
  min-height:100dvh;
  background:var(--c-bg);
}

html[data-sidebar-collapsed="1"] .admin-layout {
  grid-template-columns:var(--sidebar-w-compact) 1fr;
}

.admin-sidebar {
  position:sticky;
  top:0;
  height:100vh;
  height:100dvh;
  width:var(--sidebar-w);
  padding:calc(env(safe-area-inset-top) + var(--gap)) var(--gap) calc(env(safe-area-inset-bottom) + var(--gap));
  background:var(--sidebar-gradient);
  color:var(--sidebar-text);
  display:flex;
  flex-direction:column;
  gap:var(--gap);
  transition:width var(--transition-slow), transform .25s ease;
  z-index:800;
  box-shadow:var(--shadow);
  border-right:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(20px);
}

html[data-sidebar-collapsed="1"] .admin-sidebar {
  width:var(--sidebar-w-compact);
}

.admin-sidebar__header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--gap);
  margin-bottom:var(--gap);
}

.admin-brand {
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--sidebar-text);
  font-weight:700;
  font-size:1.05rem;
}

.admin-brand__mark {
  width:40px;
  height:40px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  font-weight:700;
}

.admin-brand__label {
  white-space:nowrap;
}

html[data-sidebar-collapsed="1"] .admin-brand__label {
  display:none;
}

.admin-sidebar__close {
  border:none;
  background:transparent;
  color:var(--sidebar-text);
  font-size:1.4rem;
  line-height:1;
  display:none;
  cursor:pointer;
}

.admin-sidebar__body {
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding-right:4px;
  padding-bottom:var(--gap);
}

.admin-nav-wrapper {
  display:block;
}

.admin-nav {
  padding:0;
  margin:0;
  display:grid;
  gap:6px;
}

.admin-nav__item {
  list-style:none;
}

.admin-nav__link {
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:var(--radius);
  color:var(--sidebar-text);
  background:var(--admin-nav-bg);
  border:1px solid var(--admin-nav-border);
  box-shadow:0 12px 28px rgba(15,23,42,.22);
  backdrop-filter:blur(8px);
  transition:background var(--transition), color var(--transition), box-shadow var(--transition), border-color var(--transition), transform var(--transition);
}

.admin-nav__indicator {
  width:6px;
  height:18px;
  border-radius:999px;
  background:rgba(255,255,255,.4);
  transition:background var(--transition), border-color var(--transition);
  flex-shrink:0;
}

.admin-nav__link.is-active .admin-nav__indicator {
  background:var(--admin-indicator);
}

.admin-nav__label {
  flex:1;
  font-size:0.96rem;
  font-weight:500;
}

.admin-nav__link:hover {
  background:var(--admin-nav-hover);
  color:#ffffff;
  border-color:rgba(37,99,235,.38);
  box-shadow:0 18px 36px rgba(15,23,42,.28);
  transform:translateY(-2px);
}

.admin-nav__link.is-active {
  background:var(--admin-nav-active);
  border-color:rgba(37,99,235,.5);
  box-shadow:0 24px 42px rgba(15,23,42,.32);
  color:#ffffff;
}

.admin-nav__link.is-active .admin-nav__label {
  font-weight:600;
}

.admin-nav__link:focus-visible {
  outline:none;
  box-shadow:0 0 0 3px rgba(37,99,235,.45);
}

.admin-nav__link[aria-disabled="true"] {
  opacity:0.38;
  cursor:not-allowed;
}

html[data-sidebar-collapsed="1"] .admin-nav__label {
  display:none;
}

html[data-sidebar-collapsed="1"] .admin-nav__link {
  justify-content:center;
  padding:12px 8px;
}

.admin-sidebar__footer {
  margin-top:auto;
  display:grid;
  gap:var(--gap);
}

.admin-user {
  display:flex;
  align-items:center;
  gap:10px;
}

.admin-user__avatar {
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(56,189,248,.24);
  display:grid;
  place-items:center;
  font-weight:700;
}

.admin-user__details {
  display:grid;
  gap:2px;
}

html[data-sidebar-collapsed="1"] .admin-user__details {
  display:none;
}

.admin-sidebar_backdrop {
  position:fixed;
  inset:0;
  background:rgba(5,12,28,.65);
  opacity:0;
  pointer-events:none;
  transition:opacity var(--transition);
  z-index:700;
}

.admin-content {
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-height:100dvh;
  position:relative;
}

.admin-topbar {
  position:sticky;
  top:0;
  z-index:900;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--gap);
  padding:calc(env(safe-area-inset-top) + var(--gap)) var(--gap) var(--gap);
  background:var(--topbar-bg);
  box-shadow:var(--shadow);
  border-bottom:1px solid rgba(148,163,184,.22);
  backdrop-filter:blur(18px);
}

.admin-topbar__start {
  display:flex;
  align-items:center;
  gap:var(--gap);
  min-width:0;
}

.admin-nav-toggle {
  display:flex;
  flex-direction:column;
  gap:4px;
  width:44px;
  height:44px;
  border-radius:12px;
  border:1px solid var(--c-border);
  background:var(--c-surface);
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background var(--transition), border-color var(--transition);
}

.admin-nav-toggle__bar {
  width:20px;
  height:2px;
  border-radius:999px;
  background:var(--c-text);
}

.admin-nav-toggle:hover {
  border-color:var(--secondary);
}

.admin-topbar__brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  color:var(--c-text);
  text-decoration:none;
}

.admin-topbar__brand-mark {
  width:32px;
  height:32px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  display:grid;
  place-items:center;
  font-size:0.85rem;
  font-weight:700;
  color:#fff;
}

.admin-topbar__brand-label {
  font-size:1rem;
  white-space:nowrap;
}

.admin-sidebar-collapse {
  display:none;
  align-items:center;
  gap:6px;
  border:1px solid var(--c-border);
  background:var(--c-surface);
  border-radius:999px;
  padding:8px 12px;
  cursor:pointer;
  font-size:0.85rem;
  transition:background var(--transition), border-color var(--transition);
}

.admin-sidebar-collapse__icon {
  font-size:0.85rem;
}

.admin-sidebar-collapse:hover {
  border-color:var(--secondary);
}

html[data-sidebar-collapsed="1"] .admin-sidebar-collapse__icon {
  transform:scaleX(-1);
}

.admin-topbar__actions {
  display:flex;
  align-items:center;
  gap:var(--gap);
}

.admin-topbar__user {
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid var(--c-border);
  background:var(--c-surface);
}

.admin-topbar__avatar {
  width:32px;
  height:32px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--primary-soft);
  color:var(--primary-dark);
  font-weight:600;
}

.admin-main {
  flex:1;
  min-height:0;
  overflow:auto;
  padding:24px;
  padding-left:clamp(24px,4vw,40px);
  padding-right:clamp(24px,4vw,40px);
  padding-bottom:calc(24px + env(safe-area-inset-bottom));
  background:var(--c-bg);
}

.admin-main > *:first-child {
  margin-top:0;
}

.toaster {
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:calc(32px + env(safe-area-inset-bottom, 0px));
  z-index:1000;
  width:calc(100vw - 48px);
  max-width:640px;
  pointer-events:none;
}

@media (min-width:1024px) {
  .admin-sidebar-collapse {
    display:inline-flex;
  }

  .admin-nav-toggle {
    display:none;
  }

  .admin-topbar__brand {
    display:none;
  }

  .admin-topbar__user-name {
    display:inline-flex;
  }

  .toaster {
    left:50%;
    right:auto;
    transform:translateX(-50%);
    top:auto;
    bottom:calc(32px + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width:1023px) {
  .admin-layout {
    grid-template-columns:1fr;
  }

  .admin-sidebar {
    position:fixed;
    inset:0 auto 0 0;
    width:clamp(280px,80vw,360px);
    max-width:360px;
    transform:translateX(-100%);
    border-radius:0;
    height:100vh;
    height:100dvh;
  }

  .admin-sidebar__close {
    display:block;
  }

  html[data-nav-open="1"] .admin-sidebar {
    transform:translateX(0);
  }

  html[data-nav-open="1"] .admin-sidebar_backdrop {
    opacity:1;
    pointer-events:auto;
  }

  .admin-sidebar_backdrop {
    display:block;
  }

  html[data-nav-open="1"],
  html[data-nav-open="1"] body {
    overflow:hidden;
  }

  .admin-sidebar-collapse {
    display:none;
  }

  .admin-topbar__brand {
    display:flex;
  }

  .admin-main {
    padding:calc(var(--gap) * 1.5);
    padding-left:clamp(var(--gap),6vw,32px);
    padding-right:clamp(var(--gap),6vw,32px);
    padding-bottom:calc(var(--gap) * 3 + env(safe-area-inset-bottom));
  }
}

@media (max-width:768px) {
  .admin-topbar {
    gap:var(--gap);
    padding:calc(env(safe-area-inset-top) + var(--gap)) var(--gap) var(--gap);
  }

  .admin-topbar__actions {
    gap:12px;
  }

  .admin-topbar__user-name {
    display:none;
  }
}

@media (max-width:600px) {
  .admin-main {
    padding-bottom:calc(80px + env(safe-area-inset-bottom));
  }
}

.auth-shell {
  background:linear-gradient(160deg,rgba(52,152,219,.1),rgba(15,23,42,.05));
}

.auth-main {
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(2.5rem,8vw,5rem) var(--space-md);
}

.auth-main__inner {
  width:100%;
  max-width:420px;
  padding-inline:var(--space-md);
}

.auth-card {
  width:100%;
}

.auth-card__header > *:first-child {
  margin-bottom:var(--space-sm);
}

.auth-form__options {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-sm);
  flex-wrap:wrap;
}

.auth-link {
  font-size:0.9rem;
  font-weight:600;
  color:var(--secondary);
}

.auth-link:hover,
.auth-link:focus-visible {
  color:var(--secondary-dark);
  text-decoration:underline;
}

.auth-card__footer {
  margin-top:var(--space-sm);
  text-align:center;
  font-size:0.9rem;
  color:var(--muted);
}

.auth-card__footer a {
  color:var(--secondary);
  font-weight:600;
}

.auth-card__footer a:hover,
.auth-card__footer a:focus-visible {
  color:var(--secondary-dark);
}

.auth-login .app-main,
.auth-forgot .app-main,
.auth-reset .app-main {
  min-height:calc(100vh - 160px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(2.5rem,8vw,4.5rem) var(--space-md);
}

.auth-login .app-main > *,
.auth-forgot .app-main > *,
.auth-reset .app-main > * {
  width:100%;
}

.auth-login .auth-card,
.auth-forgot .auth-card,
.auth-reset .auth-card {
  width:min(100%,420px);
  margin-inline:auto;
}

.auth-note {
  display:block;
  font-size:0.9rem;
  color:var(--muted);
}

@media (max-width: 640px) {
  .auth-login .app-main,
  .auth-forgot .app-main,
  .auth-reset .app-main {
    padding:var(--space-xl) var(--space-sm);
  }

  .auth-login .card,
  .auth-forgot .card,
  .auth-reset .card {
    border-radius:var(--radius-md);
    box-shadow:none;
    border:1px solid rgba(100,116,139,.16);
    padding:var(--space-lg);
  }

  .auth-form__options {
    align-items:flex-start;
    gap:var(--space-xs);
  }
}

.admin-auth .admin-sidebar {
  display:none;
}

.admin-auth .admin-layout {
  grid-template-columns:1fr;
}

.admin-auth .admin-main {
  min-height:100vh;
  padding:clamp(3rem,8vw,5rem) var(--space-md);
  display:flex;
  align-items:center;
  justify-content:center;
}

.admin-auth .admin-main .container {
  max-width:420px;
  width:100%;
  padding-inline:var(--space-md);
}

.admin-auth .admin-main .card {
  width:100%;
}

.admin-page-header {
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.admin-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  background:rgba(15,23,42,.04);
  border-radius:999px;
  padding:0.4rem;
  align-self:flex-start;
}

.admin-tabs a {
  padding:0.45rem 1rem;
  border-radius:999px;
  font-weight:600;
  color:var(--muted);
}

.admin-tabs a.is-active {
  background:var(--card);
  box-shadow:var(--shadow-sm);
  color:var(--secondary);
}

.admin-summary {
  display:grid;
  gap:var(--space-md);
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}

.summary-card {
  background:var(--card);
  border-radius:var(--radius);
  border:1px solid rgba(148,163,184,.22);
  padding:var(--space-md);
  box-shadow:var(--shadow-sm);
}

.summary-card__value {
  margin:0;
  font-size:clamp(1.5rem,2.8vw,2.25rem);
  font-weight:700;
}

.summary-card__label {
  margin:0;
  color:var(--muted);
}

.admin-toolbar {
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
}

.admin-toolbar .filter-grid {
  display:grid;
  gap:var(--space-sm);
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}

.admin-toolbar .filter-grid .btn {
  justify-self:start;
}

.admin-table-wrapper {
  display:grid;
  gap:var(--space-lg);
}

.record-card {
  background:var(--card);
  border-radius:var(--radius);
  border:1px solid rgba(148,163,184,.24);
  padding:var(--space-md);
  display:grid;
  gap:var(--space-sm);
  box-shadow:var(--shadow-sm);
}

.record-card__meta {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
  color:var(--muted);
  font-size:0.9rem;
}

.record-card__actions {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
}

details {
  border:1px dashed rgba(148,163,184,.4);
  border-radius:var(--radius-md);
  padding:var(--space-sm);
  background:rgba(15,23,42,.02);
}

details[open] {
  background:rgba(52,152,219,.08);
}

details summary {
  cursor:pointer;
  font-weight:600;
  list-style:none;
}

details summary::-webkit-details-marker {
  display:none;
}

.status-pill {
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  padding:0.2rem 0.65rem;
  border-radius:999px;
  font-size:0.78rem;
  font-weight:600;
  background:rgba(52,152,219,.1);
  color:var(--secondary-dark);
}

.status-pill.is-success { background:var(--success-soft); color:var(--success); }
.status-pill.is-danger { background:var(--danger-soft); color:var(--danger); }
.status-pill.is-warning { background:var(--warning-soft); color:var(--warning); }

.upload-preview {
  position:relative;
  border-radius:var(--radius);
  border:1px dashed rgba(100,116,139,.4);
  padding:var(--space-md);
  display:grid;
  gap:var(--space-sm);
  background:rgba(52,152,219,.04);
}

.upload-preview__thumb {
  width:100%;
  max-height:220px;
  object-fit:cover;
  border-radius:var(--radius-md);
}

.empty-state {
  text-align:center;
  padding:var(--space-xl);
  border-radius:var(--radius);
  border:1px dashed rgba(148,163,184,.32);
  background:rgba(255,255,255,.7);
  display:grid;
  gap:var(--space-sm);
  justify-items:center;
}

.empty-state p {
  max-width:420px;
  color:var(--muted);
  margin:0;
}

.report-hero {
  padding-block:clamp(3rem,6vw,5rem);
  background:linear-gradient(135deg,rgba(52,152,219,.12),rgba(46,204,113,.12));
}

.report-container {
  display:grid;
  gap:var(--space-xl);
  max-width:980px;
}

.report-header {
  align-items:center;
}

.hero-badge--alt {
  background:rgba(52,152,219,.14);
  color:var(--secondary-dark);
  font-size:0.85rem;
}

.report-lead {
  max-width:640px;
  margin-inline:auto;
}

.report-instructions {
  display:flex;
  align-items:flex-start;
  gap:var(--space-md);
  border-radius:var(--radius);
  padding:clamp(var(--space-md),3vw,var(--space-lg));
  background:rgba(52,152,219,.08);
  border:1px solid rgba(52,152,219,.18);
}

.report-instructions__icon {
  font-size:1.5rem;
  line-height:1;
}

.report-instructions__list {
  display:grid;
  gap:0.35rem;
  padding-left:1rem;
  list-style:disc;
  margin:0;
}

.report-form {
  display:grid;
  gap:var(--space-xl);
  padding:clamp(var(--space-lg),4vw,var(--space-2xl));
  border-radius:var(--radius);
  border:1px solid rgba(148,163,184,.18);
  box-shadow:var(--shadow);
}

.report-section {
  display:grid;
  gap:var(--space-md);
}

.report-section + .report-section {
  border-top:1px solid var(--border);
  padding-top:var(--space-lg);
}

.report-section__heading h2 {
  margin:0;
  font-size:1.1rem;
}

.report-section__heading p {
  margin:0;
}

.report-section__fields {
  display:grid;
  gap:var(--space-md);
}

.report-security {
  display:flex;
  gap:var(--space-md);
  align-items:flex-start;
  padding:var(--space-md);
  border-radius:var(--radius);
  border:1px solid rgba(46,204,113,.24);
  background:rgba(46,204,113,.1);
}

.report-security__icon {
  font-size:1.4rem;
  line-height:1;
}

.report-actions {
  display:flex;
  gap:var(--space-sm);
  flex-wrap:wrap;
  justify-content:center;
}

.btn-full-md {
  width:100%;
}

@media (min-width:640px) {
  .btn-full-md {
    width:auto;
    min-width:220px;
  }
  .report-actions {
    justify-content:flex-start;
  }
}

.step-card--icon {
  text-align:center;
  gap:var(--space-md);
}

.step-card__icon {
  width:56px;
  height:56px;
  border-radius:50%;
  display:grid;
  place-items:center;
  margin-inline:auto;
  background:rgba(46,204,113,.12);
  font-size:1.5rem;
}

.search-results-grid {
  display:grid;
  gap:var(--space-md);
}

.document-card {
  display:grid;
  gap:0.35rem;
}

.document-card__meta {
  color:var(--muted);
  font-size:0.9rem;
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
}

.masked-name {
  font-size:1.2rem;
  font-weight:700;
}

.loader {
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;
  animation:spin 1s linear infinite;
}

@keyframes spin {
  to { transform:rotate(360deg); }
}

.flash-bridge {
  display:none;
}

.toast-sr {
  position:fixed;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}

.tabular-card {
  display:grid;
  gap:0.5rem;
}

.tabular-card__row {
  display:flex;
  justify-content:space-between;
  gap:var(--space-sm);
  font-size:0.95rem;
  color:var(--muted);
}

.tabular-card__label {
  font-weight:600;
  color:var(--text);
}

@media (max-width:900px) {
  .site-nav__toggle {
    display:flex;
  }
  .site-nav {
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(80vw,320px);
    padding:clamp(var(--space-xl),6vw,var(--space-2xl)) var(--space-lg);
    flex-direction:column;
    align-items:flex-start;
    gap:var(--space-lg);
    background:linear-gradient(190deg, rgba(9,19,38,.95) 0%, rgba(16,36,70,.88) 100%);
    color:#E0F2FE;
    box-shadow:-24px 0 50px rgba(5,12,28,.45);
    border-left:1px solid rgba(94,117,192,.24);
    backdrop-filter:blur(24px);
    transform:translateX(110%);
    transition:transform var(--transition-slow);
    z-index:40;
    pointer-events:none;
  }
  html[data-nav-open="1"] .site-nav {
    transform:translateX(0);
    pointer-events:auto;
  }
  .site-nav__mobile-head,
  .site-nav__subtitle {
    display:flex;
    width:100%;
  }
  .site-nav__mobile-head {
    align-items:center;
    justify-content:space-between;
    gap:var(--space-sm);
  }
  .site-nav__subtitle {
    display:block;
    margin-top:-0.25rem;
    color:rgba(204,212,230,.85);
    font-size:0.9rem;
    line-height:1.4;
  }
  .site-nav__links {
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:var(--space-md);
    padding:10px 15px 20px;
    margin:-60px 0 0;
  }
  .site-nav__link {
    width:100%;
    padding:0.85rem 1rem;
    border:none;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(15,36,68,.72) 0%, rgba(20,46,86,.58) 100%);
    border:1px solid rgba(94,117,192,.32);
    color:#E0F2FE;
    box-shadow:0 16px 40px rgba(5,15,35,.38);
    backdrop-filter:blur(12px);
    transition:transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition);
    gap:0.75rem;
  }
  .site-nav__link::before {
    content:"";
    width:6px;
    height:20px;
    border-radius:999px;
    background:rgba(94,117,192,.38);
  }
  .site-nav__link:last-child {
    border-bottom:none;
  }
  .site-nav__close {
    display:grid;
    place-items:center;
    font-size:1.8rem;
    width:44px;
    height:44px;
    border-radius:12px;
    background:rgba(10,24,48,.5);
    border:1px solid rgba(94,117,192,.3);
    box-shadow:0 10px 24px rgba(5,15,35,.3);
    transition:background var(--transition), border-color var(--transition), transform var(--transition);
    color:#E0F2FE;
  }
  .site-nav__overlay {
    display:block;
  }
  html[data-nav-open="1"] .site-nav__overlay {
    opacity:1;
    pointer-events:auto;
  }
  .site-nav__link:hover {
    transform:translateY(-3px);
    background:linear-gradient(135deg, rgba(56,189,248,.22), rgba(129,140,248,.18));
    border-color:rgba(129,140,248,.45);
    color:#F8FAFC;
  }
  .site-nav__link.is-active {
    background:linear-gradient(135deg, rgba(56,189,248,.35), rgba(129,140,248,.3));
    border-color:rgba(129,140,248,.55);
    box-shadow:0 22px 48px rgba(10,28,64,.55);
    color:#F8FAFC;
  }
  .site-nav__link.is-active::before {
    background:linear-gradient(180deg,#38BDF8 0%,#818CF8 100%);
  }
  .site-nav__close:hover {
    background:rgba(56,189,248,.22);
    border-color:rgba(129,140,248,.45);
    transform:translateY(-2px);
  }
}

@media (max-width:768px) {
  .container {
    padding-inline:var(--space-md);
  }
  .site-header {
    backdrop-filter:blur(14px);
  }
  .hero__inner {
    text-align:center;
  }
  .hero__lead {
    margin-inline:auto;
  }
  .hero__actions,
  .cta-actions {
    justify-content:center;
  }
  .search-bar {
    padding:var(--space-lg);
  }
  .stats-grid {
    grid-template-columns:1fr 1fr;
  }
  .toaster {
    inset-inline:var(--space-md);
    max-width:calc(100% - 2*var(--space-md));
    bottom:var(--space-md);
    margin-left: 43%;
  }
  .toaster[data-position="top-right"] {
    inset:var(--space-md) var(--space-md) auto var(--space-md);
  }
  .admin-table-wrapper .record-card {
    display:grid;
  }
}

@media (min-width:640px) {
  .hero__inner {
    grid-template-columns:minmax(0,1fr);
  }
  .search-bar {
    flex-direction:row;
    align-items:center;
  }
  .search-bar input {
    flex:1;
  }
  .search-bar .btn {
    width:auto;
  }
}

@media (min-width:768px) {
  .hero__inner {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .hero__inner > *:last-child {
    justify-self:end;
  }
  .search-results-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .report-grid {
    grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
    gap:var(--space-xl);
  }
  .stats-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .cta-card {
    grid-template-columns:1fr auto;
    align-items:center;
  }
}

@media (min-width:1024px) {
  .search-results-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .report-grid {
    grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  }
  .admin-toolbar {
    flex-direction:row;
    justify-content:space-between;
    align-items:flex-end;
  }
  .admin-toolbar .filter-grid {
    flex:1;
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
  .admin-table-wrapper .record-card {
    display:none;
  }
  .toaster {
    right:clamp(var(--space-xl),6vw,calc((100vw-1160px)/2 + var(--space-md)));
    left:auto;
  }
  .toaster[data-position="top-right"] {
    top:var(--space-xl);
  }
}

.camera-trigger-only-mobile {
  display:none;
}

@media (max-width:1199px) {
  .camera-trigger-only-mobile {
    display:inline-flex;
  }
}

@media (min-width:1280px) {
  .hero__inner {
    gap:var(--space-2xl);
  }
  .search-results-grid {
    gap:var(--space-lg);
  }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:1ms !important;
    animation-iteration-count:1 !important;
    transition-duration:1ms !important;
    scroll-behavior:auto !important;
  }
}

.portal-shell {
  background:var(--bg,#f7f9fb);
}

.portal-mobile-header {
  display:none;
  align-items:center;
  justify-content:space-between;
  padding:var(--space-lg);
  background:#0f172a;
  color:#fff;
  gap:var(--space-md);
}

.portal-mobile-header__brand {
  font-weight:700;
  font-size:1rem;
  color:#fff;
  text-decoration:none;
}

.portal-sidebar-toggle {
  display:flex;
  align-items:center;
  gap:var(--space-sm);
  padding:0.55rem 0.85rem;
  border:1px solid rgba(255,255,255,.32);
  border-radius:var(--radius-md,12px);
  color:inherit;
  font-weight:600;
  background:rgba(255,255,255,.06);
  cursor:pointer;
  transition:background var(--transition,.2s ease), border-color var(--transition,.2s ease);
}

.portal-sidebar-toggle:hover,
.portal-sidebar-toggle:focus-visible {
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.5);
}

.portal-sidebar-toggle__icon {
  display:inline-flex;
  flex-direction:column;
  gap:0.25rem;
}

.portal-sidebar-toggle__icon span {
  width:18px;
  height:2px;
  background:currentColor;
  border-radius:999px;
  transform-origin:center;
  transition:transform var(--transition,.2s ease), opacity var(--transition,.2s ease);
}

.portal-sidebar-toggle__label {
  font-size:0.95rem;
}

.portal-sidebar-overlay {
  display:none;
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.5);
  opacity:0;
  transition:opacity var(--transition,.2s ease);
  z-index:35;
}

.portal-layout {
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

@media (min-width:960px) {
  .portal-layout {
    flex-direction:row;
  }
}

.portal-sidebar {
  background:#0f172a;
  color:#fff;
  padding:var(--space-xl) clamp(var(--space-lg),4vw,var(--space-2xl));
  display:flex;
  flex-direction:column;
  gap:var(--space-lg);
}

.portal-brand a {
  font-weight:700;
  font-size:1.1rem;
  color:#fff;
  text-decoration:none;
}

.portal-nav {
  display:grid;
  gap:0.5rem;
}

.portal-nav__link {
  display:block;
  padding:0.65rem 0.75rem;
  border-radius:var(--radius-md,12px);
  color:rgba(255,255,255,.72);
  text-decoration:none;
  transition:background var(--transition,.2s ease), color var(--transition,.2s ease);
}

.portal-nav__link:hover,
.portal-nav__link.is-active {
  background:rgba(255,255,255,.14);
  color:#fff;
}

.portal-main {
  flex:1;
  padding:clamp(var(--space-lg),5vw,var(--space-2xl));
}

.btn-block {
  display:inline-flex;
  width:100%;
  justify-content:center;
}

.mt-auto { margin-top:auto; }

.portal-section + .portal-section {
  margin-top:var(--space-xl);
}

.portal-section__header {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-md);
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:var(--space-md);
}

.portal-title {
  font-size:1.8rem;
  margin:0;
}

.portal-title-sm {
  margin:0;
  font-size:1.35rem;
}

.portal-actions {
  display:flex;
  gap:var(--space-sm);
  align-items:center;
}

.portal-grid {
  display:grid;
  gap:var(--space-md);
}

.portal-grid--cards {
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.portal-grid--shortcuts {
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.portal-grid--detail {
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  align-items:start;
}

.portal-detail-card {
  display:flex;
  flex-direction:column;
  gap:var(--space-lg);
}

.portal-badge-group {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
  align-items:center;
}

.report-fields {
  display:grid;
  gap:var(--space-sm);
  margin:0;
}

.report-fields__item {
  display:flex;
  flex-direction:column;
  gap:0.25rem;
}

.report-fields dt {
  margin:0;
  font-size:0.8rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--muted);
}

.report-fields dd {
  margin:0;
  font-weight:600;
  line-height:1.45;
  color:var(--text);
}

.report-meta {
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
  padding-top:var(--space-sm);
  border-top:1px solid rgba(148,163,184,.18);
}

.report-meta__title {
  margin:0;
  font-size:0.85rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--muted);
}

.report-meta__list {
  display:grid;
  gap:var(--space-sm);
  margin:0;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
}

.report-meta__item {
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  padding:var(--space-xs);
  background:rgba(241,245,249,.45);
  border-radius:var(--radius-sm,8px);
}

@media (max-width:959px) {
  .portal-shell.portal-sidebar-open {
    overflow:hidden;
  }

  .portal-layout {
    position:relative;
  }

  .portal-mobile-header {
    display:flex;
    position:sticky;
    top:0;
    z-index:40;
  }

  .portal-sidebar {
    position:fixed;
    inset:0 auto 0 0;
    width:min(280px,82vw);
    max-width:320px;
    transform:translateX(-100%);
    transition:transform var(--transition,.2s ease);
    z-index:50;
    box-shadow:var(--shadow);
    overflow-y:auto;
  }

  .portal-layout.portal-sidebar-open .portal-sidebar {
    transform:translateX(0);
  }

  .portal-layout.portal-sidebar-open .portal-sidebar-overlay {
    display:block;
    opacity:1;
  }

  .portal-layout.portal-sidebar-open .portal-sidebar-toggle__icon span:nth-child(1) {
    transform:translateY(6px) rotate(45deg);
  }

  .portal-layout.portal-sidebar-open .portal-sidebar-toggle__icon span:nth-child(2) {
    opacity:0;
  }

  .portal-layout.portal-sidebar-open .portal-sidebar-toggle__icon span:nth-child(3) {
    transform:translateY(-6px) rotate(-45deg);
  }

  .portal-main {
    padding-top:var(--space-lg);
  }
}

.report-meta__item dt {
  margin:0;
  font-size:0.8rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--muted);
}

.report-meta__item dd {
  margin:0;
  font-weight:600;
}

.card--media,
.card--timeline {
  display:flex;
  flex-direction:column;
  gap:var(--space-md);
}

.report-photo {
  width:100%;
  max-height:420px;
  border-radius:var(--radius-md,12px);
  border:1px solid rgba(148,163,184,.22);
  background:#f8fafc;
  object-fit:cover;
}

.timeline {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:var(--space-md);
}

.timeline__item {
  position:relative;
  padding-left:2.5rem;
}

.timeline__item::before {
  content:"";
  position:absolute;
  left:0.7rem;
  top:1.6rem;
  bottom:-var(--space-sm);
  width:2px;
  background:rgba(148,163,184,.18);
}

.timeline__item:last-child::before {
  display:none;
}

.timeline__bullet {
  position:absolute;
  left:0;
  top:0.25rem;
  width:1.2rem;
  height:1.2rem;
  border-radius:999px;
  border:2px solid rgba(148,163,184,.4);
  background:#fff;
  transition:all var(--transition);
}

.timeline__body {
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}

.timeline__title {
  margin:0;
  font-weight:600;
  color:var(--text);
}

.timeline__text {
  margin:0;
  color:var(--muted);
  font-size:0.95rem;
}

.timeline__date {
  margin:0;
}

.timeline__item--done .timeline__bullet {
  background:var(--success-soft);
  border-color:var(--success);
}

.timeline__item--done .timeline__title {
  color:var(--success);
}

.timeline__item--current .timeline__bullet {
  background:var(--primary);
  border-color:var(--primary-dark);
  box-shadow:0 0 0 4px rgba(46,204,113,.16);
}

.timeline__item--current .timeline__title,
.timeline__item--current .timeline__text {
  color:var(--primary-dark);
}

.timeline__item--code-rejected.timeline__item--current .timeline__bullet {
  background:var(--danger);
  border-color:var(--danger);
  box-shadow:0 0 0 4px rgba(220,38,38,.2);
}

.timeline__item--code-rejected.timeline__item--current .timeline__title,
.timeline__item--code-rejected.timeline__item--current .timeline__text {
  color:var(--danger);
}

.cards-grid {
  display:grid;
  gap:var(--space-md);
}

.cards-grid--summary {
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}

.summary-card {
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.summary-card__header {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
}

.summary-card__title {
  margin:0;
  font-size:1rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--muted);
}

.summary-card__value {
  margin:0;
  font-size:clamp(2.2rem,4vw,3rem);
  font-weight:700;
  line-height:1.1;
}

.summary-card__unit {
  font-size:1.1rem;
  font-weight:600;
  margin-left:0.25rem;
}

.summary-card__hint {
  margin:0;
  font-size:0.9rem;
  color:var(--muted);
}

.summary-card__note {
  margin:0;
  font-size:0.85rem;
  color:var(--secondary-dark);
}

.badges-grid {
  display:grid;
  gap:var(--space-md);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.badge-card {
  display:flex;
  gap:var(--space-md);
  align-items:flex-start;
  padding:var(--space-md);
  border:1px solid rgba(148,163,184,.18);
  border-radius:var(--radius-md,12px);
  background:#fff;
}

.badge-card__icon {
  font-size:2rem;
  line-height:1;
}

.badge-card__body {
  display:flex;
  flex-direction:column;
  gap:0.25rem;
}

.badge-card__title {
  margin:0;
  font-size:1.05rem;
  font-weight:600;
}

.badge-card__meta {
  margin:0;
}

.filter-bar--rewards {
  margin-bottom:var(--space-lg);
}

.filter-bar--rewards .filter-bar__group label {
  font-size:0.85rem;
  color:var(--muted);
}

.rewards-table__points {
  font-weight:700;
}

.event-meta {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0.25rem;
}

.event-meta li {
  font-size:0.9rem;
  color:var(--text);
}

.event-meta li span {
  font-weight:600;
  color:var(--muted);
  margin-right:0.35rem;
}

.settings-grid {
  display:grid;
  gap:var(--space-lg);
}

.settings-card {
  background:var(--card);
  border:1px solid rgba(148,163,184,.18);
  border-radius:var(--radius-md,12px);
  padding:clamp(var(--space-lg),3vw,var(--space-xl));
  display:flex;
  flex-direction:column;
  gap:var(--space-md);
  box-shadow:var(--shadow-sm);
}

.settings-card__title {
  margin:0;
  font-size:1.2rem;
}

.section__subtitle {
  margin:0 0 var(--space-sm) 0;
  font-size:1.05rem;
  font-weight:600;
}

.avatar-preview {
  display:flex;
  align-items:center;
  gap:var(--space-sm);
  padding:var(--space-sm);
  border:1px dashed rgba(148,163,184,.3);
  border-radius:var(--radius-md,12px);
  background:rgba(241,245,249,.4);
}

.avatar-preview img {
  width:80px;
  height:80px;
  object-fit:cover;
  border-radius:50%;
  border:2px solid rgba(148,163,184,.4);
}

.field--inline {
  display:flex;
  gap:var(--space-md);
  align-items:center;
  padding:var(--space-sm);
  border:1px solid rgba(148,163,184,.18);
  border-radius:var(--radius-md,12px);
  background:rgba(248,250,252,.6);
}

.field__meta {
  display:flex;
  flex-direction:column;
  gap:0.2rem;
}

.field__meta .field__label {
  margin:0;
  font-weight:600;
}

.field__meta .field__hint {
  margin:0;
  color:var(--muted);
  font-size:0.85rem;
}

.switch {
  position:relative;
  display:inline-flex;
  width:52px;
  height:28px;
}

.switch input {
  opacity:0;
  width:0;
  height:0;
}

.switch__slider {
  position:absolute;
  cursor:pointer;
  inset:0;
  background:rgba(148,163,184,.4);
  border-radius:999px;
  transition:background var(--transition);
}

.switch__slider::before {
  content:"";
  position:absolute;
  height:22px;
  width:22px;
  left:3px;
  top:3px;
  background:#fff;
  border-radius:50%;
  box-shadow:0 2px 6px rgba(15,23,42,.15);
  transition:transform var(--transition);
}

.switch input:checked + .switch__slider {
  background:var(--primary);
}

.switch input:checked + .switch__slider::before {
  transform:translateX(24px);
}

@media (max-width:640px) {
  .field--inline {
    flex-direction:column;
    align-items:flex-start;
  }
}

.error-page {
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,rgba(46,204,113,.08),rgba(52,152,219,.08));
  font-family:var(--font-sans);
}

.error-page__container {
  text-align:center;
  background:#fff;
  padding:clamp(2rem,4vw,3rem);
  border-radius:var(--radius-md,18px);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.error-page__actions {
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
}

@media (min-width:768px) {
  .settings-grid {
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  }
}

.card__value {
  font-size:clamp(1.8rem,3vw,2.6rem);
  margin:0;
  font-weight:700;
}

.card__title {
  margin:0;
  font-size:1.3rem;
}

.badge-secondary { background:rgba(52,152,219,.12); color:#246fa5; }
.badge-ghost { background:rgba(15,23,42,.08); color:#475569; }
.badge-soft { background:rgba(148,163,184,.18); color:#475569; }

.activity-list {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:var(--space-sm);
}

.activity-list__item {
  display:flex;
  align-items:center;
  gap:var(--space-md);
  padding:var(--space-sm);
  border:1px solid rgba(148,163,184,.16);
  border-radius:var(--radius-md,12px);
  background:#fff;
}

.activity-list__icon {
  font-size:1.5rem;
  flex-shrink:0;
}

.activity-list__content {
  flex:1;
}

.activity-list__title {
  margin:0 0 0.25rem 0;
  font-weight:600;
}

.activity-list__link {
  color:var(--primary,#2ecc71);
  text-decoration:none;
  font-weight:600;
}

.portal-grid--shortcuts .card {
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
}

.portal-grid--shortcuts .btn {
  align-self:flex-start;
}

.empty-state {
  padding:var(--space-lg);
  border:1px dashed rgba(148,163,184,.32);
  border-radius:var(--radius-md,12px);
  background:rgba(241,245,249,.6);
}

.filter-bar {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
  margin-bottom:var(--space-lg);
}

.filter-bar__group {
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}

.responsive-table table {
  width:100%;
  border-collapse:collapse;
}

.responsive-table th,
.responsive-table td {
  padding:0.75rem;
  text-align:left;
  border-bottom:1px solid rgba(148,163,184,.14);
}

@media (max-width:640px) {
  .cards-grid--summary {
    grid-template-columns:1fr;
  }

  .badge-card {
    flex-direction:row;
  }

  .badge-card__icon {
    font-size:2.4rem;
  }

  .responsive-table table,
  .responsive-table thead,
  .responsive-table tbody,
  .responsive-table th,
  .responsive-table td,
  .responsive-table tr {
    display:block;
  }
  .responsive-table thead { display:none; }
  .responsive-table tr {
    margin-bottom:var(--space-sm);
    border:1px solid rgba(148,163,184,.2);
    border-radius:var(--radius-md,12px);
    background:#fff;
    padding:var(--space-sm);
  }
  .responsive-table td {
    border:none;
    padding:0.35rem 0;
  }
  .responsive-table td::before {
    content:attr(data-label);
    display:block;
    font-weight:600;
    color:var(--muted);
    margin-bottom:0.15rem;
  }
}
.settings-subnav {
  display:flex;
  gap:1rem;
  margin-bottom:var(--space-lg);
  flex-wrap:wrap;
}

.settings-subnav a {
  color:var(--muted);
  text-decoration:none;
  padding:0.35rem 0.75rem;
  border-radius:999px;
  background:rgba(148,163,184,.15);
  font-weight:600;
}

.settings-subnav a.is-active {
  background:var(--primary);
  color:#fff;
}
