/* r568 · Dashboard overview (new design) */
#page-dashboard.d3-on:not(.dash-analytics) > *:not(#d3):not(#setup-banner){display:none!important}
#page-dashboard.dash-analytics #d3{display:none}
#d3{--d3bd:var(--bd,#E5E9F0);--d3s:var(--s,#fff);--d3t:var(--t,#0F172A);--d3t2:var(--t2,#475569);--d3t3:var(--t3,#8590A2);display:flex;flex-direction:column;gap:16px;padding-bottom:20px}
#d3 h1{font-size:22px;font-weight:700;letter-spacing:-.3px;margin:0;color:var(--d3t)}
#d3 h2{font-size:15px;font-weight:700;margin:0;color:var(--d3t);display:flex;align-items:center;gap:8px}
#d3 p{margin:2px 0 0;font-size:13px;color:var(--d3t2)}
.d3-tl{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;flex:none}
.d3-card{background:var(--d3s);border:1px solid var(--d3bd);border-radius:14px;padding:16px 18px;box-shadow:0 1px 3px rgba(15,23,42,.04);min-width:0}
.d3-ch{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.d3-ch h2,.d3-ch>.d3-hi{margin-right:auto}
.d3-link{background:none;border:0;color:var(--p,#3E5A8C);font-size:12.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:2px 0;white-space:nowrap}
.d3-link:hover{text-decoration:underline}
.d3-sel,.d3-pill{font-size:12px;font-weight:600;border-radius:8px;padding:4px 10px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.d3-sel{border:1px solid var(--d3bd);color:var(--d3t2);background:var(--d3s)}
.d3-btn{border:1px solid color-mix(in srgb,#7C3AED 30%,var(--d3bd));background:var(--d3s);color:#5B21B6;font-weight:600;font-size:13px;border-radius:10px;padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.d3-btn:hover{background:#F5F3FF}
.d3-empty{font-size:12.5px;color:var(--d3t3);padding:14px 0;text-align:center}
.d3-loading{padding:40px;text-align:center;color:var(--d3t3);font-size:13px}
/* header */
.d3-head{display:grid;grid-template-columns:1fr auto minmax(240px,340px);gap:16px;align-items:center}
.d3-hi{display:flex;align-items:center;gap:12px;min-width:0}
.d3-rwrap{position:relative}
.d3-range{display:flex;align-items:center;gap:10px;background:var(--d3s);border:1px solid var(--d3bd);border-radius:12px;padding:8px 12px 8px 14px;cursor:pointer;min-width:240px;font:inherit;text-align:left;color:inherit}
.d3-range:hover,.d3-range[aria-expanded=true]{border-color:color-mix(in srgb,var(--p,#3E5A8C) 45%,var(--d3bd))}
.d3-range:focus-visible{outline:2px solid var(--p,#3E5A8C);outline-offset:2px}
.d3-range span{flex:1}.d3-range b{display:block;font-size:13px;color:var(--d3t)}.d3-range small{display:block;font-size:11.5px;color:var(--d3t3)}
.d3-range>svg:last-child{transform:rotate(90deg);transition:transform .15s}.d3-range[aria-expanded=true]>svg:last-child{transform:rotate(-90deg)}
.d3-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:60;width:max(300px,100%);box-sizing:border-box;background:var(--d3s);border:1px solid var(--d3bd);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.14);padding:6px}
.d3-pop[hidden]{display:none}
.d3-opt{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:none;border-radius:8px;padding:9px 10px;font:inherit;font-size:13px;color:var(--d3t);cursor:pointer;text-align:left}
.d3-opt:hover,.d3-opt:focus-visible{background:var(--s2,#F4F6F9);outline:none}
.d3-opt.on{color:var(--p,#3E5A8C);font-weight:600;background:color-mix(in srgb,var(--p,#3E5A8C) 8%,var(--d3s))}
.d3-cust{border-top:1px solid var(--d3bd);margin-top:6px;padding:12px 6px 6px}
.d3-cust.on .d3-cl{color:var(--p,#3E5A8C)}
.d3-cl{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.3px;color:var(--d3t2);margin-bottom:8px}
.d3-cr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.d3-cr label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--d3t3);font-weight:600}
.d3-cr label{min-width:0}
.d3-cr input{height:36px!important;border:1px solid var(--d3bd)!important;border-radius:8px!important;padding:0 8px!important;font:inherit;font-size:12.5px!important;color:var(--d3t);background:var(--d3s);width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;margin:0!important}
.d3-cr input::-webkit-calendar-picker-indicator{margin-left:2px;padding:0;cursor:pointer}
.d3-cerr{font-size:11.5px;color:#DC2626;min-height:14px;margin:4px 0 2px}
.d3-apply{width:100%;height:34px;border:0;border-radius:8px;background:var(--p,#3E5A8C);color:#fff;font-weight:600;font-size:13px;cursor:pointer}
.d3-apply:hover{filter:brightness(1.08)}
.d3-tip{display:flex;align-items:center;gap:10px;background:linear-gradient(100deg,#EEF2FF,#F5F3FF 60%,#ECFEFF);border:1px solid #E0E7FF;border-radius:12px;padding:12px 14px;font-size:12.5px;color:#3730A3;font-style:italic}
/* KPIs */
.d3-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.d3-kpi{text-align:left;cursor:pointer;font:inherit;color:inherit;position:relative;overflow:hidden;padding:14px 14px 0;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s,transform .15s}
.d3-kpi:hover{box-shadow:0 6px 18px rgba(15,23,42,.08);transform:translateY(-1px)}
.d3-kpi:focus-visible{outline:2px solid var(--c);outline-offset:2px}
.d3-kh{display:flex;align-items:center;gap:10px}
.d3-kl{font-size:12.5px;font-weight:600;color:var(--d3t2)}
.d3-kv{font-size:22px;font-weight:800;letter-spacing:-.4px;color:var(--d3t);line-height:1.2}
.d3-kd{display:flex;align-items:center;gap:6px}.d3-kd small{font-size:11px;color:var(--d3t3)}
.d3-chg{font-size:11.5px;font-weight:700;border-radius:6px;padding:1px 6px}
.d3-spark{width:calc(100% + 28px);height:38px;margin:0 -14px;display:block}
/* rows */
.d3-row{display:grid;gap:16px}
.d3-r2{grid-template-columns:1.05fr 1.45fr 1fr}
.d3-r3{grid-template-columns:1fr 1fr 1fr}
.d3-stage{display:flex;align-items:center;gap:20px}
.d3-leg{flex:1;min-width:0}
.d3-leg div{display:grid;grid-template-columns:10px 1fr auto 40px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #F1F4F8;font-size:13px}
.d3-leg i{width:10px;height:10px;border-radius:50%}.d3-leg span{color:var(--d3t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.d3-leg em{font-style:normal;color:var(--d3t3);text-align:right;font-size:12px}
.d3-note{display:flex;align-items:center;gap:8px;background:#EFF6FF;color:#1E40AF;font-size:12px;border-radius:8px;padding:8px 10px;margin-top:6px}
.d3-list{display:flex;flex-direction:column}
.d3-li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #F1F4F8;cursor:default}
.d3-li[role=button]{cursor:pointer}.d3-li:last-child{border-bottom:0}
.d3-li[role=button]:hover .d3-lt b,.d3-lt[role=button]:hover b{color:var(--p,#3E5A8C)}
.d3-lt{flex:1;min-width:0}.d3-lt[role=button]{cursor:pointer}
.d3-lt b{display:block;font-size:13px;font-weight:600;color:var(--d3t);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d3-lt span{display:block;font-size:12px;color:var(--d3t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d3-li time{font-size:11.5px;color:var(--d3t3);white-space:nowrap}
.d3-fu input{width:16px;height:16px;accent-color:var(--p,#3E5A8C);flex:none;cursor:pointer}
/* AI */
.d3-ai{background:linear-gradient(100deg,#F5F3FF,#FFFFFF 45%,#F8FAFF);border-color:#E9E3FF}
.d3-ins{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.d3-in{display:flex;align-items:center;gap:12px;text-align:left;background:var(--d3s);border:1px solid var(--d3bd);border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit;color:inherit}
.d3-in:hover{border-color:#C4B5FD;box-shadow:0 4px 14px rgba(124,58,237,.08)}
.d3-in>div{flex:1;min-width:0}.d3-in>div b{display:block;font-size:13px;color:var(--d3t)}.d3-in>div span{display:block;font-size:12px;color:var(--d3t3);margin-top:2px}
/* team */
.d3-team{display:flex;align-items:center;gap:18px;margin-bottom:10px}
.d3-tm{flex:1;min-width:0}
.d3-big{font-size:20px;font-weight:800;color:var(--d3t);margin-bottom:6px}.d3-big small{display:block;font-size:11.5px;font-weight:500;color:var(--d3t3)}
.d3-tr{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12.5px;color:var(--d3t2)}.d3-tr>span:not(.d3-tl){flex:1}.d3-tr b{color:var(--d3t)}
.d3-tr .d3-tl{border-radius:8px}
/* opportunities */
.d3-opp{display:flex;align-items:center;gap:12px;border:1px solid var(--d3bd);border-radius:12px;padding:10px 12px;cursor:pointer}
.d3-opp:hover{border-color:var(--p,#3E5A8C)}
.d3-opp>div{flex:1;min-width:0}.d3-opp>div b{display:block;font-size:13.5px;color:var(--d3t)}.d3-opp>div span{display:block;font-size:12px;color:var(--d3t3)}
.d3-opp em{font-style:normal;font-size:12px;font-weight:700;color:#B91C1C;background:#FEE2E2;border-radius:8px;padding:3px 9px}
.d3-ms{display:flex;align-items:center;gap:10px;background:#EFF6FF;border-radius:12px;padding:10px 12px;margin:10px 0}
.d3-ms>div b{display:block;font-size:12.5px;color:#1E3A8A}.d3-ms>div span{display:block;font-size:12px;color:#1E40AF}
.d3-bar{width:4px;height:30px;border-radius:2px;flex:none}.d3-amt{font-size:13px;color:var(--p,#3E5A8C)}
.d3-pv{display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid #F1F4F8;padding-top:10px;margin-top:6px}
.d3-pv small{display:block;font-size:11.5px;color:var(--d3t3)}.d3-pv b{font-size:18px;color:var(--d3t)}.d3-pv span{font-size:12px;color:var(--d3t3)}
/* responsive */
@media(max-width:1400px){.d3-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.d3-r2{grid-template-columns:1fr 1.4fr}.d3-r2>section:last-child{grid-column:1/-1}}
@media(max-width:1000px){.d3-head{grid-template-columns:1fr}.d3-r2,.d3-r3,.d3-ins{grid-template-columns:1fr}.d3-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

#d3,#d3 *{text-transform:none!important}

/* ── r570 · Analytics tab in the same look as the Dashboard ── */
#dash2 .d2-h1{font-size:22px!important;font-weight:700;letter-spacing:-.3px}
#dash2 .d2-card,#dash2 .d2-kpi{border-radius:14px!important;border-color:var(--bd,#E5E9F0)!important;box-shadow:0 1px 3px rgba(15,23,42,.04)!important}
#dash2 .d2-card-t{font-size:15px!important;font-weight:700!important}
#dash2 .d2-card-t svg{color:#3E5A8C!important}
#dash2 .d2-kpi{padding:14px 16px!important}
#dash2 .d2-kpi-t{gap:10px!important;font-size:12.5px!important}
#dash2 .d2-kti{width:36px;height:36px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;flex:none}
#dash2 .d2-kpi-v{font-size:24px!important;font-weight:800!important;letter-spacing:-.4px}
/* period buttons + tabs: the CRM's slate-blue, not orange */
#dash2 .d2-range button{border-radius:10px!important;border-color:var(--bd,#E5E9F0)!important;height:34px!important}
#dash2 .d2-range button.on{background:color-mix(in srgb,var(--p,#3E5A8C) 10%,#fff)!important;border-color:color-mix(in srgb,var(--p,#3E5A8C) 45%,#fff)!important;color:var(--p,#3E5A8C)!important}
#dash2 .d2-dates input{border-radius:10px!important;border-color:var(--bd,#E5E9F0)!important;height:34px!important}
#dash2 .d2-tabs button{font-weight:600!important}
#dash2 .d2-tabs button.on{color:var(--p,#3E5A8C)!important;border-bottom-color:var(--p,#3E5A8C)!important}
#dash2 .d2-delta.up,#dash2 .d2-up{color:#15803D}
#dash2 .d2-delta{border-radius:6px}
#dash2 .d2-cti{width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:none;margin-right:2px}
#dash2 .d2-cti svg{color:currentColor!important;width:17px;height:17px}
#dash2 .d2-card-t{gap:10px!important}
#dash2 .d2-spark{width:120px;height:36px}
#dash2 .d2-hb-bar i{border-radius:5px}

/* r578: cards keep a fixed height — long lists scroll inside the card instead of
   stretching the row; the revenue chart fills its card */
.d3-r2>section{height:330px;display:flex;flex-direction:column;overflow:hidden}
.d3-r3>section{height:380px;display:flex;flex-direction:column;overflow:hidden}
.d3-r2>section>.d3-list,.d3-r3>section>.d3-list{flex:1;min-height:0;overflow-y:auto;margin-right:-8px;padding-right:8px}
.d3-r2>section .d3-stage{flex:1;min-height:0}
.d3-r2>section .d3-leg{max-height:100%;overflow-y:auto}
.d3-r2>section>svg.d3-rev{flex:1 1 auto;min-height:0;width:100%;display:block}
.d3-r2>section>.d3-note{flex:none}
.d3-r3>section>.d3-pv{margin-top:auto}
.d3-r3>section>.d3-link{margin-top:auto;align-self:flex-start}
.d3-list::-webkit-scrollbar{width:6px}.d3-list::-webkit-scrollbar-thumb{background:#E2E8F0;border-radius:3px}
@media(max-width:1400px){.d3-r2>section,.d3-r3>section{height:auto;max-height:none}.d3-r2>section>.d3-list,.d3-r3>section>.d3-list{max-height:320px}}
/* r580: Opportunities Closing Soon — the deals scroll inside the card; the pipeline total
   stays at the bottom with proper spacing */
.d3-r3>section{padding-bottom:18px}
.d3-oscroll{flex:1;min-height:0;overflow-y:auto;margin-right:-8px;padding-right:8px;display:flex;flex-direction:column;gap:2px}
.d3-oscroll::-webkit-scrollbar{width:6px}.d3-oscroll::-webkit-scrollbar-thumb{background:#E2E8F0;border-radius:3px}
.d3-oscroll .d3-opp{flex:none}
.d3-oscroll .d3-ms{flex:none;margin:10px 0 6px}
.d3-oscroll .d3-li{padding:9px 2px}
.d3-r3 .d3-pv{flex:none;margin-top:10px;padding-top:12px;align-items:center}
.d3-r3 .d3-pv b{display:block;line-height:1.2}
/* r593: revenue chart — draws itself in, then follows the mouse */
@keyframes d3draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes d3fade{from{opacity:0}to{opacity:1}}
svg.d3-rev.d3-anim .d3-line{stroke-dasharray:1;stroke-dashoffset:0;animation:d3draw .9s ease-out both}
svg.d3-rev.d3-anim .d3-area{animation:d3fade .9s ease-out both}
svg.d3-rev .d3-hit{cursor:crosshair}
svg.d3-rev .d3-hc{transition:cx .08s,cy .08s}
@media (prefers-reduced-motion:reduce){svg.d3-rev .d3-line,svg.d3-rev .d3-area{animation:none}}
/* r595: Leads by Stage donut reacts to the mouse */
svg.d3-dn .d3-seg{transition:stroke-width .18s ease,opacity .18s ease;cursor:pointer}
svg.d3-dn.hov .d3-seg{opacity:.35}
svg.d3-dn.hov .d3-seg.on{opacity:1;stroke-width:7.2}
svg.d3-dn .d3-dc1,svg.d3-dn .d3-dc2{transition:opacity .15s}
.d3-leg>div[data-k]{cursor:pointer;border-radius:6px;transition:background .15s}
.d3-leg>div.on{background:#F1F5F9}
.d3-leg>div.on span,.d3-leg>div.on b{color:var(--t,#0F172A);font-weight:700}
@keyframes d3spin{from{stroke-dasharray:0 100}}
