 *,
 *::before,
 *::after {
   box-sizing: border-box;
 }

 body {
   font-family: sans-serif;
   max-width: 700px;
   margin: 2rem auto;
   padding: 0 1rem;
   color: #1a1a1a;
   background: #fff;
 }

 .tabla-header {
   width: 100%;
   padding-bottom: 30px;
 }

 .screen-header h2 {
   font-size: 20px;
   font-weight: 500;
   margin: 0 0 .5rem;
 }

 .descripcion-fija {
   font-size: 13px;
   color: #444;
   line-height: 1.6;
   margin-bottom: 1.25rem;
 }

 /* Campos */
 .sec h3 {
   font-size: 13px;
   font-weight: 500;
   color: #666;
   text-transform: uppercase;
   letter-spacing: .05em;
   margin: 0 0 12px;
 }

 .field {
   display: flex;
   flex-direction: column;
   gap: 4px;
   margin-bottom: 12px;
 }

 .field label {
   font-size: 13px;
   color: #666;
 }

 .field input {
   padding: 8px;
   border: 1px solid #ccc;
   border-radius: 6px;
   font-size: 14px;
   width: 100%;
   font-family: sans-serif;
   -moz-appearance: textfield;
   appearance: textfield;
 }

 .field2 {
   display: flex;
   align-items: center;
   gap: 14px;
   margin-bottom: 1.5rem;

   input {
     padding: 8px 12px;
     border: 1px solid #378add;
     border-radius: 6px;
     font-size: 15px;
     font-family: sans-serif;
     font-weight: 600;
     color: #185fa5;
     background: #f0f6ff;
     width: 82px;
     text-align: right;
     cursor: default;
   }
 }

 .field input::-webkit-outer-spin-button,
 .field input::-webkit-inner-spin-button {
   -webkit-appearance: none;
   margin: 0;
 }

 .field input:focus {
   outline: none;
   border-color: #378add;
   box-shadow: 0 0 0 2px rgba(55, 138, 221, .15);
 }

 .field-inline-tasa-expedicion {
   display: flex;
   align-items: center;
   gap: 14px;
   margin-bottom: 1.5rem;
 }

 .field-inline-tasa-expedicion label {
   font-size: 14px;
   color: #333;
   white-space: nowrap;
   font-weight: 500;
   min-width: 160px;
 }

 .field-inline-tasa-expedicion input {
   padding: 8px 12px;
   border: 1px solid #378add;
   border-radius: 6px;
   font-size: 15px;
   font-family: sans-serif;
   font-weight: 600;
   color: #185fa5;
   background: #f0f6ff;
   width: 82px;
   text-align: right;
   cursor: default;
 }

 .field-inline-tasa-expedicion input:focus {
   outline: none;
 }

 .row2 {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 12px;
 }

 .hint {
   font-size: 12px;
   color: #999;
   margin-top: 2px;
 }

 /* Result card */
 .result-card {
   background: #f5f5f5;
   border-radius: 10px;
   padding: 1.25rem;
   margin-top: 1.5rem;
 }

 .result-card-title {
   font-size: 15px;
   font-weight: 500;
   margin-bottom: 12px;
 }

 .rline {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   padding: 6px 0;
   border-bottom: 1px solid #e0e0e0;
   font-size: 14px;
 }

 .rl {
   color: #666;
 }

 .rv {
   font-weight: 500;
   color: #1a1a1a;
 }

 .rline-tram {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   padding: 6px 0;
   border-bottom: 1px solid #e0e0e0;
   font-size: 14px;
 }

 .rl-tram {
   color: #185fa5;
   font-style: italic;
 }

 .rv-tram {
   font-weight: 500;
   color: #185fa5;
 }

 .rtotal {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   padding: 12px 0 0;
   margin-top: 8px;
   border-top: 2px solid #aaa;
 }

 .rtotal .rl {
   font-size: 15px;
   font-weight: 500;
 }

 .rtotal .rv {
   font-size: 22px;
   font-weight: 600;
   color: #185fa5;
 }

 .warn-badge {
   background: #fff7e6;
   color: #a05c00;
   font-size: 12px;
   padding: 6px 10px;
   border-radius: 6px;
   margin-top: 10px;
   display: block;
   line-height: 1.5;
   border: 1px solid #f5d28a;
 }

 .info-badge {
   background: #e6f1fb;
   color: #185fa5;
   font-size: 12px;
   padding: 6px 10px;
   border-radius: 6px;
   margin-top: 10px;
   display: block;
   line-height: 1.5;
 }



 /* Pendiente (cuando inputs vacíos) */
 .rv-pending {
   font-weight: 500;
   color: #bbb;
   font-style: italic;
 }

 /* Nota GMU */
 .nota-gmu {
   margin-top: 2rem;
   padding-top: 1.25rem;
   border-top: 1px solid #ddd;
   font-size: 13px;
   line-height: 1.6;
   color: #1a1a1a;
 }

 .nota-gmu .nota-titulo {
   font-weight: 500;
   margin-bottom: 6px;
 }

 .nota-gmu ul {
   margin: 4px 0 0 20px;
   padding: 0;
 }

 .nota-gmu ul li {
   margin-bottom: 4px;
 }


 /* Botón imprimir */
 .btn-bar {
   display: flex;
   gap: 10px;
   justify-content: flex-end;
   margin-top: 1.5rem;
   padding-top: 1rem;
   border-top: 1px solid #eee;
 }

 .btn-secondary {
   padding: 8px 22px;
   border-radius: 6px;
   font-size: 13px;
   font-family: sans-serif;
   cursor: pointer;
   background: #fff;
   color: #555;
   border: 1px solid #ccc;
   transition: background .15s;
 }

 .btn-secondary:hover {
   background: #f5f5f5;
 }

 .btn-primary {
   padding: 8px 22px;
   border-radius: 6px;
   font-size: 13px;
   font-family: sans-serif;
   cursor: pointer;
   background: #185fa5;
   color: #fff;
   border: none;
   transition: background .15s;
 }

 .btn-primary:hover {
   background: #124e8a;
 }


 .radio-group {
   display: flex;
   flex-direction: column;
   gap: 8px;
   margin-bottom: 16px;
 }

 .radio-group label {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: 13px;
   color: #444;
   cursor: pointer;
   padding: 7px 10px;
   border-radius: 6px;
   border: 1px solid #e0e0e0;
   transition: background .12s, border-color .12s;
 }

 .radio-group label:hover {
   background: #f5f5f5;
   border-color: #ccc;
 }

 .radio-group input[type="radio"] {
   accent-color: #185fa5;
   width: 15px;
   height: 15px;
   cursor: pointer;
   flex-shrink: 0;
 }

 .radio-group label.selected {
   background: #e6f1fb;
   border-color: #378add;
   color: #185fa5;
 }


 .field select {
   padding: 8px;
   border: 1px solid #ccc;
   border-radius: 6px;
   font-size: 14px;
   width: 100%;
   font-family: sans-serif;
   background: #fff;
   -moz-appearance: textfield;
   appearance: auto;
 }

 .field select:focus {
   outline: none;
   border-color: #378add;
   box-shadow: 0 0 0 2px rgba(55, 138, 221, .15);
 }

 .field select:disabled {
   background: #f5f5f5;
   color: #aaa;
   cursor: not-allowed;
 }

 /* Toggle kiosko de temporada */
 .toggle-field {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 10px 14px;
   border: 1px solid #e0e0e0;
   border-radius: 8px;
   margin-bottom: 16px;
   cursor: pointer;
   transition: background .12s, border-color .12s;
   user-select: none;
 }

 .toggle-field:hover {
   background: #f5f5f5;
 }

 .toggle-field.active {
   background: #e6f1fb;
   border-color: #378add;
 }

 .toggle-field .toggle-label {
   font-size: 13px;
   font-weight: 500;
   color: #1a1a1a;
 }

 .toggle-field.active .toggle-label {
   color: #185fa5;
 }

 /* Switch visual */
 .switch {
   position: relative;
   width: 40px;
   height: 22px;
   flex-shrink: 0;
 }

 .switch input {
   opacity: 0;
   width: 0;
   height: 0;
 }

 .slider {
   position: absolute;
   inset: 0;
   background: #ccc;
   border-radius: 22px;
   transition: background .2s;
   cursor: pointer;
 }

 .slider::before {
   content: '';
   position: absolute;
   width: 16px;
   height: 16px;
   left: 3px;
   top: 3px;
   background: #fff;
   border-radius: 50%;
   transition: transform .2s;
 }

 .switch input:checked+.slider {
   background: #185fa5;
 }

 .switch input:checked+.slider::before {
   transform: translateX(18px);
 }

 /* Select de zonas con tarifa */
 .zona-row {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 12px;
   margin-bottom: 12px;
 }


 /* Fila de entrada: select + input + botón */
 .entrada-row {
   display: grid;
   grid-template-columns: 1fr 90px auto;
   gap: 8px;
   align-items: end;
   margin-bottom: 16px;
 }

 .entrada-row select {
   padding: 8px;
   border: 1px solid #ccc;
   border-radius: 6px;
   font-size: 13px;
   font-family: sans-serif;
   background: #fff;
   width: 100%;
 }

 .entrada-row select:focus {
   outline: none;
   border-color: #378add;
   box-shadow: 0 0 0 2px rgba(55, 138, 221, .15);
 }

 .entrada-row input[type="text"] {
   padding: 8px;
   border: 1px solid #ccc;
   border-radius: 6px;
   font-size: 14px;
   font-family: sans-serif;
   width: 100%;
   text-align: right;
 }

 .entrada-row input[type="text"]:focus {
   outline: none;
   border-color: #378add;
   box-shadow: 0 0 0 2px rgba(55, 138, 221, .15);
 }

 .btn-add {
   padding: 8px 14px;
   border-radius: 6px;
   font-size: 13px;
   font-family: sans-serif;
   cursor: pointer;
   background: #185fa5;
   color: #fff;
   border: none;
   white-space: nowrap;
   transition: background .15s;
   height: 36px;
 }

 .btn-add:hover {
   background: #124e8a;
 }

 .entrada-labels {
   display: grid;
   grid-template-columns: 1fr 90px auto;
   gap: 8px;
   margin-bottom: 4px;
 }

 .entrada-labels span {
   font-size: 13px;
   color: #666;
 }

 /* Tabla de conceptos añadidos */
 .conceptos-tabla {
   width: 100%;
   border-collapse: collapse;
   margin-top: 4px;
   margin-bottom: 12px;
   font-size: 13px;
 }

 .conceptos-tabla thead th {
   background: #f0f0f0;
   padding: 7px 10px;
   text-align: left;
   font-weight: 500;
   color: #555;
   border-bottom: 1px solid #ddd;
 }

 .conceptos-tabla thead th:last-child {
   text-align: right;
 }

 .conceptos-tabla thead th:nth-child(2) {
   text-align: center;
 }

 .conceptos-tabla tbody tr {
   border-bottom: 1px solid #eee;
 }

 .conceptos-tabla tbody td {
   padding: 7px 10px;
   vertical-align: middle;
 }

 .conceptos-tabla tbody td:last-child {
   text-align: right;
   font-weight: 500;
 }

 .conceptos-tabla tbody td:nth-child(2) {
   text-align: center;
 }

 /* input dentro de la tabla */
 .input2 {
   width: 60px;
   padding: 4px 6px;
   border: 1px solid #ccc;
   border-radius: 4px;
   font-size: 13px;
   text-align: right;
   font-family: sans-serif;
 }

 .input2:focus {
   outline: none;
   border-color: #378add;
 }

 /* botones dentro de tabla */
 .botonBorrar {
   background: none;
   border: none;
   cursor: pointer;
   color: #999;
   padding: 2px 4px;
   border-radius: 4px;
   transition: color .15s;
   vertical-align: middle;
   margin-left: 4px;
 }

 .botonBorrar:hover {
   color: #c0392b;
 }

 .botoncheck {
   background: #185fa5;
   color: #fff;
   border: none;
   border-radius: 4px;
   padding: 3px 7px;
   font-size: 12px;
   cursor: pointer;
   margin-right: 4px;
   vertical-align: middle;
 }

 .botoncheck:hover {
   background: #124e8a;
 }

 /* Total fianza */
 .total-fianza-bar {
   display: flex;
   justify-content: space-between;
   align-items: center;
   background: #f5f5f5;
   border-radius: 10px;
   padding: 14px 18px;
   margin-top: 8px;
 }

 .total-fianza-bar .rl {
   font-size: 15px;
   font-weight: 500;
   color: #1a1a1a;
 }

 .total-fianza-bar .rv {
   font-size: 22px;
   font-weight: 600;
   color: #185fa5;
 }

 /* Notas informativas */
 .nota-info {
   margin-top: 2rem;
   padding-top: 1.25rem;
   border-top: 1px solid #ddd;
   font-size: 13px;
   line-height: 1.7;
   color: #444;
 }

 .nota-info p {
   margin: 0 0 8px;
 }

 /* Ejemplo desplegable */
 .ejemplo-toggle {
   margin-top: 1rem;
   background: none;
   border: 1px solid #ccc;
   border-radius: 6px;
   padding: 8px 14px;
   font-size: 13px;
   font-family: sans-serif;
   cursor: pointer;
   color: #555;
   transition: background .15s;
 }

 .ejemplo-toggle:hover {
   background: #f5f5f5;
 }

 .ejemplo-content {
   display: none;
   margin-top: 10px;
   padding: 14px;
   background: #fafafa;
   border: 1px solid #e8e8e8;
   border-radius: 8px;
   font-size: 12px;
 }

 .ejemplo-content.open {
   display: block;
 }

 .ejemplo-content table {
   width: 100%;
   border-collapse: collapse;
   margin-bottom: 12px;
 }

 .ejemplo-content th,
 .ejemplo-content td {
   border: 1px solid #ddd;
   padding: 5px 8px;
   font-size: 12px;
 }

 .ejemplo-content th {
   background: #f2f2f2;
 }

 .ejemplo-content p {
   margin: 0 0 8px;
 }


 .tab-bar {
   display: flex;
   gap: 6px;
   margin-bottom: 1.25rem;
   flex-wrap: wrap;
 }

 .tab {
   padding: 6px 14px;
   border-radius: 6px;
   border: 1px solid #ccc;
   font-size: 13px;
   cursor: pointer;
   background: #fff;
   color: #555;
   transition: background .15s;
 }

 .tab.active {
   background: #e6f1fb;
   color: #185fa5;
   border-color: transparent;
 }

 .tab:hover:not(.active) {
   background: #f5f5f5;
 }

 .panel {
   display: none;
 }

 .panel.active {
   display: block;
 }

 /* Checkbox fiestas */
 .check-field {
   display: flex;
   align-items: center;
   gap: 10px;
   padding: 9px 12px;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   cursor: pointer;
   font-size: 13px;
   color: #444;
   margin-bottom: 12px;
   transition: background .12s, border-color .12s;
   user-select: none;
 }

 .check-field:hover {
   background: #f5f5f5;
   border-color: #ccc;
 }

 .check-field.checked {
   background: #e6f1fb;
   border-color: #378add;
   color: #185fa5;
 }

 .check-field input[type="checkbox"] {
   accent-color: #185fa5;
   width: 15px;
   height: 15px;
   cursor: pointer;
   flex-shrink: 0;
 }

 /* Aviso tarifa anual */
 .aviso-anual {
   font-size: 12px;
   color: #a05c00;
   background: #fff7e6;
   border: 1px solid #f5d28a;
   border-radius: 6px;
   padding: 6px 10px;
   margin-bottom: 12px;
 }

 /*Autoliquidacion de tasas */
 .total-bar {
   display: flex;
   justify-content: space-between;
   align-items: center;
   background: #f5f5f5;
   border-radius: 10px;
   padding: 14px 18px;
   margin-top: 8px;
 }

 .total-bar .label {
   font-size: 15px;
   font-weight: 500;
 }

 .total-bar .value {
   font-size: 22px;
   font-weight: 600;
   color: #185fa5;
 }