/* =========================================================================
   hismart Pretriage · shell de la plataforma (tema oscuro, denso)
   Contrato de uso: ver la cabecera de shell.js
   ========================================================================= */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");

:root{
  --pt-bg:#0e0e10;
  --pt-bg-side:#111113;
  --pt-bg-elev:#151518;
  --pt-bg-elev2:#1a1a1e;
  --pt-bg-hover:#1c1c20;
  --pt-borde:#222226;
  --pt-borde-fuerte:#2e2e34;
  --pt-texto:#ececef;
  --pt-texto-2:#c4c4cb;
  --pt-muted:#8b8b93;
  --pt-faint:#5d5d66;
  --pt-acento:#00DADC;
  --pt-acento-tinte:rgba(0,218,220,.10);
  --pt-acento-tinte-2:rgba(0,218,220,.18);
  --pt-acento-borde:rgba(0,218,220,.35);
  --pt-acento-texto:#5ff0f1;
  --pt-ok:#3ecf8e;
  --pt-ok-tinte:rgba(62,207,142,.12);
  --pt-error:#f26d6d;
  --pt-error-tinte:rgba(242,109,109,.12);
  --pt-aviso:#f5b84a;
  --pt-aviso-tinte:rgba(245,184,74,.12);
  --pt-azul:#7b8cff;
  --pt-azul-tinte:rgba(123,140,255,.13);
  --pt-radio:8px;
  --pt-radio-sm:6px;
  --pt-side-w:216px;
  --pt-side-w-min:56px;
  --pt-barra-h:48px;
  --pt-font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --pt-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--pt-bg);color:var(--pt-texto);font:13px/1.5 var(--pt-font);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-feature-settings:"cv11","ss01"}
a{color:var(--pt-acento-texto);text-decoration:none}
a:hover{text-decoration:underline}
::selection{background:var(--pt-acento-tinte-2)}
svg.pt-i{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* ---------- estructura ---------- */
#pt-shell{display:none}
.pt-app{display:flex;min-height:100vh;background:var(--pt-bg);color:var(--pt-texto);font:13px/1.5 var(--pt-font)}
.pt-side{position:fixed;inset:0 auto 0 0;width:var(--pt-side-w);background:var(--pt-bg-side);border-right:1px solid var(--pt-borde);
  display:flex;flex-direction:column;z-index:40;transition:width .16s ease, transform .18s ease}
.pt-main{flex:1;min-width:0;margin-left:var(--pt-side-w);display:flex;flex-direction:column;min-height:100vh;transition:margin-left .16s ease}
.pt-barra{position:sticky;top:0;z-index:30;height:var(--pt-barra-h);display:flex;align-items:center;gap:10px;padding:0 16px;
  background:rgba(14,14,16,.92);backdrop-filter:saturate(1.2) blur(6px);border-bottom:1px solid var(--pt-borde)}
.pt-barra h1{margin:0;font-size:14px;font-weight:600;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-barra .pt-barra-sep{width:1px;height:16px;background:var(--pt-borde-fuerte)}
.pt-barra .pt-barra-acc{margin-left:auto;display:flex;align-items:center;gap:8px}
.pt-contenido{flex:1;min-width:0;padding:24px 28px 48px}
.pt-contenido.pt-completo{padding:0}
.pt-ancho{max-width:1180px;margin:0 auto}
.pt-angosto{max-width:760px;margin:0 auto}

/* ---------- sidebar ---------- */
.pt-side-cab{height:var(--pt-barra-h);display:flex;align-items:center;gap:8px;padding:0 10px 0 14px;flex:none}
.pt-logo{display:flex;align-items:baseline;gap:7px;color:var(--pt-texto);text-decoration:none!important;min-width:0}
.pt-logo .pt-marca{font:700 17px/1 var(--pt-font);letter-spacing:-.03em;color:#fff}
.pt-logo .pt-marca i{font-style:normal;color:var(--pt-acento)}
.pt-logo .pt-tag{font:500 10.5px/1 var(--pt-mono);color:var(--pt-muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.pt-logo-m{display:none;width:26px;height:26px;border-radius:7px;background:var(--pt-acento-tinte);border:1px solid var(--pt-acento-borde);
  color:var(--pt-acento);font:700 14px/24px var(--pt-font);text-align:center}
.pt-side-cab .pt-btn-icono{margin-left:auto}
.pt-org{margin:4px 10px 8px;display:flex;align-items:center;gap:9px;padding:6px 8px;border:1px solid var(--pt-borde);border-radius:var(--pt-radio);
  background:var(--pt-bg-elev);cursor:pointer;color:var(--pt-texto);text-align:left;font:inherit;width:calc(100% - 20px)}
.pt-org:hover{border-color:var(--pt-borde-fuerte);background:var(--pt-bg-hover)}
.pt-avatar{width:24px;height:24px;border-radius:6px;flex:none;display:grid;place-items:center;font:600 11px/1 var(--pt-font);
  background:#23232a;color:var(--pt-texto-2);border:1px solid var(--pt-borde-fuerte)}
.pt-org .pt-org-txt{min-width:0;flex:1;line-height:1.25}
.pt-org .pt-org-txt b{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-org .pt-org-txt span{display:block;font-size:11px;color:var(--pt-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-org > svg{color:var(--pt-muted)}
.pt-buscar{margin:0 10px 6px;display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border:1px solid var(--pt-borde);border-radius:var(--pt-radio-sm);
  background:transparent;color:var(--pt-muted);font:inherit;font-size:12.5px;cursor:pointer;width:calc(100% - 20px);text-align:left}
.pt-buscar:hover{border-color:var(--pt-borde-fuerte);color:var(--pt-texto-2)}
.pt-buscar span{flex:1}
.pt-kbd{font:500 10.5px/1 var(--pt-mono);color:var(--pt-muted);border:1px solid var(--pt-borde-fuerte);border-radius:4px;padding:2px 5px;background:var(--pt-bg-elev)}
.pt-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 8px 12px;scrollbar-width:thin;scrollbar-color:#2a2a30 transparent}
.pt-nav-sec{margin:14px 8px 5px;font:500 10px/1 var(--pt-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--pt-faint);white-space:nowrap}
.pt-nav-sec:first-child{margin-top:6px}
.pt-nav a{display:flex;align-items:center;gap:9px;height:30px;padding:0 8px;border-radius:var(--pt-radio-sm);color:var(--pt-texto-2);
  font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap;position:relative}
.pt-nav a svg{color:var(--pt-muted)}
.pt-nav a:hover{background:var(--pt-bg-hover);color:var(--pt-texto)}
.pt-nav a:hover svg{color:var(--pt-texto-2)}
.pt-nav a.pt-activo{background:var(--pt-acento-tinte);color:#fff;font-weight:600}
.pt-nav a.pt-activo svg{color:var(--pt-acento)}
.pt-nav a .pt-nav-txt{flex:1;overflow:hidden;text-overflow:ellipsis}
.pt-nav a[hidden]{display:none}
.pt-pie{flex:none;margin:8px 10px 12px;padding:10px;border:1px solid var(--pt-borde);border-radius:var(--pt-radio);background:var(--pt-bg-elev)}
.pt-pie .pt-pie-ent{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600}
.pt-pie .pt-punto{width:7px;height:7px;border-radius:50%;background:var(--pt-acento);box-shadow:0 0 0 3px var(--pt-acento-tinte)}
.pt-pie p{margin:4px 0 9px;color:var(--pt-muted);font-size:11.5px;line-height:1.4}
.pt-pie .pt-btn{width:100%;justify-content:center}
.pt-velo{display:none}

/* colapsado (escritorio) */
.pt-colapsado .pt-side{width:var(--pt-side-w-min)}
.pt-colapsado .pt-main{margin-left:var(--pt-side-w-min)}
.pt-colapsado .pt-logo .pt-marca,.pt-colapsado .pt-logo .pt-tag,.pt-colapsado .pt-org .pt-org-txt,.pt-colapsado .pt-org > svg,
.pt-colapsado .pt-buscar span,.pt-colapsado .pt-buscar .pt-kbd,.pt-colapsado .pt-nav-sec,.pt-colapsado .pt-nav-txt,
.pt-colapsado .pt-nav .pt-badge,.pt-colapsado .pt-pie p,.pt-colapsado .pt-pie .pt-pie-ent span,.pt-colapsado .pt-pie .pt-btn span{display:none}
.pt-colapsado .pt-logo-m{display:block}
.pt-colapsado .pt-side-cab{flex-direction:column;justify-content:center;height:auto;padding:10px 0;gap:8px}
.pt-colapsado .pt-side-cab .pt-btn-icono{margin:0}
.pt-colapsado .pt-org{justify-content:center;padding:6px 0;border-color:transparent;background:transparent}
.pt-colapsado .pt-buscar{justify-content:center;padding:0}
.pt-colapsado .pt-nav a{justify-content:center;padding:0}
.pt-colapsado .pt-nav-sec{display:block;height:1px;margin:10px 6px;background:var(--pt-borde);font-size:0}
.pt-colapsado .pt-pie{padding:6px;border-color:transparent;background:transparent}
.pt-colapsado .pt-pie .pt-pie-ent{justify-content:center;margin-bottom:8px}
.pt-colapsado .pt-pie .pt-btn{padding:0}

/* movil: sidebar como cajón */
.pt-solo-movil{display:none!important}
@media (max-width: 820px){
  .pt-side{width:264px;transform:translateX(-100%);box-shadow:none}
  .pt-main,.pt-colapsado .pt-main{margin-left:0}
  .pt-colapsado .pt-side{width:264px}
  .pt-cajon-abierto .pt-side{transform:none;box-shadow:0 0 0 1px var(--pt-borde),0 20px 60px rgba(0,0,0,.6)}
  .pt-cajon-abierto .pt-velo{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:35}
  .pt-solo-movil{display:inline-flex!important}
  .pt-solo-escritorio{display:none!important}
  .pt-contenido{padding:16px 16px 40px}
  .pt-barra{padding:0 12px}
  /* el colapso de escritorio no aplica en movil */
  .pt-colapsado .pt-logo .pt-marca,.pt-colapsado .pt-logo .pt-tag,.pt-colapsado .pt-org .pt-org-txt,.pt-colapsado .pt-org > svg,
  .pt-colapsado .pt-buscar span,.pt-colapsado .pt-buscar .pt-kbd,.pt-colapsado .pt-nav-txt,.pt-colapsado .pt-nav .pt-badge,
  .pt-colapsado .pt-pie p,.pt-colapsado .pt-pie .pt-pie-ent span,.pt-colapsado .pt-pie .pt-btn span{display:revert}
}

/* ---------- botones ---------- */
.pt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 11px;border-radius:var(--pt-radio-sm);
  border:1px solid var(--pt-borde-fuerte);background:var(--pt-bg-elev2);color:var(--pt-texto);font:500 12.5px/1 var(--pt-font);
  cursor:pointer;white-space:nowrap;text-decoration:none!important;transition:border-color .12s,background .12s}
.pt-btn:hover{border-color:#3d3d45;background:#202025}
.pt-btn:focus-visible,.pt-input:focus-visible,.pt-select:focus-visible{outline:2px solid var(--pt-acento-borde);outline-offset:1px}
.pt-btn:disabled{opacity:.45;cursor:not-allowed}
.pt-btn svg.pt-i{width:14px;height:14px}
.pt-btn-primario{background:var(--pt-acento);border-color:var(--pt-acento);color:#03191a;font-weight:600}
.pt-btn-primario:hover{background:#3ae6e8;border-color:#3ae6e8}
.pt-btn-peligro{color:var(--pt-error);border-color:rgba(242,109,109,.35);background:transparent}
.pt-btn-peligro:hover{background:var(--pt-error-tinte);border-color:rgba(242,109,109,.55)}
.pt-btn-fantasma{background:transparent;border-color:transparent;color:var(--pt-texto-2)}
.pt-btn-fantasma:hover{background:var(--pt-bg-hover);border-color:transparent;color:var(--pt-texto)}
.pt-btn-sm{height:26px;padding:0 8px;font-size:12px}
.pt-btn-icono{width:30px;padding:0;background:transparent;border-color:transparent;color:var(--pt-muted)}
.pt-btn-icono:hover{background:var(--pt-bg-hover);border-color:transparent;color:var(--pt-texto)}
.pt-btn-icono svg.pt-i{width:16px;height:16px}
.pt-btn.pt-on{background:var(--pt-acento-tinte);border-color:var(--pt-acento-borde);color:var(--pt-acento-texto)}

/* ---------- formularios ---------- */
.pt-input,.pt-select,.pt-textarea{height:30px;padding:0 9px;border-radius:var(--pt-radio-sm);border:1px solid var(--pt-borde-fuerte);
  background:var(--pt-bg);color:var(--pt-texto);font:13px var(--pt-font);min-width:0}
.pt-input:disabled{color:var(--pt-muted);background:var(--pt-bg-elev);cursor:not-allowed}
.pt-textarea{height:auto;padding:8px 9px;resize:vertical;line-height:1.45}
.pt-input::placeholder,.pt-textarea::placeholder{color:var(--pt-faint)}
.pt-input:focus,.pt-select:focus,.pt-textarea:focus{border-color:var(--pt-acento-borde);outline:none;box-shadow:0 0 0 3px var(--pt-acento-tinte)}
.pt-select{padding-right:26px;appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8b93' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 8px center}
.pt-select option{background:#151518}
input[type=date].pt-input{color-scheme:dark}
.pt-campo{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.pt-campo > label,.pt-etiqueta{font-size:12px;font-weight:500;color:var(--pt-texto-2)}
.pt-campo .pt-ayuda{font-size:11.5px;color:var(--pt-muted)}
.pt-check{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--pt-texto-2);cursor:pointer;user-select:none}
.pt-check input{accent-color:var(--pt-acento);margin:0}
.pt-buscador{position:relative;display:flex;align-items:center}
.pt-buscador svg.pt-i{position:absolute;left:8px;width:14px;height:14px;color:var(--pt-muted);pointer-events:none}
.pt-buscador .pt-input{padding-left:28px;width:100%}

/* ---------- utilidades ---------- */
.pt-fila{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pt-fila-fin{margin-left:auto}
.pt-muted{color:var(--pt-muted)}
.pt-faint{color:var(--pt-faint)}
.pt-mono{font-family:var(--pt-mono);font-size:12px}
.pt-sm{font-size:12px}
.pt-nowrap{white-space:nowrap}
.pt-ok-txt{color:var(--pt-ok)}
.pt-error-txt{color:var(--pt-error)}
.pt-sep{height:1px;background:var(--pt-borde);margin:20px 0;border:0}
.pt-h2{margin:0 0 4px;font-size:15px;font-weight:600;letter-spacing:-.01em}
.pt-h3{margin:0 0 8px;font-size:13px;font-weight:600}
.pt-sub{margin:0 0 16px;color:var(--pt-muted);font-size:12.5px;max-width:720px}
.pt-eyebrow{font:500 10px/1 var(--pt-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--pt-faint)}
.pt-cabecera{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.pt-cabecera > div:first-child{flex:1;min-width:220px}
.pt-cabecera .pt-sub{margin:0}

/* ---------- badges ---------- */
.pt-badge{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:999px;font:500 10.5px/1 var(--pt-font);
  border:1px solid var(--pt-borde-fuerte);color:var(--pt-texto-2);background:var(--pt-bg-elev2);white-space:nowrap;vertical-align:middle}
.pt-badge-acento{color:var(--pt-acento-texto);border-color:var(--pt-acento-borde);background:var(--pt-acento-tinte)}
.pt-badge-ok{color:var(--pt-ok);border-color:rgba(62,207,142,.3);background:var(--pt-ok-tinte)}
.pt-badge-error{color:var(--pt-error);border-color:rgba(242,109,109,.3);background:var(--pt-error-tinte)}
.pt-badge-aviso{color:var(--pt-aviso);border-color:rgba(245,184,74,.3);background:var(--pt-aviso-tinte)}
.pt-badge-azul{color:var(--pt-azul);border-color:rgba(123,140,255,.3);background:var(--pt-azul-tinte)}
.pt-badge-neutro{color:var(--pt-muted)}
.pt-badge .pt-dot{width:5px;height:5px;border-radius:50%;background:currentColor}

/* ---------- tarjetas y paneles ---------- */
.pt-tarjeta{border:1px solid var(--pt-borde);border-radius:var(--pt-radio);background:var(--pt-bg-elev);padding:14px 16px}
.pt-tarjeta + .pt-tarjeta{margin-top:12px}
.pt-tarjeta-cab{display:flex;align-items:center;gap:8px;margin:-14px -16px 12px;padding:10px 16px;border-bottom:1px solid var(--pt-borde)}
.pt-tarjeta-cab h3{margin:0;font-size:13px;font-weight:600}
.pt-acciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pt-accion{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--pt-borde);border-radius:var(--pt-radio);background:var(--pt-bg-elev);
  color:var(--pt-texto);text-decoration:none!important;transition:border-color .14s,background .14s,transform .14s}
.pt-accion:hover{border-color:var(--pt-acento-borde);background:#17171b;transform:translateY(-1px)}
.pt-accion .pt-accion-i{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:7px;border:1px solid var(--pt-borde-fuerte);background:var(--pt-bg-elev2);color:var(--pt-acento)}
.pt-accion b{display:block;font-size:13px;font-weight:600;margin-bottom:2px}
.pt-accion span{display:block;font-size:12px;color:var(--pt-muted);line-height:1.4}
@media (max-width:560px){.pt-acciones{grid-template-columns:1fr}}

/* tiles de resumen */
.pt-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.pt-tile{border:1px solid var(--pt-borde);border-radius:var(--pt-radio);background:var(--pt-bg-elev);padding:11px 14px}
.pt-tile .pt-tile-n{font:600 20px/1.2 var(--pt-font);letter-spacing:-.02em;margin-top:6px}
.pt-tile .pt-tile-l{font-size:11.5px;color:var(--pt-muted);display:flex;align-items:center;gap:6px}
.pt-tile .pt-tile-l svg.pt-i{width:13px;height:13px}
.pt-tile.pt-tile-error .pt-tile-n{color:var(--pt-error)}

/* ---------- tablas ---------- */
.pt-tabla-caja{border:1px solid var(--pt-borde);border-radius:var(--pt-radio);overflow:auto;background:var(--pt-bg)}
.pt-tabla{width:100%;border-collapse:collapse;font-size:12.5px}
.pt-tabla th{position:sticky;top:0;z-index:1;background:var(--pt-bg-side);text-align:left;font-weight:500;font-size:11.5px;color:var(--pt-muted);
  padding:0 12px;height:34px;border-bottom:1px solid var(--pt-borde);white-space:nowrap}
.pt-tabla td{padding:0 12px;height:38px;border-bottom:1px solid var(--pt-borde);vertical-align:middle;color:var(--pt-texto-2)}
.pt-tabla tbody tr:last-child td{border-bottom:0}
.pt-tabla tbody tr:hover td{background:#131316}
.pt-tabla tr.pt-click{cursor:pointer}
.pt-tabla tr.pt-sel td{background:var(--pt-acento-tinte)!important}
.pt-tabla td.pt-num,.pt-tabla th.pt-num{text-align:right}
.pt-tabla td b{color:var(--pt-texto);font-weight:500}
.pt-pag{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:10px 2px;color:var(--pt-muted);font-size:12px}

/* tabs */
.pt-tabs{display:flex;gap:2px;border-bottom:1px solid var(--pt-borde);margin-bottom:16px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.pt-tabs button{height:34px;padding:0 12px;border:0;background:none;color:var(--pt-muted);font:500 12.5px var(--pt-font);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.pt-tabs button:hover{color:var(--pt-texto)}
.pt-tabs button.pt-on{color:var(--pt-texto);border-bottom-color:var(--pt-acento)}

/* codigo con copiar */
.pt-codigo{position:relative;border:1px solid var(--pt-borde);border-radius:var(--pt-radio);background:#0a0a0c;margin:6px 0 12px}
.pt-codigo pre{margin:0;padding:12px 44px 12px 14px;font:12px/1.6 var(--pt-mono);color:#d6d6dc;overflow-x:auto;white-space:pre}
.pt-codigo .pt-copiar{position:absolute;top:6px;right:6px}
.pt-codigo-cab{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--pt-borde);font:500 11px var(--pt-mono);color:var(--pt-muted)}
.pt-codigo-cab + pre{padding-right:14px}
.pt-codigo-cab .pt-copiar{position:static;margin-left:auto}

/* avisos */
.pt-aviso{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--pt-borde-fuerte);border-radius:var(--pt-radio);
  background:var(--pt-bg-elev);font-size:12.5px;color:var(--pt-texto-2);margin-bottom:12px}
.pt-aviso svg.pt-i{margin-top:1px;color:var(--pt-muted)}
.pt-aviso-acento{border-color:var(--pt-acento-borde);background:var(--pt-acento-tinte)}
.pt-aviso-acento svg.pt-i{color:var(--pt-acento)}
.pt-aviso-aviso{border-color:rgba(245,184,74,.35);background:var(--pt-aviso-tinte)}
.pt-aviso-aviso svg.pt-i{color:var(--pt-aviso)}
.pt-aviso-error{border-color:rgba(242,109,109,.35);background:var(--pt-error-tinte)}
.pt-aviso-error svg.pt-i{color:var(--pt-error)}

/* estado vacio */
.pt-vacio{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 16px;color:var(--pt-muted)}
.pt-vacio .pt-vacio-i,.pt-icono-acento{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;
  background:var(--pt-acento-tinte);border:1px solid var(--pt-acento-borde);color:var(--pt-acento);margin-bottom:14px}
.pt-vacio .pt-vacio-i svg.pt-i,.pt-icono-acento svg.pt-i{width:20px;height:20px}
.pt-vacio b{color:var(--pt-texto);font-size:14px;font-weight:600;margin-bottom:4px}
.pt-vacio p{margin:0 0 14px;font-size:12.5px;max-width:380px}

/* spinner y esqueleto */
.pt-spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--pt-borde-fuerte);border-top-color:var(--pt-acento);animation:pt-gira .7s linear infinite;display:inline-block;vertical-align:middle}
@keyframes pt-gira{to{transform:rotate(360deg)}}
.pt-esq{background:linear-gradient(90deg,#17171a,#1e1e22,#17171a);background-size:200% 100%;animation:pt-brillo 1.2s ease infinite;border-radius:4px;height:12px}
@keyframes pt-brillo{to{background-position:-200% 0}}

/* ---------- toast ---------- */
.pt-toasts{position:fixed;right:16px;bottom:16px;z-index:100;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}
.pt-toast{pointer-events:auto;display:flex;align-items:center;gap:9px;max-width:380px;padding:9px 12px;border-radius:var(--pt-radio);
  background:#1b1b1f;border:1px solid var(--pt-borde-fuerte);color:var(--pt-texto);font-size:12.5px;box-shadow:0 10px 30px rgba(0,0,0,.45);
  animation:pt-entra .16s ease}
.pt-toast svg.pt-i{color:var(--pt-acento)}
.pt-toast.pt-toast-error svg.pt-i{color:var(--pt-error)}
.pt-toast.pt-toast-error{border-color:rgba(242,109,109,.4)}
@keyframes pt-entra{from{opacity:0;transform:translateY(6px)}}
@media (max-width:820px){.pt-toasts{left:16px;right:16px;align-items:stretch}.pt-toast{max-width:none}}

/* ---------- modal y cajon lateral ---------- */
.pt-capa{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;animation:pt-fade .12s ease}
@keyframes pt-fade{from{opacity:0}}
.pt-modal{width:100%;max-width:480px;background:#141417;border:1px solid var(--pt-borde-fuerte);border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6);
  display:flex;flex-direction:column;max-height:76vh}
.pt-modal-cab{display:flex;align-items:center;gap:8px;padding:12px 14px 12px 16px;border-bottom:1px solid var(--pt-borde)}
.pt-modal-cab h2{margin:0;font-size:14px;font-weight:600;flex:1}
.pt-modal-cuerpo{padding:16px;overflow:auto;color:var(--pt-texto-2)}
.pt-modal-pie{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--pt-borde)}
.pt-capa.pt-capa-lado{padding:0;justify-content:flex-end;align-items:stretch;background:rgba(0,0,0,.45)}
.pt-lado{width:min(560px,100%);height:100%;background:#121215;border-left:1px solid var(--pt-borde-fuerte);display:flex;flex-direction:column;animation:pt-desliza .18s ease}
@keyframes pt-desliza{from{transform:translateX(24px);opacity:.4}}
.pt-lado .pt-modal-cuerpo{flex:1}
.pt-dl{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;margin:0 0 14px;font-size:12.5px}
.pt-dl dt{color:var(--pt-muted)}
.pt-dl dd{margin:0;color:var(--pt-texto);word-break:break-word}

/* paleta de comandos */
.pt-paleta{max-width:540px}
.pt-paleta .pt-paleta-in{display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--pt-borde)}
.pt-paleta .pt-paleta-in input{flex:1;height:46px;border:0;background:none;color:var(--pt-texto);font:14px var(--pt-font);outline:none}
.pt-paleta ul{list-style:none;margin:0;padding:6px;overflow:auto;max-height:50vh}
.pt-paleta li a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--pt-radio-sm);color:var(--pt-texto-2);text-decoration:none}
.pt-paleta li a small{margin-left:auto;color:var(--pt-faint);font:500 10px var(--pt-mono);text-transform:uppercase;letter-spacing:.1em}
.pt-paleta li a.pt-on,.pt-paleta li a:hover{background:var(--pt-acento-tinte);color:#fff}
.pt-paleta li a.pt-on svg{color:var(--pt-acento)}

/* menu contextual */
.pt-menu{position:fixed;z-index:90;min-width:200px;background:#17171b;border:1px solid var(--pt-borde-fuerte);border-radius:var(--pt-radio);padding:4px;box-shadow:0 14px 40px rgba(0,0,0,.5)}
.pt-menu .pt-menu-cab{padding:8px 10px 8px;border-bottom:1px solid var(--pt-borde);margin-bottom:4px;font-size:12px}
.pt-menu .pt-menu-cab b{display:block;color:var(--pt-texto);font-weight:600}
.pt-menu .pt-menu-cab span{color:var(--pt-muted)}
.pt-menu a,.pt-menu button{display:flex;width:100%;align-items:center;gap:8px;padding:7px 10px;border:0;background:none;border-radius:5px;color:var(--pt-texto-2);font:13px var(--pt-font);text-decoration:none;cursor:pointer;text-align:left}
.pt-menu a:hover,.pt-menu button:hover{background:var(--pt-bg-hover);color:var(--pt-texto)}

/* JSON */
.pt-json{margin:0;padding:12px 14px;border:1px solid var(--pt-borde);border-radius:var(--pt-radio);background:#0a0a0c;font:12px/1.6 var(--pt-mono);color:#d6d6dc;overflow:auto;white-space:pre-wrap;word-break:break-word}
.pt-json .k{color:#8fb8ff}.pt-json .s{color:#9fe3b4}.pt-json .n{color:#f5b84a}.pt-json .b{color:var(--pt-acento-texto)}.pt-json .z{color:var(--pt-faint)}
