/* EL CLAN · Sistema visual compartido.
   Orden: shared.css → login.css → citas.css (en la pantalla de citas).
   Los iconos SVG están incluidos al final: no requieren fuentes ni CDN. */
:root {
  color-scheme: light;
  font-family: Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 100%;
  color: #1e293b;
  background: #f4f6f8;
  --clan-red: #d52b2b;
  --clan-red-hover: #bb2222;
  --clan-red-soft: #fff1f1;
  --clan-dark: #1e2329;
  --clan-slate: #303843;
  --clan-amber: #f59e0b;
  --clan-green: #10b981;
  --text: #1e293b;
  --muted: #64748b;
  --line: #e2e8f0;
  --surface: #fff;
  --surface-soft: #f8fafc;
  --radius: 24px;
  --radius-control: 12px;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --fast: 180ms;
  --normal: 300ms;
  --shadow: 0 3px 8px #1e293b03, 0 18px 55px -24px #1e293b30;
}

*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  min-width: 0;
  min-height: 100vh;
  min-height: 100svh;
  line-height: 1.5;
  background-color: #f4f6f8;
  background-image: radial-gradient(ellipse at 5% 0%, #d52b2b08, transparent 45%),
    radial-gradient(#94a3b821 .8px, transparent .8px);
  background-size: auto, 24px 24px;
  -webkit-font-smoothing: antialiased;
}
[hidden] { display: none !important; }
::selection { color: #851b1b; background: #fbd1d1; }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
a { color: var(--clan-red-hover); text-underline-offset: 4px; }
a:focus-visible, button:focus-visible {
  outline: 3px solid var(--clan-red);
  outline-offset: 4px;
}
h1, h2, h3 { color: var(--text); line-height: 1.2; overflow-wrap: anywhere; }
h1 { margin: 0 0 10px; font-size: clamp(1.8rem, 3.1vw, 2.3rem); letter-spacing: -.045em; font-weight: 750; }
h2 { margin: 0 0 10px; font-size: clamp(1.4rem, 2.5vw, 1.7rem); letter-spacing: -.03em; }
h3 { margin: 0 0 8px; font-size: 1.125rem; }
p { margin: 0 0 22px; color: var(--muted); line-height: 1.65; overflow-wrap: anywhere; }
.eyebrow { margin: 0 0 9px; color: var(--muted); font-size: .75rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.hint { margin: 9px 0 0; font-size: .875rem; line-height: 1.6; }
.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;
}
.skip-link { position: absolute; top: -100px; left: 16px; z-index: 20; padding: 12px 18px; border-radius: 8px; background: white; }
.skip-link:focus { top: 12px; }

/* Columnas laterales iguales: el logo permanece en el centro geométrico. */
.site-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 100px;
  padding: 16px max(24px, calc((100% - 1184px) / 2));
  color: #fff;
  background: linear-gradient(115deg, var(--clan-dark), var(--clan-slate));
  border-bottom: 3px solid var(--clan-red);
  box-shadow: 0 8px 24px #0f172a15;
  position: relative;
  z-index: 2;
}
.header-start, .header-end { display: flex; align-items: center; gap: 12px; min-width: 0; }
.header-end { justify-content: flex-end; justify-self: end; }
.header-start strong { display: block; font-size: .9375rem; font-weight: 650; }
.header-start small { display: block; margin-top: 2px; color: #c3cbd5; font-size: .75rem; }
.header-icon { display: grid; place-items: center; flex-shrink: 0; width: 40px; height: 40px; border: 1px solid #ffffff26; border-radius: 12px; color: #fff; background: #ffffff08; }
.header-note { display: inline-flex; align-items: center; gap: 8px; color: #d6dde6; font-size: .8125rem; }
.brand {
  display: grid;
  place-items: center;
  justify-self: center;
  width: clamp(240px, 26vw, 310px);
  min-height: 46px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  text-decoration: none;
}
.brand-logo { display: block; width: 100%; max-width: none; height: auto; max-height: none; object-fit: contain; object-position: center; margin-inline: auto; }
.brand-fallback { color: var(--clan-dark); font-size: 1.6rem; font-weight: 850; letter-spacing: -.04em; line-height: 1.3; }
.site-header .brand-fallback { color: #fff; }
.brand-fallback b { color: var(--clan-red); font-weight: inherit; }
.site-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 16px; padding: 0 20px 24px; color: var(--muted); font-size: .75rem; text-align: center; }
.site-footer strong { color: var(--text); font-weight: 700; }

main { width: min(100% - 40px, 480px); margin: clamp(32px, 7vh, 80px) auto; }
.wide { width: min(100% - 40px, 1144px); }
.card { position: relative; min-width: 0; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); animation: entrada 550ms var(--ease) both; }
.card::before { content: ""; position: absolute; top: -1px; left: 30px; right: 30px; height: 3px; border-radius: 0 0 4px 4px; background: linear-gradient(90deg, var(--clan-red), #e05e5e); }
.section-heading { display: flex; align-items: center; gap: 16px; min-width: 0; }
.section-heading > div:last-child { min-width: 0; }
.section-icon, .modal-icon { display: grid; place-items: center; flex: 0 0 auto; width: 54px; height: 54px; color: var(--clan-red); background: var(--clan-red-soft); border: 1px solid #f8dcdc; border-radius: 16px; }
.section-icon .icon, .modal-icon .icon { width: 25px; height: 25px; }

/* Controles, teclado, táctil y estados de validación. */
label { display: block; margin: 22px 0 9px; color: var(--text); font-size: .875rem; font-weight: 650; }
.label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.label-row > span { color: var(--muted); font-size: .75rem; }
input, select, textarea {
  width: 100%; min-width: 0; min-height: 52px;
  padding: 13px 15px; border: 1px solid #cfd7e2; border-radius: var(--radius-control);
  background: var(--surface-soft); color: var(--text); font-size: 1rem; line-height: 1.5;
  transition: border-color var(--fast) ease, box-shadow var(--fast) ease, background-color var(--fast) ease;
}
input::placeholder, textarea::placeholder { color: #718096; opacity: 1; }
input:hover:not(:disabled), select:hover:not(:disabled), textarea:hover:not(:disabled) { border-color: #9caabc; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--clan-red); background: white; box-shadow: 0 0 0 4px #d52b2b14; }
input:user-invalid, select:user-invalid, textarea:user-invalid { border-color: #c62828; background-color: #fff8f8; }
input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: .65; }
input[type="date"], input[type="time"] { font-variant-numeric: tabular-nums; }
.input-wrap { position: relative; }
.input-wrap > .icon { position: absolute; left: 16px; top: 26px; transform: translateY(-50%); color: var(--muted); pointer-events: none; transition: color var(--fast) ease; }
.input-wrap > input, .input-wrap > select { padding-left: 47px; }
.input-wrap:focus-within > .icon { color: var(--clan-red); }
.password-wrap > input { padding-right: 60px; }
button, .button-link {
  position: relative; display: inline-flex; justify-content: center; align-items: center; gap: 9px;
  min-height: 48px; max-width: 100%; padding: 12px 18px; border: 1px solid transparent;
  border-radius: var(--radius-control); font-size: .9375rem; font-weight: 650; line-height: 1.4;
  cursor: pointer; text-decoration: none;
  transition: background-color var(--fast) ease, border-color var(--fast) ease, color var(--fast) ease,
    box-shadow var(--normal) var(--ease), transform var(--normal) var(--ease);
}
button:active:not(:disabled), .button-link:active { transform: translateY(0) scale(.98); }
button:disabled { opacity: .56; cursor: not-allowed; box-shadow: none; transform: none; }
button[aria-busy="true"] { cursor: progress; }
.primary { width: 100%; margin-top: 24px; color: #fff; background: var(--clan-red); border-color: #bc2727; box-shadow: 0 6px 14px #d52b2b22, inset 0 1px 0 #ffffff1f; }
.secondary { background: #f1f4f8; border-color: var(--line); color: #334155; box-shadow: 0 1px 2px #0f172a04; }
.salir { min-height: 44px; color: #fff; background: #ffffff0d; border: 1px solid #ffffff35; font-size: .875rem; }
.salir:focus-visible { outline-color: #fff; }
.icon-button { display: inline-flex; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 9px; background: transparent; color: var(--muted); }
.password-toggle { position: absolute; top: 4px; right: 5px; margin: 0; }
.password-toggle[aria-pressed="true"] { color: var(--clan-red); background: var(--clan-red-soft); }
.actions { display: flex; gap: 12px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.actions button { flex: 1; margin: 0; }

/* Los pseudo-elementos conservan el icono cuando JavaScript actualiza textContent. */
.icon, button[data-icon]::before, #salir::before, #buscar::before, #todas::before,
#nueva::before, #continuar::before, #guardar::before, #cancelar::before,
.confirmar::before, .badge::before, .vacio::before, .error:not(:empty)::before,
.mensaje:not(:empty)::before, .aviso::before {
  display: inline-block; flex: 0 0 auto; width: 20px; height: 20px;
  background-color: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}
button[data-icon]::before, #salir::before, #buscar::before, #todas::before,
#nueva::before, #continuar::before, #guardar::before, #cancelar::before,
.confirmar::before, .badge::before, .vacio::before, .error:not(:empty)::before,
.mensaje:not(:empty)::before, .aviso::before { content: ""; }
#salir { --icon: var(--icon-logout); }
#buscar { --icon: var(--icon-search); }
#todas { --icon: var(--icon-list); }
#nueva { --icon: var(--icon-plus); }
#continuar { --icon: var(--icon-arrow-right); flex-direction: row-reverse; }
#guardar { --icon: var(--icon-check); }
#cancelar { --icon: var(--icon-arrow-left); }
.confirmar { --icon: var(--icon-pin); }
button[aria-busy="true"]::before {
  content: ""; flex: 0 0 auto; width: 18px; height: 18px; background: none;
  -webkit-mask: none; mask: none; border: 2px solid currentColor; border-right-color: transparent;
  border-radius: 50%; animation: giro 800ms linear infinite;
}

/* Mensajes: no se reserva espacio para elementos vacíos. */
.error:empty, .mensaje:empty { display: none; }
.error, .mensaje, .aviso {
  position: relative; padding: 14px 16px 14px 45px; margin: 16px 0 0; border: 1px solid var(--line);
  border-radius: 12px; font-size: .875rem; line-height: 1.65; overflow-wrap: anywhere;
}
.error { --icon: var(--icon-alert); color: #b42323; background: #fff2f2; border-color: #f8d5d5; white-space: pre-line; }
.mensaje { --icon: var(--icon-info); background: #f1f5f9; color: #334155; }
.mensaje.error { --icon: var(--icon-alert); color: #b42323; background: #fff2f2; border-color: #f8d5d5; }
.aviso { --icon: var(--icon-info); background: #fffbeb; border-color: #f7dfa5; color: #92400e; }
.error:not(:empty)::before, .mensaje:not(:empty)::before, .aviso::before { position: absolute; top: 16px; left: 15px; width: 18px; height: 18px; }

/* Los diálogos nativos conservan foco, Escape y semántica de modal. */
dialog {
  width: min(100% - 32px, 480px); max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px);
  margin: auto; padding: 32px; border: 1px solid #e2e8f0; border-radius: 24px;
  background: white; color: var(--text); box-shadow: 0 30px 100px #0f172a40;
  overflow: auto; overscroll-behavior: contain;
}
dialog:not([open]) { display: none; }
dialog[open] { animation: modal-entrada 350ms var(--ease) both; }
dialog::backdrop { background: #111820a8; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
dialog[open]::backdrop { animation: fundido 220ms ease-out both; }
body:has(dialog[open]) { overflow: hidden; }
.modal-heading { display: flex; align-items: center; gap: 15px; margin-bottom: 24px; }
.modal-heading > div:last-child { min-width: 0; }
.modal-heading h2 { margin-bottom: 5px; }
.modal-heading p { margin: 0; font-size: .875rem; }
.modal-heading .eyebrow { margin: 0 0 7px; font-size: .75rem; }
.badge { --icon: var(--icon-clock); display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid #f4deb1; border-radius: 999px; background: #fffbeb; color: #92400e; font-size: .875rem; font-weight: 650; line-height: 1.5; }
.badge::before { width: 17px; height: 17px; }
.vacio { --icon: var(--icon-calendar); margin: 22px 0 4px; padding: 48px 20px; text-align: center; border: 1px dashed #cbd5e1; border-radius: 18px; background: linear-gradient(180deg, #f8fafc, #fff); font-size: 1rem; }
.vacio::before { display: block; width: 38px; height: 38px; margin: 0 auto 18px; color: #94a3b8; }
.vacio strong { display: block; margin: 0 0 6px; color: var(--text); font-size: 1.125rem; }
.vacio p { margin: 0; }
.report-empty { --icon: var(--icon-chart); padding-block: clamp(44px, 8vw, 86px); }
.report-user { display: flex; align-items: center; gap: 8px; margin: 14px 0 26px; font-size: .9375rem; }
.report-user #persona { color: var(--text); font-weight: 600; }

@media (hover: hover) and (pointer: fine) {
  button:hover:not(:disabled), .button-link:hover { transform: translateY(-2px); }
  .primary:hover:not(:disabled) { background: var(--clan-red-hover); box-shadow: 0 9px 22px #d52b2b2e; }
  .secondary:hover:not(:disabled) { background: #e8edf4; border-color: #c8d2df; }
  .salir:hover:not(:disabled) { color: #fff; background: #ffffff1c; border-color: #ffffff65; }
  .icon-button:hover:not(:disabled) { background: #eef2f6; color: var(--text); transform: none; }
}
@keyframes entrada { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes modal-entrada { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes fundido { from { opacity: 0; } to { opacity: 1; } }
@keyframes giro { to { transform: rotate(360deg); } }
@media (max-width: 767px) {
  .site-header { padding: 13px 20px; gap: 12px; min-height: 88px; }
  .header-start small, .header-note span { display: none; }
  .header-start strong { font-size: .8125rem; }
  .brand { width: 250px; min-height: 44px; padding: 0; }
  .header-start .header-icon { display: none; }
  .site-header .salir { width: 44px; height: 44px; padding: 0; font-size: 0; gap: 0; }
  .site-header .salir::before { width: 20px; height: 20px; }
  .card { padding: 26px; }
}
@media (max-width: 480px) {
  .site-header { gap: 8px; padding: 12px 16px; min-height: 84px; }
  .header-start > div:not(.header-icon) { display: none; }
  .header-start .header-icon { display: grid; width: 36px; height: 36px; border: 0; background: transparent; }
  .brand { width: min(238px, calc(100vw - 144px)); min-height: 40px; }
  main, .wide { width: calc(100% - 28px); margin-block: 28px 36px; }
  .card { border-radius: 20px; padding: 25px 20px; }
  .card::before { left: 22px; right: 22px; }
  dialog { width: 100%; max-width: 100%; max-height: calc(100dvh - 16px); margin: auto 0 0; padding: 28px 22px max(24px, env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; }
  .actions { flex-direction: column-reverse; gap: 10px; }
  .actions button { width: 100%; flex: none; }
  .section-icon { width: 46px; height: 46px; border-radius: 14px; }
  .section-heading { gap: 12px; }
  .site-footer { padding-bottom: max(20px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  button, input, .card, .brand, .badge { border: 1px solid CanvasText; }
  .icon, button::before { forced-color-adjust: none; background-color: ButtonText; }
}

/* Iconos vectoriales embebidos: visibles incluso sin conexión a Internet. */
:root {
  --icon-calendar: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M16%203v4M8%203v4M3%2011h18M8%2015h2M14%2015h2M8%2018h2%22%2F%3E%3C%2Fsvg%3E");
  --icon-calendar-plus: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2021H6a3%203%200%200%201-3-3V8a3%203%200%200%201%203-3h12a3%203%200%200%201%203%203v3M16%203v4M8%203v4M3%2011h18M18%2014v8M14%2018h8%22%2F%3E%3C%2Fsvg%3E");
  --icon-user: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021v-2a7%207%200%200%201%207-7h2a7%207%200%200%201%207%207v2%22%2F%3E%3C%2Fsvg%3E");
  --icon-id: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%223%22%2F%3E%3Ccircle%20cx%3D%228%22%20cy%3D%2210%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M5%2016a3%203%200%200%201%206%200M15%209h4M15%2013h4M15%2017h2%22%2F%3E%3C%2Fsvg%3E");
  --icon-lock: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%2210%22%20width%3D%2216%22%20height%3D%2211%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M8%2010V7a4%204%200%200%201%208%200v3M12%2015v2%22%2F%3E%3C%2Fsvg%3E");
  --icon-briefcase: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2218%22%20height%3D%2214%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M8%207V5a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2M3%2012a22%2022%200%200%200%2018%200M12%2011v4%22%2F%3E%3C%2Fsvg%3E");
  --icon-building: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%225%22%20y%3D%223%22%20width%3D%2214%22%20height%3D%2218%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M9%207h1M14%207h1M9%2011h1M14%2011h1M10%2021v-5h4v5M3%2021h18%22%2F%3E%3C%2Fsvg%3E");
  --icon-eye: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%2012s3.5-7%2010-7%2010%207%2010%207-3.5%207-10%207S2%2012%202%2012Z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E");
  --icon-eye-off: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%203%2018%2018M10.6%205.1%2012%205c6.5%200%2010%207%2010%207a19%2019%200%200%201-2.6%203.6M6.3%206.3A22%2022%200%200%200%202%2012s3.5%207%2010%207a12%2012%200%200%200%205.7-1.7M9.9%209.9a3%203%200%200%200%204.2%204.2%22%2F%3E%3C%2Fsvg%3E");
  --icon-logout: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4M9%2012h12m-5-5%205%205-5%205%22%2F%3E%3C%2Fsvg%3E");
  --icon-arrow-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2012h16m-6-6%206%206-6%206%22%2F%3E%3C%2Fsvg%3E");
  --icon-arrow-left: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2012H4m6-6-6%206%206%206%22%2F%3E%3C%2Fsvg%3E");
  --icon-search: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2210.5%22%20cy%3D%2210.5%22%20r%3D%226.5%22%2F%3E%3Cpath%20d%3D%22m16%2016%205%205%22%2F%3E%3C%2Fsvg%3E");
  --icon-list: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M7%208h1M11%208h6M7%2012h1M11%2012h6M7%2016h1M11%2016h6%22%2F%3E%3C%2Fsvg%3E");
  --icon-plus: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22%2F%3E%3C%2Fsvg%3E");
  --icon-pin: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%206-8%2012-8%2012S4%2016%204%2010a8%208%200%200%201%2016%200Z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%222.5%22%2F%3E%3C%2Fsvg%3E");
  --icon-clock: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%2F%3E%3C%2Fsvg%3E");
  --icon-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m5%2012%204%204L19%206%22%2F%3E%3C%2Fsvg%3E");
  --icon-check-circle: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22m8%2012%203%203%205-6%22%2F%3E%3C%2Fsvg%3E");
  --icon-info: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%2011v6M12%207h.01%22%2F%3E%3C%2Fsvg%3E");
  --icon-alert: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10.3%204.4a2%202%200%200%201%203.4%200l8%2013.5A2%202%200%200%201%2020%2021H4a2%202%200%200%201-1.7-3.1l8-13.5ZM12%209v5M12%2017h.01%22%2F%3E%3C%2Fsvg%3E");
  --icon-chart: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M8%2016v-4M12%2016V7M16%2016v-6%22%2F%3E%3C%2Fsvg%3E");
}
[data-icon="calendar"] { --icon: var(--icon-calendar); }
[data-icon="calendar-plus"] { --icon: var(--icon-calendar-plus); }
[data-icon="user"] { --icon: var(--icon-user); }
[data-icon="id"] { --icon: var(--icon-id); }
[data-icon="lock"] { --icon: var(--icon-lock); }
[data-icon="briefcase"] { --icon: var(--icon-briefcase); }
[data-icon="building"] { --icon: var(--icon-building); }
[data-icon="eye"] { --icon: var(--icon-eye); }
[data-icon="eye-off"] { --icon: var(--icon-eye-off); }
[data-icon="logout"] { --icon: var(--icon-logout); }
[data-icon="arrow-right"] { --icon: var(--icon-arrow-right); }
[data-icon="arrow-left"] { --icon: var(--icon-arrow-left); }
[data-icon="search"] { --icon: var(--icon-search); }
[data-icon="list"] { --icon: var(--icon-list); }
[data-icon="plus"] { --icon: var(--icon-plus); }
[data-icon="pin"] { --icon: var(--icon-pin); }
[data-icon="clock"] { --icon: var(--icon-clock); }
[data-icon="check"] { --icon: var(--icon-check); }
[data-icon="check-circle"] { --icon: var(--icon-check-circle); }
[data-icon="info"] { --icon: var(--icon-info); }
[data-icon="alert"] { --icon: var(--icon-alert); }
[data-icon="chart"] { --icon: var(--icon-chart); }
