  :root{
    color-scheme:light;
    --navy:#2e43db; --navy-d:#2233b0; --orange:#ff4f01; --orange-l:#fff0ea;
    --bg:#f3f4fb; --card:#ffffff; --line:#e6e8f2; --txt:#2b2f42; --muted:#7a7f99;
    --green:#036742; --green-l:#e3f2ec; --red:#ff4f01; --red-l:#fff0ea;
    --gold:#c98f02; --blue-soft:#eaedfc;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--txt);font-size:15px;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}
  button{font-family:inherit;cursor:pointer;border:none;background:none}
  input,select,textarea{font-family:inherit;font-size:14px}
  a{color:var(--navy)}

  /* Top bar */
  .topbar{background:var(--card);border-bottom:1px solid var(--line);padding:14px 26px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}
  .crumb{color:var(--muted);font-weight:600}
  .crumb b{color:var(--txt)}
  .topbar-right{display:flex;align-items:center;gap:16px}
  .bell{position:relative;font-size:20px}
  .bell span{position:absolute;top:-8px;right:-8px;background:var(--navy);color:#fff;border-radius:20px;font-size:11px;padding:1px 6px;font-weight:700}
  .admin-wrap{position:relative}
  .admin{display:flex;align-items:center;gap:10px;cursor:pointer;padding:5px 8px 5px 5px;border-radius:12px;transition:background .15s}
  .admin:hover{background:#f2f3fb}
  .admin .av{width:38px;height:38px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
  .admin b{font-weight:600}
  .admin small{display:block;color:var(--muted);font-size:12px;font-weight:400}
  .admin-caret{color:var(--muted);font-size:11px;margin-left:1px}
  .user-menu{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 34px rgba(30,40,120,.18);padding:6px;min-width:190px;z-index:120}
  .user-menu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:500;color:var(--txt)}
  .user-menu-item:hover{background:var(--blue-soft)}
  /* --- Inventario: barra de filtros e importación (limpio y profesional) --- */
  .inv-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 14px}
  .inv-filter{padding:8px 11px;border:1px solid var(--line);border-radius:9px;font-size:13px;background:#fff;color:var(--txt);cursor:pointer;transition:border-color .15s;max-width:230px}
  @media(max-width:760px){
    .inv-toolbar{gap:8px}
    .inv-toolbar .inv-filter, .inv-toolbar .inv-search{flex:1 1 100%;width:100%;max-width:100%;min-width:0}
    #invImportBtns{width:100%;flex-wrap:wrap}
    #invImportBtns .btn-soft{flex:1 1 auto}
  }
  .inv-filter:hover{border-color:#cfd4e6}
  .inv-filter:focus{outline:none;border-color:var(--navy)}
  .inv-search{flex:1;min-width:150px;padding:8px 13px;border:1px solid var(--line);border-radius:9px;font-size:13px;background:#fff;color:var(--txt)}
  .inv-search:focus{outline:none;border-color:var(--navy)}
  .btn-soft{background:#fff;border:1px solid var(--line);color:var(--txt);font-weight:600;font-size:13px;padding:8px 13px;border-radius:9px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;transition:.15s;white-space:nowrap}
  .btn-soft:hover{background:#f6f7fb;border-color:#cfd4e6}
  .imp-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 12px 34px rgba(30,40,120,.16);padding:6px;min-width:250px;z-index:60}
  .imp-item{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:8px;font-size:13.5px;color:var(--txt);cursor:pointer;white-space:nowrap;font-weight:500}
  .imp-item:hover{background:var(--blue-soft)}
  .inv-row:hover{background:#f4f7ff !important}

  /* Layout */
  .wrap{max-width:none;margin:0;padding:22px 30px}
  .page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:20px}
  .page-head h1{font-size:27px;color:var(--txt);font-weight:800;letter-spacing:-.018em}
  .page-head p{font-weight:400}
  .count{color:var(--muted);font-weight:600}

  /* Toolbar */
  .toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px;align-items:center}
  .toolbar input[type=text], .toolbar select{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);min-width:150px}
  .toolbar .search{flex:1;min-width:230px}
  .chk{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;font-size:13px}
  .btn{padding:12px 18px;border-radius:12px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px;transition:.15s}
  .btn-primary{background:var(--navy);color:#fff}
  .btn-primary:hover{background:var(--navy-d)}
  .btn-ghost{background:var(--card);border:1px solid var(--line);color:var(--txt)}
  .btn-ghost:hover{background:#f7f8fd}
  .btn-danger{background:var(--card);border:1.5px solid var(--red);color:var(--red)}
  .btn-danger:hover{background:var(--red-l)}
  /* Eliminar: discreto y separado de Guardar para evitar clics accidentales */
  .btn-del{background:none;border:1px solid transparent;color:var(--muted);margin-right:auto;padding-left:10px;padding-right:10px}
  .btn-del:hover{background:var(--red-l);border-color:var(--red);color:var(--red)}
  .btn-sm{padding:8px 12px;font-size:13px;border-radius:10px}

  /* Lista de colaboradores (filas horizontales) */
  .grid{display:flex;flex-direction:column;gap:12px}
  .emp-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px 22px;box-shadow:0 1px 2px rgba(30,42,120,.04),0 10px 26px -20px rgba(30,42,120,.5);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:relative}
  .emp-card::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--navy),var(--orange));opacity:0;transition:opacity .15s}
  .emp-card:hover{border-color:#cdd3f2;box-shadow:0 8px 22px rgba(30,42,120,.12);transform:translateY(-1px)}
  .emp-card:hover::before{opacity:1}
  .emp-av{width:50px;height:50px;border-radius:15px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;flex-shrink:0;box-shadow:0 5px 12px -4px rgba(30,42,120,.45);letter-spacing:.02em}
  .emp-main{min-width:180px;max-width:270px;flex-shrink:0}
  .emp-name{font-size:16.5px;font-weight:800;line-height:1.2;color:var(--txt);letter-spacing:-.01em}
  .emp-role{margin-top:5px}
  .emp-role-chip{display:inline-flex;align-items:center;gap:5px;background:var(--blue-soft);color:var(--navy-d);font-weight:700;font-size:12px;padding:3px 11px;border-radius:20px;line-height:1.4}
  .emp-badges{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:170px}
  .emp-meta{display:flex;gap:22px;flex-wrap:wrap;align-items:center;margin-left:auto}
  .emp-meta > div{display:flex;flex-direction:column;line-height:1.3;gap:3px}
  .emp-meta .k{color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
  .emp-meta .v{font-weight:700;font-size:14px;color:var(--txt)}
  .st-pill{display:inline-block;padding:2px 11px;border-radius:20px;font-size:12.5px;font-weight:700;line-height:1.5}
  .st-on{background:var(--green-l);color:var(--green)}
  .st-off{background:var(--orange-l);color:var(--orange)}
  .st-mid{background:#fff6e0;color:var(--gold)}
  .eye{border:1.5px solid var(--orange);border-radius:10px;padding:6px 9px;font-size:15px;background:var(--card);flex-shrink:0;cursor:pointer;transition:.15s;line-height:1}
  .eye:hover{background:var(--orange-l)}
  .badge{font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px}
  .b-suc{background:var(--orange-l);color:var(--orange)}
  .b-corp{background:var(--blue-soft);color:var(--navy)}
  .b-active{background:var(--green-l);color:var(--green)}
  .b-inactive{background:var(--red-l);color:var(--red)}
  .b-gold{background:#fbf3d9;color:var(--gold)}
  /* Vacaciones y permisos */
  .vac-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}
  .vac-kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;cursor:pointer}
  .vac-kpi .l{color:var(--muted);font-size:14px}
  .vac-kpi .n{font-size:34px;font-weight:800;margin:2px 0 4px}
  .vac-kpi .a{color:var(--navy);font-size:13px;font-weight:600}
  .vac-kpi-main{background:linear-gradient(135deg,#2e43db,#2233b0);border:none;color:#fff;box-shadow:0 8px 22px rgba(46,67,219,.30)}
  .vac-kpi-main .l,.vac-kpi-main .a{color:#dfe2f7}
  .vac-kpi-main .n{color:#fff}
  .vac-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
  .vac-head>div{text-align:center;color:var(--muted);font-size:12px;font-weight:600;padding:4px 0}
  .vac-cell{min-width:0;box-sizing:border-box;min-height:82px;border:1px solid var(--line);border-radius:10px;padding:6px 7px;background:#fff;overflow:hidden}
  .vac-cell.empty{background:transparent;border:none}
  .vac-daynum{font-size:13px;color:#333;margin-bottom:4px}
  .vac-daynum.today{display:inline-block;background:#e7eafb;color:var(--navy);font-weight:700;border-radius:20px;padding:1px 8px}
  .vac-cell.has{cursor:default}
  .vac-cell:hover{border-color:#cfd5f0;box-shadow:0 2px 8px rgba(30,42,120,.06)}
  .vac-ev{display:block;background:#e7eafb;color:var(--navy);font-size:11px;font-weight:600;border-radius:7px;padding:3px 6px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:transform .1s,filter .1s}
  .vac-ev:hover{filter:brightness(.96);transform:translateY(-1px)}
  .vac-ev.pend{border:1px dashed #e2c65a}
  .vac-ev-more{font-size:10.5px;color:var(--muted);cursor:pointer;font-weight:600}
  .vac-cal-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
  .vac-cal-nav{display:flex;align-items:center;gap:12px}
  .vac-cal-nav b{font-size:17px}
  .vac-cal-hint{font-size:12.5px;color:#8a6d16;background:#fdf6e3;border:1px solid #f0e2b8;padding:6px 12px;border-radius:20px}
  .vac-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:12.5px;color:var(--muted)}
  .vac-legend span{display:inline-flex;align-items:center;gap:6px}
  .vac-legend .lg{width:13px;height:13px;border-radius:4px;display:inline-block}
  .vac-legend .lg.pend{background:#fdf3d6;border:1px dashed #e2c65a} .vac-legend .lg.vac{background:#e4f6ec} .vac-legend .lg.perm{background:#eaedfc}
  /* Ficha de detalle de solicitud (calendario) */
  .vd-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
  .vd-item{display:flex;align-items:flex-start;gap:12px;padding:11px 0}
  .vd-ic{font-size:18px;width:24px;text-align:center;flex-shrink:0}
  .vd-body{min-width:0}
  .vd-l{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  .vd-v{font-size:15px;font-weight:600;color:var(--txt);margin-top:2px;word-break:break-word}
  .vd-v.e{color:#c3c6d0;font-weight:500}
  .vd-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
  .btn-vd-ok{background:linear-gradient(135deg,#036742,#0aa267);color:#fff;box-shadow:0 6px 16px rgba(3,103,66,.25)}
  .btn-vd-no{background:#fff;border:1.5px solid #ffd0bb;color:#ff4f01}
  .btn-vd-no:hover{background:#fff0ea}
  .btn-vd-del{color:#ff4f01}
  @media(max-width:560px){.vd-grid{grid-template-columns:1fr}}
  .chips{display:flex;gap:8px;flex-wrap:wrap}
  .chip{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 14px;font-size:13px;cursor:pointer;font-weight:600;color:#555}
  .chip.active{background:#e7eafb;border-color:#c3c9f2;color:var(--navy)}
  @media(max-width:760px){ .vac-kpis{grid-template-columns:1fr} }
  .vac-solic{min-width:960px}
  .vac-solic th,.vac-solic td{vertical-align:middle}
  .vac-solic th:nth-child(5),.vac-solic td:nth-child(5){text-align:center;white-space:nowrap}
  .vac-solic tbody tr:nth-child(even){background:#fafbfe}
  .vac-bal{min-width:720px}
  .vac-bal th,.vac-bal td{text-align:center;white-space:nowrap}
  .vac-bal th:first-child,.vac-bal td:first-child{text-align:left}
  .vac-bal tbody tr:nth-child(even){background:#fafbfe}
  .v.red{color:var(--red)} .v.green{color:var(--green)}
  .empty{text-align:center;color:var(--muted);padding:60px 20px}
  @media(max-width:640px){.emp-meta{gap:16px;width:100%}}

  /* Panel de resumen */
  #overview{margin-bottom:22px}
  .ov-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}
  .ov-stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
  .ov-l{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}
  .ov-n{font-size:30px;font-weight:800;margin-top:6px}
  /* Portada — tarjetas KPI llamativas (degradados de marca) */
  .kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
  .kpi{position:relative;overflow:hidden;border-radius:18px;padding:20px 22px;color:#fff;box-shadow:0 10px 26px rgba(30,42,120,.16)}
  .kpi::after{content:"";position:absolute;right:-24px;top:-24px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.13)}
  .kpi::before{content:"";position:absolute;right:22px;bottom:-30px;width:70px;height:70px;border-radius:50%;background:rgba(255,255,255,.09)}
  .kpi-ic{position:relative;z-index:1;font-size:24px;width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
  .kpi-n{position:relative;z-index:1;font-size:38px;font-weight:900;line-height:1;letter-spacing:-.02em}
  .kpi-l{position:relative;z-index:1;font-size:13.5px;font-weight:600;opacity:.92;margin-top:6px}
  .kpi-navy{background:linear-gradient(135deg,#2e43db,#5468f2)}
  .kpi-green{background:linear-gradient(135deg,#036742,#0aa267)}
  .kpi-gold{background:linear-gradient(135deg,#c98f02,#eab01f)}
  .kpi-orange{background:linear-gradient(135deg,#ff4f01,#ff8a3d)}
  .ov-hic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
  .ov-hic.cb{background:#eaf1ff} .ov-hic.cg{background:#e8f6ec}
  .ov-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .ov-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
  .ov-h{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}
  .ov-h span{margin-left:auto;color:var(--muted);font-size:12px;font-weight:600}
  .ov-row{display:flex;align-items:center;gap:11px;padding:7px 0}
  .ov-av{width:34px;height:34px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
  .ov-nm{font-weight:600;font-size:14px}
  .ov-tag{margin-left:auto;background:var(--blue-soft);color:var(--navy);font-weight:700;font-size:12.5px;padding:4px 11px;border-radius:20px;white-space:nowrap}
  .wa-btn{margin-left:8px;flex-shrink:0;background:#25D366;color:#fff;border:none;border-radius:20px;font-size:14px;padding:5px 12px;cursor:pointer;line-height:1}
  .wa-btn:hover{background:#1da851}
  .ov-empty{color:var(--muted);font-size:13.5px;padding:6px 0}
  .ov-bar{margin-bottom:16px}
  .ov-barhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:15px;flex-wrap:wrap}
  .ov-barhead span{color:var(--muted)}
  .ovbar{height:16px;border-radius:20px;background:#eef0f7;overflow:hidden}
  .ovbar i{display:block;height:100%;background:linear-gradient(90deg,#2e43db,#0aa267);border-radius:20px;transition:width .4s}
  .ov-barhead b{font-size:16.5px;color:var(--navy)}
  @media(max-width:900px){.kpi-row{grid-template-columns:1fr 1fr}}
  @media(max-width:640px){.ov-two{grid-template-columns:1fr}.kpi-row{grid-template-columns:1fr 1fr}.kpi-n{font-size:32px}}

  /* Página Disciplina (misma densidad que Expedientes) */
  #viewDisc .dash-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}
  #viewDisc .dstat{padding:16px 18px}
  #viewDisc .dstat .l{font-size:13px}
  #viewDisc .dstat .n{font-size:30px;margin-top:6px}
  #viewDisc .dcard{padding:16px 18px;margin-bottom:16px}
  #viewDisc .dcard h4{font-size:16px;margin-bottom:14px}
  #viewDisc .dtwo{gap:16px}
  .dstat2{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 1px 3px rgba(30,42,120,.04)}
  .dstat2 .ic{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;flex-shrink:0}
  .dstat2 .l{color:var(--muted);font-size:13px}
  .dstat2 .n{font-size:30px;font-weight:800;line-height:1.1;margin-top:2px}
  .rank-row{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid #f1f2f8}
  .rank-row:last-child{border-bottom:none}
  .rank-medal{width:26px;text-align:center;font-size:16px}
  .rank-nm{flex:1;font-size:14px}
  .rank-ct{background:var(--blue-soft);color:var(--navy);font-weight:800;font-size:13px;padding:4px 13px;border-radius:20px;min-width:34px;text-align:center}

  /* Modal */
  .overlay{position:fixed;inset:0;background:rgba(20,25,60,.45);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:30px 16px;overflow-y:auto}
  #reciboOverlay{z-index:130}   /* el recibo debe salir ENCIMA de la ventana de captura */
  .overlay.open{display:flex}
  .modal{background:var(--card);border-radius:18px;width:100%;max-width:920px;box-shadow:0 20px 60px rgba(0,0,0,.3);margin:auto}
  .modal-head{display:flex;align-items:center;gap:16px;padding:22px 26px 8px;position:relative}
  .modal-av{width:70px;height:70px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:26px;flex-shrink:0}
  .modal-head h2{font-size:24px}
  .modal-head p{color:var(--muted);font-size:14px}
  .xclose{position:absolute;top:18px;right:22px;font-size:24px;color:var(--muted);background:none}
  .tabs{display:flex;gap:6px;padding:6px 20px 0;border-bottom:1px solid var(--line);overflow-x:auto}
  .tab{padding:12px 14px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap;font-size:14px}
  .tab.active{color:var(--navy);border-color:var(--navy)}
  .tab .ic{margin-right:5px}
  .tab-body{padding:22px 26px;min-height:280px}
  .modal-foot{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:12px;padding:16px 26px;border-top:1px solid var(--line)}

  .section-title{font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:18px 0 12px}
  .section-title:first-child{margin-top:0}
  .hr{height:1px;background:var(--line);margin:4px 0 14px}

  /* Forms */
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .field{display:flex;flex-direction:column;gap:5px}
  .field.full{grid-column:1/-1}
  .field label{font-size:13px;color:var(--muted);font-weight:600}
  .field input,.field select,.field textarea{padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fbfbfe}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);background:#fff}
  .pill-admin{background:#fbf3d9;color:var(--gold);font-size:11px;font-weight:800;padding:3px 9px;border-radius:20px;margin-left:8px}

  /* Radios status */
  .radio-row{display:flex;gap:26px;margin-bottom:6px}
  .radio-row label{display:flex;align-items:center;gap:8px;font-weight:700;cursor:pointer}
  .dot{width:9px;height:9px;border-radius:50%;display:inline-block}
  .dot.g{background:var(--green)} .dot.r{background:var(--red)}

  /* Doc list */
  .doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .doc-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fbfbfe;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
  .doc-item .dn{font-weight:700;font-size:14px}
  .doc-actions{display:flex;align-items:center;gap:8px}
  .clip{background:var(--blue-soft);border-radius:8px;padding:6px 9px;font-size:15px}
  .clip.has{background:var(--green-l)}
  .toggle{font-weight:700;font-size:13px;padding:5px 11px;border-radius:8px}
  .toggle.no{background:var(--red-l);color:var(--red)}
  .toggle.yes{background:var(--green-l);color:var(--green)}

  /* Dashboard tables */
  .missing{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
  .miss-chip{border:1px solid var(--red-l);color:var(--red);background:#fff;border-radius:20px;padding:7px 14px;font-weight:700;font-size:13px}
  .miss-chip.ok{border-color:var(--green-l);color:var(--green);background:var(--green-l)}
  table.mini{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
  table.mini th{background:var(--navy);color:#fff;padding:9px 8px;font-weight:700;text-align:center}
  table.mini th:first-child{text-align:left;border-radius:8px 0 0 0}
  table.mini th:last-child{border-radius:0 8px 0 0}
  table.mini td{padding:9px 8px;text-align:center;border-bottom:1px solid var(--line);color:var(--muted)}
  table.mini td:first-child{text-align:left;font-weight:700}
  .row-total{background:#f7f8fd}

  /* Summary stat cards */
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin-bottom:8px}
  .stat{background:#fbfbfe;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
  .stat .num{font-size:30px;font-weight:800}
  .stat .lbl{color:var(--muted);font-size:13px;margin-top:4px}
  .num.navy{color:var(--navy)} .num.green{color:var(--green)} .num.gold{color:var(--gold)} .num.red{color:var(--red)} .num.grey{color:var(--muted)}

  /* add-row forms */
  .add-row{display:grid;gap:10px;align-items:end;margin-bottom:14px}
  .add-row.sanc{grid-template-columns:1fr 1fr}
  .add-row.inc{grid-template-columns:1fr 1fr 1.4fr auto}
  .add-row.vac{grid-template-columns:1fr 1fr 1fr auto}
  .list-table{width:100%;border-collapse:collapse;font-size:13.5px}
  .list-table th{background:var(--navy);color:#fff;text-align:left;padding:10px}
  .list-table td{padding:10px;border-bottom:1px solid var(--line)}
  .list-table .none{text-align:center;color:var(--muted);padding:20px}
  /* Tablas de disciplina por sucursal: columnas alineadas y números centrados */
  .disc-table{table-layout:fixed;min-width:640px}
  .disc-table th,.disc-table td{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .disc-table th:first-child,.disc-table td:first-child{text-align:left;width:30%;white-space:normal}
  .disc-table tbody tr:nth-child(even):not(.row-total){background:#fafbfe}
  .disc-table a{text-decoration:underline}
  /* Disciplina · lista de colaboradores estilo ficha */
  .dcol-card h4{margin-bottom:4px}
  .dcard-sub{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.01em}
  .dcol-row{display:flex;align-items:center;gap:14px;padding:12px 8px;margin:0 -8px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:12px;transition:background .12s}
  .dcol-row:last-child{border-bottom:none}
  .dcol-row:hover{background:#f6f7ff}
  .dcol-av{width:42px;height:42px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14.5px;letter-spacing:.02em;flex-shrink:0;box-shadow:0 2px 6px rgba(30,42,120,.12)}
  .dcol-main{flex:1;min-width:0}
  .dcol-nm{font-size:15.5px;font-weight:700;color:var(--txt);letter-spacing:-.012em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcol-sub{font-size:12.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.005em}
  .dcol-badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0;max-width:52%}
  .dbadge{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12.5px;padding:4px 11px;border-radius:20px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.01em}
  .dbadge-clean{background:var(--green-l);color:var(--green)}
  .dcol-empty{text-align:center;color:var(--muted);padding:28px 0;font-size:14px}
  /* Bitácora de disciplina: tarjetas en celular */
  .bita-mobile{display:none}
  .bita-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fff}
  .bita-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
  .bita-card-top b{color:var(--navy);font-size:14.5px;line-height:1.25}
  .bita-card-meta{color:var(--muted);font-size:12.5px;margin-bottom:5px}
  .bita-card-motivo{font-size:13.5px;color:var(--txt);background:#f6f7fb;border-radius:8px;padding:7px 10px;margin-bottom:7px;line-height:1.35}
  .bita-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
  @media(max-width:760px){
    .bita-desktop{display:none}
    .bita-mobile{display:block}
    /* Disciplina en celular: solo el formulario de registro (sin resúmenes/rankings ni botón toggle) */
    #viewDisc #discBody{display:none}
    #viewDisc #discRegBtn{display:none}
    #viewDisc #discForm{display:block !important}
    #viewDisc>p{margin-bottom:12px}
    /* Formularios más pro en celular (Disciplina, Nómina, Usuarios, etc.): campos parejos y cómodos */
    .form-grid{grid-template-columns:1fr;gap:13px}
    .field label{font-size:13px;font-weight:600;color:var(--txt)}
    .field input, .field select, .field textarea{width:100%;font-size:16px;padding:13px 14px;border-radius:12px;background:#fff}
    .field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237a7f99' stroke-width='2.5'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
    #discForm .dcard{padding:16px 16px 18px}
    #discForm .btn-primary{width:100%;justify-content:center;padding:15px;font-size:15px;border-radius:12px}
    #discForm .file-mini{width:100%}
    #viewDisc .toolbar{gap:8px}
    #viewDisc .toolbar > select, #viewDisc .toolbar > input[type=text], #viewDisc .toolbar > input[type=month], #viewDisc .toolbar > input[type=date]{flex:1 1 46%;min-width:0}
    #viewDisc .toolbar .search, #viewDisc .toolbar #dsSearch{flex:1 1 100%}
  }
  /* Disciplina · Resumen del período — tarjetas grandes (mismo lenguaje que el Expediente) */
  .disc-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px}
  @media(max-width:820px){ .disc-strip{grid-auto-columns:minmax(128px,1fr);overflow-x:auto;padding-bottom:5px} }
  .disc-kpi{position:relative;overflow:hidden;border-radius:16px;padding:16px 18px;color:#fff;box-shadow:0 8px 20px rgba(30,42,120,.15)}
  .disc-kpi::after{content:"";position:absolute;right:-22px;top:-22px;width:96px;height:96px;border-radius:50%;background:rgba(255,255,255,.14)}
  .disc-kpi::before{content:"";position:absolute;right:16px;bottom:-26px;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.10)}
  .disc-kpi-ic{position:relative;z-index:1;font-size:22px;width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
  .disc-kpi-n{position:relative;z-index:1;font-size:34px;font-weight:900;line-height:1;letter-spacing:-.02em}
  .disc-kpi-l{position:relative;z-index:1;font-size:12.5px;font-weight:600;opacity:.93;margin-top:5px}
  @media(max-width:560px){.dcol-badges{max-width:none}.dcol-nm{white-space:normal}}
  .mini-del{color:var(--red);font-weight:700;font-size:12px}
  .file-mini{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}

  .receipt-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}

  .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--txt);color:#fff;padding:12px 22px;border-radius:12px;font-weight:600;z-index:200;opacity:0;transition:.3s;pointer-events:none}
  .toast.show{opacity:1}

  .hint{color:var(--muted);font-size:12.5px;margin-top:4px}
  .img-view{max-width:100%;border-radius:10px;border:1px solid var(--line);margin-top:8px}
  @media(max-width:640px){.form-grid,.doc-grid,.receipt-grid{grid-template-columns:1fr}.add-row.inc,.add-row.vac{grid-template-columns:1fr}}

  /* Dashboard rediseñado */
  .dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
  .dstat{background:#fafbff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
  .dstat .l{color:var(--muted);font-size:13px}
  .dstat .n{font-size:28px;font-weight:800;margin-top:6px;line-height:1.1}
  .dcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-bottom:16px;box-shadow:0 1px 2px rgba(30,42,120,.03)}
  .dcard h4{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:14px;color:var(--txt)}
  .dtwo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .keydate{border-radius:12px;padding:16px 18px;display:flex;align-items:center;gap:14px}
  .keydate.b{background:#eaf1ff} .keydate.g{background:#e8f6ec}
  .keydate .ic{font-size:26px}
  .keydate .t{font-weight:700;font-size:15px} .keydate.b .t{color:var(--navy)} .keydate.g .t{color:#2e7d46}
  .keydate .s{color:var(--muted);font-size:13.5px;margin-top:3px}
  .alert-list{list-style:none;display:flex;flex-direction:column;gap:11px}
  .alert-list li{display:flex;align-items:center;gap:10px;font-size:14.5px;color:#a33500;cursor:pointer;padding:7px 9px;border-radius:9px;transition:background .12s}
  .alert-list li:hover{background:#fff0ea}
  .alert-list li .ic{width:20px;text-align:center}
  .alert-list li .go{margin-left:auto;color:var(--navy);font-weight:800;font-size:16px}
  .alert-ok{color:var(--green);font-weight:600;display:flex;align-items:center;gap:8px}
  .pbar{height:14px;border-radius:20px;background:#e9ecf5;overflow:hidden;display:flex;margin-bottom:12px}
  .pbar i{display:block;height:100%}
  .pbar .g{background:var(--green)} .pbar .o{background:var(--orange)} .pbar .n{background:var(--navy)}
  .pleg{display:flex;flex-wrap:wrap;gap:16px;font-size:13.5px;color:var(--txt)}
  .pleg span{display:flex;align-items:center;gap:7px}
  .swatch{width:11px;height:11px;border-radius:3px;display:inline-block}
  .sw-g{background:var(--green)} .sw-o{background:var(--orange)} .sw-m{background:var(--muted)}
  .lastsanc .d{color:var(--muted);font-size:14px} .lastsanc .m{font-style:italic;margin-top:6px}
  @media(max-width:720px){.dash-stats{grid-template-columns:1fr 1fr}.dtwo{grid-template-columns:1fr}}
  .add-row .field input, .add-row .field select{min-width:0;width:100%}

  /* Menú lateral */
  .app-shell{display:flex;min-height:100vh;align-items:stretch}
  .sidebar{width:236px;flex-shrink:0;background:var(--navy);color:#fff;padding:20px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;transition:width .2s,padding .2s}
  .app-shell.collapsed .sidebar{width:0;padding:20px 0;overflow:hidden}
  .side-brand{margin:0 6px 24px;display:flex;align-items:center;gap:10px;white-space:nowrap;cursor:pointer;user-select:none}
  .brand-badge{flex-shrink:0;display:flex;filter:drop-shadow(0 3px 6px rgba(0,0,0,.28));transition:transform .25s}
  .side-brand:hover .brand-badge{transform:rotate(-6deg) scale(1.06)}
  .brand-bolt{transform-origin:22px 22px;animation:boltPulse 2.6s ease-in-out infinite}
  @keyframes boltPulse{0%,100%{opacity:1}50%{opacity:.55}}
  .brand-word{display:flex;flex-direction:column;line-height:1;letter-spacing:.5px}
  .brand-word b{font-weight:800;font-size:18px;color:#fff}
  .brand-word em{font-weight:800;font-size:18px;font-style:normal;color:#ffd21f;margin-top:-1px}
  .brand-name{display:block}
  .brand-word small{font-weight:600;font-size:8.5px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:4px}
  @media(prefers-reduced-motion:reduce){.brand-bolt{animation:none}}
  .side-sec{color:#9aa3d6;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:16px 10px 8px;white-space:nowrap}
  .side-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;color:#dfe3f5;cursor:pointer;font-weight:500;font-size:14.5px;margin-bottom:3px;white-space:nowrap}
  .side-item.active{font-weight:600}
  .side-item:hover{background:rgba(255,255,255,.12)}
  .side-item.active{background:rgba(255,255,255,.20);color:#fff}
  .app-main{flex:1;min-width:0;display:flex;flex-direction:column}
  .hamburger{font-size:22px;background:none;cursor:pointer;color:var(--txt);margin-right:6px;line-height:1}
  #sideScrim{display:none}
  @media(max-width:760px){
    .sidebar{position:fixed;z-index:80;box-shadow:4px 0 20px rgba(0,0,0,.25)}
    .app-shell:not(.collapsed) .sidebar{width:236px;padding:20px 12px}
    .app-shell.collapsed .sidebar{width:0;padding:20px 0}
    .app-shell:not(.collapsed) #sideScrim{display:block;position:fixed;inset:0;background:rgba(20,25,60,.45);z-index:79}
  }
  /* ===== Responsive general (tablet / teléfono) ===== */
  @media(max-width:1024px){
    .wrap{padding:18px 18px}
  }
  @media(max-width:820px){
    .topbar{padding:9px 12px;gap:8px}
    .topbar-right{gap:8px}
    .crumb{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44vw}
    .crumb-pre{display:none}
    .admin small{display:none}
    .admin b{font-size:13px}
    .admin .av{width:32px;height:32px}
    .bell{display:none}
    .wrap{padding:14px 14px}
  }
  @media(max-width:640px){
    .admin > div:last-child{display:none}
    .topbar-right .lbl{display:none}
    .page-head{margin-bottom:14px}
    .page-head h1{font-size:22px}
    .page-head h2{font-size:20px}
    .page-head p{font-size:13px}
    .tabs{padding:6px 10px 0;gap:2px}
    .tab{padding:10px 9px;font-size:13px}
    .tab .ic{margin-right:3px}
    .tab-body{padding:16px 14px}
  }

  /* ===== Datos: vista pro (solo lectura) ===== */
  .dv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap}
  .dv-status{font-weight:800;font-size:14px;padding:6px 14px;border-radius:20px}
  .dv-status.act{background:var(--green-l);color:var(--green)}
  .dv-status.inact{background:var(--orange-l);color:var(--orange)}
  .dv-editing{font-weight:700;color:var(--navy);background:var(--blue-soft);padding:6px 14px;border-radius:20px;font-size:13px}
  .dv-sec{margin-bottom:18px}
  .dv-sec-h{font-weight:800;color:var(--navy);font-size:14px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
  .dv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
  .dv-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 14px;transition:box-shadow .15s}
  .dv-item:hover{box-shadow:0 3px 12px rgba(46,67,219,.08)}
  .dv-l{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}
  .dv-v{font-size:15px;font-weight:600;color:var(--txt);word-break:break-word}
  .dv-v.empty{color:#c3c6d0;font-weight:500;font-style:italic}
  /* ===== Datos clave (dashboard) — énfasis en fechas ===== */
  .keyfacts .kf-dates{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .kf-date{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
  .kf-date.b{background:#eef2ff;border-color:#dce3ff}
  .kf-date.g{background:#eaf7ef;border-color:#d5ecdd}
  .kf-date .kf-ic{font-size:27px;line-height:1;flex-shrink:0}
  .kf-t{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
  .kf-d{font-size:21px;font-weight:800;line-height:1.15;margin-top:5px;letter-spacing:-.01em}
  .kf-date.b .kf-d{color:var(--navy)} .kf-date.g .kf-d{color:#2e7d46}
  .kf-s{font-size:13px;color:var(--muted);margin-top:5px}
  .kf-anti{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:13px 18px;background:var(--blue-soft);border-radius:12px}
  .kf-anti-l{font-size:12px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.05em}
  .kf-anti-v{font-size:19px;font-weight:800;color:var(--navy)}
  .keyfacts .kf-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
  .kf-fact{background:#f6f7fc;border:1px solid var(--line);border-radius:12px;padding:12px 15px}
  .kf-fl{display:block;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
  .kf-fv{display:block;font-size:16px;font-weight:800;color:var(--txt);margin-top:4px}
  @media(max-width:720px){.keyfacts .kf-facts{grid-template-columns:1fr}}
  .dcard h4 .dcard-badge{margin-left:auto;font-size:13px;font-weight:800;color:var(--navy);background:var(--blue-soft);border-radius:20px;padding:3px 12px}
  .dcard h4 .dcard-badge.full{color:var(--green);background:var(--green-l)}
  @media(max-width:720px){.keyfacts .kf-dates{grid-template-columns:1fr}}
  /* ===== Datos (lectura) — estilo ficha, con aire ===== */
  .datos-read .dv-sec{margin:0;padding:24px 0;border-bottom:1px solid var(--line)}
  .datos-read .dv-sec:last-child{border-bottom:none;padding-bottom:6px}
  .datos-read .dv-sec-h{font-weight:800;color:var(--txt);font-size:15.5px;margin-bottom:18px;letter-spacing:-.01em}
  .datos-read .dv-grid{grid-template-columns:repeat(auto-fill,minmax(185px,1fr));column-gap:44px;row-gap:22px}
  .datos-read .dv-item{background:none;border:none;border-radius:0;padding:0}
  .datos-read .dv-item:hover{box-shadow:none}
  .datos-read .dv-l{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
  .datos-read .dv-v{font-size:15.5px;font-weight:600;color:var(--txt)}
  .datos-read .dv-top{margin-bottom:14px;justify-content:space-between;align-items:center}
  .dv-hint{font-size:12.5px;color:var(--muted)}
  .dv-hint b{color:var(--navy)}
  /* ===== Datos (lectura) — ficha estilo "contacto" con íconos, copiar y llamar ===== */
  .df-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 3px rgba(30,42,120,.05);margin-bottom:30px;overflow:hidden}
  .df-head{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfbff,#fff)}
  .df-hic{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
  .df-hic.navy{background:var(--blue-soft)} .df-hic.orange{background:var(--orange-l)} .df-hic.gold{background:#fbf1d3} .df-hic.green{background:var(--green-l)}
  .df-head-t{font-weight:800;font-size:15px;color:var(--txt);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .df-list{display:grid;grid-template-columns:1fr 1fr;column-gap:44px;padding:12px 22px 18px}
  .df-row{display:flex;align-items:center;gap:13px;padding:17px 0;border-bottom:1px solid var(--line)}
  .df-row:nth-last-child(-n+2){border-bottom:none}
  @media(max-width:640px){.df-list{grid-template-columns:1fr}.df-row:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.df-row:last-child{border-bottom:none}}
  .df-ic{width:26px;text-align:center;font-size:17px;flex-shrink:0}
  .df-body{flex:1;min-width:0}
  .df-l{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  .df-v{font-size:15.5px;font-weight:600;color:var(--txt);margin-top:2px;word-break:break-word}
  .df-empty{color:#c3c6d0;font-weight:500;font-style:italic}
  .df-row.copyable{cursor:pointer;border-radius:11px;margin:0 -12px;padding-left:12px;padding-right:12px;transition:background .12s}
  .df-row.copyable:hover{background:var(--blue-soft)}
  .df-copy{margin-left:auto;font-size:16px;color:var(--muted);opacity:0;transition:.12s;flex-shrink:0}
  .df-row.copyable:hover .df-copy{opacity:.9}
  .df-row.copied{background:var(--green-l)!important}
  .df-row.copied .df-copy{opacity:1;color:var(--green)}
  .df-call{margin-left:auto;background:var(--green-l);color:var(--green);border:none;border-radius:20px;padding:6px 13px;font-size:12.5px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:5px;flex-shrink:0}
  .df-call:hover{background:#d4ecdf}
  /* ===== Datos (edición) — divide secciones y deja respirar ===== */
  .datos-edit .section-title{margin:24px 0 14px;padding-top:22px;border-top:1px solid var(--line)}
  .datos-edit .form-grid{gap:16px 22px}
  /* ===== Documentos rediseñados ===== */
  .docx-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
  .docx-search{flex:1;min-width:200px;border:1px solid var(--line);border-radius:12px;padding:11px 14px;font-size:14px;font-family:inherit;background:var(--card);color:var(--txt)}
  .docx-search:focus{outline:none;border-color:var(--navy)}
  .docx-total{font-weight:800;color:var(--navy);background:var(--blue-soft);border-radius:20px;padding:7px 14px;font-size:13px;white-space:nowrap}
  .docx-sec{margin-bottom:18px}
  .docx-sec-h{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--txt);font-size:15px;margin-bottom:10px}
  .docx-sec-n{font-size:12px;font-weight:700;color:var(--navy);background:var(--blue-soft);border-radius:20px;padding:2px 10px}
  .docx-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  @media(max-width:680px){.docx-grid{grid-template-columns:1fr}}
  .docx-item{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-left-width:4px;border-radius:14px;padding:14px 16px;transition:box-shadow .15s,transform .12s}
  .docx-item:hover{box-shadow:0 6px 18px rgba(30,42,120,.08);transform:translateY(-1px)}
  .docx-item.ok{border-left-color:var(--green);background:#fbfefc}
  .docx-item.miss{border-left-color:var(--orange)}
  .docx-ico{flex-shrink:0;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:21px;background:#eef0fa;box-shadow:inset 0 0 0 1px rgba(46,67,219,.05)}
  .docx-item.ok .docx-ico{background:var(--green-l)}
  .docx-item.miss .docx-ico{background:#fff3ec}
  .docx-info{flex:1;min-width:0}
  .docx-name{font-weight:700;font-size:14px;color:var(--txt);line-height:1.25}
  .docx-photos{background:var(--green-l);color:var(--green);border:none;border-radius:20px;padding:3px 10px;font-size:11.5px;font-weight:700;cursor:pointer;margin-top:5px}
  .docx-photos:hover{background:#d4ecdf}
  .docx-state{font-size:12px;font-weight:600;margin-top:5px;display:inline-block}
  .docx-state.ok{color:var(--green)}
  .docx-state.miss{color:var(--muted)}
  .docx-add{flex-shrink:0;background:var(--blue-soft);color:var(--navy);border:none;border-radius:10px;padding:8px 13px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.15s}
  .docx-add:hover{background:#dfe3f5}
  .docx-empty{text-align:center;color:var(--muted);padding:30px}
  /* ============ NÓMINA ============ */
  .nom-sub{margin-top:14px}
  .nom-grid{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}
  @media(max-width:900px){.nom-grid{grid-template-columns:1fr}}
  .nom-side{padding:16px}
  .nom-side-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
  .nom-wklbl{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase}
  .nom-total-box{background:var(--blue-soft);border-radius:12px;padding:12px 14px;margin-bottom:12px}
  .nom-total-box small{color:var(--navy);font-weight:700;font-size:10.5px;letter-spacing:.4px}
  .nom-total-num{color:var(--navy);font-weight:800;font-size:24px;margin-top:2px}
  .nom-prog-box{margin-bottom:12px}
  .nom-prog-top{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:5px;text-transform:uppercase}
  .nom-prog-top b{color:var(--green)}
  .nom-prog{height:7px;background:var(--line);border-radius:20px;overflow:hidden}
  .nom-prog i{display:block;height:100%;background:var(--green);border-radius:20px;transition:width .3s;width:0}
  .nom-select{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13.5px;font-family:inherit;background:var(--card);margin-bottom:9px;color:var(--txt)}
  .nom-emplist{display:flex;flex-direction:column;gap:2px;max-height:440px;overflow-y:auto;margin:4px -6px 8px}
  .nom-emprow{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;cursor:pointer;transition:background .12s}
  .nom-emprow:hover{background:var(--bg)}
  .nom-emprow.sel{background:#eef0ff;box-shadow:inset 0 0 0 1.5px #c3c9f2}
  .nom-check{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff}
  .nom-check.on{background:var(--green);border-color:var(--green)}
  .nom-emprow .ei{flex:1;min-width:0}
  .nom-emprow .en{font-weight:700;font-size:13.5px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nom-emprow.sel .en{color:var(--navy)}
  .nom-emprow .es{font-size:11px;color:var(--muted)}
  .nom-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
  .nom-emprow .eamt{font-weight:800;font-size:12.5px;color:var(--navy);white-space:nowrap}
  .nom-emprow .edoc{opacity:.4;font-size:15px}
  .nom-addemp{width:100%;border:1.5px dashed var(--line);color:var(--navy);font-weight:700}
  .nom-main{padding:22px 24px;min-height:320px}
  .nom-empty-editor{color:var(--muted);text-align:center;padding:60px 20px}
  .nom-ed-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
  .nom-ed-head h2{font-size:22px;color:var(--txt)}
  .nom-ed-sub{color:var(--muted);font-size:13px;margin-top:2px}
  .nom-cap-badge{color:var(--green);font-weight:700;font-size:13px;white-space:nowrap}
  .nom-cap-badge.no{color:var(--muted)}
  .nom-ed-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;margin:16px 0}
  @media(max-width:640px){.nom-ed-fields{grid-template-columns:1fr}}
  .nom-f label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px}
  .nom-f input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;background:var(--card);color:var(--txt)}
  .nom-f input:focus{outline:none;border-color:var(--navy)}
  .nom-f input:read-only{background:#f7f8fd;color:var(--muted)}
  .nom-link-note{background:var(--blue-soft);border-radius:12px;padding:11px 14px;font-size:13px;color:var(--navy);line-height:1.45;margin-bottom:6px}
  .nom-note-sm{font-size:12.5px;color:var(--navy);background:var(--blue-soft);padding:8px 12px;border-radius:9px;line-height:1.4;margin:2px 0 8px}
  .nom-xrow{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
  .nom-xboxes{display:flex;gap:10px;flex:1;flex-wrap:wrap}
  .nom-xbox{display:flex;flex-direction:column;gap:3px}
  .nom-xbox label{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
  .nom-xin{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:9px;padding:5px 9px;background:#fff}
  .nom-xin input{width:44px;border:none;outline:none;text-align:center;font-size:14px;font-weight:700;color:var(--navy);background:transparent}
  .nom-xin span{font-size:11px;color:var(--muted);white-space:nowrap}
  .nom-xin-auto{background:#eef6ff;border-color:#bcd4f5}
  .nom-xin-auto b{font-size:14px;font-weight:800;color:var(--navy)}
  .nom-auto-tag{font-size:9px;font-weight:800;color:#1f6fd6;background:#e4efff;border-radius:20px;padding:1px 6px;letter-spacing:.2px;text-transform:none;margin-left:4px}
  .nom-auto{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 12px}
  .nom-achip{flex:1;min-width:108px;background:#f6f7fb;border-radius:11px;padding:9px 13px}
  .nom-achip small{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-bottom:2px}
  .nom-achip b{font-size:16px} .nom-achip.pos b{color:#1f7a44} .nom-achip.neg b{color:#ff4f01}
  .nom-cap-h{font-weight:800;color:var(--navy);font-size:12.5px;margin:14px 0 5px}
  .nom-fin{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}
  .nom-fin-main{flex:1;min-width:190px;background:var(--navy);color:#fff;border-radius:14px;padding:16px 18px}
  .nom-fin-main small{font-size:11px;opacity:.85;font-weight:700;letter-spacing:.5px}
  .nom-fin-main div{font-size:29px;font-weight:900;line-height:1.1;margin-top:4px}
  .nom-fin-side{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px;justify-content:center}
  .nom-fin-side>div{display:flex;justify-content:space-between;align-items:center;background:#f6f7fb;border-radius:10px;padding:7px 12px}
  .nom-fin-side small{font-size:12px;color:var(--muted)} .nom-fin-side b{font-size:14px;color:var(--navy);white-space:nowrap}
  .nom-sec-title{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--navy);font-size:13px;letter-spacing:.4px;margin:14px 0 6px;text-transform:uppercase}
  .nom-sec-title::before{content:"";width:4px;height:16px;background:var(--navy);border-radius:2px}
  .nom-line{display:grid;grid-template-columns:1fr 190px 120px;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
  @media(max-width:640px){.nom-line{grid-template-columns:1fr 130px 90px}}
  .nom-line .lbl{font-weight:700;font-size:13.5px;color:var(--txt)}
  .nom-line .hint{font-size:11.5px;color:var(--muted);font-weight:400;margin-top:1px}
  .nom-line .linkchip{display:inline-flex;align-items:center;gap:4px;background:#eef0ff;color:var(--navy);border:1px solid #c3c9f2;border-radius:20px;padding:1px 8px;font-size:11px;font-weight:600;margin-top:3px}
  .nom-inbox{position:relative;display:flex;align-items:center}
  .nom-inbox span{position:absolute;left:11px;color:var(--muted);font-size:13px}
  .nom-inbox input{width:100%;text-align:right;border:1px solid var(--line);border-radius:10px;padding:10px 12px 10px 24px;font-size:14px;font-weight:700;font-family:inherit;background:var(--card);color:var(--txt)}
  .nom-inbox input:focus{outline:none;border-color:var(--navy)}
  .nom-inbox.linked input{background:#eef0ff;color:var(--navy)}
  .nom-eff{text-align:right;font-weight:800;font-size:14px;white-space:nowrap}
  .nom-eff.pos{color:var(--green)} .nom-eff.neg{color:var(--orange)}
  .nom-totals{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-top:22px}
  @media(max-width:640px){.nom-totals{grid-template-columns:1fr}}
  .nom-tcard{border-radius:14px;padding:16px 18px}
  .nom-tcard.big{background:var(--blue-soft)}
  .nom-tcard.plain{background:#f6f7fb;border:1px solid var(--line)}
  .nom-tcard small{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
  .nom-tcard .big-num{color:var(--navy);font-weight:800;font-size:30px;line-height:1.1;margin-top:3px}
  .nom-tcard .mid-num{color:var(--navy);font-weight:800;font-size:22px;margin-top:3px}
  .nom-mini2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
  @media(max-width:640px){.nom-mini2{grid-template-columns:1fr}}
  .nom-minicard{background:#f6f7fb;border:1px solid var(--line);border-radius:12px;padding:12px 15px}
  .nom-minicard small{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase}
  .nom-minicard .n{font-weight:800;font-size:18px;margin-top:2px}
  .nom-minicard .n.green{color:var(--green)} .nom-minicard .n.navy{color:var(--txt)}
  .nom-ed-foot{display:flex;justify-content:space-between;gap:10px;margin-top:24px;flex-wrap:wrap}
  .nom-ed-foot .right{display:flex;gap:10px;flex-wrap:wrap}
  /* KPIs / tablas */
  .nom-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px;margin-bottom:18px}
  @media(max-width:820px){.nom-kpis{grid-template-columns:repeat(2,1fr)}}
  .nom-kpi{background:var(--card);border:1px solid var(--line);border-left-width:5px;border-radius:14px;padding:15px 18px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 12px 26px -20px rgba(23,37,84,.4);transition:transform .12s,box-shadow .12s}
  .nom-kpi[onclick]{cursor:pointer}
  .nom-kpi[onclick]:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(16,24,40,.06),0 16px 30px -16px rgba(23,37,84,.5)}
  .nom-kpi small{font-size:10.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;display:block}
  .nom-kpi .n{font-weight:850;font-size:27px;margin-top:5px;letter-spacing:-.6px}
  .nom-kpi .sub{font-size:11px;color:var(--muted);margin-top:2px}
  .nom-kpi.green{border-left-color:var(--green)} .nom-kpi.green .n{color:var(--green)}
  .nom-kpi.orange{border-left-color:var(--orange)} .nom-kpi.orange .n{color:var(--orange)}
  .nom-kpi.gold{border-left-color:var(--gold)} .nom-kpi.gold .n{color:var(--gold)}
  .nom-kpi.navy{border-left-color:var(--navy)} .nom-kpi.navy .n{color:var(--navy)}
  .nom-kpi.teal{border-left-color:#0d9488} .nom-kpi.teal .n{color:#0d9488}
  .nom-kpi.purple{border-left-color:#7c3aed} .nom-kpi.purple .n{color:#7c3aed}
  .nom-cfg{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:16px}
  .nom-cfg summary{font-weight:800;color:var(--navy);cursor:pointer;font-size:14px;list-style:none}
  .nom-cfg summary::-webkit-details-marker{display:none}
  .nom-cfg summary::before{content:"▸ ";color:var(--muted)}
  .nom-cfg[open] summary::before{content:"▾ "}
  .nom-cfg-row{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
  .nom-cfg-row label{font-size:14px;color:var(--txt);font-weight:600;display:inline-flex;align-items:center;gap:8px}
  .nom-cfg-row input{width:82px;border:1px solid var(--line);border-radius:9px;padding:7px 9px;font-size:14px;font-weight:700;font-family:inherit;text-align:center;background:var(--card);color:var(--txt)}
  .nom-cfg-row input:focus{outline:none;border-color:var(--navy)}
  .nom-filters{display:flex;gap:12px;align-items:flex-end;margin-bottom:14px;flex-wrap:wrap}
  .nom-filters .field label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;margin-bottom:4px}
  .nom-filters .field input,.nom-filters .field select{border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13.5px;font-family:inherit;background:var(--card);color:var(--txt)}
  .nom-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--card)}
  .nom-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
  .nom-table th{background:#f6f7fb;color:var(--muted);font-weight:700;text-align:right;padding:11px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;border-bottom:1px solid var(--line)}
  .nom-table th:first-child,.nom-table td:first-child{text-align:left}
  .nom-table td{padding:11px 12px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
  .nom-table tr:last-child td{border-bottom:none}
  .nom-table .rname{font-weight:700;color:var(--txt)}
  .nom-table .rsuc{font-size:11px;color:var(--muted)}
  .nom-table .tot-row td{background:#f6f7fb;font-weight:800;color:var(--txt)}
  .nom-table .tot-row td.total-col{color:var(--navy)}
  .nom-table .total-col{background:var(--blue-soft);color:var(--navy);font-weight:800}
  .nom-table .muted-cell{color:#c3c6d0}
  /* ===== Pagos rediseñado (Apple/Stripe) ===== */
  .pg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
  .pg-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}
  .pg-ano{margin-left:auto}
  @media(max-width:760px){.pg-ano{margin-left:0}}
  .pg-toggle{display:inline-flex;background:#eef0f6;border-radius:10px;padding:3px}
  .pg-tg{border:none;background:none;font-family:inherit;font-size:13px;font-weight:700;color:var(--muted);padding:7px 16px;border-radius:8px;cursor:pointer;transition:all .15s}
  .pg-tg.active{background:var(--card);color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.12)}
  .pg-select{border:1px solid var(--line);border-radius:10px;padding:8px 11px;font-size:13px;font-family:inherit;background:var(--card);color:var(--txt)}
  .pg-search{border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px;font-family:inherit;background:var(--card);color:var(--txt);width:150px}
  .pg-search:focus,.pg-select:focus{outline:none;border-color:var(--navy)}
  .pg-refresh{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--navy);font-size:17px;cursor:pointer;transition:transform .3s}
  .pg-refresh:hover{background:var(--blue-soft)} .pg-refresh.spin{transform:rotate(360deg)}
  .pg-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 1px 2px rgba(16,24,40,.04),0 16px 34px -24px rgba(23,37,84,.4)}
  .pg-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;font-variant-numeric:tabular-nums}
  .pg-table th,.pg-table td{padding:0}
  .pg-table thead th{position:sticky;top:0;background:#fbfbfe;z-index:3;font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:11px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line);vertical-align:top}
  .pg-table thead th.grp{text-align:center;color:var(--navy);border-left:1px solid var(--line)}
  .pg-colname{position:sticky;left:0;z-index:4;background:#fbfbfe;text-align:left!important;min-width:230px}
  .pg-table tbody .pg-colname{background:var(--card);z-index:2}
  .pg-sucrow td{background:linear-gradient(90deg,#eef1fb,#f5f7fd);font-weight:800;color:var(--navy);font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;padding:9px 14px;border-bottom:1px solid var(--line);border-top:1px solid var(--line);position:sticky;left:0}
  .pg-sucrow .pg-sc-tot{float:right;color:var(--muted);font-weight:700}
  .pg-prow{transition:background .1s}
  .pg-prow:hover td{background:#f7f8fd}
  .pg-prow:hover .pg-colname{background:#f7f8fd}
  .pg-prow td{border-bottom:1px solid #eef0f6;padding:12px 12px;text-align:right;white-space:nowrap;color:var(--txt);font-weight:600}
  .pg-person{display:flex;align-items:center;gap:11px;cursor:pointer;padding:10px 14px}
  .pg-av{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:13px}
  .pg-pn{font-weight:700;font-size:14px;color:var(--txt);line-height:1.15}
  .pg-person:hover .pg-pn{color:var(--navy)}
  .pg-pr{font-size:11.5px;color:var(--muted)}
  .pg-fixed{font-weight:800;color:var(--txt);border-right:1px solid var(--line);background:#fbfbfe!important}
  .pg-cell{cursor:pointer}
  .pg-cell:hover{background:var(--blue-soft)!important;color:var(--navy);border-radius:6px}
  .pg-cell.has{color:var(--txt);font-weight:800} .pg-cell.zero{color:#c3c6d0;cursor:default}
  .pg-cell.cap{color:#cfd3e0;cursor:pointer;font-size:12px} .pg-cell.cap:hover{background:var(--blue-soft)!important;color:var(--navy);border-radius:6px}
  .pg-mesnav{display:flex;align-items:center;gap:10px;margin:2px 0 14px}
  .pg-mesnav b{font-size:16px;min-width:120px;text-align:center}
  .pg-mnote{color:var(--muted);font-size:12.5px;margin-left:6px}
  .pg-print{margin-top:4px;background:var(--blue-soft);color:var(--navy);border:none;border-radius:7px;padding:2px 7px;font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap}
  .pg-print:hover{background:#dfe3f5}
  /* Encabezado de semana rediseñado: fecha + TOTAL de nómina de la semana + acciones compactas */
  .pg-wkh{text-align:center!important;min-width:112px}
  .pg-wk-date{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.5px}
  .pg-wk-tot{font-size:16px;font-weight:850;color:var(--navy);margin:3px 0 6px;letter-spacing:-.3px;line-height:1}
  .pg-wk-acts{display:flex;gap:4px;justify-content:center}
  .pg-mesh{text-align:center!important}
  .pg-ic{background:var(--blue-soft);color:var(--navy);border:none;border-radius:7px;padding:3px 7px;font-size:12px;line-height:1;cursor:pointer;transition:background .12s}
  .pg-ic:hover{background:#dfe3f5}
  .pg-ic.cerr{background:#fdecea;color:#c0341d}
  .pg-ic.cerr:hover{background:#fbdcd7}
  /* Fila de totales al pie */
  .pg-table tfoot .pg-foot-lbl{text-align:left!important;color:var(--navy);font-weight:800;font-size:12px;letter-spacing:.3px;padding:12px 14px}
  .pg-foot-tot{background:#f2f4fb;font-weight:800;color:var(--navy);text-align:right;padding:12px;border-top:2px solid #e3e7f5;font-variant-numeric:tabular-nums}
  .pg-foot-grand{background:var(--navy)!important;color:#fff!important;border-top:2px solid var(--navy);font-size:14px}
  /* Chip de sucursal */
  .pg-sc-name{display:inline-flex;align-items:center;gap:7px}
  .pg-sc-name::before{content:"";width:8px;height:8px;border-radius:3px;background:var(--navy);display:inline-block}
  .rec-page{page-break-after:always}
  .rec-page:last-child{page-break-after:auto}
  @media screen{ .rec-page:not(:last-child){border-bottom:2px dashed #d5d9e6;margin-bottom:22px;padding-bottom:22px} }
  @media screen{ #reciboBody .rec-quarter:not(:last-child){border-bottom:2px dashed #d5d9e6;margin-bottom:22px;padding-bottom:22px} }
  .pg-cell .pgdot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--orange);margin-left:5px;vertical-align:middle}
  .pg-resum{background:#f6f8ff;font-weight:800;color:var(--navy);border-left:1px solid var(--line)}
  .pg-table tfoot td{background:#f2f4fb;font-weight:800;color:var(--navy);padding:11px 12px;text-align:right;border-top:1px solid var(--line);position:sticky;bottom:0}
  .pg-empty{padding:40px;text-align:center;color:var(--muted)}
  /* Drawer ficha persona */
  .pg-drawer-scrim{position:fixed;inset:0;background:rgba(20,25,60,.35);backdrop-filter:blur(2px);display:none;z-index:120;justify-content:flex-end}
  .pg-drawer-scrim.open{display:flex}
  .pg-drawer{width:480px;max-width:94vw;height:100%;background:var(--card);overflow-y:auto;box-shadow:-8px 0 40px rgba(0,0,0,.22);animation:pgSlide .28s cubic-bezier(.2,.7,.2,1)}
  @keyframes pgSlide{from{transform:translateX(40px);opacity:.4}to{transform:translateX(0);opacity:1}}
  .pgd-hd{display:flex;align-items:center;gap:14px;padding:22px 24px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:2}
  .pgd-av{width:54px;height:54px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:19px}
  .pgd-hd h2{font-size:21px;color:var(--txt);line-height:1.1}
  .pgd-hd .sub{color:var(--muted);font-size:13px;margin-top:2px}
  .pgd-x{margin-left:auto;background:none;border:none;font-size:22px;color:var(--muted);cursor:pointer;align-self:flex-start}
  .pgd-body{padding:20px 24px 40px}
  .pgd-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
  .pgd-card{border:1px solid var(--line);border-radius:14px;padding:14px 16px}
  .pgd-card small{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;display:flex;justify-content:space-between}
  .pgd-card .v{font-size:22px;font-weight:800;color:var(--txt);margin-top:5px}
  .pgd-card .v.green{color:var(--green)}
  .pgd-card .edit{color:var(--orange);font-weight:700;cursor:pointer;text-transform:none;letter-spacing:0}
  .pgd-sech{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:6px 0 10px}
  .pgd-chart{border:1px solid var(--line);border-radius:14px;padding:14px 8px 6px;margin-bottom:22px}
  .pgd-mlist{display:flex;flex-direction:column;gap:7px}
  .pgd-mrow{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:11px;padding:12px 15px;font-size:14px}
  .pgd-mrow.has{cursor:pointer} .pgd-mrow.has:hover{background:var(--blue-soft);border-color:#c3c9f2}
  .pgd-mrow .mm{font-weight:600;color:var(--txt)}
  .pgd-mrow.void{color:#c3c6d0} .pgd-mrow.void .mm{color:#c3c6d0}
  .pgd-mrow .ma{font-weight:800;color:var(--txt)}
  .pgd-prom{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;border-top:2px solid var(--line);font-weight:800;font-size:15px}
  .pgd-prom .g{color:var(--green);font-size:20px}
  @media(max-width:520px){.pgd-cards{grid-template-columns:1fr}}
  .nom-rowclick{cursor:pointer;transition:background .12s}
  .nom-rowclick:hover{background:var(--blue-soft)}
  .nom-verchip{font-size:10.5px;font-weight:700;color:var(--navy);background:var(--blue-soft);border-radius:20px;padding:1px 7px;margin-left:6px;white-space:nowrap}
  .nom-editbtn{color:var(--navy);border:1px solid #c3c9f2;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;white-space:nowrap}
  .nom-editbtn:hover{background:var(--blue-soft)}
  .nom-table tfoot .tot-row td{background:#f6f7fb;font-weight:800}
  .nom-caja-table{min-width:1140px}
  .nom-caja-table thead .grp th{text-align:center;font-size:11px;padding:7px 12px}
  .nom-caja-table .g-ahorro{background:#e8f6ec;color:var(--green)}
  .nom-caja-table .g-prestamo{background:var(--orange-l);color:var(--orange)}
  .nom-caja-table .g-caja{background:var(--blue-soft);color:var(--navy)}
  .nom-caja-table td .cin{width:92px;text-align:right;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:13px;font-weight:600;font-family:inherit;background:var(--card);color:var(--txt)}
  .nom-caja-table td .cin.sem{width:56px;background:#eef0ff;color:var(--navy);font-weight:700}
  .nom-caja-table td .cin:focus{outline:none;border-color:var(--navy)}
  .nom-caja-table .rname-in{width:150px;font-weight:700;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-family:inherit;font-size:13px;color:var(--txt);background:var(--card)}
  .rname-txt{font-weight:700;font-size:13px;color:var(--txt)}
  .cin-txt{font-weight:700;font-size:13.5px;color:var(--txt)}
  tr.caja-editing{background:#eef2ff}
  tr.caja-editing .cin{border-color:#2e43db;box-shadow:0 0 0 2px rgba(46,67,219,.12)}
  .nom-caja-table .v-auto{color:var(--txt);font-weight:700}
  .nom-caja-table .v-acc{color:var(--navy);font-weight:800}
  .nom-caja-table .v-acc.warn{color:var(--orange);background:var(--orange-l)}
  .nom-caja-table .v-saldo{color:var(--orange);font-weight:800}
  .nom-caja-table .v-saldo.zero{color:var(--muted)}
  .nom-caja-table .v-caja{color:var(--navy);font-weight:800}
  .nom-caja-table .v-int{color:var(--gold);font-weight:800}
  .nom-rowdel{color:var(--orange);border:1px solid var(--orange-l);border-radius:8px;width:26px;height:26px;font-size:13px}
  .lnk-mini{background:none;border:none;color:var(--navy);font-size:11.5px;cursor:pointer;padding:0 0 0 6px;text-decoration:underline}
  .pto-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
  .pto-row.pto-add{border-bottom:none;margin-top:10px;padding-top:12px}
  .pto-inp{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font-size:14px}
  .pto-count{font-size:11px;color:var(--muted);white-space:nowrap;min-width:74px;text-align:right}
  .nom-linkico{color:var(--navy);opacity:.7;font-size:13px}
  /* Caja de ahorro: nombre clickeable + menú de acciones (no borrar por error) */
  .caja-name-btn{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid transparent;cursor:pointer;padding:4px 8px;border-radius:9px;font-family:inherit;text-align:left;transition:background .12s,border-color .12s}
  .caja-name-btn:hover{background:var(--blue-soft);border-color:#d6ddf7}
  .caja-caret{color:#9aa0c0;font-weight:800;font-size:16px;line-height:.6;letter-spacing:1px}
  .caja-name-btn:hover .caja-caret{color:var(--navy)}
  .caja-menu{position:fixed;z-index:9999;background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:0 20px 55px rgba(20,26,55,.3);padding:6px;min-width:214px;display:flex;flex-direction:column;gap:2px;animation:cajaMenuIn .13s ease-out}
  @keyframes cajaMenuIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
  .caja-menu-hd{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;padding:8px 11px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .caja-menu button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:10px 12px;font-size:14px;font-weight:600;color:var(--txt);cursor:pointer;font-family:inherit}
  .caja-menu button:hover{background:var(--blue-soft)}
  .caja-menu button.danger{color:var(--orange)}
  .caja-menu button.danger:hover{background:var(--orange-l)}
  .caja-menu-sep{height:1px;background:var(--line);margin:4px 8px}
  /* Caja de ahorro: pulido de la tabla */
  .nom-tablewrap{box-shadow:0 1px 2px rgba(16,24,40,.04),0 16px 34px -24px rgba(23,37,84,.4)}
  .nom-caja-table tbody td{padding:13px 12px}
  .nom-caja-table tbody tr{transition:background .1s}
  .nom-caja-table tbody tr:hover td{background:#f7f9ff}
  .nom-caja-table thead .grp th{font-weight:800;letter-spacing:.4px;text-transform:uppercase;border-bottom:2px solid rgba(255,255,255,.6)}
  .nom-caja-table thead .g-ahorro{box-shadow:inset 3px 0 0 var(--green)}
  .nom-caja-table thead .g-prestamo{box-shadow:inset 3px 0 0 var(--orange)}
  .nom-caja-table thead .g-caja{box-shadow:inset 3px 0 0 var(--navy)}
  /* Recibo */
  .recibo-modal{padding:0;overflow:hidden}
  .recibo-bar{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:2}
  .recibo-body{padding:0 0 8px;max-height:78vh;overflow-y:auto}
  .rec-hd{background:linear-gradient(120deg,var(--navy-d),var(--navy));color:#fff;padding:22px 28px;display:flex;justify-content:space-between;align-items:flex-start}
  .rec-hd .lg{display:flex;align-items:center;gap:14px}
  .rec-hd .lgbadge{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px}
  .rec-hd h2{font-size:24px;letter-spacing:1px;margin:0}
  .rec-hd .sm{font-size:11px;letter-spacing:2px;opacity:.85}
  .rec-hd .rt{text-align:right;font-size:13px;line-height:1.6}
  .rec-in{padding:22px 28px}
  .rec-name{font-size:26px;font-weight:800;color:var(--txt);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .rec-suc{background:var(--blue-soft);color:var(--navy);font-size:13px;font-weight:700;border-radius:20px;padding:3px 12px}
  .rec-lead{color:var(--muted);margin:6px 0 18px;font-size:14px}
  .rec-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media(max-width:620px){.rec-2col{grid-template-columns:1fr}}
  .rec-box{border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .rec-box .bh{color:#fff;font-weight:800;padding:11px 15px;display:flex;align-items:center;gap:9px;font-size:14px}
  .rec-box.perc .bh{background:var(--green)}
  .rec-box.ded .bh{background:var(--orange)}
  .rec-box .bh .ic{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;font-size:14px}
  .rec-box table{width:100%;border-collapse:collapse}
  .rec-box td{padding:10px 15px;font-size:14px;border-bottom:1px solid var(--line)}
  .rec-box td:last-child{text-align:right;font-weight:700}
  .rec-box tr.sum td{font-weight:800;border-bottom:none}
  .rec-box.perc tr.sum td{color:var(--green)}
  .rec-box.ded tr.sum td{color:var(--orange)}
  .rec-neto{background:var(--blue-soft);border-radius:14px;padding:18px 22px;margin:18px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
  .rec-neto .lb{color:var(--navy);font-weight:800;font-size:16px;letter-spacing:.3px}
  .rec-neto .letras{color:var(--muted);font-style:italic;font-size:12.5px;margin-top:4px}
  .rec-neto .amt{color:var(--navy);font-weight:800;font-size:34px}
  .rec-caja{border:1px solid var(--line);border-radius:14px;overflow:hidden}
  .rec-caja .ch{background:#eef1fb;color:var(--navy);font-weight:800;padding:11px 16px;font-size:14px}
  .rec-caja table{width:100%;border-collapse:collapse}
  .rec-caja td{padding:11px 16px;font-size:14px;border-bottom:1px solid var(--line)}
  .rec-caja td:last-child{text-align:right;font-weight:800}
  .rec-caja tr:last-child td{border-bottom:none}
  .rec-caja tr.warn td{background:var(--orange-l);color:var(--orange)}
  .rec-caja .acc{color:var(--green)}
  .rec-sign{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:34px 12px 10px}
  .rec-sign .s{border-top:2px solid var(--txt);padding-top:8px;text-align:center;font-size:13px}
  .rec-sign .s b{display:block;font-size:14px}
  .rec-foot{text-align:center;color:var(--muted);font-size:11.5px;padding:14px 20px 20px}
  .nom-rowdoc{color:var(--navy);border:1px solid var(--line);border-radius:8px;width:26px;height:26px;font-size:13px}
  .rec-hd .rt.big{font-size:13px}
  .est-note{background:var(--blue-soft);border-radius:14px;padding:16px 20px;margin:16px 0}
  .est-note .lb{color:var(--navy);font-weight:800;font-size:15px;letter-spacing:.2px}
  .est-note .amt{color:var(--navy);font-weight:800;font-size:30px}
  .est-note .hint{color:var(--muted);font-size:12.5px;margin-top:6px;line-height:1.5}
  .est-actions{border-top:1px solid var(--line);margin-top:22px;padding-top:18px;text-align:center}
  .est-actions .h{font-weight:800;color:var(--muted);font-size:13px;margin-bottom:14px}
  .est-actions p{color:var(--muted);font-size:13px;line-height:1.55;margin:6px 0 12px;max-width:520px;margin-left:auto;margin-right:auto}
  .est-actions .strong-o{color:var(--orange);font-weight:800}
  .est-bigbtn{font-size:15px;padding:12px 22px}
  .est-danger{color:var(--orange);border:1px solid var(--orange-l);font-weight:700;padding:11px 20px}
  .rec-box .bh .amtR{margin-left:auto;font-weight:800}
  @media print{
    @page{ size: letter portrait; margin: 7mm; }
    body *{visibility:hidden}
    #reciboOverlay,#reciboOverlay *{visibility:visible}
    #reciboOverlay{position:absolute;left:0;top:0;right:0;background:#fff;display:block!important;height:auto!important;max-height:none!important;overflow:visible!important}
    .recibo-modal{max-width:100%!important;max-height:none!important;height:auto!important;overflow:visible!important;box-shadow:none;border-radius:0;margin:0}
    .recibo-body{max-height:none!important;height:auto!important;overflow:visible!important;padding:0}
    .recibo-bar,.no-print{display:none!important}
    /* 4 recibos por hoja: grupo de 4 (.print-page) = 1 hoja; cada recibo ocupa un CUARTO fijo → rejilla 2×2 pareja. */
    #reciboBody{font-size:0}
    .print-page{ font-size:0; page-break-after:always; break-after:page; page-break-inside:avoid; break-inside:avoid; }
    .print-page:last-child{ page-break-after:auto; break-after:auto; }
    .rec-quarter{ display:inline-block; width:50%; height:131mm; box-sizing:border-box; vertical-align:top; overflow:hidden; padding:2mm 2.5mm; line-height:1.24; break-inside:avoid; page-break-inside:avoid; border:1px dashed #b9bfd0; margin:0!important; }
    .rec-quarter .rec-lead{ display:none; }   /* ahorra líneas para que quepan 4 por hoja */
    /* Encabezado RESALTADO: barra azul con texto blanco (se fuerza a imprimir en color). */
    .rec-quarter .rec-hd{ padding:6px 9px; background:var(--navy)!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
    .rec-quarter .rec-hd .lgbadge{ width:25px;height:25px;font-size:13px;border-radius:6px; background:rgba(255,255,255,.22)!important; }
    .rec-quarter .rec-hd h2{ font-size:15px;letter-spacing:.4px;color:#fff!important; }
    .rec-quarter .rec-hd .sm{ font-size:7.5px;letter-spacing:1px;color:#fff!important;opacity:.92; }
    .rec-quarter .rec-hd .rt{ font-size:9px;line-height:1.3;color:#fff!important;font-weight:700; }
    .rec-quarter .rec-hd .rt b{ font-size:10px; }
    .rec-quarter .rec-in{ padding:7px 9px; }
    .rec-quarter .rec-name{ font-size:12.5px;gap:5px; }
    .rec-quarter .rec-suc{ font-size:8.5px;padding:2px 8px; }
    .rec-quarter .rec-2col{ gap:6px; }
    .rec-quarter .rec-box{ border-radius:7px; }
    .rec-quarter .rec-box .bh{ font-size:8.5px;padding:3px 7px;gap:4px; }
    .rec-quarter .rec-box .bh .ic{ width:12px;height:12px;font-size:8px; }
    .rec-quarter .rec-box td{ padding:2.5px 7px;font-size:8.5px; }
    .rec-quarter .rec-neto{ padding:6px 9px;margin:6px 0;border-radius:8px; }
    .rec-quarter .rec-neto .lb{ font-size:9.5px; }
    .rec-quarter .rec-neto .letras{ font-size:7px;margin-top:2px; }
    .rec-quarter .rec-neto .amt{ font-size:17px; }
    .rec-quarter .rec-caja{ border-radius:8px; }
    .rec-quarter .rec-caja .ch{ font-size:8.5px;padding:2.5px 8px; }
    .rec-quarter .rec-caja td{ font-size:8px;padding:2.5px 8px; }
    .rec-quarter .rec-sign{ gap:14px;margin:9px 6px 5px; }
    .rec-quarter .rec-sign .s{ font-size:7px;padding-top:3px; }
    .rec-quarter .rec-sign .s b{ font-size:8.5px; }
    .rec-quarter .rec-foot{ font-size:6.5px;padding:4px 8px 5px; }
    /* Estado de cuenta de caja: 1 SOLA hoja (no es el formato de 4 por hoja) */
    .est-doc{ width:170mm; max-width:170mm; margin:0 auto; page-break-inside:avoid; break-inside:avoid; page-break-after:avoid; break-after:avoid; }
    .est-doc *{ page-break-inside:avoid; break-inside:avoid; }
    .est-doc .rec-in{ padding:8px 12px; }
  }
