/* Riesgo-IA · design system (subconjunto R1, derivado del mockup validado).
   Tema oscuro por defecto + tema claro segun guia-estilo v1.0. */
:root{
  --brand-700:#6b46c1; --brand-600:#7c3aed; --brand-500:#8b5cf6; --brand-400:#a78bfa;
  --brand-300:#c4b5fd; --brand-200:#ddd6fe;
  --cyan:#22d3ee; --lime:#84cc16; --amber:#f59e0b; --rose:#f43f5e;
  --bg-deep:#07071a; --bg-base:#0c0c24; --bg-raised:#14142e; --bg-card:#1a1a38;
  --line-soft:rgba(167,139,250,0.12); --line-med:rgba(167,139,250,0.22); --line-strong:rgba(167,139,250,0.40);
  --ink-100:#f5f3ff; --ink-200:#e9e6ff; --ink-300:#c7c3e6; --ink-400:#8e8ab0; --ink-500:#5d5a7a;
  --font-display:"Space Grotesk","Inter",system-ui,sans-serif;
  --font-body:"Inter",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
  --grad-brand:linear-gradient(135deg,#7c3aed 0%,#6b46c1 50%,#4c1d95 100%);
  --r-sm:6px; --r-md:10px; --r-lg:16px; --r-full:999px;
}
*,*::before,*::after{box-sizing:border-box;}
body{margin:0; font-family:var(--font-body); font-size:14px; line-height:1.55; color:var(--ink-300); background:var(--bg-deep);}
h1,h2,h3,h4,h5{font-family:var(--font-display); color:var(--ink-100); margin:0; letter-spacing:-0.01em;}
a{color:var(--brand-300); text-decoration:none;}
code,.mono{font-family:var(--font-mono); font-size:12px; color:var(--ink-400);}

.shell{display:grid; grid-template-columns:236px 1fr; min-height:100vh;}
.sidebar{background:var(--bg-base); border-right:1px solid var(--line-soft); padding:18px 12px; display:flex; flex-direction:column; gap:2px; position:sticky; top:0; height:100vh; overflow-y:auto;}
.logo{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; color:var(--ink-100); font-size:17px; padding:4px 10px 16px;}
.logo .dot{width:10px; height:10px; border-radius:var(--r-full); background:var(--grad-brand); box-shadow:0 0 12px var(--brand-500);}
.logo small{font-family:var(--font-mono); font-size:10px; color:var(--ink-400); font-weight:500;}
.nav-sep{font-family:var(--font-mono); font-size:9px; color:var(--ink-500); letter-spacing:.14em; text-transform:uppercase; padding:14px 12px 5px;}
.nav-item{display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:var(--r-md); color:var(--ink-400); cursor:pointer; font-size:13.5px; border:1px solid transparent;}
.nav-item:hover{color:var(--ink-200); background:rgba(124,58,237,0.06);}
.nav-item.is-active{color:var(--ink-100); background:rgba(124,58,237,0.14); border-color:var(--line-med);}
.nav-item .ico{width:18px; text-align:center; flex-shrink:0;}
.nav-item.is-soon{opacity:.4; pointer-events:none;}
.nav-item .pill{margin-left:auto; font-family:var(--font-mono); font-size:10px; padding:1px 7px; border-radius:var(--r-full); background:rgba(167,139,250,0.1); color:var(--ink-400); border:1px solid var(--line-soft);}
.user-card{margin-top:auto; display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:var(--r-md); background:var(--bg-raised); border:1px solid var(--line-soft);}
.avatar{width:32px; height:32px; border-radius:var(--r-full); background:var(--grad-brand); display:grid; place-items:center; font-family:var(--font-display); font-weight:700; color:#fff; font-size:13px; flex-shrink:0;}
.user-card .nm{color:var(--ink-100); font-size:12.5px; font-weight:600; line-height:1.2;}
.user-card .rl{font-family:var(--font-mono); font-size:10px; color:var(--brand-300);}
.user-card form{margin-left:auto;}
.lnk-out{background:none; border:1px solid var(--line-soft); color:var(--ink-400); border-radius:var(--r-sm); padding:4px 8px; cursor:pointer; font-size:11px;}
.lnk-out:hover{color:var(--ink-100); border-color:var(--brand-400);}

.topbar{display:flex; align-items:center; gap:12px; padding:12px 26px; border-bottom:1px solid var(--line-soft); background:rgba(12,12,36,0.8); position:sticky; top:0; z-index:10;}
.faena-sel{display:flex; align-items:center; gap:8px; padding:8px 14px; border-radius:var(--r-full); background:var(--bg-card); border:1px solid var(--line-med); color:var(--ink-100); font-size:13px; font-weight:500;}
.faena-sel .ico{color:var(--brand-300);}
.top-actions{margin-left:auto; display:flex; align-items:center; gap:10px;}
.btn-copilot{display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:var(--r-full); background:rgba(34,211,238,0.10); border:1px solid rgba(34,211,238,0.35); color:var(--cyan); font-size:13px; cursor:pointer; font-weight:600; text-decoration:none;}
.btn-copilot:hover{background:rgba(34,211,238,0.18);}
body.theme-light .btn-copilot{background:#EEE9FE; border-color:#C9BDF9; color:#5B4DC9;}
.theme-toggle{display:flex; align-items:center; gap:7px; padding:9px 14px; border-radius:var(--r-full); background:var(--bg-card); border:1px solid var(--line-med); color:var(--ink-300); font-size:12px; cursor:pointer; font-family:var(--font-mono);}
.theme-toggle:hover{border-color:var(--brand-400); color:var(--ink-100);}
.content{padding:26px; max-width:1180px;}
.view-head{display:flex; align-items:flex-start; gap:14px; margin-bottom:20px; flex-wrap:wrap;}
.view-head h2{font-size:22px;}
.view-head .sub{font-size:13px; color:var(--ink-400); margin-top:3px;}
.view-head .spacer{flex:1;}

.btn{display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:13px; padding:10px 18px; border-radius:var(--r-full); border:1px solid transparent; cursor:pointer; font-family:var(--font-body); line-height:1;}
.btn-primary{background:var(--grad-brand); color:#fff;}
.btn-primary:hover{transform:translateY(-1px);}
.btn-secondary{background:transparent; color:var(--ink-100); border-color:var(--line-strong);}
.btn-secondary:hover{background:rgba(167,139,250,0.08);}
.btn-sm{padding:7px 14px; font-size:12.5px;}

.badge{display:inline-flex; align-items:center; gap:6px; padding:3px 9px; border-radius:var(--r-full); font-family:var(--font-mono); font-size:11px; border:1px solid transparent; white-space:nowrap;}
.badge::before{content:""; width:5px; height:5px; border-radius:var(--r-full); background:currentColor;}
.b-go{color:var(--lime); background:rgba(132,204,22,0.10); border-color:rgba(132,204,22,0.3);}
.b-risk{color:var(--amber); background:rgba(245,158,11,0.10); border-color:rgba(245,158,11,0.3);}
.b-nogo{color:var(--rose); background:rgba(244,63,94,0.10); border-color:rgba(244,63,94,0.3);}
.b-info{color:var(--cyan); background:rgba(34,211,238,0.10); border-color:rgba(34,211,238,0.3);}
.b-brand{color:var(--brand-300); background:rgba(124,58,237,0.10); border-color:rgba(124,58,237,0.3);}
.b-mute{color:var(--ink-300); background:rgba(167,139,250,0.05); border-color:var(--line-med);}

.tbl-wrap{border:1px solid var(--line-soft); border-radius:var(--r-lg); overflow:hidden; background:var(--bg-card);}
.tbl-bar{display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--line-soft); background:rgba(124,58,237,0.04); flex-wrap:wrap;}
.tbl-bar .title{font-family:var(--font-display); font-weight:600; font-size:14.5px; color:var(--ink-100); margin-right:auto;}
table.tbl{width:100%; border-collapse:collapse; font-size:13px;}
table.tbl th{font-family:var(--font-mono); font-weight:500; font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-400); text-align:left; padding:9px 12px; border-bottom:1px solid var(--line-med); background:var(--bg-raised);}
table.tbl td{padding:10px 12px; border-bottom:1px solid var(--line-soft); vertical-align:middle;}
table.tbl tr:last-child td{border-bottom:0;}
table.tbl tbody tr:hover td{background:rgba(124,58,237,0.05);}
.pname{color:var(--ink-100); font-weight:500;}
.tbl-foot{display:flex; justify-content:space-between; padding:10px 16px; font-family:var(--font-mono); font-size:11px; color:var(--ink-400); border-top:1px solid var(--line-soft);}

.card{background:var(--bg-card); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:18px 20px; margin-top:18px;}
.card h4{font-size:15px; margin-bottom:4px;}
.card .csub{font-family:var(--font-mono); font-size:10px; color:var(--ink-400); text-transform:uppercase; letter-spacing:.08em; display:block; margin-bottom:12px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:12.5px; color:var(--ink-200); font-weight:500;}
.field label .req{color:var(--rose);}
.field input,.field select{background:var(--bg-raised); color:var(--ink-100); border:1px solid var(--line-med); border-radius:var(--r-md); padding:11px 13px; font-family:var(--font-body); font-size:13.5px; outline:none; width:100%;}
.field input:focus,.field select:focus{border-color:var(--brand-400); box-shadow:0 0 0 3px rgba(124,58,237,0.22);}
.form-actions{display:flex; gap:10px; margin-top:16px; align-items:center;}

/* Login */
.login-wrap{min-height:100vh; display:grid; place-items:center; padding:20px;}
.login-card{width:min(420px,94%); background:var(--bg-card); border:1px solid var(--line-med); border-radius:var(--r-lg); padding:34px 32px;}
.login-card .logo{padding:0 0 18px;}
.login-card h1{font-size:20px; margin-bottom:4px;}
.login-card p.sub{font-size:13px; color:var(--ink-400); margin:0 0 22px;}
.login-card .field{margin-bottom:16px;}
.login-err{background:rgba(244,63,94,0.10); border:1px solid rgba(244,63,94,0.3); color:var(--rose); font-size:12.5px; padding:10px 13px; border-radius:var(--r-md); margin-bottom:16px;}
.login-hint{font-size:11px; color:var(--ink-500); font-family:var(--font-mono); margin-top:16px; text-align:center;}

/* Celdas de score (matriz IPER) */
.sc{display:inline-block; min-width:34px; text-align:center; border-radius:6px; padding:3px 7px; font-family:var(--font-mono); font-size:11px; font-weight:600;}
.sc-lo{background:rgba(132,204,22,0.18); color:var(--lime);}
.sc-md{background:rgba(245,158,11,0.20); color:var(--amber);}
.sc-hi{background:rgba(244,63,94,0.22); color:var(--rose);}
.cell-btn{width:30px; height:26px; border-radius:6px; border:1px solid var(--line-med); background:var(--bg-raised); color:var(--ink-500); cursor:pointer; font-family:var(--font-mono); font-size:13px;}
.cell-btn:hover{border-color:var(--brand-400);}
.cell-btn.on{background:rgba(132,204,22,0.15); border-color:rgba(132,204,22,0.4); color:var(--lime);}
body.theme-light .cell-btn.on{background:#E4F5EC; border-color:#BCE5CE; color:#14613A;}
.form-grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.form-grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media(max-width:760px){ .form-grid-3,.form-grid-4{grid-template-columns:1fr;} }

@media(max-width:760px){ .shell{grid-template-columns:1fr;} .sidebar{display:none;} .form-grid{grid-template-columns:1fr;} }

/* ===== Tema claro · guia-estilo v1.0 ===== */
body.theme-light{
  color-scheme:light;
  --brand-700:#1559C4; --brand-600:#1E6FE8; --brand-500:#1E6FE8; --brand-400:#7C5CFC;
  --brand-300:#5B4DC9; --brand-200:#4A4494;
  --cyan:#5B4DC9; --lime:#1E9E5A; --amber:#A87500; --rose:#D93025;
  --bg-deep:#F7F9FC; --bg-base:#FFFFFF; --bg-raised:#EEF2F7; --bg-card:#FFFFFF;
  --line-soft:rgba(8,26,51,0.08); --line-med:rgba(8,26,51,0.16); --line-strong:rgba(8,26,51,0.30);
  --ink-100:#081A33; --ink-200:#0C2447; --ink-300:#3D4B5F; --ink-400:#69788D; --ink-500:#8C99AB;
  --font-display:'Sora','Space Grotesk',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono','JetBrains Mono',ui-monospace,monospace;
  --grad-brand:linear-gradient(120deg,#1E6FE8 0%,#7C5CFC 100%);
}
body.theme-light .topbar{background:rgba(255,255,255,0.92);}
body.theme-light .btn-primary{background:#1E6FE8;}
body.theme-light .btn-primary:hover{background:#1559C4;}
body.theme-light .b-go{background:#E4F5EC; border-color:#BCE5CE;}
body.theme-light .b-risk{background:#FCF3D7; border-color:#F0DD9E;}
body.theme-light .b-nogo{background:#FBE5E3; border-color:#F2C0BC;}
body.theme-light .b-info{color:#5B4DC9; background:#EEE9FE; border-color:#D7CCFB;}
body.theme-light .b-brand{color:#1559C4; background:#E8F0FD; border-color:#C9DBF9;}
body.theme-light .card,body.theme-light .tbl-wrap,body.theme-light .login-card{box-shadow:0 1px 3px rgba(8,26,51,.08);}
body.theme-light .sc-lo{background:#E4F5EC; color:#14613A;}
body.theme-light .sc-md{background:#FCF3D7; color:#8a6400;}
body.theme-light .sc-hi{background:#FBE5E3; color:#b1281f;}

/* ---- mapa de estado del proyecto (tablero sinóptico) ---- */
.syn-wrap{position:relative; border:1px solid var(--line-med); border-radius:16px; padding:14px; background:var(--bg-card); margin-bottom:18px;}
#synWires{position:absolute; inset:0; z-index:0; pointer-events:none;}
#synWires path{fill:none; stroke-width:1.4; opacity:.5; transition:opacity .15s;}
#synWires.focus path:not(.hot){opacity:.06;}
#synWires.focus path.hot{opacity:1; stroke-width:2;}
.syn-head{position:relative; z-index:1; margin-bottom:12px;}
.syn-root{display:flex; align-items:center; gap:12px; border:1.5px solid; border-radius:12px; padding:10px 14px; background:var(--bg-raised);}
.syn-root.st-rojo{border-color:rgba(244,63,94,.55);}
.syn-root.st-ambar{border-color:rgba(251,191,36,.55);}
.syn-root.st-verde{border-color:rgba(163,230,53,.45);}
.syn-root-dot{width:12px; height:12px; border-radius:50%; flex:none;}
.st-rojo .syn-root-dot{background:#fb4d6d; box-shadow:0 0 12px #fb4d6d; animation:synpulse 1.6s infinite;}
.st-ambar .syn-root-dot{background:#fbbf24; box-shadow:0 0 10px #fbbf24;}
.st-verde .syn-root-dot{background:#a3e635; box-shadow:0 0 10px #a3e635;}
@keyframes synpulse{0%,100%{opacity:1;}50%{opacity:.45;}}
.syn-root-t{font-family:var(--font-display); font-size:15px; font-weight:700; color:var(--ink-100);}
.syn-root-s{font-size:12px; color:var(--ink-300); margin-top:2px;}
.syn-legend{margin-left:auto; display:flex; gap:12px; align-items:center; font-size:10.5px; color:var(--ink-400);}
.syn-legend i{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:4px; vertical-align:-1px;}
.sd-rojo{background:#fb4d6d;} .sd-ambar{background:#fbbf24;} .sd-verde{background:#a3e635;}
.syng-stage{position:relative; border-radius:13px; overflow:hidden;
  background:radial-gradient(ellipse at center, rgba(124,92,255,0.05), transparent 65%), var(--bg-deep);}
#synCanvas{display:block; width:100%; cursor:grab;}
#synCanvas:active{cursor:grabbing;}
.syng-ctl{position:absolute; top:10px; right:10px; z-index:6; display:flex; gap:5px; align-items:center;
  background:var(--bg-card); border:1px solid var(--line-med); border-radius:10px; padding:5px 6px;}
.syng-ctl button{background:var(--bg-raised); border:1px solid var(--line-med); color:var(--ink-300);
  border-radius:7px; padding:3px 9px; font-size:11.5px; font-family:var(--font-mono); cursor:pointer;}
.syng-ctl button:hover{border-color:#7C5CFC; color:var(--ink-100);}
.syng-ctl button.on{background:#7C5CFC; border-color:#7C5CFC; color:#fff;}
.syng-ctl .sep{width:1px; height:16px; background:var(--line-med); margin:0 2px;}
.syng-tip{position:absolute; display:none; z-index:5; pointer-events:none; min-width:170px; max-width:230px;
  background:var(--bg-card); border:1px solid var(--line-med); border-radius:10px; padding:9px 11px;
  font-size:11.5px; color:var(--ink-200); box-shadow:0 10px 28px rgba(0,0,0,.35);}
.syng-tip b{color:var(--ink-100);}
.syng-tip .tv{margin-top:3px; color:var(--ink-300); font-size:11px;}
.syng-tip .tv b{font-family:var(--font-mono);}
.syng-tip .tv-bad b{color:#fb4d6d;}
.syng-tip .tv-warn{color:#fbbf24;} .syng-tip .tv-warn b{color:#fbbf24;}
.syng-tip .tv-ok b{color:#a3e635;}
.syng-tip .th{margin-top:6px; font-size:10px; color:var(--ink-400); font-family:var(--font-mono);}

/* ---- centro de configuración ---- */
.set-tabs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; position:sticky; top:60px; z-index:5;
  background:var(--bg-deep); padding:8px 0;}
.set-tabs a{font-family:var(--font-mono); font-size:11.5px; color:var(--ink-300); border:1px solid var(--line-med);
  background:var(--bg-card); border-radius:999px; padding:5px 12px; text-decoration:none;}
.set-tabs a:hover{border-color:#7C5CFC; color:var(--ink-100);}
.card[id]{scroll-margin-top:120px;}
.set-modes{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:6px 14px;}
.set-mode{display:flex; align-items:center; gap:8px; padding:5px 0;}
.set-mode span{flex:1; font-size:12.5px; color:var(--ink-200);}
.set-mode select{width:130px;}

/* ---- franja de estructura y escala del proyecto (dashboard) ---- */
.scale-strip{padding:14px 18px;}
.ss-head{font-family:var(--font-display); font-size:13.5px; font-weight:700; color:var(--ink-100); margin-bottom:11px;}
.ss-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(116px, 1fr)); gap:10px;}
.ss-tile{background:var(--bg-raised); border:1px solid var(--line-soft); border-radius:11px; padding:9px 11px;}
.ss-n{font-family:var(--font-display); font-size:21px; font-weight:800; color:var(--ink-100); letter-spacing:-.4px; line-height:1.1;}
.ss-k{font-size:10.5px; color:var(--ink-300); margin-top:3px; white-space:nowrap;}
.ss-s{font-family:var(--font-mono); font-size:9px; color:var(--ink-400); margin-top:3px;}
.ss-s .lv-ok{color:#65a30d;} .ss-s .lv-warn{color:#b45309;} .ss-s .lv-bad{color:#dc2626;}
body:not(.theme-light) .ss-s .lv-ok{color:#a3e635;}
body:not(.theme-light) .ss-s .lv-warn{color:#fbbf24;}
body:not(.theme-light) .ss-s .lv-bad{color:#fb4d6d;}

/* ---- asistente IA acoplado premium (dashboard) ---- */
.assist-dock{position:fixed; top:74px; right:14px; bottom:14px; width:336px; z-index:60;
  display:flex; flex-direction:column; background:var(--bg-card); border:1px solid var(--line-med);
  border-radius:16px; overflow:hidden;
  box-shadow:0 22px 60px rgba(8,12,40,.45), 0 0 0 1px rgba(124,92,255,.10), 0 0 40px rgba(124,92,255,.08);}
.ast-glow{height:3px; flex:none; background:var(--grad-brand);}
.ast-head{display:flex; align-items:center; gap:11px; padding:13px 15px 11px;
  border-bottom:1px solid var(--line-soft);
  background:linear-gradient(180deg, rgba(124,92,255,.07), transparent);}
.ast-orb{flex:none; width:36px; height:36px; border-radius:50%; background:var(--grad-brand);
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px;
  animation:adOrb 3.2s ease-in-out infinite;}
@keyframes adOrb{0%,100%{box-shadow:0 0 14px rgba(124,92,255,.45);} 50%{box-shadow:0 0 28px rgba(124,92,255,.85);}}
.ast-t{font-family:var(--font-display); font-size:14px; font-weight:700; color:var(--ink-100); letter-spacing:-.2px;}
.ast-status{font-family:var(--font-mono); font-size:9.5px; color:var(--ink-400); margin-top:2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ast-live{display:inline-block; width:7px; height:7px; border-radius:50%; background:#a3e635;
  margin-right:5px; vertical-align:0; animation:adLive 1.8s infinite;}
@keyframes adLive{0%,100%{opacity:1; box-shadow:0 0 6px #a3e635;} 50%{opacity:.45;}}
.ast-hide{flex:none; background:transparent; border:1px solid transparent;
  color:var(--ink-400); border-radius:8px; width:26px; height:26px; font-size:12px; cursor:pointer;}
.ast-hide:hover{border-color:rgba(244,63,94,.5); color:var(--rose); background:var(--bg-raised);}
.ast-icobtn{position:relative; margin-left:auto; flex:none; background:transparent; border:1px solid transparent;
  color:var(--ink-400); border-radius:8px; width:28px; height:26px; font-size:13px; cursor:pointer;}
.ast-icobtn:hover{border-color:#7C5CFC; color:var(--ink-100); background:var(--bg-raised);}
.ast-count{position:absolute; top:-5px; right:-6px; font-family:var(--font-mono); font-size:8.5px;
  background:var(--grad-brand); color:#fff; border-radius:999px; padding:1px 5px; line-height:1.3;}
.ast-hist{position:absolute; top:62px; left:10px; right:10px; z-index:8; max-height:62%;
  display:flex; flex-direction:column; background:var(--bg-card); border:1px solid var(--line-med);
  border-radius:12px; box-shadow:0 16px 44px rgba(8,12,40,.45);}
.ast-hist[hidden]{display:none;}
.ast-hist-head{display:flex; align-items:center; padding:9px 13px; font-family:var(--font-display);
  font-size:12.5px; font-weight:700; color:var(--ink-100); border-bottom:1px solid var(--line-soft);}
.ast-hist-list{overflow-y:auto; padding:6px 10px 10px;}
.ast-hist-item{position:relative; border:1px solid var(--line-soft); border-radius:10px;
  padding:9px 34px 9px 11px; margin-top:7px; background:var(--bg-raised);}
.ast-hist-q{font-size:11px; font-weight:600; color:var(--ink-100); line-height:1.45;}
.ast-hist-a{font-size:11.5px; color:var(--ink-300); line-height:1.55; margin-top:4px;}
.ast-hist-empty{color:var(--ink-400); font-size:11.5px; padding:14px 6px; text-align:center;}
.ast-copy{position:absolute; top:7px; right:7px; background:var(--bg-card); border:1px solid var(--line-med);
  color:var(--ink-300); border-radius:7px; width:24px; height:24px; font-size:11px; cursor:pointer; line-height:1;}
.ast-copy:hover{border-color:#7C5CFC; color:var(--ink-100);}
.ast-copy.ok{border-color:rgba(163,230,53,.6); color:#65a30d;}
.ast-bcopy{position:absolute; top:5px; right:5px; opacity:0; transition:opacity .15s;}
.ast-ai .ast-bubble{position:relative; padding-right:30px;}
.ast-ai .ast-bubble:hover .ast-bcopy{opacity:1;}
.ast-chat{flex:1; overflow-y:auto; padding:12px 14px; min-height:60px;}
.ast-msg{display:flex; margin-top:11px; animation:adUp .28s ease both;}
@keyframes adUp{from{opacity:0; transform:translateY(7px);} to{opacity:1; transform:none;}}
.ast-user{justify-content:flex-end;}
.ast-user .ast-bubble{background:var(--grad-brand); color:#fff; border-radius:14px 14px 4px 14px;
  max-width:86%; font-size:12.5px; line-height:1.5; padding:8px 13px;
  box-shadow:0 4px 14px rgba(30,111,232,.30);}
.ast-ai{gap:8px; align-items:flex-start;}
.ast-ai-ico{flex:none; width:24px; height:24px; border-radius:50%; background:var(--grad-brand);
  color:#fff; font-size:11px; display:flex; align-items:center; justify-content:center; margin-top:2px;}
.ast-ai .ast-bubble{background:var(--bg-raised); border:1px solid var(--line-soft);
  border-radius:4px 14px 14px 14px; padding:9px 13px; font-size:12.5px; line-height:1.62;
  color:var(--ink-200); max-width:calc(100% - 32px);}
.ast-welcome{padding:16px 4px 6px;}
.ast-w-t{font-family:var(--font-display); font-size:15px; font-weight:700; color:var(--ink-100); letter-spacing:-.2px;}
.ast-w-s{font-size:11.5px; color:var(--ink-400); line-height:1.6; margin-top:5px;}
.ast-chips{display:flex; flex-direction:column; gap:7px; margin-top:15px;}
.ast-chip{text-align:left; background:var(--bg-raised); border:1px solid var(--line-med);
  border-radius:11px; padding:10px 13px; font-size:12px; color:var(--ink-200); cursor:pointer;
  font-family:inherit; transition:border-color .15s, transform .15s, box-shadow .15s;}
.ast-chip:hover{border-color:#7C5CFC; transform:translateX(3px); box-shadow:0 4px 14px rgba(124,92,255,.18); color:var(--ink-100);}
.ast-think{display:none;}
.ast-think .ast-bubble{display:flex; gap:5px; align-items:center; padding:12px 14px;}
.ast-think .d{width:6px; height:6px; border-radius:50%; background:var(--ink-400); animation:adDot 1.2s infinite;}
.ast-think .d:nth-child(2){animation-delay:.18s;}
.ast-think .d:nth-child(3){animation-delay:.36s;}
@keyframes adDot{0%,100%{opacity:.25; transform:translateY(0);} 50%{opacity:1; transform:translateY(-3px);}}
.ast-form{display:flex; gap:8px; align-items:center; padding:11px 14px 7px; flex:none;
  border-top:1px solid var(--line-soft);
  background:linear-gradient(0deg, rgba(124,92,255,.05), transparent);}
.ast-form input{flex:1; min-width:0; background:var(--bg-raised); border:1px solid var(--line-med);
  border-radius:999px; padding:10px 16px; font-size:12.5px; color:var(--ink-100);
  font-family:inherit; outline:none; transition:border-color .15s, box-shadow .15s;}
.ast-form input:focus{border-color:#7C5CFC; box-shadow:0 0 0 3px rgba(124,92,255,.16);}
.ast-send{flex:none; width:38px; height:38px; border-radius:50%; background:var(--grad-brand);
  border:none; color:#fff; cursor:pointer; font-size:13px;
  box-shadow:0 4px 14px rgba(30,111,232,.40); transition:transform .15s;}
.ast-send:hover{transform:scale(1.08);}
.ast-send:disabled{opacity:.45; transform:none; cursor:default;}
.ast-foot{padding:4px 16px 11px; font-family:var(--font-mono); font-size:9px; color:var(--ink-400); flex:none;}
.ast-clear{background:none; border:none; color:var(--ink-400); text-decoration:underline;
  cursor:pointer; font-size:9px; font-family:var(--font-mono); padding:0;}
.ast-clear:hover{color:var(--rose);}
body.assist-open .content{margin-right:358px;}
@media (max-width:1280px){ body.assist-open .content{margin-right:0;} }
.assist-tab{position:fixed; right:0; top:42%; z-index:60; writing-mode:vertical-rl;
  background:var(--grad-brand); color:#fff; border:none; border-radius:10px 0 0 10px;
  padding:14px 7px; font-size:12px; font-weight:600; cursor:pointer; letter-spacing:.5px;
  box-shadow:0 6px 20px rgba(0,0,0,.3); display:none;}
.assist-tab:hover{padding-right:11px;}

/* ---- realce universal de tablas (filtro · paginación · export) ---- */
.tbl-tools{margin-left:auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.tbl-tools input,.tbl-tools select{background:var(--bg-raised); border:1px solid var(--line-med); color:var(--ink-200); border-radius:8px; padding:5px 10px; font-size:12px; font-family:inherit; outline:none;}
.tbl-tools input{width:180px;}
.tbl-tools input:focus{border-color:#7C5CFC;}
.tbl-tools .tt-x{background:var(--bg-raised); border:1px solid var(--line-med); color:var(--ink-200); border-radius:8px; padding:5px 10px; font-size:12px; cursor:pointer; font-family:inherit;}
.tbl-tools .tt-x:hover{border-color:#7C5CFC; color:var(--ink-100);}
.tbl-pager{display:flex; gap:10px; align-items:center; justify-content:flex-end; padding:9px 14px; border-top:1px solid var(--line-soft); font-size:11.5px; color:var(--ink-300); font-family:var(--font-mono);}
.tbl-pager button{background:var(--bg-raised); border:1px solid var(--line-med); color:var(--ink-200); border-radius:8px; padding:4px 11px; font-size:11.5px; cursor:pointer; font-family:inherit;}
.tbl-pager button:hover:not(:disabled){border-color:#7C5CFC;}
.tbl-pager button:disabled{opacity:.35; cursor:default;}
.tbl-pager .pg-info{margin-right:auto;}
