.glass, .glass-card, .card {
  border: 1px solid var(--stroke);
  border-radius: var(--radius-lg);
  background: var(--glass);
  box-shadow: var(--shadow-soft);
  -webkit-backdrop-filter: blur(26px) saturate(155%);
  backdrop-filter: blur(26px) saturate(155%);
}
.glass-card, .card { padding: 20px; }
.section { margin-top: 30px; }
.compact-section { margin-top: 25px; }
.section-heading, .section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 0 2px 13px; }
.section-heading h2, .section-title h2 { margin: 2px 0 0; font-size: 21px; line-height: 1.18; letter-spacing: -.55px; }
.section-title a { color: var(--accent); font-size: 14px; font-weight: 680; }

.primary-action, .secondary-action, .button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 20px;
  border: 0;
  border-radius: 18px;
  font-weight: 720;
  text-align: center;
  transition: transform .16s ease, filter .16s ease;
}
.primary-action, .button.primary { color: #fff; background: var(--accent); box-shadow: none; }
.primary-action.warm { background: var(--coral); box-shadow: none; }
.secondary-action, .button, .button.secondary { border: 1px solid var(--hairline); background: var(--field); box-shadow: none; }
.button.primary { border-color: transparent; }
.primary-action:active, .secondary-action:active, .button:active { transform: scale(.98); filter: brightness(.97); }
.button.danger { color: var(--danger); background: rgba(217,69,85,.1); box-shadow: none; }
.primary-action > svg { width: 20px; height: 20px; }
.block { width: 100%; }

.pill, .badge, .count-badge { display: inline-flex; min-height: 28px; align-items: center; padding: 0 11px; border-radius: 999px; color: var(--accent); background: var(--accent-soft); font-size: 12px; font-style: normal; font-weight: 720; }
.soft-icon, .row-icon, .empty-icon { display: grid; place-items: center; flex: 0 0 auto; width: 48px; height: 48px; border-radius: 16px; color: var(--accent); background: var(--accent-soft); }
.soft-icon.small, .row-icon { width: 40px; height: 40px; border-radius: 13px; }
.soft-icon svg, .row-icon svg { width: 22px; height: 22px; }
.leading { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 14px; color: var(--accent); background: var(--accent-soft); font-weight: 760; }
.leading svg { width: 21px; height: 21px; }

.form-stack, .stack { display: grid; gap: 17px; }
label { display: grid; gap: 7px; color: var(--ink); font-size: 13px; font-weight: 650; }
label > span { color: var(--faint); font-weight: 500; }
input, textarea, select {
  width: 100%;
  min-height: 52px;
  padding: 13px 15px;
  border: 1px solid var(--hairline);
  outline: none;
  border-radius: 15px;
  background: var(--field);
  font-size: 16px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
textarea { min-height: 92px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: rgba(8,123,245,.52); box-shadow: 0 0 0 4px var(--accent-soft); }
fieldset { margin: 0; padding: 0; border: 0; }
legend { margin-bottom: 8px; font-size: 13px; font-weight: 650; }
.switch-row { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 20px; }
.switch-row span { display: grid; gap: 2px; color: var(--ink); }
.switch-row small { color: var(--muted); font-size: 12px; font-weight: 500; }
.switch-row input { position: relative; width: 51px; min-height: 31px; height: 31px; padding: 0; border: 0; border-radius: 20px; appearance: none; background: rgba(120,130,145,.26); transition: background .2s ease; }
.switch-row input::after { position: absolute; width: 27px; height: 27px; top: 2px; left: 2px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.2); content: ""; transition: transform .2s ease; }
.switch-row input:checked { background: var(--accent); }
.switch-row input:checked::after { transform: translateX(20px); }

.toast { margin: 0 0 16px; padding: 13px 15px; border: 1px solid var(--stroke); border-radius: 16px; background: var(--glass-strong); box-shadow: var(--shadow-soft); font-size: 14px; }
.toast.error { color: var(--danger); }
.toast.success { color: var(--success); }
.feedback { margin-top: 16px; padding: 15px; border-radius: 16px; background: var(--accent-soft); }
.feedback.success { color: var(--success); background: rgba(24,138,99,.12); }
.feedback.error { color: var(--danger); background: rgba(217,69,85,.11); }
.feedback strong { display: block; font-size: 17px; }
.feedback p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.hidden, [hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.choice-list { overflow: hidden; padding: 0; }
.choice-list > a, .choice-list > details > summary { display: flex; min-height: 60px; align-items: center; gap: 13px; padding: 10px 15px; border-bottom: 1px solid var(--hairline); }
.choice-list > a:last-child, .choice-list > details:last-child > summary { border-bottom: 0; }
.choice-list > a > span:not(.row-icon) { display: grid; flex: 1; gap: 2px; }
.choice-list > a > span > small { color: var(--muted); font-size: 12px; }
.choice-list > a > svg, .choice-list summary > svg { width: 18px; color: var(--faint); }
details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
details[open] > summary > svg:last-child { transform: rotate(90deg); }
.details-content { padding: 5px 16px 18px; }

.stats-row, .profile-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.stat-card { display: grid; gap: 3px; padding: 15px; border: 1px solid var(--stroke); border-radius: 18px; background: var(--glass); }
.stat-card strong { font-size: 22px; }
.stat-card span { color: var(--muted); font-size: 11px; }
.meter { height: 5px; overflow: hidden; border-radius: 99px; background: rgba(120,130,145,.18); }
.meter i { display: block; height: 100%; border-radius: inherit; background: var(--accent); transition: width .35s ease; }

.list { overflow: hidden; border: 1px solid var(--stroke); border-radius: var(--radius-lg); background: var(--glass); }
.list-item { display: flex; min-height: 62px; align-items: center; gap: 12px; padding: 10px 15px; border-bottom: 1px solid var(--hairline); }
.list-item:last-child { border-bottom: 0; }
.list-item .content { display: grid; flex: 1; }
.list-item .content span { color: var(--muted); font-size: 12px; }
.admin-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.admin-actions .card { min-height: 150px; }
.admin-actions h3 { margin: 14px 0 4px; }
.admin-actions p { margin: 0; color: var(--muted); font-size: 13px; }
.admin-list { display: grid; gap: 8px; margin-top: 16px; }
.admin-list .list-item { border: 1px solid var(--stroke); border-radius: 16px; background: var(--glass); }
.notice { margin-bottom: 16px; }
.notice p { margin-bottom: 0; color: var(--muted); }
.filter-bar { display: flex; align-items: end; gap: 10px; margin-bottom: 14px; }
.filter-bar label { flex: 1; }
.grid { display: grid; gap: 12px; }
.grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }

@media (max-width: 390px) {
  .grid.two { grid-template-columns: 1fr; }
  .admin-actions { grid-template-columns: 1fr; }
  .filter-bar { align-items: stretch; flex-direction: column; }
  .glass-card, .card { padding: 18px; }
}
