﻿/* v1.10.0 — Novedades (cartelera), Buzon de sugerencias e Implementaciones. Usa las variables de site.css. */

/* ── Novedades ─────────────────────────────────────────────────────────────── */
.nov-page{max-width:920px;margin-inline:auto}
.nov-page--wide{max-width:1180px}
.nov-head{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}
.nov-back{margin:0 0 .75rem;font-size:.85rem}
.nov-filters{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:1rem}
.nov-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:#374151;font-size:.78rem;font-weight:700;text-decoration:none}
.nov-chip:hover{background:#f9fafb;text-decoration:none}
.nov-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}
.nov-unread{margin-left:auto;font-size:.78rem;font-weight:700;color:var(--primary)}
.nov-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-soft)}
.nov-card.is-new{border-left:4px solid var(--primary)}
.nov-card.is-pinned{background:linear-gradient(180deg,var(--primary-soft) 0,var(--surface) 70px)}
.nov-card--full{padding:1.5rem 1.75rem}
.nov-meta{display:flex;flex-wrap:wrap;gap:.45rem .65rem;align-items:center;font-size:.76rem;color:var(--muted)}
.nov-type{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .6rem;border-radius:999px;font-weight:800;font-size:.72rem;border:1px solid var(--border);background:var(--surface-soft);color:#374151}
.nov-type--NOVEDAD{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.nov-type--MEJORA{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.nov-type--MANTENIMIENTO{background:#fffbeb;border-color:#fde68a;color:#92400e}
.nov-type--TUTORIAL{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}
.nov-type--AVISO{background:var(--primary-soft);border-color:#fecdd3;color:var(--primary-dark)}
.nov-flag{font-weight:700}
.nov-flag--new{background:var(--primary);color:#fff;border-radius:999px;padding:.05rem .5rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}
.nov-version{font-variant-numeric:tabular-nums}
.nov-title{font-size:1.2rem;font-weight:800;line-height:1.3;margin:.45rem 0 .35rem}
.nov-title a{color:var(--text)}
.nov-title a:hover{color:var(--primary)}
.nov-title--full{font-size:1.65rem;margin-top:.6rem}
.nov-summary{color:#374151;margin:0 0 .5rem}
.nov-summary--lead{font-size:1.05rem;color:#4b5563}
.nov-video{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#000;margin:.75rem 0}
.nov-video iframe,.nov-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.nov-video--preview{max-width:560px}
.nov-clip{display:block;width:100%;max-height:520px;border-radius:8px;background:#000;margin:.75rem 0}
.nov-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}
.nov-actions form{margin:0}
.nov-done{font-size:.8rem;font-weight:700;color:#166534}
.nov-body{font-size:.97rem;line-height:1.65;margin:1rem 0;overflow-wrap:anywhere}
.nov-body h2,.nov-body h3{font-size:1.1rem;font-weight:800;margin:1.2rem 0 .4rem}
.nov-body img,.nov-img,.nov-editor img{max-width:100%;height:auto;border-radius:6px}
.nov-body ul,.nov-body ol{padding-left:1.4rem}
.nov-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem;margin:1rem 0}
.nov-gallery img{width:100%;height:130px;object-fit:cover;border:1px solid var(--border)}
.nov-files h3{font-size:.9rem;font-weight:800;margin:1rem 0 .3rem}
.nov-files ul{list-style:none;padding:0;margin:0}
.nov-files li{padding:.2rem 0}
.nov-cta{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;justify-content:space-between;margin-top:1.25rem;padding:1rem 1.1rem;background:var(--surface-blue);border:1px solid #dbeafe;border-radius:var(--radius)}
.nov-cta strong{display:block}
.nov-interest-form{display:flex;gap:.4rem;flex-wrap:wrap}
.nov-interest-form input{min-width:260px}
.nov-pager{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.25rem 0;font-size:.82rem;color:var(--muted)}
.nov-empty{text-align:center;padding:3rem 1rem;color:var(--muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius)}
.nov-empty-icon{font-size:2.4rem}
.nov-empty h2{font-size:1.1rem;color:var(--text);margin:.5rem 0 .25rem}
.nov-preview-banner{font-size:.88rem}
.nov-admin-box{margin-top:1rem;padding:1rem 1.25rem}
.nov-admin-box h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .6rem}
.nov-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem 1rem;margin:0 0 .75rem}
.nov-stats dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.nov-stats dd{margin:0;font-weight:700}
.nov-state{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.72rem;font-weight:800;border:1px solid var(--border);background:var(--surface-soft)}
.nov-state--publicada{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.nov-state--programada{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.nov-state--borrador{background:#f3f4f6;color:#4b5563}
.nov-state--archivada,.nov-state--vencida{background:#fef3c7;border-color:#fde68a;color:#92400e}
.nov-recipients{margin-top:1.25rem;padding:1.1rem 1.25rem}
.nov-recipients h3{font-size:1rem;font-weight:800}
.nov-recipients-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.nov-recipients-form h4{font-size:.85rem;font-weight:800;margin:0 0 .4rem}
.nov-checklist{display:flex;flex-direction:column;gap:.15rem;max-height:210px;overflow:auto;padding:.4rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:.5rem}
.nov-checklist label{display:flex;gap:.45rem;align-items:center;font-size:.84rem;margin:0;font-weight:500}
.nov-checklist label[hidden]{display:none}

/* Formulario */
.nov-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem;align-items:start}
.nov-section{padding:1rem 1.15rem;margin-bottom:1rem}
.nov-section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800;margin:0 0 .6rem}
.nov-hint{font-size:.76rem;margin:.4rem 0 0}
.nov-editor{min-height:300px;max-height:70vh;overflow:auto}
.nov-form-side{position:sticky;top:1rem}
.nov-submit{display:flex;flex-direction:column;gap:.5rem}
.nov-file-list{list-style:none;padding:0;margin:0 0 .6rem}
.nov-file-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border)}
.nov-clientes{margin-top:.5rem}

@media (max-width:900px){
  .nov-form-grid{grid-template-columns:1fr}
  .nov-form-side{position:static}
  .nov-card--full{padding:1.1rem}
  .nov-title--full{font-size:1.35rem}
  .nov-interest-form input{min-width:0;flex:1 1 200px}
}

/* Insignia del menu lateral (novedades sin leer) */
.side-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:.45rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.68rem;font-weight:800;line-height:1}

/* ── Buzon de sugerencias ─────────────────────────────────────────────────── */
.bz-badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.72rem;font-weight:800;border:1px solid var(--border);background:var(--surface-soft);white-space:nowrap}
.bz-badge--lg{font-size:.85rem;padding:.3rem .9rem}
.bz-nuevo{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.bz-revision{background:#fffbeb;border-color:#fde68a;color:#92400e}
.bz-aceptado{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.bz-descartado{background:#f3f4f6;color:#6b7280}
.bz-publicado{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}
.bz-count{display:inline-block;min-width:1.2rem;padding:0 .3rem;margin-left:.15rem;border-radius:999px;background:rgba(0,0,0,.08);font-size:.7rem;text-align:center}
.nov-chip.active .bz-count{background:rgba(255,255,255,.28)}
.bz-table td,.bz-table th{vertical-align:middle}
.bz-report{padding:1rem 1.25rem;margin-bottom:1rem}
.bz-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;margin-top:.5rem}
.bz-ua{font-size:.72rem;word-break:break-all;font-weight:500}
.bz-thread{padding:1rem 1.25rem;margin-bottom:1rem}
.bz-msg{padding:.7rem .9rem;margin-bottom:.6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.bz-msg--team{background:var(--surface-blue);border-color:#dbeafe}
.bz-msg--internal{background:#fffbeb;border-color:#fde68a}
.bz-msg-head{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.8rem;margin-bottom:.25rem}
.bz-msg-head time{color:var(--muted);margin-left:auto;font-size:.74rem}
.bz-msg-body{white-space:pre-wrap;overflow-wrap:anywhere}
.bz-tag{padding:.02rem .45rem;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.66rem;font-weight:800;text-transform:uppercase}
.bz-tag--internal{background:#fde68a;color:#92400e}
.bz-reply{margin-top:.75rem}
.bz-reply-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;align-items:center;margin-top:.5rem}
.bz-history{list-style:none;padding:0;margin:0;font-size:.82rem}
.bz-history li{padding:.25rem 0;border-bottom:1px solid var(--border)}
.bz-history time{color:var(--muted);margin-right:.35rem}
.bz-dup-form{display:flex;gap:.4rem}

/* Boton flotante y formulario */
.bz-fab{position:fixed;right:18px;bottom:18px;z-index:1030;display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .95rem;border:0;border-radius:999px;background:var(--primary);color:#fff;font-weight:800;font-size:.8rem;box-shadow:0 6px 18px rgba(220,53,69,.35);cursor:pointer}
.bz-fab:hover{background:var(--primary-dark)}
.bz-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:0;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:var(--text);background:var(--surface);overflow:auto}
.bz-dialog::backdrop{background:rgba(17,24,39,.55)}
.bz-dialog-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem .25rem}
.bz-dialog-head h2{font-size:1.15rem;font-weight:800;margin:0}
.bz-close{border:0;background:transparent;font-size:1.6rem;line-height:1;color:var(--muted);cursor:pointer}
.bz-intro{margin:0;padding:0 1.25rem .5rem;color:var(--muted);font-size:.84rem}
.bz-form{padding:.5rem 1.25rem 1.25rem}
.bz-kinds{display:flex;gap:.5rem;margin-bottom:.75rem}
.bz-kind{flex:1;display:flex;align-items:center;gap:.4rem;padding:.55rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;font-weight:700;font-size:.85rem;margin:0}
.bz-kind:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.bz-field{margin-bottom:.7rem}
.bz-field label{display:block;font-size:.78rem;font-weight:700;margin-bottom:.2rem}
.bz-field[hidden]{display:none}
.bz-files{list-style:none;padding:0;margin:.4rem 0 0;font-size:.8rem}
.bz-files li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.15rem 0}
.bz-file-remove{border:0;background:transparent;color:var(--danger);font-size:1.1rem;cursor:pointer}
.bz-context{font-size:.74rem;color:var(--muted);margin:.25rem 0 .5rem}
.bz-form-error{padding:.5rem .7rem;margin-bottom:.6rem;border-radius:var(--radius-sm);background:var(--danger-soft);color:#991b1b;font-size:.82rem}
.bz-form-error[hidden],.bz-done[hidden],.bz-intro[hidden]{display:none}
.bz-actions{display:flex;justify-content:flex-end;gap:.5rem}
.bz-done{text-align:center;padding:1.5rem 1.25rem 1.25rem}
.bz-done-icon{width:54px;height:54px;margin:0 auto .5rem;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:1.8rem;display:flex;align-items:center;justify-content:center;font-weight:800}
.bz-done h3{font-size:1.1rem;font-weight:800}
@media (max-width:640px){.bz-fab span{display:none}.bz-fab{padding:.7rem}.bz-kinds{flex-direction:column}}

/* ── Implementaciones y plantillas ────────────────────────────────────────── */
.impl-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start;margin-bottom:1rem}
.impl-add-module{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--surface-soft)}
.impl-add-module input{max-width:340px}
.impl-calendar-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem}
.impl-sub{font-size:.85rem;font-weight:800;margin:1rem 0 .4rem}
.impl-holiday-form{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.impl-holiday-form button{grid-column:1/-1;justify-self:start}
.impl-holidays{max-height:300px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.impl-holiday{display:flex;gap:.6rem;align-items:center;padding:.3rem .6rem;border-bottom:1px solid var(--border);font-size:.84rem}
.impl-holiday:last-child{border-bottom:0}
.impl-holiday.is-worked{background:#f0fdf4}
.impl-holiday-date{min-width:92px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}
.impl-holiday form{margin-left:auto}
.impl-template-switch{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.impl-template-switch label{margin:0}
.impl-template-switch select{max-width:380px}
.impl-modules{display:flex;flex-direction:column;gap:.35rem}
.impl-module{display:flex;flex-wrap:wrap;gap:.2rem .7rem;align-items:center;padding:.5rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);margin:0;cursor:pointer;background:var(--surface)}
.impl-module:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.impl-module.is-done{opacity:.55;cursor:default}
.impl-module-name{font-weight:700}
.impl-module-meta{font-size:.76rem;color:var(--muted)}
.impl-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.6rem 1rem}
.impl-role{display:flex;flex-direction:column;gap:.15rem}
.impl-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-bottom:1rem}
.impl-kpi{padding:.7rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-top:3px solid var(--primary)}
.impl-kpi span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.impl-kpi strong{font-size:1.05rem}
.impl-plan-module{margin-bottom:.9rem}
.impl-plan-head{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-soft)}
.impl-plan-head h3{font-size:1rem;font-weight:800;margin:0}
.impl-bar{position:relative;flex:1 1 220px;height:8px;border-radius:999px;background:#e5e7eb;min-width:160px}
.impl-bar span{position:absolute;top:0;bottom:0;border-radius:999px;background:var(--primary)}
.impl-plan-table th,.impl-plan-table td{font-size:.82rem}
.impl-confirm{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1rem 0 2rem}
.impl-confirm .nov-hint{flex-basis:100%}

/* Editor de plantillas: tarjetas de modulo con tareas en filas alineadas */
.pt-main{display:flex;flex-direction:column;gap:.7rem;min-width:0}
.pt-mod{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft);overflow:hidden}
.pt-mod.is-dirty{border-color:#f59e0b}
.pt-mod--quick{border-style:dashed;border-color:var(--border-strong);box-shadow:none}
.pt-mod-head{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;padding:.35rem .6rem .35rem .25rem;background:var(--surface-soft)}
.pt-mod.is-open>.pt-mod-head{border-bottom:1px solid var(--border)}
.pt-toggle{display:flex;align-items:center;gap:.5rem;flex:1 1 220px;min-width:0;padding:.5rem .6rem;border:0;background:transparent;text-align:left;color:var(--text);cursor:pointer;border-radius:var(--radius-sm)}
.pt-toggle:hover .pt-mod-name{color:var(--primary)}
.pt-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.pt-caret{display:inline-block;width:1rem;color:var(--muted);transition:transform .15s}
.pt-mod.is-open>.pt-mod-head .pt-caret{transform:rotate(90deg)}
.pt-mod-name{font-size:1rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-mod-badges{display:flex;gap:.35rem;flex-wrap:wrap}
.pt-badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);font-size:.7rem;font-weight:700;color:#374151}
.pt-badge--dirty{background:#fffbeb;border-color:#fcd34d;color:#92400e}
.pt-mod-meta{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.pt-mod-actions{display:flex;gap:.15rem;align-items:center}
.pt-mod-actions form{margin:0}
.pt-mod-body{display:none;padding:1rem 1.1rem 1.1rem}
.pt-mod.is-open>.pt-mod-body{display:block}
.pt-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:.8rem;line-height:1;cursor:pointer}
.pt-icon-btn:hover{background:var(--surface);border-color:var(--border-strong);color:var(--text)}
.pt-icon-btn--danger:hover{background:#fef2f2;border-color:#fecaca;color:var(--danger)}
.pt-icon-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.pt-gear.has-options,.pt-task.is-adv .pt-gear{background:var(--primary-soft);border-color:#fecdd3;color:var(--primary-dark)}

.pt-mod-fields{display:flex;flex-wrap:wrap;gap:.7rem 1rem;align-items:flex-end;margin-bottom:1rem}
.pt-field{display:flex;flex-direction:column;gap:.2rem;margin:0;min-width:0;flex:0 1 260px}
.pt-field--grow{flex:1 1 280px}
.pt-field--wide{grid-column:1/-1}
.pt-field>span{font-size:.74rem;font-weight:700;color:#4b5563}
.pt-checks{display:flex;flex-direction:column;gap:.2rem;flex:1 1 100%}
.pt-checks .form-check,.pt-adv-checks .form-check{display:flex;align-items:center;gap:.45rem;margin:0;padding:0;font-size:.84rem;min-height:0}
.pt-checks .form-check-input,.pt-adv-checks .form-check-input{margin:0;float:none;flex:none}

/* Una sola rejilla para el encabezado y todas las filas: todo queda alineado */
.pt-grid{display:grid;grid-template-columns:30px minmax(0,1fr) 150px 30px 30px;gap:0 .6rem;align-items:start}
.pt-grid-head{padding:0 .5rem .35rem;font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border)}
.pt-list{display:flex;flex-direction:column}
.pt-task{padding:.5rem .5rem .4rem;border-bottom:1px solid var(--border)}
.pt-task:last-child{border-bottom:0}
.pt-task:hover{background:var(--surface-soft)}
.pt-move{display:flex;flex-direction:column;align-items:center;gap:0}
.pt-move .pt-icon-btn{width:24px;height:15px;font-size:.55rem}
.pt-cell{min-width:0;display:flex;flex-direction:column}
.pt-chips{min-height:1rem;margin-top:.15rem;font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-hint{display:block;min-height:1rem;margin-top:.15rem;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pt-hint.is-bad{color:var(--danger);font-weight:700}
.pt-adv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem 1rem;margin:.55rem 0 .35rem 36px;padding:.8rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.pt-adv[hidden]{display:none}
.pt-adv .pt-field{flex:none}
.pt-adv-checks{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.4rem 1.5rem}
.pt-empty{padding:1rem .5rem;text-align:center;margin:0}
.pt-footer{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;justify-content:space-between;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}
.pt-footer .pt-total{margin-right:auto;font-size:.82rem}
.pt-plan{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;line-height:1.55}
.pt-quick-foot{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:flex-start;margin-top:.7rem;font-size:.8rem}
.pt-quick-foot .btn{flex:none}
.pt-quick-foot .muted{flex:1 1 320px}
.pt-add-module{display:flex;flex-wrap:wrap;gap:.5rem;padding:.8rem 1rem;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface)}
.pt-add-module input{flex:1 1 240px;max-width:380px}
.pt-blank{padding:1rem 1.2rem;text-align:center;color:var(--muted)}
.pt-help{margin:0;padding-left:1.1rem;font-size:.82rem;color:#374151;display:flex;flex-direction:column;gap:.45rem}
@media (max-width:900px){
    .pt-adv{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0}
}
@media (max-width:640px){
    .pt-grid{grid-template-columns:26px minmax(0,1fr) 28px 28px;grid-template-areas:"move name gear del" ". dur dur dur"}
    .pt-grid>:nth-child(1){grid-area:move}.pt-grid>:nth-child(2){grid-area:name}.pt-grid>:nth-child(3){grid-area:dur;margin-top:.4rem}
    .pt-grid>:nth-child(4){grid-area:gear}.pt-grid>:nth-child(5){grid-area:del}
    .pt-grid-head{display:none}
    .pt-adv{grid-template-columns:minmax(0,1fr)}
    .pt-mod-body{padding:.8rem .7rem}
}

/* Cronograma del cliente */
.client-impl-panel,.client-news-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem}
.client-impl-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem}
.client-impl-item{display:block;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);text-decoration:none;background:var(--surface-soft)}
.client-impl-item:hover{border-color:var(--primary);text-decoration:none}
.client-impl-top{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}
.client-impl-top span{font-weight:800;color:var(--primary)}
.client-impl-track{height:8px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-bottom:.3rem}
.client-impl-track>span{display:block;height:100%;background:var(--success);border-radius:999px}
.client-impl-track--lg{height:12px;margin:.25rem 0 1rem}
.client-impl-item small{color:var(--muted)}
.client-news-list{display:flex;flex-direction:column}
.client-news-item{display:flex;flex-wrap:wrap;gap:.3rem .7rem;align-items:center;padding:.55rem .25rem;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}
.client-news-item:last-child{border-bottom:0}
.client-news-item:hover{background:var(--surface-soft);text-decoration:none}
.client-news-item.is-new strong::after{content:"Nuevo";margin-left:.5rem;padding:.02rem .45rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.62rem;text-transform:uppercase}
.client-news-item small{color:var(--muted);margin-left:auto}
.crono-total{text-align:right}
.crono-total strong{display:block;font-size:1.8rem;line-height:1;color:var(--success)}
.crono-total span{font-size:.8rem;color:var(--muted)}
.crono-module{margin-bottom:.9rem}
.crono-head{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-soft)}
.crono-head h3{font-size:1rem;font-weight:800;margin:0}
.crono-head .client-impl-track{flex:1 1 200px;margin:0;min-width:140px}
.crono-pct{font-size:.8rem;font-weight:700}
.crono-table td{font-size:.84rem}
.crono-table tr.is-done td{color:var(--muted)}
.crono-line{position:relative;height:10px;background:#f3f4f6;border-radius:999px}
.crono-line span{position:absolute;top:0;bottom:0;min-width:6px;border-radius:999px;background:var(--primary)}
.crono-line span.is-done{background:var(--success)}
@media (max-width:900px){.impl-grid,.impl-calendar-grid{grid-template-columns:1fr}}

/* ── Uso y rendimiento (v1.11.0) ──────────────────────────────────────────── */
.uso-periods{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.uso-kpis{margin-bottom:1rem}
.uso-kpis .impl-kpi small{display:block;margin-top:.15rem;font-size:.7rem;color:var(--muted);font-weight:400}
.uso-kpis .impl-kpi strong{font-variant-numeric:tabular-nums}
.uso-of{display:inline;font-size:.72rem;font-weight:400;color:var(--muted)}
.uso-ok{color:#15803d}.uso-warn{color:#b45309}.uso-bad{color:#b91c1c}
.uso-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.uso-card{padding:1rem 1.1rem;min-width:0}
.uso-card--wide{grid-column:1/-1}
.uso-grid .uso-card--wide:first-child{grid-column:span 1}
.uso-chart{position:relative;height:300px}
.uso-chart--radar{height:420px}
.uso-chart--small{height:240px}
.uso-chart--bars{height:340px}
.uso-empty{padding:2rem 1rem;text-align:center;color:var(--muted);font-size:.9rem}
.uso-block{margin-bottom:1rem}
.uso-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.uso-two .uso-block{margin-bottom:0}
.uso-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.uso-table td{font-size:.84rem;font-variant-numeric:tabular-nums}
.uso-pill{display:inline-block;min-width:3.6rem;padding:.1rem .5rem;border-radius:999px;font-weight:700;font-size:.78rem;text-align:center;background:#f3f4f6}
.uso-pill.uso-ok{background:#ecfdf3}.uso-pill.uso-warn{background:#fffbeb}.uso-pill.uso-bad{background:#fef2f2}
.uso-bar{height:8px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-bottom:.15rem}
.uso-bar>span{display:block;height:100%;border-radius:999px;background:var(--primary)}
.uso-unused{margin-bottom:.7rem;display:flex;flex-wrap:wrap;gap:.35rem .4rem;align-items:center}
.uso-unused>strong{flex:1 1 100%;font-size:.78rem;color:#4b5563}
.uso-tag{display:inline-block;padding:.15rem .6rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-soft);font-size:.78rem}
.uso-heat{overflow-x:auto}
.uso-heat-table{border-collapse:separate;border-spacing:2px;width:100%;table-layout:fixed}
.uso-heat-table th{font-size:.62rem;font-weight:600;color:var(--muted);text-align:center;padding:0;width:auto}
.uso-heat-table tbody th{text-align:right;padding-right:.4rem;width:2.4rem}
.uso-heat-table td{height:26px;border-radius:3px;background:#f3f4f6}
.uso-heat-legend{margin-top:.5rem;font-size:.72rem;color:var(--muted)}
.uso-notes ul{margin:0;padding-left:1.1rem;font-size:.84rem;color:#374151;display:flex;flex-direction:column;gap:.45rem}
@media (max-width:900px){.uso-grid,.uso-two{grid-template-columns:minmax(0,1fr)}.uso-chart--radar{height:340px}}

/* ── Horas: consumo del estimado, paquete del cliente (v1.12.0) ─────────────── */
.hb{height:6px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-top:5px}
.hb>span{display:block;height:100%;border-radius:999px;background:#16a34a}
.hb--ALERTA>span{background:#d97706}.hb--EXCEDIDO>span{background:#dc2626}
.hb-text{display:block;margin-top:2px;font-size:.7rem;color:var(--muted)}
.hb-text--ALERTA{color:#b45309;font-weight:700}.hb-text--EXCEDIDO{color:#b91c1c;font-weight:700}
.pkg-line{display:block;margin-top:3px;font-size:.7rem;color:var(--muted);text-decoration:none}
.pkg-line:hover{color:var(--primary);text-decoration:underline}
.pkg-line--ALERTA{color:#b45309;font-weight:700}.pkg-line--EXCEDIDO{color:#b91c1c;font-weight:700}
.ticket-time-package{display:flex;align-items:center;gap:.4rem;grid-column:1/-1;font-size:.78rem;color:#374151;margin:0}
.ticket-time-package input[type=checkbox]{margin:0}
.ticket-time-pkg{display:inline-flex;align-items:center;font-size:.68rem;margin-left:.4rem}
.ticket-time-pkg form{margin:0;display:inline}
.ticket-time-pkg button,.ticket-time-pkg em{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:999px;padding:0 .5rem;font-style:normal;font-size:.68rem;line-height:1.5;cursor:pointer}
.ticket-time-pkg em{cursor:default}
.ticket-time-pkg.is-off button,.ticket-time-pkg.is-off em{border-color:#e5e7eb;background:#f3f4f6;color:#6b7280}

/* ── Paquetes de horas ──────────────────────────────────────────────────────── */
.pkg-month-nav{align-items:center;gap:.6rem}
.pkg-month{min-width:9rem;text-align:center;text-transform:capitalize;font-size:1rem}
.pkg-bar--ALERTA>span{background:#d97706}.pkg-bar--EXCEDIDO>span{background:#dc2626}.pkg-bar--OK>span{background:#16a34a}
.pkg-form{padding:0;margin:0 0 .5rem;align-items:flex-end}
.pkg-notes{flex:1 1 220px}
.pkg-row-current{background:var(--primary-soft)}
.pkg-desc{max-width:340px;white-space:normal;font-size:.8rem;color:#4b5563}
.ticket-time-pkg-btn{display:inline-block;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:999px;padding:0 .55rem;font-size:.72rem;line-height:1.6;white-space:nowrap}
button.ticket-time-pkg-btn{cursor:pointer}
.ticket-time-pkg-btn.is-off{border-color:#e5e7eb;background:#f3f4f6;color:#6b7280}

/* ── Informe de servicio: selector de clientes y meses, vista previa del PDF ─── */
.inf-summary{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.inf-period{font-size:1.25rem;font-weight:800;margin:0}
.inf-preview-head{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between}
.inf-seg{display:flex;gap:.35rem}
.inf-pdf{min-height:60vh}
.inf-lead>td{border-bottom-color:transparent}
.inf-linked>td{background:var(--surface-soft,rgba(127,127,127,.07));font-size:.86rem}
.inf-linked a{font-weight:600}
.inf-client{margin-bottom:1rem}
.inf-client>summary{cursor:pointer;padding:.7rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft);margin-bottom:.8rem;list-style-position:inside}
.inf-client[open]>summary{border-color:var(--primary)}

/* ── Pantallas de edicion: barra de guardado fija y aviso de cambios sin guardar ── */
.admin-savebar{position:sticky;bottom:0;z-index:30;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:flex-end;margin:1.2rem -1px 0;padding:.7rem 1rem;background:var(--surface);border-top:1px solid var(--border-strong);box-shadow:0 -6px 14px rgba(16,24,40,.07)}
.savebar-dirty{margin-right:auto;font-size:.82rem;font-weight:700;color:#b45309}
.savebar-dirty[hidden]{display:none}

/* ── Actividades e informes (Mini CRM): una actividad por fila ── */
.act-stats{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-bottom:.75rem}
.act-stats>span{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.2rem .75rem;display:inline-flex;align-items:baseline;gap:.5rem}
.act-table th{white-space:nowrap}
.act-table td{vertical-align:middle}
.act-client-cell{min-width:15rem}
.act-detail-cell{min-width:12rem;max-width:30rem}
.act-detail{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25}

/* ── Agenda comercial: calendario mensual y semanal ── */
.agc-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.75rem 0}
.agc-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}
.agc-title{font-size:1rem;min-width:9rem;text-align:right}
.agc-section{padding-top:.75rem}
.agc-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .9rem;margin-bottom:.6rem;font-size:.74rem}
.agc-legend-item i{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;background:var(--ev,#9ca3af);margin-right:.3rem;vertical-align:-1px}
.agc-legend-overdue{--ev:var(--danger)}
.agc-t-LLAMADA{--ev:#2563eb}.agc-t-REUNION{--ev:#16a34a}.agc-t-PRESENTACION{--ev:#7c3aed}.agc-t-EMAIL{--ev:#0891b2}.agc-t-DEMO{--ev:#d97706}.agc-t-VISITA{--ev:#64748b}.agc-t-OTRO{--ev:#9ca3af}
.agc{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.agc-head,.agc-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.agc-head>div{padding:.4rem .6rem;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-soft);border-bottom:1px solid var(--border)}
.agc-day{min-height:7.2rem;min-width:0;padding:.3rem;display:flex;flex-direction:column;gap:.2rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.agc-row>.agc-day:nth-child(7){border-right:0}
.agc-row:last-child>.agc-day{border-bottom:0}
.agc--semana .agc-day{min-height:18rem}
.agc-day.is-other{background:var(--surface-soft)}
.agc-day.is-weekend,.agc-head>div:nth-child(n+6){background:#e9ebee;background:color-mix(in srgb,var(--border) 85%,var(--surface))}
.agc-day.is-weekend.is-other{background:#e3e5e9;background:color-mix(in srgb,var(--border) 100%,var(--surface))}
.agc-day.is-other .agc-num{color:var(--muted);font-weight:500}
.agc-day-head{display:flex;justify-content:space-between;align-items:center;min-height:1.4rem}
.agc-num{font-size:.78rem;font-weight:700}
.agc-dow,.agc-mon{display:none}
.agc-day.is-today .agc-num{background:var(--primary);color:#fff;border-radius:999px;padding:.05rem .45rem}
.agc-add{opacity:0;border:0;background:transparent;color:var(--muted);font-weight:800;line-height:1;border-radius:4px;padding:.1rem .4rem;cursor:pointer}
.agc-day:hover .agc-add,.agc-add:focus-visible{opacity:1}
.agc-add:hover{background:var(--primary-soft);color:var(--primary)}
@media (hover:none){.agc-add{opacity:.55}}
.agc-ev{display:flex;align-items:center;gap:.3rem;width:100%;min-width:0;text-align:left;border:1px solid var(--border);border-left:3px solid var(--ev,#9ca3af);border-radius:6px;background:var(--surface);color:var(--text);padding:.15rem .4rem;font-size:.74rem;line-height:1.25;cursor:pointer}
.agc-ev:hover,.agc-ev:focus-visible{background:var(--surface-soft);border-color:var(--ev,#9ca3af)}
.agc-ev.is-overdue{background:var(--primary-soft)}
.agc-ev-ico{flex:none}
.agc-ev-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agc--semana .agc-ev-txt{white-space:normal}
.agc-ev-desc{color:var(--muted)}
.agc-who{flex:none;font-size:.62rem;font-weight:800;background:var(--ev,#6b7280);color:#fff;border-radius:999px;padding:.05rem .32rem}
.agc-more{font-size:.72rem;font-weight:700;color:var(--primary);text-decoration:none}
.agc-summary{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);padding:.75rem .9rem;margin-bottom:1rem}
.agc-summary-account{font-weight:700}
.agc-summary-desc{margin-top:.15rem;font-size:1.02rem}
.agc-summary-notes{margin-top:.15rem;font-size:.82rem;color:var(--muted);white-space:pre-line}
.agc-summary-notes:empty{display:none}
.agc-facts{display:flex;flex-wrap:wrap;gap:.35rem 1.75rem;margin:.65rem 0 0;padding-top:.6rem;border-top:1px solid var(--border)}
.agc-facts>div{min-width:0}
.agc-facts dt{color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.agc-facts dd{margin:0;font-size:.88rem;overflow-wrap:anywhere}
.agc-tabs{gap:.35rem;margin-bottom:.9rem;border-bottom:1px solid var(--border);padding-bottom:.6rem}
.agc-tabs .nav-link{padding:.3rem .85rem;font-size:.84rem;font-weight:600;color:var(--text)}
.agc-tabs .nav-link.active{background:var(--primary);color:#fff}
.agc-panes .form-label{font-size:.78rem;font-weight:700;margin-bottom:.25rem}
.agc-next{border-top:1px dashed var(--border);margin-top:.5rem;padding-top:.75rem}
.agc-subtitle{font-size:.8rem;font-weight:700;margin-bottom:.35rem}
.agc-actions{display:flex;justify-content:flex-end;margin-top:1rem}
@media (max-width:760px){
  .agc-head{display:none}
  .agc-row{grid-template-columns:1fr}
  .agc-day{min-height:0;border-right:0}
  .agc-day.is-empty{display:none}
  .agc-dow,.agc-mon{display:inline}
  .agc-title{text-align:left}
}
.agc-files{list-style:none;margin:.65rem 0 0;padding:.6rem 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.15rem;font-size:.86rem}
/* ── Mini CRM: ficha de la cuenta, tablero y avisos ── */
.crm-dormida{display:inline-block;padding:0 .45rem;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.68rem;font-weight:800}
.crm-timeline-item{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.75rem;padding:.55rem 0;border-top:1px solid var(--border)}
.crm-timeline-item[hidden]{display:none}
.crm-timeline-date{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.15rem}
.crm-funnel{display:flex;flex-direction:column;gap:.45rem;margin:.4rem 0}
.crm-funnel-row{display:grid;grid-template-columns:9.5rem minmax(0,1fr) 2.5rem;gap:.6rem;align-items:center;font-size:.86rem}
.crm-funnel-bar{height:1.1rem;background:var(--surface-soft);border:1px solid var(--border);border-radius:4px;overflow:hidden}
.crm-funnel-bar>span{display:block;height:100%;background:var(--primary)}
.crm-funnel-n{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.crm-under{color:var(--danger);font-weight:700}
/* ── Selector de columnas de las tablas (column-toggle.js) ── */
.dtm-coltoggle{display:flex;justify-content:flex-end;margin:.25rem 0 .35rem}
.dtm-coltoggle-btn{height:30px;border:1px solid #c1c7d0;border-radius:6px;padding:0 .7rem;background:var(--surface);color:var(--text);font-weight:700;font-size:.8rem}
.dtm-coltoggle-btn::after{content:"⌄";margin-left:.4rem}
.dtm-coltoggle-btn:hover{background:var(--surface-soft)}
table th.dtm-col-hidden,table td.dtm-col-hidden{display:none!important}
/* ── Control de licencias ── */
:root{--lic-ok-bg:#dcfce7;--lic-ok-fg:#166534;--lic-warn-bg:#fef3c7;--lic-warn-fg:#92400e;--lic-crit-bg:#fee2e2;--lic-crit-fg:#991b1b;--lic-pend-bg:#e5e7eb;--lic-pend-fg:#374151}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--lic-ok-bg:#14532d;--lic-ok-fg:#bbf7d0;--lic-warn-bg:#78350f;--lic-warn-fg:#fde68a;--lic-crit-bg:#7f1d1d;--lic-crit-fg:#fecaca;--lic-pend-bg:#374151;--lic-pend-fg:#e5e7eb}}
:root[data-theme="dark"]{--lic-ok-bg:#14532d;--lic-ok-fg:#bbf7d0;--lic-warn-bg:#78350f;--lic-warn-fg:#fde68a;--lic-crit-bg:#7f1d1d;--lic-crit-fg:#fecaca;--lic-pend-bg:#374151;--lic-pend-fg:#e5e7eb}
.lic-chip{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.lic-chip.lic-ok,.lic-kpi.lic-ok{background:var(--lic-ok-bg);color:var(--lic-ok-fg)}
.lic-chip.lic-warn,.lic-kpi.lic-warn{background:var(--lic-warn-bg);color:var(--lic-warn-fg)}
.lic-chip.lic-crit,.lic-kpi.lic-crit{background:var(--lic-crit-bg);color:var(--lic-crit-fg)}
.lic-chip.lic-pend,.lic-kpi.lic-pend{background:var(--lic-pend-bg);color:var(--lic-pend-fg)}
.lic-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:.6rem}
.lic-kpi{display:flex;flex-direction:column;justify-content:space-between;gap:.25rem;padding:.6rem .8rem;border-radius:var(--radius);border:2px solid transparent;text-decoration:none;font-size:.78rem;line-height:1.25}
.lic-kpi strong{font-size:1.6rem;line-height:1;font-variant-numeric:tabular-nums}
.lic-kpi:hover{filter:brightness(.97)}
.lic-kpi.is-on{border-color:currentColor}
.lic-table td{vertical-align:middle}
.lic-muted{opacity:.6}
.lic-notes{max-width:18rem;white-space:pre-line}
.lic-badge-susp{display:inline-block;margin-left:.4rem;padding:0 .45rem;border-radius:999px;background:var(--lic-crit-bg);color:var(--lic-crit-fg);font-size:.68rem;font-weight:800}
.lic-badge-off{display:inline-block;margin-left:.4rem;padding:0 .45rem;border-radius:999px;background:var(--lic-pend-bg);color:var(--lic-pend-fg);font-size:.68rem;font-weight:800}
.lic-pend-text{color:var(--lic-warn-fg);font-weight:700}
.lic-dl{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.35rem .75rem;font-size:.9rem}
.lic-dl dt{color:var(--muted);font-weight:600}
.lic-dl dd{margin:0;overflow-wrap:anywhere}
.lic-history li{padding:.5rem 0;border-top:1px solid var(--border)}
.lic-history li:first-child{border-top:0}
.lic-ren{border-left:4px solid var(--border-strong)}
.lic-ren.is-applied{border-left-color:var(--success)}
.lic-ren.is-pending{border-left-color:var(--warning)}
.lic-sql summary{cursor:pointer;font-weight:700;font-size:.88rem}
.lic-sql-bar{display:flex;align-items:center;gap:.6rem;margin:.5rem 0 .35rem}
.lic-pre{margin:0;max-height:20rem;overflow:auto;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--text);font:.8rem/1.45 Consolas,"Cascadia Mono",monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.lic-sql-input{font:.84rem/1.45 Consolas,"Cascadia Mono",monospace}
.lic-files li{padding:.1rem 0;overflow-wrap:anywhere}
/* ── Formulario de cliente: tarjetas por bloque y estado en tres botones ── */
.cli-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start;padding-bottom:5rem}
.cli-form>.cli-card{min-width:0;height:100%}
.cli-form>.cli-wide,.cli-form>.alert,.cli-form>.admin-savebar{grid-column:1/-1;height:auto}
@media (max-width:1099px){.cli-form{grid-template-columns:minmax(0,1fr)}}
.cli-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem 1.15rem;box-shadow:var(--shadow-soft)}
.cli-card>h2{margin:0 0 .1rem;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:800}
.cli-hint{margin-bottom:.9rem;font-size:.84rem;color:var(--muted)}
.cli-estado{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;max-width:64rem}
.cli-estado-op{display:flex;gap:.6rem;align-items:flex-start;padding:.65rem .8rem;border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface)}
.cli-estado-op input{margin-top:.25rem;flex:none}
.cli-estado-op strong{display:block;font-size:.92rem}
.cli-estado-op small{display:block;color:var(--muted);font-size:.76rem;line-height:1.3}
.cli-estado-op:hover{border-color:var(--border-strong)}
.cli-estado-op.is-on.cli-est-activo{border-color:#16a34a;background:rgba(22,163,74,.1)}
.cli-estado-op.is-on.cli-est-suspendido{border-color:#d97706;background:rgba(217,119,6,.12)}
.cli-estado-op.is-on.cli-est-inactivo{border-color:#6b7280;background:rgba(107,114,128,.14)}
@media (max-width:760px){.cli-estado{grid-template-columns:1fr}}
/* Listas desplegables con buscador adentro (el componente de Nuevo ticket, ahora en todo el sistema) */
.create-search-select-plain{position:relative}
.create-search-select-plain>.create-native-select{position:absolute;width:1px;height:1px;padding:0;opacity:0;clip-path:inset(50%);pointer-events:none}
.create-search-select-plain .create-select-trigger{padding-left:.75rem;height:38px;border-radius:var(--radius-sm,6px);font-size:.9rem}
.create-search-select-plain .create-select-trigger.create-select-sm{height:31px;padding-left:.5rem;font-size:.82rem}
.create-search-select-plain[hidden]{display:none}
.create-select-trigger{background:var(--surface,#fff);color:var(--text,#283649);border-color:var(--border-strong,#cfd7e3)}
.create-select-menu{background:var(--surface,#fff);border-color:var(--border-strong,#cad5e1);color:var(--text,#2b384a)}
.create-select-search{background:var(--surface,#fff);color:var(--text,#283649);border-bottom-color:var(--border,#e3e8ee)}
.create-select-option{color:var(--text,#2b384a)}
.create-select-option:hover,.create-select-option:focus-visible{background:var(--surface-soft,#edf5fc)}
.create-select-trigger:disabled{background:var(--surface-soft,#eef1f5);color:var(--muted,#778291)}
/* Vista previa del correo de avisos (el correo siempre es claro) */
.lic-mail{background:#f4f5f7;border:1px solid var(--border);border-radius:var(--radius);padding:1rem}
.lic-mail-subject{margin-bottom:.7rem;font-size:.86rem;color:#172b4d}
.lic-mail-subject span{display:inline-block;margin-right:.4rem;padding:0 .4rem;border-radius:4px;background:#dfe1e6;color:#5e6c84;font-size:.7rem;font-weight:800;text-transform:uppercase}
.lic-mail-card{max-width:600px;margin:0 auto;border-radius:10px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.12);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:#172b4d}
.lic-mail-head{background:#c11f33;color:#fff;font-weight:800;padding:.9rem 1.4rem}
.lic-mail-body{background:#fff;padding:1.4rem 1.6rem}
.lic-mail-tag{margin-bottom:.3rem;font-size:.72rem;color:#5e6c84;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.lic-mail-title{margin-bottom:.8rem;font-size:1.1rem;font-weight:800;line-height:1.3}
.lic-mail-text{margin-bottom:1.1rem;font-size:.9rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.lic-mail-btn{display:inline-block;padding:.55rem 1.2rem;border-radius:5px;background:#c11f33;color:#fff;font-weight:700;font-size:.86rem}
.lic-mail-foot{background:#f4f5f7;border-top:1px solid #dfe1e6;padding:.7rem 1.2rem;text-align:center;font-size:.7rem;color:#5e6c84;line-height:1.6}
.lic-people{max-height:24rem;overflow:auto}
.lic-people thead th{position:sticky;top:0;z-index:1;background:var(--surface)}
/* Detalle de la licencia: datos arriba, pestañas, renovaciones en tabla */
.lic-facts-card{padding:.9rem 1.15rem}
.lic-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem 1.25rem}
.lic-fact{min-width:0}
.lic-fact span{display:block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.lic-fact span small{text-transform:none;letter-spacing:0;font-weight:500}
.lic-fact strong{display:block;font-size:.95rem;overflow-wrap:anywhere}
.lic-fact-wide{grid-column:1/-1}
.lic-tabs .nav-link{font-weight:700;color:var(--muted)}
.lic-tabs .nav-link.active{color:var(--text)}
.lic-count{display:inline-block;min-width:1.4rem;padding:0 .35rem;border-radius:999px;background:var(--surface-soft);border:1px solid var(--border);color:var(--muted);font-size:.74rem;text-align:center}
.lic-ren-table td{vertical-align:middle}
.lic-row-pend td:first-child{box-shadow:inset 3px 0 0 var(--warning)}
.lic-actions{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end}
.lic-actions form{margin:0}
