:root {
  /* tokens Resolvio (Dirección C — la R resuelta como sistema) */
  --bg: oklch(0.975 0.004 80);
  --surface: #ffffff;
  --surface-raised: oklch(0.99 0.003 80);
  --fg: oklch(0.18 0.015 260);
  --fg-secondary: oklch(0.42 0.01 260);
  --fg-tertiary: oklch(0.55 0.008 260);
  --fg-muted: oklch(0.68 0.005 260);
  --border: oklch(0 0 0 / 0.08);
  --border-subtle: oklch(0 0 0 / 0.04);
  --primary: oklch(0.50 0.14 250);
  --primary-hover: oklch(0.44 0.14 250);
  --primary-soft: oklch(0.93 0.03 250);
  --check: oklch(0.62 0.17 155);
  --success: oklch(0.62 0.17 155);
  --success-soft: oklch(0.93 0.04 155);
  --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.05);
  --shadow: 0 1px 3px oklch(0 0 0 / 0.06), 0 1px 2px oklch(0 0 0 / 0.04);
  --shadow-lg: 0 4px 12px oklch(0 0 0 / 0.08);
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 14px;
  --radius-pill: 999px;
  --font-display: "DM Sans", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", monospace;
  --max-w: 1120px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
@keyframes skeleton { 0% { background-position: 200% 0; } to { background-position: -200% 0; } }
.skeleton { background: linear-gradient(90deg, var(--border) 25%, var(--surface) 50%, var(--border) 75%); background-size: 200% 100%; animation: skeleton 1.5s infinite ease-in-out; border-radius: 4px; color: transparent !important; pointer-events: none; user-select: none; }
.skeleton--text { display: inline-block; height: 1em; width: 80px; }
.skeleton--block { display: block; height: 1em; width: 100%; margin-bottom: .35rem; }
.skeleton--circle { border-radius: 50%; width: 1.2em; height: 1.2em; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-display);
  background: var(--bg);
  color: var(--fg);
  line-height: 1.5;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
body.calculando .calculadoras .card.card--calculando { transform: scale(1.02); box-shadow: 0 16px 48px rgba(0,0,0,.25); }
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

.tickbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--primary);
  color: #fff;
}
.tick-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 6px 16px;
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.tick-inner::-webkit-scrollbar { display: none; }
.tick {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 12px;
  white-space: nowrap;
  flex-shrink: 0;
}
.tick b {
  font-weight: 600;
  opacity: .75;
  letter-spacing: 0.06em;
}
.tick-valor {
  font-weight: 500;
}
.tick--clima {
  gap: 8px;
}

.header {
  position: relative;
  background: var(--bg);
  border-bottom: 1px solid var(--border-subtle);
}
.header__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.header__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--primary);
  letter-spacing: -0.5px;
}
.header__logo svg {
  height: 26px;
  width: auto;
}
.header__nav {
  display: flex;
  gap: 2px;
  margin-left: auto;
}
.header__nav a {
  text-decoration: none;
  color: var(--fg);
  font-size: .92rem;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
}
.header__nav a:hover {
  background: var(--primary-soft);
  color: var(--primary);
}
.header__menu-btn {
  display: none;
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: var(--fg);
}

.hero {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 60px 16px 36px;
  text-align: center;
}
.hero__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--primary);
  background: var(--primary-soft);
  border-radius: var(--radius-pill);
  padding: 6px 14px;
  margin-bottom: 20px;
}
.hero__chip .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--check);
}
.hero__title {
  font-size: clamp(34px, 5vw, 52px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.06;
  max-width: 760px;
  margin: 0 auto 16px;
  color: var(--fg);
}
.hero__title .check {
  position: relative;
  display: inline-block;
  color: var(--primary);
}
.hero__title .check::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 5px;
  background: var(--check);
  border-radius: var(--radius-pill);
  opacity: 0.55;
  z-index: -1;
}
.hero__subtitle {
  color: var(--fg-secondary);
  font-size: 17px;
  max-width: 560px;
  margin: 0 auto 36px;
}

.hero__search {
  max-width: 600px;
  margin: 0 auto;
  position: relative;
}
.search-input {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 15px 18px;
  box-shadow: var(--shadow);
  width: 100%;
}
.search-input:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-soft), var(--shadow);
}
.search-input input {
  border: 0;
  outline: 0;
  flex: 1;
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--fg);
  background: transparent;
}
.search-input input::placeholder { color: var(--fg-muted); }
.search-input kbd {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--fg-tertiary);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 2px 7px;
  background: var(--surface-raised);
}
.search-suggestions {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: 8px;
  display: none;
  z-index: 30;
  text-align: left;
}
.hero__search.open .search-suggestions,
.search-suggestions.show { display: block; }
.search-suggestions .drop-group {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fg-tertiary);
  padding: 8px 10px 4px;
}
.search-suggestions .drop-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--radius-sm);
  color: var(--fg);
  font-size: 14px;
  cursor: pointer;
}
.search-suggestions .drop-item:hover,
.search-suggestions .drop-item.selected {
  background: var(--primary-soft);
  color: var(--primary);
}
.search-suggestions .drop-item .r {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--primary);
  opacity: 0.7;
}
.search-suggestions .drop-empty {
  padding: 18px 16px;
  text-align: center;
  color: var(--fg-tertiary);
  font-size: 14px;
}
.search-suggestions {
  max-height: 70vh;
  overflow-y: auto;
}
.search-suggestions .drop-item__icon {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 14px;
}
.search-suggestions .drop-item__label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.search-suggestions .drop-item__tag {
  font-size: 11px;
  font-weight: 600;
  color: var(--fg-tertiary);
  background: var(--surface-raised);
  border-radius: var(--radius-pill);
  padding: 2px 8px;
  flex-shrink: 0;
}
.search-suggestions .drop-item.selected .drop-item__tag {
  color: var(--primary);
  background: var(--surface);
}
.search-suggestions mark {
  background: transparent;
  color: var(--primary);
  font-weight: 700;
}
.search-suggestions .suggest-convert[role="option"] {
  cursor: pointer;
  border-radius: var(--radius-sm);
}
.search-suggestions .suggest-convert[role="option"]:hover,
.search-suggestions .suggest-convert.selected {
  background: var(--primary-soft);
}

.calculadoras{padding:1.5rem 0 3rem}
.calculadoras__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:.5rem;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.card::before{content:'';position:absolute;inset:0;border-radius:var(--radius);background:linear-gradient(135deg,var(--primary),transparent 60%);opacity:0;transition:opacity .25s ease;pointer-events:none}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary)}
.card:hover::before{opacity:.08}
.card__icon{font-size:1.7rem;line-height:1;margin-bottom:.25rem}
.card__icon-skel{width:1.7rem;height:1.7rem;margin-bottom:.25rem}
.card__title{font-weight:700;font-size:1.1rem;color:var(--fg);line-height:1.35;position:relative;z-index:1}
.card__desc{font-size:.85rem;color:var(--fg-secondary);line-height:1.5;position:relative;z-index:1;flex:1}
.card__tag{display:inline-block;font-size:.75rem;padding:.2rem .6rem;border-radius:var(--radius-pill);background:var(--primary-soft);color:var(--primary);font-weight:500;position:relative;z-index:1;width:fit-content}
.card--skeleton{pointer-events:none;gap:.5rem;padding:1.5rem;border-color:transparent}
.card--skeleton .skeleton--block{margin:0}

.footer{
  background:var(--surface);border-top:1px solid var(--border-subtle);padding:2rem 0 1.5rem;margin-top:auto;
  font-size:.85rem;color:var(--fg-secondary);text-align:center
}
.footer a{color:var(--primary);text-decoration:none;font-weight:500}
.footer a:hover{text-decoration:underline}

/* Calculadora interactiva */
.card--calculando{cursor:default;pointer-events:auto;position:relative;z-index:10}
.card--calculando:hover{transform:none;box-shadow:var(--shadow)}
.calc{display:flex;flex-direction:column;gap:.75rem}
.calc__back{background:none;border:none;color:var(--primary);font-size:.85rem;cursor:pointer;padding:0;text-align:left;font-weight:600}
.calc__back:hover{text-decoration:underline}
.calc__icon{font-size:1.5rem}
.calc__form{display:flex;flex-direction:column;gap:.5rem}
.calc__form label{font-size:.8rem;font-weight:600;color:var(--fg)}
.calc__form input,.calc__form select{
  width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:8px;
  font-size:.9rem;background:var(--surface);color:var(--fg);outline:none
}
.calc__form input:focus,.calc__form select:focus{border-color:var(--primary)}
.calc__results{min-height:1px}
.calc__resultados{display:flex;flex-direction:column;gap:.35rem;padding:.75rem;background:var(--primary-soft);border-radius:8px;margin-top:.25rem}
.calc__row{display:flex;justify-content:space-between;font-size:.82rem;gap:.5rem}
.calc__negativo{color:#e74c3c}
.calc__total{display:flex;justify-content:space-between;font-weight:700;font-size:.95rem;border-top:2px solid var(--primary);padding-top:.5rem;margin-top:.35rem}
.calc__total-valor{color:var(--primary);font-size:1.1rem}
.calc__sep{height:.35rem}
.calc__beneficio{background:var(--surface);border:1px solid var(--primary);border-radius:8px;padding:.65rem .75rem;margin-bottom:.15rem}
.calc__beneficio-nombre{font-weight:600;font-size:.9rem;color:var(--fg);margin-bottom:.15rem}
.calc__beneficio-monto{font-weight:700;font-size:.85rem;color:var(--primary)}
.calc__ref{font-size:.75rem;color:var(--fg-secondary);margin-top:.25rem}
.calc__fuente{font-size:.7rem;color:var(--fg-secondary);margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--border);line-height:1.4}
.calc__fuente a{color:var(--primary)}
.calc__section-title{font-size:1.1rem;font-weight:700;color:var(--primary)}
.calc__subtitle{font-size:.85rem;color:var(--fg-secondary);margin-bottom:.5rem}

/* Bonos calendar */
.bonos__meses{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}
.bonos__mes{flex:1;min-width:60px;padding:.4rem .3rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--fg);font-size:.75rem;text-align:center;cursor:pointer;position:relative;transition:all .2s}
.bonos__mes:hover{border-color:var(--primary)}
.bonos__mes.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.bonos__dot{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--primary)}
.bonos__mes.active .bonos__dot{background:#fff}
.bonos__empty{padding:1rem;text-align:center;color:var(--fg-secondary);font-size:.85rem}
.bono-card{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin-bottom:.5rem;background:var(--surface)}
.bono-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}
.bono-card__tipo{font-size:.7rem;padding:.15rem .4rem;border-radius:var(--radius-pill);font-weight:600}
.bono__efectivo{background:var(--success-soft);color:var(--success)}
.bono__pension{background:var(--primary-soft);color:var(--primary)}
.bono-card__monto{font-weight:700;font-size:.9rem;color:var(--primary)}
.bono-card__nombre{font-weight:600;font-size:.9rem;margin-bottom:.25rem}
.bono-card__desc{font-size:.8rem;color:var(--fg-secondary);margin-bottom:.25rem}
.bono-card__req{font-size:.75rem;color:var(--fg-secondary);margin-bottom:.35rem}
.bono-card__link{font-size:.75rem;color:var(--primary);text-decoration:none}
.bono-card__link:hover{text-decoration:underline}

/* Feriados */
.feriados__countdown{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;background:var(--primary-soft);border-radius:var(--radius);margin-bottom:1rem;text-align:center}
.feriados__countdown-num{font-size:2.5rem;font-weight:800;color:var(--primary);line-height:1}
.feriados__countdown-label{font-size:.8rem;color:var(--fg);line-height:1.3}
.feriados__stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-bottom:1rem}
.feriado-stat{text-align:center;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.feriado-stat__num{display:block;font-size:1.3rem;font-weight:700;color:var(--primary)}
.feriado-stat{font-size:.75rem;color:var(--fg-secondary)}
.feriados__puentes{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.puente-card{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:.8rem;flex-wrap:wrap;gap:.25rem}
.puente-card__tip{font-size:.7rem;color:var(--primary);font-weight:600;width:100%}
.feriados__lista{display:flex;flex-direction:column;gap:.35rem}
.feriado-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.feriado-item--fds{opacity:.6}
.feriado-item__fecha{text-align:center;min-width:35px}
.feriado-item__dia{display:block;font-size:1.1rem;font-weight:700;color:var(--primary);line-height:1}
.feriado-item__mes{font-size:.65rem;text-transform:uppercase;color:var(--fg-muted)}
.feriado-item__info{flex:1;min-width:0}
.feriado-item__nombre{display:block;font-weight:600;font-size:.85rem}
.feriado-item__semana{display:block;font-size:.7rem;color:var(--fg-muted)}
.feriado-item__tipo{font-size:.65rem;padding:.1rem .35rem;border-radius:4px;font-weight:600;flex-shrink:0}
.feriado__civil{background:#d4edda;color:#155724}
.feriado__religioso{background:#fff3cd;color:#856404}
.feriado__tramite,.tramite{background:#cce5ff;color:#004085}
.feriado__bono,.bono{background:#f8d7da;color:#721c24}
.feriado__oferta,.oferta{background:#e8daef;color:#6c3483}

.cl-filtros{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}
.cl-filtro{padding:.35rem .7rem;border:1px solid var(--border);border-radius:15px;background:var(--surface);color:var(--fg);font-size:.75rem;cursor:pointer;transition:all .2s}
.cl-filtro:hover{border-color:var(--primary)}
.cl-filtro.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.cl-countdown{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;background:var(--primary-soft);border-radius:10px;margin-bottom:1rem;text-align:center}
.cl-countdown__num{font-size:2.5rem;font-weight:800;color:var(--primary);line-height:1}
.cl-countdown__label{font-size:.8rem;color:var(--fg);line-height:1.3}
.cl-evento--pasado{opacity:.45}
.cl-evento--hoy{border-color:var(--primary)!important;background:var(--primary-soft)!important}
.cl-evento__detalle{display:block;font-size:.7rem;color:var(--fg-secondary);margin-top:.15rem}

/* Month calendar grid */
.cl-nav{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}
.cl-nav__btn{padding:.5rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--fg);cursor:pointer;font-size:1rem;font-weight:600}
.cl-nav__btn:hover{background:var(--primary-soft);border-color:var(--primary)}
.cl-nav__titulo{font-weight:800;font-size:1.2rem;min-width:160px;text-align:center;color:var(--fg)}
.cl-nav__hoy{font-size:.75rem;padding:.3rem .7rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;color:var(--fg-secondary);font-weight:500}
.cl-nav__hoy:hover{color:var(--primary);border-color:var(--primary)}
.cl-prox{font-size:.9rem;color:var(--fg);text-align:center;margin-bottom:.75rem;padding:.4rem;background:var(--primary-soft);border-radius:8px;font-weight:500}
.cl-restriccion{color:var(--primary)!important}
.cl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;width:100%;min-width:0}
.cl-grid__header{text-align:center;font-size:.8rem;font-weight:700;color:var(--fg-secondary);padding:.35rem 0;text-transform:uppercase;letter-spacing:.05em;min-width:0}
.cl-grid__dia{min-height:44px;min-width:0;padding:.2rem .25rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font-size:.75rem;display:flex;flex-direction:column;gap:1px;transition:border-color .15s,box-shadow .15s;position:relative;justify-content:flex-start;overflow:hidden}
.cl-grid__dia:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.cl-grid__dia--vacio{background:transparent;border-color:transparent;cursor:default;min-height:0}
.cl-grid__dia--vacio:hover{box-shadow:none}
.cl-grid__dia--finde{opacity:.7}
.cl-grid__dia--finde.cl-grid__dia--hoy{opacity:1}
.cl-grid__dia--hoy{background:var(--primary-soft);border-color:var(--primary);border-width:2px}
.cl-grid__top{display:flex;justify-content:space-between;align-items:flex-start;width:100%;margin-bottom:1px}
.cl-grid__num{font-weight:700;font-size:1rem;line-height:1;color:var(--fg)}
.cl-grid__clima{font-size:1rem;line-height:1;flex-shrink:0}
.cl-grid__clima-skel{display:inline-block;width:1rem;height:1rem;vertical-align:top}
.cl-grid__temp{font-size:.6rem;color:var(--fg-secondary);text-align:right;align-self:flex-end;line-height:1;margin-top:-2px;margin-bottom:2px}
.cl-grid__temp-skel{display:inline-block;width:2.5rem;height:.6rem;align-self:flex-end;margin-top:-2px;margin-bottom:2px}
.cl-grid__dia--skel .skeleton{opacity:.4}
.cl-grid__ev{font-size:.65rem;padding:.08rem .2rem;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;color:#111;font-weight:500;margin-top:1px}
.cl-grid__restr{font-size:.6rem;color:#e74c3c;font-weight:700;line-height:1.3;margin-top:auto}

/* Calendar preview */
.calendario-preview{padding:0 0 .35rem;width:100%}
.hero .calendario-preview{padding:.35rem 0}
.hero .calendario-preview .cl-prox{font-size:.85rem}
.hero .calendario-preview .cl-nav{margin-bottom:.35rem}
.hero .calendario-preview .cl-nav__titulo{font-size:1rem}
.cp-loading{font-size:.85rem;color:var(--fg-secondary);text-align:center;padding:.75rem}
.cp-countdown{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--primary-soft);border-radius:10px;flex-shrink:0}
.cp-countdown__num{font-size:2rem;font-weight:800;color:var(--primary);line-height:1}
.cp-countdown__info{line-height:1.3}
.cp-countdown__label{font-size:.75rem;color:var(--fg-secondary);display:block}
.cp-countdown__evento{font-weight:600;font-size:.85rem;color:var(--fg)}
.cp-siguientes{display:flex;gap:.35rem;flex:1;min-width:200px;flex-wrap:wrap}
.cp-evento{display:flex;align-items:center;gap:.3rem;padding:.25rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);font-size:.75rem;white-space:nowrap}
.cp-evento__cat{font-size:.6rem;padding:.1rem .3rem;border-radius:3px;font-weight:600}
.cp-evento__fecha{color:var(--fg-secondary);font-size:.7rem}
.cp-evento__nombre{font-weight:500;color:var(--fg)}
.indicador--clima{background:var(--surface)!important;border:1px solid var(--border)}
.guia-card{border:1px solid var(--border);border-radius:8px;padding:.75rem;background:var(--surface)}
.guia-card__tit{font-weight:700;font-size:.9rem;margin-bottom:.25rem}
.guia-card__cuerpo{font-size:.82rem;color:var(--fg-secondary);line-height:1.5}
.guia-card__lista{margin:0;padding-left:1.2rem;font-size:.82rem;color:var(--fg-secondary);display:flex;flex-direction:column;gap:.2rem}
.sm-widget{text-align:center;padding:.5rem}
.sm-widget__valor{font-size:2.2rem;font-weight:800;color:var(--primary);line-height:1}
.sm-widget__label{font-size:.8rem;color:var(--fg-secondary);margin-bottom:.75rem}
.sm-widget__rejilla{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;max-width:360px;margin:0 auto}
.sm-widget__stat{padding:.5rem;border:1px solid var(--border);border-radius:6px;background:var(--surface)}
.sm-widget__num{display:block;font-weight:700;font-size:1rem;color:var(--primary)}
.sm-widget__desc{font-size:.7rem;color:var(--fg-secondary)}
.sm-widget__nota{font-size:.75rem;color:var(--fg-secondary);margin-top:.75rem;max-width:400px;margin-left:auto;margin-right:auto}
.calc__toggle-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:var(--fg);padding:.25rem 0;cursor:pointer}
.calc__toggle-label input{opacity:0;width:0;height:0;position:absolute}
.calc__toggle-track{position:relative;width:44px;height:24px;flex-shrink:0;background:var(--border);border-radius:12px;transition:background .2s}
.calc__toggle-slider{position:absolute;left:3px;bottom:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}
.calc__toggle-label input:checked+.calc__toggle-track{background:var(--primary)}
.calc__toggle-label input:checked+.calc__toggle-track .calc__toggle-slider{transform:translateX(20px)}
.calc__toggle-text{font-size:.78rem;color:var(--fg-secondary);transition:color .2s;min-width:3.5rem}
.calc__toggle-text::before{content:attr(data-off)}
.calc__toggle-label input:checked+.calc__toggle-track+.calc__toggle-text::before{content:attr(data-on);color:var(--primary);font-weight:700}
.suggest-convert{padding:.65rem 1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.85rem;border-bottom:1px solid var(--border)}
.suggest-convert:hover{background:var(--primary-soft)}
.suggest-convert__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suggest-convert__cta{font-size:.75rem;color:var(--primary);font-weight:600;flex-shrink:0}
#isapre-field{margin-top:-.25rem}

.back-to-top{position:fixed;bottom:24px;right:24px;width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;opacity:0;visibility:hidden;transition:all .25s ease;box-shadow:0 4px 12px rgba(0,0,0,.2);z-index:999;font-size:1.2rem;display:flex;align-items:center;justify-content:center}.back-to-top.visible{opacity:1;visibility:visible}.back-to-top:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.3)}

.calculadoras__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}

@media(max-width:640px){
    .header__nav{display:none}
  .header__nav.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border-subtle);padding:8px 16px 12px;gap:4px}
  .header__menu-btn{display:block}
  .hero__title{font-size:1.5rem}
  .hero__search{max-width:100%}
  .calculadoras__grid{grid-template-columns:1fr}
  .cl-grid__dia{min-height:38px;padding:.15rem}
  .cl-grid__num{font-size:.85rem}
  .cl-grid__ev{font-size:.6rem}
  .cl-grid__clima{font-size:.85rem}
  .cl-grid__temp{font-size:.55rem}
  .cl-grid__restr{font-size:.55rem}
  .cl-grid__top{margin-bottom:0}
  .tick-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 10px;padding:7px 16px;overflow:visible}
  .tick{font-size:11px;white-space:nowrap}
  .tick--clima{order:1;grid-column:1/-1}
}
@media(min-width:900px){
  .cl-grid{gap:4px}
  .cl-grid__dia{min-height:85px;padding:.4rem}
  .cl-grid__num{font-size:1.1rem}
  .cl-grid__ev{font-size:.75rem}
  .cl-grid__clima{font-size:1.1rem}
  .cl-grid__temp{font-size:.65rem}
  .cl-grid__restr{font-size:.68rem}
  .cl-grid__top{margin-bottom:2px}
}

/* ===== Home: entrada a herramientas ===== */
.herramientas{padding:0 0 2.5rem}
.herramientas__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
a.card--link{cursor:pointer;text-decoration:none}
a.card--link:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.15);border-color:var(--primary)}

/* ===== Sección Imprimir en Carta ===== */
.imprimir{padding:1.5rem 0 3rem}
.tool-head{max-width:760px;margin:0 auto 28px;text-align:center;padding-top:1.5rem}
.tool-title{font-size:clamp(26px,4vw,36px);font-weight:700;letter-spacing:-0.02em;line-height:1.1;margin-bottom:10px}
.tool-title .print-mark{position:relative;display:inline-block;color:var(--primary)}
.tool-title .print-mark::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:5px;background:var(--check);border-radius:var(--radius-pill);opacity:.55;z-index:-1}
.tool-hint{font-size:.9rem;color:var(--fg-secondary);max-width:560px;margin:0 auto}

.toolbar{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin:0 auto 12px;max-width:880px}
.toolbar__group{display:inline-flex;gap:2px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;box-shadow:var(--shadow-sm)}
.toolbar__group .btn{border:0;border-radius:0;box-shadow:none}
.toolbar__group .btn+.btn{border-left:1px solid var(--border)}
.toolbar__group .btn--active{background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.toolbar__group .btn--active:hover{background:var(--primary-soft);color:var(--primary)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:.7rem 1.3rem;border:1px solid var(--border);border-radius:var(--radius-pill);
  background:var(--surface);color:var(--fg);font-size:.9rem;font-weight:500;
  cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm);font-family:var(--font-display)
}
.btn:hover{
  border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow);
  transform:translateY(-1px)
}
.btn:active{transform:translateY(0)}
.btn--icon{width:36px;height:36px;padding:0}
.btn--icon svg{width:18px;height:18px}
.btn svg{width:16px;height:16px}
.btn--primary{
  background:var(--primary);color:oklch(1 0 0);border-color:var(--primary);
  box-shadow:0 2px 6px var(--primary/0.3)
}
.btn--primary:hover{
  background:var(--primary-hover);color:oklch(1 0 0);
  box-shadow:0 4px 12px var(--primary/0.4)
}
.btn--success{
  background:var(--check);color:oklch(1 0 0);border-color:var(--check);
  box-shadow:0 2px 6px var(--check/0.3)
}
.btn--success:hover{
  background:oklch(0.55 0.17 155);color:oklch(1 0 0);
  box-shadow:0 4px 12px var(--check/0.4)
}
.btn--active{
  background:var(--primary);color:oklch(1 0 0);border-color:var(--primary);
  box-shadow:0 2px 6px var(--primary/0.3)
}
.btn--active:hover{
  background:var(--primary-hover);color:oklch(1 0 0);
  box-shadow:0 4px 12px var(--primary/0.4)
}
.imprimir__orientacion{display:flex;gap:.3rem}
.btn--orientacion{padding:.6rem .7rem}

.presets{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin:0 auto 12px;max-width:880px}
.presets__label{font-size:.8rem;font-weight:600;color:var(--fg-secondary);letter-spacing:.04em}
.presets__group{display:inline-flex;gap:2px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;box-shadow:var(--shadow-sm);flex-wrap:wrap}
.preset{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:0;padding:.5rem .85rem;background:transparent;color:var(--fg);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:var(--font-display)}
.preset svg{width:15px;height:15px;color:var(--fg-secondary)}
.preset+.preset{border-left:1px solid var(--border)}
.preset:hover{color:var(--primary);background:var(--primary-soft)}
.preset:hover svg{color:var(--primary)}
.preset--active{background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.preset--active svg{color:var(--primary)}
.preset--active:hover{background:var(--primary-soft);color:var(--primary)}

.imprimir__status{min-height:1.4em;text-align:center;font-size:.85rem;color:var(--fg-secondary);margin-bottom:.75rem}
.imprimir__status--error{color:#e5484d}
.imprimir__status--info{color:var(--primary)}

.lamina{
  background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);
  aspect-ratio:8.5/11;max-width:760px;margin:0 auto;padding:0;
  box-shadow:var(--shadow);overflow:hidden;transition:border-color .2s;position:relative
}
.lamina--horizontal{aspect-ratio:11/8.5}
.lamina--drag{border:3px dashed var(--primary);border-radius:var(--radius)}
.lamina__grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;width:100%;height:100%;position:relative}
.lamina__grid--un .lamina__celda{grid-column:1 / -1}
.lamina__celda{position:relative;overflow:hidden;background:#f1f3f5;min-height:0;border:4px solid #fff;cursor:move;touch-action:none}
.lamina__img{position:absolute;left:50%;top:50%;object-fit:cover;display:block;user-select:none;-webkit-user-drag:none}
.lamina__zona{
  position:absolute;left:0;right:0;bottom:0;padding:.35rem .6rem;
  background:rgba(0,0,0,.55);color:#fff;font-size:.72rem;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.lamina__grid--ocultar-nombres .lamina__zona{display:none}
.lamina__celda:not(:has(img)) .lamina__zona{display:none}
.lamina__celda--carga{
  background:linear-gradient(100deg,#f1f3f5 30%,#e2e6ea 50%,#f1f3f5 70%);
  background-size:200% 100%;animation:lamina-carga 1.2s ease-in-out infinite
}
@keyframes lamina-carga{to{background-position:-200% 0}}

.lamina__grid--plano{display:block;background:#fff}
.lamina__plano{position:absolute;left:0;top:0;transform-origin:top left}
.lamina__foto{
  position:absolute;box-sizing:border-box;overflow:hidden;background:#fff;
  border:1px solid #d9d9d9;cursor:move;touch-action:none
}
.lamina__img--foto{position:absolute;left:50%;top:50%;object-fit:cover;width:100%;height:100%}

.img-acciones{
  position:absolute;top:6px;right:6px;display:flex;gap:3px;z-index:10;
  background:rgba(0,0,0,.5);border-radius:8px;padding:3px
}
.img-accion{
  width:26px;height:26px;border:none;border-radius:6px;background:transparent;color:#fff;
  font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center
}
.img-accion:hover,.img-accion:focus-visible{background:rgba(232,89,12,.95);outline:none}
.img-accion--mover{cursor:grab;touch-action:none}
.img-accion--mas{display:none}
.img-acciones--compact .img-accion:not(.img-accion--mas):not(.img-accion--mover){display:none}
.img-acciones--compact .img-accion--mas{display:flex}
.lamina__grid:not(.lamina__grid--plano) .img-accion--mover{display:none}
.lamina__foto.is-dragging{opacity:.85;z-index:20;border-color:var(--primary);cursor:grabbing}
.lamina__foto.is-overlapping{border-color:#e5484d;box-shadow:0 0 0 2px #e5484d}

.img-menu{
  position:absolute;background:#fff;color:#111;
  border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);
  display:flex;flex-direction:column;gap:2px;padding:4px;z-index:50;min-width:180px;
  max-height:calc(100% - 16px);overflow-y:auto
}
.img-menu[hidden]{display:none}
.img-menu button{
  background:none;border:none;text-align:left;padding:.45rem .6rem;border-radius:5px;
  font-size:.82rem;color:#111;cursor:pointer;display:flex;gap:.4rem;align-items:center
}
.img-menu button:hover,.img-menu button:focus-visible{background:var(--primary-soft);color:var(--primary);outline:none}
.img-menu button.sel{background:var(--primary-soft);color:var(--primary);font-weight:600}
.img-menu__orientacion{border-bottom:1px solid var(--border);border-radius:5px 5px 0 0;margin-bottom:2px;justify-content:center}
.img-menu__orientacion.sel{background:var(--primary);color:#fff}
.img-menu__sep{height:1px;background:var(--border);margin:3px 0}
.img-menu__titulo{font-size:.66rem;text-transform:uppercase;color:var(--fg-secondary);padding:.25rem .6rem 0}
.img-menu__custom{display:flex;align-items:center;gap:.3rem;padding:.3rem .6rem}
.img-menu__custom input{
  width:56px;padding:.3rem .4rem;border:1px solid var(--border);border-radius:5px;
  font-size:.8rem;background:var(--surface);color:var(--fg)
}
.img-menu__custom span{color:var(--fg-secondary);font-size:.8rem}
.img-menu__custom button{
  padding:.3rem .6rem;border:1px solid var(--primary);border-radius:5px;
  color:var(--primary);font-size:.78rem;font-weight:600
}

/* ===== Impresión en formato Carta ===== */
@media print {
  @page{size:letter;margin:0}
  body{background:#fff}
  .header,.footer,.tool-head,.toolbar,.presets,.imprimir__status,.tickbar{display:none!important}
  .main,.container{max-width:none;padding:0;margin:0}
  .imprimir,.tool-head{padding:0;margin:0}
  .lamina{
    width:8.5in;height:11in;max-width:none;margin:0;border:none;border-radius:0;
    box-shadow:none;background:#fff;color:#111;position:relative
  }
  .lamina--horizontal{width:11in;height:8.5in}
  .img-menu,.img-acciones{display:none!important}
  .lamina__plano{transform:none!important}
  .lamina__celda{border:4px solid #fff;background:#fff}
  .lamina__foto{border:1px solid #d9d9d9}
  .lamina__zona{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
