/* =====================================================================
   Sistema visual · Plataforma de administración de condominios
   =====================================================================

   Extraído de la maqueta navegable. Es la única fuente del diseño: las
   plantillas usan estas clases y no definen estilos propios.

   REGLAS DE USO, que es lo que se pierde cuando alguien más toca el CSS:

   1. El naranja es solo para la acción principal de la pantalla. Una por
      pantalla. Nunca para decorar, para títulos ni para iconos.
   2. El rojo es solo para lo vencido o rechazado. No para "importante".
   3. Ningún estado depende solo del color: siempre lleva texto. Un
      semáforo sin palabras no lo lee quien no distingue los colores, y
      tampoco quien imprime en blanco y negro.
   4. Los montos van alineados a la derecha y en tabular, para que las
      cifras se comparen de un vistazo.
   5. Cada cifra lleva su unidad y su período. "537 UF al año", no "537".
   6. Bajo 700px las tablas se vuelven fichas: cada celda con su etiqueta
      en data-label. Sin eso, la tabla se corta y no se lee en el teléfono.
   7. Las áreas táctiles nunca bajan de 44px en pantallas sin puntero
      fino. Un conserje registra visitas con el pulgar.

   Estructura del archivo:
     1. Tokens          colores, tipografía, medidas
     2. Base            cuerpo, tipografía, foco visible
     3. Disposición     rail, contenido, ingreso
     4. Componentes     botones, tarjetas, tablas, listas, avisos, píldoras
     5. Formularios
     6. Adaptación      puntos de quiebre y preferencias del sistema
   ===================================================================== */

:root{
    --naranja:#E8722F;
    --naranja-oscuro:#B4531B;
    --crema:#F2EFE9;
    --carbon:#22201E;
    --carbon-2:#33302C;
    --texto:#1C1A18;
    --texto-2:#6B665F;
    --linea:#E3DED5;
    --rojo:#A32D2D;
    --rojo-bg:#FBEDEB;
    --ambar:#8A5A0B;
    --ambar-bg:#FBF1DE;
    --verde:#3B6D11;
    --verde-bg:#EDF3E4;
  }
  *{box-sizing:border-box}
  body{
    margin:0;background:#fff;color:var(--texto);
    font:400 15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  .cifra{font-family:Georgia,"Iowan Old Style","Times New Roman",serif;font-weight:400;letter-spacing:-.01em}

  .app{display:grid;grid-template-columns:212px minmax(0,1fr);min-height:100vh}
  .app > *{min-width:0}

  .rail{background:var(--carbon);color:#CFC9C0;padding:18px 0;display:flex;flex-direction:column}
  .marca{display:flex;align-items:center;gap:9px;padding:0 18px 18px}
  .marca b{color:#fff;font-weight:500;font-size:15px}
  .logo{width:26px;height:26px;border-radius:6px;background:var(--naranja);display:grid;place-items:center;color:#fff;font-size:14px}
  .rail nav{display:flex;flex-direction:column;gap:1px;padding:0 8px}
  .rail button{
    all:unset;cursor:pointer;padding:9px 10px;border-radius:7px;font-size:13.5px;
    color:#CFC9C0;display:flex;align-items:center;gap:9px;
  }
  .rail button:hover{background:var(--carbon-2)}
  .rail button[aria-current="true"]{background:var(--carbon-2);color:#fff}
  .rail button:focus-visible{outline:2px solid var(--naranja);outline-offset:1px}
  .rail .grupo{font-size:11px;color:#7C766D;padding:16px 10px 6px}
  .rail .pie{margin-top:auto;padding:14px 18px 0;font-size:12px;color:#7C766D;border-top:1px solid var(--carbon-2)}

  .barra{
    background:var(--crema);border-bottom:1px solid var(--linea);
    padding:11px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  }
  .barra .sel{font-size:13.5px;color:var(--texto);background:#fff;border:1px solid var(--linea);border-radius:7px;padding:5px 11px}
  .barra .meta{font-size:13px;color:var(--texto-2)}
  .barra .der{margin-left:auto;display:flex;align-items:center;gap:12px}

  main{padding:22px 24px 48px;max-width:1080px}
  h1{font-size:19px;font-weight:500;margin:0 0 3px}
  .sub{color:var(--texto-2);font-size:13.5px;margin:0 0 20px;max-width:70ch}
  h2{font-size:14px;font-weight:500;margin:28px 0 10px}
  .kpis + h2{margin-top:26px}
  h2:first-of-type{margin-top:0}

  .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px}
  .kpi{background:var(--crema);border-radius:10px;padding:13px 15px}
  .kpi p{margin:0;font-size:12.5px;color:var(--texto-2)}
  .kpi .v{font-size:27px;margin-top:3px;display:block}
  .kpi .v.mal{color:var(--rojo)}

  .lista{border:1px solid var(--linea);border-radius:10px;overflow:hidden}
  .fila{display:flex;gap:13px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--linea)}
  .fila:last-child{border-bottom:0}
  .fila .cuerpo{flex:1;min-width:0}
  .fila p{margin:0;font-size:14px}
  .fila small{color:var(--texto-2);font-size:12px;display:block;margin-top:1px}
  .marca-estado{width:3px;align-self:stretch;border-radius:0;background:var(--linea)}
  .marca-estado.rojo{background:var(--rojo)}
  .marca-estado.ambar{background:#D9962B}
  .marca-estado.verde{background:#7FA84A}

  .pill{font-size:11.5px;padding:3px 9px;border-radius:20px;white-space:nowrap}
  .pill.rojo{background:var(--rojo-bg);color:var(--rojo)}
  .pill.ambar{background:var(--ambar-bg);color:var(--ambar)}
  .pill.verde{background:var(--verde-bg);color:var(--verde)}
  .pill.gris{background:var(--crema);color:var(--texto-2)}

  .aviso{display:flex;gap:11px;align-items:center;padding:12px 14px;border-radius:10px;font-size:13.5px}
  .aviso.rojo{background:var(--rojo-bg);color:var(--rojo)}
  .aviso.ambar{background:var(--ambar-bg);color:var(--ambar)}
  .aviso .txt{flex:1}

  button.accion{
    all:unset;cursor:pointer;font-size:13.5px;padding:8px 15px;border-radius:8px;
    border:1px solid var(--linea);background:#fff;color:var(--texto)
  }
  button.accion:hover{border-color:#C9C2B6}
  button.accion.primaria{background:var(--naranja);border-color:var(--naranja);color:#fff}
  button.accion.primaria:hover{background:var(--naranja-oscuro);border-color:var(--naranja-oscuro)}
  button.accion:focus-visible{outline:2px solid var(--carbon);outline-offset:2px}
  .acciones{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
  button.accion.chico{font-size:12.5px;padding:5px 11px}
  .detalle{border-bottom:1px solid var(--linea);background:#FBFAF8;padding:14px 16px 16px}
  .tel .detalle{border:1px solid var(--linea);border-radius:10px;padding:12px;margin-top:10px}
  .tel .campos input,.tel .campos select{min-width:0;width:100%}
  .tel .campos > div{flex:1 1 100%}
  .detalle h4{font-size:13.5px;font-weight:500;margin:0 0 3px}
  .detalle .guia{font-size:12.5px;color:var(--texto-2);margin:0 0 12px;max-width:64ch}
  .campos{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
  .campos .check{gap:8px;margin-bottom:2px}
  .campos .check input{margin:0}
  .campos > div > label{display:block;font-size:12px;color:var(--texto-2);margin-bottom:4px}
  .campos input,.campos select{
    padding:7px 10px;font-size:13.5px;border:1px solid var(--linea);border-radius:7px;
    background:#fff;color:var(--texto);font-family:inherit;min-width:170px
  }
  .campos input:focus,.campos select:focus{outline:2px solid var(--carbon);outline-offset:1px}
  .archivo{border:1px dashed #CDC6BA;border-radius:8px;padding:14px;text-align:center;font-size:12.5px;color:var(--texto-2);background:#fff}
  .docs{display:flex;flex-direction:column;gap:7px}
  .doc{display:flex;gap:10px;align-items:center;font-size:13.5px;background:#fff;border:1px solid var(--linea);border-radius:8px;padding:9px 11px}
  .doc small{color:var(--texto-2);font-size:12px}
  .ok{font-size:13px;color:var(--verde);background:var(--verde-bg);border-radius:8px;padding:9px 12px}
  .err{font-size:13px;color:var(--rojo);margin:7px 0 0}
  .recien{background:#FBF6EF}
  .recien td:first-child::after,.recien > .cuerpo p::after{
    content:" nuevo";font-size:10.5px;color:var(--naranja);vertical-align:2px
  }
  a.archivo-link{
    display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--texto);
    border:1px solid var(--linea);border-radius:8px;padding:8px 13px;background:#fff;
    text-decoration:none
  }
  a.archivo-link:hover{border-color:#C9C2B6}
  a.archivo-link::before{content:"↓";color:var(--naranja)}
  textarea.datos{
    width:100%;font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace);
    font-size:12px;line-height:1.5;padding:10px;border:1px solid var(--linea);
    border-radius:8px;background:#fff;color:var(--texto);resize:vertical
  }
  .check{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--texto);cursor:pointer}
  .check input{width:16px;height:16px;accent-color:var(--naranja)}

  table{width:100%;border-collapse:collapse;font-size:13.5px}
  thead th{
    text-align:left;font-weight:500;font-size:12px;color:var(--texto-2);
    padding:9px 12px;background:var(--crema);border-bottom:1px solid var(--linea)
  }
  tbody td{padding:11px 12px;border-bottom:1px solid var(--linea);vertical-align:top}
  tbody tr:last-child td{border-bottom:0}
  td small{display:block;color:var(--texto-2);font-size:12px;margin-top:1px}
  .num{text-align:right;white-space:nowrap}
  .tabla{border:1px solid var(--linea);border-radius:10px;overflow:hidden}

  .barras{border:1px solid var(--linea);border-radius:10px;padding:16px}
  .barra-fila{display:grid;grid-template-columns:132px minmax(0,1fr) 104px;gap:12px;align-items:center;margin-bottom:11px}
  .barra-fila:last-child{margin-bottom:0}
  .barra-fila .et{font-size:13px;color:var(--texto-2)}
  .barra-fila .pista{display:block;background:var(--crema);border-radius:4px;height:22px;overflow:hidden}
  .barra-fila .valor{display:block;height:100%;border-radius:4px;background:#B4AB9C}
  .barra-fila .valor.alto{background:var(--rojo)}
  .barra-fila .valor.medio{background:#D9962B}
  .barra-fila .valor.bajo{background:#7FA84A}
  .barra-fila .cifra-l{font-size:13px;text-align:right;white-space:nowrap}
  .barra-fila .cifra-l small{display:block;color:var(--texto-2);font-size:11.5px}
  @media (max-width:620px){
    .barra-fila{grid-template-columns:1fr auto;gap:6px}
    .barra-fila .pista{grid-column:1 / -1;order:3}
    .barra-fila .cifra-l{text-align:right}
  }
  .pasos{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:14px}
  .paso{font-size:12.5px;padding:5px 11px;border-radius:20px;background:var(--crema);color:var(--texto-2)}
  .paso.ok{background:var(--verde-bg);color:var(--verde)}
  .paso.alerta{background:var(--rojo-bg);color:var(--rojo)}
  .flecha{color:#B9B2A6;font-size:12px}

  .dos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .caja{border:1px solid var(--linea);border-radius:10px;padding:14px}
  .caja h3{font-size:13.5px;font-weight:500;margin:0 0 9px}
  .dato{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:13.5px;border-bottom:1px solid var(--linea)}
  .dato:last-child{border-bottom:0}
  .dato span:last-child{color:var(--texto-2)}

  .telefonos{display:flex;gap:26px;flex-wrap:wrap;justify-content:center;padding:8px 0;width:100%}
  .app[data-rol="propietario"] .telefonos,
  .app[data-rol="arrendatario"] .telefonos{padding:0;justify-content:flex-start}
  .app[data-rol="propietario"] .tel,
  .app[data-rol="arrendatario"] .tel{
    width:100%;max-width:760px;border:0;border-radius:0
  }
  .app[data-rol="propietario"] .tel .cabecera,
  .app[data-rol="arrendatario"] .tel .cabecera{display:none}
  .app[data-rol="propietario"] .tel .cuerpo,
  .app[data-rol="arrendatario"] .tel .cuerpo{padding:0}
  .app[data-rol="propietario"] .saldo,
  .app[data-rol="arrendatario"] .saldo{padding:20px 22px}
  .app[data-rol="propietario"] .saldo .v,
  .app[data-rol="arrendatario"] .saldo .v{font-size:38px}
  .app[data-rol="propietario"] .tel h3,
  .app[data-rol="arrendatario"] .tel h3{font-size:15px}
  .app[data-rol="propietario"] .tel p.fila-t,
  .app[data-rol="arrendatario"] .tel p.fila-t{font-size:14.5px}
  .app[data-rol="propietario"] .rotulo,
  .app[data-rol="arrendatario"] .rotulo{font-size:13px;margin:24px 0 9px}
  .app[data-rol="propietario"] .acc3,
  .app[data-rol="arrendatario"] .acc3{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:12px}
  .app[data-rol="propietario"] .acc3 button,
  .app[data-rol="arrendatario"] .acc3 button{padding:16px 6px;font-size:13px}
  .app[data-rol="propietario"] main:has(.telefonos),
  .app[data-rol="arrendatario"] main:has(.telefonos){align-items:flex-start;padding:22px 24px 48px}
  main:has(.telefonos){max-width:none;display:flex;flex-direction:column;align-items:center}
  main:has(.telefonos) > .encabezado-admin{align-self:flex-start;max-width:1080px}
  .tel{width:322px;border:1px solid var(--linea);border-radius:18px;overflow:hidden;background:#fff}
  .tel .cabecera{background:var(--crema);padding:11px 13px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--linea)}
  .tel .cuerpo{padding:14px 13px}
  .tel h3{font-size:13.5px;font-weight:500;margin:0}
  .tel small{color:var(--texto-2);font-size:11.5px}
  .saldo{background:var(--crema);border-radius:10px;padding:13px}
  .saldo .v{font-size:29px;display:block;margin:2px 0}
  .rotulo{font-size:12px;color:var(--texto-2);margin:16px 0 7px}
  .acc3{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px}
  .acc3 button{all:unset;cursor:pointer;text-align:center;border:1px solid var(--linea);border-radius:9px;padding:11px 4px;font-size:11.5px;color:var(--texto)}
  .lleno{width:100%;text-align:center;display:block}

  .nota{font-size:12.5px;color:var(--texto-2);margin-top:10px;max-width:70ch}
  [hidden]{display:none !important}

  /* ---- Ingreso ---- */
  .ingreso{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
  .ingreso .relato{background:var(--carbon);color:#CFC9C0;padding:52px 46px;display:flex;flex-direction:column;justify-content:center}
  .ingreso .relato .logo{margin-bottom:26px}
  .ingreso .relato h2{font-size:30px;font-weight:400;color:#fff;margin:0 0 16px;max-width:16ch;line-height:1.25}
  .ingreso .relato p{font-size:14.5px;max-width:44ch;margin:0 0 14px;color:#B5AEA4}
  .pendientes{list-style:none;margin:18px 0 0;padding:0;max-width:44ch}
  .pendientes li{display:flex;gap:14px;align-items:baseline;padding:9px 0;
    border-top:1px solid var(--carbon-2)}
  .pendientes .n{
    font-family:Georgia,"Iowan Old Style",serif;font-size:26px;color:#fff;
    min-width:34px;text-align:right;flex:0 0 auto
  }
  .pendientes .n.mal{color:var(--naranja)}
  .pendientes .q{font-size:13.5px;color:#B5AEA4;line-height:1.45}
  .pendientes .q small{display:block;font-size:12px;color:#7C766D;margin-top:1px}
  .perfiles{display:flex;flex-direction:column;gap:10px;margin-top:4px}
  .perfil{
    all:unset;cursor:pointer;display:flex;flex-direction:column;gap:3px;
    border:1px solid var(--linea);border-radius:12px;padding:14px 16px
  }
  .perfil:hover{border-color:var(--carbon)}
  .perfil:focus-visible{outline:2px solid var(--carbon);outline-offset:2px}
  .perfil.ultimo{border-color:var(--naranja)}
  .perfil.ultimo .p-rol::after{
    content:" · el último que usaste";font-weight:400;font-size:12px;color:var(--naranja)
  }
  .p-rol{font-size:15.5px;font-weight:500;color:var(--texto)}
  .p-donde{font-size:13.5px;color:var(--texto-2)}
  .p-ve{font-size:12.5px;color:var(--texto-2);line-height:1.45}
  .capacidades{list-style:none;margin:0 0 18px;padding:0;max-width:46ch}
  .capacidades li{
    font-size:13.5px;color:#B5AEA4;padding:5px 0 5px 20px;position:relative;line-height:1.5
  }
  .capacidades li::before{
    content:"";position:absolute;left:0;top:12px;width:7px;height:7px;
    border-radius:2px;background:var(--naranja)
  }
  .pie-relato{font-size:12.5px;color:#7C766D;border-top:1px solid var(--carbon-2);padding-top:14px}
  .ingreso .formulario{padding:52px 46px;display:flex;flex-direction:column;justify-content:center;max-width:520px;width:100%}
  .ingreso h1{font-size:21px;margin-bottom:4px}
  .campo{margin-bottom:13px}
  button.accion.sso{
    display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
    padding:10px 14px;font-size:14px;border-color:#C9C2B6;margin-bottom:4px
  }
  button.accion.sso .g{
    width:20px;height:20px;border-radius:50%;background:var(--crema);color:var(--texto);
    display:grid;place-items:center;font-size:12px;font-family:Georgia,serif
  }
  .o{display:flex;align-items:center;gap:12px;margin:16px 0 14px;color:var(--texto-2);font-size:12px}
  .o::before,.o::after{content:"";flex:1;height:1px;background:var(--linea)}
  .campo label{display:block;font-size:12.5px;color:var(--texto-2);margin-bottom:5px}
  .campo input{
    width:100%;padding:9px 11px;font-size:14px;border:1px solid var(--linea);
    border-radius:8px;background:#fff;color:var(--texto);font-family:inherit
  }
  .campo input:focus{outline:2px solid var(--carbon);outline-offset:1px;border-color:transparent}
  .pendientes{list-style:none;margin:18px 0 0;padding:0;max-width:44ch}
  .pendientes li{display:flex;gap:14px;align-items:baseline;padding:9px 0;
    border-top:1px solid var(--carbon-2)}
  .pendientes .n{
    font-family:Georgia,"Iowan Old Style",serif;font-size:26px;color:#fff;
    min-width:34px;text-align:right;flex:0 0 auto
  }
  .pendientes .n.mal{color:var(--naranja)}
  .pendientes .q{font-size:13.5px;color:#B5AEA4;line-height:1.45}
  .pendientes .q small{display:block;font-size:12px;color:#7C766D;margin-top:1px}
  .perfiles{display:flex;flex-direction:column;gap:8px;margin:6px 0 18px}
  .demo{margin-top:34px;padding-top:20px;border-top:1px solid var(--linea)}
  .demo > p{font-size:12px;color:var(--texto-2);margin:0 0 8px}
  .demo-ops{display:flex;flex-wrap:wrap;gap:6px}
  .demo-op{
    all:unset;cursor:pointer;font-size:12.5px;padding:5px 11px;border-radius:20px;
    border:1px solid var(--linea);color:var(--texto-2);background:#fff
  }
  .demo-op:hover{border-color:#C9C2B6}
  .demo-op:focus-visible{outline:2px solid var(--carbon);outline-offset:2px}
  .demo-op[aria-pressed="true"]{background:var(--carbon);border-color:var(--carbon);color:#fff}
  .demo .fino{font-size:11.5px;color:#948D83;margin:10px 0 0;max-width:52ch}
  .legal{font-size:12px;color:var(--texto-2);margin-top:14px;max-width:52ch}
  .cambiar{all:unset;cursor:pointer;font-size:13px;color:var(--texto-2);text-decoration:underline}
  .cambiar:focus-visible{outline:2px solid var(--carbon);outline-offset:2px}
  @media (max-width:820px){.ingreso{grid-template-columns:1fr}.ingreso .relato{display:none}}

  @media (pointer:coarse){
    .rail button,button.accion,.demo-op,.acc3 button{min-height:44px}
    button.accion.chico{min-height:40px}
    .cambiar{display:inline-flex;align-items:center;min-height:44px}
  }
  @media (max-width:1000px){
    .barra{gap:10px}
    .barra .der{width:100%;margin-left:0;justify-content:space-between}
    .app:not([data-rol="propietario"]):not([data-rol="arrendatario"]) .tel{
      width:100%;max-width:640px;border:0;border-radius:0
    }
    .app:not([data-rol="propietario"]):not([data-rol="arrendatario"]) .tel .cabecera{
      background:transparent;border-bottom:0;padding:0 0 12px
    }
    .app:not([data-rol="propietario"]):not([data-rol="arrendatario"]) .tel .cuerpo{padding:0}
    .app:not([data-rol="propietario"]):not([data-rol="arrendatario"]) .tel + .tel{
      border-top:1px solid var(--linea);padding-top:22px;margin-top:4px
    }
    .telefonos{gap:22px}
    .app{grid-template-columns:minmax(0,1fr)}
    .rail{padding:10px 12px}
    .rail .marca{padding:0 4px 10px}
    .rail .grupo,.rail .pie{display:none}
    .rail nav{flex-direction:row;flex-wrap:wrap;gap:5px;padding:0}
    .rail button{padding:6px 11px;border-radius:20px;font-size:12.5px;background:var(--carbon-2)}
    .rail button[aria-current="true"]{background:var(--naranja);color:#fff}
    .dos{grid-template-columns:1fr}
    main{padding:18px 16px 40px}
    .barra{padding:10px 16px}
    .tabla{overflow-x:visible}
  }
  @media (max-width:700px){
    .barra{padding:9px 16px}
    .barra .meta:first-of-type{display:none}
    .rail button{padding:6px 10px;font-size:12px}
    .tabla{border:0;border-radius:0}
    table,tbody,tr,td{display:block;width:auto}
    thead{display:none}
    tbody tr{
      border:1px solid var(--linea);border-radius:10px;padding:11px 13px;
      margin-bottom:10px;background:#fff
    }
    tbody td{border:0;padding:4px 0;display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:baseline}
    tbody td small{flex:1 1 100%;text-align:right;margin-top:2px}
    tbody td::before{
      content:attr(data-label);color:var(--texto-2);font-size:12px;flex:0 0 auto
    }
    tbody td > small{margin-top:0}
    tbody td.num{text-align:right}
    tbody tr td:first-child{font-weight:500;border-bottom:1px solid var(--linea);padding-bottom:8px;margin-bottom:6px}
  }
  @media (max-width:620px){
    .kpis{grid-template-columns:1fr 1fr}
    .campos input,.campos select{min-width:140px}
    .fila{flex-wrap:wrap;align-items:flex-start;position:relative;padding-left:17px}
    .fila .marca-estado{position:absolute;left:0;top:0;bottom:0;width:3px}
    .fila .cuerpo{flex:1 1 100%}
    .fila .pill{margin-top:8px}
    .fila button.accion{margin-top:8px}
    .telefonos .fila{padding-left:14px}
    .telefonos .fila .marca-estado{display:none}
  }
  @media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}
