/* Customer Analytics Report — Styles */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#eef2f7;color:#1e293b;min-height:100vh}
:root{--navy:#1b2f4e;--accent:#2563eb;--green:#059669;--red:#dc2626;--amber:#d97706;--purple:#7c3aed;--teal:#0d9488;--border:#dde3ed;--card:#ffffff}

/* ===== UPLOAD ===== */
#uploadScreen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}
.ubox{background:#fff;border-radius:20px;padding:3rem 2.5rem;max-width:520px;width:100%;text-align:center;border:.5px solid var(--border);box-shadow:0 4px 40px rgba(0,0,0,.08)}
.ubox h1{font-size:20px;font-weight:700;margin-bottom:.4rem}
.ubox p{font-size:13px;color:#64748b;line-height:1.6;margin-bottom:1.75rem}
.dz{border:2px dashed #bfdbfe;border-radius:14px;padding:2.5rem 1.5rem;cursor:pointer;transition:.2s;background:#f8faff;margin-bottom:1rem}
.dz:hover,.dz.drag{border-color:var(--accent);background:#eff6ff}
.dz i{font-size:40px;color:#93c5fd;display:block;margin-bottom:.75rem}
.dz-t{font-size:14px;font-weight:600;color:#1e40af;margin-bottom:.25rem}
.dz-s{font-size:12px;color:#64748b}
.btn-up{display:inline-block;background:var(--accent);color:#fff;font-size:13px;font-weight:600;padding:.7rem 1.75rem;border-radius:10px;cursor:pointer;border:none;transition:.2s}
.btn-up:hover{background:#1d4ed8}
#fi{display:none}
.up-note{font-size:11px;color:#94a3b8;margin-top:.75rem}
.up-err{color:#dc2626;font-size:12px;margin-top:.75rem;display:none;padding:.5rem;background:#fef2f2;border-radius:6px}

/* ===== LOADING ===== */
#loadingScreen{display:none;align-items:center;justify-content:center;min-height:100vh;flex-direction:column;gap:.75rem}
.spin{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.pbar{width:260px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-top:.5rem}
.pfill{height:6px;background:var(--accent);border-radius:3px;width:0%;transition:width .3s}

/* ===== SHEET PICKER ===== */
#sheetScreen{display:none;align-items:center;justify-content:center;min-height:100vh;padding:2rem}
.sbox{background:#fff;border-radius:20px;padding:2.5rem;max-width:480px;width:100%;border:.5px solid var(--border);box-shadow:0 4px 32px rgba(0,0,0,.07)}
.sbox h2{font-size:17px;font-weight:700;margin-bottom:.4rem}
.sbox p{font-size:13px;color:#64748b;margin-bottom:1.25rem}
.slist{display:flex;flex-direction:column;gap:8px;margin-bottom:1.5rem;max-height:320px;overflow-y:auto}
.sbtn{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;text-align:left;cursor:pointer;font-size:13px;color:#1e293b;transition:.15s;display:flex;align-items:center;justify-content:space-between}
.sbtn:hover{background:#eff6ff;border-color:#93c5fd;color:#1e40af}
.rbadge{font-size:11px;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:10px}
.bbk{background:none;border:.5px solid var(--border);color:#64748b;font-size:12px;padding:.5rem 1rem;border-radius:8px;cursor:pointer}

/* ===== REPORT ===== */
#reportScreen{display:none;padding:0}

/* tab nav */
.tnav{background:var(--navy);padding:.65rem 1.5rem 0;display:flex;gap:6px;align-items:flex-end;position:sticky;top:0;z-index:100}
.tnav-label{flex-shrink:0;display:flex;align-items:flex-end}
.fi{color:#94a3b8;font-size:11px;padding-bottom:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}
.tnav-tabs{display:flex;gap:3px;align-items:flex-end;flex:1;flex-wrap:wrap}
.tbtn{background:rgba(255,255,255,.1);color:#94a3b8;border:none;padding:.5rem .95rem;border-radius:7px 7px 0 0;cursor:pointer;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;transition:.15s;white-space:nowrap}
.tbtn:hover{background:rgba(255,255,255,.18);color:#e2e8f0}
.tbtn.act{background:#eef2f7;color:var(--navy);font-weight:600}
.tbtn i{font-size:14px}
.tnav-r{display:flex;align-items:center;gap:6px;padding-bottom:.5rem;flex-shrink:0}
.tnav-user{font-size:11px;color:#94a3b8;white-space:nowrap;display:flex;align-items:center;gap:3px}
.breset{background:rgba(255,255,255,.15);color:#e2e8f0;border:none;font-size:11px;padding:.4rem .9rem;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:4px}
.breset:hover{background:rgba(255,255,255,.25)}
/* Page header: 3 stacked rows on tablet / narrow desktop */
@media(max-width:1023px){
  .phdr{flex-direction:column;align-items:stretch;gap:.6rem}
  .phdr-r{flex-direction:column;width:100%;gap:.5rem;align-items:stretch}
  .takeaway{max-width:100%}
  .bexport-row{justify-content:flex-start!important;display:flex;justify-content:flex-end;margin-top:10px;}
}
@media(max-width:640px){
  .takeaway{float: none !important;margin-left: 0 !important;margin-top: 10px !important;}
}
/* Navbar: 3 stacked rows on tablet / narrow desktop */
@media(max-width:1023px){
  .tnav{flex-direction:column;gap:0;padding:.5rem .75rem .25rem;align-items:stretch}
  .tnav-label{padding:.1rem 0 .4rem;border-bottom:.5px solid rgba(255,255,255,.1)}
  .fi{max-width:100%;padding-bottom:0;font-size:11px}
  .tnav-tabs{gap:4px;padding:.4rem 0;align-items:center;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tnav-tabs::-webkit-scrollbar{display:none}
  .tnav-tabs .tbtn{flex-shrink:0}
  .tbtn{border-radius:6px;padding:.4rem .65rem;font-size:11px}
  .tbtn.act{border-radius:6px}
  .tnav-r{padding:.35rem 0 .5rem;justify-content:flex-end;flex-wrap:wrap;gap:5px;border-top:.5px solid rgba(255,255,255,.1)}
  .tnav-btn-txt{display:none}
}
.bexport{background:rgba(16,185,129,.25);color:#6ee7b7;border:1px solid rgba(16,185,129,.35);font-size:11px;padding:.4rem .9rem;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:.15s;white-space:nowrap}
.bexport:hover{background:rgba(16,185,129,.4);color:#a7f3d0}
.bexport:disabled{opacity:.4;cursor:default}

/* page */
.page{display:none;padding:1rem 1.25rem 1.5rem;max-width:1360px;margin:0 auto}
.page.act{display:block}

/* header bar */
.phdr{background:var(--navy);border-radius:12px;padding:1rem 1.4rem;margin-bottom:.9rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}
.phdr-l{display:flex;align-items:center;gap:.85rem}
.phdr-ico{width:42px;height:42px;border-radius:10px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.phdr-l h2{color:#fff;font-size:16px;font-weight:700;letter-spacing:.02em}
.phdr-l p{color:#94a3b8;font-size:11px;margin-top:2px}
.phdr-r{display:inline-block;flex-direction:row;gap:.75rem;align-items:flex-start}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.fbadge{background:rgba(255,255,255,.12);color:#e2e8f0;font-size:11px;padding:.3rem .75rem;border-radius:6px;display:flex;align-items:center;gap:4px;white-space:nowrap}
.fbadge i{font-size:12px}
/* Filter dropdown */
.fsel{background:rgba(255,255,255,.12);color:#e2e8f0;font-size:11px;padding:.28rem .6rem;border-radius:6px;border:1px solid rgba(255,255,255,.2);cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23e2e8f0'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;padding-right:20px;min-width:80px}
.fsel option{background:#1a3050;color:#e2e8f0}
.fsel:hover{background-color:rgba(255,255,255,.2)}
.filter-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.takeaway{background:rgba(255,255,255,.1);border-radius:8px;padding:.5rem .85rem;font-size:11px;color:#cbd5e1;max-width:320px;line-height:1.5;margin-left: 10px;float:right;}
.takeaway strong{color:#fff;display:block;margin-bottom:1px;font-size:11px}
.bexport-row{display:flex;justify-content:flex-end;margin-top:10px;}

/* kpi */
.krow{margin-bottom:.85rem}
.kpi{height: 100%;background:var(--card);border-radius:10px;padding:.8rem 1rem;border:.5px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.kpi-l .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#64748b;margin-bottom:.3rem}
.kpi-l .val{font-size:20px;font-weight:700;color:#1e293b;line-height:1.1}
.kpi-l .val span{font-size:12px;font-weight:400;color:#64748b}
.kpi-l .sub{font-size:11px;margin-top:.25rem;color:#64748b;display:flex;align-items:center;gap:3px}
.kpi-l .sub.up{color:var(--green)}.kpi-l .sub.dn{color:var(--red)}
.kpi-ico{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}

/* h-100 utility for Bootstrap col cards */
.h-100{height:100%!important}

/* card */
.card{background:var(--card);border-radius:10px;border:.5px solid var(--border);padding:.85rem 1rem}
.ct{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-bottom:.7rem}
.ct-sm{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;margin-bottom:.35rem}

/* table */
table{width:100%;border-collapse:collapse;font-size:11.5px}
th{color:#64748b;font-weight:500;font-size:10px;padding:4px 5px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}
td{padding:3.5px 5px;color:#1e293b;border-bottom:.5px solid #f1f5f9}
tr:last-child td{border-bottom:none}
tr:hover td{background:#f8fafc}
.num{text-align:right;font-variant-numeric:tabular-nums}
.cg{color:var(--green);font-weight:500}.cr{color:var(--red)}.ca{color:var(--amber)}.cp{color:var(--purple)}

/* mini bar */
.bw{background:#f1f5f9;border-radius:2px;height:5px;width:100%;overflow:hidden;margin-top:2px}
.bf{height:5px;border-radius:2px;background:var(--accent)}
.bfn{background:var(--red)}

/* insight / action items */
.ins{display:flex;gap:.5rem;align-items:flex-start;padding:.4rem 0;border-bottom:.5px solid var(--border)}
.ins:last-child{border-bottom:none}
.ins-i{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px}
.ins-t{font-size:11px;color:#475569;line-height:1.5}

/* legend */
.leg{display:flex;flex-wrap:wrap;gap:7px;margin-top:.45rem;font-size:10.5px;color:#64748b}
.ld{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:2px;vertical-align:middle;flex-shrink:0}

/* seg matrix */
.mx-wrap{display:flex;align-items:stretch;gap:0}
.mx-yaxis{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:38px;padding-right:4px}
.mx-yaxis-lbl{font-size:11px;font-weight:700;color:#475569;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.5px}
.mx-yaxis-hi{font-size:10px;color:#64748b;margin-bottom:4px}
.mx-yaxis-lo{font-size:10px;color:#64748b;margin-top:4px}
.mx-body{flex:1;display:flex;flex-direction:column;gap:0}
.mx-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;flex:1}
.mx-row+.mx-row{margin-top:6px}
.mx-xaxis{display:flex;align-items:center;justify-content:space-between;padding:4px 0 0 0;margin-top:4px}
.mx-xaxis-lbl{font-size:11px;font-weight:700;color:#475569;text-align:center;flex:1}
.mx-xaxis-lo{font-size:10px;color:#64748b}
.mx-xaxis-hi{font-size:10px;color:#64748b}
.sq{border-radius:10px;padding:.7rem .85rem;border:1.5px solid transparent;display:flex;flex-direction:column;min-height:180px}
.sq-head{display:flex;align-items:center;gap:10px;margin-bottom:.35rem}
.sq-ico{width:38px;height:38px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.sq-title{display:flex;flex-direction:column}
.sq-h{font-size:13px;font-weight:800;letter-spacing:.2px;margin-bottom:1px}
.sq-sub{font-size:10px;color:#64748b;font-weight:500}
.sq-desc{font-size:10.5px;color:#475569;line-height:1.6;margin-bottom:.5rem;flex:1}
.sq-desc li{list-style:none;padding-left:.1rem}
.sq-desc li::before{content:"• ";color:inherit}
.sq-stat{border-top:1px solid rgba(0,0,0,.07);padding-top:.45rem;margin-top:auto;display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:baseline}
.sq-stat-cnt{font-size:12px;font-weight:700;color:#1e293b;grid-column:1/-1;margin-bottom:2px}
.sq-stat-lbl{font-size:10px;color:#94a3b8}
.sq-stat-val{font-size:10.5px;font-weight:600;color:#1e293b}

.footer{text-align:center;font-size:10px;color:#94a3b8;margin-top:1.25rem;padding-top:.75rem;border-top:.5px solid var(--border)}

/* ===== UTILITY ===== */
[data-action]{cursor:pointer}
.flex-col{display:flex;flex-direction:column}
.flex-col-g8{display:flex;flex-direction:column;gap:8px}
.flex-col-g10{display:flex;flex-direction:column;gap:10px}
.card-chart{display:flex;flex-direction:column;height:100%}
.card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.chart-wrap{position:relative;flex:1;min-height:120px}
.btn-grp{display:flex;gap:4px;flex-shrink:0}

/* ===== TOGGLE BUTTONS ===== */
.btn-tog{padding:3px 10px;border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid;transition:all .15s}
.btn-tog-on{background:#2563eb;color:#fff;border-color:#2563eb}
.btn-tog-off{background:#fff;color:#64748b;border-color:#e2e8f0}

/* ===== BUBBLE CHART AREA ===== */
.bub-area{display:flex;gap:10px;align-items:flex-start;overflow-x:auto}
.bub-canvas-wrap{position:relative;flex:1;min-width:320px;height:295px}
.bub-side{display:flex;flex-direction:column;gap:8px;min-width:115px;padding-top:2px}
.bub-leg-card{background:#f8fafc;border-radius:8px;border:.5px solid var(--border);padding:.55rem .7rem}
.bub-leg-hdr{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:.45rem}
#bubSizeLeg{display:flex;flex-direction:column;gap:5px}
#p1QuadLeg{display:flex;flex-direction:column;gap:6px}

/* ===== QUADRANT LEGEND ===== */
.qleg-item{display:flex;align-items:flex-start;gap:5px}
.qleg-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0;margin-top:2px}
.qleg-name{font-size:10px;font-weight:600;line-height:1.3}
.qleg-cond{font-size:9px;color:#64748b;line-height:1.4}

/* ===== CUSTOMER LIST MODAL ===== */
.modal-search-wrap{position:relative;margin-bottom:10px}
.modal-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:13px;pointer-events:none}
.modal-search-inp{width:100%;padding:7px 80px 7px 32px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:12px;outline:none;box-sizing:border-box;font-family:inherit;transition:border-color .15s}
.modal-search-inp:focus{border-color:#2563eb}
.modal-search-cnt{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:10px;color:#94a3b8;pointer-events:none}
.modal-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.modal-kpi-card{background:#f8fafc;border-radius:8px;padding:10px;text-align:center}
.modal-kpi-lbl{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.mth{font-size:14px;color:#2563eb;font-weight:700;cursor:pointer;user-select:none;white-space:nowrap;background:#f0f7ff;padding:7px 10px}
.mth-l{text-align:left}.mth-r{text-align:right}
.mrow{cursor:pointer;border-bottom:1px solid #f1f5f9}
.mrow td{padding:7px 10px}
.mrow:hover td{background:#f8fafc!important}
.mrow-code{font-size:13px;font-weight:600;color:#1e293b}
.mrow-name{font-size:11px;color:#94a3b8}
.mrow-num{font-size:13px;font-weight:600;text-align:right}
.modal-no-data{color:#94a3b8;text-align:center;padding:20px;font-size:12px}

/* ===== CHAT BUTTONS & SELECTS ===== */
.btn-send{padding:8px 20px;border-radius:8px;background:#2563eb;color:#fff;border:none;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0;transition:background .15s;font-family:inherit}
.btn-send:hover{background:#1d4ed8}
.chat-model-sel{padding:6px 8px;border-radius:8px;border:1.5px solid #e2e8f0;font-size:11px;color:#475569;background:#f8fafc;cursor:pointer;outline:none;flex-shrink:0;font-family:inherit}
.chat-inp{flex:1;padding:8px 12px;border-radius:8px;border:1.5px solid #e2e8f0;font-size:13px;outline:none;transition:border-color .15s;font-family:inherit}
.chat-inp:focus{border-color:#2563eb}
.btn-close-modal{background:none;border:none;font-size:24px;color:#94a3b8;line-height:1;transition:color .15s}
.btn-close-modal:hover{color:#1e293b}
select{cursor:pointer}
.btn-nav{padding:.3rem .65rem;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}
.btn-nav-save{border:1.5px solid #10b981;background:#ecfdf5;color:#065f46}
.btn-nav-save:hover{background:#10b981;color:#fff}
.btn-nav-rpt{border:1.5px solid #2563eb;background:#eff6ff;color:#1d4ed8}
.btn-nav-rpt:hover{background:#2563eb;color:#fff}
.btn-nav-logout{padding:.3rem .6rem;border-radius:6px;font-size:11px;cursor:pointer;border:1.5px solid #e2e8f0;background:#f8fafc;color:#64748b;transition:all .15s}
.btn-nav-logout:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}

/* ===== P5 KPI MINI CARD ===== */
.kpi-mini-card{background:#f8fafc;border-radius:8px;padding:8px;text-align:center;border:.5px solid #e2e8f0}
.kpi-mini-card:hover{background:#f1f5f9}

/* ===== LOGIN FORM ===== */
.login-wrap{display:flex;position:fixed;inset:0;background:#f1f5f9;z-index:9999;align-items:center;justify-content:center}
.login-box{background:#fff;border-radius:16px;box-shadow:0 4px 32px rgba(0,0,0,.12);padding:44px 40px;width:100%;max-width:380px}
.login-logo{width:56px;height:56px;background:#eff6ff;border-radius:14px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:28px}
.login-hdr{text-align:center;margin-bottom:28px}
.login-title{font-size:20px;font-weight:800;color:#1e293b;margin:0 0 4px}
.login-sub{font-size:13px;color:#94a3b8;margin:0}
.login-fields{display:flex;flex-direction:column;gap:14px}
.form-lbl{font-size:12px;font-weight:600;color:#64748b;display:block;margin-bottom:5px}
.form-inp{width:100%;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box;font-family:inherit;transition:border-color .15s}
.form-inp:focus{border-color:#2563eb}
.btn-primary{padding:12px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;width:100%}
.btn-primary:hover{background:#1d4ed8}
.divider{display:flex;align-items:center;gap:8px}
.divider-line{flex:1;height:1px;background:#e2e8f0}
.divider-txt{font-size:12px;color:#94a3b8}
.btn-azure{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;background:#fff;color:#1e293b;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;width:100%}
.btn-azure:hover{border-color:#2563eb;color:#2563eb}

/* Responsive grid breakpoints now handled by Bootstrap row/col classes */

/* ===== MIGRATION / SANKEY ===== */
.sankey-wrap{display:flex;gap:10px;align-items:flex-start}
.sankey-nodes{display:flex;flex-direction:column;justify-content:space-around;gap:6px;min-width:110px}
.sankey-flows{flex:1;position:relative;overflow:hidden}
.sankey-node{border-radius:8px;padding:6px 10px;color:#fff;font-size:11px;font-weight:700;text-align:center;cursor:default}
.sn-strategic{background:#16a34a}.sn-optimize{background:#d97706}.sn-grow{background:#2563eb}.sn-review{background:#dc2626}
.seg-overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.seg-card{border-radius:10px;padding:12px 14px;border:.5px solid var(--border)}
.seg-card .seg-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.seg-card .seg-ico{width:34px;height:34px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.seg-card .seg-name{font-size:13px;font-weight:800;line-height:1.2}
.seg-card .seg-count{font-size:26px;font-weight:800;line-height:1;margin-bottom:2px}
.seg-card .seg-sub{font-size:11px;color:#94a3b8;margin-bottom:8px}
.seg-card .seg-meta{font-size:11px;color:#64748b;display:grid;grid-template-columns:1fr 1fr;gap:6px;border-top:.5px solid rgba(0,0,0,.06);padding-top:8px}
.seg-card .seg-meta .sm-block{display:flex;flex-direction:column;gap:1px}
.seg-card .seg-meta .sm-val{font-weight:700;font-size:13px;color:#1e293b}
.seg-card .seg-meta .sm-lbl{font-size:10px;color:#94a3b8}
.sc-st{background:#f0fdf4;border-color:#86efac}.sc-op{background:#fffbeb;border-color:#fde68a}
.sc-gr{background:#eff6ff;border-color:#bfdbfe}.sc-rv{background:#fff1f2;border-color:#fecaca}
.net-change-box{background:transparent}
.net-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:.5px solid #f1f5f9;font-size:12px}
.net-row:last-child{border-bottom:none}
.net-row .nr-seg{font-weight:700;font-size:12px}
.net-row .nr-val{font-size:13px;font-weight:800;text-align:right}
.net-row .nr-lbl{font-size:10px;color:#94a3b8;text-align:right}
.nc-up{color:#16a34a}.nc-dn{color:#dc2626}
.migration-matrix table th,.migration-matrix table td{font-size:11px;padding:4px 6px;text-align:center}
.migration-matrix table th{background:#f8fafc}
.mflow-cell-high{background:#bbf7d0;color:#166534;font-weight:700}
.mflow-cell-med{background:#fef9c3;color:#713f12}
.mflow-cell-low{background:#fee2e2;color:#991b1b}
.mflow-diag{background:#dbeafe;color:#1e40af;font-weight:700}
.top-movements{display:flex;flex-direction:column;gap:6px}
.mv-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;background:#f8fafc;border-radius:8px;border:.5px solid var(--border)}
.mv-arrow{font-size:16px;flex-shrink:0}
.mv-text{font-size:11px;color:#475569;line-height:1.4}
.mv-text b{color:#1e293b;display:block}
.bar-compare{display:flex;align-items:flex-end;gap:3px}
.bar-compare .b{width:16px;border-radius:3px 3px 0 0;min-height:4px}
.comp-seg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.comp-seg-card{border-radius:8px;padding:8px 10px;border:.5px solid var(--border);background:#fff}
.comp-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:4px}
.rev-change-box{background:#f8fafc;border-radius:8px;padding:8px 10px;border:.5px solid var(--border)}
.rev-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:.5px solid #f1f5f9;font-size:11px}
.rev-row:last-child{border-bottom:none}

/* ── Month Range Picker ── */
.dr-wrap{display:flex;align-items:center;gap:6px}
.dr-input-wrap{position:relative;display:flex;align-items:center}
.dr-input{background:rgba(255,255,255,.12);color:#e2e8f0;border:1px solid rgba(255,255,255,.22);
  border-radius:6px;padding:4px 28px 4px 10px;font-size:11px;width:92px;cursor:pointer;
  outline:none;caret-color:transparent;user-select:none}
.dr-input::placeholder{color:rgba(255,255,255,.45)}
.dr-input:hover,.dr-input:focus{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4)}
.dr-icon{position:absolute;right:7px;color:rgba(255,255,255,.55);font-size:13px;pointer-events:none}
.dr-sep{color:rgba(255,255,255,.45);font-size:13px}

/* Month picker popup */
.mp-popup{position:fixed;z-index:99999;background:#fff;border-radius:10px;
  box-shadow:0 8px 32px rgba(0,0,0,.18);padding:0;min-width:220px;display:none;overflow:hidden}
.mp-popup.open{display:block}
.mp-head{display:flex;align-items:center;justify-content:space-between;
  background:#1a2744;color:#fff;padding:8px 12px}
.mp-head span{font-size:13px;font-weight:700}
.mp-nav{background:none;border:none;color:#fff;font-size:16px;cursor:pointer;
  padding:2px 6px;border-radius:4px;line-height:1}
.mp-nav:hover{background:rgba(255,255,255,.15)}
.mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:10px}
.mp-cell{border:none;border-radius:6px;padding:7px 4px;font-size:12px;font-weight:500;
  cursor:pointer;background:none;text-align:center;color:#334155;transition:all .15s}
.mp-cell:hover{background:#eff6ff;color:#1d4ed8}
.mp-cell.in-range{background:#dbeafe;color:#1e40af}
.mp-cell.selected{background:#2563eb!important;color:#fff!important;font-weight:700}
.mp-cell.selected-start{background:#2563eb;color:#fff;font-weight:700}
.mp-cell.selected-end{background:#2563eb;color:#fff;font-weight:700}
.mp-cell.disabled{color:#cbd5e1;cursor:default}
.mp-footer{display:flex;justify-content:flex-end;padding:6px 10px;border-top:1px solid #f1f5f9;gap:6px}
.mp-clear{background:none;border:1px solid #e2e8f0;color:#64748b;border-radius:6px;
  padding:4px 12px;font-size:11px;cursor:pointer}
.mp-clear:hover{background:#f8fafc}
.mp-close{background:#2563eb;border:none;color:#fff;border-radius:6px;
  padding:4px 12px;font-size:11px;cursor:pointer;font-weight:600}
.mp-close:hover{background:#1d4ed8}

/* ══ FONT SIZE BOOST ══════════════════════════════════════════════════════ */
/* Panel number overrides — must defeat font boost */
#p5net div, #p5net span,
#p5revchange div, #p5revchange span { font-size:12px !important; }
/* Smaller sub-labels */
#p5net div[style*="margin-top:1px"],
#p5revchange div[style*="margin-top:1px"] { font-size:9px !important; color:#94a3b8 !important; }
body{font-size:14px}
.kpi-l .lbl{font-size:12px}
.kpi-l .val{font-size:24px}
.kpi-l .val span{font-size:14px}
.kpi-l .sub{font-size:13px}
.ct{font-size:12px}
.ct-sm{font-size:11px}
table{font-size:13px}
th{font-size:12px}
td{font-size:13px}
.ins-t{font-size:13px}
.leg{font-size:12px}
.phdr-l h2{font-size:18px}
.phdr-l p{font-size:13px}
.sq-h{font-size:15px}
.sq-sub{font-size:12px}
.sq-desc{font-size:12px}
.sq-stat-cnt{font-size:14px}
.sq-stat-lbl{font-size:12px}
.sq-stat-val{font-size:12px}
.mx-yaxis-lbl{font-size:13px}
.mx-yaxis-hi,.mx-yaxis-lo{font-size:12px}
.mx-xaxis-lbl{font-size:13px}
.mx-xaxis-lo,.mx-xaxis-hi{font-size:12px}
.seg-card .seg-name{font-size:15px}
.seg-card .seg-count{font-size:28px}
.seg-card .seg-meta{font-size:12px}
.net-row{font-size:13px}
.rev-row{font-size:13px}
.mv-text{font-size:13px}
.migration-matrix table th,.migration-matrix table td{font-size:13px}
.dr-input{font-size:13px}
.fsel{font-size:12px}
.tbtn{font-size:13px}
.footer{font-size:11px}
