/* Open Oceans CRM — design system, extracted from open-oceans-prototype.html */
:root{
  --navy:#152a52;
  --navy-deep:#0e1f3f;
  --navy-soft:#3a4d78;
  --indigo:#4b3fd6;
  --indigo-dark:#392fb0;
  --border:#dfe3ea;
  --bg:#eef0f3;
  --panel:#ffffff;
  --text:#1c2433;
  --muted:#6b7385;
  --red:#d93636;
  --green:#1fa971;
  --row-alt:#f7f8fa;
  --radius:6px;
  --shadow:0 1px 3px rgba(15,25,55,0.08);
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:13px;
}
a{color:inherit;text-decoration:none;}

/* ===== Top nav ===== */
header.topnav{
  background:#fff;
  border-bottom:3px solid var(--navy);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 24px;
  position:sticky;
  top:0;
  z-index:50;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--navy);}
.brand .mark{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--navy),var(--navy-soft));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;
}
.brand .name{line-height:1.1;}
.brand .name small{display:block;font-weight:600;font-size:9px;letter-spacing:1.5px;color:var(--muted);}
.top-icons{display:flex;align-items:center;gap:14px;}
.top-icons .icon-btn{
  width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--row-alt);color:var(--navy);font-size:15px;cursor:pointer;
}
.avatar{
  width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;
  cursor:pointer;
}

/* ===== Prototype switcher ===== */
.module-nav{
  background:var(--navy-deep);
  display:flex;gap:4px;padding:0 24px;overflow-x:auto;
}
.module-nav button{
  background:transparent;border:none;color:#c4cbdd;padding:11px 16px;font-size:12.5px;
  font-weight:600;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;
}
.module-nav button.active{color:#fff;border-bottom-color:var(--indigo);background:rgba(255,255,255,0.05);}
.module-nav button:hover{color:#fff;}

main{padding:22px 24px 60px;max-width:1900px;margin:0 auto;}
.view{display:none;}
.view.active{display:block;}

h1.page-title{font-size:24px;margin:0 0 16px;color:var(--navy);font-weight:700;}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:14px;}

.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:4px;font-size:12.5px;font-weight:600;
  border:1px solid var(--navy);cursor:pointer;background:#fff;color:var(--navy);
}
.btn.primary{background:var(--navy);color:#fff;}
.btn.indigo{background:var(--indigo);border-color:var(--indigo);color:#fff;}
.btn.indigo:hover{background:var(--indigo-dark);}
.btn.magenta{background:#c026a3;border-color:#c026a3;color:#fff;}
.btn.magenta:hover{background:#a01e87;}
.btn.purple{background:#7c3aed;border-color:#7c3aed;color:#fff;}
.btn.purple:hover{background:#6528c9;}
.btn:hover{filter:brightness(0.96);}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}

.search-box{display:flex;}
.search-box input{border:1px solid var(--border);border-right:none;border-radius:4px 0 0 4px;padding:8px 10px;font-size:12.5px;width:220px;}
.search-box button{border-radius:0 4px 4px 0;border:1px solid var(--navy);background:var(--navy);color:#fff;padding:0 12px;cursor:pointer;}

/* ===== Status tabs (Trades) ===== */
.status-tabs{display:flex;gap:2px;margin-bottom:14px;flex-wrap:wrap;}
.status-tabs button{
  padding:8px 18px;border:1px solid var(--border);background:#fff;color:var(--navy);
  font-size:12.5px;font-weight:600;cursor:pointer;
}
.status-tabs button:first-child{border-radius:4px 0 0 4px;}
.status-tabs button:last-child{border-radius:0 4px 4px 0;}
.status-tabs button.active{background:var(--indigo);color:#fff;border-color:var(--indigo);}

.filters-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:10px;}
.pill{background:var(--row-alt);border:1px solid var(--border);border-radius:4px;padding:7px 14px;font-size:12px;font-weight:600;color:var(--navy);}
.pill.dark{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);}

table{width:100%;border-collapse:collapse;background:var(--panel);box-shadow:var(--shadow);}
thead th{
  text-align:left;font-size:11.5px;color:var(--navy);text-transform:none;
  padding:10px 12px;border-bottom:2px solid var(--border);white-space:nowrap;font-weight:700;
}
thead th .colfilter{
  display:block;margin-top:6px;width:100%;font-weight:400;
  border:1px solid var(--border);border-radius:3px;padding:5px 7px;font-size:11.5px;
}
tbody td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top;font-size:12.5px;}
tbody tr:hover{background:#f4f6fb;}
tbody tr.clickable{cursor:pointer;}
.muted{color:var(--muted);font-size:11px;}
.prod-name{font-weight:700;color:var(--navy);}
.amount{font-weight:700;}
.person-block{margin-bottom:10px;}
.person-block:last-child{margin-bottom:0;}
.person-block .pname{font-weight:600;}
.person-block .porg{color:var(--muted);font-size:11px;}
.person-block .pfee{color:var(--muted);font-size:11px;}
.badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--green);color:#fff;font-size:10px;font-weight:700;}
.row-menu{color:var(--muted);cursor:pointer;font-weight:700;letter-spacing:1px;}
.table-scroll{overflow-x:auto;box-shadow:var(--shadow);}
/* table-layout:fixed makes each <th style="width:Npx"> actually stick — with the
   inline table width set in JS (sum of visible columns), the table can grow wider
   than its wrapper as more columns are switched on, instead of every column being
   squeezed to fit; .table-scroll's overflow-x then turns that into a scrollbar. */
.table-scroll table{box-shadow:none;table-layout:fixed;}

/* ===== Column visibility panel ===== */
.vis-wrap{position:relative;}
.vis-panel{
  display:none;position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--border);
  border-radius:6px;box-shadow:0 6px 20px rgba(15,25,55,.15);padding:10px;max-height:340px;overflow-y:auto;width:230px;z-index:80;
}
.vis-panel.open{display:block;}
.vis-panel .vis-title{font-weight:700;color:var(--navy);font-size:11.5px;padding:2px 4px 8px;border-bottom:1px solid var(--border);margin-bottom:6px;}
.vis-item{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:12px;color:var(--navy);cursor:pointer;border-radius:4px;}
.vis-item:hover{background:var(--row-alt);}

/* ===== Row action menu ===== */
.row-action-menu{
  display:none;position:absolute;background:#fff;border:1px solid var(--border);border-radius:6px;
  box-shadow:0 6px 20px rgba(15,25,55,.18);width:190px;padding:6px 0;z-index:100;
}
.row-action-menu.open{display:block;}
.rmi{padding:9px 14px;font-size:12.5px;color:var(--navy);cursor:pointer;font-weight:600;}
.rmi:hover{background:var(--row-alt);}
.rmi.danger{color:var(--red);}

/* ===== Contract note tooltip ===== */
.c-wrap{position:relative;display:inline-block;margin-left:6px;cursor:pointer;vertical-align:middle;}
.tooltip-bubble{
  display:none;position:absolute;bottom:130%;right:-10px;width:210px;background:#eafaf1;border:1px solid #bfe8d3;
  color:#1c4b34;padding:10px 12px;border-radius:8px;font-size:11px;line-height:1.45;box-shadow:0 6px 16px rgba(0,0,0,.12);z-index:60;
}
.tooltip-bubble:after{content:"";position:absolute;top:100%;right:14px;border:6px solid transparent;border-top-color:#eafaf1;}
.c-wrap:hover .tooltip-bubble{display:block;}

/* ===== Toast ===== */
#toast{
  position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--navy-deep);color:#fff;
  padding:10px 18px;border-radius:6px;font-size:12.5px;opacity:0;pointer-events:none;transition:all .25s;z-index:200;
}
#toast.show{opacity:1;transform:translate(-50%,0);}

/* ===== Trade details ===== */
.stepper{display:flex;margin-bottom:20px;border-radius:4px;overflow:hidden;box-shadow:var(--shadow);}
.stepper div{
  flex:1;background:#e2e5ec;color:var(--muted);text-align:center;padding:12px 8px;font-weight:700;font-size:13px;
  position:relative;
}
.stepper div small{display:block;font-weight:400;font-size:11px;margin-top:2px;}
.stepper div.done{background:#7c8296;color:#fff;}
.stepper div.current{background:#2fa66b;color:#fff;}
.details-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:0;}
.details-tabs button{
  padding:10px 18px;border:1px solid var(--border);border-bottom:none;background:#f2f3f6;color:var(--navy);
  font-weight:600;font-size:12.5px;cursor:pointer;margin-right:2px;border-radius:4px 4px 0 0;
}
.details-tabs button.active{background:#fff;border-bottom:1px solid #fff;position:relative;top:1px;}
.details-panel{background:#fff;box-shadow:var(--shadow);padding:24px;max-width:640px;}
.field{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;margin-bottom:16px;}
.field label{font-weight:600;color:var(--navy);}
.field input[type=text],.field input[type=number],.field select{
  width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:4px;font-size:12.5px;background:#fff;
}
.field .dropzone{
  border:1.5px dashed var(--border);border-radius:4px;padding:14px;text-align:center;color:var(--muted);font-size:12px;background:#fafafa;
}
.field .radio-row{display:flex;gap:20px;font-weight:600;color:var(--navy);}
.field .radio-row label{display:flex;align-items:center;gap:6px;font-weight:600;}
.add-link{color:var(--indigo);font-weight:700;cursor:pointer;}
.person-added{background:var(--row-alt);border:1px solid var(--border);border-radius:4px;padding:8px 10px;margin-top:6px;font-size:12px;}

.inv-panel{background:#fff;box-shadow:var(--shadow);padding:24px;max-width:980px;}
.inv-section-title{font-weight:700;color:var(--navy);font-size:13px;margin:22px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);}
.inv-section-title:first-child{margin-top:0;}
.inv-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;}
.inv-grid .field{grid-template-columns:140px 1fr;margin-bottom:0;}
.split-table{width:100%;border-collapse:collapse;margin-top:4px;}
.split-table th{text-align:left;font-size:11px;color:var(--muted);font-weight:700;padding:7px 8px;border-bottom:2px solid var(--border);}
.split-table td{padding:6px 8px;border-bottom:1px solid var(--border);}
.split-table td input,.split-table td select{width:100%;padding:7px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;}
.split-table tfoot td{font-weight:700;color:var(--navy);border-top:2px solid var(--border);border-bottom:none;padding-top:9px;}
.split-remove{color:var(--red);cursor:pointer;font-weight:700;font-size:14px;padding:0 6px;}
.split-add-row{margin-top:8px;}
.inv-textarea{width:100%;padding:10px;border:1px solid var(--border);border-radius:4px;font-size:12.5px;font-family:inherit;resize:vertical;}

/* ===== Modal ===== */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(15,25,55,.45);z-index:300;align-items:flex-start;justify-content:center;overflow-y:auto;padding:40px 20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:#fff;border-radius:10px;box-shadow:0 20px 60px rgba(15,25,55,.35);max-width:720px;width:100%;padding:28px 30px;position:relative;}
.modal-close{position:absolute;top:14px;right:16px;cursor:pointer;color:var(--muted);font-size:18px;font-weight:700;line-height:1;background:none;border:none;}
.modal-close:hover{color:var(--navy);}

/* ===== Invoice document (View Invoice) ===== */
.invoice-doc-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--navy);padding-bottom:14px;margin-bottom:18px;}
.invoice-doc-head .brand{font-weight:800;color:var(--navy);font-size:16px;letter-spacing:.02em;}
.invoice-doc-head .brand small{display:block;font-weight:600;color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase;}
.invoice-doc-head .doc-meta{text-align:right;font-size:12px;color:var(--muted);}
.invoice-doc-head .doc-meta b{display:block;color:var(--navy);font-size:15px;}
.invoice-doc-section{margin-bottom:16px;}
.invoice-doc-section h5{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 6px;}
.invoice-doc-section .val{font-size:13px;color:var(--navy);font-weight:600;}
.invoice-doc-table{width:100%;border-collapse:collapse;margin-bottom:14px;}
.invoice-doc-table th{text-align:left;font-size:10.5px;color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:2px solid var(--border);text-transform:uppercase;}
.invoice-doc-table td{padding:8px;font-size:12.5px;border-bottom:1px solid var(--border);}
.invoice-doc-table tfoot td{font-weight:700;color:var(--navy);border-top:2px solid var(--border);border-bottom:none;}
.invoice-doc-status{display:inline-block;padding:4px 12px;border-radius:20px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.invoice-doc-status.paid{background:#e4f6ee;color:var(--green);}
.invoice-doc-status.due{background:#fdeaea;color:var(--red);}
.invoice-doc-text{font-size:12.5px;color:var(--text);background:var(--row-alt);border-radius:6px;padding:12px;line-height:1.5;}
.invoice-doc-bank{font-size:12px;color:var(--navy);line-height:1.7;}

/* ===== Send via Outlook compose modal ===== */
.send-compose-field{margin-bottom:12px;}
.send-compose-field label{display:block;font-size:11px;font-weight:700;color:var(--navy);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em;}
.send-compose-field input,.send-compose-field textarea{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:4px;font-size:12.5px;font-family:inherit;}
.send-compose-field textarea{min-height:150px;resize:vertical;}
.send-attachment-chip{display:inline-flex;align-items:center;gap:6px;background:var(--row-alt);border:1px solid var(--border);border-radius:20px;padding:5px 12px;font-size:11.5px;color:var(--navy);font-weight:600;}

/* ===== Calendar ===== */
.cal-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:10px;}
.cal-toolbar .left-group{display:flex;gap:8px;align-items:center;}
.cal-title{font-weight:700;color:var(--navy);}
.cal-title .sub{display:block;font-size:11px;color:var(--muted);font-weight:400;}
select.month-select{border:1px solid var(--border);border-radius:4px;padding:7px 10px;font-size:12.5px;}
.calendar{width:100%;border-collapse:collapse;background:#fff;box-shadow:var(--shadow);table-layout:fixed;}
.calendar th{background:var(--row-alt);padding:8px;font-size:11.5px;color:var(--navy);border:1px solid var(--border);}
.calendar td{border:1px solid var(--border);vertical-align:top;height:96px;padding:6px;font-size:11px;}
.calendar td.other-month{background:#fafafa;color:#c3c8d3;}
.calendar td.today{outline:2px solid var(--indigo);outline-offset:-2px;}
.daynum{font-weight:700;color:var(--navy);margin-bottom:4px;}
.cal-event{background:#eceafc;border-left:3px solid var(--indigo);border-radius:2px;padding:2px 4px;margin-bottom:3px;font-size:10.5px;line-height:1.3;}
.cal-event b{display:block;}
.cal-event-coupon{background:#e4f7ee;border-left:3px solid #1fa971;cursor:pointer;}
.cal-event-coupon:hover{background:#d3f0e2;}

/* ===== Contacts ===== */
.az-bar{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:14px;}
.az-bar span{
  padding:5px 9px;border-radius:3px;background:#fff;border:1px solid var(--border);font-weight:600;font-size:11.5px;cursor:pointer;color:var(--navy);
}
.az-bar span.active{background:var(--indigo);color:#fff;border-color:var(--indigo);}
.contacts-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.contacts-head .title{display:flex;align-items:center;gap:10px;}
.contacts-head .icon-sq{width:34px;height:34px;border-radius:6px;background:var(--indigo);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;}
.contacts-filter{position:relative;display:inline-block;cursor:pointer;}
.contacts-filter-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);min-width:150px;z-index:30;padding:4px 0;margin-top:4px;}
.contacts-filter-menu.show{display:block;}
.contacts-filter-menu div{padding:7px 14px;font-size:12.5px;color:var(--navy);cursor:pointer;}
.contacts-filter-menu div:hover{background:var(--row-alt);}
.contacts-filter-menu div.sel{font-weight:700;}
.contacts-filter-menu div.sel::before{content:"✓ ";color:var(--indigo);}

/* ===== Leads ===== */
.lead-status-pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.lead-status-pill.st-new{background:#eceafd;color:var(--indigo);}
.lead-status-pill.st-contacted{background:#e2edfb;color:#2a5fa8;}
.lead-status-pill.st-nurturing{background:#fff3d6;color:#9a6b00;}
.lead-status-pill.st-notqualified{background:#fdeeee;color:#c0392b;}
.lead-status-pill.st-tobsigned{background:#e4f6ee;color:var(--green);}
.lstepper{display:flex;margin-bottom:20px;border-radius:4px;overflow:hidden;box-shadow:var(--shadow);}
.lstepper div{flex:1;background:#e2e5ec;color:var(--muted);text-align:center;padding:12px 8px;font-weight:700;font-size:13px;cursor:pointer;}
.lstepper div small{display:block;font-weight:400;font-size:11px;margin-top:2px;}
.lstepper div.done{background:#7c8296;color:#fff;}
.lstepper div.current{background:#2fa66b;color:#fff;}
.ld-qtoggle{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--muted);margin-left:auto;}
.ld-switch{position:relative;width:42px;height:22px;background:#ccc;border-radius:20px;cursor:pointer;transition:background .15s;flex-shrink:0;}
.ld-switch.on{background:var(--green);}
.ld-switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.3);}
.ld-switch.on::after{left:22px;}
.convert-banner{background:#e4f6ee;border:1px solid #bfe9d4;color:#12603f;font-size:12.5px;padding:10px 14px;border-radius:6px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.plus-btn{width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;}

/* ===== Invoices ===== */
.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--red);}
.status-dot.paid{background:var(--green);}
.out-amt{color:var(--red);font-weight:700;}
.out-amt.paid{color:var(--green);}

/* ===== Contact Detail (HubSpot-style record page) ===== */
.cd-crumb{font-size:11.5px;color:var(--muted);margin-bottom:10px;}
.cd-crumb a{color:var(--indigo);font-weight:700;cursor:pointer;}
.cd-header{
  background:#fff;box-shadow:var(--shadow);border-radius:8px;padding:20px 24px;
  display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap;
}
.cd-avatar-lg{
  width:56px;height:56px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--indigo),var(--navy));color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:19px;
}
.cd-title h2{margin:0;font-size:20px;color:var(--navy);}
.cd-title .cd-sub{color:var(--muted);font-size:12.5px;margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.pill-status{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;background:#fff3d6;color:#8a6400;}
.pill-status.active{background:#e2f7ec;color:#127a4d;}
.pill-type{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;background:#eceafc;color:var(--indigo);}
.cd-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;}

.cd-body{display:flex;gap:18px;align-items:flex-start;}
.cd-sidebar{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:12px;}
.cd-card{background:#fff;border-radius:8px;box-shadow:var(--shadow);overflow:hidden;}
.cd-card summary{
  padding:12px 16px;font-weight:700;color:var(--navy);cursor:pointer;font-size:12.5px;
  list-style:none;display:flex;justify-content:space-between;align-items:center;
}
.cd-card summary::-webkit-details-marker{display:none;}
.cd-card summary:after{content:"▾";color:var(--muted);font-size:10px;}
.cd-card[open] summary:after{content:"▴";}
.cd-card .cd-card-body{padding:2px 16px 14px;}
.cd-box-head{padding:12px 16px;font-weight:700;color:var(--navy);font-size:12.5px;}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;}
.dash-grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.dash-grid .cd-box-head{display:flex;align-items:center;gap:8px;}
.dash-grid .cd-box-head .chip{margin-left:0;}
.dash-viewall{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--indigo);cursor:pointer;}
.cd-detail-cards{display:flex;flex-direction:column;gap:12px;}
.cd-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:12px;border-bottom:1px dashed #eef0f3;}
.cd-row:last-child{border-bottom:none;}
.cd-row .k{color:var(--muted);flex-shrink:0;}
.cd-row .v{color:var(--text);font-weight:600;text-align:right;}
.chip{
  display:inline-flex;align-items:center;gap:5px;background:var(--row-alt);border:1px solid var(--border);
  border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;color:var(--navy);margin:2px 3px 2px 0;
}
.chip.rm{background:#eceafc;border-color:#d9d4fb;color:var(--indigo);}
.chip .x{cursor:pointer;color:var(--muted);font-weight:700;margin-left:2px;}
.chip .x:hover{color:var(--red);}
.chip-add{border:1px dashed var(--border);color:var(--muted);background:transparent;cursor:pointer;}
.chip-wrap{margin-top:4px;}
.chip-field-label{font-size:11px;color:var(--muted);font-weight:700;margin:10px 0 2px;}
.chip-field-label:first-child{margin-top:2px;}
.chip-popover{
  position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1px solid var(--border);border-radius:6px;
  box-shadow:0 6px 20px rgba(15,25,55,.15);max-height:220px;overflow-y:auto;width:230px;z-index:90;padding:6px 0;
}
.chip-pop-item{padding:6px 12px;font-size:11.5px;cursor:pointer;color:var(--navy);}
.chip-pop-item:hover{background:var(--row-alt);}
.chip-pop-item.sel{color:var(--indigo);font-weight:700;}

/* ===== Inline-editable sidebar fields ===== */
.cd-row .v.editable-v{cursor:pointer;border-radius:4px;padding:2px 4px;margin:-2px -4px;}
.cd-row .v.editable-v:hover{background:var(--row-alt);}
.cd-row .v.editable-v .edit-pencil{opacity:0;font-size:10px;color:var(--muted);margin-left:4px;}
.cd-row .v.editable-v:hover .edit-pencil{opacity:1;}
.inline-edit{
  width:100%;max-width:150px;border:1px solid var(--indigo);border-radius:4px;padding:3px 6px;font-size:12px;
  font-family:inherit;outline:none;text-align:right;
}

.cd-main{flex:1;min-width:0;}
.cd-tabs{display:flex;gap:2px;background:#fff;border-radius:8px 8px 0 0;box-shadow:var(--shadow);padding:0 8px;overflow-x:auto;}
.cd-tabs button{
  background:transparent;border:none;padding:14px 16px;font-size:12.5px;font-weight:700;color:var(--muted);
  cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;
}
.cd-tabs button.active{color:var(--indigo);border-bottom-color:var(--indigo);}
.cd-panel{background:#fff;border-radius:0 0 8px 8px;box-shadow:var(--shadow);padding:18px 20px;}
.tabpanel{display:none;}
.tabpanel.active{display:block;}
.empty-state{color:var(--muted);font-size:12.5px;padding:20px 0;text-align:center;}

.fee-table{width:100%;border-collapse:collapse;}
.fee-table th{text-align:left;font-size:11px;color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:2px solid var(--border);}
.fee-table td{padding:9px 10px;font-size:12px;border-bottom:1px solid var(--border);}
.fee-table tfoot td{font-weight:700;color:var(--navy);border-top:2px solid var(--border);border-bottom:none;}

.comm-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;}
.comm-table{width:100%;border-collapse:collapse;min-width:1040px;}
.comm-table th,.comm-table td{padding:8px 10px;font-size:11.5px;white-space:nowrap;border-bottom:1px solid var(--border);}
.comm-table thead tr.grp-row th{text-align:center;font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;color:#fff;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.25);}
.comm-table thead tr.grp-row th.grp-fund{background:var(--navy,#1b2a4a);}
.comm-table thead tr.grp-row th.grp-oog{background:var(--indigo,#4c4fd9);}
.comm-table thead tr.grp-row th.grp-agent{background:#2f8f6e;}
.comm-table thead tr.grp-row th.grp-plain{background:transparent;border-bottom:none;}
.comm-table thead tr.sub-row th{text-align:left;font-size:10.5px;color:var(--muted);font-weight:700;background:var(--row-alt);border-bottom:2px solid var(--border);}
.comm-table thead tr.sub-row th.sub-com{text-align:center;}
.comm-table tbody td.fund-cell{white-space:normal;max-width:220px;}
.comm-table tbody td.fund-cell b{display:block;font-size:12px;color:var(--navy);}
.comm-table tbody td.fund-cell .muted{font-size:10.5px;}
.comm-table tbody td.num-cell{text-align:center;}
.comm-table tbody tr:hover td{background:#fafbff;}
.comm-table tfoot td{font-weight:700;color:var(--navy);border-top:2px solid var(--border);border-bottom:none;background:var(--row-alt);}
.comm-table tfoot td.num-cell{text-align:center;}

.invite-card{border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.invite-card:hover{border-color:var(--indigo);box-shadow:var(--shadow);}
.invite-name{font-weight:700;font-size:13.5px;color:var(--navy);}
.invite-meta{font-size:11.5px;color:var(--muted);margin-top:2px;}
.invite-tranches{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.invite-tranche{border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:11px;background:var(--row-alt);}
.invite-tranche b{color:var(--navy);font-size:12px;}
.invite-tranche .t-yield{color:var(--green);font-weight:700;}
.invite-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:140px;}
.invite-status{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:20px;}
.invite-status.open{background:#e4f6ee;color:var(--green);}
.invite-status.closing{background:#fff3d6;color:#9a6b00;}
.invite-status.invited{background:#eceafd;color:var(--indigo);}

/* ===== Prospecting ===== */
.prospect-note{background:#f2f1fd;border:1px solid #dcdaf7;color:var(--navy);font-size:11.5px;padding:10px 14px;border-radius:6px;margin-bottom:16px;line-height:1.5;}
.prospect-source{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--indigo);background:#eceafd;padding:3px 9px;border-radius:20px;}
.prospect-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:16px;box-shadow:var(--shadow);align-items:end;}
.prospect-filters .pf-field label{display:block;font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;}
.prospect-filters .pf-field input,.prospect-filters .pf-field select{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:4px;font-size:12px;}
.prospect-filters .pf-btn-cell{display:flex;}
table.prospect-table td,table.prospect-table th{vertical-align:top;}
.prospect-row-flagged{background:#fffaf0;}
.prospect-flag{display:block;margin-top:3px;font-size:10.5px;font-weight:700;color:#9a6b00;}
.prospect-status-pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:20px;background:#eceafd;color:var(--indigo);}
.prospect-empty{padding:30px 10px;text-align:center;color:var(--muted);font-size:12.5px;}

.doc-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:6px;margin-bottom:8px;}
.doc-icon{width:34px;height:34px;border-radius:6px;background:#fdeeee;color:#c0392b;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;font-weight:700;}
.doc-name{font-weight:700;color:var(--navy);font-size:12.5px;}
.doc-meta{color:var(--muted);font-size:11px;}
.doc-actions{margin-left:auto;display:flex;gap:6px;}
.doc-dropzone{border:1.5px dashed var(--border);border-radius:6px;padding:20px;text-align:center;color:var(--muted);font-size:12px;background:#fafafa;margin-top:14px;cursor:pointer;}

.related-item{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--border);cursor:pointer;}
.related-item:last-child{border-bottom:none;}
.related-item:hover{background:var(--row-alt);}
.related-avatar{width:34px;height:34px;border-radius:50%;background:var(--row-alt);border:1px solid var(--border);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;flex-shrink:0;}
.related-name{font-weight:700;color:var(--navy);font-size:12.5px;}
.related-meta{color:var(--muted);font-size:11px;}

/* ===== cd-header name — inline editable ===== */
.cd-title h2.editable-name{cursor:pointer;border-radius:5px;padding:1px 5px;margin:-1px -5px;}
.cd-title h2.editable-name:hover{background:var(--row-alt);}
.cd-title h2.editable-name .edit-pencil{opacity:0;font-size:12px;color:var(--muted);margin-left:6px;vertical-align:middle;}
.cd-title h2.editable-name:hover .edit-pencil{opacity:1;}
.inline-edit-name{font-size:20px;font-weight:700;font-family:inherit;color:var(--navy);border:1px solid var(--indigo);border-radius:6px;padding:2px 6px;width:280px;max-width:60vw;}

/* ===== Nav dropdown (Products ▾ in the top mainlinks bar) ===== */
.mainlink-dd{position:relative;display:inline-block;}
.mainlink-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);min-width:190px;z-index:40;padding:4px 0;margin-top:6px;}
.mainlink-menu.show{display:block;}
.mainlink-menu div{padding:8px 14px;font-size:12.5px;font-weight:600;color:var(--navy);cursor:pointer;}
.mainlink-menu div:hover{background:var(--row-alt);color:var(--indigo);}
.mainlink-menu .group-label{padding:7px 14px 3px;font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;cursor:default;}
.mainlink-menu .group-label:hover{background:transparent;color:var(--muted);}
.mainlink-menu .menu-divider{height:1px;background:var(--border);margin:4px 0;padding:0;cursor:default;}
.mainlink-menu .menu-divider:hover{background:var(--border);}
/* The switcher bar scrolls horizontally (overflow-x:auto), which clips any
   absolutely-positioned dropdown hanging off a button inside it. Escape
   that by pinning this one menu to the viewport instead; JS sets its
   top/left from the button's position each time it opens. */
.module-nav .mainlink-menu{position:fixed;top:auto;left:auto;}
.email-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--indigo);display:inline-block;}
tbody tr.email-unread td{font-weight:700;color:var(--navy);}

/* ===== Toggle chips (Sector / Currency multi-select on Product form) ===== */
.toggle-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}
.toggle-chip{border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:11.5px;font-weight:600;color:var(--muted);cursor:pointer;background:#fff;}
.toggle-chip:hover{border-color:var(--indigo);}
.toggle-chip.on{background:var(--indigo);border-color:var(--indigo);color:#fff;}

/* ===== Products list ===== */
.product-icon{width:30px;height:30px;border-radius:6px;background:#eceafc;color:var(--indigo);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.product-code{color:var(--muted);font-size:10.5px;margin-top:1px;}
.product-ccy-stack, .product-yield-stack{display:flex;flex-direction:column;gap:9px;}
.product-ccy-line{font-weight:700;color:var(--navy);font-size:12px;white-space:nowrap;}
.product-yield-line{font-size:12px;line-height:1.3;}
.product-yield-line .isin{display:block;color:var(--muted);font-size:10px;margin-top:1px;}
.status-circle{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;border:1.5px solid currentColor;flex-shrink:0;}
.status-circle.prospect{color:#9a6b00;background:#fff3d6;}
.status-circle.signed{color:var(--green);background:#e4f6ee;}
.product-actions-wrap{position:relative;display:inline-block;}
.product-actions-btn{cursor:pointer;color:var(--muted);font-weight:700;font-size:16px;padding:2px 6px;}
.product-actions-menu{display:none;position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);min-width:130px;z-index:30;padding:4px 0;margin-top:4px;}
.product-actions-menu.show{display:block;}
.product-actions-menu div{padding:7px 14px;font-size:12px;color:var(--navy);cursor:pointer;}
.product-actions-menu div:hover{background:var(--row-alt);}
.product-actions-menu div.danger{color:var(--red);}
.product-cat-select{padding:5px 8px;border:1px solid var(--border);border-radius:5px;font-size:11.5px;background:#fff;color:var(--navy);}

/* ===== Tasks module ===== */
.task-priority{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.task-priority.low{background:#eef0f3;color:var(--muted);}
.task-priority.medium{background:#fff3d6;color:#9a6b00;}
.task-priority.high{background:#fdeeee;color:var(--red);}
.task-check{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:#fff;}
.task-check.done{background:var(--green);border-color:var(--green);}
tr.task-row-done td{color:var(--muted);text-decoration:line-through;}
.modal-field{margin-bottom:12px;}
.modal-field label{display:block;font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px;}
.modal-field input[type=text],.modal-field select,.modal-field textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:12.5px;font-family:inherit;box-sizing:border-box;}
.modal-field textarea{min-height:60px;resize:vertical;}
.modal-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}

/* ===== Emails tab (Outlook-style sync) ===== */
.email-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:10px;}
.email-card.out{border-left:3px solid var(--indigo);}
.email-card.in{border-left:3px solid var(--green);background:#f8fdfb;}
.email-card-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap;}
.email-dir-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;background:var(--row-alt);color:var(--navy);}
.email-dir-badge.out{background:#eceafc;color:var(--indigo);}
.email-dir-badge.in{background:#e2f7ec;color:#127a4d;}
.email-subject{font-weight:700;color:var(--navy);font-size:12.5px;flex:1;}
.email-date{color:var(--muted);font-size:11px;}
.email-meta{color:var(--muted);font-size:11px;margin-bottom:8px;}
.email-body{font-size:12.5px;color:var(--text);line-height:1.55;}

/* ===== Marketing ===== */
.pill-status.scheduled{background:#e8ecfb;color:#3c4faa;}
.pill-status.draft{background:#eef0f3;color:#6b7385;}
.mkt-back{color:var(--indigo);font-weight:700;cursor:pointer;font-size:12px;margin-bottom:14px;display:inline-block;}
.mkt-card{background:#fff;border-radius:8px;box-shadow:var(--shadow);padding:20px 24px;margin-bottom:16px;}

.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:22px;}
.stat-tile{background:var(--row-alt);border:1px solid var(--border);border-radius:8px;padding:14px;}
.stat-tile .num{font-size:22px;font-weight:700;color:var(--navy);line-height:1.1;}
.stat-tile .lbl{font-size:11px;color:var(--muted);font-weight:700;margin-top:4px;text-transform:uppercase;letter-spacing:.02em;}

.meter-row{margin-bottom:16px;}
.meter-row .meter-label{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:5px;}
.meter-row .meter-label span:last-child{color:var(--muted);font-weight:600;}
.meter-track{background:var(--row-alt);border-radius:20px;height:10px;overflow:hidden;}
.meter-fill{background:var(--indigo);height:100%;border-radius:20px;}

.mkt-preview{border:1px solid var(--border);border-radius:8px;overflow:hidden;max-width:520px;}
.mkt-preview-head{background:var(--navy);color:#fff;padding:14px 18px;font-weight:700;font-size:13px;}
.mkt-preview-head .subj{font-size:11.5px;font-weight:400;opacity:.85;margin-top:3px;}
.mkt-preview-body{padding:18px;font-size:12.5px;line-height:1.65;background:#fff;color:var(--text);}

.list-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:14px 18px;margin-bottom:10px;}
.list-card-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.list-card-head .lc-name{font-weight:700;color:var(--navy);font-size:13px;}
.list-card-head .lc-count{font-size:11.5px;color:var(--muted);}
.list-members{margin-top:12px;display:none;padding-top:12px;border-top:1px solid var(--border);}
.list-members.open{display:block;}
.list-members .chip{cursor:pointer;}
.list-members .chip:hover{background:#eceafc;color:var(--indigo);}
.list-members .chip.static{cursor:default;}
.list-members .chip.static:hover{background:var(--row-alt);color:inherit;}
.list-source-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:var(--row-alt);color:var(--navy);text-transform:uppercase;letter-spacing:.03em;}

/* ── Account Types & Permissions / Users / Manage My Account ── */
.role-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow);cursor:pointer;}
.role-card:hover{border-color:var(--indigo);}
.cd-row .v[style*="cursor:pointer"]:hover{color:var(--indigo);}
.role-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.role-name{font-weight:700;color:var(--navy);font-size:14px;}
.role-perm-chips{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;}
.role-perm-chips .chip{background:var(--row-alt);border:1px solid var(--border);border-radius:20px;padding:4px 10px;font-size:11px;color:var(--navy);}
.role-perm-table{width:100%;border-collapse:collapse;margin-top:4px;}
.role-perm-table th{text-align:left;font-size:10.5px;color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:2px solid var(--border);}
.role-perm-table td{padding:5px 8px;border-bottom:1px solid var(--border);font-size:12px;color:var(--navy);}
.role-perm-table select{width:100%;padding:5px 6px;border:1px solid var(--border);border-radius:4px;font-size:11.5px;font-family:inherit;}

.builder-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
@media (max-width:900px){ .builder-grid{grid-template-columns:1fr;} }
.builder-field{margin-bottom:14px;}
.builder-field label{display:block;font-weight:700;color:var(--navy);font-size:12px;margin-bottom:5px;}
.builder-field input[type=text], .builder-field select, .builder-field textarea{
  width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:4px;font-size:12.5px;font-family:inherit;background:#fff;
}
.builder-field textarea{min-height:160px;resize:vertical;}

.composer{border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:20px;}
.composer textarea{width:100%;border:none;resize:vertical;min-height:46px;font-family:inherit;font-size:12.5px;outline:none;}
.composer-toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:8px;border-top:1px solid var(--border);padding-top:8px;flex-wrap:wrap;gap:8px;}
.composer-types{display:flex;gap:6px;flex-wrap:wrap;}
.composer-types button{background:var(--row-alt);border:1px solid var(--border);border-radius:5px;padding:5px 10px;font-size:11px;font-weight:700;color:var(--navy);cursor:pointer;}
.composer-types button.active{background:var(--indigo);border-color:var(--indigo);color:#fff;}
.composer-types button.active[data-type="linkedin"]{background:#0a66c2;border-color:#0a66c2;}
.composer-types button.active[data-type="whatsapp"]{background:#25d366;border-color:#25d366;}

.composer-extra{display:none;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:10px 2px 4px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.composer-extra.show{display:grid;}
.composer-extra .cf-field label{display:block;font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;}
.composer-extra .cf-field input,.composer-extra .cf-field select{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;}
.composer-extra .cf-radio{display:flex;gap:12px;padding-top:4px;}
.composer-extra .cf-radio label{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--navy);}
.composer-li-link{font-size:11px;color:#0a66c2;font-weight:700;cursor:pointer;align-self:end;padding-bottom:6px;}

.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px;}
.summary-tile{background:var(--row-alt);border:1px solid var(--border);border-radius:8px;padding:11px 13px;}
.summary-tile .num{font-size:18px;font-weight:700;color:var(--navy);line-height:1.15;}
.summary-tile .lbl{font-size:10.5px;color:var(--muted);font-weight:700;margin-top:3px;text-transform:uppercase;letter-spacing:.02em;}

.assoc-trades{margin-bottom:22px;}
.assoc-trades h4{margin:0 0 10px;font-size:13px;color:var(--navy);display:flex;justify-content:space-between;align-items:center;}
.assoc-trades h4 a{font-size:11.5px;color:var(--indigo);font-weight:700;cursor:pointer;}
.mini-trade{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:6px;margin-bottom:8px;cursor:pointer;}
.mini-trade:hover{background:var(--row-alt);}
.mini-trade .mt-name{font-weight:700;color:var(--navy);font-size:12.5px;}
.mini-trade .mt-sub{color:var(--muted);font-size:11px;}
.mini-trade .mt-amt{font-weight:700;font-size:12.5px;white-space:nowrap;}

.timeline{position:relative;padding-left:26px;}
.timeline:before{content:"";position:absolute;left:9px;top:4px;bottom:4px;width:2px;background:var(--border);}
.tl-item{position:relative;margin-bottom:18px;}
.tl-item .tl-dot{
  position:absolute;left:-26px;top:1px;width:20px;height:20px;border-radius:50%;background:var(--indigo);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;
}
.tl-item .tl-head{font-size:12.5px;font-weight:700;color:var(--navy);}
.tl-item .tl-meta{font-size:11px;color:var(--muted);margin-bottom:4px;}
.tl-item .tl-body{font-size:12px;color:var(--text);background:var(--row-alt);border-radius:6px;padding:8px 10px;}

footer.hint{margin-top:34px;padding:14px 18px;background:#fff;border:1px dashed var(--border);border-radius:6px;color:var(--muted);font-size:11.5px;}

/* ── Nominal Ledger (chart-of-accounts view, modeled on UGIS's Nominal Ledger) ── */
.nl-split{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;align-items:start;}
.nl-nomcard{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow);}
.nl-nomtable{width:100%;border-collapse:collapse;}
.nl-nomtable thead th{font-size:11px;font-weight:700;color:var(--navy);text-transform:none;padding:10px 12px;text-align:left;border-bottom:2px solid var(--border);background:var(--row-alt);white-space:nowrap;}
.nl-nomtable thead th.r{text-align:right;}
.nl-nomtable tbody tr.nl-row{border-bottom:1px solid var(--border);cursor:pointer;}
.nl-nomtable tbody tr.nl-row:hover td{background:#f2f4fb;}
.nl-nomtable tbody tr.nl-row.selected td{background:#eceafc;}
.nl-nomtable tbody tr.nl-section-hdr td{background:var(--row-alt);padding:7px 12px;cursor:default;}
.nl-nomtable td{padding:10px 12px;font-size:12px;color:var(--muted);vertical-align:middle;border-bottom:1px solid var(--border);}
.nl-acctno{font-weight:700;color:var(--navy);}
.nl-name{color:var(--navy);font-weight:600;}
.nl-group{font-size:11px;}
.nl-dr{text-align:right;font-weight:700;color:var(--navy);}
.nl-cr{text-align:right;font-weight:700;color:var(--green);}
.nl-nil{color:#c6cad4;}
.nl-badge{display:inline-flex;align-items:center;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:20px;margin-left:6px;white-space:nowrap;}
.nl-b-pl{background:#e7e5fb;color:var(--indigo);}
.nl-b-bs{background:#e2f6ec;color:var(--green);}
.nl-b-warn{background:#fdefdb;color:#a15c00;}
.nl-section-label{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.nl-section-total{float:right;font-size:11px;font-weight:700;}
.nl-section-total.dr{color:var(--navy);}
.nl-section-total.cr{color:var(--green);}
.nl-profit-row td{background:#e2f6ec !important;}
.nl-profit-row .nl-name{color:var(--green);}
.nl-warn-row td{background:#fdf6e9 !important;}
.nl-warn-row .nl-name{color:#a15c00;}
.nl-nomtable tfoot td{padding:10px 12px;font-size:12px;font-weight:700;color:var(--navy);border-top:2px solid var(--border);background:var(--row-alt);}
.nl-nomtable tfoot td.r{text-align:right;}

.nl-drillcard{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;position:sticky;top:14px;box-shadow:var(--shadow);}
.nl-drillhdr{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.nl-drilltitle{font-size:14px;font-weight:700;color:var(--navy);}
.nl-drillsub{font-size:11px;color:var(--muted);margin-top:2px;}
.nl-drillclose{font-size:15px;color:var(--muted);cursor:pointer;background:none;border:none;padding:2px 6px;border-radius:4px;}
.nl-drillclose:hover{background:var(--row-alt);color:var(--navy);}
.nl-drilltabs{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 16px;flex-wrap:wrap;}
.nl-dtab{font-size:11px;font-weight:600;padding:8px 10px;border:none;background:none;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;}
.nl-dtab.active{color:var(--indigo);border-bottom-color:var(--indigo);}
.nl-drillbody{overflow-y:auto;max-height:440px;}
.nl-drilltable{width:100%;border-collapse:collapse;}
.nl-drilltable thead th{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);background:var(--row-alt);white-space:nowrap;position:sticky;top:0;}
.nl-drilltable thead th.r{text-align:right;}
.nl-drilltable tbody tr{border-bottom:1px solid var(--border);}
.nl-drilltable tbody tr:hover td{background:var(--row-alt);}
.nl-drilltable td{padding:8px 12px;font-size:11px;color:var(--muted);vertical-align:middle;}
.nl-drilltable td.bold{font-weight:700;color:var(--navy);}
.nl-drilltable td.mono{font-family:'SF Mono','Consolas',monospace;font-size:10px;}
.nl-drilltable td.dr{text-align:right;font-weight:700;color:var(--navy);}
.nl-drilltable td.cr{text-align:right;font-weight:700;color:var(--green);}
.nl-drillfoot{padding:10px 14px;border-top:1px solid var(--border);background:var(--row-alt);display:flex;justify-content:space-between;align-items:center;}
.nl-drillfoot-label{font-size:11px;font-weight:700;color:var(--navy);}
.nl-drillfoot-vals{display:flex;gap:20px;}
.nl-drillfoot-val{text-align:right;}
.nl-drillfoot-val .lbl{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.nl-drillfoot-val .val{font-size:13px;font-weight:700;}
.nl-drillfoot-val .val.dr{color:var(--navy);}
.nl-drillfoot-val .val.cr{color:var(--green);}

.nl-monthrow td{padding:7px 12px;}
.nl-monthlabel{font-size:11.5px;font-weight:600;color:var(--navy);}
.nl-barwrap{height:5px;background:var(--border);border-radius:3px;overflow:hidden;width:100%;margin-top:4px;}
.nl-barfill{height:100%;border-radius:3px;background:var(--indigo);}
.nl-monthval{text-align:right;font-size:11.5px;font-weight:700;color:var(--navy);}

.nl-empty{background:#fff;border:1px dashed var(--border);border-radius:8px;padding:48px 24px;text-align:center;color:var(--muted);}
