/* insight module styles: report builder (.rb-), customers (.cu-), contact approval (.ap-) */

/* ---------------------------------------------------------------- report builder */
.rb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.rb-tile{display:flex;gap:14px;align-items:flex-start;cursor:pointer;transition:transform .15s,border-color .15s}
.rb-tile:hover{transform:translateY(-2px);border-color:var(--scan)}
.rb-tile.off{opacity:.55;cursor:not-allowed}.rb-tile.off:hover{transform:none;border-color:var(--line)}
.rb-tile b{display:block;font:700 16px var(--disp);letter-spacing:.02em}.rb-tile small{display:block;color:var(--sub);margin-top:2px}
.rb-ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none;color:var(--scan);
  background:linear-gradient(135deg,rgba(var(--scan-rgb),.22),rgba(var(--azure-rgb),.10))}
.rb-ic svg{width:22px;height:22px}
.rb-go{color:var(--faint);align-self:center}
.rb-layout{display:grid;grid-template-columns:minmax(380px,460px) 1fr;gap:18px;align-items:start}
.rb-side{position:sticky;top:130px;max-height:calc(100vh - 150px);overflow:auto}
.rb-share{display:flex;align-items:center;gap:6px;font:500 13px var(--body);color:var(--sub);margin:-2px 0 6px;cursor:pointer}
.rb-sec{border-top:1px solid var(--line);padding:14px 0 6px}
.rb-sh{display:flex;align-items:center;gap:10px;margin-bottom:10px}.rb-sh b{font:600 14px var(--disp);letter-spacing:.04em}
.rb-step{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 12px var(--num);
  color:#031220;background:linear-gradient(180deg,#6fe0ff,var(--scan));flex:none}
.rb-frow{display:flex;gap:8px;align-items:center;margin-bottom:8px}.rb-frow>select,.rb-frow>input{flex:1;min-width:0}
.rb-group{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.rb-chips{display:flex;flex-wrap:wrap;gap:6px}
.rb-n{font:700 10.5px var(--num);background:var(--scan);color:#031220;border-radius:10px;padding:0 5px;min-width:16px;text-align:center}
.rb-prev{min-width:0}
.rb-result>.card+.card{margin-top:14px}
.rb-meta{display:flex;gap:10px;align-items:center;margin:2px 0 12px}
.rb-chart{padding:16px 18px}
.rb-ctitle{font:600 11px var(--disp);letter-spacing:.2em;text-transform:uppercase;color:var(--sub);margin-bottom:10px}
.rb-table{max-height:62vh;overflow:auto}
.rb-total td{font:700 14px var(--num);border-top:1px solid var(--line2);background:rgba(var(--scan-rgb),.05);position:sticky;bottom:0}
.rb-err{display:flex;gap:10px;align-items:center;color:var(--threat);border-color:rgba(var(--threat-rgb),.4)}

/* ---------------------------------------------------------------- customers */
.cu-tools{gap:10px}
.cu-warn{display:flex;gap:12px;align-items:flex-start;border-color:rgba(var(--warn-rgb),.5);margin-bottom:16px}.cu-warn>svg{color:var(--warn);margin-top:2px}
.cu-empty{text-align:center;padding:40px 24px}.cu-empty p{max-width:620px;margin:8px auto 18px}
.cu-big{width:64px;height:64px;margin:0 auto 14px;border-radius:18px;display:flex;align-items:center;justify-content:center;color:var(--scan);
  background:linear-gradient(135deg,rgba(var(--scan-rgb),.24),rgba(var(--azure-rgb),.10))}.cu-big svg{width:32px;height:32px}
.cu-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.cu-kpi{display:flex;flex-direction:column;gap:12px}
.cu-kh{display:flex;align-items:center;gap:10px}.cu-kh b{font:700 15px var(--disp);letter-spacing:.04em}
.cu-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--scan);background:rgba(var(--scan-rgb),.12)}
.cu-kb{display:flex;align-items:center;gap:16px}
.cu-ring{width:76px;height:76px;flex:none}
.cu-nums{flex:1;display:flex;flex-direction:column;gap:4px}
.cu-nums div{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dashed var(--line);padding-bottom:3px}
.cu-nums span{font:600 11px var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.cu-nums b{font:700 20px var(--num)}
.cu-foot{display:flex;flex-wrap:wrap;gap:6px;min-height:22px}
.cu-exp{max-height:300px;overflow:auto;margin:-4px -6px 0}
.cu-er{display:flex;align-items:center;gap:12px;padding:8px 6px;border-radius:10px;cursor:pointer}
.cu-er:hover{background:rgba(var(--scan-rgb),.05)}
.cu-er b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cu-er small{color:var(--sub)}
.cu-d{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font:700 16px var(--num);flex:none;border:1px solid}
.cu-d.bad{color:var(--threat);border-color:rgba(var(--threat-rgb),.45);background:rgba(var(--threat-rgb),.08)}
.cu-d.warn{color:var(--warn);border-color:rgba(var(--warn-rgb),.45);background:rgba(var(--warn-rgb),.08)}
.cu-d.info{color:var(--scan);border-color:rgba(var(--scan-rgb),.45);background:rgba(var(--scan-rgb),.08)}
.cu-bar{width:90px;height:6px;border-radius:6px;background:var(--card2);overflow:hidden;flex:none}
.cu-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--warn),var(--threat))}
.cu-cnt{display:inline-flex;align-items:baseline;gap:1px;position:relative}.cu-cnt b{font:700 16px var(--num)}.cu-cnt span{color:var(--faint);font-size:12px}
.cu-dot{width:7px;height:7px;border-radius:50%;background:var(--threat);display:inline-block;margin-left:5px;box-shadow:0 0 8px var(--threat)}
.cu-drawer{width:min(560px,100%)}
.cu-sec{padding:16px 18px;border-bottom:1px solid var(--line)}.cu-sec>.kicker{margin-bottom:10px}
.cu-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.cu-mini div{border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.cu-mini small{display:block;font:600 10.5px var(--disp);letter-spacing:.16em;color:var(--faint)}.cu-mini b{display:block;font:700 19px var(--num)}
.cu-mini span{font-size:10.5px;color:var(--faint)}
.cu-dep{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.cu-tree{margin-top:8px}.cu-node{display:flex;gap:8px;align-items:center;padding:3px 0;font-size:13px}
.cu-lv{font:700 10px var(--disp);letter-spacing:.12em;color:var(--scan);border:1px solid rgba(var(--scan-rgb),.4);border-radius:5px;padding:0 5px;min-width:44px;text-align:center}

/* ---------------------------------------------------------------- contact approval */
.ap-bar{margin-bottom:14px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.ap-bar label{font:500 13px var(--body);color:var(--ink)}
.ap-item{margin-bottom:14px}
.ap-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.ap-head input[type=checkbox]{margin-top:5px;width:18px;height:18px}
.ap-co{font:700 17px var(--disp);letter-spacing:.02em;color:var(--ink)}
.ap-who small{color:var(--faint)}
.ap-body{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}
.ap-tbl td,.ap-tbl th{padding:8px 10px}.ap-tbl th{position:static;background:transparent}
.ap-k{font:600 12px var(--disp);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);width:80px}
.ap-new{color:var(--scan)}
.ap-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(var(--scan-rgb),.04);border:1px solid var(--line)}
.ap-note p{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font-size:13px;color:var(--sub)}
.ap-checks{border-left:1px solid var(--line);padding-left:18px}.ap-checks>.kicker{margin-bottom:10px}
.ap-ck{display:flex;gap:10px;align-items:flex-start;padding:7px 0;font-size:13px}
.ap-ck>svg{margin-top:1px}.ap-ck.good>svg{color:var(--clean)}.ap-ck.bad>svg{color:var(--threat)}.ap-ck.info>svg{color:var(--scan)}
.ap-url{display:block;font-family:var(--mono);font-size:12px;word-break:break-all;margin-top:3px}
.ap-done{text-align:center;padding:40px}.ap-big{width:60px;height:60px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:var(--clean);background:rgba(var(--clean-rgb),.12)}.ap-big svg{width:30px;height:30px}

@media (max-width:1200px){.cu-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rb-layout{grid-template-columns:1fr}.rb-side{position:static;max-height:none}}
@media (max-width:860px){.cu-kpis{grid-template-columns:1fr}.ap-body{grid-template-columns:1fr}.ap-checks{border-left:0;padding-left:0}.cu-mini{grid-template-columns:repeat(2,1fr)}}
.rb-grid>.card,.cu-kpis>.card{margin-top:0!important}
.rb-chart svg.chart{max-height:330px;max-width:920px;display:block;margin:0 auto}
.rb-side .seg{display:flex;flex-wrap:wrap;width:100%}.rb-side .seg button{flex:1 0 auto;justify-content:center}
