/* iGO App layer — workspace shell + refined shared components.
   Loaded AFTER styles.css + igo-design-system.css on app pages and anywhere
   the new components are used. Tokens inherited from igo-design-system.css. */

/* ---- Icon base ---- */
.igo-ic{display:inline-block;vertical-align:middle;flex-shrink:0}
[data-icon]{display:inline-flex;align-items:center;justify-content:center;line-height:0}

/* ===================================================================
   APP SHELL
   =================================================================== */
/* No solid bg here — let the body's blueprint grid + glow show through the content
   area. The sidebar/topbar keep their own translucent glass bg over the grid. */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - var(--app-top-offset,0px))}
.app-sidebar{position:sticky;top:var(--app-top-offset,0px);align-self:start;height:calc(100vh - var(--app-top-offset,0px));display:flex;flex-direction:column;background:rgba(33,37,46,0.94);border-right:1px solid var(--border);backdrop-filter:blur(18px);z-index:30}
.app-sidebar-head{display:flex;align-items:center;gap:8px;padding:clamp(12px,1.6vh,18px) 14px clamp(10px,1.4vh,16px);border-bottom:1px solid var(--border);flex-shrink:0}
.app-logo-mark{flex-shrink:0}
.app-sidebar .logo-text{font-family:var(--display);font-weight:700;font-size:13px;color:var(--text);text-transform:uppercase;letter-spacing:0.01em}
.app-sidebar .logo-text span{color:var(--accent2)}
.app-nav{display:flex;flex-direction:column;gap:2px;padding:clamp(8px,1.4vh,14px) 12px;overflow-y:auto;flex:1 1 0;min-height:0;scrollbar-width:thin}
.app-nav-group{font-size:0.58rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);padding:clamp(8px,1.5vh,14px) 10px clamp(4px,0.7vh,6px)}
.nav-item{display:flex;align-items:center;gap:clamp(9px,1.3vh,11px);padding:clamp(6px,1.05vh,9px) 11px;border-radius:0;color:var(--muted2);text-decoration:none;font-size:clamp(0.76rem,0.62rem + 0.42vh,0.82rem);font-weight:500;transition:background .15s,color .15s;cursor:pointer}
.nav-item:hover{background:rgba(255,255,255,0.04);color:var(--text)}
.nav-item.active{background:var(--accent-glow);color:var(--accent2);box-shadow:inset 2px 0 0 var(--accent)}
.nav-item .igo-ic{color:currentColor}
.nav-item-badge{margin-left:auto;font-family:var(--mono);font-size:0.62rem;font-weight:600;padding:1px 7px;border-radius:0;background:rgba(255,255,255,0.06);color:var(--muted2)}
.nav-item.active .nav-item-badge{background:var(--accent-glow);color:var(--accent2)}
.nav-dot{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:0;background:var(--accent2,#10B892);color:#0b0e13;font-family:var(--mono);font-size:0.62rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-item-badge.hot{background:var(--red-bg);color:var(--red)}
/* AI Search teaser — brand-green shimmer on the label (mirrors the logo sheen, igoBrandSheen) */
.nav-item-ai > span:not(.nav-item-badge){font-weight:600;background-image:linear-gradient(100deg,#2f9e63 0%,#3FE0C0 30%,#c4f4d8 50%,#3FE0C0 70%,#2f9e63 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:igoBrandSheen 3.4s linear infinite}
.nav-item-ai .igo-ic{color:#3FE0C0;filter:drop-shadow(0 0 5px rgba(63,224,192,0.5))}
.nav-item-ai .nav-item-badge{background:rgba(16,184,146,0.18);color:#3FE0C0}
@media (prefers-reduced-motion:reduce){.nav-item-ai > span:not(.nav-item-badge){animation:none;background-position:50% 50%}}
.app-sidebar-foot{border-top:1px solid var(--border);padding:clamp(8px,1.3vh,12px);flex-shrink:0}
.plan-card{background:rgba(33,37,46,0.5);border:1px solid var(--border);border-radius:0;padding:clamp(9px,1.4vh,12px)}
.plan-card-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(5px,0.9vh,8px)}
.plan-name{font-size:clamp(0.7rem,0.6rem + 0.3vh,0.74rem);font-weight:700;color:var(--text)}
.plan-tag{font-family:var(--mono);font-size:0.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent2);background:var(--accent-glow);border:1px solid rgba(16,184,146,.28);padding:2px 7px;border-radius:0}
.usage-meter{height:5px;border-radius:0;background:rgba(255,255,255,0.08);overflow:hidden;margin:5px 0 4px}
.usage-meter span{display:block;height:100%;border-radius:0;background:linear-gradient(90deg,var(--accent2),var(--accent))}
.usage-label{font-size:0.64rem;color:var(--muted);display:flex;justify-content:space-between}
.app-user{display:flex;align-items:center;gap:9px;padding:9px 6px 2px;margin-top:8px}
.app-user-avatar{width:30px;height:30px;border-radius:50%;background:var(--surface2);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:0.7rem;font-weight:700;color:var(--muted2)}
.app-user-meta{min-width:0;flex:1}
.app-user-name{font-size:0.76rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-user-mail{font-size:0.64rem;color:var(--muted);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.app-main{display:flex;flex-direction:column;min-width:0;height:calc(100vh - var(--app-top-offset,0px));overflow:hidden}
.app-scrim{position:fixed;inset:0;background:rgba(20,23,29,.6);z-index:29;display:none}
.app-scrim.open{display:block}
/* top:0 — .app-main is the scroll container (overflow:hidden) and already
   starts below the staging bar, so the offset must NOT be re-applied here. */
.app-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:0 24px;height:60px;background:rgba(33,37,46,0.82);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}
.app-topbar h1{font-family:var(--display);font-size:1.12rem;font-weight:700;letter-spacing:-0.02em;color:var(--text)}
.app-topbar .topbar-sub{font-size:0.72rem;color:var(--muted)}
.topbar-spacer{flex:1}
.topbar-search{position:relative;width:min(340px,38vw)}
.topbar-search .igo-ic{display:block;color:var(--muted);pointer-events:none}
.topbar-search input{width:100%;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:0;padding:9px 12px 9px 34px;color:var(--text);font-size:0.8rem;outline:none;transition:border-color .15s,box-shadow .15s}
.topbar-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:0;border:1px solid var(--border);background:rgba(33,37,46,0.52);color:var(--muted2);cursor:pointer;transition:all .15s;position:relative}
.icon-btn:hover{border-color:var(--accent);color:var(--accent2);background:var(--accent-glow)}
.icon-btn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid var(--bg)}
.app-content{padding:24px;flex:1;min-width:0;min-height:0;overflow-y:auto}
/* Toolbar/list pages: pin filters + pager, scroll ONLY the list/table itself */
.app-content:has(> .ops-toolbar){display:flex;flex-direction:column;overflow:visible}
.app-content:has(> .ops-toolbar) > *{flex-shrink:0}
.app-content:has(> .ops-toolbar) > .ops-table-wrap,
.app-content:has(> .ops-toolbar) > .ppl-grid,
.app-content:has(> .ops-toolbar) > .saved-grid,
.app-content:has(> .ops-toolbar) > #sigList{flex:1 1 auto;min-height:0;overflow:auto}
.app-burger{display:none}

/* ===================================================================
   BUTTONS / SEGMENTED
   =================================================================== */
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:0;font-size:0.78rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s;text-decoration:none;font-family:var(--sans)}
.btn-sm{padding:6px 10px;font-size:0.72rem}
.btn.solid{background:var(--accent);color:#fff;box-shadow:0 0 18px var(--accent-glow)}
.btn.solid:hover{transform:translateY(-1px);box-shadow:0 0 26px rgba(14,122,98,.3)}
.btn.ghost{background:rgba(33,37,46,0.52);border-color:var(--border2);color:var(--muted2)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent2);background:var(--accent-glow)}
.seg{display:inline-flex;background:rgba(33,37,46,0.55);border:1px solid var(--border);border-radius:0;padding:3px;gap:2px}
.seg button{border:none;background:transparent;color:var(--muted2);font-size:0.74rem;font-weight:600;padding:6px 13px;border-radius:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s;font-family:var(--sans)}
.seg button.active{background:var(--accent-glow);color:var(--accent2);box-shadow:inset 0 0 0 1px rgba(16,184,146,.28)}
.seg button:hover:not(.active){color:var(--text)}

/* ===================================================================
   DECISION-MAKER (CONTACT) CARD — the core feature
   =================================================================== */
.dm-card{background:rgba(33,37,46,0.5);border:1px solid var(--border);border-radius:0;padding:14px;margin-bottom:10px;transition:border-color .15s,background .15s}
.dm-card:hover{border-color:var(--border2)}
.dm-head{display:flex;align-items:flex-start;gap:11px;margin-bottom:11px}
.dm-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.74rem;flex-shrink:0;border:1px solid rgba(255,255,255,0.08)}
.dm-head-meta{min-width:0;flex:1}
.dm-name-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dm-name{font-size:0.86rem;font-weight:700;color:var(--text)}
.dm-role{font-size:0.72rem;color:var(--muted2);margin-top:1px}
.dm-verify{display:inline-flex;align-items:center;flex-shrink:0}
.dm-verify-ic{width:15px;height:15px;display:block}
.role-badge2{display:inline-flex;align-items:center;font-size:0.58rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:0}
.role-decision2{background:var(--accent-glow);color:var(--accent2);border:1px solid rgba(16,184,146,.28)}
.role-biz2{background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(201,147,82,.28)}
.role-tech2{background:var(--purple-bg);color:var(--purple);border:1px solid rgba(59,130,246,.28)}
.role-compliance2{background:var(--green-bg);color:#86EFAC;border:1px solid var(--green-border)}

/* field rows with copy affordance */
.dm-fields{display:flex;flex-direction:column;gap:5px;margin-bottom:11px}
.dm-field{display:flex;align-items:center;gap:9px;padding:8px 10px;background:rgba(33,37,46,0.4);border:1px solid var(--border);border-radius:0;transition:border-color .12s}
.dm-field:hover{border-color:var(--border2)}
.dm-field>.igo-ic{color:var(--muted)}
.dm-field-val{flex:1;min-width:0;font-family:var(--mono);font-size:0.74rem;color:var(--chrome-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-field-val a{color:var(--chrome-bright);text-decoration:none}
.dm-field-val a:hover{color:var(--accent2)}
.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:0;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:all .14s;flex-shrink:0}
.copy-btn:hover{border-color:var(--accent);color:var(--accent2);background:var(--accent-glow)}
.copy-btn.copied{border-color:var(--green-border);color:var(--green);background:var(--green-bg)}

.dm-actions{display:flex;flex-wrap:wrap;gap:7px}
.dm-evidence{display:flex;align-items:center;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,0.05);font-size:0.66rem;color:var(--muted)}
.dm-evidence .igo-ic{color:var(--muted)}
.dm-evidence strong{color:var(--muted2);font-weight:600}
.dm-note{font-size:0.7rem;color:var(--muted2);line-height:1.5;font-style:italic;margin-top:9px}

/* locked state */
.dm-locked .dm-fields{position:relative}
.dm-blur{filter:blur(5px);user-select:none;pointer-events:none}
.dm-lock-cta{display:flex;align-items:center;gap:10px;padding:11px;border:1px dashed rgba(16,184,146,.3);border-radius:0;background:rgba(16,184,146,.05);margin-top:4px}
.dm-lock-cta .igo-ic{color:var(--accent2)}
.dm-lock-cta-text{flex:1;min-width:0}
.dm-lock-cta-title{font-size:0.74rem;font-weight:700;color:var(--text)}
.dm-lock-cta-sub{font-size:0.66rem;color:var(--muted2)}

/* ===================================================================
   CARDS / STATS / TABLES (app)
   =================================================================== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.stat-card{background:rgba(33,37,46,0.45);border:1px solid var(--border);border-radius:0;padding:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.035)}
.stat-card .k{display:flex;align-items:center;gap:8px;font-size:0.64rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.stat-card .k .igo-ic{color:var(--accent2)}
.stat-card .v{font-family:var(--mono);font-size:1.7rem;font-weight:500;color:var(--chrome-pure);line-height:1}
.stat-card .d{font-size:0.7rem;color:var(--muted2);margin-top:6px}
.card{background:rgba(33,37,46,0.45);border:1px solid var(--border);border-radius:0;box-shadow:inset 0 1px 0 rgba(255,255,255,0.035)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border)}
.card-title{font-family:var(--display);font-size:0.92rem;font-weight:700;letter-spacing:-0.01em;color:var(--text)}
.card-body{padding:16px 18px}

/* ===================================================================
   TOAST
   =================================================================== */
.igo-toast-wrap{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.igo-toast{display:flex;align-items:center;gap:9px;background:rgba(33,37,46,0.97);border:1px solid var(--border2);border-radius:0;padding:11px 16px;font-size:0.78rem;color:var(--text);box-shadow:0 18px 44px rgba(0,0,0,.4);backdrop-filter:blur(12px);animation:toastIn .22s ease both}
.igo-toast .igo-ic{color:var(--green)}
.igo-toast.out{animation:toastOut .2s ease both}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(8px)}}

/* ===================================================================
   ONBOARDING TOUR
   =================================================================== */
.tour-overlay{position:fixed;inset:0;z-index:280;background:rgba(20,23,29,.62);backdrop-filter:blur(2px);display:none}
.tour-overlay.open{display:block}
.tour-pop{position:fixed;z-index:281;width:300px;background:rgba(33,37,46,0.99);border:1px solid var(--border2);border-radius:0;padding:16px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.tour-step{font-family:var(--mono);font-size:0.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent2);margin-bottom:7px}
.tour-title{font-family:var(--display);font-size:0.98rem;font-weight:700;color:var(--text);margin-bottom:6px}
.tour-text{font-size:0.78rem;color:var(--muted2);line-height:1.6;margin-bottom:14px}
.tour-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tour-dots{display:flex;gap:5px}
.tour-dots i{width:6px;height:6px;border-radius:50%;background:var(--border2)}
.tour-dots i.on{background:var(--accent2);width:16px;border-radius:0}
.tour-spot{position:fixed;z-index:280;border-radius:0;box-shadow:0 0 0 9999px rgba(20,23,29,.62);transition:all .25s cubic-bezier(.4,0,.2,1);pointer-events:none}

/* ===================================================================
   EMPTY STATE
   =================================================================== */
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:54px 24px;color:var(--muted2)}
.empty-ic{width:52px;height:52px;border-radius:0;display:flex;align-items:center;justify-content:center;background:rgba(33,37,46,0.6);border:1px solid var(--border);color:var(--muted);margin-bottom:14px}
.empty h3{font-family:var(--display);font-size:1rem;color:var(--text);margin-bottom:6px}
.empty p{font-size:0.8rem;max-width:380px;line-height:1.6}

/* ===================================================================
   OPERATOR PROFILE PANEL (slide-in, shared)
   =================================================================== */
.op-panel-scrim{position:fixed;top:var(--app-top-offset,0px);left:0;right:0;bottom:0;z-index:40;background:rgba(20,23,29,.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .2s}
.op-panel-scrim.open{opacity:1;pointer-events:auto}
.op-panel{position:fixed;top:var(--app-top-offset,0px);right:0;bottom:0;width:min(440px,100vw);z-index:41;background:rgba(33,37,46,0.98);border-left:1px solid var(--border);box-shadow:-24px 0 60px rgba(0,0,0,.42);backdrop-filter:blur(22px);opacity:0;visibility:hidden;display:flex;flex-direction:column;overflow:hidden}
.op-panel.open{opacity:1;visibility:visible}
.op-panel-head{padding:18px 18px 0;border-bottom:1px solid var(--border);position:relative}
.op-panel-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:0;border:1px solid var(--border);background:rgba(33,37,46,.6);color:var(--muted2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.op-panel-close:hover{color:var(--text);border-color:var(--border2)}
.op-panel-id{display:flex;align-items:flex-start;gap:13px;margin-bottom:14px;padding-right:38px}
.op-panel-logo{width:46px;height:46px;border-radius:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0;border:1px solid rgba(255,255,255,0.08)}
.op-panel-name{font-family:var(--display);font-size:1.05rem;font-weight:700;letter-spacing:-0.01em;color:var(--text)}
.op-panel-domain{font-family:var(--mono);font-size:0.72rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px;margin-top:3px}
.op-panel-domain .copy-btn{width:22px;height:22px}
.op-panel-domain a,.op-domain a,.rel-type a{color:inherit;text-decoration:none}
.op-panel-domain a:hover,.op-domain a:hover,.rel-type a:hover{color:var(--accent2);text-decoration:underline}
.op-panel-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.op-panel-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;margin-top:4px}
.op-panel-tabs::-webkit-scrollbar{display:none}
.op-tab{padding:9px 12px;font-size:0.74rem;font-weight:600;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:all .15s}
.op-tab:hover{color:var(--text)}
.op-tab.active{color:var(--accent2);border-bottom-color:var(--accent)}
.op-panel-body{padding:16px 18px 28px;overflow-y:auto;flex:1}
.op-panel-actions{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:rgba(33,37,46,0.6)}
.dsec{margin-bottom:20px}
.dsec-h{display:flex;align-items:center;gap:7px;font-size:0.6rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:11px}
.dsec-h .igo-ic{color:var(--accent2)}
.kv{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:0.78rem}
.kv .k{color:var(--muted2)}
.kv .v{font-weight:600;color:var(--text);text-align:right}
.why-box{display:flex;gap:9px;background:var(--orange-bg);border:1px solid rgba(249,115,22,.22);border-radius:0;padding:11px 13px;margin-bottom:14px}
.why-box .igo-ic{color:var(--orange);flex-shrink:0;margin-top:1px}
.why-box-t{font-size:0.76rem;font-weight:700;color:var(--orange);margin-bottom:2px}
.why-box-d{font-size:0.72rem;color:var(--muted2);line-height:1.5}
.why-now{background:var(--orange-bg);border:1px solid rgba(249,115,22,.22);border-radius:0;padding:12px 14px;margin-bottom:14px}
.why-now-h{display:flex;align-items:center;gap:7px;font-size:0.78rem;font-weight:700;color:var(--orange);margin-bottom:8px}
.why-now-h .igo-ic{color:var(--orange);flex-shrink:0}
.why-now-lines{display:flex;flex-direction:column;gap:3px;font-size:0.74rem;color:var(--muted2);line-height:1.55}
.why-now-lines strong{color:var(--text);font-weight:600}
.why-now-next{margin-top:9px;padding-top:9px;border-top:1px solid rgba(249,115,22,.18);font-size:0.74rem;color:var(--muted2);line-height:1.5}
.why-now-next strong{color:var(--orange);font-weight:700;letter-spacing:.02em;margin-right:3px}
/* AI brief variant (slice 3) — teal accent, cites live signals */
.why-now.ai-brief{background:var(--accent-glow,rgba(16,184,146,.08));border-color:rgba(16,184,146,.28)}
.why-now.ai-brief .why-now-h{color:var(--accent2,#10B892)}
.why-now.ai-brief .why-now-h .igo-ic{color:var(--accent2,#10B892)}
.why-now.ai-brief .why-now-next{border-top-color:rgba(16,184,146,.2)}
.why-now.ai-brief .why-now-next strong{color:var(--accent2,#10B892)}
.ai-brief-tag{font-family:var(--mono,monospace);font-size:0.56rem;font-weight:700;letter-spacing:.08em;background:var(--accent2,#10B892);color:#0b0e13;padding:1px 5px;margin-left:2px}
.ai-brief-refresh{margin-left:auto;background:none;border:0;color:var(--muted);cursor:pointer;padding:2px;display:inline-flex;flex-shrink:0}
.ai-brief-refresh:hover{color:var(--accent2,#10B892)}
.ai-brief-points{margin:8px 0 0;padding-left:16px;display:flex;flex-direction:column;gap:3px;font-size:0.73rem;color:var(--muted2);line-height:1.5}
.ai-brief-points li{list-style:disc}
/* feedback button + app modals (feedback / submit-a-signal) */
.igo-fb-btn{gap:6px;flex-shrink:0}
.igo-fb-dot{min-width:16px;height:16px;padding:0 4px;border-radius:0;background:var(--accent2,#10B892);color:#0b0e13;font-family:var(--mono);font-size:0.58rem;font-weight:700;align-items:center;justify-content:center}
.igo-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(3px);z-index:1200;display:none;align-items:center;justify-content:center;padding:16px}
.igo-modal-overlay.open{display:flex}
.igo-modal{background:var(--surface,#11161f);border:1px solid var(--border,#222834);border-radius:0;width:100%;max-width:460px;max-height:86vh;display:flex;flex-direction:column;box-shadow:0 22px 60px rgba(0,0,0,.5)}
.igo-m-head{display:flex;align-items:center;gap:9px;padding:15px 18px;border-bottom:1px solid var(--border,#222834);font-weight:700;font-size:0.92rem;color:var(--text,#f2f4f9)}
.igo-m-head .igo-ic{color:var(--accent,#10B892);flex-shrink:0}
.igo-m-x{margin-left:auto;background:transparent;border:none;color:var(--muted,#9398A6);cursor:pointer;display:flex;padding:3px;border-radius:0}
.igo-m-x:hover{color:var(--text,#f2f4f9);background:var(--surface2,#161b25)}
.igo-m-body{padding:16px 18px;overflow:auto}
.igo-m-lead{font-size:0.8rem;color:var(--muted2,#C1C5D0);line-height:1.55;margin-bottom:14px}
.igo-m-label{display:block;font-size:0.72rem;font-weight:600;color:var(--muted2,#C1C5D0);margin:11px 0 5px}
.igo-m-input,.igo-m-textarea{width:100%;padding:9px 12px;border-radius:0;border:1px solid var(--border,#222834);background:var(--bg,#0a0d14);color:var(--text,#f2f4f9);font-family:inherit;font-size:0.82rem;outline:none}
.igo-m-input:focus,.igo-m-textarea:focus{border-color:var(--accent,#10B892)}
.igo-m-textarea{resize:vertical;min-height:84px;line-height:1.5}
.igo-m-foot{display:flex;gap:9px;justify-content:flex-end;padding:13px 18px;border-top:1px solid var(--border,#222834)}
.igo-modal-lg{max-width:540px}
/* ticket board + thread (feedback / signals) */
.igo-tk-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.igo-tk-top-t{font-size:0.82rem;font-weight:700;color:var(--text,#f2f4f9)}
.igo-tk-list{display:flex;flex-direction:column;gap:8px}
.igo-tk-item{display:block;width:100%;text-align:left;background:var(--bg,#0a0d14);border:1px solid var(--border,#222834);border-radius:0;padding:11px 13px;cursor:pointer;font-family:inherit}
.igo-tk-item:hover{border-color:var(--accent,#10B892)}
.igo-tk-item-h{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.igo-tk-co{font-weight:700;font-size:0.8rem;color:var(--text,#f2f4f9)}
.igo-tk-date{margin-left:auto;font-size:0.64rem;color:var(--muted,#9398A6);flex-shrink:0}
.igo-tk-snip{font-size:0.77rem;color:var(--muted2,#C1C5D0);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.igo-tk-rep{font-size:0.64rem;color:var(--accent,#10B892);font-weight:700;margin-top:4px}
.igo-tk-new{display:inline-flex;align-items:center;gap:4px;width:fit-content;color:var(--accent2,#10B892);background:var(--accent-glow);border-radius:0;padding:2px 9px}
.igo-st{font-size:0.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:0;flex-shrink:0}
.igo-st.new,.igo-st.pending{background:rgba(249,115,22,.14);color:#FDB894}
.igo-st.seen{background:rgba(59,130,246,.14);color:#93B4FF}
.igo-st.resolved,.igo-st.approved{background:rgba(16,184,146,.16);color:#7FD3A8}
.igo-st.rejected{background:rgba(239,68,68,.14);color:#F4A0A0}
.igo-back{background:transparent;border:none;color:var(--muted2,#C1C5D0);cursor:pointer;font-size:0.76rem;display:inline-flex;align-items:center;gap:5px;margin-bottom:12px;padding:2px 0}
.igo-back:hover{color:var(--text,#f2f4f9)}
.igo-th-head{background:var(--bg,#0a0d14);border:1px solid var(--border,#222834);border-radius:0;padding:12px 14px;margin-bottom:12px}
.igo-th-head .igo-st{margin-bottom:7px;display:inline-block}
.igo-th-co{font-weight:700;font-size:0.86rem;margin-bottom:4px}
.igo-th-body{font-size:0.8rem;color:var(--muted2,#C1C5D0);line-height:1.5;white-space:pre-wrap;word-break:break-word}
.igo-th-meta{font-size:0.66rem;color:var(--muted,#9398A6);margin-top:6px;display:flex;flex-wrap:wrap;gap:3px 12px}
.igo-msgs{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.igo-msg{max-width:86%;padding:8px 12px;border-radius:0;font-size:0.8rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.igo-msg.admin{align-self:flex-start;background:var(--surface2,#161b25);color:var(--text,#f2f4f9);border-bottom-left-radius:0}
.igo-msg.user{align-self:flex-end;background:rgba(16,184,146,.16);border:1px solid rgba(16,184,146,.28);color:var(--text,#f2f4f9);border-bottom-right-radius:0}
.igo-msg-meta{font-size:0.6rem;color:var(--muted,#9398A6);margin-top:4px}
.igo-th-empty{font-size:0.76rem;color:var(--muted,#9398A6);text-align:center;padding:10px 0 16px}
.igo-reply{display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--border,#222834);padding-top:12px}
.igo-reply textarea{flex:1;min-height:42px;max-height:120px}
.igo-empty-lead{font-size:0.8rem;color:var(--muted2,#C1C5D0);line-height:1.5;margin-bottom:12px}
/* shared list pager */
.igo-pager{display:flex;align-items:center;gap:12px;justify-content:center;margin:22px 0 6px}
.igo-pager button{padding:6px 13px;border-radius:0;border:1px solid var(--border,#222834);background:var(--surface,#11161f);color:var(--muted2,#C1C5D0);font:inherit;font-size:0.76rem;font-weight:600;cursor:pointer}
.igo-pager button:hover:not(:disabled){border-color:var(--accent,#10B892);color:var(--text,#f2f4f9)}
.igo-pager button:disabled{opacity:.4;cursor:not-allowed}
.igo-pager span{font-size:0.76rem;color:var(--muted2,#C1C5D0);font-family:var(--mono,monospace)}
/* header profile dropdown */
.igo-profile{position:relative;flex-shrink:0}
.igo-prof-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border,#222834);background:var(--surface2,#161b25);color:var(--text,#f2f4f9);font-size:0.72rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}
.igo-prof-btn:hover{border-color:var(--accent,#10B892)}
.igo-prof-menu{position:absolute;top:calc(100% + 8px);right:0;width:232px;background:var(--surface,#11161f);border:1px solid var(--border,#222834);border-radius:0;box-shadow:0 18px 44px rgba(0,0,0,.5);padding:6px;z-index:1100;display:none}
.igo-prof-menu.open{display:block}
.igo-prof-head{padding:8px 10px 10px;border-bottom:1px solid var(--border,#222834);margin-bottom:6px}
.igo-prof-name{font-size:0.82rem;font-weight:700;color:var(--text,#f2f4f9)}
.igo-prof-mail{font-size:0.7rem;color:var(--muted,#9398A6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.igo-prof-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:0;font-size:0.8rem;color:var(--muted2,#C1C5D0);text-decoration:none;cursor:pointer}
.igo-prof-item:hover{background:var(--surface2,#161b25);color:var(--text,#f2f4f9)}
.igo-prof-item .igo-ic{flex-shrink:0;color:var(--muted,#9398A6)}
.lic-row{background:rgba(33,37,46,0.4);border:1px solid var(--border);border-radius:0;padding:12px;margin-bottom:8px}
.lic-row-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.sig-row{display:flex;gap:11px;background:rgba(33,37,46,0.4);border:1px solid var(--border);border-radius:0;padding:12px;margin-bottom:8px}
.sig-ic{width:32px;height:32px;border-radius:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sig-t{font-size:0.8rem;font-weight:700;color:var(--text);margin-bottom:2px}
.sig-d{font-size:0.72rem;color:var(--muted2);line-height:1.5}
.sig-why{font-size:0.7rem;color:var(--accent2);margin-top:5px;display:flex;align-items:center;gap:5px}
.rel-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(33,37,46,0.4);border:1px solid var(--border);border-radius:0;margin-bottom:7px}
.rel-ic{width:32px;height:32px;border-radius:0;background:var(--accent-glow);color:var(--accent2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rel-meta{flex:1;min-width:0}
.rel-name{font-size:0.78rem;font-weight:600;color:var(--text)}
.rel-type{font-size:0.66rem;color:var(--muted)}
.src-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:0.74rem;color:var(--muted2)}
.src-item .igo-ic{color:var(--muted)}
@media(max-width:920px){.op-panel{width:100vw}}

/* ===================================================================
   APP TABLE polish (workspace)
   =================================================================== */
.ops-table-wrap{border:1px solid var(--border);border-radius:0;overflow-x:auto;background:rgba(33,37,46,0.28)}
.ops-table-wrap table{min-width:760px}
.ops-table-wrap thead th{position:sticky;top:0;z-index:3;background:#21252e!important}
.ops-table-wrap tbody tr{animation:none!important;opacity:1!important}
.ops-table-wrap tbody tr.selected{background:var(--accent-glow)!important;box-shadow:inset 2px 0 0 var(--accent)}
/* keep a long operator name from stretching the first column off-screen */
.ops-table-wrap .op-cell{max-width:360px;min-width:0}
.ops-table-wrap .op-name,.ops-table-wrap .op-domain{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:330px}
.ops-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.ops-toolbar .filter-select{background:rgba(255,255,255,0.05)!important;border:1px solid rgba(255,255,255,0.12)!important;border-radius:0!important;color:var(--text)!important;padding:8px 11px;font-size:0.78rem}
.chip-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:0;font-size:0.74rem;font-weight:600;cursor:pointer;border:1px solid var(--border);background:rgba(33,37,46,0.5);color:var(--muted2);transition:all .15s}
.chip-toggle .igo-ic{color:currentColor}
.chip-toggle:hover{border-color:var(--border2);color:var(--text)}
.chip-toggle.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent2)}
.result-count{font-size:0.74rem;color:var(--muted);font-family:var(--mono)}

/* ===================================================================
   APP RESPONSIVE
   =================================================================== */
@media(max-width:920px){
  .app{grid-template-columns:1fr}
  .app-sidebar{position:fixed;left:0;top:var(--app-top-offset,0px);bottom:0;width:248px;transform:translateX(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1)}
  .app-sidebar.open{transform:translateX(0);box-shadow:24px 0 60px rgba(0,0,0,.4)}
  .app-burger{display:inline-flex}
  .topbar-search{width:auto;flex:1}
}

/* ============================================================
   BRAND LOGO — ambient premium sheen (app sidebar).
   Mirrors the public sheen: slow (~5.6s), low-contrast, calm —
   a soft highlight drifting through the green "Operators" word
   and the white "iGO" mark. Distinct from igo-loader (~1.4s,
   active). Loaded after igo-design-system.css so it wins cleanly.
   Gated by @supports; prefers-reduced-motion freezes it.
   ============================================================ */
@keyframes igoBrandSheen{from{background-position:0% 50%}to{background-position:-200% 50%}}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  /* ONLY the "iGO" lettermark gets the sheen; the "Operators" wordmark stays solid. */
  .app-logo-mark::before{
    background-image:linear-gradient(100deg,var(--chrome-pure,#F2F4F9) 0%,var(--chrome-pure,#F2F4F9) 30%,#3FE0C0 50%,var(--chrome-pure,#F2F4F9) 70%,var(--chrome-pure,#F2F4F9) 100%);
    background-size:200% 100%;
    background-position:0% 50%;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:igoBrandSheen 5.6s linear infinite;
  }
}
@media (prefers-reduced-motion:reduce){
  .app-logo-mark::before{animation:none!important;background-position:50% 50%!important}
}

/* audit findings: chamfer prominent app cards/panels; uppercase in-card titles */
.card,.stat-card,.dm-card,.plan-card,.op-panel,.panel,.pillar-card,.signal-card,.contact-card{clip-path:polygon(13px 0,100% 0,100% calc(100% - 13px),calc(100% - 13px) 100%,0 100%,0 13px) !important}
.card-title{text-transform:uppercase !important;font-family:var(--display) !important;letter-spacing:-0.01em !important}

/* Shared filter-dropdown styles (moved from operators.html inline <style> — slice 1;
   used by the jurisdictions multi-select AND the saved-searches widget on operators+signals) */
.jur-multi{position:relative;display:inline-block}
.jur-multi-btn{cursor:pointer;text-align:left;min-width:150px;white-space:nowrap}
.jur-multi-btn.active{border-color:var(--accent);color:var(--text)}
.jur-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:50;width:264px;max-height:340px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:0;padding:6px;box-shadow:0 14px 34px rgba(0,0,0,.45)}
.jur-opt{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:0;font-size:0.78rem;color:var(--text);cursor:pointer}
.jur-opt:hover{background:var(--surface2)}
.jur-opt input{accent-color:var(--accent);width:15px;height:15px;flex-shrink:0;margin:0}

/* ---- aiGO / Manual mode switcher (docked pill + session chooser) ---- */
#igoModePill{display:flex;flex-shrink:0;border:1px solid var(--border2,#374151);background:var(--surface,#161b26);font-family:var(--mono,monospace);font-size:0.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
#igoModePill.fixed{position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:900}
.mode-pill-host{display:flex;align-items:center;justify-content:center;flex:1 1 0;min-width:max-content}
@media(max-width:560px){.app-topbar .topbar-sub{display:none}}
#igoModePill a{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;color:var(--muted);text-decoration:none;transition:color .15s}
#igoModePill a.active{background:var(--accent-glow,rgba(16,184,146,.14));color:var(--accent2,#10B892)}
#igoModePill a:not(.active):hover{color:var(--text)}
@media(max-width:760px){#igoModePill a .lbl{display:none}#igoModePill a{padding:7px 11px}}
#igoModeChooser{position:fixed;inset:0;z-index:1400;background:var(--bg,#3A404C);display:flex;align-items:center;justify-content:center;padding:20px;transition:background .4s ease}
#igoModeChooser.leaving{background:rgba(58,64,76,0);pointer-events:none}
#igoModeChooser .imc-inner{text-align:center;max-width:660px;width:100%}
#igoModeChooser.leaving .imc-kicker,#igoModeChooser.leaving .imc-title,#igoModeChooser.leaving .imc-hint{opacity:0;transition:opacity .22s ease}
.imc-kicker{font-family:var(--mono,monospace);font-size:0.64rem;font-weight:700;letter-spacing:.16em;color:var(--accent2,#10B892);margin-bottom:14px}
.imc-title{font-family:var(--display,inherit);font-weight:700;text-transform:uppercase;font-size:clamp(1.2rem,3vw,1.7rem);letter-spacing:.01em;margin:0 0 26px;color:var(--text)}
.imc-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.imc-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:30px 22px;background:var(--surface,#161b26);border:1px solid var(--border2,#374151);color:var(--text);cursor:pointer;font-family:inherit;clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);transition:border-color .15s,transform .15s;will-change:transform}
.imc-card:hover{border-color:var(--accent2,#10B892);transform:translateY(-2px)}
.imc-card svg{color:var(--accent2,#10B892)}
.imc-name{font-family:var(--display,inherit);font-weight:700;text-transform:uppercase;font-size:1rem;letter-spacing:.01em}
.imc-desc{font-size:0.78rem;color:var(--muted2,#9398A6);line-height:1.5;max-width:240px}
.imc-hint{margin-top:22px;font-size:0.7rem;color:var(--muted,#9398A6)}
@media(max-width:560px){.imc-cards{grid-template-columns:1fr}}
