:root {
  color-scheme: light dark;
  --bg: #edf4f8;
  --panel: #ffffff;
  --surface-soft: #e1edf5;
  --text: #13243a;
  --muted: #60748a;
  --line: #c8d8e4;
  --header: #071739;
  --header-text: #e5f7ff;
  --accent: #087fa3;
  --accent2: #075f83;
  --on-accent: #ffffff;
  --focus: #38c7e8;
  --danger: #b4233a;
  --event-visit: #d6eaff;
  --event-visit-text: #123e70;
  --event-action: #fff0c7;
  --event-action-text: #684600;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #07111f;
  --panel: #0e1c2f;
  --surface-soft: #14283d;
  --text: #eff7ff;
  --muted: #a9bfd2;
  --line: #2d4960;
  --header: #030a1e;
  --header-text: #e5f7ff;
  --accent: #5ad7f3;
  --accent2: #92e6f7;
  --on-accent: #071739;
  --focus: #38d7d0;
  --danger: #fb7185;
  --event-visit: #174e73;
  --event-visit-text: #f4faff;
  --event-action: #654b12;
  --event-action-text: #fff3c7;
}

html[data-theme="light"] {
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  html[data-theme="system"] {
    --bg: #07111f;
    --panel: #0e1c2f;
    --surface-soft: #14283d;
    --text: #eff7ff;
    --muted: #a9bfd2;
    --line: #2d4960;
    --header: #030a1e;
    --header-text: #e5f7ff;
    --accent: #5ad7f3;
    --accent2: #92e6f7;
    --on-accent: #071739;
    --focus: #38d7d0;
    --danger: #fb7185;
    --event-visit: #174e73;
    --event-visit-text: #f4faff;
    --event-action: #654b12;
    --event-action-text: #fff3c7;
  }
}

*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,sans-serif}header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem max(1rem,calc((100vw - 1180px)/2));background:var(--header);color:var(--header-text);border-bottom:3px solid var(--focus);position:sticky;top:0;z-index:2;box-shadow:0 .2rem .8rem rgb(3 10 30 / .18)}.brand{font-size:1.25rem;font-weight:800;color:var(--header-text);text-decoration:none}header nav>a{color:#9ee7f8;font-weight:650;text-decoration:none}header nav>a:hover,header nav>a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:.3rem}header button{background:#0d2348;border-color:#36577a;color:var(--header-text)}nav,.actions,.toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}nav form,.actions form{display:inline}main{max-width:1180px;margin:0 auto;padding:2rem 1rem}h1{font-size:clamp(1.7rem,4vw,2.4rem);margin:.2rem 0 1rem}h2{margin-top:0}a{color:var(--accent)}button,.button,input,select,textarea{font:inherit}button,.button{display:inline-block;border:1px solid var(--line);border-radius:.5rem;padding:.55rem .8rem;background:var(--panel);color:var(--text);text-decoration:none;cursor:pointer}button:hover,.button:hover{border-color:var(--accent)}button:focus-visible,.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.danger{background:var(--danger);border-color:var(--danger);color:#fff}.toolbar{justify-content:space-between;margin-bottom:1rem}.filters{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.filters input[name=q]{min-width:min(100%,24rem)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:.5rem;padding:.65rem;background:var(--panel);color:var(--text)}input[type=checkbox]{width:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:.8rem;padding:clamp(1rem,3vw,2rem);box-shadow:0 .25rem .8rem rgb(16 46 74 / .06)}.narrow{max-width:34rem;margin:2rem auto}.grid{display:grid;grid-template-columns:1fr 1.25fr;gap:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid>div:has(textarea),.form-grid>div:has(#id_direccion){grid-column:1/-1}.table-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:.7rem;box-shadow:0 .25rem .8rem rgb(16 46 74 / .06)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--line)}th{font-size:.85rem;text-transform:uppercase;color:var(--muted);background:var(--surface-soft)}tbody tr:hover{background:var(--surface-soft)}.muted{opacity:.6}.eyebrow{color:var(--muted);margin:0}.client-heading{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.client-classification{border-left:1px solid var(--line);padding-left:.6rem;color:var(--muted);font-size:.55em;font-weight:600}.visit{border-top:1px solid var(--line);padding:1rem 0}.pagination{justify-content:center;margin-top:1rem}.error{color:var(--danger)}.notice{padding:.75rem;background:var(--panel);border-left:4px solid var(--accent)}dl{display:grid;grid-template-columns:8rem 1fr;gap:.55rem}dt{font-weight:700}dd{margin:0}@media(max-width:760px){header{align-items:flex-start;position:static}header,header nav{flex-direction:column}.grid,.form-grid{grid-template-columns:1fr}.form-grid>div{grid-column:auto}main{padding-top:1rem}dl{grid-template-columns:1fr}dd{margin-bottom:.6rem}}
.site-header__bar {
  display: flex;
  align-items: center;
}

.menu-toggle,
#theme::before {
  display: none;
}

.site-nav {
  margin-left: auto;
}
.visit-note-history {
  display: grid;
  gap: .75rem;
  margin: 1rem 0 1.5rem;
}

.visit-note-history__item {
  padding: .75rem;
  border-left: .25rem solid var(--accent);
  border-radius: .35rem;
  background: var(--bg);
}

.visit-note-history__item small {
  color: var(--muted);
}

.visit-note-history__item p {
  margin: .35rem 0 0;
}

.client-title-row,
.visit-form-heading {
  display: flex;
  align-items: center;
  gap: .8rem;
}

.client-title-row .client-heading,
.visit-form-heading h1 {
  margin-bottom: 1rem;
}

.visit-form-heading {
  justify-content: space-between;
  align-items: flex-start;
}

.classification-icon {
  flex: 0 0 auto;
  object-fit: contain;
  padding: .45rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 .2rem .55rem rgb(3 10 30 / .12);
}

.classification-icon--client {
  width: 3rem;
  height: 3rem;
}

.classification-icon--list {
  width: 2.5rem;
  height: 2.5rem;
  padding: .35rem;
  border-radius: .6rem;
}

.classification-icon--visit {
  width: clamp(3.5rem, 8vw, 4.5rem);
  height: clamp(3.5rem, 8vw, 4.5rem);
}

.classification-badge--visit {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  gap: .3rem;
  max-width: 8.5rem;
}

.classification-badge__label {
  color: var(--muted);
  font-size: .8rem;
  font-weight: 650;
  line-height: 1.2;
  text-align: center;
}

@media (max-width: 760px) {
  .site-nav {
    margin-left: 0;
  }

  .client-title-row {
    align-items: flex-start;
  }

  .classification-icon--client {
    width: 2.75rem;
    height: 2.75rem;
  }

  .classification-badge--visit {
    max-width: 7rem;
  }
}

@media (max-width: 640px) {
  body {
    overflow-wrap: anywhere;
  }

  .site-header {
    position: static;
    align-items: stretch;
    gap: 0;
    padding: max(.45rem, env(safe-area-inset-top)) .75rem .45rem;
  }

  html[data-nav-ready="true"] .site-header {
    position: sticky;
  }

  .site-header__bar {
    justify-content: space-between;
    width: 100%;
    min-height: 2.75rem;
  }

  html[data-nav-ready="true"] .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-height: 2.75rem;
  }

  .site-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin: .45rem 0 0;
    gap: .45rem;
  }

  html[data-nav-ready="true"] .site-nav:not([data-open="true"]) {
    display: none;
  }

  html[data-nav-ready="true"] .site-nav[data-open="true"] {
    position: absolute;
    top: 100%;
    right: .75rem;
    left: .75rem;
    display: grid;
    max-height: calc(100dvh - 4rem);
    overflow-y: auto;
    padding: .65rem;
    border: 1px solid #36577a;
    border-radius: 0 0 .7rem .7rem;
    background: var(--header);
    box-shadow: 0 .6rem 1rem rgb(3 10 30 / .3);
  }

  .site-nav > a,
  .site-nav > button,
  .site-nav > form,
  .site-nav > form button {
    width: 100%;
  }

  .site-nav > a,
  .site-nav > button,
  .site-nav > form button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: .55rem .65rem;
    border: 1px solid #36577a;
    border-radius: .5rem;
    text-align: center;
  }

  #theme::before {
    content: "Tema";
    display: inline;
    margin-right: .35rem;
  }

  main {
    width: 100%;
    padding: 1rem .75rem 1.5rem;
  }

  h1 {
    font-size: clamp(1.55rem, 8vw, 2rem);
    line-height: 1.15;
  }

  h2 {
    line-height: 1.2;
  }

  button,
  .button,
  .pagination a {
    min-height: 2.75rem;
  }

  .card {
    padding: 1rem;
  }

  .narrow {
    width: 100%;
    margin: .5rem auto;
  }

  .toolbar,
  .actions,
  .filters {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

  .toolbar > *,
  .actions > *,
  .filters > *,
  .actions form,
  .actions form button {
    width: 100%;
  }

  .toolbar h1,
  .toolbar h2 {
    margin-bottom: .25rem;
  }

  .button,
  .toolbar .button,
  .actions .button,
  .actions button,
  .filters button {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .filters label {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 2.75rem;
  }

  .filters input[name=q] {
    min-width: 0;
  }

  .form-grid {
    gap: .8rem;
  }

  .card > form:not([data-clasificacion-cliente]) > button,
  .card > form:not([data-clasificacion-cliente]) > .button {
    width: 100%;
    margin: 0 0 .5rem;
    text-align: center;
  }

  .table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .responsive-table,
  .responsive-table tbody {
    display: block;
    width: 100%;
  }

  .responsive-table thead {
    position: absolute;
    overflow: hidden;
    width: 1px;
    height: 1px;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .responsive-table tr {
    display: block;
    margin-bottom: .85rem;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: .7rem;
    background: var(--panel);
    box-shadow: 0 .2rem .6rem rgb(16 46 74 / .06);
  }

  .responsive-table td {
    display: grid;
    grid-template-columns: minmax(7.25rem, 38%) minmax(0, 1fr);
    gap: .65rem;
    width: 100%;
    min-height: 2.75rem;
    padding: .7rem;
    border-bottom: 1px solid var(--line);
  }

  .responsive-table td:last-child {
    border-bottom: 0;
  }

  .responsive-table td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .02em;
    text-transform: uppercase;
  }

  .responsive-table .table-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
  }

  .responsive-table .table-actions__value {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    white-space: nowrap;
  }

  .responsive-table .empty-row td {
    display: block;
    min-height: 0;
    text-align: center;
  }

  .responsive-table .empty-row td::before {
    content: none;
  }

  .client-title-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
  }

  .client-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .client-classification {
    border-left: 0;
    padding-left: 0;
    font-size: .55em;
  }

  .visit strong,
  .visit p {
    overflow-wrap: anywhere;
  }

  .pagination {
    justify-content: stretch;
    text-align: center;
  }

  .pagination a,
  .pagination span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
  }
}

@media (max-width: 380px) {
  .responsive-table td {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
}
