:root{
  --bg:#0D1117;--surface:#161B22;--surface2:#1C2128;
  --border:#21262D;--border2:#30363D;
  --text:#E6EDF3;--muted:#7D8590;--faint:#484F58;
  --accent:#00D4AA;--accent2:#00B894;
  --blue:#388BFD;--purple:#A371F7;--amber:#E3B341;--red:#F85149;--green:#3FB950;
  --radius:10px;--radius-sm:6px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}

.header{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:10px}
.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse-dot 2.5s ease-in-out infinite;flex-shrink:0}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 6px var(--accent)}50%{box-shadow:0 0 16px var(--accent),0 0 28px rgba(0,212,170,.25)}}
.brand-name{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.02em}
.brand-sub{font-size:11px;color:var(--muted);margin-top:1px}
/* Demo-data disclaimer pill, centered in the header */
.demo-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--amber);background:rgba(227,179,65,.09);border:1px solid rgba(227,179,65,.28);padding:4px 12px;border-radius:20px;letter-spacing:.02em;white-space:nowrap;cursor:default}
.demo-badge svg{flex-shrink:0;opacity:.85}
@media(max-width:760px){.demo-badge{display:none}}

.tab-nav{display:flex;border-bottom:1px solid var(--border);padding:0 28px;background:var(--surface);overflow-x:auto;scrollbar-width:none}
.tab-nav::-webkit-scrollbar{display:none}
.tab-btn{white-space:nowrap}
.tab-btn{display:flex;align-items:center;gap:7px;padding:12px 18px;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:'Inter',sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;margin-bottom:-1px}
.tab-btn:hover{color:var(--text);background:rgba(255,255,255,.03)}
.tab-btn.active{color:var(--text);border-bottom-color:var(--accent)}
.tab-btn svg{opacity:.6;transition:opacity .15s}
.tab-btn.active svg,.tab-btn:hover svg{opacity:1}

.page{padding:24px 28px 48px}
.tab-pane{display:none}.tab-pane.active{display:block}

.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;margin-bottom:18px}
.filter-label{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.07em;margin-right:4px;white-space:nowrap}
.filter-divider{width:1px;height:18px;background:var(--border2);margin:0 4px}
select{font-family:'Inter',sans-serif;font-size:12px;font-weight:500;padding:5px 24px 5px 10px;border:1px solid var(--border2);border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);cursor:pointer;outline:none;transition:border-color .15s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237D8590' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
select:hover,select:focus{border-color:var(--accent)}
.filter-reset{font-size:11px;color:var(--faint);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;transition:color .15s;margin-left:auto;white-space:nowrap}
.filter-reset:hover{color:var(--accent)}

.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;position:relative;overflow:hidden;transition:border-color .2s}
.kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
/* Accent bar encodes STATE vs benchmark (set by render()), not decoration */
.kpi.st-neutral::before{background:var(--border2)}
.kpi.st-good::before{background:var(--green)}
.kpi.st-warn::before{background:var(--amber)}
.kpi.st-bad::before{background:var(--red)}
.kpi:hover{border-color:var(--border2)}
.kpi-icon{color:var(--faint);margin-bottom:10px;display:flex}
.kpi-label{font-size:11px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;min-height:26px}
.kpi-val{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:600;color:var(--text);line-height:1.1;letter-spacing:-.02em}
.kpi-sub{font-size:11px;color:var(--muted);margin-top:5px}

/* HERO ROW — headline metric + health score side by side */
.hero-row{display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:12px;margin-bottom:12px;align-items:stretch}
.hero-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.hero-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.hero-label{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:12px}
.hero-label svg{color:var(--accent)}
.hero-val-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.hero-val{font-family:'JetBrains Mono',monospace;font-size:40px;font-weight:600;color:var(--text);line-height:1;letter-spacing:-.02em}
/* Month-over-month delta — hidden unless a single month is filtered */
.hero-delta{display:none;align-items:center;gap:4px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}
.hero-delta.visible{display:inline-flex}
.hero-delta.up{color:var(--green);background:rgba(63,185,80,.12);border:1px solid rgba(63,185,80,.25)}
.hero-delta.down{color:var(--red);background:rgba(248,81,73,.12);border:1px solid rgba(248,81,73,.25)}
.hero-delta.flat{color:var(--muted);background:var(--surface2);border:1px solid var(--border2)}
.hero-sub{font-size:12px;color:var(--muted);margin-top:8px}
.hero-divider{height:1px;background:var(--border);margin:16px 0 14px}
.hero-stat{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hero-stat-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.hero-stat-val{font-family:'JetBrains Mono',monospace;font-size:18px;font-weight:600;color:var(--text)}
.hero-stat-sub{font-size:11px;color:var(--faint)}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}
.card-title{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:14px}
.grid-main{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:12px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
/* Chart.js canvases must not set the track's min-content size, or resizing
   the window blows the grid out horizontally */
.grid-main>.card,.grid-3>.card,.grid-2>.card,.hero-row>*{min-width:0}

.rank-row{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:6px;margin-bottom:2px}
.rank-num{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--faint);width:14px;flex-shrink:0}
.rank-name{font-size:12px;font-weight:500;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-bar-wrap{flex:2;height:4px;background:var(--surface2);border-radius:2px;overflow:hidden}
.rank-bar{height:100%;border-radius:2px}
.rank-val{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);min-width:56px;text-align:right}

.leg{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.leg span{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
.leg-sq{width:8px;height:8px;border-radius:2px;flex-shrink:0}

#loading{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:100}
#loading p{font-size:13px;color:var(--muted)}
.spinner{width:28px;height:28px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.ai-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}
.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface2)}
.ai-panel-title{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--text)}
.ai-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:aipulse 2s ease-in-out infinite}
@keyframes aipulse{0%,100%{box-shadow:0 0 0 0 rgba(0,212,170,.4)}50%{box-shadow:0 0 0 5px rgba(0,212,170,0)}}
.ai-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);color:#0D1117;border:none;border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s}
.ai-btn:hover{background:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,212,170,.3)}
.ai-btn:disabled{opacity:.4;cursor:default;transform:none;box-shadow:none}
.pdf-btn{display:none;align-items:center;gap:6px;padding:8px 16px;background:transparent;color:var(--accent);border:1px solid rgba(0,212,170,.35);border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s}
.pdf-btn:hover{background:rgba(0,212,170,.08);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,212,170,.15)}
.pdf-btn.visible{display:flex}
/* Test-mode toggle: OFF (default) is neutral so it never looks "armed" by
   accident before a real client demo; ON is amber to read as "not live". */
.test-mode-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;color:var(--faint);border:1px solid var(--border2);border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .18s}
.test-mode-btn:hover{color:var(--muted);border-color:var(--muted)}
.test-mode-btn.on{color:var(--amber);background:rgba(227,179,65,.1);border-color:rgba(227,179,65,.35)}
.test-mode-btn.on:hover{background:rgba(227,179,65,.16)}
.ai-mock-note{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--amber);background:rgba(227,179,65,.1);border:1px solid rgba(227,179,65,.3);padding:5px 10px;border-radius:6px;margin-bottom:14px}
/* Body stays collapsed until an analysis is running or rendered */
.ai-body{padding:20px;display:none}
.ai-panel.open .ai-body{display:block}
.ai-empty{text-align:center;padding:32px;color:var(--faint);font-size:13px;line-height:1.6;display:none}
.ai-empty-icon{font-size:26px;margin-bottom:8px;opacity:.4}
.ai-loading{display:none;align-items:center;gap:12px;padding:24px;justify-content:center;color:var(--muted);font-size:13px}
.ld{display:flex;gap:5px}
.ld span{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:ldbc .7s ease-in-out infinite}
.ld span:nth-child(2){animation-delay:.12s}.ld span:nth-child(3){animation-delay:.24s}
@keyframes ldbc{0%,100%{transform:translateY(0);opacity:.6}50%{transform:translateY(-6px);opacity:1}}
.ai-result{display:none}
.ai-lead{font-size:15px;font-weight:600;line-height:1.55;color:var(--text);border-left:3px solid var(--accent);padding-left:14px;margin-bottom:18px}
.ai-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:16px}
.ai-block{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 15px}
.ai-block-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
.ai-block-txt{font-size:12px;line-height:1.65;color:var(--text);opacity:.85}
.ai-actions-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:9px;padding-top:14px;border-top:1px solid var(--border)}
.ai-action{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;font-size:12px;line-height:1.55;color:var(--text)}
.abadge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;margin-top:1px;letter-spacing:.04em}
.ab-u{background:rgba(248,81,73,.15);color:#F85149;border:1px solid rgba(248,81,73,.25)}
.ab-m{background:rgba(227,179,65,.15);color:#E3B341;border:1px solid rgba(227,179,65,.25)}
.ab-b{background:rgba(63,185,80,.15);color:#3FB950;border:1px solid rgba(63,185,80,.25)}
.ai-conf{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.ai-conf-lbl{font-size:11px;color:var(--muted);white-space:nowrap}
.ai-conf-track{flex:1;height:3px;background:var(--border2);border-radius:2px}
.ai-conf-fill{height:3px;border-radius:2px;background:linear-gradient(90deg,var(--accent2),var(--accent))}
.ai-conf-pct{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--accent)}

.mi-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.mi-title-block h2{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.02em}
.mi-title-block p{font-size:12px;color:var(--muted);margin-top:4px}
.mi-filter-bar{display:flex;gap:6px;flex-wrap:wrap}
.mi-filter-btn{padding:5px 14px;background:var(--surface);border:1px solid var(--border2);border-radius:20px;color:var(--muted);font-family:'Inter',sans-serif;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}
.mi-filter-btn:hover{border-color:var(--accent);color:var(--text)}
.mi-filter-btn.active{background:rgba(0,212,170,.1);border-color:var(--accent);color:var(--accent)}
.mi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.mi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s,transform .2s;cursor:pointer}
.mi-card:hover{border-color:var(--border2);transform:translateY(-2px)}
.mi-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mi-category{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.mi-tag{font-size:10px;font-weight:700;padding:2px 9px;border-radius:20px;letter-spacing:.04em;white-space:nowrap}
.mi-tag.green{background:rgba(63,185,80,.12);color:#3FB950;border:1px solid rgba(63,185,80,.25)}
.mi-tag.red{background:rgba(248,81,73,.12);color:#F85149;border:1px solid rgba(248,81,73,.25)}
.mi-tag.amber{background:rgba(227,179,65,.12);color:#E3B341;border:1px solid rgba(227,179,65,.25)}
.mi-card h3{font-size:14px;font-weight:600;color:var(--text);line-height:1.45;letter-spacing:-.01em}
.mi-card p{font-size:12px;line-height:1.7;color:var(--muted)}
.mi-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border);margin-top:auto}
.mi-source{font-size:11px;color:var(--faint)}
.mi-date{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--faint)}
.mi-empty{text-align:center;padding:60px 20px;color:var(--faint);font-size:13px}
.mi-empty-icon{font-size:32px;margin-bottom:12px;opacity:.3}
.mi-card-read{font-size:10px;color:var(--accent);font-weight:600;display:flex;align-items:center;gap:4px;margin-top:auto;padding-top:10px}

.art-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:40px 20px;backdrop-filter:blur(2px)}
.art-overlay.open{display:flex}
.art-modal{background:var(--surface);border:1px solid var(--border2);border-radius:14px;width:100%;max-width:720px;max-height:85vh;overflow-y:auto;position:relative;animation:modalIn .2s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.art-modal-header{padding:24px 28px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:10}
.art-modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.art-company-badge{font-size:11px;font-weight:700;color:var(--accent);background:rgba(0,212,170,.1);padding:3px 10px;border-radius:20px;border:1px solid rgba(0,212,170,.2);letter-spacing:.04em}
.art-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:20px;line-height:1;padding:4px 8px;border-radius:6px;transition:all .15s}
.art-close:hover{color:var(--text);background:var(--surface2)}
.art-modal-title{font-size:18px;font-weight:700;color:var(--text);line-height:1.4;letter-spacing:-.02em;margin-bottom:8px}
.art-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.art-tag{font-size:10px;font-weight:700;padding:2px 9px;border-radius:20px;letter-spacing:.04em}
.art-tag.green{background:rgba(63,185,80,.12);color:#3FB950;border:1px solid rgba(63,185,80,.25)}
.art-tag.red{background:rgba(248,81,73,.12);color:#F85149;border:1px solid rgba(248,81,73,.25)}
.art-tag.amber{background:rgba(227,179,65,.12);color:#E3B341;border:1px solid rgba(227,179,65,.25)}
.art-cat{font-size:11px;color:var(--muted)}
.art-date{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--faint)}
.art-modal-body{padding:24px 28px 28px}
.art-summary{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.art-section{margin-bottom:20px}
.art-section-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.art-section-title::before{content:'';display:inline-block;width:3px;height:14px;background:var(--accent);border-radius:2px;flex-shrink:0}
.art-bullets{display:flex;flex-direction:column;gap:6px}
.art-bullet{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;color:var(--text);opacity:.85}
.art-bullet::before{content:'›';color:var(--accent);font-weight:700;flex-shrink:0;margin-top:1px}
.art-insight{margin-top:24px;padding:16px 20px;background:rgba(0,212,170,.06);border:1px solid rgba(0,212,170,.2);border-radius:var(--radius)}
.art-insight-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:6px}
.art-insight-txt{font-size:14px;font-weight:600;color:var(--text);line-height:1.5;font-style:italic}

.chat-wrap{display:flex;flex-direction:column;height:calc(100vh - 160px);min-height:500px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.chat-header{padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.chat-header-left{display:flex;align-items:center;gap:10px}
.chat-avatar{width:36px;height:36px;border-radius:50%;background:rgba(0,212,170,.12);border:1px solid rgba(0,212,170,.25);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.chat-header-name{font-size:14px;font-weight:600;color:var(--text)}
.chat-header-status{font-size:11px;color:var(--accent);display:flex;align-items:center;gap:5px;margin-top:1px}
.chat-status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:aipulse 2s ease-in-out infinite}
.chat-clear{font-size:11px;color:var(--faint);background:none;border:1px solid var(--border2);border-radius:6px;padding:4px 10px;cursor:pointer;transition:all .15s;font-family:'Inter',sans-serif}
.chat-clear:hover{color:var(--red);border-color:var(--red)}
.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}
.chat-messages::-webkit-scrollbar{width:4px}
.chat-messages::-webkit-scrollbar-track{background:transparent}
.chat-messages::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
.chat-welcome{text-align:center;padding:32px 20px;color:var(--muted)}
.chat-welcome-icon{font-size:36px;margin-bottom:12px;opacity:.6}
.chat-welcome h3{font-size:16px;font-weight:600;color:var(--text);margin-bottom:8px}
.chat-welcome p{font-size:13px;line-height:1.6;max-width:420px;margin:0 auto 20px}
.chat-suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.chat-suggestion{font-size:12px;padding:7px 14px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;color:var(--muted);cursor:pointer;transition:all .15s;font-family:'Inter',sans-serif}
.chat-suggestion:hover{border-color:var(--accent);color:var(--accent)}
.msg{display:flex;gap:10px;align-items:flex-start;max-width:85%}
.msg.user{align-self:flex-end;flex-direction:row-reverse}
.msg-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;margin-top:2px}
.msg.ai .msg-avatar{background:rgba(0,212,170,.12);border:1px solid rgba(0,212,170,.2)}
.msg.user .msg-avatar{background:rgba(56,139,253,.12);border:1px solid rgba(56,139,253,.2)}
.msg-bubble{padding:11px 15px;border-radius:12px;font-size:13px;line-height:1.65;max-width:100%}
.msg.ai .msg-bubble{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-top-left-radius:3px}
.msg.user .msg-bubble{background:rgba(0,212,170,.1);border:1px solid rgba(0,212,170,.2);color:var(--text);border-top-right-radius:3px}
.msg-bubble strong{color:var(--accent);font-weight:600}
.msg-bubble ul{padding-left:16px;margin:6px 0}
.msg-bubble li{margin-bottom:3px}
.msg-bubble p{margin-bottom:6px}
.msg-bubble p:last-child{margin-bottom:0}
.msg-thinking{display:flex;gap:5px;align-items:center;padding:11px 15px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;border-top-left-radius:3px}
.msg-thinking span{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:ldbc .7s ease-in-out infinite}
.msg-thinking span:nth-child(2){animation-delay:.12s}.msg-thinking span:nth-child(3){animation-delay:.24s}
.chat-input-wrap{padding:14px 16px;border-top:1px solid var(--border);background:var(--surface2);flex-shrink:0}
.chat-input-row{display:flex;gap:10px;align-items:flex-end}
.chat-input{flex:1;background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:10px 14px;color:var(--text);font-family:'Inter',sans-serif;font-size:13px;resize:none;outline:none;transition:border-color .15s;min-height:44px;max-height:120px;line-height:1.5}
.chat-input:focus{border-color:var(--accent)}
.chat-input::placeholder{color:var(--faint)}
.chat-send{width:40px;height:40px;background:var(--accent);border:none;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0}
.chat-send:hover{background:var(--accent2);transform:translateY(-1px)}
.chat-send:disabled{opacity:.4;cursor:default;transform:none}
.chat-context-bar{font-size:10px;color:var(--faint);text-align:center;margin-top:8px;letter-spacing:.03em}

/* PRACTICE PROFILE MODAL */
.pp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:300;display:none;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}
.pp-overlay.open{display:flex}
.pp-modal{background:var(--surface);border:1px solid var(--border2);border-radius:14px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;animation:modalIn .22s ease}
.pp-modal-header{padding:24px 28px 0}
.pp-modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.pp-modal-title{font-size:18px;font-weight:700;color:var(--text);letter-spacing:-.02em}
.pp-modal-sub{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:20px}
.pp-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;padding:4px 8px;border-radius:6px;transition:all .15s}
.pp-close:hover{color:var(--text);background:var(--surface2)}
.pp-body{padding:0 28px 28px;display:flex;flex-direction:column;gap:16px}
.pp-field{display:flex;flex-direction:column;gap:6px}
.pp-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.pp-label span{color:var(--accent);margin-left:2px}
.pp-input{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:9px 12px;color:var(--text);font-family:'Inter',sans-serif;font-size:13px;outline:none;transition:border-color .15s;width:100%}
.pp-input:focus{border-color:var(--accent)}
.pp-input::placeholder{color:var(--faint)}
.pp-select{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:9px 12px;color:var(--text);font-family:'Inter',sans-serif;font-size:13px;outline:none;cursor:pointer;width:100%;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237D8590' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .15s}
.pp-select:focus{border-color:var(--accent)}
.pp-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pp-chips{display:flex;flex-wrap:wrap;gap:7px}
.pp-chip{padding:5px 13px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;user-select:none}
.pp-chip:hover{border-color:var(--accent);color:var(--text)}
.pp-chip.selected{background:rgba(0,212,170,.1);border-color:var(--accent);color:var(--accent)}
.pp-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-top:1px solid var(--border);margin-top:4px}
.pp-skip{font-size:12px;color:var(--faint);background:none;border:none;cursor:pointer;font-family:'Inter',sans-serif;transition:color .15s}
.pp-skip:hover{color:var(--muted)}
.pp-save{display:flex;align-items:center;gap:7px;padding:9px 20px;background:var(--accent);color:#0D1117;border:none;border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .18s}
.pp-save:hover{background:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,212,170,.3)}
.pp-divider{height:1px;background:var(--border);margin:4px 0}
/* Profile pill in header */
.profile-pill{display:flex;align-items:center;gap:7px;padding:5px 12px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;cursor:pointer;transition:all .15s;font-size:12px;color:var(--muted)}
.profile-pill:hover{border-color:var(--accent);color:var(--accent)}
.profile-pill.complete{border-color:rgba(0,212,170,.3);color:var(--accent)}
.profile-dot{width:6px;height:6px;border-radius:50%;background:var(--faint);flex-shrink:0}
.profile-pill.complete .profile-dot{background:var(--accent)}

/* HEALTH SCORE */
.hs-wrap{display:grid;grid-template-columns:auto 1fr;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.hs-left{padding:24px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:180px;border-right:1px solid var(--border);position:relative}
.hs-ring-wrap{position:relative;width:110px;height:110px;margin-bottom:12px}
.hs-ring-wrap svg{transform:rotate(-90deg)}
.hs-score-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hs-score-num{font-family:'JetBrains Mono',monospace;font-size:32px;font-weight:600;line-height:1;color:var(--text)}
.hs-score-max{font-size:11px;color:var(--muted);margin-top:2px}
.hs-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.hs-label.excellent{color:#3FB950}.hs-label.good{color:#00D4AA}.hs-label.fair{color:#E3B341}.hs-label.poor{color:#F85149}
.hs-right{padding:20px 24px;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:center}
.hs-item{display:flex;flex-direction:column;gap:5px}
.hs-item-head{display:flex;align-items:center;justify-content:space-between}
.hs-item-name{font-size:11px;color:var(--muted);font-weight:500}
.hs-item-val{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600}
.hs-item-val.green{color:#3FB950}.hs-item-val.amber{color:#E3B341}.hs-item-val.red{color:#F85149}
.hs-bar-track{height:4px;background:var(--border2);border-radius:2px;overflow:hidden}
.hs-bar-fill{height:4px;border-radius:2px;transition:width .6s ease}
.hs-bar-fill.green{background:#3FB950}.hs-bar-fill.amber{background:#E3B341}.hs-bar-fill.red{background:#F85149}
.hs-item-bench{font-size:9px;color:var(--faint);margin-top:1px}
@media(max-width:700px){.hs-wrap{grid-template-columns:1fr}.hs-left{border-right:none;border-bottom:1px solid var(--border)}.hs-right{grid-template-columns:1fr 1fr}}

@media(max-width:1200px){
  .kpis{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .hero-row{grid-template-columns:1fr}
  .grid-main,.grid-3,.grid-2{grid-template-columns:1fr}
  .mi-grid{grid-template-columns:1fr}
  .page{padding:16px 16px 40px}
  .tab-nav,.header{padding-left:16px;padding-right:16px}
}
@media(max-width:560px){
  .kpis{grid-template-columns:1fr 1fr}
  .kpi-val{font-size:20px}
  .hero-val{font-size:32px}
  .tab-btn{font-size:12px;padding:10px 12px}
}

/* ── REVENUE FORECAST ── */
.fc-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.fc-hero-left h2{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.02em;margin-bottom:4px}
.fc-hero-left p{font-size:12px;color:var(--muted);line-height:1.5;max-width:480px}
.fc-hero-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}
.fc-decision-label{font-size:11px;color:var(--faint);white-space:nowrap}
.fc-decision-select{font-family:'Inter',sans-serif;font-size:12px;font-weight:500;padding:7px 28px 7px 12px;border:1px solid var(--border2);border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);cursor:pointer;outline:none;transition:border-color .15s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237D8590' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
.fc-decision-select:focus{border-color:var(--accent)}
.fc-gen-btn{display:flex;align-items:center;gap:7px;padding:9px 20px;background:var(--accent);color:#0D1117;border:none;border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .18s;white-space:nowrap}
.fc-gen-btn:hover{background:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,212,170,.3)}
.fc-gen-btn:disabled{opacity:.4;cursor:default;transform:none;box-shadow:none}
.fc-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px}
.fc-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}
.fc-chart-title{font-size:13px;font-weight:600;color:var(--text)}
.fc-chart-legend{display:flex;gap:14px;flex-wrap:wrap}
.fc-leg-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.fc-leg-line{width:20px;height:2px;border-radius:2px}
/* Legend chips mirror each scenario line's dash pattern (CVD-safe identity) */
.fc-leg-dash-short{mask-image:repeating-linear-gradient(90deg,#000 0 3px,transparent 3px 6px);-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 3px,transparent 3px 6px)}
.fc-leg-dash-mid{mask-image:repeating-linear-gradient(90deg,#000 0 7px,transparent 7px 11px);-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 7px,transparent 7px 11px)}
.fc-leg-dash-long{mask-image:repeating-linear-gradient(90deg,#000 0 12px,transparent 12px 16px);-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 12px,transparent 12px 16px)}
.fc-empty{text-align:center;padding:56px 20px;color:var(--faint);font-size:13px;line-height:1.7}
.fc-empty-icon{font-size:36px;margin-bottom:12px;opacity:.3}
.fc-scenarios{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.fc-scenario{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;transition:border-color .2s}
.fc-scenario::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.fc-scenario.sc-bad::before{background:var(--red)}.fc-scenario.sc-base::before{background:var(--amber)}.fc-scenario.sc-opt::before{background:var(--green)}
.fc-scenario:hover{border-color:var(--border2)}
.fc-sc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fc-sc-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.fc-scenario.sc-bad .fc-sc-label{color:var(--red)}.fc-scenario.sc-base .fc-sc-label{color:var(--amber)}.fc-scenario.sc-opt .fc-sc-label{color:var(--green)}
.fc-sc-conf{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--faint)}
.fc-sc-conf-bar{width:36px;height:3px;background:var(--border2);border-radius:2px;overflow:hidden}
.fc-sc-conf-fill{height:3px;border-radius:2px}
.fc-scenario.sc-bad .fc-sc-conf-fill{background:var(--red)}.fc-scenario.sc-base .fc-sc-conf-fill{background:var(--amber)}.fc-scenario.sc-opt .fc-sc-conf-fill{background:var(--green)}
.fc-sc-amount{font-family:'JetBrains Mono',monospace;font-size:28px;font-weight:600;color:var(--text);letter-spacing:-.02em;line-height:1}
.fc-sc-period{font-size:11px;color:var(--muted);margin-top:3px}
.fc-sc-cost{font-size:11px;color:var(--red);font-weight:600;padding:7px 10px;background:rgba(248,81,73,.07);border-radius:6px;border:1px solid rgba(248,81,73,.15);line-height:1.4}
.fc-sc-factors{display:flex;flex-direction:column;gap:5px}
.fc-sc-factor{font-size:11px;color:var(--muted);line-height:1.5;display:flex;align-items:flex-start;gap:6px}
.fc-sc-factor::before{content:'›';color:var(--faint);flex-shrink:0}
.fc-sc-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .18s;margin-top:4px;border:1px solid}
.fc-scenario.sc-bad .fc-sc-btn{background:rgba(248,81,73,.08);color:var(--red);border-color:rgba(248,81,73,.2)}
.fc-scenario.sc-base .fc-sc-btn{background:rgba(227,179,65,.08);color:var(--amber);border-color:rgba(227,179,65,.2)}
.fc-scenario.sc-opt .fc-sc-btn{background:rgba(63,185,80,.08);color:var(--green);border-color:rgba(63,185,80,.2)}
.fc-sc-btn:hover{transform:translateY(-1px);filter:brightness(1.2)}
.fc-questions-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px}
.fc-q-header{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.fc-q-title{font-size:13px;font-weight:600;color:var(--text)}
.fc-q-badge{font-size:9px;font-weight:700;background:rgba(0,212,170,.1);color:var(--accent);padding:2px 8px;border-radius:20px;border:1px solid rgba(0,212,170,.2);letter-spacing:.04em}
.fc-q-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fc-q-btn{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:all .18s;font-family:'Inter',sans-serif;width:100%}
.fc-q-btn:hover{border-color:var(--accent);background:rgba(0,212,170,.04)}
.fc-q-icon{font-size:14px;flex-shrink:0;margin-top:1px}
.fc-q-text{font-size:12px;color:var(--muted);line-height:1.5}
.fc-q-btn:hover .fc-q-text{color:var(--text)}
.fc-answer-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px;display:none}
.fc-answer-card.visible{display:block}
.fc-answer-head{display:flex;align-items:center;gap:10px;padding:13px 20px;background:var(--surface2);border-bottom:1px solid var(--border)}
.fc-answer-q{font-size:12px;font-weight:600;color:var(--text);flex:1}
.fc-answer-x{background:none;border:none;color:var(--faint);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;transition:color .15s}
.fc-answer-x:hover{color:var(--text)}
.fc-answer-body{padding:18px 20px}
.fc-answer-ld{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
.fc-answer-txt{font-size:13px;color:var(--text);line-height:1.75;opacity:.9}
.fc-answer-txt strong{color:var(--accent)}
.fc-answer-txt ul{margin:8px 0 8px 16px;display:flex;flex-direction:column;gap:4px}
@media(max-width:900px){.fc-scenarios{grid-template-columns:1fr}.fc-q-grid{grid-template-columns:1fr}}
@media(max-width:600px){.fc-hero{flex-direction:column;align-items:flex-start}.fc-hero-right{width:100%}.fc-decision-select{flex:1}}

/* ══ TAREAS / NOTIFICACIONES / ROI (Fase 2) ══════════════════════════════ */

/* — Campana de notificaciones (header) — */
.bell-wrap{position:relative}
.bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--surface2);border:1px solid var(--border2);border-radius:50%;color:var(--muted);cursor:pointer;transition:all .15s}
.bell-btn:hover{color:var(--text);border-color:var(--accent)}
.bell-badge{position:absolute;top:-5px;right:-5px;display:flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;background:var(--red);color:#fff;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;border-radius:10px;border:2px solid var(--surface);line-height:1}
.bell-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:320px;background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);box-shadow:0 12px 32px rgba(0,0,0,.5);display:none;z-index:80;overflow:hidden}
.bell-dropdown.open{display:block}
.bell-dd-header{padding:11px 16px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);background:var(--surface2)}
.bell-dd-item{display:flex;align-items:flex-start;gap:10px;padding:11px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.bell-dd-item:hover{background:rgba(255,255,255,.03)}
.bell-dd-item-main{min-width:0}
.bell-dd-item-title{font-size:12px;font-weight:500;color:var(--text);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bell-dd-item-meta{font-size:11px;color:var(--muted);margin-top:3px}
.bell-dd-empty{padding:18px 16px;font-size:12px;color:var(--muted);text-align:center}
.bell-dd-footer{display:block;width:100%;padding:10px 16px;background:none;border:none;border-top:1px solid var(--border);color:var(--accent);font-family:'Inter',sans-serif;font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}
.bell-dd-footer:hover{background:rgba(0,212,170,.06)}
.tarea-prio-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px}
.tarea-prio-dot.prio-alta{background:var(--red)}
.tarea-prio-dot.prio-media{background:var(--amber)}
.tarea-prio-dot.prio-baja{background:var(--muted)}
.tarea-overdue-lbl{color:var(--red);font-weight:600}

/* — Franja ROI — */
.roi-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.roi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;position:relative;overflow:hidden}
.roi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.roi-lbl{font-size:11px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}
.roi-val{font-family:'JetBrains Mono',monospace;font-size:26px;font-weight:600;color:var(--text);line-height:1.1;letter-spacing:-.02em}
.roi-sub{font-size:11px;color:var(--faint);margin-top:6px}
.roi-card.roi-alert::before{background:var(--red)}
.roi-card.roi-alert .roi-val{color:var(--red)}

/* — Toolbar: filtros por responsable — */
.tareas-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tarea-filters{display:flex;gap:6px;flex-wrap:wrap}
.tf-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;color:var(--muted);font-family:'Inter',sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}
.tf-btn:hover{color:var(--text);border-color:var(--muted)}
.tf-btn.active{color:var(--accent);border-color:rgba(0,212,170,.4);background:rgba(0,212,170,.08)}
.tf-count{font-family:'JetBrains Mono',monospace;font-size:10px;background:var(--surface);border:1px solid var(--border2);padding:1px 6px;border-radius:10px}
.tareas-refresh{margin-left:auto;padding:6px 12px;background:none;border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--muted);font-family:'Inter',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}
.tareas-refresh:hover{color:var(--accent);border-color:var(--accent)}

/* — Estados de carga / error / vacío — */
.tareas-loading{display:flex;align-items:center;gap:10px;padding:24px;font-size:13px;color:var(--muted);justify-content:center}
.tareas-error{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;font-size:12px;color:var(--red);background:rgba(248,81,73,.08);border:1px solid rgba(248,81,73,.3);border-radius:var(--radius);margin-bottom:14px}
.tareas-retry{padding:5px 12px;background:none;border:1px solid rgba(248,81,73,.4);border-radius:var(--radius-sm);color:var(--red);font-family:'Inter',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:background .15s}
.tareas-retry:hover{background:rgba(248,81,73,.12)}
.tareas-empty{padding:32px;text-align:center;font-size:13px;color:var(--muted);background:var(--surface);border:1px dashed var(--border2);border-radius:var(--radius)}

/* — Lista de tareas — */
.tareas-list{display:flex;flex-direction:column;gap:8px}
.tarea-row{display:flex;align-items:flex-start;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color .15s}
.tarea-row:hover{border-color:var(--border2)}
.tarea-row.overdue{border-left:3px solid var(--red)}
.tarea-row.done{opacity:.55}
.tarea-row.done .tarea-title{text-decoration:line-through}
.tarea-check{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;margin-top:1px;background:var(--surface2);border:1.5px solid var(--border2);border-radius:6px;color:#0D1117;cursor:pointer;transition:all .15s}
.tarea-check:hover:not(:disabled){border-color:var(--accent)}
.tarea-check.checked{background:var(--accent);border-color:var(--accent)}
.tarea-check:disabled{cursor:default}
.tarea-main{flex:1;min-width:0}
.tarea-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.4}
.tarea-desc{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}
.tarea-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}
.tarea-badge{font-size:10px;font-weight:600;color:var(--muted);background:var(--surface2);border:1px solid var(--border2);padding:2px 8px;border-radius:10px;letter-spacing:.02em}
.tarea-badge.prio-alta{color:var(--red);background:rgba(248,81,73,.1);border-color:rgba(248,81,73,.3)}
.tarea-badge.prio-media{color:var(--amber);background:rgba(227,179,65,.1);border-color:rgba(227,179,65,.3)}
.tarea-badge.prio-baja{color:var(--muted)}
.tarea-badge.badge-overdue{color:var(--red);background:rgba(248,81,73,.1);border-color:rgba(248,81,73,.3)}
.tarea-valor{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--accent)}
.tarea-resultado{font-size:10px;font-weight:600;color:var(--green);background:rgba(63,185,80,.1);border:1px solid rgba(63,185,80,.3);padding:2px 8px;border-radius:10px}

/* — Mini-selector inline de resultado — */
.tarea-confirm{margin-top:12px;padding:12px 14px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm)}
.tarea-confirm-lbl{font-size:11px;font-weight:600;color:var(--text);margin-bottom:8px}
.tarea-confirm-opts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.tc-opt{padding:6px 12px;background:var(--surface);border:1px solid var(--border2);border-radius:20px;color:var(--muted);font-family:'Inter',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}
.tc-opt:hover:not(:disabled){color:var(--text);border-color:var(--muted)}
.tc-opt.selected{color:var(--accent);border-color:var(--accent);background:rgba(0,212,170,.1)}
.tarea-confirm-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tarea-confirm-quien{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.tc-confirm{padding:6px 14px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#0D1117;font-family:'Inter',sans-serif;font-size:11px;font-weight:700;cursor:pointer;transition:background .15s}
.tc-confirm:hover:not(:disabled){background:var(--accent2)}
.tc-confirm:disabled,.tc-cancel:disabled,.tc-opt:disabled{opacity:.5;cursor:default}
.tc-cancel{padding:6px 12px;background:none;border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--muted);font-family:'Inter',sans-serif;font-size:11px;font-weight:600;cursor:pointer}
.tc-cancel:hover:not(:disabled){color:var(--text)}
.tc-error{font-size:11px;color:var(--red);margin-top:6px;min-height:14px}

/* — Formulario admin (uso interno, ?admin) — */
.tarea-admin{margin-top:24px;background:var(--surface);border:1px dashed var(--border2);border-radius:var(--radius);padding:18px 20px}
.tarea-admin-title{font-size:12px;font-weight:600;color:var(--amber);margin-bottom:14px}
.ta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ta-grid label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:500;color:var(--muted)}
.ta-grid label.ta-full{grid-column:1/-1}
.ta-grid input{font-family:'Inter',sans-serif;font-size:12px;padding:7px 10px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);outline:none;transition:border-color .15s}
.ta-grid input:focus{border-color:var(--accent)}
.ta-footer{display:flex;align-items:center;gap:12px;margin-top:14px}
.ta-crear{padding:8px 16px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#0D1117;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}
.ta-crear:hover:not(:disabled){background:var(--accent2)}
.ta-crear:disabled{opacity:.5;cursor:default}
.ta-msg{font-size:12px;color:var(--muted)}

@media(max-width:900px){.roi-strip{grid-template-columns:1fr}.ta-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ta-grid{grid-template-columns:1fr}.tareas-toolbar{flex-direction:column;align-items:stretch}.tareas-refresh{margin-left:0}}

/* ══ GENERACIÓN DE TAREAS CON IA (panel admin, Paso 1) ══════════════════ */
.ta-keyfield{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:500;color:var(--muted);max-width:280px;margin-bottom:16px}
.ta-keyfield input{font-family:'Inter',sans-serif;font-size:12px;padding:7px 10px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);outline:none;transition:border-color .15s}
.ta-keyfield input:focus{border-color:var(--accent)}
.ta-divider{height:1px;background:var(--border);margin:20px 0 16px}
.ta-manual-title{font-size:11px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}

.tia-box{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);padding:16px 18px}
.tia-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.tia-title{font-size:13px;font-weight:600;color:var(--text)}
.tia-sub{font-size:11px;color:var(--muted);margin-top:3px;max-width:440px;line-height:1.5}
.tia-gen-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);color:#0D1117;border:none;border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s;white-space:nowrap;flex-shrink:0}
.tia-gen-btn:hover:not(:disabled){background:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,212,170,.3)}
.tia-gen-btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}

.tia-status{font-size:12px;margin-top:12px}
.tia-status:empty{display:none}
.tia-status.tia-loading{color:var(--muted);display:flex;align-items:center;gap:8px}
.tia-status.tia-error{color:var(--red)}
.tia-status.tia-ok{color:var(--green)}
.tia-spin{width:14px;height:14px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block;flex-shrink:0}

#tia-propuestas{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.tia-card{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:12px 14px}
.tia-card-top{display:flex;align-items:center;gap:12px;margin-bottom:9px;flex-wrap:wrap}
.tia-inc{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--accent);cursor:pointer;flex-shrink:0}
.tia-inc input{accent-color:var(--accent);cursor:pointer}
.tia-justif{font-size:11px;color:var(--muted);font-style:italic;flex:1;min-width:0}
.tia-f{font-family:'Inter',sans-serif;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);outline:none;transition:border-color .15s}
.tia-f:focus{border-color:var(--accent)}
.tia-f-titulo{width:100%;font-size:13px;font-weight:600;padding:7px 10px;margin-bottom:7px}
.tia-f-desc{width:100%;font-size:12px;padding:7px 10px;resize:vertical;min-height:38px;line-height:1.5;margin-bottom:9px}
.tia-row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:8px}
.tia-row label{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.tia-row .tia-f{font-size:12px;padding:6px 8px}

.tia-actions{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.tia-save-btn{padding:8px 18px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#0D1117;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}
.tia-save-btn:hover:not(:disabled){background:var(--accent2)}
.tia-save-btn:disabled{opacity:.5;cursor:default}
.tia-discard-btn{padding:8px 14px;background:none;border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--muted);font-family:'Inter',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:color .15s}
.tia-discard-btn:hover{color:var(--text)}
.tia-save-msg{font-size:12px;color:var(--muted)}
.tia-save-msg.err{color:var(--red)}

@media(max-width:700px){.tia-row{grid-template-columns:1fr 1fr}}

/* ══ LISTA DE PACIENTES EN TAREAS Y PROPUESTAS ══════════════════════════ */
.tarea-pac{margin-top:10px;border-top:1px solid var(--border);padding-top:9px}
.tarea-pac-sum{font-size:11px;font-weight:600;color:var(--accent);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;user-select:none}
.tarea-pac-sum::-webkit-details-marker{display:none}
.tarea-pac-sum::before{content:'▸';font-size:10px;transition:transform .15s;display:inline-block}
.tarea-pac[open] .tarea-pac-sum::before{transform:rotate(90deg)}
.tarea-pac-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.tarea-pac-item{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px}
.tarea-pac-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tarea-pac-nombre{font-size:12px;font-weight:600;color:var(--text)}
.tarea-pac-tel{font-size:12px;font-family:'JetBrains Mono',monospace;color:var(--accent);text-decoration:none;white-space:nowrap}
.tarea-pac-tel:hover{text-decoration:underline}
.tarea-pac-accion{font-size:12px;color:var(--text);margin-top:5px;line-height:1.45}
.tarea-pac-ctx{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.45}

/* Pacientes dentro de una propuesta de IA (vista previa antes de guardar) */
.tia-pac{margin-top:10px}
.tia-pac summary{font-size:11px;font-weight:600;color:var(--accent);cursor:pointer;list-style:none;user-select:none}
.tia-pac summary::-webkit-details-marker{display:none}
.tia-pac summary::before{content:'▸ ';font-size:10px}
.tia-pac[open] summary::before{content:'▾ '}
.tia-pac-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.tia-pac-item{font-size:11px;color:var(--muted);line-height:1.5;padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}
.tia-pac-item strong{color:var(--text)}
.tia-pac-tel{font-family:'JetBrains Mono',monospace;color:var(--muted);margin-left:6px}
.tia-pac-accion{color:var(--text)}

/* ══ TAREA: tarjeta clicable + mini-progreso en la lista ════════════════ */
.tarea-row.clickable{cursor:pointer;align-items:center}
.tarea-row.clickable:hover{border-color:var(--accent)}
.tarea-chevron{color:var(--faint);font-size:22px;line-height:1;flex-shrink:0;padding-left:6px}
.tarea-row.clickable:hover .tarea-chevron{color:var(--accent)}
.tarea-prog{display:flex;align-items:center;gap:10px;margin-top:10px}
.tarea-prog-bar{flex:1;height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;max-width:260px}
.tarea-prog-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}
.tarea-prog-lbl{font-size:11px;color:var(--muted);font-family:'JetBrains Mono',monospace;white-space:nowrap}

/* ══ VISTA DETALLE de tarea ═════════════════════════════════════════════ */
.td-back{background:none;border:none;color:var(--muted);font-family:'Inter',sans-serif;font-size:13px;font-weight:500;cursor:pointer;padding:4px 0;margin-bottom:14px;transition:color .15s}
.td-back:hover{color:var(--accent)}
.td-head{margin-bottom:16px}
.td-title{font-size:18px;font-weight:600;color:var(--text);line-height:1.35;margin-bottom:10px}
.td-desc{font-size:13px;color:var(--muted);line-height:1.6;margin-top:10px}
.td-done-banner{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--green);background:rgba(63,185,80,.1);border:1px solid rgba(63,185,80,.3);padding:8px 14px;border-radius:var(--radius-sm);margin-bottom:16px}

/* Barra de progreso grande */
.td-progress{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px}
.td-progress-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:10px}
.td-progress-pct{font-family:'JetBrains Mono',monospace;font-weight:600;color:var(--text)}
.td-progress-bar{height:10px;background:var(--surface2);border-radius:5px;overflow:hidden}
.td-progress-fill{height:100%;background:var(--accent);border-radius:5px;transition:width .35s ease}

/* Lista de pacientes con marcado */
.td-pac-list{display:flex;flex-direction:column;gap:8px}
.td-pac{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;transition:border-color .15s,opacity .15s}
.td-pac.hecho{border-left:3px solid var(--accent)}
.td-pac-info{flex:1;min-width:220px}
.td-pac-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.td-pac-nombre{font-size:14px;font-weight:600;color:var(--text)}
.td-pac-tel{font-size:12px;font-family:'JetBrains Mono',monospace;color:var(--accent);text-decoration:none;white-space:nowrap}
.td-pac-tel:hover{text-decoration:underline}
.td-pac-accion{font-size:13px;color:var(--text);margin-top:6px;line-height:1.5}
.td-pac-ctx{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}
.td-pac-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}
.td-pac-btn{padding:6px 12px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;color:var(--muted);font-family:'Inter',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.td-pac-btn:hover:not(:disabled){color:var(--text);border-color:var(--muted)}
.td-pac-btn:disabled{opacity:.6;cursor:default}
.td-pac-btn.sel.agendo_cita{color:var(--green);background:rgba(63,185,80,.12);border-color:rgba(63,185,80,.4)}
.td-pac-btn.sel.no_respondio{color:var(--amber);background:rgba(227,179,65,.12);border-color:rgba(227,179,65,.4)}
.td-pac-btn.sel.no_aplicaba{color:var(--muted);background:var(--surface2);border-color:var(--muted)}
.td-pac-btn.td-nopac-opt.sel{color:var(--accent);background:rgba(0,212,170,.1);border-color:var(--accent)}

.td-actions{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}
.td-complete{padding:9px 18px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#0D1117;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}
.td-complete:hover{background:var(--accent2)}
.td-save-msg{font-size:12px;color:var(--muted)}
.td-save-msg.err{color:var(--red)}
.td-nopac{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}
.td-nopac-lbl{font-size:13px;font-weight:600;color:var(--text);margin-bottom:12px}

/* ══ RESUMEN SEMANAL DEL DUEÑO ══════════════════════════════════════════ */
.tareas-resumen{padding:6px 12px;background:transparent;border:1px solid rgba(0,212,170,.35);border-radius:var(--radius-sm);color:var(--accent);font-family:'Inter',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;margin-left:auto}
.tareas-resumen:hover{background:rgba(0,212,170,.08)}
.tareas-resumen + .tareas-refresh{margin-left:8px}

.rs-overlay{position:fixed;inset:0;background:rgba(1,4,9,.75);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.rs-overlay.open{display:flex}
.rs-modal{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.rs-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface2)}
.rs-modal-title{font-size:14px;font-weight:600;color:var(--text)}
.rs-close{background:none;border:none;color:var(--faint);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color .15s}
.rs-close:hover{color:var(--text)}
.rs-modal-body{padding:20px;overflow-y:auto}
.rs-sub{font-size:12px;color:var(--muted);margin-bottom:14px}
.rs-hero{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;text-align:center}
.rs-hero-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.rs-hero-val{font-family:'JetBrains Mono',monospace;font-size:34px;font-weight:600;color:var(--accent);line-height:1.1;margin:8px 0 6px}
.rs-hero-sub{font-size:12px;color:var(--muted)}
.rs-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.rs-stat{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;text-align:center}
.rs-stat-num{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:600;color:var(--text)}
.rs-stat-den{font-size:13px;color:var(--faint)}
.rs-stat-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
.rs-stat.rs-alert .rs-stat-num{color:var(--red)}
.rs-section-t{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:16px 0 10px}
.rs-item{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--border)}
.rs-item:last-child{border-bottom:none}
.rs-item-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:6px;background:var(--faint)}
.rs-item-dot.done{background:var(--green)}
.rs-item-dot.prio-alta{background:var(--red)}
.rs-item-dot.prio-media{background:var(--amber)}
.rs-item-dot.prio-baja{background:var(--muted)}
.rs-item-t{font-size:13px;color:var(--text);line-height:1.4}
.rs-item-sub{font-size:11px;color:var(--muted);margin-top:2px}
.rs-foot{font-size:11px;color:var(--faint);text-align:center;margin-top:18px;font-style:italic}
.rs-modal-foot{display:flex;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface2)}
.rs-copy{padding:8px 16px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#0D1117;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}
.rs-copy:hover{background:var(--accent2)}
.rs-msg{font-size:12px;color:var(--green)}
@media(max-width:600px){.rs-stats{grid-template-columns:1fr}}
