:root{
      --blue:#1d63b8;
      --blue-2:#0f4f97;
      --text:#1f2a37;
      --muted:#6b7280;
      --white:#ffffff;
      --border:#dbe3f3;
      --bg:#f3f7ff;
      --danger:#b42318;
      --danger-bg:#fef3f2;
      --shadow: 0 8px 24px rgba(15,79,151,.08);
    }

    *{ box-sizing:border-box; }
    body{
      margin:0;
      font-family: "Helvetica LT Std", "Helvetica Neue", Helvetica, Arial, sans-serif;
      background:#fff;
      color:var(--text);
    }

    .page{
      max-width:1100px;
      margin:0 auto;
      padding:22px 16px 40px;
    }

    .brand{
      margin:0 0 14px;
      color:var(--blue-2);
      font-size:30px;
      letter-spacing:.4px;
      font-weight:800;
    }

    .content{ padding-top:6px; }

    .top-menu{
      background:#bfced4 url('assets/novauintsp/fondoMenuTexto.gif') repeat-x left 50%;
      border:1px solid var(--border);
      border-radius:0;
      padding:14px 16px 10px;
    }

    .menu-title{
      font-weight:700;
      color:var(--blue-2);
      font-size:18px;
      margin-bottom:10px;
    }

    .menu-steps{
      display:flex;
      gap:18px;
      align-items:center;
      margin-bottom:10px;
      flex-wrap:wrap;
    }

    .step{
      display:flex;
      align-items:center;
      gap:10px;
      padding:8px 10px;
      border-radius:999px;
      color:var(--muted);
      background:transparent;
    }

    .step--active{
      position:relative;
      background:transparent url('assets/novauintsp/pestanya.png') no-repeat left 50%;
      border:0;
      color:#10465e;
      box-shadow:none;
      border-radius:0;
      padding-left:24px;
      padding-right:24px;
      height:2.5em;
      align-items:flex-start;
    }

    .step-dot{
      width:1em;
      height:1em;
      border-radius:0;
      background:url('assets/novauintsp/icoflecha.jpg') no-repeat left 50%;
      background-size:contain;
      flex:0 0 auto;
      margin-top:0.1em;
    }

    .step--active .step-dot{
      background:url('assets/novauintsp/icoflecha.jpg') no-repeat left 50%;
      background-size:contain;
    }

    .step--active::before,
    .step--active::after{
      content:'';
      position:absolute;
      top:0;
      width:14px;
      height:2.6em;
      pointer-events:none;
    }
    .step--active::before{
      left:-14px;
      background:url('assets/novauintsp/pestanyaIzq.png') no-repeat right 50%;
      background-size:contain;
    }
    .step--active::after{
      right:-14px;
      background:url('assets/novauintsp/pestanyaDch.png') no-repeat left 50%;
      background-size:contain;
    }

    .menu-divider{
      height:20px;
      background:url('assets/novauintsp/barra.png') repeat-x left 50%;
      border-radius:0;
      margin-top:-5px;
      margin-left:-16px;
      margin-right:-16px;
    }

    .card{
      border:1px solid var(--border);
      border-radius:12px;
      margin-top:16px;
      box-shadow:var(--shadow);
      background:var(--white);
    }

    .card--form{ padding:16px; }

    .card-header{
      font-weight:800;
      color:var(--blue-2);
      margin-bottom:14px;
      font-size:16px;
    }

    form{ margin:0; }

    .field-row{
      display:grid;
      grid-template-columns:260px 1fr 220px;
      gap:12px;
      align-items:center;
      padding:10px 0;
      border-top:1px dashed rgba(219,227,243,.95);
    }
    .field-row:first-of-type{
      border-top:none;
      padding-top:0;
    }

    .label-col{ text-align:left; }
    .field-label{
      font-weight:700;
      color:#111827;
      display:inline-block;
      line-height:1.2;
    }

    .input{
      width:100%;
      padding:10px 12px;
      border:1px solid var(--border);
      border-radius:8px;
      font-size:15px;
      outline:none;
      background:#fff;
    }
    .input:focus{
      border-color:rgba(29,99,184,.55);
      box-shadow:0 0 0 3px rgba(29,99,184,.12);
    }

    .input-col--date{
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }

    .input--sm{ max-width:70px; }
    .input--md{ max-width:120px; }

    .help-col{ text-align:left; }
    .help{
      color:var(--muted);
      font-size:13px;
    }

    .slash{
      color:var(--muted);
      user-select:none;
      font-weight:700;
    }

    .actions{
      display:flex;
      gap:12px;
      margin-top:12px;
      margin-bottom:6px;
      flex-wrap:wrap;
    }

    .btn{
      border-radius:10px;
      border:1px solid var(--border);
      padding:10px 16px;
      font-size:15px;
      cursor:pointer;
      font-weight:800;
      background:#fff;
      color:var(--blue-2);
      transition:filter .12s ease-in-out;
    }
    .btn:hover{ filter:brightness(.98); }

    .btn--primary{
      background:var(--blue);
      border-color:var(--blue);
      color:var(--white);
    }

    .required-note{
      color:var(--muted);
      font-size:13px;
      margin-top:6px;
    }

    .help-block{
      margin-top:10px;
      color:var(--muted);
      font-size:13px;
    }

    .link{
      color:var(--blue);
      text-decoration:none;
      font-weight:800;
    }
    .link:hover{ text-decoration:underline; }

    .section-title{
      display:flex;
      align-items:center;
      gap:14px;
      margin-top:22px;
      margin-bottom:12px;
    }

    .section-bar{
      display:none;
    }

    .section-icon{
      width:1.5em;
      height:1.5em;
      border-radius:0;
      background:url('assets/novauintsp/icoTitulo.gif') no-repeat left 50%;
      border:0;
      background-size:contain;
    }

    .section-text{
      font-weight:900;
      color:var(--blue-2);
      font-size:18px;
    }

    table.result-table{
      width:100%;
      border-collapse:collapse;
      border:1px solid var(--border);
      border-radius:12px;
      overflow:hidden;
      background:var(--white);
    }

    .result-table td{
      padding:16px;
    }

    .txt-error{
      display:inline-block;
      padding:10px 12px;
      background:var(--danger-bg);
      color:var(--danger);
      border:1px solid rgba(180,35,24,.18);
      border-radius:10px;
      font-weight:900;
    }

    @media (max-width:900px){
      .field-row{
        grid-template-columns:1fr;
        gap:6px;
      }
      .help-col{ padding-bottom:8px; }
      .brand{ font-size:26px; }
    }

    /*********************************************************************************/
    /* OG-like styles (sin JS, HTML+CSS)                                           */
    /*********************************************************************************/
    H1#encabezado{ DISPLAY:none; }

    BODY{
      FONT-SIZE: 68.75%;
      BACKGROUND: #f5f3f3;
      FONT-FAMILY: verdana, arial, geneva, helvetica, sans-serif;
      TEXT-ALIGN: left;
      margin:0;
    }

    .margenContenidos{
      padding-left:1em;
      padding-right:1em;
      background: #fff;
      clear: both;
      height:87%;
      min-height: 70vh;
    }

    .div_general{ clear:both; }

    /**************************/
    /* CAPAS MENU SUPERIOR      */
    /**************************/
    .menuSuperior2{
      BORDER-RIGHT: #bfced4 1px solid;
      BACKGROUND: url('assets/novauintsp/fondoMenuTexto.gif') repeat-x left 50%;
      BORDER-LEFT: #bfced4 1px solid;
      HEIGHT: 5.3em;
      clear: both;
    }

    .menuTitulo2{
      FONT-WEIGHT: bold;
      FONT-SIZE: 1.2em;
      padding-LEFT: 1.8em;
      COLOR: #10465e;
      FONT-FAMILY: verdana;
      padding-top:0.5em;
    }

    .div_2nivel{
      padding-top: 1em;
      padding-left: 2em;
    }

    .letraAzul{
      float:left;
      color: #2D4E86;
      background-color: transparent;
    }

    .menuFlecha2{
      margin-top: 0.4em;
      background: url('assets/novauintsp/icoflecha.jpg') no-repeat left 50%;
      float: left;
      width: 1em;
      margin-right: 0.8em;
      padding-top: 0.2em;
      height: 1em;
    }

    .menuSeccion2{
      float:left;
      width:auto;
      margin-right:2em;
      padding-top:0.4em;
    }

    .menuPestanya2{
      background: url('assets/novauintsp/pestanya.png') no-repeat left 50%;
      float:left;
      height:2.5em;
      padding-left: 0.6em;
      padding-right: 0.6em;
    }

    .menuPestanyaIzq2{
      background: url('assets/novauintsp/pestanyaIzq.png') no-repeat right 50%;
      float:left;
      width: 14px;
      height: 2.6em;
    }

    .menuPestanyaDch2{
      background: url('assets/novauintsp/pestanyaDch.png') no-repeat left 50%;
      float:left;
      width: 14px;
      height: 2.6em;
      margin-right:2em;
    }

    .menuTxtPestanya2{
      padding-top:0.4em;
      float:left;
      width:auto;
      font-weight:bold;
      color:#ffffff;
    }

    .menuBarra2{
      margin-bottom:1em;
      BORDER-RIGHT: #bfced4 1px solid;
      BORDER-LEFT: #bfced4 1px solid;
      height:20px;
      BACKGROUND: url('assets/novauintsp/barra.png') repeat-x;
      TEXT-ALIGN: right;
      margin-top:-5px;
      clear: both;
    }

    .right{ float:right; }

    /**************************/
    /* BUSCADOR / FORMULARIO    */
    /**************************/
    .buscadorInternoMod{
      margin-left:0.5%;
      width: 99%;
    }

    .buscIntCab{
      FLOAT: left;
      WIDTH: 100%;
      BACKGROUND-COLOR: #305880;
    }

    .buscIntCabTexto{
      MARGIN-TOP: 0.2em;
      FLOAT: left;
      MARGIN-BOTTOM: 0.2em;
      MARGIN-LEFT: 0.45em;
    }

    .letraBlancaBold{
      font-weight:bold;
      color:#ffffff;
      background-color: transparent;
    }

    .buscIntCamposEv{
      BORDER-TOP: #ffffff 0.2em solid;
      FLOAT: left;
      WIDTH: 100%;
      BORDER-BOTTOM: #ffffff 0.3em solid;
    }

    .div_cuerpo{
      background:#CED7DE;
    }

    .formularioCamposLinea{
      FLOAT: left;
      WIDTH: 100%;
      HEIGHT: auto;
    }

    .formCuadroIzq{
      float:left;
      width:15em;
      height:auto;
      padding-top:1em;
      padding-left:1.5em;
      padding-right:0.5em;
    }

    .formCuadroCentro{
      float:left;
      width: 18em;
      height:auto;
      padding-top:0.5em;
      padding-left:0.5em;
      padding-right:0.5em;
    }

    .formCuadroDerColor{
      margin-top:0.6em;
      margin-left:1em;
      padding-top:0.4em;
      padding-bottom:0.4em;
      background:#E6EAF0;
      float:left;
      width:18%;
      height:100%;
      text-align:center;
    }

    .letraNegraBold{
      color:#000000;
      font-weight:bold;
      background-color: transparent;
      display:inline;
    }

    .letraNegra{
      color:#000000;
      background-color: transparent;
    }

    .input_cuerpo{
      font-size:1em;
      color:#000000;
    }

    .botonSINimgen{
      background: linear-gradient(to bottom, #6882a9 0%, #58749f 45%, #45628d 46%, #344d74 100%);
      border:1px solid #2f476b;
      border-top-color:#7f98bc;
      border-left-color:#7f98bc;
      border-right-color:#253a58;
      border-bottom-color:#20324e;
      border-radius: 3px;
      cursor: pointer;
      margin-left: 0 !important;
      width:92px;
      height:24px;
      font-size:1em;
      color:#eef4ff;
      font-family: "Helvetica LT Std", "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight:bold;
      text-align:center;
      padding: 0;
      display:inline-block;
      box-shadow:
        inset 0 1px 0 rgba(210,224,244,.62),
        inset 0 -1px 0 rgba(18,32,54,.45),
        0 1px 0 rgba(255,255,255,.25);
      text-shadow:0 -1px 0 rgba(20,35,60,.55);
      transition: background .1s ease-in-out, border-color .1s ease-in-out;
    }

    .botonSINimgen:hover{
      background: linear-gradient(to bottom, #748db3 0%, #6380ab 45%, #4f6d99 46%, #3c5881 100%);
      border-top-color:#91a9cb;
      border-left-color:#91a9cb;
      border-right-color:#294060;
      border-bottom-color:#243955;
    }

    .botonSINimgen:active{
      background: linear-gradient(to bottom, #2b4265 0%, #37537d 50%, #425f8a 100%);
      border-top-color:#21334f;
      border-left-color:#21334f;
      border-right-color:#7590b6;
      border-bottom-color:#7590b6;
      box-shadow: inset 0 1px 2px rgba(15,27,47,.55);
      text-shadow:0 -1px 0 rgba(10,20,36,.65);
    }

    .botonSINimgen + .botonSINimgen{
      margin-left: 8px !important;
    }

    .buscIntCamposEv .formCuadroCentro{
      white-space: nowrap;
    }

    .separacion7em{
      width: 100%;
      height:0.7em;
      clear:both;
    }

    .buscIntCamposGral{
      float:left;
      width: 100%;
      height: auto;
      BACKGROUND-COLOR: #ced7de;
    }

    .buscIntCamposOrden{
      PADDING-RIGHT: 0.5em;
      PADDING-LEFT: 1.5em;
      FLOAT: left;
      WIDTH: 65%;
      PADDING-TOP: 0.5em;
      HEIGHT: auto;
    }

    .comentarioPieBuscInt{
      float:left;
      margin-top:0.1em;
      margin-right:0.4em;
    }

    .letraAzulBold{
      float:left;
      color: #2D4E86;
      font-weight:bold;
      background-color: transparent;
    }

    .letraAzulBold a{
      color: #2D4E86;
      font-weight:bold;
      background-color: transparent;
      text-decoration:none;
    }
    .letraAzulBold a:hover{
      text-decoration:underline;
    }

    /**************************/
    /* TITULO RESULTADO        */
    /**************************/
    .tituloPuntos{
      margin-bottom:1em;
      margin-left:0.5em;
      margin-right:0.5em;
      border:0.1em solid #ffffff;
      clear: both;
      float:left;
      width: 100%;
    }

    .separacion10em{
      width: 100%;
      height:1em;
      clear:both;
    }

    .iconoTitulo{
      BACKGROUND: url('assets/novauintsp/icoTitulo.gif') no-repeat left 50%;
      FLOAT: left;
      WIDTH: 1.5em;
      HEIGHT: 1.5em;
      margin-left:0.2em;
      margin-top:0.2em;
    }

    .leftFinal{
      border-bottom:0.1em dashed #2D4E86;
      height:1.4em;
      margin-left:1.7em;
      float:left;
      width:auto;
    }

    .letraTituloPuntos{
      float:left;
      color:#2D4E86;
      background-color: inherit;
      font-weight:bold;
      font-size:1.1em;
      padding-top:0.2em;
    }

    /**************************/
    /* TABLA RESULTADO         */
    /**************************/
    .tablaResultado{
      font-size:1em;
      border:1px solid #ccd8dd;
      width:99%;
      height:2em;
      margin-left:0.5%;
      border-collapse:collapse;
      text-align:center;
      background:#fff;
    }

    .tablaResultado td{
      padding:.4em;
      vertical-align: middle;
    }

    .txt_error{
      color:#800000;
      background-color: transparent;
      font-weight:bold;
    }

    /*********************************************************************************/
    /* LOGIN (ntsp.dev UX)                                                           */
    /*********************************************************************************/
    #loginRoot{
      font-family: "Helvetica LT Std", "Helvetica Neue", Helvetica, Arial, sans-serif;
    }

    /* Ocultamos la pantalla de consulta */
    .div_general{
      display:block !important;
    }

    #loginRoot .hero-text {
      position: fixed;
      bottom: -0.15em;
      right: -0.05em;
      font-size: clamp(10rem, 35vw, 28rem);
      font-weight: bold;
      color: #000;
      opacity: 0.06;
      text-transform: lowercase;
      white-space: nowrap;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
      line-height: 0.8;
    }

    #loginRoot .top-header {
      background-color: #666666;
      height: 45px;
      display: flex;
      align-items: center;
      padding: 0 20px;
      color: #ffffff;
      position: relative;
      z-index: 2;
    }
    #loginRoot .top-header h1 {
      font-size: 18px;
      font-weight: bold;
      margin: 0;
      color:#fff;
    }

    #loginRoot .sub-header {
      background-color: #BABECC;
      height: 15px;
      width: 100%;
      position: relative;
      z-index: 1;
    }

    #loginRoot .spacer{
      height:30px;
    }

    #loginRoot .main-content{
      width: 100%;
      max-width: 730px;
      margin: 0 auto;
      padding: 0 12px;
      box-sizing: border-box;
      position: relative;
      z-index: 1;
    }

    #loginRoot .titol-apartat{
      font-size: 18px;
      font-weight: bold;
      color: #333;
      border-bottom: 1px solid #666;
      padding-bottom: 5px;
      margin-bottom: 20px;
      text-align: left;
    }

    #loginRoot .form-box{
      background-color: #f3f3f3;
      padding: 25px;
      border: 0;
    }

    #loginRoot .form-table{
      width: 100%;
      border-collapse: collapse;
    }
    #loginRoot .form-table td{
      padding: 8px;
      vertical-align: middle;
    }

    #loginRoot .label-text{
      font-size: 14px;
      font-weight: bold;
      text-align: right;
      width: 30%;
      color: #333;
    }

    #loginRoot input[type="text"],
    #loginRoot input[type="password"]{
      font-family: "Helvetica LT Std", Helvetica, Arial, sans-serif;
      font-size: 13px;
      padding: 4px;
      border: 1px solid #999;
      width: 100%;
      max-width: 200px;
      box-sizing: border-box;
      background:#fff;
      color:#111;
    }

    #loginRoot .botons{
      background-color: #e0e0e0;
      border: 1px solid #999;
      padding: 3px 15px;
      font-size: 13px;
      cursor: pointer;
      font-weight: normal;
      color: #000;
      height: 26px;
    }
    #loginRoot .botons:hover{
      background-color: #d0d0d0;
    }

    #loginRoot #status-msg{
      margin-top: 10px;
      font-size: 12px;
      text-align: center;
      color: #666;
      min-height: 14px;
    }

    #loginRoot .footer{
      position: fixed;
      bottom: 0;
      width: 100%;
      background-color: #f3f3f3;
      height: 25px;
      display: flex;
      justify-content: flex-end;
      align-items: center;
      padding: 0 20px;
      font-size: 11px;
      color: #666;
      border-top: 1px solid #ccc;
      box-sizing: border-box;
      z-index: 3;
    }

    /* Toggle dark mode */
    .themeToggle{
      position: fixed;
      bottom: 10px;
      right: 10px;
      z-index: 9999;
      border:1px solid rgba(123,145,176,.45);
      background:transparent;
      color:#1f2a37;
      border-radius:4px;
      width:30px;
      height:30px;
      padding:0;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      background-repeat:no-repeat;
      background-position:center;
      background-size:16px 16px;
      opacity:.68;
      transition: opacity .15s ease, border-color .15s ease;
    }

    .themeToggle:hover{
      opacity:.95;
    }

    body.dark-mode{
      background:#1b1f26;
      color:#dbe2ea;
    }
    body.dark-mode .margenContenidos{
      background:#242a34;
    }
    body.dark-mode .menuSuperior2{
      border-left-color:#3f4b5d;
      border-right-color:#3f4b5d;
      background:#1f2733 url('assets/novauintsp/fondoMenuTexto.gif') repeat-x left 50%;
      background-blend-mode:multiply;
    }
    body.dark-mode .menuTitulo2,
    body.dark-mode .menuSeccion2,
    body.dark-mode .letraTituloPuntos,
    body.dark-mode .letraNegra,
    body.dark-mode .letraNegraBold{
      color:#dbe2ea;
    }
    body.dark-mode .menuBarra2{
      border-left-color:#3f4b5d;
      border-right-color:#3f4b5d;
      background:#1b2430 url('assets/novauintsp/barra.png') repeat-x left 50%;
      background-blend-mode:multiply;
    }
    body.dark-mode .buscIntCab{
      background-color:#253a56;
    }
    body.dark-mode .div_cuerpo,
    body.dark-mode .buscIntCamposGral{
      background:#2c3441;
    }
    body.dark-mode .formCuadroDerColor{
      background:#374355;
    }
    body.dark-mode .input_cuerpo{
      background:#1e2430;
      color:#f2f5fa;
      border:1px solid #55637a;
    }
    body.dark-mode .botonSINimgen{
      background-color:#2b5f96;
    }
    body.dark-mode .txt_error{
      color:#ff9e9e;
    }
    body.dark-mode .themeToggle{
      background:transparent;
      color:#e8edf5;
      border-color:rgba(220,230,245,.45);
    }
