*{box-sizing:border-box;margin:0;padding:0}

/* ── TOOLTIPS ── */
[data-tooltip]{cursor:help}
#tt{
  position:fixed;z-index:99999;pointer-events:none;
  background:#1a1a2e;color:#fff;font-size:.7rem;font-weight:400;line-height:1.4;
  padding:.35rem .7rem;border-radius:6px;max-width:220px;text-align:center;
  box-shadow:0 4px 12px rgba(0,0,0,.3);
  opacity:0;transition:opacity .15s;
}

:root{
  --brand:#6C8B3B;--brand-d:#4a6128;--brand-xs:#e8f5d9;
  --gray:#f5f6fa;--gray2:#e8eaed;--gray3:#bbb;
  --text:#1a1a2e;--text2:#555;--text3:#888;
  --radius:10px;--shadow:0 2px 14px rgba(0,0,0,.09);
}
body{font-family:"Lato","Helvetica Neue",Arial,sans-serif;background:var(--gray);color:var(--text);min-height:100vh;font-size:15px}

/* ── LOGIN OVERLAY ── */
#login-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#2d3e1a 0%,#4a6128 60%,#6C8B3B 100%);display:flex;align-items:center;justify-content:center;z-index:9999}
#login-overlay.hidden{display:none}
.login-card{background:#fff;border-radius:16px;padding:2.5rem 2.2rem;width:360px;max-width:94vw;box-shadow:0 8px 40px rgba(0,0,0,.35)}
.login-logo{text-align:center;margin-bottom:1.5rem}
.login-logo h2{font-size:1.2rem;font-weight:900;color:var(--brand-d);margin-bottom:.25rem}
.login-logo p{font-size:.82rem;color:var(--text3)}
.login-logo .badge-login{display:inline-block;background:var(--brand-xs);color:var(--brand-d);font-size:.72rem;font-weight:700;padding:.2rem .65rem;border-radius:20px;border:1px solid var(--brand);margin-top:.5rem}
.login-card label{display:block;font-size:.8rem;font-weight:700;color:var(--text2);margin-bottom:.3rem;margin-top:1rem}
.login-card label:first-of-type{margin-top:0}
.login-card input{width:100%;padding:.6rem .8rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.95rem;color:var(--text)}
.login-card input:focus{border-color:var(--brand);outline:none}
.btn-login{width:100%;margin-top:1.4rem;padding:.75rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:1rem;font-weight:700;cursor:pointer;transition:.15s;letter-spacing:.02em}
.btn-login:hover{background:var(--brand-d)}
.btn-login:disabled{background:var(--gray3);cursor:not-allowed}
#login-error{margin-top:.8rem;font-size:.83rem;color:#c0392b;text-align:center;min-height:1.1em}
.login-hint{margin-top:1.1rem;font-size:.76rem;color:var(--text3);text-align:center;border-top:1px solid var(--gray2);padding-top:.8rem}

/* ── HEADER ── */
.app-header{background:#fff;border-bottom:3px solid var(--brand);padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}
.header-left{display:flex;align-items:center;gap:.8rem}
.app-header h1{font-size:1.1rem;font-weight:900;color:var(--brand)}
.app-header h1 span{font-size:.82rem;color:var(--text3);font-weight:400;margin-left:.3rem}
.badge{background:var(--brand-xs);color:var(--brand-d);font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;border:1px solid var(--brand)}
.header-right{display:flex;align-items:center;gap:.7rem}
.user-info{display:flex;align-items:center;gap:.5rem}
.user-nombre{font-size:.85rem;font-weight:700;color:var(--text)}
.user-rol{font-size:.72rem;font-weight:700;background:#e8eaed;color:var(--text2);padding:.15rem .5rem;border-radius:12px}
.btn-logout{padding:.35rem .9rem;border-radius:6px;font-family:inherit;font-size:.78rem;font-weight:700;cursor:pointer;border:1.5px solid var(--gray2);background:#fff;color:var(--text3);transition:.15s}
.btn-logout:hover{border-color:#c0392b;color:#c0392b}

/* ── LAYOUT ── */
.layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;max-width:1200px;margin:1.5rem auto;padding:0 1rem}
@media(max-width:768px){.layout{grid-template-columns:1fr}}

/* ── PANEL IZQUIERDO ── */
.panel-left{display:flex;flex-direction:column;gap:1rem}
.agent-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem;border-left:4px solid var(--brand)}
.agent-card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:.3rem}
.agent-card .name{font-size:1.05rem;font-weight:700;color:var(--brand-d)}
.agent-card .person{font-size:.85rem;color:var(--text2);margin-top:.1rem}
.form-block{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.3rem}
.form-block h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:.9rem}
label{display:block;font-size:.82rem;font-weight:700;color:var(--text2);margin-bottom:.25rem;margin-top:.8rem}
label:first-of-type{margin-top:0}
select,input,textarea{width:100%;padding:.55rem .75rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.9rem;color:var(--text);background:#fff;transition:.15s}
select:focus,input:focus,textarea:focus{border-color:var(--brand);outline:none}
textarea{min-height:80px;resize:vertical;line-height:1.5}
.btn-generate{width:100%;margin-top:1.2rem;padding:.75rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer;transition:.15s;letter-spacing:.02em}
.btn-generate:hover{background:var(--brand-d)}
.btn-generate:disabled{background:var(--gray3);cursor:not-allowed}

/* ── PANEL DERECHO ── */
.panel-right{display:flex;flex-direction:column;gap:1rem}
.output-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);min-height:500px;display:flex;flex-direction:column}
.output-header{padding:1rem 1.3rem;border-bottom:1px solid var(--gray2);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.output-header h3{font-size:.85rem;font-weight:700;color:var(--text2)}
.output-actions{display:flex;gap:.5rem}
.btn-copy,.btn-print{padding:.4rem .9rem;border-radius:6px;font-family:inherit;font-size:.8rem;font-weight:700;cursor:pointer;border:1.5px solid var(--gray2);background:#fff;color:var(--text2);transition:.15s}
.btn-copy:hover,.btn-print:hover{border-color:var(--brand);color:var(--brand)}
.output-body{padding:1.5rem;flex:1;overflow-y:auto}
.output-body.empty{display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:.9rem;flex-direction:column;gap:.7rem;text-align:center}
.output-body.empty .empty-icon{font-size:3rem;opacity:.3}

/* Markdown rendered */
.md-output h1{font-size:1.4rem;color:var(--brand-d);margin:0 0 .8rem}
.md-output h2{font-size:1.1rem;color:var(--text);margin:1.4rem 0 .5rem;padding-bottom:.3rem;border-bottom:1px solid var(--gray2)}
.md-output h3{font-size:.95rem;color:var(--brand-d);margin:1rem 0 .35rem}
.md-output p{line-height:1.65;margin:.4rem 0;color:var(--text)}
.md-output ul,.md-output ol{padding-left:1.4rem;margin:.4rem 0}
.md-output li{line-height:1.6;margin:.15rem 0}
.md-output table{width:100%;border-collapse:collapse;margin:.8rem 0;font-size:.88rem}
.md-output th{background:var(--brand-xs);color:var(--brand-d);text-align:left;padding:.45rem .7rem;font-weight:700;border:1px solid var(--gray2)}
.md-output td{padding:.4rem .7rem;border:1px solid var(--gray2);vertical-align:top}
.md-output tr:nth-child(even) td{background:var(--gray)}
.md-output strong{color:var(--text)}
.md-output code{background:var(--gray);padding:.1rem .3rem;border-radius:3px;font-size:.85em}
.md-output hr{border:none;border-top:1px solid var(--gray2);margin:1.2rem 0}

/* ── LOADING ── */
.spinner{width:32px;height:32px;border:3px solid var(--gray2);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── DYNAMIC FORM FIELDS ── */
#dynamic-fields{margin-top:.5rem}
.field-hint{background:#fff8e1;color:#856404;border:1px solid #ffe082;border-radius:8px;padding:.65rem .85rem;font-size:.8rem;line-height:1.55;margin-top:.6rem}
.field-separator{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-d);margin-top:1.3rem;padding:.5rem 0 .4rem;border-top:2px solid var(--brand-xs)}

/* ── TOAST ── */
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--brand);color:#fff;padding:.65rem 1.1rem;border-radius:8px;font-size:.85rem;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:999}
.toast.show{opacity:1}

/* ── TABS ── */
.tab-bar{background:#fff;border-bottom:1px solid var(--gray2);display:flex;gap:0;padding:0 1.5rem;box-shadow:0 1px 4px rgba(0,0,0,.05);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.tab-bar::-webkit-scrollbar{display:none}
.tab-btn{padding:.75rem 1.3rem;border:none;background:none;font-family:inherit;font-size:.88rem;font-weight:700;color:var(--text3);cursor:pointer;border-bottom:3px solid transparent;transition:.15s;white-space:nowrap}
.tab-btn:hover{color:var(--text2)}
.tab-btn.active{color:var(--brand-d);border-bottom-color:var(--brand)}
.tab-content{display:none}
.tab-content.active{display:block}

/* ── AVANCE ── */
.avance-layout{max-width:1200px;margin:1.5rem auto;padding:0 1rem;display:flex;flex-direction:column;gap:1.5rem}
.avance-header{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.avance-header h2{font-size:1rem;font-weight:900;color:var(--brand-d);margin:0}
.avance-header .meta{font-size:.82rem;color:var(--text3);margin-top:.2rem}
.piloto-badge{background:#fff3cd;color:#856404;font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;border:1px solid #ffc107}
.procesos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}
.proceso-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.2rem;border-left:4px solid var(--brand)}
.proceso-card.piloto{border-left-color:#ffc107}
/* estados */
.status-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;padding:.2rem .65rem;border-radius:20px;cursor:default}
.status-badge.pending    {background:#f0f0f0;color:#888}
.status-badge.ready      {background:#dbeafe;color:#1d4ed8}
.status-badge.in_progress{background:#dcfce7;color:#166534}
.status-badge.blocked    {background:#fee2e2;color:#991b1b}
.status-badge.done       {background:#d1fae5;color:#065f46}
.proceso-card.status-blocked{border-left-color:#ef4444}
.proceso-card.status-in_progress{border-left-color:#22c55e}
.proceso-card.status-done{border-left-color:#065f46}
.proceso-card.status-ready{border-left-color:#3b82f6}
.pc-responsable{font-size:.75rem;color:var(--text3);margin-top:.3rem}
.pc-dep{font-size:.72rem;color:#991b1b;margin-top:.25rem;font-weight:600}
.pc-actions{margin-top:.75rem;display:flex;gap:.4rem;flex-wrap:wrap}
.btn-status{font-size:.72rem;padding:.25rem .6rem;border-radius:6px;border:1px solid var(--gray2);background:#fff;cursor:pointer;font-weight:600;transition:.15s}
.btn-status:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
/* cadena de flujo */
.flujo-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem 1.5rem}
.flujo-card h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:1rem}
.flujo-chain{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}
.flujo-node{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.flujo-node .fn-clave{font-size:.72rem;font-weight:900;color:#fff;padding:.3rem .7rem;border-radius:8px;background:var(--brand)}
.flujo-node .fn-nombre{font-size:.65rem;color:var(--text3);max-width:80px;text-align:center;line-height:1.2}
.flujo-node .fn-person{font-size:.65rem;color:var(--text2);font-weight:600}
.flujo-arrow{font-size:1.2rem;color:var(--text3);padding:0 .1rem;margin-bottom:1.2rem}
.flujo-node.st-done .fn-clave{background:#065f46}
.flujo-node.st-in_progress .fn-clave{background:#16a34a}
.flujo-node.st-blocked .fn-clave{background:#dc2626}
.flujo-node.st-ready .fn-clave{background:#2563eb}
.flujo-node.st-pending .fn-clave{background:#9ca3af}
/* modal estado */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal-box{background:#fff;border-radius:12px;padding:1.8rem;width:100%;max-width:420px;box-shadow:0 8px 32px rgba(0,0,0,.18)}
.modal-box h3{margin:0 0 1rem;font-size:1rem;color:var(--text)}
.modal-box select,.modal-box textarea{width:100%;margin-bottom:.8rem;padding:.55rem .75rem;border:1.5px solid var(--gray2);border-radius:8px;font-size:.85rem;font-family:inherit;box-sizing:border-box}
.modal-box textarea{resize:vertical;min-height:70px}
.modal-actions{display:flex;gap:.6rem;justify-content:flex-end}
.pc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;gap:.5rem}
.pc-title{font-size:.88rem;font-weight:700;color:var(--text)}
.pc-meta{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.pc-id{font-size:.72rem;color:var(--text3);font-weight:700}
.progress-row{display:flex;align-items:center;gap:.6rem;margin:.3rem 0}
.pr-label{font-size:.7rem;font-weight:700;color:var(--text3);width:28px;flex-shrink:0}
.progress-track{flex:1;height:7px;background:var(--gray2);border-radius:4px;overflow:hidden}
.progress-fill{height:100%;border-radius:4px}
.progress-fill.def{background:var(--brand)}
.progress-fill.ejec{background:#28a745}
.pr-pct{font-size:.74rem;font-weight:700;color:var(--text2);width:30px;text-align:right;flex-shrink:0}

/* ── UPLOAD ── */
.upload-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}
.upload-card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:1rem}
.drop-zone{border:2.5px dashed var(--gray2);border-radius:10px;padding:2.2rem 1.5rem;text-align:center;cursor:pointer;transition:.2s;background:var(--gray)}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--brand);background:var(--brand-xs)}
.drop-icon{font-size:2.2rem;margin-bottom:.4rem;opacity:.4}
.drop-zone p{font-size:.85rem;color:var(--text3);margin:.15rem 0}
.drop-zone p strong{color:var(--brand-d)}
.drop-zone input[type=file]{display:none}
.btn-upload{margin-top:1rem;padding:.6rem 1.4rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:.15s}
.btn-upload:hover{background:var(--brand-d)}
.btn-upload:disabled{background:var(--gray3);cursor:not-allowed}
.upload-results{margin-top:1.2rem}
.upload-results table{width:100%;border-collapse:collapse;font-size:.84rem}
.upload-results th{background:var(--brand-xs);color:var(--brand-d);text-align:left;padding:.4rem .7rem;font-weight:700;border:1px solid var(--gray2)}
.upload-results td{padding:.38rem .7rem;border:1px solid var(--gray2);vertical-align:middle}
.upload-results tr:nth-child(even) td{background:var(--gray)}
.status-ok{color:#28a745;font-weight:700}
.status-warn{color:#856404;font-weight:700}

/* ── ACTIVIDAD ── */
.actividad-layout{max-width:1200px;margin:1.5rem auto;padding:0 1rem;display:flex;flex-direction:column;gap:1.2rem}
.actividad-header{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.actividad-header h2{font-size:1rem;font-weight:900;color:var(--brand-d);margin:0}
.act-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem}
.stat-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1.1rem;border-top:3px solid var(--brand)}
.stat-card .stat-val{font-size:1.6rem;font-weight:900;color:var(--brand-d);line-height:1}
.stat-card .stat-lbl{font-size:.75rem;color:var(--text3);margin-top:.25rem}
.filter-bar{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.3rem;display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}
.filter-bar label{margin:0;font-size:.78rem;font-weight:700;color:var(--text2)}
.filter-bar select,.filter-bar input{width:auto;min-width:160px;padding:.45rem .7rem;font-size:.85rem}
.btn-refresh{padding:.45rem 1.1rem;background:var(--brand);color:#fff;border:none;border-radius:7px;font-family:inherit;font-size:.83rem;font-weight:700;cursor:pointer;transition:.15s}
.btn-refresh:hover{background:var(--brand-d)}
.log-table-wrap{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.log-table-wrap table{width:100%;border-collapse:collapse;font-size:.83rem}
.log-table-wrap th{background:var(--brand-xs);color:var(--brand-d);text-align:left;padding:.5rem .8rem;font-weight:700;border-bottom:2px solid var(--brand);white-space:nowrap}
.log-table-wrap td{padding:.42rem .8rem;border-bottom:1px solid var(--gray2);vertical-align:middle}
.log-table-wrap tr:last-child td{border-bottom:none}
.log-table-wrap tr:hover td{background:#f9fdf3}
.accion-login{color:#0056b3;font-weight:700}
.accion-generate{color:var(--brand-d);font-weight:700}
.accion-upload{color:#856404;font-weight:700}
.accion-view{color:var(--text3)}
.rol-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.1rem .45rem;border-radius:10px;background:var(--gray2);color:var(--text2)}
.log-empty{text-align:center;padding:2.5rem;color:var(--text3);font-size:.9rem}
.btn-export{padding:.4rem 1rem;border-radius:7px;font-family:inherit;font-size:.8rem;font-weight:700;cursor:pointer;border:1.5px solid var(--gray2);background:#fff;color:var(--text2);transition:.15s}
.btn-export:hover{border-color:var(--brand);color:var(--brand)}

/* ── USUARIOS ── */
.users-section{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.3rem}
.users-section h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:1rem}
.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.7rem}
.user-chip{background:var(--gray);border-radius:8px;padding:.6rem .9rem;border-left:3px solid var(--brand)}
.user-chip .uc-name{font-size:.88rem;font-weight:700;color:var(--text)}
.user-chip .uc-user{font-size:.76rem;color:var(--text3)}
.user-chip .uc-rol{font-size:.72rem;font-weight:700;color:var(--brand-d);margin-top:.2rem}
.user-chip.inactivo{opacity:.45;border-left-color:var(--gray3)}

/* ── PROYECTOS ── */
.proy-layout{max-width:1100px;margin:1.5rem auto;padding:0 1rem;display:flex;flex-direction:column;gap:1.2rem}
.proy-header{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.proy-header h2{font-size:1rem;font-weight:900;color:var(--brand-d);margin:0}
.btn-proy-new{padding:.6rem 1.3rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.88rem;font-weight:700;cursor:pointer;transition:.15s}
.btn-proy-new:hover{background:var(--brand-d)}
.proy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.proy-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem 1.4rem;cursor:pointer;border-top:3px solid var(--brand);transition:.15s;position:relative;z-index:0}
.proy-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.12);transform:translateY(-2px);z-index:1}
.proy-card-mock{border-top-color:#f59e0b;background:#fffbeb}
.proy-card-nombre{font-size:1rem;font-weight:900;color:var(--brand-d)}
.proy-mock-badge{display:inline-block;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;font-size:.62rem;font-weight:800;letter-spacing:.07em;padding:.15rem .5rem;border-radius:99px;vertical-align:middle;margin-left:.45rem;text-transform:uppercase;line-height:1.3}
.proy-card-cliente{font-size:.82rem;color:var(--text2);margin:.2rem 0 .8rem}
.proy-card-desc{font-size:.78rem;color:var(--text3);margin-bottom:.9rem;line-height:1.45}
.proy-progress-bar{height:6px;background:var(--gray2);border-radius:3px;overflow:hidden;margin-bottom:.35rem}
.proy-progress-fill{height:100%;background:var(--brand);border-radius:3px;transition:.4s}
.proy-progress-label{font-size:.72rem;color:var(--text3)}
.proy-empty{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:3rem;text-align:center;color:var(--text3)}
/* detail */
.proy-detail{display:flex;flex-direction:column;gap:1rem}
.proy-back{background:none;border:none;font-family:inherit;font-size:.85rem;font-weight:700;color:var(--brand-d);cursor:pointer;padding:.4rem 0;display:flex;align-items:center;gap:.35rem}
.proy-back:hover{color:var(--brand)}
.proy-detail-header{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.5rem}
.proy-detail-nombre{font-size:1.15rem;font-weight:900;color:var(--brand-d)}
.proy-detail-meta{font-size:.82rem;color:var(--text3);margin-top:.2rem}
.pipeline-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.pipeline-step-header{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.2rem;border-bottom:1px solid var(--gray2)}
.pipeline-step-badge{font-size:.7rem;font-weight:900;padding:.25rem .55rem;border-radius:6px;color:#fff;white-space:nowrap}
.pipeline-step-title{font-size:.92rem;font-weight:900;color:var(--text);flex:1}
.pipeline-step-person{font-size:.75rem;color:var(--text3)}
.pipeline-step-pct{font-size:.78rem;font-weight:700;color:var(--brand-d)}
.pipeline-docs{padding:.5rem 1.2rem .8rem}
.pipeline-doc-row{display:flex;align-items:center;gap:.7rem;padding:.42rem 0;border-bottom:1px solid var(--gray2)}
.pipeline-doc-row:last-child{border-bottom:none}
.pipeline-doc-status{font-size:.85rem;width:1.1rem;text-align:center;flex-shrink:0}
.pipeline-doc-label{font-size:.82rem;color:var(--text2);flex:1}
.pipeline-doc-type{font-size:.72rem;font-weight:700;color:var(--text3);min-width:80px}
.btn-gen-doc{padding:.28rem .75rem;background:var(--brand);color:#fff;border:none;border-radius:6px;font-family:inherit;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:.15s}
.btn-gen-doc:hover{background:var(--brand-d)}
.btn-view-doc{padding:.28rem .75rem;background:#fff;color:var(--brand-d);border:1.5px solid var(--brand);border-radius:6px;font-family:inherit;font-size:.76rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:.15s}
.btn-view-doc:hover{background:var(--brand-xs)}
.pipeline-rs-badge{font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:20px;white-space:nowrap;flex-shrink:0}
.pipeline-rs-badge.rs-borrador_ia{background:#f3f4f6;color:#6b7280}
.pipeline-rs-badge.rs-asignado{background:#dbeafe;color:#1d4ed8}
.pipeline-rs-badge.rs-en_revision{background:#fef3c7;color:#92400e}
.pipeline-rs-badge.rs-en_refinamiento{background:#ede9fe;color:#6d28d9}
.pipeline-rs-badge.rs-revisado{background:#d1fae5;color:#065f46}
.pipeline-rs-badge.rs-autorizado{background:#bbf7d0;color:#14532d;border:1px solid #4ade80}
/* modal nuevo proyecto */
.modal-proy{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}
.modal-proy.hidden{display:none}
.modal-proy-box{background:#fff;border-radius:12px;padding:1.8rem;width:100%;max-width:440px;box-shadow:0 8px 32px rgba(0,0,0,.18)}
.modal-proy-box h3{font-size:1rem;font-weight:900;color:var(--brand-d);margin:0 0 1.2rem}
.modal-proy-box label{font-size:.78rem;font-weight:700;color:var(--text2);display:block;margin:.9rem 0 .25rem}
.modal-proy-box input,.modal-proy-box textarea{width:100%;padding:.55rem .8rem;border:1.5px solid var(--gray2);border-radius:8px;font-family:inherit;font-size:.9rem;box-sizing:border-box}
.modal-proy-box input:focus,.modal-proy-box textarea:focus{border-color:var(--brand);outline:none}
.modal-proy-actions{display:flex;gap:.7rem;justify-content:flex-end;margin-top:1.3rem}

/* ── LEVANTAMIENTO RAN ── */
.ran-layout{max-width:1100px;margin:1.5rem auto;padding:0 1rem;display:flex;flex-direction:column;gap:1.2rem}
.ran-header{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.ran-header h2{font-size:1rem;font-weight:900;color:var(--brand-d);margin:0}
.ran-header p{font-size:.78rem;color:var(--text3);margin:.2rem 0 0}
.btn-ran-add{padding:.6rem 1.3rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.88rem;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap}
.btn-ran-add:hover{background:var(--brand-d)}
.ran-session-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem 1.5rem}
.ran-session-card h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin-bottom:.9rem}
.ran-session-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem 1.2rem}
.ran-session-grid label{font-size:.78rem;font-weight:700;color:var(--text2);display:block;margin-bottom:.2rem}
.ran-session-grid input{width:100%;padding:.5rem .7rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.88rem;color:var(--text)}
.ran-session-grid input:focus{border-color:var(--brand);outline:none}
.ran-table-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.ran-empty{padding:3rem;text-align:center;color:var(--text3);font-size:.9rem}
.ran-table-card table{width:100%;border-collapse:collapse;font-size:.82rem}
.ran-table-card th{background:var(--brand-xs);color:var(--brand-d);text-align:left;padding:.5rem .8rem;font-weight:700;border-bottom:2px solid var(--brand);white-space:nowrap}
.ran-table-card td{padding:.42rem .8rem;border-bottom:1px solid var(--gray2);vertical-align:top}
.ran-table-card tr:last-child td{border-bottom:none}
.ran-table-card tr:hover td{background:#f9fdf3}
.badge-must{background:#fee2e2;color:#991b1b;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px}
.badge-should{background:#fef3c7;color:#92400e;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px}
.badge-could{background:#dbeafe;color:#1e40af;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px}
.badge-wont{background:#f3f4f6;color:#6b7280;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px}
.badge-gran-ok{background:#d1fae5;color:#065f46;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px}
.badge-gran-grueso{background:#fee2e2;color:#991b1b;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px}
.badge-gran-fino{background:#fef3c7;color:#92400e;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px}
.ran-actions-bar{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.5rem;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.ran-actions-bar span{font-size:.82rem;color:var(--text3);flex:1}
.btn-ran-copy{padding:.55rem 1.1rem;border-radius:7px;font-family:inherit;font-size:.83rem;font-weight:700;cursor:pointer;border:1.5px solid var(--brand);background:#fff;color:var(--brand);transition:.15s}
.btn-ran-copy:hover{background:var(--brand-xs)}
.btn-ran-send{padding:.55rem 1.3rem;background:var(--brand);color:#fff;border:none;border-radius:7px;font-family:inherit;font-size:.83rem;font-weight:700;cursor:pointer;transition:.15s}
.btn-ran-send:hover{background:var(--brand-d)}
.btn-ran-edit{font-size:.75rem;padding:.2rem .55rem;border-radius:5px;border:1px solid var(--gray2);background:#fff;cursor:pointer;color:var(--text2);transition:.12s}
.btn-ran-edit:hover{border-color:var(--brand);color:var(--brand)}
.btn-ran-del{font-size:.75rem;padding:.2rem .55rem;border-radius:5px;border:1px solid #fca5a5;background:#fff;cursor:pointer;color:#dc2626;transition:.12s}
.btn-ran-del:hover{background:#fee2e2}

/* ── MODAL RAN ── */
.ran-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1100;align-items:flex-start;justify-content:center;overflow-y:auto;padding:2rem 1rem}
.ran-modal-overlay.open{display:flex}
.ran-modal-box{background:#fff;border-radius:14px;width:100%;max-width:680px;box-shadow:0 12px 48px rgba(0,0,0,.22);margin:auto}
.ran-modal-header{padding:1.3rem 1.5rem .9rem;border-bottom:1px solid var(--gray2);display:flex;align-items:center;justify-content:space-between}
.ran-modal-header h3{font-size:1rem;font-weight:900;color:var(--brand-d);margin:0}
.ran-modal-header .ran-id-badge{font-size:.78rem;font-weight:700;background:var(--brand-xs);color:var(--brand-d);padding:.2rem .7rem;border-radius:20px;border:1px solid var(--brand)}
.ran-modal-body{padding:1.3rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem;max-height:70vh;overflow-y:auto}
.ran-sec{border-left:3px solid var(--brand-xs);padding-left:.9rem}
.ran-sec h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--brand-d);margin-bottom:.7rem}
.ran-sec label{display:block;font-size:.78rem;font-weight:700;color:var(--text2);margin:.6rem 0 .2rem}
.ran-sec label:first-of-type{margin-top:0}
.ran-sec input,.ran-sec textarea,.ran-sec select{width:100%;padding:.5rem .7rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.88rem;color:var(--text);box-sizing:border-box}
.ran-sec input:focus,.ran-sec textarea:focus,.ran-sec select:focus{border-color:var(--brand);outline:none}
.ran-sec textarea{resize:vertical;line-height:1.5}
.moscow-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.moscow-opt{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;border:1.5px solid var(--gray2);border-radius:8px;cursor:pointer;transition:.12s}
.moscow-opt:has(input:checked){border-color:var(--brand);background:var(--brand-xs)}
.moscow-opt input{margin-top:.15rem;accent-color:var(--brand)}
.moscow-opt .mo-label{font-size:.82rem;font-weight:700;color:var(--text)}
.moscow-opt .mo-desc{font-size:.72rem;color:var(--text3);margin-top:.1rem}
.ran-check-row{display:flex;align-items:center;gap:.5rem;font-size:.83rem;color:var(--text2);cursor:pointer}
.ran-check-row input{accent-color:var(--brand)}
.gran-guide{margin-top:.5rem;font-size:.75rem;color:var(--text3);background:var(--gray);border-radius:6px;padding:.5rem .7rem;line-height:1.5}
.ran-modal-footer{padding:.9rem 1.5rem;border-top:1px solid var(--gray2);display:flex;justify-content:flex-end;gap:.7rem}
.btn-modal-cancel{padding:.55rem 1.1rem;border-radius:7px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;border:1.5px solid var(--gray2);background:#fff;color:var(--text2)}
.btn-modal-save{padding:.55rem 1.4rem;background:var(--brand);color:#fff;border:none;border-radius:7px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:.15s}
.btn-modal-save:hover{background:var(--brand-d)}

/* ── REVISIÓN COLABORATIVA ── */
.rev-layout{max-width:1200px;margin:1.5rem auto;padding:0 1rem;display:flex;flex-direction:column;gap:1.2rem}
.rev-header{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.rev-header h2{font-size:1rem;font-weight:900;color:var(--brand-d);margin:0}
.rev-header p{font-size:.78rem;color:var(--text3);margin:.2rem 0 0}
.rev-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}
.rev-flow-steps{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}
.rev-step{font-size:.7rem;font-weight:700;color:var(--brand-d);background:var(--brand-xs);padding:.22rem .55rem;border-radius:20px;white-space:nowrap}
.rev-step-arrow{font-size:.72rem;color:var(--text3)}

/* Lista pendientes */
.rev-list-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.rev-list-top{padding:1rem 1.5rem .8rem;border-bottom:1px solid var(--gray2);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
.rev-list-top-left{display:flex;align-items:center;gap:.6rem}
.rev-list-title{font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}
.rev-count-chip{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .5rem;background:var(--brand);color:#fff;border-radius:20px;font-size:.72rem;font-weight:800}
.rev-legend{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}
.rev-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.5rem;border-bottom:1px solid var(--gray2);cursor:pointer;transition:.1s}
.rev-item:last-child{border-bottom:none}
.rev-item:hover{background:#f9fdf3}
.rev-item-left{flex:1;min-width:0}
.rev-item-title{display:flex;align-items:center;gap:.45rem;margin-bottom:.22rem;flex-wrap:wrap}
.rev-doc-type-badge{font-size:.7rem;font-weight:800;color:#fff;background:var(--brand);padding:.18rem .48rem;border-radius:5px;letter-spacing:.04em;white-space:nowrap}
.rev-item-label{font-size:.88rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
.rev-item-meta{font-size:.74rem;color:var(--text3)}
.rev-item-right{display:flex;align-items:center;gap:.45rem;flex-shrink:0}
.rev-v{font-size:.7rem;color:var(--text3);font-weight:700}

/* Panel 2-col */
.rev-panel-layout{display:grid;grid-template-columns:1fr 300px;gap:1rem;align-items:start}
@media(max-width:960px){.rev-panel-layout{grid-template-columns:1fr}}
.rev-panel-left{min-width:0}

/* Doc viewer */
.rev-doc-hdr{background:var(--brand-d);color:#fff;padding:1rem 1.3rem;border-radius:var(--radius) var(--radius) 0 0}
.rev-doc-tipo{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#a3c97f;margin-bottom:.2rem}
.rev-doc-titulo{font-weight:900;font-size:.98rem;margin-bottom:.5rem;line-height:1.3}
.rev-doc-meta-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.rev-doc-meta-row span{font-size:.74rem;color:rgba(255,255,255,.7)}
.rev-doc-meta-row strong{color:#fff}
.rev-doc-body{background:#fff;padding:1.4rem 1.5rem;overflow-y:auto;max-height:68vh;font-size:.87rem;line-height:1.7;color:var(--text);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow)}

/* Sidebar */
.rev-sidebar{display:flex;flex-direction:column;gap:.8rem;position:sticky;top:1rem}
.rev-sblock{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}
.rev-sblock-title{font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin:0 0 .65rem}
.rev-actions-block{border-top:3px solid var(--brand-xs)}

/* Form elements */
.rev-assign-row{display:flex;gap:.5rem;align-items:center}
.rev-input{flex:1;min-width:0;padding:.45rem .65rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.82rem;color:var(--text);background:#fff;outline:none;width:100%;box-sizing:border-box;margin-bottom:.5rem}
.rev-assign-row .rev-input{margin-bottom:0}
.rev-input:focus{border-color:var(--brand)}
.rev-textarea{width:100%;box-sizing:border-box;padding:.45rem .65rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.82rem;color:var(--text);background:#fff;outline:none;resize:vertical;margin-bottom:.5rem}
.rev-textarea:focus{border-color:var(--brand)}
.rev-btn-sm{flex-shrink:0;padding:.42rem .85rem;background:var(--brand);color:#fff;border:none;border-radius:7px;font-family:inherit;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:.15s}
.rev-btn-sm:hover{background:var(--brand-d)}
.rev-btn-primary{width:100%;padding:.55rem;background:var(--brand);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:.15s}
.rev-btn-primary:hover:not(:disabled){background:var(--brand-d)}
.rev-btn-primary:disabled{background:var(--gray3);cursor:not-allowed}

/* Comentarios */
.rev-no-comments{font-size:.82rem;color:var(--text3);text-align:center;padding:.8rem 0}
.rev-comment{border-radius:8px;padding:.65rem .85rem;margin-bottom:.55rem;background:var(--gray)}
.rev-comment:last-child{margin-bottom:0}
.rev-comment.resolved{opacity:.5}
.rev-comment.agent{background:#f0f9ff;border-left:3px solid #3b82f6}
.rev-comment-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem;flex-wrap:wrap}
.rev-comment-author{font-size:.76rem;font-weight:700;color:var(--text)}
.rev-comment-section{font-size:.68rem;color:var(--brand-d);background:var(--brand-xs);padding:.1rem .38rem;border-radius:4px;font-weight:700}
.rev-comment-resolved{font-size:.68rem;color:#065f46;font-weight:700;margin-left:auto}
.rev-comment-body{font-size:.84rem;color:var(--text2);line-height:1.55}
.rev-comment-ts{font-size:.68rem;color:var(--text3);margin-top:.25rem}

/* Chips de acción en lista */
.rev-chip-assign{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;background:#dbeafe;color:#1d4ed8;cursor:pointer;white-space:nowrap}
.rev-chip-review{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;background:#fef3c7;color:#92400e;white-space:nowrap}
.rev-chip-auth{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;background:#d1fae5;color:#065f46;cursor:pointer;white-space:nowrap}
.rev-chip-done{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;background:#f3f4f6;color:#6b7280;white-space:nowrap}

/* Sblock variants */
.rev-sblock-assign{border-left:3px solid #1d4ed8}
.rev-sblock-hint{font-size:.78rem;color:var(--text3);margin:-.3rem 0 .65rem;line-height:1.4}

/* Mensaje de estado contextual */
.rev-status-msg{font-size:.82rem;color:var(--text2);line-height:1.5;background:var(--gray);padding:.55rem .7rem;border-radius:8px;margin:0}
.rev-msg-borrador_ia{background:#f3f4f6;color:#6b7280}
.rev-msg-asignado{background:#dbeafe;color:#1e40af}
.rev-msg-en_revision{background:#fef3c7;color:#78350f}
.rev-msg-en_refinamiento{background:#ede9fe;color:#4c1d95}
.rev-msg-revisado{background:#d1fae5;color:#065f46}
.rev-msg-autorizado{background:#2d3e1a;color:#fff}

/* Botones de acción */
.rev-btn-refine{width:100%;padding:.6rem;background:#8b5cf6;color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:.15s;margin-bottom:.5rem}
.rev-btn-refine:hover:not(:disabled){background:#7c3aed}
.rev-btn-refine:disabled{background:var(--gray3);cursor:not-allowed}
.rev-btn-approve{width:100%;padding:.6rem;background:#16a34a;color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:.15s;margin-bottom:.5rem}
.rev-btn-approve:hover:not(:disabled){background:#15803d}
.rev-btn-approve:disabled{background:var(--gray3);cursor:not-allowed}
.rev-btn-authorize{width:100%;padding:.6rem;background:var(--brand-d);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:.15s}
.rev-btn-authorize:hover:not(:disabled){background:#1a2e0a}
.rev-btn-authorize:disabled{background:var(--gray3);cursor:not-allowed}
.rev-loading{text-align:center;padding:2rem;color:var(--text3);font-size:.9rem}
.rev-empty{text-align:center;padding:2.5rem;color:var(--text3);font-size:.9rem}

/* Review status badges — usados en toda la app */
.review-badge{display:inline-flex;align-items:center;font-size:.68rem;font-weight:700;padding:.18rem .55rem;border-radius:20px;white-space:nowrap;border:1px solid transparent}
.review-badge.borrador_ia{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}
.review-badge.asignado{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.review-badge.en_revision{background:#fef3c7;color:#92400e;border-color:#fde68a}
.review-badge.en_refinamiento{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}
.review-badge.revisado{background:#d1fae5;color:#065f46;border-color:#a7f3d0}
.review-badge.autorizado{background:#2d3e1a;color:#fff;border-color:#2d3e1a}

/* ── DOC CARDS (tab Documentos) ──────────────────────────────────────────── */
.doc-card{background:#fff;border-radius:12px;border:1.5px solid #e5eedd;box-shadow:0 2px 8px rgba(0,0,0,.06);cursor:pointer;overflow:hidden;transition:box-shadow .15s,border-color .15s}
.doc-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.12);border-color:var(--doc-color,#6C8B3B)}
.doc-card-strip{height:4px}
.doc-card-body{padding:1rem 1.1rem}
.doc-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}
.doc-card-badges{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.doc-card-date{font-size:.7rem;color:#aaa;flex-shrink:0}
.doc-card-title{font-weight:800;font-size:.92rem;color:#1a1a2e;margin-bottom:.25rem;line-height:1.3}
.doc-card-label{font-size:.78rem;color:#777;margin-bottom:.7rem}
.doc-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f0f0f0;padding-top:.6rem}
.doc-card-user{font-size:.74rem;color:#999}
.doc-type-badge{border-radius:5px;padding:.2rem .55rem;font-size:.72rem;font-weight:800;letter-spacing:.04em}
.doc-card-link-review{font-size:.74rem;color:#8b5cf6;font-weight:700;cursor:pointer;padding:.15rem .4rem;border-radius:5px;border:1px solid #e0d9f7}
.doc-card-link-ver{font-size:.74rem;font-weight:700}
/* ── VIEW TOGGLE ─────────────────────────────────────────────────────────── */
.proy-view-toggle{display:flex;gap:.5rem;margin:.8rem 0 1rem}
.proy-view-btn{padding:.45rem 1.1rem;border:2px solid var(--brand);border-radius:8px;background:#fff;color:var(--brand-d);font-family:inherit;font-size:.83rem;font-weight:700;cursor:pointer;transition:.15s}
.proy-view-btn.active{background:var(--brand);color:#fff}
.proy-view-btn:hover:not(.active){background:var(--brand-xs)}
/* ── REPORTE DE EQUIPO ───────────────────────────────────────────────────── */
.eq-section{margin-bottom:2rem}
.eq-section-title{font-size:1rem;font-weight:900;color:var(--text);margin-bottom:1rem;letter-spacing:.01em}
/* Flujo */
.eq-flow{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:.5rem}
.eq-flow-wrap-item{display:flex;align-items:center;gap:0}
.eq-arrow{font-size:1.4rem;color:var(--text3);padding:0 .3rem;margin-top:-1.5rem;flex-shrink:0}
.eq-flow-box{background:#fff;border:1.5px solid var(--gray2);border-radius:10px;padding:.8rem .75rem;min-width:110px;max-width:130px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.07);flex-shrink:0}
.eq-flow-badge{display:inline-block;font-size:.65rem;font-weight:900;color:#fff;padding:.2rem .5rem;border-radius:5px;margin-bottom:.3rem}
.eq-flow-pct{font-size:1.6rem;font-weight:900;line-height:1;margin:.25rem 0 .2rem}
.eq-flow-bar{height:5px;background:#f0f0f0;border-radius:4px;margin:.3rem 0}
.eq-flow-count{font-size:.7rem;color:var(--text3);margin:.15rem 0}
.eq-flow-status{font-size:.7rem;font-weight:700;margin:.2rem 0}
.eq-flow-avatar{width:28px;height:28px;border-radius:50%;color:#fff;font-weight:900;font-size:.72rem;display:flex;align-items:center;justify-content:center;margin:.4rem auto .1rem;cursor:default}
.eq-flow-name{font-size:.65rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Cards */
.eq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.eq-card{background:#fff;border:1.5px solid var(--gray2);border-radius:12px;padding:1rem;box-shadow:0 1px 4px rgba(0,0,0,.07)}
.eq-card-head{display:flex;align-items:center;gap:.75rem;padding-left:.6rem;margin-bottom:.75rem}
.eq-avatar{width:44px;height:44px;border-radius:50%;color:#fff;font-weight:900;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.eq-card-name{font-size:.95rem;font-weight:900;color:var(--text);line-height:1.2}
.eq-card-proc{font-size:.72rem;color:var(--text3);margin-top:.1rem}
.eq-bar-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}
.eq-bar-bg{flex:1;height:10px;background:#f0f0f0;border-radius:6px;overflow:hidden}
.eq-bar-fill{height:100%;border-radius:6px;transition:.4s}
.eq-bar-pct{font-size:1rem;font-weight:900;min-width:36px;text-align:right}
.eq-sec-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin:.5rem 0 .25rem}
.eq-sec-pending{color:#ef4444}
.eq-doc-row{display:flex;align-items:center;gap:.4rem;padding:.22rem 0;border-bottom:1px solid #f5f5f5;font-size:.78rem}
.eq-doc-row:last-child{border-bottom:none}
.eq-doc-icon{width:1rem;text-align:center;flex-shrink:0}
.eq-doc-code{font-weight:800;color:var(--text);flex-shrink:0;font-size:.72rem}
.eq-doc-lbl{color:var(--text3);flex:1;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eq-rs-pill{font-size:.62rem;font-weight:700;padding:.1rem .4rem;border-radius:20px;flex-shrink:0}
.eq-rs-pill.rs-borrador_ia{background:#f3f4f6;color:#6b7280}
.eq-rs-pill.rs-asignado{background:#dbeafe;color:#1d4ed8}
.eq-rs-pill.rs-en_revision{background:#fef3c7;color:#92400e}
.eq-rs-pill.rs-en_refinamiento{background:#ede9fe;color:#6d28d9}
.eq-rs-pill.rs-revisado{background:#d1fae5;color:#065f46}
.eq-rs-pill.rs-autorizado{background:#bbf7d0;color:#14532d;border:1px solid #4ade80}
.eq-all-done{text-align:center;font-size:.85rem;color:#10b981;font-weight:700;padding:.5rem 0}
/* ── FLUJO % BAR ─────────────────────────────────────────────────────────── */
.fn-bar{height:4px;background:#e5e7eb;border-radius:3px;margin:.25rem 0 .15rem;width:70px}
.fn-ejec{font-size:.68rem;font-weight:900;color:var(--text)}
/* ── HERRAMIENTAS TAB ────────────────────────────────────────────────────── */
.herr-layout{max-width:1100px;margin:2rem auto;padding:0 1.5rem}
.herr-header{margin-bottom:1.5rem}
.herr-header h2{font-size:1.25rem;font-weight:900;color:var(--brand-d)}
.herr-header p{font-size:.88rem;color:var(--text3);margin-top:.3rem}
.herr-cat-label{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);margin-bottom:.6rem}
.herr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.herr-card{background:#fff;border-radius:12px;padding:1.2rem 1.3rem;border:1.5px solid #e0e7d4;box-shadow:0 2px 10px rgba(0,0,0,.06);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.herr-card:hover{border-color:var(--brand);box-shadow:0 4px 16px rgba(108,139,59,.2)}
.herr-card-soon{opacity:.55;cursor:default;border-style:dashed;background:#f9fdf3}
.herr-card-soon:hover{border-color:#e0e7d4;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.herr-icon{font-size:2rem;margin-bottom:.5rem}
.herr-title{font-weight:900;font-size:.95rem;color:var(--text);margin-bottom:.3rem}
.herr-desc{font-size:.8rem;color:var(--text3);line-height:1.4}
.herr-link{margin-top:.8rem;font-size:.78rem;font-weight:700;color:var(--brand)}
.herr-tools-sep{margin-top:2.5rem;border-top:2px solid var(--gray2);padding-top:1.8rem}
/* ── HERRAMIENTAS — Flujo visual ─────────────────────────────────────────── */
.herr-flujo-card{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:1.2rem 1.5rem;margin-bottom:1.5rem;overflow-x:auto}
.herr-flujo-card h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin-bottom:1rem}
.herr-flujo-row{display:flex;align-items:center;gap:.3rem;flex-wrap:nowrap;min-width:max-content}
.herr-fn{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:90px;cursor:help}
.herr-fn-badge{font-size:.75rem;font-weight:900;color:#fff;padding:.3rem .7rem;border-radius:8px}
.herr-fn-person{font-size:.68rem;color:var(--text3);text-align:center;max-width:90px;line-height:1.25;margin-top:.1rem}
.herr-fn-arrow{font-size:1.3rem;color:var(--text3);padding:0 .2rem;margin-bottom:1.4rem;flex-shrink:0}
/* ── HERRAMIENTAS — Cards de rol ─────────────────────────────────────────── */
.hrc-section-label{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-d);margin:1.2rem 0 .7rem;padding-left:.2rem}
.herr-roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem;margin-bottom:.5rem}
.hrc-card{background:#fff;border-radius:12px;border:1.5px solid var(--gray2);box-shadow:0 2px 8px rgba(0,0,0,.06);padding:1.2rem 1.2rem 1rem;border-top:4px solid #ccc;transition:box-shadow .15s,border-color .15s}
.hrc-card:hover{box-shadow:0 5px 18px rgba(0,0,0,.11)}
.hrc-me{border:2px solid var(--brand) !important;border-top-width:4px !important;box-shadow:0 4px 22px rgba(108,139,59,.28) !important;background:#fafff5}
.hrc-head{display:flex;align-items:center;gap:.85rem;margin-bottom:.7rem}
.hrc-avatar{width:50px;height:50px;border-radius:50%;color:#fff;font-weight:900;font-size:1.05rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.05em}
.hrc-info{flex:1;min-width:0}
.hrc-name{font-size:1rem;font-weight:900;color:var(--text);line-height:1.2}
.hrc-meta{display:flex;align-items:center;gap:.35rem;margin-top:.3rem;flex-wrap:wrap}
.hrc-rol-badge{font-size:.68rem;font-weight:900;color:#fff;padding:.18rem .5rem;border-radius:5px;letter-spacing:.04em}
.hrc-step-badge{font-size:.68rem;font-weight:700;color:var(--text2);background:var(--gray2);padding:.18rem .5rem;border-radius:5px}
.hrc-me-badge{font-size:.68rem;font-weight:900;background:var(--brand-xs);color:var(--brand-d);padding:.18rem .55rem;border-radius:20px;border:1px solid var(--brand)}
.hrc-proceso{font-size:.78rem;color:var(--text3);font-weight:600;margin-bottom:.5rem}
.hrc-desc{font-size:.81rem;color:var(--text2);line-height:1.5;margin-bottom:.75rem;background:var(--gray);padding:.55rem .7rem;border-radius:7px}
.hrc-deps{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}
.hrc-dep-row{display:flex;align-items:center;gap:.45rem}
.hrc-dep-icon{font-size:.85rem;flex-shrink:0;width:1.1rem;text-align:center}
.hrc-dep-wait{color:#f59e0b}
.hrc-dep-feed{color:#10b981}
.hrc-dep-label{font-size:.7rem;font-weight:700;color:var(--text3);min-width:78px;flex-shrink:0}
.hrc-dep-val{font-size:.76rem;font-weight:700;color:var(--text);background:var(--gray2);padding:.1rem .45rem;border-radius:5px;flex:1}
.hrc-docs-label{font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin-bottom:.3rem}
.hrc-docs{list-style:none;padding:0;display:flex;flex-direction:column;gap:.2rem}
.hrc-docs li{font-size:.74rem;color:var(--text2);padding:.22rem .5rem;border-radius:5px;background:var(--gray);display:flex;align-items:flex-start;gap:.4rem;line-height:1.4}
.hrc-docs li::before{content:'▸';font-size:.75rem;color:var(--brand);flex-shrink:0;margin-top:.05rem}
/* ── REVISIÓN — FILTER + GRUPOS POR PROYECTO ─────────────────────────────── */
.rev-filter-row{padding:.5rem 1rem .25rem;border-bottom:1px solid var(--gray2)}
.rev-filter-sel{padding:.35rem .7rem;border:1.5px solid var(--gray2);border-radius:7px;font-family:inherit;font-size:.82rem;background:#fff;color:var(--text);cursor:pointer}
.rev-filter-sel:focus{border-color:var(--brand);outline:none}
.rev-proy-group{background:#fff;border:2px solid var(--brand);border-radius:12px;box-shadow:0 2px 12px rgba(108,139,59,.13);margin-bottom:1.1rem;overflow:hidden}
.rev-proy-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.1rem;background:var(--brand);gap:.7rem}
.rev-proy-nombre{font-size:.88rem;font-weight:900;color:#fff;letter-spacing:.01em}
.rev-proy-count{font-size:.7rem;font-weight:700;color:var(--brand-d);background:#fff;padding:.15rem .55rem;border-radius:20px;flex-shrink:0}
.rev-proy-group .rev-item{border-bottom:1px solid var(--gray2);padding:.8rem 1.2rem}
.rev-proy-group .rev-item:last-child{border-bottom:none}
.rev-proy-group .rev-item:hover{background:#f9fdf3}
/* ── AVANCE — VIEW TOGGLE ────────────────────────────────────────────────── */
.avance-view-toggle{display:flex;gap:.5rem;margin-bottom:1rem}
.avance-view-btn{padding:.42rem 1rem;border:2px solid var(--brand);border-radius:8px;background:#fff;color:var(--brand-d);font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:.15s}
.avance-view-btn.active{background:var(--brand);color:#fff}
.avance-view-btn:hover:not(.active){background:var(--brand-xs)}
/* ── MATRIZ POR PROYECTO ─────────────────────────────────────────────────── */
.mat-loading{padding:2rem;text-align:center;color:var(--text3);font-size:.88rem}
.mat-scroll{overflow-x:auto;border-radius:10px;box-shadow:var(--shadow)}
.mat-table{width:100%;border-collapse:collapse;background:#fff;font-size:.82rem}
.mat-th-step{padding:.6rem .9rem;background:var(--brand-d);color:#fff;font-size:.7rem;font-weight:900;text-align:left;min-width:140px;position:sticky;left:0;z-index:2}
.mat-th-proy{padding:.6rem .9rem;background:var(--brand);color:#fff;font-size:.72rem;font-weight:700;text-align:center;min-width:130px;max-width:160px}
.mat-td-step{padding:.6rem .8rem;background:#fff;border-bottom:1px solid var(--gray2);position:sticky;left:0;z-index:1;border-right:2px solid var(--brand-xs)}
.mat-step-badge{display:inline-block;font-size:.62rem;font-weight:900;color:#fff;padding:.18rem .45rem;border-radius:5px;margin-right:.3rem;cursor:help}
.mat-step-name{font-size:.72rem;color:var(--text2);margin-top:.2rem;font-weight:600}
.mat-dep{font-size:.63rem;color:var(--text3);margin-top:.15rem;cursor:help}
.mat-cell{padding:.5rem .6rem;text-align:center;border-bottom:1px solid var(--gray2);border-left:1px solid var(--gray2);vertical-align:middle;cursor:help;transition:background .15s}
.mat-cell:hover{filter:brightness(.95)}
.mat-icon{font-size:.95rem;line-height:1}
.mat-cnt{font-size:.68rem;font-weight:700;margin:.1rem 0;color:var(--text2)}
/* ── CHAT FLOTANTE ──────────────────────────────────────────────────────────── */
#chat-fab{position:fixed;bottom:1.5rem;right:1.5rem;width:52px;height:52px;border-radius:50%;background:#6C8B3B;color:#fff;font-size:1.4rem;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.25);z-index:1000;transition:transform .2s,background .2s;user-select:none}
#chat-fab:hover{background:#556e2e;transform:scale(1.07)}
#chat-fab.open{background:#556e2e}
#chat-window{position:fixed;bottom:5rem;right:1.5rem;width:360px;height:500px;background:#fff;border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.18);display:flex;flex-direction:column;z-index:999;overflow:hidden;border:1px solid #d1e8b0}
#chat-window.hidden{display:none}
.chat-header{background:#6C8B3B;color:#fff;padding:.7rem 1rem;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:.9rem}
.chat-header-actions{display:flex;gap:.4rem;align-items:center}
.chat-header button{background:none;border:none;color:#fff;cursor:pointer;font-size:1rem;opacity:.8;padding:.1rem .3rem;border-radius:4px}
.chat-header button:hover{opacity:1;background:rgba(255,255,255,.15)}
.chat-tips-btn{background:rgba(255,255,255,.18)!important;border:1px solid rgba(255,255,255,.4)!important;font-size:.75rem!important;padding:.2rem .55rem!important;border-radius:12px!important;opacity:1!important;font-weight:600;letter-spacing:.01em}
.chat-tips-btn:hover{background:rgba(255,255,255,.3)!important}
.chat-messages{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.6rem;background:#f9fbf6}
.chat-msg{max-width:88%;padding:.55rem .8rem;border-radius:12px;font-size:.85rem;line-height:1.5;word-break:break-word}
.chat-msg p{margin:.2rem 0}
.chat-msg p:first-child{margin-top:0}
.chat-msg p:last-child{margin-bottom:0}
.chat-msg ul,.chat-msg ol{margin:.2rem 0 .2rem 1.1rem;padding:0}
.chat-msg.user{background:#6C8B3B;color:#fff;align-self:flex-end;border-bottom-right-radius:3px}
.chat-msg.assistant{background:#fff;color:#1f2937;align-self:flex-start;border-bottom-left-radius:3px;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.chat-input-area{padding:.6rem;border-top:1px solid #e5e7eb;display:flex;gap:.5rem;align-items:flex-end;background:#fff}
#chat-input{flex:1;border:1px solid #d1d5db;border-radius:8px;padding:.45rem .65rem;font-size:.85rem;resize:none;outline:none;font-family:inherit;max-height:80px;overflow-y:auto}
#chat-input:focus{border-color:#6C8B3B}
.chat-send-btn{background:#6C8B3B;color:#fff;border:none;border-radius:8px;width:36px;height:36px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.chat-send-btn:hover{background:#556e2e}
.chat-typing{display:flex;gap:4px;align-items:center;padding:.2rem 0}
.chat-typing span{width:7px;height:7px;border-radius:50%;background:#9ca3af;animation:chat-bounce .9s infinite}
.chat-typing span:nth-child(2){animation-delay:.15s}
.chat-typing span:nth-child(3){animation-delay:.3s}
@keyframes chat-bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}
@media(max-width:480px){#chat-window{width:calc(100vw - 2rem);right:1rem;bottom:4.5rem}}

.mat-bar{height:4px;background:#f0f0f0;border-radius:2px;margin:.2rem .4rem 0;overflow:hidden}
.mat-done   {background:#f0fdf4;color:#065f46}
.mat-partial{background:#fffbeb;color:#92400e}
.mat-blocked{background:#fef2f2;color:#991b1b}
.mat-empty  {background:#fafafa;color:#9ca3af}

/* ── TAB TELEGRAM / EQUIPO ─────────────────────────────────────────────────── */
.tg-chat-card{padding:.6rem .8rem;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:.4rem;cursor:pointer;transition:background .15s}
.tg-chat-card:hover{background:#f3f7ef}
.tg-chat-card.active{background:#edf7e0;border-color:#6C8B3B}
.tg-chat-title{font-weight:600;font-size:.9rem;margin-bottom:.25rem}
.tg-chat-meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.tg-chat-date{font-size:.75rem;color:#9ca3af;margin-left:auto}
.tg-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.1rem .45rem;border-radius:20px;white-space:nowrap}
.tg-badge.proyecto{background:#dbeafe;color:#1d4ed8}
.tg-badge.activo{background:#d1fae5;color:#065f46}
.tg-badge.inactivo{background:#f3f4f6;color:#6b7280}
.tg-badge.cerrado{background:#fef3c7;color:#92400e}
.tg-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}
.tg-session-card{border:1px solid #e5e7eb;border-radius:8px;padding:.8rem 1rem;margin-bottom:.7rem}
.tg-session-card.activa{border-color:#6C8B3B;background:#f7fbf2}
.tg-session-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem;flex-wrap:wrap}
.tg-session-titulo{font-weight:600;font-size:.9rem}
.tg-session-meta{font-size:.8rem;color:#6b7280;margin-bottom:.4rem}
.tg-session-resumen{font-size:.82rem;color:#374151;background:#f9fafb;border-left:3px solid #6C8B3B;padding:.5rem .7rem;border-radius:0 4px 4px 0;margin:.4rem 0;white-space:pre-wrap;max-height:140px;overflow-y:auto}
.tg-session-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}
.tg-doc-link{font-size:.78rem;color:#6C8B3B;margin-left:auto}
.tg-msg-list{display:flex;flex-direction:column;gap:.4rem;max-height:500px;overflow-y:auto;padding:.4rem 0}
.tg-msg{padding:.5rem .7rem;border-radius:8px;max-width:85%}
.tg-msg.human{background:#f0f7e6;align-self:flex-start;border:1px solid #d1e8b0}
.tg-msg.bot{background:#f0f4ff;align-self:flex-end;border:1px solid #c7d2fe}
.tg-msg-user{font-weight:700;font-size:.78rem;margin-right:.4rem;color:#374151}
.tg-msg-ts{font-size:.72rem;color:#9ca3af}
.tg-msg-content{font-size:.85rem;margin-top:.2rem;word-break:break-word}

/* ── PRE-ASSESSMENT ── */
.pa-topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}
.pa-loading{color:#888;font-size:.9rem;padding:2rem;text-align:center}
.pa-header{display:flex;align-items:center;gap:1.5rem;background:#fff;border-radius:12px;padding:1rem 1.5rem;margin-bottom:1rem;box-shadow:0 1px 4px rgba(0,0,0,.08);flex-wrap:wrap}
.pa-donut{width:70px;height:70px;transform:rotate(-90deg)}
.pa-donut-bg{fill:none;stroke:#f0f0f0;stroke-width:3.5}
.pa-donut-ring{fill:none;stroke-width:3.5;stroke-linecap:round;transition:stroke-dasharray .4s}
.pa-score{display:flex;align-items:center;gap:.5rem}
.pa-score-text{display:flex;flex-direction:column;align-items:center}
.pa-score-num{font-size:1.4rem;font-weight:900;line-height:1}
.pa-score-label{font-size:.7rem;color:#6b7280}
.pa-summary-stats{display:flex;gap:1.5rem;flex-wrap:wrap}
.pa-stat{display:flex;flex-direction:column;align-items:center;min-width:70px}
.pa-stat span{font-size:1.3rem;font-weight:800;color:#2d3e1a}
.pa-stat small{font-size:.7rem;color:#6b7280;text-align:center}
.pa-legend{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}
.pa-badge{font-size:.72rem;font-weight:600;padding:.2rem .55rem;border-radius:10px}
.pa-badge.covered{background:#d1fae5;color:#065f46}
.pa-badge.missing{background:#fee2e2;color:#991b1b}
.pa-badge.ml2{background:#dbeafe;color:#1e40af}
.pa-badge.ml3{background:#ede9fe;color:#5b21b6}
.pa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem;margin-bottom:1rem}
.pa-card{background:#fff;border-radius:10px;padding:.85rem 1rem;box-shadow:0 1px 3px rgba(0,0,0,.07)}
.pa-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.4rem}
.pa-card-title{display:flex;flex-direction:column;gap:.1rem}
.pa-card-title strong{font-size:.88rem;color:#2d3e1a}
.pa-card-title span{font-size:.75rem;color:#6b7280}
.pa-card-pct{font-size:1rem;font-weight:800;min-width:40px;text-align:right}
.pa-bar-wrap{height:5px;background:#f0f0f0;border-radius:3px;overflow:hidden;margin-bottom:.5rem}
.pa-bar{height:100%;border-radius:3px;transition:width .4s}
.pa-practices{display:flex;flex-wrap:wrap;gap:.3rem}
.prac{font-size:.68rem;font-weight:700;padding:.15rem .4rem;border-radius:6px;cursor:default}
.prac.covered.ml2{background:#dbeafe;color:#1e40af}
.prac.covered.ml3{background:#ede9fe;color:#5b21b6}
.prac.missing{background:#fee2e2;color:#991b1b;opacity:.7}
.pa-note{font-size:.75rem;color:#9ca3af;text-align:center;padding:.5rem}
