/* Shared configurator styles (POC-V2 Stage 5a).
   Rules common to the 4 configurator pages (sovereign, corporate,
   comparative, corporate-comparative). Loaded via /static/ before each
   page's inline <style>, so page-specific rules keep winning ties.
   Page-specific rules stay inline in the page files. */

  /* ── AInvestor Brand Palette ──────────────────────────────────────────────
     Primary Red  : #E8332A   (AI accent, CTAs, active states)
     Brand Black  : #111111   (headers, panels, footer)
     Dark Black   : #0D0D0D   (log terminal bg)
     White        : #FFFFFF   (card backgrounds)
     Off-white    : #F5F5F5   (page background, alternating rows)
     Border       : #E0E0E0   (dividers, input borders)
     Text Dark    : #1A1A1A   (headings)
     Text Body    : #555555   (labels, secondary text)
  ── ──────────────────────────────────────────────────────────────────── */

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,sans-serif;background:#F0F0F0;color:#1A1A1A;min-height:100vh;padding:72px 16px 48px}
  /* ── Nav Bar ── */

.ainv-nav{position:fixed;top:0;left:0;right:0;height:44px;background:#111111;display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:1000;border-bottom:1px solid #1e1e1e}
.ainv-nav-brand{color:#fff;font-size:15px;font-weight:900;letter-spacing:-.3px;text-decoration:none}
.ainv-nav-brand .ai{color:#E8332A}
.ainv-nav-links{display:flex;align-items:center;gap:2px}
.ainv-nav-links a:hover,.ainv-nav-links button:hover{color:#E8332A;background:rgba(232,51,42,.1)}
.ainv-nav-sep{width:1px;height:16px;background:#2a2a2a;margin:0 4px}
  /* ── Modals ── */

.ainv-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:2000;align-items:center;justify-content:center;padding:20px}
.ainv-modal.is-open{display:flex}
.ainv-modal-box{background:#ffffff;border-radius:12px;padding:32px 28px;max-width:500px;width:100%;position:relative;max-height:88vh;overflow-y:auto}
.ainv-modal-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:18px;color:#999;line-height:1;padding:4px 8px;border-radius:4px;font-family:inherit;transition:background .12s,color .12s}
.ainv-modal-close:hover{background:#f0f0f0;color:#111}
.ainv-about-logo{font-size:24px;font-weight:900;color:#111;letter-spacing:-.5px;margin-bottom:2px}
.ainv-about-logo .ai{color:#E8332A}
.ainv-about-meta{font-size:11px;color:#999;margin-bottom:18px;display:flex;align-items:center;gap:8px}
.ainv-about-meta-sep{width:3px;height:3px;border-radius:50%;background:#ccc}
.ainv-about-section{margin-bottom:16px}
.ainv-about-section label{display:block;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#888;margin-bottom:5px}
.ainv-about-section p{font-size:13px;color:#444;line-height:1.65}
.ainv-help-title{font-size:17px;font-weight:800;color:#111;margin-bottom:4px}
.ainv-help-subtitle{font-size:12px;color:#888;margin-bottom:22px}
.ainv-help-section{margin-bottom:20px}
.ainv-help-section:last-child{margin-bottom:0}
.ainv-help-h{font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#111;padding-bottom:5px;border-bottom:2px solid #E8332A;margin-bottom:9px}
.ainv-help-section p{font-size:13px;color:#444;line-height:1.65}
.ainv-help-section ul{padding-left:16px;margin-top:5px}
.ainv-help-section li{font-size:13px;color:#444;line-height:1.65;margin-bottom:5px}
.ainv-help-section strong{color:#111}
.page-title{text-align:center;margin-bottom:20px}
.page-title h1{font-size:22px;font-weight:900;color:#111111;letter-spacing:-.3px}
.page-title h1 .ai{color:#E8332A}
.page-title p{font-size:12px;color:#777777;margin-top:4px;letter-spacing:.2px}
.page-title .brand-bar{display:inline-flex;align-items:center;gap:10px;margin-bottom:8px}
.page-title .brand-line{height:2px;width:40px;background:#E8332A}
.layout{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
  /* Cards */

.card{background:#fff;border:1px solid #E0E0E0;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.card-header{padding:11px 16px;display:flex;align-items:center;gap:7px;border-bottom:1px solid #F0F0F0}
.card-header h2{font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.card-body{padding:14px 16px}
  /* Config card */

.config-card .card-header{background:#111111}
.config-card .card-header h2{color:#fff}
.config-card .card-header span{color:#FF9090;font-size:10px;margin-left:auto}
.config-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.config-row .lbl{font-size:10px;font-weight:700;color:#777777;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}
input[type=text]:focus{border-color:#E8332A;box-shadow:0 0 0 3px rgba(232,51,42,.1)}
select{padding:7px 10px;border:1.5px solid #E0E0E0;border-radius:7px;font-size:12px;outline:none;background:#fff;cursor:pointer;color:#1A1A1A}
select:focus{border-color:#E8332A}
hr.sep{border:none;border-top:1px solid #F0F0F0;margin:12px 0}
.sec-hdr .pill{background:#F0F0F0;color:#777777;font-size:9px;padding:2px 8px;border-radius:8px;font-weight:600}
.sec-hdr .hint{color:#AAAAAA;font-size:9px;font-weight:400;text-transform:none;letter-spacing:0;margin-left:auto}
  /* Scope chips */

.scope-chips{display:flex;flex-wrap:wrap;gap:7px}
.scope-chip{position:relative;display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:8px;border:1.5px solid #E0E0E0;background:#F8F8F8;cursor:pointer;font-size:12px;color:#555555;transition:all .15s;user-select:none;font-weight:500}
.scope-chip:hover{border-color:#E8332A;color:#E8332A;background:#FEE8E7}
.scope-chip.sel{border-color:transparent;color:#fff;font-weight:700;background:#E8332A}
.scope-chip input{display:none}
.scope-chip .ck{font-size:10px;display:none}
.scope-chip.sel .ck{display:inline}
.tip-icon{width:14px;height:14px;border-radius:50%;background:rgba(0,0,0,.07);font-size:8px;display:inline-flex;align-items:center;justify-content:center;cursor:help;opacity:.55;flex-shrink:0;font-style:normal}
.scope-chip.sel .tip-icon{background:rgba(255,255,255,.2);opacity:.8}
.tip-box{display:none;position:absolute;bottom:calc(100%+7px);left:50%;transform:translateX(-50%);background:#111111;color:#F8F8F8;font-size:11px;padding:7px 10px;border-radius:7px;white-space:normal;width:230px;z-index:500;line-height:1.5;font-weight:400;text-align:left;box-shadow:0 6px 20px rgba(0,0,0,.25);pointer-events:none}
.tip-box::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#111111}
.tip-icon:hover+.tip-box{display:block}
.fc{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:20px;border:1.5px solid #E0E0E0;background:#F8F8F8;cursor:pointer;font-size:11.5px;color:#555555;transition:all .12s;user-select:none}
.fc:hover{border-color:#E8332A;color:#E8332A;background:#FEE8E7}
.fc input{display:none}
.fc .ck2{font-size:9px;display:none}
.fc.sel .ck2{display:inline}
  /* ── RUN BAR ── */

.run-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 16px;background:#F8F8F8;border-top:1px solid #E0E0E0}
.sel-counts{display:flex;gap:7px}
.cnt-badge{background:#111111;color:#E0E0E0;font-size:10px;padding:3px 9px;border-radius:9px;font-weight:600;white-space:nowrap}
.clear-btn{font-size:11px;color:#E8332A;cursor:pointer;padding:4px 10px;border-radius:6px;border:1px solid #F5C0BD;background:#FEF5F5;transition:background .12s}
.clear-btn:hover{background:#FEE8E7}
.run-btn{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:#fff;background:linear-gradient(135deg,#E8332A,#C0251C);padding:9px 22px;border-radius:8px;cursor:pointer;border:none;letter-spacing:.4px;box-shadow:0 3px 10px rgba(232,51,42,.4);transition:all .15s;text-transform:uppercase}
.run-btn:hover{background:linear-gradient(135deg,#C0251C,#A01F17);box-shadow:0 4px 14px rgba(232,51,42,.55);transform:translateY(-1px)}
.run-btn:active{transform:translateY(0)}
.run-btn:disabled{background:#AAAAAA;box-shadow:none;cursor:not-allowed;transform:none}
  /* ── LIVE LOG PANEL ── */

.log-card .card-header{background:#0D0D0D}
.log-card .card-header h2{color:#4ade80;font-family:'Courier New',monospace;font-size:11px}
.log-card .card-header .status-dot{width:8px;height:8px;border-radius:50%;background:#555555;flex-shrink:0}
.log-card .card-header .status-dot.queued{background:#60a5fa;animation:pulse 1s infinite}
.log-card .card-header .status-dot.running{background:#fbbf24;animation:pulse 1s infinite}
.log-card .card-header .status-dot.done{background:#4ade80}
.log-card .card-header .status-dot.error{background:#ef4444}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.log-body{background:#0D0D0D;padding:12px 14px;max-height:360px;overflow-y:auto;font-family:'Courier New',monospace;font-size:11.5px;line-height:1.7}
.log-body::-webkit-scrollbar{width:5px}
.log-body::-webkit-scrollbar-track{background:#1A1A1A}
.log-body::-webkit-scrollbar-thumb{background:#444444;border-radius:3px}
.log-line{white-space:pre-wrap;word-break:break-all}
.log-line.info   {color:#999999}
.log-line.step   {color:#FF8070;font-weight:600}
.log-line.success{color:#4ade80;font-weight:600}
.log-line.warning{color:#fbbf24}
.log-line.error  {color:#f87171}
.log-line.cmd    {color:#E0E0E0}
.log-line.sep    {color:#333333}
.log-empty{color:#555555;font-style:italic;padding:20px 0;text-align:center}
  /* ── CUSTOM DATA SOURCES ── */

.sources-card .card-header{background:#1A1A1A}
.sources-card .card-header h2{color:#fff}
  /* Drop zone */

.drop-zone{border:2px dashed #E0E0E0;border-radius:8px;padding:18px 14px;text-align:center;cursor:pointer;transition:all .15s;background:#F8F8F8;position:relative}
.drop-zone:hover,.drop-zone.drag-over{border-color:#E8332A;background:#FEF5F5}
.drop-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;pointer-events:none}
.drop-zone .dz-icon{font-size:22px;margin-bottom:4px}
.drop-zone .dz-text{font-size:12px;color:#777;font-weight:600}
.drop-zone .dz-sub{font-size:10px;color:#AAAAAA;margin-top:3px}
  /* Attached files list */

.attached-list{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.att-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#F8F8F8;border:1px solid #E0E0E0;border-radius:6px;font-size:11px;color:#1A1A1A}
.att-item .att-icon{font-size:15px;flex-shrink:0}
.att-item .att-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.att-item .att-size{color:#AAAAAA;font-size:10px;white-space:nowrap}
.att-item .att-rm:hover{color:#E8332A}
  /* URL input row */

.url-row{display:flex;gap:6px;align-items:center;margin-top:8px}
.url-row input{flex:1;padding:7px 10px;border:1.5px solid #E0E0E0;border-radius:7px;font-size:12px;outline:none;color:#1A1A1A}
.url-row input:focus{border-color:#E8332A;box-shadow:0 0 0 3px rgba(232,51,42,.08)}
.url-row input::placeholder{color:#BBBBBB}
.url-add-btn:hover{background:#C0251C}
  /* URL list */

.url-list{display:flex;flex-direction:column;gap:5px;margin-top:6px}
.url-item{display:flex;align-items:center;gap:7px;padding:5px 10px;background:#F8F8F8;border:1px solid #E0E0E0;border-radius:6px;font-size:11px}
.url-item .url-text{flex:1;color:#2563eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.url-item .url-rm{font-size:13px;cursor:pointer;color:#AAAAAA;border:none;background:none;padding:0 2px;transition:color .1s}
.url-item .url-rm:hover{color:#E8332A}
.sources-hint{font-size:10px;color:#AAAAAA;margin-top:8px;line-height:1.5}
.back-link{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#888888;text-decoration:none;margin-bottom:16px;padding:4px 0;transition:color .12s}
.back-link:hover{color:#E8332A}
  /* Output files (inside log card) */

.output-files{display:flex;flex-direction:column;gap:6px;padding:12px 16px;border-top:1px solid #F0F0F0}
.output-title{font-size:10px;font-weight:700;color:#555555;letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px}
.output-file{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#F8F8F8;border:1px solid #E0E0E0;border-radius:7px}
.output-file .file-icon{font-size:16px;flex-shrink:0}
.output-file .file-name{font-size:12px;color:#1A1A1A;font-weight:500;flex:1;word-break:break-all}
  /* ── OUTPUT FILES PANEL ── */

.outer{max-width:1200px;margin:0 auto;display:flex;gap:16px;align-items:flex-start}
.main-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px}
.files-panel{width:270px;flex-shrink:0;background:#fff;border:1px solid #E0E0E0;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.files-panel-header{padding:11px 14px;background:#111111;display:flex;align-items:center;gap:7px}
.files-panel-header h2{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#fff;flex:1}
.files-panel-header .fp-count{font-size:10px;background:rgba(232,51,42,.25);color:#FF9090;padding:2px 8px;border-radius:8px;font-weight:600}
.files-panel-header .fp-refresh{font-size:11px;color:#FF9090;cursor:pointer;padding:2px 6px;border-radius:4px;border:1px solid rgba(255,255,255,.15);background:transparent;transition:background .12s}
.files-panel-header .fp-refresh:hover{background:rgba(255,255,255,.1)}
.files-panel-header .fp-loadcfg{font-size:10px;color:#90EE90;cursor:pointer;padding:2px 6px;border-radius:4px;border:1px solid rgba(255,255,255,.15);background:transparent;transition:background .12s;white-space:nowrap}
.files-panel-header .fp-loadcfg:hover{background:rgba(255,255,255,.1)}
.fi-btn.fi-load{color:#2a9d5c;border-color:rgba(42,157,92,.3);background:#f0faf5}
.fi-btn.fi-load:hover{background:#e0f5ea}
.fp-filter{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid #F0F0F0;flex-wrap:wrap}
.fp-flt{font-size:10px;padding:3px 9px;border-radius:12px;border:1.5px solid #E0E0E0;background:#F8F8F8;cursor:pointer;color:#777777;font-weight:600;transition:all .12s}
.fp-flt:hover{border-color:#E8332A;color:#E8332A}
.fp-flt.active{background:#E8332A;border-color:#E8332A;color:#fff}
.fp-raw-toggle{margin-left:auto;font-size:10px;color:#bbb;cursor:pointer;display:flex;align-items:center;gap:3px;user-select:none}
.fp-raw-toggle input{cursor:pointer;accent-color:#999}
.fp-list{max-height:calc(100vh - 220px);overflow-y:auto;padding:6px 0}
.fp-list::-webkit-scrollbar{width:4px}
.fp-list::-webkit-scrollbar-thumb{background:#CCCCCC;border-radius:2px}
.fp-empty{padding:24px 14px;text-align:center;color:#AAAAAA;font-size:11px;font-style:italic}
.fp-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-bottom:1px solid #F5F5F5;transition:background .1s}
.fp-item:hover{background:#F8F8F8}
.fp-item .fi-icon{font-size:18px;flex-shrink:0;margin-top:1px}
.fp-item .fi-body{flex:1;min-width:0}
.fp-item .fi-name{font-size:11px;font-weight:600;color:#1A1A1A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.fp-item .fi-name:hover{color:#E8332A;text-decoration:underline}
.fp-item .fi-meta{font-size:10px;color:#AAAAAA;margin-top:2px}
.fp-item .fi-actions{display:flex;gap:4px;flex-shrink:0;margin-top:1px}
.fp-item .fi-btn{font-size:10px;padding:3px 7px;border-radius:5px;border:1px solid;cursor:pointer;font-weight:600;transition:all .12s;white-space:nowrap}
.fp-item .fi-open{color:#E8332A;border-color:#F5C0BD;background:#FEF5F5}
.fp-item .fi-open:hover{background:#FEE8E7}
.fp-item .fi-del{color:#888888;border-color:#E0E0E0;background:#F8F8F8}
.fp-item .fi-del:hover{background:#EEEEEE;color:#E8332A;border-color:#F5C0BD}
.fp-bulk-bar{display:none;padding:7px 10px;background:#FEF5F5;border-bottom:1px solid #F5C0BD;align-items:center;gap:8px}
.fp-bulk-bar.visible{display:flex}
.fp-bulk-count{font-size:11px;font-weight:600;color:#E8332A;flex:1}
.fp-bulk-del{font-size:11px;font-weight:700;padding:4px 12px;border-radius:5px;background:#E8332A;color:#fff;border:none;cursor:pointer;transition:opacity .12s}
.fp-bulk-del:hover{opacity:.85}
.fp-bulk-del:disabled{opacity:.4;cursor:not-allowed}
.fp-bulk-cancel{font-size:11px;padding:3px 8px;border-radius:5px;background:none;border:1px solid #CCCCCC;cursor:pointer;color:#777;transition:all .12s}
.fp-bulk-cancel:hover{border-color:#999;color:#444}
.fp-item .fi-chk{display:none;width:14px;height:14px;cursor:pointer;flex-shrink:0;margin-top:3px;accent-color:#E8332A}
.files-panel.selecting .fp-item .fi-chk{display:block}
  /* ── Footer ── */

.ainv-footer{margin-top:44px;padding:14px 20px;background:#111111;text-align:center;font-size:11px;color:#777777;letter-spacing:.3px;border-top:2px solid #E8332A}
.ainv-footer a{color:#999999;text-decoration:none;transition:color .12s}
.ainv-footer a:hover{color:#E8332A}
.ainv-footer-brand{font-weight:900;color:#FFFFFF;letter-spacing:.5px;font-size:12px}
.ainv-footer-brand .ai{color:#E8332A}
.cpv-table{width:100%;border-collapse:collapse;font-size:13px}
.cpv-table tr{border-bottom:1px solid #f0f0f0}
.cpv-table tr:last-child{border-bottom:none}
.cpv-lbl{padding:6px 12px 6px 0;color:#777;font-weight:600;white-space:nowrap;vertical-align:top;width:38%}
.cpv-val{padding:6px 0;color:#111;word-break:break-word}
.cpv-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#999;margin-bottom:6px}
.cpv-sources{font-size:12px;color:#444;margin-bottom:6px;line-height:1.5}
.cpv-sources a{color:#2255cc;word-break:break-all}
