/* EdgfastUniverse Documental (EdgfastGov) — suite institucional de trámites en vivo */
:root{
  /* Modo claro (institucional, legible) */
  --g-bg:#eef2f7; --g-bg2:#f4f7fb; --g-panel:#ffffff; --g-panel2:#f7f9fc;
  --g-line:rgba(15,32,55,.12); --g-ink:#0f1c2e; --g-soft:#4a5d78; --g-soft2:#6b7f9e;
  --g-accent:#0e9b6e; --g-accent2:#10b981; --g-blue:#2563eb;
  --g-footer-h:34px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--g-bg);color:var(--g-ink);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;overflow:hidden}
#g-root{position:fixed;inset:0;display:flex;flex-direction:column}
.g-muted{color:var(--g-soft);font-size:13px}
.g-empty{color:var(--g-soft2);font-size:13.5px;padding:18px;text-align:center;border:1px dashed var(--g-line);border-radius:12px}
.g-pill{background:rgba(16,185,129,.18);color:#6ee7b7;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600}
.g-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}
.g-badge{color:#04231a;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}

/* ---------- Barra superior ---------- */
#g-top{display:flex;align-items:center;gap:18px;height:58px;padding:0 16px;
  background:linear-gradient(180deg,var(--g-bg2),var(--g-bg));border-bottom:1px solid var(--g-line);z-index:20}
#g-brand{display:flex;align-items:center;gap:10px;color:var(--g-ink);text-decoration:none;font-size:16px;white-space:nowrap}
#g-brand>i{color:var(--g-soft)}
#g-brand strong{color:var(--g-accent);font-weight:800}
#g-brand span i{color:var(--g-accent)}
#g-brand:hover>i{color:var(--g-accent)}
#g-tabs{display:flex;gap:4px;flex:1;overflow:auto}
.g-tab{display:flex;align-items:center;gap:8px;border:1px solid transparent;background:transparent;color:var(--g-soft);
  padding:8px 14px;border-radius:10px;cursor:pointer;font-size:13.5px;white-space:nowrap;transition:.15s;font-weight:500}
.g-tab:hover{background:var(--g-panel);color:var(--g-ink)}
.g-tab.active{background:var(--g-panel2);color:var(--g-ink);border-color:var(--g-line);box-shadow:0 1px 3px rgba(15,32,55,.08)}
.g-tab.active i{color:var(--g-accent)}
#g-top-right{display:flex;align-items:center;gap:12px}
#g-presence{display:flex}
.g-av{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:#04231a;margin-left:-8px;border:2px solid var(--g-bg2);box-shadow:0 2px 6px rgba(0,0,0,.3)}
.g-av:first-child{margin-left:0}
#g-live{display:flex;align-items:center;gap:7px;background:rgba(16,185,129,.15);color:#6ee7b7;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
#g-live .dot{width:8px;height:8px;border-radius:50%;background:#34d399;animation:gp 1.6s infinite}
@keyframes gp{0%{box-shadow:0 0 0 0 rgba(52,211,153,.6)}100%{box-shadow:0 0 0 8px rgba(52,211,153,0)}}
#g-chat-toggle{width:38px;height:38px;border:1px solid var(--g-line);background:var(--g-panel);color:var(--g-ink);border-radius:10px;cursor:pointer;transition:.15s}
#g-chat-toggle:hover{background:var(--g-accent);color:#04231a}
#g-help-toggle{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 13px;border:1px solid var(--g-accent);background:rgba(16,185,129,.1);color:var(--g-accent);border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;transition:.15s}
#g-help-toggle:hover{background:var(--g-accent);color:#04231a}
@media (max-width:760px){#g-help-toggle span{display:none}#g-help-toggle{padding:0;width:38px;justify-content:center}}
#g-conn{font-size:9px}#g-conn.on{color:#34d399}#g-conn.off{color:#ef4444}

/* ---------- Contenedor de vistas ---------- */
#g-main{flex:1;min-height:0;position:relative}
/* Las vistas se apilan en la misma área; solo la activa se muestra.
   Se controla por la clase .active (no por [hidden]) para que ningún
   selector de ID con display:grid la sobreescriba. */
.g-view{position:absolute;inset:0;padding:18px;overflow:auto;display:none}
.g-view.active{display:block}
.g-card{background:var(--g-panel);border:1px solid var(--g-line);border-radius:14px;padding:18px}
.g-card h2{margin:0 0 4px;font-size:18px}
.g-card h3,.g-card h4{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--g-soft)}
.g-card h3 i,.g-card h4 i{color:var(--g-accent);margin-right:6px}

/* ---------- VENTANILLA ---------- */
#v-ventanilla{grid-template-columns:minmax(320px,420px) 1fr;gap:18px;align-items:start}
#v-ventanilla.active{display:grid}
#vt-form{display:flex;flex-direction:column;gap:14px;margin-top:8px}
#vt-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--g-soft)}
#vt-form select,#vt-form input{background:var(--g-bg2);border:1px solid var(--g-line);border-radius:10px;padding:11px 13px;color:var(--g-ink);font-size:14px;outline:none}
#vt-form select:focus,#vt-form input:focus{border-color:var(--g-accent)}
#vt-form button{margin-top:4px;border:none;border-radius:11px;padding:13px;background:var(--g-accent);color:#04231a;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
#vt-form button:hover{background:var(--g-accent2)}
.g-col-track>h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--g-soft);display:flex;align-items:center;gap:8px;margin:4px 0 12px}
.g-col-track>h3 i{color:var(--g-accent)}
.g-track-list{display:flex;flex-direction:column;gap:12px}
.g-track{background:var(--g-panel);border:1px solid var(--g-line);border-radius:12px;padding:14px}
.g-track-head{display:flex;align-items:center;gap:8px;font-size:14px}
.g-track-head .g-badge{margin-left:auto}
.g-track-sub{color:var(--g-soft);font-size:12.5px;margin:2px 0 12px}
.g-steps{list-style:none;display:flex;margin:0;padding:0;gap:4px}
.g-steps li{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10px;color:var(--g-soft2);position:relative}
.g-steps li i{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--g-bg2);border:1px solid var(--g-line);font-size:11px}
.g-steps li.done i{background:rgba(16,185,129,.2);border-color:var(--g-accent);color:var(--g-accent2)}
.g-steps li.cur i{box-shadow:0 0 0 3px rgba(16,185,129,.25)}
.g-steps li.done span{color:var(--g-ink)}
.g-track-done{margin-top:12px;color:var(--g-accent2);font-size:13px;font-weight:600}

/* ---------- MESA DE TRÁMITES (Kanban) ---------- */
.g-board{display:flex;gap:14px;height:100%;overflow-x:auto;padding-bottom:6px}
.g-colmn{flex:1;min-width:230px;background:var(--g-bg2);border:1px solid var(--g-line);border-radius:14px;display:flex;flex-direction:column;max-height:100%}
.g-colmn.over{border-color:var(--g-accent);background:rgba(16,185,129,.07)}
.g-colmn-head{padding:13px 14px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--g-line)}
.g-colmn-head .g-pill{margin-left:auto}
.g-colmn-list{padding:12px;display:flex;flex-direction:column;gap:10px;overflow:auto;flex:1;min-height:60px}
.g-tcard{background:var(--g-panel2);border:1px solid var(--g-line);border-left:3px solid var(--g-accent);border-radius:10px;padding:11px 12px;cursor:grab}
.g-tcard:active{cursor:grabbing}
.g-tcard.dragging{opacity:.45}
.g-tcard.just-updated{animation:gUpd 1.5s ease-out}
@keyframes gUpd{0%{box-shadow:0 0 0 3px rgba(16,185,129,.5);transform:scale(1.03)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0);transform:scale(1)}}
.g-tcard-top{display:flex;align-items:center;gap:8px;font-size:13px}
.g-asig{margin-left:auto;font-size:10px;background:rgba(15,32,55,.07);color:var(--g-soft);padding:1px 7px;border-radius:6px}
.g-tcard-tipo{font-size:13.5px;font-weight:600;margin:6px 0 3px}
.g-tcard-ciud{font-size:12px;color:var(--g-soft)}
.g-tcard-ciud i{margin-right:5px;color:var(--g-soft2)}
.g-tcard-open{margin-top:10px;width:100%;border:1px solid var(--g-line);background:transparent;color:var(--g-soft);border-radius:8px;padding:7px;font-size:12px;cursor:pointer}
.g-tcard-open:hover{background:var(--g-accent);color:#04231a;border-color:var(--g-accent)}

/* ---------- EXPEDIENTE ---------- */
#v-expediente{grid-template-columns:260px 1fr;gap:18px;padding:18px}
#v-expediente.active{display:grid}
.g-explist{background:var(--g-panel);border:1px solid var(--g-line);border-radius:14px;padding:10px;overflow:auto;align-self:start;max-height:100%}
.g-explist-head{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--g-soft);padding:8px 8px 12px;display:flex;align-items:center;gap:8px}
.g-expitem{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;background:transparent;color:var(--g-ink);padding:9px 8px;border-radius:9px;cursor:pointer}
.g-expitem:hover{background:var(--g-panel2)}
.g-expitem.active{background:var(--g-panel2);box-shadow:inset 3px 0 0 var(--g-accent)}
.g-expitem-t{display:flex;flex-direction:column;font-size:13px;line-height:1.3}
.g-expitem-t small{color:var(--g-soft);font-size:11.5px}
.g-expdoc{background:var(--g-panel);border:1px solid var(--g-line);border-radius:14px;padding:0;overflow:auto;display:flex;flex-direction:column}
.g-expdoc-empty{margin:auto;max-width:340px}
#exp-head{padding:18px 20px 0}
.g-doc-head{display:flex;align-items:flex-start;gap:12px}
.g-doc-head h2{margin:0;font-size:17px}
.g-doc-head p{margin:3px 0 0}
.g-doc-head .g-badge-lg{margin-left:auto}
.g-badge-lg{font-size:12.5px;padding:6px 12px;display:inline-flex;align-items:center;gap:6px}
.g-doc-actions{display:flex;gap:10px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--g-line)}
.g-btn{border:1px solid var(--g-line);background:var(--g-panel2);color:var(--g-ink);border-radius:9px;padding:9px 14px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.g-btn-next:hover{background:var(--g-blue);border-color:var(--g-blue);color:#fff}
.g-btn-sign{background:var(--g-accent);border-color:var(--g-accent);color:#fff;font-weight:700}
.g-btn-sign:hover{background:var(--g-accent2)}
.g-btn-pdf{margin-left:auto}
.g-btn-pdf:hover{background:#dc2626;border-color:#dc2626;color:#fff}
.g-btn-pdf i{color:#dc2626}
.g-btn-pdf:hover i{color:#fff}
.g-emitido{color:var(--g-accent2);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:7px}
.g-doc{display:grid;grid-template-columns:1fr;gap:14px;padding:18px 20px}
.g-doc-field{display:flex;flex-direction:column;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--g-soft)}
.g-doc-field input,.g-doc-field textarea{background:var(--g-bg2);border:1px solid var(--g-line);border-radius:10px;padding:11px 13px;color:var(--g-ink);font-size:14px;font-family:inherit;outline:none;resize:vertical;text-transform:none;letter-spacing:0;line-height:1.5}
.g-doc-field input:focus,.g-doc-field textarea:focus{border-color:var(--g-accent)}
.g-editing{height:18px;font-size:12px;color:var(--g-accent2);opacity:0;transition:.2s}
.g-editing.on{opacity:1}
.g-doc-side{border-top:1px solid var(--g-line);padding:16px 20px}
.g-doc-side h4{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--g-soft)}
.g-doc-side h4 i{color:var(--g-accent);margin-right:6px}
.g-comments{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow:auto;margin-bottom:10px}
.g-comment{background:var(--g-bg2);border-radius:9px;padding:8px 11px;font-size:13px}
.g-comment small{color:var(--g-soft2);margin-left:6px;font-size:11px}
.g-comment div{margin-top:3px;color:var(--g-ink)}
#exp-comment-form{display:flex;gap:8px}
#exp-comment-input{flex:1;background:var(--g-bg2);border:1px solid var(--g-line);border-radius:9px;padding:9px 12px;color:var(--g-ink);outline:none;font-size:13px}
#exp-comment-input:focus{border-color:var(--g-accent)}
#exp-comment-form button{width:40px;border:none;border-radius:9px;background:var(--g-accent);color:#04231a;cursor:pointer}

/* ---------- SALA SITUACIONAL ---------- */
.g-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.g-kpi{background:var(--g-panel);border:1px solid var(--g-line);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.g-kpi-ico{width:38px;height:38px;border-radius:10px;background:rgba(16,185,129,.16);color:var(--g-accent2);display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:6px}
.g-kpi-num{font-size:30px;font-weight:800;line-height:1}
.g-kpi-lbl{font-size:12.5px;color:var(--g-soft)}
.g-sala-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.g-bars{display:flex;flex-direction:column;gap:12px}
.g-bar{display:grid;grid-template-columns:170px 1fr 30px;align-items:center;gap:12px;font-size:13px}
.g-bar-l{color:var(--g-soft);white-space:nowrap}
.g-bar-track{height:10px;background:var(--g-bg2);border-radius:999px;overflow:hidden}
.g-bar-fill{height:100%;border-radius:999px;transition:width .4s}
.g-bar-n{text-align:right;font-weight:700}
.g-feed{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto}
.g-feed li{display:flex;align-items:flex-start;gap:9px;padding:7px 0;border-bottom:1px solid var(--g-line);font-size:13px;color:var(--g-soft)}
.g-feed li .g-dot{margin-top:4px}
.g-feed li small{margin-left:auto;color:var(--g-soft2);font-size:11px}

/* ---------- Chat lateral ---------- */
#g-chat{position:absolute;top:58px;right:0;bottom:var(--g-footer-h);width:300px;background:var(--g-panel);border-left:1px solid var(--g-line);display:flex;flex-direction:column;z-index:30;box-shadow:-16px 0 40px -24px rgba(15,32,55,.4);animation:gSlideIn .22s ease}
@keyframes gSlideIn{from{transform:translateX(30px);opacity:0}to{transform:translateX(0);opacity:1}}
#g-chat[hidden]{display:none}
.g-chat-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--g-line);font-weight:600;font-size:14px}
.g-chat-head i{color:var(--g-accent);margin-right:6px}
#g-chat-close{background:none;border:none;color:var(--g-soft);cursor:pointer;font-size:15px}
#g-chat-list{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:7px}
.g-msg{font-size:13.5px;line-height:1.4;background:var(--g-bg2);padding:7px 10px;border-radius:10px;word-break:break-word}
.g-msg.mine{background:rgba(16,185,129,.16)}
#g-chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--g-line)}
#g-chat-input{flex:1;background:var(--g-bg2);border:1px solid var(--g-line);border-radius:10px;padding:10px 12px;color:var(--g-ink);outline:none;font-size:13.5px}
#g-chat-input:focus{border-color:var(--g-accent)}
#g-chat-form button{width:42px;border:none;border-radius:10px;background:var(--g-accent);color:#04231a;cursor:pointer}

/* ---------- Cursores ---------- */
#g-cursors{position:absolute;inset:0;pointer-events:none;z-index:50;overflow:hidden}
.g-cursor{position:absolute;top:0;left:0;will-change:transform;transition:transform .08s linear}
.g-cursor span{display:inline-block;margin-left:4px;transform:translateY(-6px);color:#04231a;font-size:11px;font-weight:700;padding:2px 7px;border-radius:7px;white-space:nowrap}

/* ---------- Estado / toast ---------- */
#g-status{position:absolute;top:70px;left:50%;transform:translateX(-50%);z-index:60;padding:10px 18px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:0 12px 30px -10px rgba(0,0,0,.6)}
#g-status.ok{background:rgba(16,185,129,.95);color:#04231a}
#g-status.err{background:rgba(239,68,68,.95);color:#fff}

/* ---------- Modal de ingreso ---------- */
#g-join{position:absolute;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(800px 500px at 50% 25%,rgba(16,185,129,.16),transparent),rgba(226,234,244,.96);transition:opacity .4s}
#g-join.gone{opacity:0;pointer-events:none}
.g-join-card{width:min(460px,92vw);text-align:center;padding:38px 34px;background:var(--g-panel);border:1px solid var(--g-line);border-radius:22px;box-shadow:0 40px 100px -30px rgba(0,0,0,.7)}
.g-join-logo{width:62px;height:62px;margin:0 auto 18px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--g-accent),#047857);color:#04231a;font-size:26px}
.g-join-card h1{margin:0 0 10px;font-size:24px}
.g-join-card h1 strong{color:var(--g-accent)}
.g-join-card h1 span{color:var(--g-soft);font-weight:500}
.g-join-card p{color:var(--g-soft);font-size:14px;line-height:1.6;margin:0 0 22px}
#g-join-form{display:flex;gap:10px}
#g-join-name{flex:1;background:var(--g-bg2);border:1px solid var(--g-line);border-radius:12px;padding:13px 16px;color:var(--g-ink);outline:none;font-size:15px}
#g-join-name:focus{border-color:var(--g-accent)}
#g-join-form button{border:none;border-radius:12px;padding:13px 20px;background:var(--g-accent);color:#04231a;font-weight:700;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:8px}
#g-join-form button:hover{background:var(--g-accent2)}
.g-join-card small{display:block;margin-top:16px;color:var(--g-soft2);font-size:12px}

/* ---------- Tarjeta de formulario (Paso 1) ---------- */
.g-card-form{position:relative;overflow:hidden}
.g-card-form::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--g-accent),var(--g-blue))}
.g-step-tag{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:6px;background:rgba(16,185,129,.14);color:var(--g-accent);font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.03em}
#vt-form button{transition:.18s;box-shadow:0 6px 16px -8px rgba(16,185,129,.7)}
#vt-form button:hover{transform:translateY(-1px);box-shadow:0 10px 22px -8px rgba(16,185,129,.8)}
#vt-form button:active{transform:translateY(0)}

/* ---------- Tarjetas de seguimiento (Ventanilla) ---------- */
.g-track{position:relative;border-left:3px solid var(--g-track-accent,var(--g-accent));animation:gCardIn .32s ease both;transition:transform .15s,box-shadow .15s}
.g-track:hover{transform:translateY(-2px);box-shadow:0 12px 26px -16px rgba(15,32,55,.5)}
.g-track-sub i{margin-right:5px;color:var(--g-soft2)}
.g-track-open{margin-top:12px;width:100%;border:1px solid var(--g-line);background:transparent;color:var(--g-soft);border-radius:8px;padding:8px;font-size:12px;cursor:pointer;transition:.15s}
.g-track-open:hover{background:var(--g-accent);color:#04231a;border-color:var(--g-accent)}
.g-steps li i{transition:.25s}
.g-steps li.cur i{animation:gPulseStep 1.8s infinite}
@keyframes gPulseStep{0%,100%{box-shadow:0 0 0 3px rgba(16,185,129,.25)}50%{box-shadow:0 0 0 6px rgba(16,185,129,.08)}}
@keyframes gCardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ---------- Grupos de radicados por usuario ---------- */
#vt-others{display:flex;flex-direction:column;gap:18px;margin-top:22px}
.g-track-group{animation:gCardIn .35s ease both}
.g-grp-head{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--g-ink);margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--g-line);text-transform:none;letter-spacing:0}
.g-grp-head .g-pill{margin-left:auto}
.g-grp-av{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.g-grp-ico{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:rgba(16,185,129,.14);flex-shrink:0}

/* ---------- Footer ---------- */
#g-footer{height:var(--g-footer-h);flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(180deg,var(--g-bg),var(--g-bg2));border-top:1px solid var(--g-line);
  font-size:12px;color:var(--g-soft);z-index:25}
#g-footer i{color:var(--g-accent)}
#g-footer strong{color:var(--g-ink);font-weight:700}

/* ---------- Guía paso a paso (coach) ---------- */
#g-coach{position:absolute;left:0;right:0;bottom:calc(var(--g-footer-h) + 16px);z-index:70;display:flex;justify-content:center;pointer-events:none;padding:0 14px}
#g-coach[hidden]{display:none}
.g-coach-card{pointer-events:auto;position:relative;width:min(440px,94vw);background:var(--g-panel);border:1px solid var(--g-line);
  border-radius:18px;padding:20px 22px 18px;box-shadow:0 30px 70px -20px rgba(15,32,55,.55);animation:gCoachUp .35s cubic-bezier(.2,.9,.3,1.3)}
@keyframes gCoachUp{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.g-coach-progress{position:absolute;top:0;left:0;right:0;height:4px;border-radius:18px 18px 0 0;background:var(--g-bg2);overflow:hidden}
.g-coach-progress span{display:block;height:100%;width:20%;background:linear-gradient(90deg,var(--g-accent),var(--g-blue));transition:width .35s ease}
.g-coach-x{position:absolute;top:12px;right:12px;width:28px;height:28px;border:none;background:var(--g-bg2);color:var(--g-soft);border-radius:8px;cursor:pointer}
.g-coach-x:hover{background:var(--g-line);color:var(--g-ink)}
.g-coach-step{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g-accent);margin-top:4px}
.g-coach-card h4{margin:6px 0 8px;font-size:17px;display:flex;align-items:center;gap:9px}
.g-coach-card h4 i{color:var(--g-accent)}
.g-coach-card p{margin:0 0 16px;font-size:13.5px;line-height:1.6;color:var(--g-soft)}
.g-coach-card p b{color:var(--g-ink)}
.g-coach-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}
.g-coach-ghost{border:1px solid var(--g-line);background:transparent;color:var(--g-soft);border-radius:10px;padding:9px 14px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.15s}
.g-coach-ghost:hover:not(:disabled){background:var(--g-bg2);color:var(--g-ink)}
.g-coach-ghost:disabled{opacity:.4;cursor:not-allowed}
.g-coach-go{border:none;background:var(--g-accent);color:#04231a;border-radius:10px;padding:10px 18px;font-size:13.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:7px;box-shadow:0 8px 18px -8px rgba(16,185,129,.8);transition:.15s}
.g-coach-go:hover{background:var(--g-accent2);transform:translateY(-1px)}

/* Resalte del elemento objetivo del paso */
.g-coach-hl{position:relative;z-index:65;border-radius:14px;
  box-shadow:0 0 0 3px var(--g-accent),0 0 0 9px rgba(16,185,129,.22),0 18px 50px -16px rgba(16,185,129,.55)!important;
  animation:gHlPulse 1.8s ease-in-out infinite}
@keyframes gHlPulse{0%,100%{box-shadow:0 0 0 3px var(--g-accent),0 0 0 9px rgba(16,185,129,.22)}50%{box-shadow:0 0 0 3px var(--g-accent),0 0 0 14px rgba(16,185,129,.05)}}

/* ---------- Animaciones de vistas y KPIs ---------- */
.g-view.active{animation:gViewIn .28s ease}
@keyframes gViewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.g-kpi{transition:transform .15s,box-shadow .15s}
.g-kpi:hover{transform:translateY(-3px);box-shadow:0 16px 32px -20px rgba(15,32,55,.6)}
.g-tab{position:relative}
.g-tab.active::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;border-radius:2px;background:var(--g-accent);animation:gTabIn .25s ease}
@keyframes gTabIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- Control de cursores ---------- */
#g-cur-ctl{display:flex;gap:4px;background:var(--g-panel2);border:1px solid var(--g-line);border-radius:10px;padding:3px}
#g-cur-ctl button{width:30px;height:30px;border:none;background:transparent;border-radius:7px;cursor:pointer;font-size:13px;transition:.15s;color:var(--g-soft2)}
#g-cur-ctl button.on{background:rgba(16,185,129,.16);color:var(--g-accent)}
#g-cur-ctl button.off{color:var(--g-soft2);opacity:.55;position:relative}
#g-cur-ctl button.off::after{content:"";position:absolute;left:5px;right:5px;top:50%;height:2px;background:currentColor;transform:rotate(-20deg);border-radius:2px}
#g-cur-ctl button:hover{background:var(--g-bg2)}
#g-cursors.no-names .g-cursor span{display:none}
@media (max-width:760px){#g-cur-ctl{display:none}}

/* ---------- Tarjetas de radicado con color/figuras ---------- */
.g-track{overflow:hidden}
.g-track-wm{position:absolute;right:-10px;top:-6px;font-size:66px;opacity:.07;transform:rotate(-12deg);pointer-events:none}
.g-track-head{gap:10px}
.g-track-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;flex-shrink:0;box-shadow:0 4px 10px -4px rgba(15,32,55,.5)}
.g-track-id{display:flex;flex-direction:column;line-height:1.2}
.g-track-id strong{font-size:14px}
.g-track-id small{color:var(--g-soft);font-size:12px}
.g-track-prog{height:6px;background:var(--g-bg2);border-radius:999px;overflow:hidden;margin:12px 0 14px}
.g-track-prog span{display:block;height:100%;border-radius:999px;transition:width .5s ease}

/* ---------- Expediente: creador ---------- */
.g-doc-creator{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;color:var(--g-soft)}
.g-doc-creator i{color:var(--g-accent)}

/* ---------- Expediente: stepper que se llena ---------- */
.g-stepper{position:relative;padding:20px 24px 6px}
.g-sp-track{position:absolute;left:calc(24px + 18px);right:calc(24px + 18px);top:38px;height:4px;background:var(--g-bg2);border-radius:999px;overflow:hidden}
.g-sp-fill{display:block;height:100%;border-radius:999px;transition:width .55s cubic-bezier(.4,1,.4,1)}
.g-sp-nodes{list-style:none;display:flex;margin:0;padding:0}
.g-sp-nodes li{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;z-index:1}
.g-sp-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--g-panel);border:2px solid var(--g-line);color:var(--g-soft2);font-size:13px;transition:.3s}
.g-sp-nodes li.done .g-sp-dot{background:var(--c);border-color:var(--c);color:#fff;box-shadow:0 6px 14px -6px var(--c)}
.g-sp-nodes li.cur .g-sp-dot{transform:scale(1.12);animation:gSpPulse 1.8s infinite}
@keyframes gSpPulse{0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,.35)}50%{box-shadow:0 0 0 8px rgba(16,185,129,0)}}
.g-sp-lbl{font-size:11px;color:var(--g-soft2);text-align:center;max-width:80px}
.g-sp-nodes li.done .g-sp-lbl{color:var(--g-ink);font-weight:600}

/* ---------- Expediente: trazabilidad ---------- */
.g-trace{display:flex;flex-direction:column;gap:2px;max-height:230px;overflow:auto;margin-bottom:18px;padding-left:4px}
.g-trace-item{display:flex;gap:11px;position:relative;padding:5px 0}
.g-trace-item::before{content:"";position:absolute;left:12px;top:26px;bottom:-5px;width:2px;background:var(--g-line)}
.g-trace-item:last-child::before{display:none}
.g-trace-ico{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10.5px;flex-shrink:0;z-index:1;box-shadow:0 0 0 3px var(--g-panel)}
.g-trace-body{flex:1;min-width:0}
.g-trace-t{font-size:13px;line-height:1.4;color:var(--g-ink)}
.g-trace-body small{color:var(--g-soft2);font-size:11px}

/* ---------- Tablero de control (dashboard) ---------- */
.g-dash-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}
.g-dash-head h2{margin:0;font-size:20px;display:flex;align-items:center;gap:9px}
.g-dash-head h2 i{color:var(--g-accent)}
.g-dash-head p{margin:4px 0 0}
.g-dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}
.g-chart-card{animation:gCardIn .4s ease both}
.g-chart-card h3{margin:0 0 6px}
.g-chart-wide{grid-column:span 3}
.g-chart{min-height:250px}
.g-feed-card h3{margin:0 0 8px}
@media (max-width:1050px){.g-dash-grid{grid-template-columns:1fr 1fr}.g-chart-wide{grid-column:span 2}}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  #v-ventanilla{grid-template-columns:1fr}
  #v-expediente{grid-template-columns:1fr;overflow:auto}
  .g-explist{max-height:200px}
  .g-sala-grid{grid-template-columns:1fr}
  #g-tabs .g-tab span,.g-tab{font-size:12.5px}
  .g-dash-grid,.g-chart-wide{grid-template-columns:1fr;grid-column:auto}
  .g-sp-lbl{font-size:9.5px}
}
