/* ITV CatalogoCoches.com v3.0 */
#itv-app { font-family:'Montserrat','Open Sans',sans-serif; color:#010101; background:#F6F7F9; border-radius:12px; overflow:hidden; box-shadow:0 2px 16px rgba(1,1,1,.07); margin-bottom:40px; }

.itv-header { background:#fff; border-bottom:1px solid rgba(1,1,1,.08); padding:22px 28px; }
.itv-header-inner { display:flex; align-items:center; max-width:1200px; margin:0 auto; }
.itv-header-title { display:flex; align-items:center; gap:14px; color:#1280DF; }
.itv-header-title h1 { font-size:24px; font-weight:700; margin:0 0 4px; color:#010101; line-height:1.2; }
.itv-header-title p  { font-size:13px; color:#666; margin:0; }

.itv-tabs { background:#fff; border-bottom:2px solid rgba(1,1,1,.08); padding:0 28px; }
.itv-tabs-inner { display:flex; max-width:1200px; margin:0 auto; }
.itv-tab { display:flex; align-items:center; gap:7px; padding:16px 22px; border:none; border-bottom:3px solid transparent; background:transparent; font-family:inherit; font-size:14px; font-weight:600; color:#666; cursor:pointer; transition:color .15s,border-color .15s; white-space:nowrap; margin-bottom:-2px; outline:none !important; box-shadow:none !important; }
.itv-tab:hover { color:#1280DF; }
.itv-tab:focus, .itv-tab:active { outline:none; box-shadow:none; }
.itv-tab.active { color:#1280DF; border-bottom-color:#1280DF; }

.itv-panel { display:none; }
.itv-panel.active { display:block; }

/* CALCULADORA */
.itv-calc-wrap { max-width:1200px; margin:0 auto; padding:24px 28px; }
.itv-calc-form { background:#fff; border-radius:12px; padding:24px; margin-bottom:20px; box-shadow:0 2px 8px rgba(1,1,1,.06); }
.itv-form-grid { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:16px; align-items:end; }
.itv-field { display:flex; flex-direction:column; gap:7px; }
.itv-field label { font-size:11px; font-weight:700; color:#444; text-transform:uppercase; letter-spacing:.5px; }
.itv-field label span { font-weight:400; text-transform:none; letter-spacing:0; font-size:11px; color:#999; }
.itv-field select, .itv-field input[type=number] { height:46px; border:1.5px solid #CAD0D9; border-radius:8px; padding:0 12px; font-size:15px; font-family:inherit; color:#010101; background:#fff; outline:none; transition:border-color .15s; appearance:none; -webkit-appearance:none; width:100%; box-sizing:border-box; }
.itv-field select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:32px; }
.itv-field select:focus, .itv-field input[type=number]:focus { border-color:#1280DF; }
.itv-field-btn { justify-content:flex-end; min-width:130px; }
.itv-btn-primary { height:46px; padding:0 28px; border:none; border-radius:8px; background:#1280DF; color:#fff; font-size:15px; font-weight:700; font-family:inherit; cursor:pointer; transition:background .15s; width:100%; outline:none; }
.itv-btn-primary:hover { background:#0e6bc0; }

.itv-resultado { background:#fff; border-radius:12px; padding:28px; margin-bottom:20px; box-shadow:0 2px 8px rgba(1,1,1,.06); display:none; border-left:4px solid #1280DF; }
.itv-resultado.visible { display:block; }
.itv-badge { display:inline-block; font-size:13px; padding:5px 14px; border-radius:20px; margin-bottom:14px; font-weight:600; }
.itv-badge.ok     { background:#e8f5e9; color:#2e7d32; }
.itv-badge.warn   { background:#fff8e1; color:#e65100; }
.itv-badge.urgent { background:#ffebee; color:#c62828; }
.itv-res-titulo { font-size:22px; font-weight:700; color:#010101; margin-bottom:20px; }
.itv-metrics-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; margin-bottom:24px; }
.itv-metric { background:#F6F7F9; border-radius:10px; padding:16px; text-align:center; }
.itv-metric .lbl { font-size:11px; font-weight:700; color:#555; text-transform:uppercase; letter-spacing:.5px; margin-bottom:8px; }
.itv-metric .val { font-size:24px; font-weight:700; color:#1280DF; }
.itv-timeline-wrap { border-top:1px solid rgba(1,1,1,.07); padding-top:20px; margin-bottom:16px; }
.itv-timeline-title { font-size:11px; font-weight:700; color:#555; text-transform:uppercase; letter-spacing:.5px; margin-bottom:14px; }
.itv-tl-item { display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; }
.itv-tl-dot { width:12px; height:12px; border-radius:50%; margin-top:4px; flex-shrink:0; }
.itv-tl-dot.done   { background:#CAD0D9; }
.itv-tl-dot.next   { background:#1280DF; box-shadow:0 0 0 3px rgba(18,128,223,.2); }
.itv-tl-dot.future { background:#CAD0D9; opacity:.5; }
.itv-tl-text { font-size:15px; font-weight:600; color:#010101; }
.itv-tl-sub  { font-size:12px; color:#666; margin-top:2px; }

.itv-info-section { margin-top:8px; }
.itv-section-title { font-size:18px; font-weight:700; margin:0 0 18px; color:#010101; }
.itv-periodos-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.itv-periodo-card { background:#fff; border-radius:12px; padding:18px 14px; box-shadow:0 2px 8px rgba(1,1,1,.06); }
.itv-periodo-icon { font-size:26px; margin-bottom:10px; }
.itv-periodo-tipo { font-size:13px; font-weight:700; color:#010101; margin-bottom:12px; line-height:1.3; min-height:32px; }
.itv-periodo-reglas { display:flex; flex-direction:column; gap:6px; }
.itv-regla { display:flex; justify-content:space-between; align-items:center; font-size:12px; padding:5px 8px; background:#F6F7F9; border-radius:5px; gap:4px; }
.itv-regla span { color:#555; }
.itv-regla strong { color:#010101; }
.itv-regla.itv-regla-warn { background:#fff8e1; }
.itv-regla.itv-regla-warn strong { color:#e65100; }

/* PRECIOS */
.itv-precios-wrap { max-width:1200px; margin:0 auto; padding:24px 28px; }
.itv-precios-intro { background:rgba(18,128,223,.06); border-left:4px solid #1280DF; border-radius:0 8px 8px 0; padding:14px 18px; margin-bottom:20px; font-size:14px; color:#333; line-height:1.6; }
.itv-precios-table-wrap { background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 2px 8px rgba(1,1,1,.06); overflow-x:auto; }
.itv-precios-table { width:100%; border-collapse:collapse; font-size:14px; }
.itv-precios-table thead { background:#F6F7F9; border-bottom:2px solid rgba(1,1,1,.08); }
.itv-precios-table th { padding:12px 16px; text-align:left; font-size:11px; font-weight:700; color:#444; text-transform:uppercase; letter-spacing:.5px; white-space:nowrap; }
.itv-precios-table td { padding:11px 16px; border-bottom:1px solid rgba(1,1,1,.05); color:#010101; }
.itv-precios-table tbody tr:hover { background:#F6F7F9; }
.itv-precios-table tbody tr:last-child td { border-bottom:none; }
.itv-precios-table td:first-child { font-weight:600; color:#999; font-size:12px; text-align:center; width:36px; }
.itv-precios-table td:nth-child(2) { font-weight:600; }
.itv-rank { display:inline-block; width:24px; height:24px; line-height:24px; text-align:center; background:#F6F7F9; border-radius:50%; font-size:11px; font-weight:700; color:#666; }
.itv-row-barata td:nth-child(2) { color:#2e7d32; }
.itv-row-barata .itv-rank { background:#e8f5e9; color:#2e7d32; }
.itv-row-libre td { background:#fafafa; }
.itv-precio-val    { font-weight:700; color:#1280DF; }
.itv-precio-desfav { color:#c0392b; font-weight:700; }
.itv-libre { font-size:12px; background:#fff8e1; color:#e65100; padding:3px 10px; border-radius:4px; font-weight:600; }
.itv-btn-ver-estaciones { font-size:11px; font-weight:600; padding:5px 12px; border-radius:6px; border:1.5px solid #1280DF; background:#fff; color:#1280DF; cursor:pointer; font-family:inherit; transition:all .12s; white-space:nowrap; outline:none; }
.itv-btn-ver-estaciones:hover { background:#1280DF; color:#fff; }

/* MAPA */
.itv-mapa-header { background:#fff; border-bottom:1px solid rgba(1,1,1,.08); padding:14px 28px; }
.itv-mapa-header-inner { display:flex; align-items:center; justify-content:space-between; max-width:1200px; margin:0 auto; flex-wrap:wrap; gap:12px; }
.itv-mapa-prov { font-size:17px; font-weight:700; color:#010101; }
.itv-mapa-sub  { font-size:12px; color:#888; margin-top:2px; }
.itv-btn-volver { height:38px; padding:0 16px; border:1.5px solid #CAD0D9; border-radius:8px; background:#fff; color:#555; font-size:13px; font-weight:600; font-family:inherit; cursor:pointer; transition:all .12s; outline:none; white-space:nowrap; }
.itv-btn-volver:hover { border-color:#1280DF; color:#1280DF; }
.itv-est-wrap { display:grid; grid-template-columns:1fr 360px; gap:20px; max-width:1200px; margin:0 auto; padding:20px 28px; box-sizing:border-box; }
.itv-est-mapa { border-radius:12px; overflow:hidden; box-shadow:0 2px 8px rgba(1,1,1,.08); }
#itv-map { width:100%; height:700px; background:#e8eef4; }
.itv-est-lista { background:#fff; border-radius:12px; box-shadow:0 2px 8px rgba(1,1,1,.08); display:flex; flex-direction:column; overflow:hidden; height:700px; }
.itv-list-header { padding:12px 16px; border-bottom:1px solid rgba(1,1,1,.07); background:#F6F7F9; flex-shrink:0; }
.itv-list-header span { font-size:13px; font-weight:700; color:#333; }
#itv-list { flex:1; overflow-y:auto; }
.itv-card { padding:14px 16px; border-bottom:1px solid rgba(1,1,1,.06); cursor:pointer; transition:background .12s; }
.itv-card:hover { background:#F0F4FA; }
.itv-card-nombre { font-size:13px; font-weight:700; color:#010101; margin:0 0 4px; }
.itv-card-dir    { font-size:12px; color:#555; margin:0 0 8px; line-height:1.4; }
.itv-card-tags   { display:flex; gap:6px; flex-wrap:wrap; }
.itv-tag         { font-size:11px; font-weight:600; padding:3px 8px; border-radius:4px; background:#F6F7F9; color:#555; }
.itv-tag.blue    { background:rgba(18,128,223,.1); color:#1280DF; }
.itv-tag-link    { text-decoration:none; }
.itv-tag-link:hover { background:rgba(18,128,223,.2); }
.itv-empty   { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px 20px; gap:12px; color:#888; font-size:13px; text-align:center; }
.itv-loading { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px 20px; gap:16px; font-size:14px; color:#666; }
.itv-spinner { width:28px; height:28px; border:3px solid rgba(18,128,223,.2); border-top-color:#1280DF; border-radius:50%; animation:itv-spin .7s linear infinite; }
@keyframes itv-spin { to { transform:rotate(360deg); } }
.itv-nota { font-size:12px; color:#777; line-height:1.6; margin:0; }

/* RESPONSIVE */
@media (max-width:1100px) { .itv-periodos-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:900px) {
    .itv-est-wrap { grid-template-columns:1fr; padding:16px; }
    #itv-map { height:380px; }
    .itv-est-lista { height:360px; }
    .itv-form-grid { grid-template-columns:1fr 1fr; }
    .itv-field-btn { grid-column:span 2; }
    .itv-periodos-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) {
    .itv-header, .itv-mapa-header { padding:16px; }
    .itv-tabs { padding:0 10px; }
    .itv-tab { padding:14px 10px; font-size:12px; gap:4px; }
    .itv-calc-wrap, .itv-precios-wrap { padding:14px; }
    .itv-calc-form { padding:14px; }
    .itv-form-grid { grid-template-columns:1fr; }
    .itv-field-btn { grid-column:span 1; }
    .itv-periodos-grid { grid-template-columns:1fr; }
}
