/* DTBOX Finance OS — stylesheet extracted from the original single-file build.
   118 <style> blocks concatenated in original document order so the
   cascade is byte-for-byte equivalent to the monolith. Do not reorder. */

/* ===== [001] inline  (src lines 7-299) ===== */
:root{
  --navy:#0e2942;--navy2:#173f5f;--blue:#2f6fed;--blue2:#6b95f5;--blue-soft:#eaf2ff;
  --green:#138a62;--green2:#63b38f;--green-soft:#e9f7f1;
  --orange:#d9822b;--orange2:#f0ad63;--orange-soft:#fff4e5;
  --red:#c43d4b;--red-soft:#fff0f2;--purple:#7656c8;--purple-soft:#f1edff;
  --ink:#15212c;--muted:#6d7d8e;--line:#e2e8ee;--bg:#f4f7fa;--card:#fff;
  --shadow:0 12px 32px rgba(14,41,66,.07);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app{display:flex;min-height:100vh}
.sidebar{width:258px;background:linear-gradient(180deg,#0e2942 0%,#173f5f 62%,#16344e 100%);color:#fff;padding:24px 18px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:30}
.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 26px}.brand-mark{width:40px;height:40px;border-radius:12px;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:900}.brand strong{display:block;font-size:16px}.brand span{font-size:11px;opacity:.68}
.nav{display:flex;flex-direction:column;gap:7px}.nav button{border:0;background:transparent;color:#d7e4ef;text-align:left;padding:12px 13px;border-radius:11px;display:flex;align-items:center;gap:11px}.nav button:hover,.nav button.active{background:rgba(255,255,255,.12);color:#fff}.nav-ico{width:22px;text-align:center}
.nav-divider{height:1px;background:rgba(255,255,255,.1);margin:10px 8px}
.side-bottom{margin-top:auto;display:grid;gap:8px}.ghost-side{border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.055);color:#fff;padding:10px 12px;border-radius:10px;text-align:left}
.main{margin-left:258px;min-width:0;width:calc(100% - 258px)}
.topbar{height:74px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}.topbar h1{font-size:20px;margin:0}.topbar .sub{font-size:12px;color:var(--muted);margin-top:3px}.top-actions{display:flex;align-items:center;gap:10px}.date-pill{padding:9px 12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;font-size:12px;color:var(--muted)}
.btn{border:1px solid transparent;border-radius:10px;padding:10px 14px;font-weight:750;font-size:12px;display:inline-flex;align-items:center;gap:8px;justify-content:center}.btn-primary{background:var(--blue);color:#fff}.btn-secondary{background:#fff;border-color:var(--line);color:var(--ink)}.btn-green{background:var(--green);color:#fff}.btn-danger{background:var(--red-soft);color:var(--red);border-color:#ffd4da}.btn-sm{padding:7px 10px;font-size:11px}
.content{padding:28px 30px 50px;max-width:1640px;margin:auto}.page{display:none}.page.active{display:block}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h2{font-size:24px;margin:0 0 6px}.page-head p{margin:0;color:var(--muted);font-size:13px}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-title h3{font-size:15px;margin:0}.section-title .desc{font-size:11px;color:var(--muted)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:17px 18px;box-shadow:var(--shadow);min-width:0}.kpi .label{font-size:11px;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:7px}.kpi .value{font-size:21px;font-weight:850;letter-spacing:-.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi .hint{font-size:10px;color:var(--muted);margin-top:7px;line-height:1.45}.kpi.blue{border-top:3px solid var(--blue)}.kpi.green{border-top:3px solid var(--green)}.kpi.orange{border-top:3px solid var(--orange)}.kpi.red{border-top:3px solid var(--red)}.kpi.purple{border-top:3px solid var(--purple)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.panel-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-head h3{font-size:14px;margin:0}.panel-head p{font-size:10px;color:var(--muted);margin:4px 0 0}.panel-body{padding:18px}
.chart-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.chart-card{min-height:330px}.chart-wrap{height:250px;position:relative}svg.chart{width:100%;height:100%;overflow:visible}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-top:7px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%}
.forecast-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.forecast-box{border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff}.forecast-box .period{font-size:11px;font-weight:800;color:var(--navy);margin-bottom:12px}.forecast-line{display:flex;justify-content:space-between;gap:10px;font-size:11px;padding:5px 0}.forecast-line b{font-variant-numeric:tabular-nums}.forecast-total{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;display:flex;justify-content:space-between;font-size:12px;font-weight:850}
.flow-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:15px}.flow-box{padding:14px;border-radius:12px}.flow-box.in{background:var(--green-soft)}.flow-box.out{background:var(--red-soft)}.flow-box .small{font-size:10px;color:var(--muted)}.flow-box strong{display:block;margin-top:4px;font-size:18px}
.progress-list{display:grid;gap:12px}.progress-row .top{display:flex;justify-content:space-between;font-size:10px;margin-bottom:5px}.bar{height:8px;background:#edf1f5;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;border-radius:999px;background:var(--blue)}
.table-wrap{overflow:auto;border-radius:0 0 15px 15px}table{border-collapse:collapse;width:100%;font-size:11px;min-width:900px}th{background:#f7f9fb;color:#5d6b79;font-size:10px;text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);position:sticky;top:0}td{padding:11px 12px;border-bottom:1px solid #edf1f4;vertical-align:middle}tr:hover td{background:#fafcff}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--green)}.neg{color:var(--red)}
.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-orange{background:var(--orange-soft);color:var(--orange)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-purple{background:var(--purple-soft);color:var(--purple)}.badge-gray{background:#eef2f5;color:#617181}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filters input,.filters select{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:11px}.empty{padding:45px 20px;text-align:center;color:var(--muted)}.empty b{display:block;color:var(--ink);margin-bottom:6px}.detail-link{color:var(--blue);font-weight:750;background:none;border:0;padding:0}
.insight{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.insight-card{padding:15px;border-radius:13px;border:1px solid var(--line);background:#fff}.insight-card strong{display:block;font-size:12px;margin-bottom:5px}.insight-card span{font-size:10px;color:var(--muted);line-height:1.55}.risk-card{background:linear-gradient(145deg,#102a43,#1b4769);color:#fff;border-radius:14px;padding:16px}.risk-card .small{font-size:10px;opacity:.7}.risk-card .big{font-size:22px;font-weight:850;margin:7px 0}.risk-card .meta{font-size:10px;opacity:.82}
.modal-backdrop{position:fixed;inset:0;background:rgba(8,20,32,.48);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-backdrop.show{display:flex}.modal{background:#fff;width:min(720px,100%);max-height:90vh;border-radius:17px;box-shadow:0 25px 70px rgba(0,0,0,.23);overflow:hidden}.modal.wide{width:min(1180px,100%)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0;font-size:16px}.x{width:34px;height:34px;border-radius:9px;border:0;background:#f3f6f8;font-size:20px}.modal-body{padding:20px;overflow:auto;max-height:calc(90vh - 135px)}.modal-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafbfc}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:800;color:#4b5a68}.field input,.field select,.field textarea{width:100%;border:1px solid #d7e0e7;border-radius:10px;padding:11px 12px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#83a9ff;box-shadow:0 0 0 3px rgba(47,111,237,.1)}.field small{font-size:9px;color:var(--muted)}.currency-preview{font-size:10px;color:var(--blue);font-weight:750}
.toast{position:fixed;right:24px;bottom:24px;background:#122b3f;color:#fff;padding:12px 15px;border-radius:11px;box-shadow:0 12px 32px rgba(0,0,0,.18);font-size:11px;display:none;z-index:200}.toast.show{display:block}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hr{height:1px;background:var(--line);margin:18px 0}.note{padding:12px 14px;border-radius:11px;background:#f7f9fb;font-size:10px;color:var(--muted);line-height:1.6}.mobile-menu{display:none}
@media(max-width:1150px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}.forecast-grid{grid-template-columns:1fr}.insight{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0;width:100%}.mobile-menu{display:inline-flex}.topbar{padding:0 15px}.content{padding:18px 14px 40px}.kpi-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.form-grid,.settings-grid{grid-template-columns:1fr}}

/* V15.0.36.6 debt layout rework */
#page-debts .debt-dashboard-v1535{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-bottom:18px;
  align-items:stretch;
}
#page-debts .debt-summary-card-v1535,
#page-debts .debt-forecast-card-v1535{
  background:#fff;
  border:1px solid #ebe8fb;
  border-radius:22px;
  box-shadow:0 8px 24px rgba(24,20,56,.04);
  position:relative;
  overflow:hidden;
}
#page-debts .debt-summary-card-v1535{
  min-height:152px;
  padding:16px 18px 14px;
  gap:10px;
}
#page-debts .debt-summary-card-v1535 .title{
  font-size:14px;
  font-weight:850;
  color:#616680;
}
#page-debts .debt-summary-card-v1535 .amount{
  font-size:19px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.02em;
}
#page-debts .debt-summary-card-v1535 .count-line{
  margin-top:2px;
  padding-top:10px;
}
#page-debts .debt-summary-card-v1535 .count-line .label{
  font-size:11px;
  letter-spacing:.06em;
}
#page-debts .debt-summary-card-v1535 .count-line .value{
  font-size:13px;
}
#page-debts .debt-summary-card-v1535 .detail-btn,
#page-debts .debt-forecast-card-v1535 .detail-btn{
  margin-top:auto;
  align-self:flex-start;
  padding:8px 14px;
  border-radius:12px;
  border:1px solid #d9d3fb;
  background:#f8f6ff;
  color:#6354f4;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
#page-debts .debt-forecast-card-v1535{
  grid-column:1 / -1;
  min-height:auto;
  padding:18px;
  display:grid;
  grid-template-columns:minmax(280px,1.2fr) minmax(0,1fr) auto;
  gap:16px;
  align-items:end;
}
#page-debts .debt-forecast-card-v1535 h3{
  margin:2px 0 6px;
  font-size:18px;
  line-height:1.18;
  color:#20243a;
}
#page-debts .debt-forecast-card-v1535 p{
  margin:0;
  color:#7d8197;
  font-size:13px;
  line-height:1.55;
  max-width:52ch;
}
#page-debts .debt-forecast-stats-v1535{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
#page-debts .debt-forecast-stat-v1535{
  padding:14px 16px;
  min-height:auto;
}
#page-debts .debt-forecast-stat-v1535 .label{font-size:12px}
#page-debts .debt-forecast-stat-v1535 .amount{font-size:16px;line-height:1.2}
#page-debts .debt-forecast-stat-v1535 .count{font-size:12px;margin-top:4px}
#page-debts .debt-forecast-summary-v1536{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:220px;
}
#page-debts .debt-forecast-net-v1535{padding:12px 16px}
#page-debts .debt-forecast-actions-v1535{display:flex;justify-content:flex-end}
#page-debts .debt-detail-grid-v1536{display:grid;grid-template-columns:1fr;gap:16px}
#page-debts .debt-forecast-detail-v1535[hidden]{display:none!important}

.debt-forecast-modal-v1536{width:min(1260px,100%)}
.debt-forecast-modal-body-v1536{display:flex;flex-direction:column;gap:16px}
.debt-forecast-modal-summary-v1536{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.debt-forecast-modal-summary-v1536 .mini{
  border:1px solid #ebe8fb;border-radius:16px;padding:14px 16px;background:#fcfbff
}
.debt-forecast-modal-summary-v1536 .mini .k{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8f94aa;margin-bottom:6px}
.debt-forecast-modal-summary-v1536 .mini .v{font-size:18px;font-weight:900;color:#28304a;line-height:1.2}
.debt-forecast-modal-summary-v1536 .mini .s{margin-top:4px;font-size:12px;color:#7d8197}
.debt-forecast-modal-summary-v1536 .mini.in .v{color:#1e9e82}
.debt-forecast-modal-summary-v1536 .mini.out .v{color:#d14b5c}
.debt-forecast-modal-summary-v1536 .mini.net .v.positive{color:#1e9e82}
.debt-forecast-modal-summary-v1536 .mini.net .v.negative{color:#d14b5c}
.debt-forecast-modal-filter-v1536{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr)) auto auto;gap:12px;align-items:end}
.debt-forecast-modal-filter-v1536 .debt-filter-v1537{min-width:0}
.debt-forecast-modal-grid-v1536{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.debt-forecast-pane-v1536{border:1px solid #ebe8fb;border-radius:18px;overflow:hidden;background:#fff}
.debt-forecast-pane-head-v1536{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 16px 12px;border-bottom:1px solid #f0edf7;background:#fcfbff}
.debt-forecast-pane-head-v1536 .title{font-size:15px;font-weight:850;color:#313754}
.debt-forecast-pane-head-v1536 .meta{margin-top:4px;font-size:12px;color:#7d8197}
.debt-forecast-pane-head-v1536 .amount{font-size:16px;font-weight:900;white-space:nowrap}
.debt-forecast-pane-v1536.in .amount{color:#1e9e82}
.debt-forecast-pane-v1536.out .amount{color:#d14b5c}
.debt-forecast-pane-v1536 .table-wrap{overflow-x:visible}
.debt-forecast-pane-v1536 .debt-table-v1536{table-layout:fixed;width:100%}
.debt-forecast-pane-v1536 .debt-table-v1536 th,.debt-forecast-pane-v1536 .debt-table-v1536 td{font-size:12px;white-space:normal;word-break:break-word;padding:10px 12px}
.debt-forecast-pane-v1536 .debt-table-v1536 th:nth-child(1){width:84px}
.debt-forecast-pane-v1536 .debt-table-v1536 th:nth-child(2){width:140px}
.debt-forecast-pane-v1536 .debt-table-v1536 th:nth-child(3){width:auto}
.debt-forecast-pane-v1536 .debt-table-v1536 th:nth-child(4){width:112px}
.debt-forecast-pane-v1536 .debt-table-v1536 th:nth-child(5){width:96px}
.debt-forecast-pane-v1536 .debt-table-v1536 th:nth-child(6){width:64px}
.debt-forecast-pane-v1536 .empty{padding:18px;color:#8b90a6}
@media(max-width:1380px){
  #page-debts .debt-forecast-card-v1535{grid-template-columns:1fr;}
  #page-debts .debt-forecast-actions-v1535{justify-content:flex-start}
}
@media(max-width:1100px){
  #page-debts .debt-dashboard-v1535{grid-template-columns:1fr 1fr}
  #page-debts .debt-forecast-card-v1535{grid-column:1 / -1}
  .debt-forecast-modal-grid-v1536{grid-template-columns:1fr}
}
@media(max-width:760px){
  #page-debts .debt-dashboard-v1535{grid-template-columns:1fr}
  #page-debts .debt-forecast-stats-v1535,.debt-forecast-modal-summary-v1536,.debt-forecast-modal-filter-v1536{grid-template-columns:1fr}
}


/* V15.0.36.7 debt forecast layout refinement */
#page-debts .debt-forecast-card-v1535{
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:minmax(320px,1.1fr) minmax(0,2fr) !important;
  gap:18px !important;
  align-items:center !important;
  padding:18px 22px !important;
  min-height:auto !important;
}
#page-debts .debt-forecast-card-copy-v1536{display:flex;flex-direction:column;gap:8px;position:relative;z-index:1}
#page-debts .debt-forecast-card-copy-v1536 .debt-forecast-eyebrow-v1535{margin-bottom:0}
#page-debts .debt-forecast-card-copy-v1536 h3{margin:0 !important;font-size:18px !important;line-height:1.18 !important}
#page-debts .debt-forecast-card-copy-v1536 p{margin:0 !important;font-size:12px !important;line-height:1.55 !important;max-width:46ch !important}
#page-debts .debt-forecast-card-metrics-v1536{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:12px;
  align-items:stretch;
  position:relative;
  z-index:1;
}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535,
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535{
  min-height:76px !important;
  padding:14px 16px !important;
  border-radius:18px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:4px !important;
}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535 .label,
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535 .label{font-size:11px !important;letter-spacing:.06em !important;text-transform:uppercase !important;color:#8f94aa !important}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535 .amount,
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535 .value{font-size:16px !important;line-height:1.2 !important;font-weight:900 !important}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535 .count,
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535 .count{font-size:12px !important;color:#7d8197 !important;margin-top:0 !important}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-actions-v1535{display:flex !important;align-items:center !important;justify-content:flex-end !important;margin:0 !important}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-actions-v1535 .detail-btn{height:44px;min-width:92px;padding:0 16px !important;border-radius:14px !important;white-space:nowrap}

#debtForecastModalV1536 .modal{width:min(1180px,calc(100vw - 48px)) !important;border-radius:18px !important}
#debtForecastModalV1536 .modal-head{padding:18px 24px 16px !important;align-items:flex-start !important}
#debtForecastModalV1536 .modal-head h3{font-size:16px !important;line-height:1.3 !important}
#debtForecastModalV1536 .modal-head p{margin:6px 0 0 !important;font-size:12px !important;line-height:1.45 !important;color:#7d8197 !important}
#debtForecastModalV1536 .modal-head .x{flex:0 0 auto;margin-left:16px;align-self:flex-start}
#debtForecastModalV1536 .modal-body{padding:18px 24px !important;overflow:auto !important}
#debtForecastModalV1536 .modal-foot{padding:12px 24px !important}
#debtForecastModalV1536 .debt-forecast-modal-summary-v1536{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#debtForecastModalV1536 .debt-forecast-tabs-v1536{display:flex;gap:10px;margin-top:4px}
#debtForecastModalV1536 .debt-forecast-tab-v1536{border:1px solid #d9d3fb;background:#f8f6ff;color:#7d73da;border-radius:999px;padding:9px 14px;font-size:12px;font-weight:800;cursor:pointer;transition:.18s}
#debtForecastModalV1536 .debt-forecast-tab-v1536.active{background:#6354f4;border-color:#6354f4;color:#fff;box-shadow:0 8px 18px rgba(99,84,244,.18)}
#debtForecastModalV1536 .debt-forecast-modal-filter-v1536{grid-template-columns:repeat(3,minmax(160px,220px)) auto 1fr;gap:12px;align-items:end}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single{border:1px solid #ebe8fb;border-radius:18px;overflow:hidden;background:#fff}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .table-wrap{overflow-x:visible}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536{table-layout:fixed;width:100%}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th,
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 td{font-size:12px;white-space:normal;word-break:break-word;padding:11px 12px;vertical-align:top}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th:nth-child(1){width:90px}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th:nth-child(2){width:170px}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th:nth-child(3){width:auto}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th:nth-child(4){width:130px}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th:nth-child(5){width:110px}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th:nth-child(6){width:76px}
#debtForecastModalV1536 .debt-filter-count-v1537{justify-self:flex-end}
@media(max-width:1260px){
  #page-debts .debt-forecast-card-v1535{grid-template-columns:1fr !important}
  #page-debts .debt-forecast-card-metrics-v1536{grid-template-columns:repeat(2,minmax(0,1fr)) auto}
}
@media(max-width:860px){
  #page-debts .debt-forecast-card-metrics-v1536{grid-template-columns:1fr}
  #debtForecastModalV1536 .debt-forecast-modal-summary-v1536,
  #debtForecastModalV1536 .debt-forecast-modal-filter-v1536{grid-template-columns:1fr}
  #debtForecastModalV1536 .debt-filter-count-v1537{justify-self:flex-start}
  #debtForecastModalV1536 .debt-forecast-tabs-v1536{flex-wrap:wrap}
}


/* V15.0.39 — Financial Event Engine + Debt Settlement Ledger */
.debt-progress-v1540{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.debt-progress-card-v1540{padding:12px 13px;border:1px solid #ebe8f6;border-radius:14px;background:#faf9fe}
.debt-progress-card-v1540 .k{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9297aa}
.debt-progress-card-v1540 .v{margin-top:6px;font-size:16px;line-height:1.2;font-weight:900;color:#2c314d}
.debt-progress-card-v1540.paid .v{color:#159a71}.debt-progress-card-v1540.remain .v{color:#d14b5c}.debt-progress-card-v1540.progress .v{color:#6657ee}
.debt-progress-bar-v1540{height:7px;border-radius:999px;background:#ece9f6;overflow:hidden;margin-top:7px}.debt-progress-bar-v1540 span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7668f5,#45b99f)}
.debt-settlement-head-v1540{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;margin-bottom:8px}
.debt-settlement-head-v1540 h4{margin:0;font-size:13px;color:#30364f}.debt-settlement-head-v1540 .hint{font-size:11px;color:#8c91a6}
.debt-settlement-table-v1540{border:1px solid #ebe8f6;border-radius:14px;overflow:hidden;background:#fff}
.debt-settlement-row-v1540{display:grid;grid-template-columns:86px minmax(120px,1fr) 124px 110px minmax(150px,1.2fr);gap:10px;padding:10px 12px;border-top:1px solid #f0edf7;align-items:center;font-size:11px;color:#414762}
.debt-settlement-row-v1540:first-child{border-top:0}.debt-settlement-row-v1540.head{background:#faf9fe;color:#9095aa;font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:9px}
.debt-settlement-row-v1540 .money{font-weight:900;color:#2c314d}.debt-settlement-row-v1540 .recon{font-weight:800}.debt-settlement-row-v1540 .recon.pending{color:#b8791e}.debt-settlement-row-v1540 .recon.matched{color:#159a71}.debt-settlement-row-v1540 .recon.mismatch{color:#d14b5c}
.debt-settlement-empty-v1540{padding:14px;color:#8c91a6;font-size:12px;background:#fcfbff}
.debt-item-actionbar-v1540{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 13px;border-radius:14px;background:#f8f7ff;border:1px solid #e8e4fb}
.debt-item-actionbar-v1540 .copy{font-size:11px;color:#747a91;line-height:1.45}.debt-item-actionbar-v1540 .btn{white-space:nowrap}
#debtSettlementModalV1540 .modal{max-width:760px}
.debt-settlement-note-v1540{padding:10px 12px;margin-bottom:12px;border-radius:12px;background:#f6f5ff;border:1px solid #e6e2fb;color:#626881;font-size:11px;line-height:1.5}
.debt-settlement-grid-v1540{display:grid;grid-template-columns:1fr 1fr;gap:12px}.debt-settlement-grid-v1540 .field.full{grid-column:1/-1}
.debt-settlement-preview-v1540{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.debt-settlement-preview-v1540 .p{padding:10px 12px;border-radius:12px;border:1px solid #ebe8f6;background:#faf9fe}.debt-settlement-preview-v1540 .k{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#959aad;font-weight:800}.debt-settlement-preview-v1540 .v{margin-top:5px;font-size:14px;font-weight:900;color:#2d334f}.debt-settlement-preview-v1540 .p.remain .v{color:#d14b5c}
.debt-paid-chip-v1540{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eaf9f4;color:#168b72;font-size:10px;font-weight:800}.debt-partial-chip-v1540{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#f1efff;color:#6657ee;font-size:10px;font-weight:800}
@media(max-width:760px){.debt-progress-v1540{grid-template-columns:1fr 1fr}.debt-settlement-grid-v1540,.debt-settlement-preview-v1540{grid-template-columns:1fr}.debt-settlement-grid-v1540 .field.full{grid-column:auto}.debt-settlement-row-v1540{grid-template-columns:1fr 1fr}.debt-settlement-row-v1540.head{display:none}}


/* ===== [002] dtbox-finnova-theme  (src lines 301-854) ===== */
:root{
  --navy:#171827 !important;
  --navy2:#25263a !important;
  --blue:#6656f4 !important;
  --blue2:#8d7cff !important;
  --blue-soft:#f1efff !important;
  --green:#2bb6a8 !important;
  --green2:#67cfc4 !important;
  --green-soft:#eafaf7 !important;
  --orange:#ff9a61 !important;
  --orange2:#ffbc8f !important;
  --orange-soft:#fff3ea !important;
  --red:#ef6d7a !important;
  --red-soft:#fff0f3 !important;
  --purple:#6a52f5 !important;
  --purple-soft:#f0edff !important;
  --ink:#171927 !important;
  --muted:#7f849b !important;
  --line:#e9e8f2 !important;
  --bg:#f7f6ff !important;
  --card:#ffffff !important;
  --shadow:0 14px 40px rgba(80,67,155,.08) !important;
}
html,body{
  background:
    radial-gradient(circle at 12% 0%, rgba(126,108,255,.08), transparent 28%),
    linear-gradient(180deg,#faf9ff 0%,#f7f6ff 100%) !important;
  color:var(--ink);
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(103,82,245,.02),transparent 24%,transparent 76%,rgba(103,82,245,.018));
  z-index:-1;
}

/* ----- App shell: convert sidebar into a premium top navigation ----- */
.app{
  display:block !important;
  min-height:100vh;
  padding:24px 28px 34px;
}
.sidebar{
  position:sticky !important;
  top:18px !important;
  inset:auto !important;
  z-index:50 !important;
  width:100% !important;
  height:72px !important;
  min-height:72px !important;
  padding:9px 14px !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:18px !important;
  border-radius:24px !important;
  background:rgba(255,255,255,.92) !important;
  color:var(--ink) !important;
  border:1px solid rgba(225,222,241,.92) !important;
  box-shadow:0 10px 34px rgba(48,43,91,.08) !important;
  backdrop-filter:blur(18px);
}
.brand{
  padding:0 10px 0 2px !important;
  min-width:245px;
  gap:11px !important;
}
.brand-mark{
  width:42px !important;
  height:42px !important;
  border-radius:13px !important;
  background:linear-gradient(145deg,#7d6cff,#5847ed) !important;
  color:#fff !important;
  box-shadow:0 9px 18px rgba(103,82,245,.24);
}
.brand strong{color:#171927 !important;font-size:15px !important;letter-spacing:-.2px}
.brand span{color:#9295a9 !important;opacity:1 !important;font-size:10px !important}
.nav{
  margin-left:auto;
  margin-right:auto;
  flex-direction:row !important;
  align-items:center;
  padding:4px !important;
  gap:4px !important;
  border-radius:18px;
  background:#1c1d2e !important;
  min-width:max-content;
}
.nav button{
  width:auto !important;
  color:#c7c8d5 !important;
  padding:10px 17px !important;
  border-radius:14px !important;
  white-space:nowrap;
  font-size:11px !important;
  transition:.18s ease;
}
.nav button:hover{
  background:#2c2d42 !important;
  color:white !important;
  transform:none !important;
}
.nav button.active{
  color:#fff !important;
  background:linear-gradient(135deg,#725ef8,#5d4bf0) !important;
  box-shadow:0 5px 15px rgba(103,82,245,.28);
}
.nav-ico{
  display:none !important;
}
.nav-divider{display:none !important}
.side-bottom{
  margin:0 0 0 auto !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center;
  gap:7px !important;
}
.ghost-side{
  width:38px !important;
  height:38px !important;
  overflow:hidden;
  white-space:nowrap;
  padding:0 !important;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px !important;
  background:#f6f5fb !important;
  color:#343548 !important;
  border:1px solid #eceaf4 !important;
  font-size:0 !important;
}
.ghost-side:first-child:before{content:"⚙";font-size:15px}
.ghost-side:nth-child(2):before{content:"⇩";font-size:15px}
.ghost-side:nth-child(3):before{content:"⇧";font-size:15px}
.ghost-side:hover{
  background:#ece9ff !important;
  color:#6656f4 !important;
  border-color:#ded8ff !important;
}
.main{
  margin-left:0 !important;
  width:100% !important;
}
.topbar{
  position:relative !important;
  top:auto !important;
  height:auto !important;
  min-height:84px;
  background:transparent !important;
  border:0 !important;
  backdrop-filter:none !important;
  padding:30px 10px 8px !important;
  z-index:10 !important;
}
.topbar h1{
  font-size:29px !important;
  line-height:1.08;
  letter-spacing:-1px;
  font-weight:850 !important;
}
.topbar .sub{
  margin-top:7px !important;
  font-size:11px !important;
  color:#8b8fa3 !important;
}
.top-actions{
  gap:9px !important;
}
.date-pill{
  background:#fff !important;
  color:#797e93 !important;
  border:1px solid #eceaf4 !important;
  border-radius:13px !important;
  padding:10px 13px !important;
  box-shadow:0 5px 20px rgba(69,62,117,.04);
}
.top-actions .btn-secondary{
  width:40px;
  height:40px;
  overflow:hidden;
  padding:0 !important;
  font-size:0 !important;
}
.top-actions .btn-secondary:before{
  content:"⚙";
  font-size:14px;
}
.content{
  padding:14px 6px 50px !important;
  max-width:1540px !important;
}

/* ----- Typography and headings ----- */
.page-head{
  align-items:center !important;
  margin-bottom:24px !important;
  padding:0 5px;
}
.page-head h2{
  font-size:31px !important;
  line-height:1.07 !important;
  letter-spacing:-1.1px;
  font-weight:850;
  margin-bottom:7px !important;
}
.page-head p{
  font-size:11px !important;
  line-height:1.55;
  color:#888da1 !important;
}
.section-title{
  margin:28px 4px 12px !important;
}
.section-title h3{
  font-size:14px !important;
  font-weight:850;
  letter-spacing:-.15px;
}
.section-title .desc{
  color:#9a9daf !important;
}

/* ----- Buttons and controls ----- */
.btn{
  min-height:40px;
  border-radius:13px !important;
  font-weight:760 !important;
  letter-spacing:-.05px;
  transition:.18s ease;
}
.btn-primary{
  background:linear-gradient(135deg,#735ff8,#5c4bea) !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(103,82,245,.23);
}
.btn-primary:hover,.btn-green:hover{transform:translateY(-1px);filter:brightness(1.02)}
.btn-green{
  background:linear-gradient(135deg,#42c8bb,#25ab9e) !important;
  box-shadow:0 8px 18px rgba(43,182,168,.19);
}
.btn-secondary{
  background:#fff !important;
  border-color:#e9e7f1 !important;
  box-shadow:none !important;
}
.btn-danger{
  background:#fff3f5 !important;
}
.filters input,.filters select{
  height:39px !important;
  border-radius:12px !important;
  border-color:#e8e6f0 !important;
  color:#53576a;
  box-shadow:0 3px 10px rgba(60,53,111,.025);
}

/* ----- Cards ----- */
.kpi-grid{
  gap:13px !important;
}
.kpi{
  position:relative;
  overflow:hidden;
  min-height:142px;
  border:1px solid #eceaf4 !important;
  border-top:1px solid #eceaf4 !important;
  border-radius:22px !important;
  padding:19px 20px !important;
  background:linear-gradient(145deg,#fff 65%,#fdfcff 100%) !important;
  box-shadow:0 11px 30px rgba(72,62,132,.06) !important;
}
.kpi:after{
  content:"";
  position:absolute;
  width:84px;height:84px;
  border-radius:50%;
  right:-34px;top:-36px;
  opacity:.09;
}
.kpi.blue:after{background:#6656f4}
.kpi.green:after{background:#2bb6a8}
.kpi.orange:after{background:#ff9a61}
.kpi.red:after{background:#ef6d7a}
.kpi.purple:after{background:#7656c8}
.kpi .label{
  font-size:10.5px !important;
  font-weight:720;
  color:#747b90 !important;
}
.kpi .value{
  font-size:25px !important;
  line-height:1.12;
  color:#171927;
}
.kpi .hint{
  color:#9b9eaf !important;
  font-size:9.8px !important;
}
.kpi.blue{box-shadow:inset 0 3px 0 rgba(102,86,244,.68),0 11px 30px rgba(72,62,132,.06) !important}
.kpi.green{box-shadow:inset 0 3px 0 rgba(43,182,168,.65),0 11px 30px rgba(72,62,132,.06) !important}
.kpi.orange{box-shadow:inset 0 3px 0 rgba(255,154,97,.75),0 11px 30px rgba(72,62,132,.06) !important}
.kpi.red{box-shadow:inset 0 3px 0 rgba(239,109,122,.7),0 11px 30px rgba(72,62,132,.06) !important}
.kpi.purple{box-shadow:inset 0 3px 0 rgba(118,86,200,.72),0 11px 30px rgba(72,62,132,.06) !important}

/* ----- Forecast cards ----- */
.forecast-grid{
  gap:13px !important;
}
.forecast-box{
  border-radius:20px !important;
  border-color:#eceaf4 !important;
  padding:18px !important;
  box-shadow:0 10px 28px rgba(72,62,132,.055);
  background:linear-gradient(145deg,#fff,#fbfaff) !important;
}
.forecast-box .period{
  font-size:11px !important;
  color:#25263a !important;
  padding-bottom:10px;
  margin-bottom:8px !important;
  border-bottom:1px dashed #ebe8f4;
}
.forecast-line{
  padding:7px 0 !important;
  color:#72778b;
}
.forecast-line b{
  color:#26283a;
}
.forecast-total{
  border-top:1px solid #ebe8f4 !important;
  margin-top:10px !important;
  padding-top:12px !important;
  color:#5c4bea;
}

/* ----- Panels ----- */
.panel{
  border-radius:24px !important;
  border-color:#ebe9f3 !important;
  box-shadow:0 12px 34px rgba(70,58,138,.065) !important;
  overflow:hidden;
}
.panel-head{
  padding:18px 20px !important;
  border-bottom-color:#efedf5 !important;
}
.panel-head h3{
  font-size:13px !important;
  font-weight:850;
  color:#202233;
}
.panel-head p{color:#9a9daf !important}
.panel-body{
  padding:20px !important;
}
.chart-grid{
  gap:13px !important;
}
.chart-card{
  min-height:342px !important;
}
.chart-wrap{
  height:262px !important;
  background:linear-gradient(180deg,#fff,#fefeff);
  border-radius:14px;
}
.legend{
  justify-content:flex-start;
  color:#969aac !important;
}
.flow-box{
  border-radius:16px !important;
  padding:16px !important;
}
.flow-box.in{
  background:linear-gradient(145deg,#eefaf8,#e4f8f4) !important;
}
.flow-box.out{
  background:linear-gradient(145deg,#fff4f5,#ffedef) !important;
}
.progress-list{
  gap:14px !important;
}
.bar{
  height:7px !important;
  background:#f0eef7 !important;
}

/* ----- Risk / insights ----- */
.insight-card{
  border-radius:16px !important;
  border-color:#eceaf4 !important;
  padding:16px !important;
  background:linear-gradient(145deg,#fff,#fcfbff) !important;
}
.insight-card strong{
  color:#292b3d;
}
.insight-card span{
  color:#8b8fa3 !important;
}

/* ----- Tables ----- */
.table-wrap{
  background:#fff;
}
table{
  font-size:10.5px !important;
}
th{
  background:#faf9fe !important;
  color:#8b8fa0 !important;
  border-bottom-color:#eceaf4 !important;
  padding:12px 13px !important;
  font-weight:800;
}
td{
  padding:12px 13px !important;
  border-bottom-color:#f0eef5 !important;
}
tr:hover td{
  background:#fbfaff !important;
}
.badge{
  border-radius:9px !important;
  padding:5px 8px !important;
}
.badge-blue{background:#efedff !important;color:#6250eb !important}
.badge-green{background:#eaf9f5 !important;color:#199b8d !important}
.badge-orange{background:#fff2e9 !important;color:#df8247 !important}
.badge-red{background:#ffeff2 !important;color:#dc5f6c !important}
.badge-purple{background:#f0edff !important;color:#7557df !important}
.badge-gray{background:#f1f2f6 !important;color:#777c8c !important}

/* ----- Modals ----- */
.modal-backdrop{
  background:rgba(26,24,48,.42) !important;
  backdrop-filter:blur(7px);
}
.modal{
  border-radius:24px !important;
  border:1px solid rgba(231,228,244,.95);
  box-shadow:0 30px 100px rgba(29,24,71,.22) !important;
}
.modal-head{
  padding:20px 22px !important;
  border-bottom-color:#efedf5 !important;
}
.modal-head h3{
  font-size:16px !important;
  font-weight:850;
  letter-spacing:-.25px;
}
.x{
  border-radius:11px !important;
  background:#f5f4fa !important;
  color:#777b90;
}
.modal-body{
  padding:22px !important;
}
.modal-foot{
  padding:15px 22px !important;
  background:#fbfaff !important;
  border-top-color:#efedf5 !important;
}
.note{
  background:#f8f7fc !important;
  border:1px solid #efedf5;
  color:#808498 !important;
  border-radius:14px !important;
}
.field label{
  color:#55596b !important;
}
.field input,.field select,.field textarea{
  min-height:43px;
  border-radius:12px !important;
  border-color:#e5e3ed !important;
  background:#fdfdff !important;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:#978aff !important;
  box-shadow:0 0 0 4px rgba(102,86,244,.09) !important;
}
.currency-preview{
  color:#6755f3 !important;
}

/* ----- Tiny polish ----- */
.money{letter-spacing:-.05px}
.pos{color:#1ca494 !important}
.neg{color:#df6572 !important}
.detail-link{color:#6554f2 !important}
.toast{
  background:#222337 !important;
  border:1px solid rgba(255,255,255,.07);
  border-radius:13px !important;
}
.empty{
  color:#9a9daf !important;
}
.empty b{color:#343648 !important}

/* ----- Responsive top navigation ----- */
@media(max-width:1280px){
  .brand{min-width:195px}
  .nav button{padding:10px 12px !important}
  .side-bottom .ghost-side:nth-child(2),.side-bottom .ghost-side:nth-child(3){display:none !important}
}
@media(max-width:950px){
  .app{padding:0}
  .sidebar{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    bottom:0 !important;
    width:270px !important;
    height:100vh !important;
    min-height:100vh !important;
    transform:translateX(-100%);
    flex-direction:column !important;
    align-items:stretch !important;
    border-radius:0 22px 22px 0 !important;
    padding:24px 17px !important;
    background:#fff !important;
  }
  .sidebar.open{transform:none !important}
  .brand{min-width:0;padding:0 4px 20px !important}
  .nav{margin:0 !important;flex-direction:column !important;background:#1c1d2e !important;padding:7px !important;width:100%}
  .nav button{width:100% !important}
  .side-bottom{margin-top:auto !important;flex-direction:column !important}
  .ghost-side{width:100% !important;height:40px !important;font-size:11px !important;justify-content:flex-start;padding:0 12px !important}
  .ghost-side:before{margin-right:8px}
  .ghost-side:first-child:before{content:"⚙"}
  .ghost-side:nth-child(2):before{content:"⇩"}
  .ghost-side:nth-child(3):before{content:"⇧"}
  .main{width:100% !important}
  .mobile-menu{display:inline-flex !important}
  .topbar{padding:22px 14px 8px !important}
  .content{padding:12px 14px 40px !important}
}
@media(max-width:760px){
  .page-head h2{font-size:26px !important}
  .kpi{min-height:132px}
  .top-actions .date-pill{display:none}
}

/* ===== [003] dtbox-cashflow-v4-extra  (src lines 857-916) ===== */
.file-drop{
  min-height:70px;
  border:1.5px dashed #d9d5f3;
  background:linear-gradient(145deg,#fbfaff,#f7f5ff);
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#6554f2;
  cursor:pointer;
  transition:.18s ease;
}
.file-drop:hover{border-color:#8f80ff;background:#f5f2ff}
.file-drop-icon{
  width:32px;height:32px;border-radius:10px;
  display:grid;place-items:center;
  background:#ebe7ff;color:#6656f4;font-size:19px;font-weight:800;
}
.file-drop small{display:block;color:#9894aa;margin-top:3px;font-weight:500}
.file-list{display:grid;gap:7px;margin-top:9px}
.file-chip{
  border:1px solid #ebe8f4;background:#fff;border-radius:12px;
  padding:9px 10px;display:flex;align-items:center;gap:9px;
}
.file-chip-icon{
  width:30px;height:30px;border-radius:9px;background:#f1efff;color:#6554f2;
  display:grid;place-items:center;font-size:10px;font-weight:900;text-transform:uppercase;
}
.file-chip-main{min-width:0;flex:1}
.file-chip-name{font-size:10.5px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-chip-size{font-size:9px;color:#9b9daf;margin-top:2px}
.file-chip button{border:0;background:#fff0f3;color:#d65d6a;width:27px;height:27px;border-radius:8px}
.attachment-viewer-list{display:grid;gap:9px}
.attachment-row{
  display:flex;align-items:center;gap:11px;padding:12px;
  border:1px solid #ebe9f3;border-radius:14px;background:#fff;
}
.attachment-row .meta{flex:1;min-width:0}
.attachment-row .name{font-weight:760;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attachment-row .sub{font-size:9px;color:#9b9daf;margin-top:3px}
.account-settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.account-settings-head b{font-size:12px}
.account-settings-sub{font-size:9.5px;color:#9295a8;margin-top:3px}
.account-settings-list{display:grid;gap:8px}
.account-setting-row{
  display:grid;grid-template-columns:1fr 150px 34px;gap:8px;align-items:center;
  padding:8px;border:1px solid #ebe9f3;border-radius:13px;background:#fbfaff;
}
.account-setting-row input,.account-setting-row select{
  border:1px solid #e3e0ec;border-radius:10px;padding:9px 10px;background:#fff;font-size:10px;
}
.account-setting-row button{
  width:34px;height:34px;border:0;border-radius:9px;background:#fff0f3;color:#d85e6b;
}
@media(max-width:650px){
 .account-setting-row{grid-template-columns:1fr 115px 34px}
}

/* ===== [004] dtbox-partner-accounts-extra  (src lines 919-967) ===== */
.partner-select-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}
.partner-add-btn{white-space:nowrap;padding-left:13px!important;padding-right:13px!important}
.partner-account-preview{
  margin-top:8px;
  min-height:0;
}
.partner-preview-card{
  display:grid;
  grid-template-columns:36px 1fr auto;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border:1px solid #e9e6f4;
  background:linear-gradient(145deg,#fbfaff,#f7f5ff);
  border-radius:13px;
}
.partner-preview-icon{
  width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;
  background:#ebe7ff;color:#6656f4;font-weight:900;font-size:12px;
}
.partner-preview-main{min-width:0}
.partner-preview-alias{font-size:10.5px;font-weight:800;color:#292b3d}
.partner-preview-meta{font-size:9px;color:#9295a8;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.partner-preview-category{font-size:9px;color:#6656f4;background:#efedff;padding:5px 7px;border-radius:8px;white-space:nowrap}
.partner-settings-list{display:grid;gap:8px}
.partner-setting-card{
  border:1px solid #ebe9f3;
  background:#fbfaff;
  border-radius:14px;
  padding:11px 12px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
}
.partner-setting-main{min-width:0}
.partner-setting-title{font-size:10.8px;font-weight:800;color:#292b3d}
.partner-setting-meta{font-size:9px;color:#9295a8;margin-top:4px;line-height:1.45}
.partner-setting-actions{display:flex;gap:6px}
.partner-setting-actions button{min-width:34px}
@media(max-width:650px){
 .partner-select-row{grid-template-columns:1fr}
 .partner-add-btn{width:100%}
 .partner-preview-card{grid-template-columns:34px 1fr}
 .partner-preview-category{grid-column:2}
}

/* ===== [005] dtbox-internal-accounts-v6  (src lines 970-993) ===== */
.internal-account-list{display:grid;gap:9px}
.internal-account-head{
  display:grid;grid-template-columns:1.2fr .8fr 1fr 1.1fr 36px;
  gap:8px;padding:0 11px 6px;color:#9295a8;font-size:9px;font-weight:800
}
.internal-account-card{
  border:1px solid #ebe9f3;background:linear-gradient(145deg,#fbfaff,#fff);
  border-radius:14px;padding:11px;display:grid;
  grid-template-columns:1.2fr .8fr 1fr 1.1fr 36px;gap:8px;align-items:center
}
.internal-account-card input,.internal-account-card select{
  width:100%;border:1px solid #e3e0ec;border-radius:10px;padding:9px 10px;
  background:#fff;font-size:10px;min-width:0
}
.internal-account-card button{
  width:36px;height:36px;border:0;border-radius:9px;background:#fff0f3;color:#d85e6b;font-weight:800
}
@media(max-width:900px){
  .internal-account-head{display:none}
  .internal-account-card{grid-template-columns:1fr 1fr}
  .internal-account-card button{grid-column:2;justify-self:end}
}

/* ===== [006] dtbox-partner-modal-fix-v7  (src lines 996-1001) ===== */
#partnerModal{z-index:180 !important}
#partnerModal .modal{position:relative;z-index:181}
#settingsModal{z-index:120}
#cashModal{z-index:120}

/* ===== [007] dtbox-partner-delete-fix-v8  (src lines 1004-1007) ===== */
#partnerDeleteModal{z-index:220 !important}
#partnerDeleteModal .modal{position:relative;z-index:221}

/* ===== [008] dtbox-revenue-v9-extra  (src lines 1009-1013) ===== */
#revenueAttachmentModal{z-index:210 !important}#revenueAttachmentModal .modal{position:relative;z-index:211}
#revAov[readonly]{background:#f8f7fc !important;color:#6554f2;font-weight:800}
.source-online{background:#efedff !important;color:#6250eb !important}.source-offline{background:#eaf9f5 !important;color:#199b8d !important}.source-other{background:#fff2e9 !important;color:#df8247 !important}

/* ===== [009] dtbox-revenue-v10-extra  (src lines 1015-1021) ===== */
#revAmount[readonly],#revAov[readonly]{
  background:#f8f7fc !important;
  color:#6554f2;
  font-weight:850;
}

/* ===== [010] dtbox-auto-cod-forecast-v11  (src lines 1023-1028) ===== */
.auto-forecast-active{background:#eaf9f5;color:#199b8d}
.auto-forecast-due{background:#fff2e9;color:#df8247}
.auto-forecast-expired{background:#f1f2f6;color:#777c8c}
#autoForecastBody td{vertical-align:middle}

/* ===== [011] dtbox-ads-engine-v12  (src lines 1031-1067) ===== */
.wallet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.wallet-card{
  background:linear-gradient(145deg,#fff,#fbfaff);
  border:1px solid #ebe9f3;border-radius:22px;
  box-shadow:0 11px 30px rgba(72,62,132,.06);padding:18px;
}
.wallet-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:14px}
.wallet-card-title{font-size:14px;font-weight:850;color:#202233}
.wallet-card-sub{font-size:9.5px;color:#979aac;margin-top:4px}
.wallet-balance{font-size:25px;font-weight:850;letter-spacing:-.6px;margin:8px 0}
.wallet-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.wallet-metric{background:#f8f7fc;border-radius:12px;padding:10px}
.wallet-metric span{display:block;font-size:8.5px;color:#9a9daf}
.wallet-metric b{display:block;font-size:11px;margin-top:5px}
.wallet-alert{margin-top:12px;padding:10px 11px;border-radius:12px;font-size:9.5px;line-height:1.45}
.wallet-alert.ok{background:#eaf9f5;color:#188f83}
.wallet-alert.warn{background:#fff2e9;color:#c87945}
.wallet-alert.danger{background:#fff0f3;color:#d35e6b}
.ad-wallet-settings-list{display:grid;gap:10px}
.ad-wallet-setting{
  border:1px solid #ebe9f3;background:#fbfaff;border-radius:15px;padding:12px;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;align-items:end
}
.ad-wallet-setting .mini-field:nth-child(9){grid-column:span 2}
.ad-wallet-setting > button{align-self:end}
.ad-wallet-setting .mini-field{display:grid;gap:4px}
.ad-wallet-setting .mini-field label{font-size:8px;color:#8f93a5;font-weight:800}
.ad-wallet-setting input,.ad-wallet-setting select{
  width:100%;min-width:0;border:1px solid #e3e0ec;border-radius:9px;padding:8px;background:#fff;font-size:9px
}
.ad-wallet-setting .aw-computed{width:100%;min-height:34px;display:flex;align-items:center;border:1px dashed #ded9f3;border-radius:9px;padding:8px;background:#f7f5ff;color:#6554f2;font-size:9px;font-weight:850}
.ad-wallet-setting button{width:34px;height:34px;border:0;border-radius:9px;background:#fff0f3;color:#d85e6b}
#adAttachmentModal{z-index:210!important}
@media(max-width:1150px){.wallet-grid{grid-template-columns:1fr}.ad-wallet-setting{grid-template-columns:1fr 1fr}.ad-wallet-setting .mini-field:nth-child(9){grid-column:span 1}}
@media(max-width:700px){.wallet-metrics{grid-template-columns:1fr}.ad-wallet-setting{grid-template-columns:1fr}.ad-wallet-setting .mini-field:nth-child(9){grid-column:span 1}}

/* ===== [012] dtbox-v12-3-header-topup  (src lines 1070-1089) ===== */
.topbar.topbar-clean{
  min-height:58px;
  padding-top:10px;
  padding-bottom:10px;
}
.topbar-left-clean{
  display:flex;
  align-items:center;
  min-width:1px;
}
.topbar.topbar-clean + .content{
  padding-top:10px;
}
#adTopupCash[readonly]{
  background:#f6f5fb !important;
  color:#696d80;
  cursor:not-allowed;
}

/* ===== [013] dtbox-founder-v13  (src lines 1092-1105) ===== */
.founder-first-title{margin-top:6px}.founder-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.founder-kpi{background:#fff;border:1px solid #ebe9f3;border-radius:20px;padding:17px;box-shadow:0 10px 28px rgba(60,52,112,.05)}
.founder-kpi .label{font-size:9px;color:#8f93a5;font-weight:800}.founder-kpi .value{font-size:24px;font-weight:900;letter-spacing:-.7px;margin-top:8px}.founder-kpi .hint{font-size:8.5px;color:#9da0b0;margin-top:6px;line-height:1.45}
.founder-two-col{display:grid;grid-template-columns:1fr 1.25fr;gap:14px;margin-bottom:18px}.founder-actions{display:grid;gap:8px}
.founder-action{display:grid;grid-template-columns:10px 1fr;gap:9px;padding:10px 11px;border-radius:12px;background:#f8f7fc}.founder-action i{width:8px;height:8px;border-radius:50%;margin-top:4px}.founder-action strong{font-size:10px;display:block;margin-bottom:3px}.founder-action span{font-size:9px;color:#777b8f;line-height:1.45}
.founder-action.red i{background:#ef6d7a}.founder-action.orange i{background:#ff9a61}.founder-action.green i{background:#2bb6a8}.founder-action.blue i{background:#6656f4}
.plan-input{width:100%;min-width:110px;border:1px solid #e1deea;border-radius:9px;padding:8px;background:#fff;font-size:10px}
.recon-difference{padding:12px;border-radius:12px;background:#f8f7fc;font-size:18px;font-weight:850}.recon-good{color:#168f82;background:#eaf9f5}.recon-bad{color:#d65f6c;background:#fff0f3}
.recurring-settings-list{display:grid;gap:9px}.recurring-setting{display:grid;grid-template-columns:1.1fr 1fr .9fr 1fr .7fr .55fr .9fr 34px;gap:7px;align-items:end;border:1px solid #ebe9f3;background:#fbfaff;border-radius:14px;padding:10px}
.recurring-setting .mini-field{display:grid;gap:4px}.recurring-setting label{font-size:8px;color:#8f93a5;font-weight:800}.recurring-setting input,.recurring-setting select{width:100%;min-width:0;border:1px solid #e3e0ec;border-radius:9px;padding:8px;background:#fff;font-size:9px}.recurring-setting button{width:34px;height:34px;border:0;border-radius:9px;background:#fff0f3;color:#d85e6b}
.internal-account-head,.internal-account-card{grid-template-columns:1.15fr .8fr 1fr 1fr .9fr .8fr 34px!important}.account-health-neg{color:#d65f6c;font-weight:800}.account-health-ok{color:#188f83;font-weight:800}.badge-orange{background:#fff2e9;color:#d77b42}.week-low{font-weight:850}
@media(max-width:1200px){.founder-kpi-grid{grid-template-columns:repeat(2,1fr)}.founder-two-col{grid-template-columns:1fr}.recurring-setting{grid-template-columns:1fr 1fr}}@media(max-width:700px){.founder-kpi-grid{grid-template-columns:1fr}.recurring-setting{grid-template-columns:1fr}}

/* ===== [014] dtbox-real-20260816  (src lines 1107-1110) ===== */
.real-data-banner{margin:0 0 14px;border:1px solid #d9d2ff;background:#f8f6ff;color:#5f53a9}
.real-data-banner b{color:#5142d9}

/* ===== [015] dtbox-v13-3-audit-polish  (src lines 1112-1200) ===== */
html,body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.money,.kpi .value,.founder-kpi .value,.wallet-balance,.forecast-total,.flow-box strong{
  font-variant-numeric:tabular-nums lining-nums;
}
.kpi .value,.founder-kpi .value{
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:normal !important;
  line-height:1.08;
  font-size:clamp(19px,1.6vw,28px) !important;
}
.founder-kpi{
  position:relative;
  overflow:hidden;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.founder-kpi:hover{transform:translateY(-1px);box-shadow:0 16px 36px rgba(70,60,135,.09)}
.founder-kpi.status-danger{border-color:#ffd1d7;background:linear-gradient(145deg,#fff,#fff8f9)}
.founder-kpi.status-good{border-color:#cfeee9;background:linear-gradient(145deg,#fff,#f7fffd)}
.founder-kpi.status-neutral{border-color:#e6e2fb}
.data-health-strip{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin:-2px 0 14px;
}
.data-health-item{
  border:1px solid #eceaf4;
  background:rgba(255,255,255,.78);
  border-radius:13px;
  padding:10px 12px;
  min-width:0;
}
.data-health-item span{display:block;font-size:8.5px;color:#9699aa;margin-bottom:5px}
.data-health-item b{display:block;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.data-health-item.health-note{background:#f4f1ff;border-color:#e2dcff}
.plan-caution{margin:-5px 0 12px;background:#fffaf4;border:1px solid #f8e1c9;color:#8c684e}
.meta-billing-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:15px 17px;
  border:1px solid #e2ddff;
  border-radius:16px;
  background:linear-gradient(135deg,#f6f3ff,#fff);
  margin-bottom:12px;
}
.meta-billing-panel .eyebrow{font-size:8px;font-weight:900;letter-spacing:.8px;color:#6756f4}
.meta-billing-panel strong{display:block;font-size:13px;margin-top:5px}
.meta-billing-panel p{font-size:9.5px;color:#7d8092;margin:5px 0 0;line-height:1.5}
.meta-billing-metrics{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:8px}
.meta-billing-metrics>div{background:#fff;border:1px solid #ebe8f5;border-radius:11px;padding:9px 10px}
.meta-billing-metrics span{display:block;font-size:8px;color:#9699aa}
.meta-billing-metrics b{display:block;font-size:10.5px;margin-top:4px}
.ghost-side{position:relative}
.ghost-side[title]:hover:after{
  content:attr(title);
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  width:max-content;
  max-width:220px;
  padding:7px 9px;
  border-radius:8px;
  background:#202133;
  color:#fff;
  font-size:9px;
  font-weight:650;
  box-shadow:0 8px 24px rgba(20,20,36,.18);
  z-index:1000;
}
table th{letter-spacing:.01em}
table td{font-variant-numeric:tabular-nums}
@media(max-width:1150px){
  .data-health-strip{grid-template-columns:repeat(2,1fr)}
  .meta-billing-panel{align-items:flex-start;flex-direction:column}
  .meta-billing-metrics{width:100%}
}
@media(max-width:700px){
  .data-health-strip{grid-template-columns:1fr}
  .meta-billing-metrics{grid-template-columns:1fr}
}

/* ===== [016] dtbox-v13-6-kpi-details  (src lines 1203-1252) ===== */
.kpi,.founder-kpi{position:relative}
.kpi-detail-btn{
  position:absolute;
  right:14px;
  bottom:12px;
  z-index:4;
  border:1px solid #e3e0ef;
  background:rgba(255,255,255,.88);
  color:#6558d9;
  border-radius:999px;
  padding:6px 10px;
  font-size:8.5px;
  line-height:1;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 5px 16px rgba(74,61,149,.08);
  backdrop-filter:blur(8px);
  transition:.16s ease;
}
.kpi-detail-btn:hover{transform:translateY(-1px);border-color:#bdb3ff;background:#f7f5ff}
.kpi-detail-btn:focus-visible{outline:2px solid #6656f4;outline-offset:2px}
.kpi-detail-modal{width:min(820px,calc(100vw - 28px))}
.kpi-detail-eyebrow{font-size:8px;font-weight:900;letter-spacing:.9px;color:#6b5af4;margin-bottom:4px}
.kpi-detail-hero{
  display:flex;justify-content:space-between;gap:14px;align-items:flex-end;
  padding:16px 17px;border:1px solid #e8e4f6;border-radius:16px;
  background:linear-gradient(135deg,#f7f5ff,#fff);margin-bottom:12px
}
.kpi-detail-hero span{display:block;font-size:9px;color:#9699aa;margin-bottom:5px}
.kpi-detail-hero strong{font-size:27px;line-height:1.08;font-weight:900;letter-spacing:-.7px;font-variant-numeric:tabular-nums}
.kpi-detail-status{font-size:9px;font-weight:800;padding:7px 10px;border-radius:999px;background:#efecff;color:#6656f4;white-space:nowrap}
.kpi-detail-status.danger{background:#fff0f3;color:#d85e6b}
.kpi-detail-status.good{background:#eaf9f5;color:#158f82}
.kpi-detail-status.warn{background:#fff5eb;color:#d17a42}
.kpi-detail-explain{padding:4px 2px 10px}
.kpi-detail-explain h4{margin:0 0 5px;font-size:10px}
.kpi-detail-explain p{margin:0;color:#707487;font-size:10px;line-height:1.6}
.kpi-detail-formula{display:grid;gap:4px;padding:11px 13px;border-radius:12px;background:#f8f7fc;margin-bottom:12px}
.kpi-detail-formula span{font-size:8px;color:#9699aa}
.kpi-detail-formula b{font-size:10px;font-weight:800;color:#2b2d3e}
.kpi-detail-table-wrap{border:1px solid #ece9f4;border-radius:14px;max-height:310px}
.kpi-detail-table-wrap table{min-width:620px}
.kpi-detail-note{margin-top:12px}
.kpi,.founder-kpi{padding-bottom:42px!important}
@media(max-width:700px){
  .kpi-detail-hero{align-items:flex-start;flex-direction:column}
  .kpi-detail-hero strong{font-size:23px}
}

/* ===== [017] dtbox-v13-7-calendar-planning  (src lines 1255-1270) ===== */
.plan-page-head{align-items:flex-end}
.plan-head-actions{display:flex;align-items:flex-end;gap:10px}
.plan-month-picker{display:grid;gap:5px}
.plan-month-picker label{font-size:8.5px;font-weight:800;color:#8f93a5}
.plan-month-picker select{
  min-width:138px;height:38px;border:1px solid #e2dfed;border-radius:11px;
  padding:0 11px;background:#fff;font-size:10px;font-weight:750;color:#252638
}
.calendar-month-note{margin:-2px 0 14px;background:#f7f5ff;border:1px solid #e4defd;color:#625a90}
@media(max-width:760px){
  .plan-page-head{align-items:stretch}
  .plan-head-actions{align-items:stretch;flex-direction:column}
  .plan-month-picker select{width:100%}
}

/* ===== [018] dtbox-v13-8-multiyear  (src lines 1273-1300) ===== */
.plan-period-picker{display:flex;gap:8px;align-items:flex-end}
.plan-month-picker select{min-width:105px}
.annual-plan-title{margin-top:26px}
.annual-actions{display:flex;gap:8px;flex-wrap:wrap}
.annual-summary-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 14px;
  border-top:1px solid #eeebf5;border-bottom:1px solid #eeebf5;background:#faf9fe
}
.annual-summary-grid>div{padding:10px 11px;border:1px solid #ebe8f4;background:#fff;border-radius:12px}
.annual-summary-grid span{display:block;font-size:8px;color:#9699aa;margin-bottom:5px}
.annual-summary-grid b{font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}
.annual-summary-grid small{display:block;font-size:8px;color:#999cad;margin-top:4px}
.annual-plan-input{width:100%;min-width:115px;border:1px solid #e3e0ec;border-radius:9px;padding:8px;background:#fff;font-size:9px}
.annual-cod-input{min-width:72px}
.annual-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:800;white-space:nowrap}
.annual-status.actual{background:#eaf9f5;color:#158f82}
.annual-status.plan{background:#efecff;color:#6656f4}
.annual-status.empty{background:#f3f3f7;color:#8d90a0}
@media(max-width:900px){
  .annual-summary-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
  .plan-period-picker{width:100%}.plan-month-picker{flex:1}.plan-month-picker select{width:100%}
  .annual-summary-grid{grid-template-columns:1fr}
  .annual-actions{width:100%}.annual-actions .btn{flex:1}
}

/* ===== [019] dtbox-v13-8-2-final-audit  (src lines 1302-1309) ===== */
.annual-forecast-warning{
  margin:10px 14px 0;padding:10px 12px;border-radius:12px;
  border:1px solid #ffd5a9;background:#fff8ef;color:#9a5f28;
  font-size:9px;line-height:1.55
}
.annual-forecast-warning b{color:#7e491d}

/* ===== [020] dtbox-v13-8-4-settings-layout-fix  (src lines 1312-1336) ===== */
/* Desktop collapsed utility rail */
.side-bottom .ghost-side:first-child:before{content:"⚙"!important;font-size:20px!important}
.side-bottom .ghost-side:nth-child(2):before{content:"⇩"!important;font-size:15px!important}
.side-bottom .ghost-side:nth-child(3):before{content:"⇧"!important;font-size:15px!important}
.side-bottom .settings-side-btn{
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  min-height:46px!important;
  border-radius:14px!important;
}
/* The topbar keeps date only; no duplicate Settings control. */
.top-actions .btn-secondary[onclick="openSettings()"]{display:none!important}

@media(max-width:700px){
  .side-bottom .settings-side-btn{
    width:100%!important;
    height:42px!important;
    min-width:0!important;
    min-height:42px!important;
  }
  .side-bottom .ghost-side:first-child:before{font-size:18px!important}
}

/* ===== [021] dtbox-v13-8-5-monthly-summary-ui  (src lines 1339-1361) ===== */
.section-title-monthly{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.monthly-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.monthly-head-note{font-size:10px;color:var(--muted);margin-right:4px}
.monthly-toggle-all{padding:7px 12px!important;border-radius:12px!important;font-size:10px!important}
.monthly-year-legend{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;padding:10px 12px 0 12px}
.year-chip-mini{padding:5px 10px;border-radius:999px;font-size:10px;font-weight:700;background:#f4f1ff;color:#6758f3;border:1px solid #e8e2ff}
.month-year-divider td{background:#fbfaff!important;padding:0!important;border-top:1px solid #efebfa}
.month-year-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}
.month-year-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.month-year-pill{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:6px 12px;border-radius:999px;background:linear-gradient(135deg,#6b5cff,#8d83ff);color:#fff;font-weight:800;font-size:10px;box-shadow:0 8px 20px rgba(107,92,255,.14)}
.month-year-meta{font-size:10px;color:var(--muted)}
.month-year-toggle{border:1px solid #e7e1fa;background:#fff;color:#6554f3;padding:7px 12px;border-radius:999px;font-size:10px;font-weight:800;cursor:pointer}
.monthly-row-muted td{color:#9b9daf}
.monthly-row-highlight td:first-child b{color:#26283b}
.monthly-hidden-note td{padding-top:0!important;color:#8f90a7;font-size:10px;background:#fcfbff!important}
@media(max-width:900px){
  .section-title-monthly{align-items:flex-start}
  .monthly-head-actions{justify-content:flex-start}
  .monthly-year-legend{justify-content:flex-start}
  .month-year-bar{align-items:flex-start;flex-direction:column}
}

/* ===== [022] dtbox-v13-8-6-forecast13-monthly  (src lines 1364-1380) ===== */
.section-title-forecast13{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.forecast13-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.forecast13-toggle-btn{padding:8px 14px!important;border-radius:14px!important;font-size:11px!important}
.forecast13-summary-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 0 14px 0;color:var(--muted);font-size:11px}
.forecast13-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:999px;background:#f4f1ff;color:#6758f3;border:1px solid #e8e2ff;font-weight:800;font-size:10px}
.forecast13-weekly-wrap{margin-top:14px;padding-top:14px;border-top:1px dashed #e6e1f7}
.forecast13-weekly-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.forecast13-weekly-head p{margin:4px 0 0 0;color:var(--muted);font-size:11px}
.month-forecast-cell{display:flex;flex-direction:column;gap:2px}
.month-forecast-cell small{font-size:9px;color:var(--muted)}
.monthly-forecast-row td:first-child b{color:#26283b}
.monthly-forecast-row td{vertical-align:top}
@media(max-width:900px){
  .section-title-forecast13{align-items:flex-start}
}

/* ===== [023] dtbox-v13-8-6-2-forecast-clean  (src lines 1383-1410) ===== */
.forecast13-clean-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-bottom:10px!important;
}
.forecast13-clean-head h3{margin:0!important}
.forecast13-toggle-btn{
  padding:7px 12px!important;
  border-radius:12px!important;
  font-size:10px!important;
  min-height:34px!important;
  white-space:nowrap!important;
}
.forecast13-panel-clean{overflow:hidden}
.forecast13-panel-clean > .table-wrap{margin-top:0!important}
.forecast13-weekly-wrap{margin-top:10px!important;padding-top:10px!important}
.forecast13-weekly-head{padding:0 2px 8px 2px!important}
@media(max-width:700px){
  .forecast13-clean-head{
    flex-direction:column!important;
    align-items:stretch!important;
  }
  .forecast13-toggle-btn{width:100%!important}
}

/* ===== [024] dtbox-v13-8-7-final-polish  (src lines 1413-1419) ===== */
#annualPlanBody input:disabled{
  background:#f7f6fb!important;
  color:#7f8295!important;
  cursor:not-allowed;
}

/* ===== [025] dtbox-v13-8-8-settings-add-fix  (src lines 1422-1428) ===== */
.setting-row-new-v1388{
  outline:2px solid rgba(102,86,244,.35)!important;
  box-shadow:0 0 0 5px rgba(102,86,244,.08)!important;
  transition:outline-color .35s ease,box-shadow .35s ease!important;
}

/* ===== [026] dtbox-v13-8-9-settings-crud  (src lines 1431-1453) ===== */
#recurringCrudModal,#adWalletCrudModal,#accountCrudModal{z-index:245!important}
#recurringCrudModal .modal,#adWalletCrudModal .modal,#accountCrudModal .modal{z-index:246!important}

.settings-compact-list{display:grid;gap:8px}
.settings-compact-card{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:11px 12px;border:1px solid #ebe9f3;background:#fbfaff;border-radius:14px
}
.settings-compact-main{min-width:0}
.settings-compact-title{font-size:10.8px;font-weight:850;color:#292b3d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-compact-meta{font-size:9px;color:#9295a8;margin-top:4px;line-height:1.5}
.settings-compact-actions{display:flex;gap:6px;align-items:center}
.settings-compact-actions .btn{padding:6px 9px!important;font-size:8.5px!important;min-height:30px}
.settings-compact-tag{
  display:inline-flex;padding:4px 7px;border-radius:999px;margin-right:5px;
  background:#efedff;color:#6656f4;font-size:8px;font-weight:800
}
@media(max-width:680px){
  .settings-compact-card{grid-template-columns:1fr}
  .settings-compact-actions{justify-content:flex-end}
}

/* ===== [027] dtbox-v13-8-9-3-ads-action-compact  (src lines 1459-1506) ===== */
.ads-row-actions-cell{
  width:92px!important;
  min-width:92px!important;
  padding-left:10px!important;
  padding-right:12px!important;
  vertical-align:middle!important;
}
.ads-row-actions{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
}
.ads-row-actions .btn{
  width:64px!important;
  min-width:64px!important;
  max-width:64px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 8px!important;
  margin:0!important;
  border-radius:11px!important;
  font-size:10px!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
}
@media(max-width:700px){
  .ads-row-actions-cell{
    width:82px!important;
    min-width:82px!important;
    padding-left:6px!important;
    padding-right:8px!important;
  }
  .ads-row-actions .btn{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:32px!important;
    min-height:32px!important;
    font-size:9px!important;
  }
}

/* ===== [028] dtbox-v14-cloud-ready-css  (src lines 1509-1566) ===== */
#cloudLoginScreen{
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(145deg,#f7f6ff 0%,#ffffff 48%,#f4f1ff 100%);
  display:none;align-items:center;justify-content:center;padding:24px
}
.cloud-login-card{
  width:min(430px,100%);background:#fff;border:1px solid #ebe8f6;border-radius:24px;
  box-shadow:0 24px 80px rgba(45,38,90,.14);padding:28px
}
.cloud-login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.cloud-login-logo{
  width:42px;height:42px;border-radius:14px;background:#6656f4;color:#fff;
  display:grid;place-items:center;font-weight:900;font-size:16px
}
.cloud-login-title{font-size:21px;font-weight:900;color:#26273a}
.cloud-login-sub{font-size:11px;color:#9295a8;margin-top:3px}
.cloud-login-card .field{margin-top:12px}
.cloud-login-card .field label{display:block;margin-bottom:6px}
.cloud-login-card .field input{width:100%}
.cloud-login-actions{display:grid;gap:9px;margin-top:18px}
.cloud-login-note{margin-top:14px;font-size:9px;line-height:1.55;color:#9a9daf}
.cloud-login-status{
  display:none;margin-top:12px;padding:10px 12px;border-radius:12px;
  font-size:10px;line-height:1.5;background:#fff6e8;color:#8a5b18;border:1px solid #f4dfbc
}
.user-management-head,.cloud-config-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px
}
.user-management-sub,.cloud-config-sub{font-size:9px;color:#9295a8;margin-top:3px;line-height:1.5}
.user-list-v14{display:grid;gap:8px}
.user-card-v14{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:11px 12px;border:1px solid #ebe9f3;background:#fbfaff;border-radius:14px
}
.user-card-main-v14{min-width:0}
.user-card-title-v14{font-size:10.8px;font-weight:850;color:#292b3d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-card-meta-v14{font-size:9px;color:#9295a8;margin-top:4px;line-height:1.5}
.user-card-actions-v14{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.user-role-v14,.user-status-v14{
  display:inline-flex;padding:4px 7px;border-radius:999px;margin-right:5px;
  font-size:8px;font-weight:800
}
.user-role-v14{background:#efedff;color:#6656f4}
.user-status-v14.active{background:#e9f8ee;color:#23854c}
.user-status-v14.locked{background:#fff0f0;color:#ba4141}
.cloud-status-pill-v14{
  display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:850;
  background:#fff4df;color:#93651c
}
.cloud-status-pill-v14.connected{background:#e9f8ee;color:#23854c}
.audit-mini-v14{font-size:8.5px;color:#9a9daf;margin-top:4px}
@media(max-width:680px){
  .user-card-v14{grid-template-columns:1fr}
  .user-card-actions-v14{justify-content:flex-end}
  .cloud-login-card{padding:22px;border-radius:20px}
}

/* ===== [029] dtbox-v14-0-1-settings-scroll-fix  (src lines 1569-1594) ===== */
#settingsModal .modal{
  display:flex!important;
  flex-direction:column!important;
  max-height:min(92vh,980px)!important;
  overflow:hidden!important;
}
#settingsModal .modal-head{
  flex:0 0 auto!important;
}
#settingsModal .modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  padding-bottom:24px!important;
}
#settingsModal .modal-foot{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:2;
}
#settingsModal .cloud-config-head{
  margin-top:2px;
}

/* ===== [030] dtbox-v14-1-cloud-sync-css  (src lines 1597-1609) ===== */
.cloud-sync-status-v141{
  padding:9px 11px;border:1px solid #e8e5f3;border-radius:11px;background:#faf9ff;
  font-size:9px;color:#73778d;line-height:1.5;margin-bottom:8px
}
.cloud-sync-status-v141.ok{background:#edf9f1;border-color:#d7f0df;color:#267748}
.cloud-sync-status-v141.busy{background:#fff8e9;border-color:#f0e3c6;color:#8b681f}
.cloud-sync-status-v141.error{background:#fff1f1;border-color:#f1d4d4;color:#a23a3a}
.cloud-sync-actions-v141{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.cloud-user-note-v141{font-size:8.5px;color:#9396a9;margin-top:5px}
.cloud-online-dot-v141{display:inline-block;width:7px;height:7px;border-radius:999px;background:#31a568;margin-right:5px}
@media(max-width:680px){.cloud-sync-actions-v141{justify-content:stretch}.cloud-sync-actions-v141 .btn{flex:1 1 100%}}

/* ===== [031] dtbox-v14-1-5-nested-modal-fix  (src lines 1612-1649) ===== */
/* Settings is the parent modal */
#settingsModal{
  z-index: 1000 !important;
}

/* User CRUD is a child modal and must always appear above Settings */
#userCrudModalV14{
  z-index: 1300 !important;
}

/* Ensure its panel itself sits above its own overlay/backdrop */
#userCrudModalV14 .modal,
#userCrudModalV14 .modal-card,
#userCrudModalV14 .modal-content{
  position: relative !important;
  z-index: 1302 !important;
}

/* Generic nested modal support for any future popup launched from Settings */
.modal-overlay.open.nested-modal-v1415,
.modal-wrap.open.nested-modal-v1415{
  z-index: 1300 !important;
}

/* Prevent parent Settings content/footer from painting over the child popup */
#settingsModal .modal,
#settingsModal .modal-head,
#settingsModal .modal-body,
#settingsModal .modal-foot{
  isolation: auto;
}

/* Child popup backdrop should be visible but not excessively dark */
#userCrudModalV14{
  background: rgba(26, 24, 44, .28) !important;
}

/* ===== [032] dtbox-v14-1-6-user-create-style  (src lines 1652-1665) ===== */
#userPasswordBlockV1416{
  border:1px solid #e6e3f4;
  border-radius:16px;
  background:#faf9ff;
  padding:14px;
}
#userPasswordBlockV1416 small{
  display:block;
  margin-top:8px;
  color:#8d90a5;
  line-height:1.45;
}

/* ===== [033] dtbox-v14-1-8-safety-headroom-ui  (src lines 1668-1742) ===== */
.founder-safety-card .safety-ratio-value{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-top:12px;
  font-size:clamp(25px,2.25vw,38px);
  line-height:1.05;
  font-weight:800;
  letter-spacing:-.035em;
  color:#171827;
  white-space:nowrap;
}
.founder-safety-card .safety-ratio-value #fcHeadroom30Threshold{
  color:#7f8499;
  font-size:.68em;
  font-weight:700;
  letter-spacing:-.02em;
}
.founder-safety-card .safety-ratio-sep{
  color:#b0b3c4;
  font-weight:500;
  font-size:.72em;
}
.founder-safety-card .safety-progress-wrap{
  margin-top:17px;
}
.founder-safety-card .safety-progress-track{
  position:relative;
  height:10px;
  border-radius:999px;
  background:linear-gradient(90deg,#ff6b72 0%,#ffb45d 50%,#80d889 78%,#39bd72 100%);
  overflow:visible;
  box-shadow:inset 0 0 0 1px rgba(23,24,39,.05);
}
.founder-safety-card .safety-progress-fill{
  position:absolute;
  inset:0 auto 0 0;
  width:0;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  transition:width .35s ease;
  pointer-events:none;
}
.founder-safety-card .safety-progress-marker{
  position:absolute;
  top:50%;
  left:0;
  width:18px;
  height:18px;
  border:4px solid #fff;
  border-radius:50%;
  background:#ef646b;
  box-shadow:0 2px 9px rgba(35,36,58,.20);
  transform:translate(-50%,-50%);
  transition:left .35s ease,background .25s ease;
}
.founder-safety-card .safety-progress-scale{
  display:flex;
  justify-content:space-between;
  margin-top:7px;
  color:#a0a4b7;
  font-size:11px;
  font-weight:650;
}
.founder-safety-card #fcHeadroom30Hint{
  margin-top:10px;
}
@media(max-width:720px){
  .founder-safety-card .safety-ratio-value{
    font-size:26px;
    gap:6px;
  }
}

/* ===== [034] dtbox-v14-1-9-account-forecast-table-fix  (src lines 1745-1908) ===== */
/* ==========================================================
   V14.1.9 — Forecast theo tài khoản: fit all columns in card
   Presentation-only. No data/forecast logic changes.
   ========================================================== */

/* Target the card/section containing the account forecast table */
#accountForecastTable,
#forecastAccountTable,
[data-section="account-forecast"],
.account-forecast-table{
  width:100%;
  max-width:100%;
}

/* Common wrappers used by this project */
#accountForecastTable,
#forecastAccountTable,
.account-forecast-table,
#accountForecastTable table,
#forecastAccountTable table,
.account-forecast-table table{
  table-layout:fixed !important;
}

/* If the renderer uses a generic table inside the Founder account-forecast card,
   this selector catches it without changing other tables. */
.founder-account-forecast table,
#forecastByAccount table,
#forecastAccountWrap table{
  width:100% !important;
  table-layout:fixed !important;
  min-width:0 !important;
}

/* Remove forced horizontal width only in this section */
.founder-account-forecast .table-wrap,
#forecastByAccount .table-wrap,
#forecastAccountWrap .table-wrap{
  overflow-x:hidden !important;
  max-width:100% !important;
}

/* Column sizing:
   1 Account         27%
   2 Current         20%
   3 After 7 days    20%
   4 Lowest 14 days  21%
   5 Lowest date     12%
*/
.founder-account-forecast table th:nth-child(1),
.founder-account-forecast table td:nth-child(1),
#forecastByAccount table th:nth-child(1),
#forecastByAccount table td:nth-child(1),
#forecastAccountWrap table th:nth-child(1),
#forecastAccountWrap table td:nth-child(1){width:27% !important;}

.founder-account-forecast table th:nth-child(2),
.founder-account-forecast table td:nth-child(2),
#forecastByAccount table th:nth-child(2),
#forecastByAccount table td:nth-child(2),
#forecastAccountWrap table th:nth-child(2),
#forecastAccountWrap table td:nth-child(2){width:20% !important;}

.founder-account-forecast table th:nth-child(3),
.founder-account-forecast table td:nth-child(3),
#forecastByAccount table th:nth-child(3),
#forecastByAccount table td:nth-child(3),
#forecastAccountWrap table th:nth-child(3),
#forecastAccountWrap table td:nth-child(3){width:20% !important;}

.founder-account-forecast table th:nth-child(4),
.founder-account-forecast table td:nth-child(4),
#forecastByAccount table th:nth-child(4),
#forecastByAccount table td:nth-child(4),
#forecastAccountWrap table th:nth-child(4),
#forecastAccountWrap table td:nth-child(4){width:21% !important;}

.founder-account-forecast table th:nth-child(5),
.founder-account-forecast table td:nth-child(5),
#forecastByAccount table th:nth-child(5),
#forecastByAccount table td:nth-child(5),
#forecastAccountWrap table th:nth-child(5),
#forecastAccountWrap table td:nth-child(5){
  width:12% !important;
  white-space:nowrap !important;
  text-align:center !important;
}

/* Keep monetary figures readable while allowing tighter table width */
.founder-account-forecast table th,
.founder-account-forecast table td,
#forecastByAccount table th,
#forecastByAccount table td,
#forecastAccountWrap table th,
#forecastAccountWrap table td{
  padding-left:14px !important;
  padding-right:14px !important;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Tablet */
@media(max-width:1100px){
  .founder-account-forecast table th,
  .founder-account-forecast table td,
  #forecastByAccount table th,
  #forecastByAccount table td,
  #forecastAccountWrap table th,
  #forecastAccountWrap table td{
    padding-left:10px !important;
    padding-right:10px !important;
    font-size:13px;
  }
}

/* Mobile: still keep all 5 columns visible inside the card */
@media(max-width:720px){
  .founder-account-forecast table th,
  .founder-account-forecast table td,
  #forecastByAccount table th,
  #forecastByAccount table td,
  #forecastAccountWrap table th,
  #forecastAccountWrap table td{
    padding:10px 6px !important;
    font-size:11px !important;
    line-height:1.25;
  }
  .founder-account-forecast table th:nth-child(1),
  .founder-account-forecast table td:nth-child(1),
  #forecastByAccount table th:nth-child(1),
  #forecastByAccount table td:nth-child(1),
  #forecastAccountWrap table th:nth-child(1),
  #forecastAccountWrap table td:nth-child(1){width:25% !important;}

  .founder-account-forecast table th:nth-child(2),
  .founder-account-forecast table td:nth-child(2),
  #forecastByAccount table th:nth-child(2),
  #forecastByAccount table td:nth-child(2),
  #forecastAccountWrap table th:nth-child(2),
  #forecastAccountWrap table td:nth-child(2){width:20% !important;}

  .founder-account-forecast table th:nth-child(3),
  .founder-account-forecast table td:nth-child(3),
  #forecastByAccount table th:nth-child(3),
  #forecastByAccount table td:nth-child(3),
  #forecastAccountWrap table th:nth-child(3),
  #forecastAccountWrap table td:nth-child(3){width:20% !important;}

  .founder-account-forecast table th:nth-child(4),
  .founder-account-forecast table td:nth-child(4),
  #forecastByAccount table th:nth-child(4),
  #forecastByAccount table td:nth-child(4),
  #forecastAccountWrap table th:nth-child(4),
  #forecastAccountWrap table td:nth-child(4){width:22% !important;}

  .founder-account-forecast table th:nth-child(5),
  .founder-account-forecast table td:nth-child(5),
  #forecastByAccount table th:nth-child(5),
  #forecastByAccount table td:nth-child(5),
  #forecastAccountWrap table th:nth-child(5),
  #forecastAccountWrap table td:nth-child(5){width:13% !important;}
}

/* ===== [035] dtbox-v14-1-10-account-forecast-header-fix  (src lines 1911-1990) ===== */
/* V14.1.10 — Refine Forecast theo tài khoản column widths */
.founder-account-forecast table,
#forecastByAccount table,
#forecastAccountWrap table{
  width:100% !important;
  table-layout:fixed !important;
}

/* Better distribution based on actual available space */
.founder-account-forecast table th:nth-child(1),
.founder-account-forecast table td:nth-child(1),
#forecastByAccount table th:nth-child(1),
#forecastByAccount table td:nth-child(1),
#forecastAccountWrap table th:nth-child(1),
#forecastAccountWrap table td:nth-child(1){width:26% !important;}

.founder-account-forecast table th:nth-child(2),
.founder-account-forecast table td:nth-child(2),
#forecastByAccount table th:nth-child(2),
#forecastByAccount table td:nth-child(2),
#forecastAccountWrap table th:nth-child(2),
#forecastAccountWrap table td:nth-child(2){width:18% !important;}

.founder-account-forecast table th:nth-child(3),
.founder-account-forecast table td:nth-child(3),
#forecastByAccount table th:nth-child(3),
#forecastByAccount table td:nth-child(3),
#forecastAccountWrap table th:nth-child(3),
#forecastAccountWrap table td:nth-child(3){width:18% !important;}

.founder-account-forecast table th:nth-child(4),
.founder-account-forecast table td:nth-child(4),
#forecastByAccount table th:nth-child(4),
#forecastByAccount table td:nth-child(4),
#forecastAccountWrap table th:nth-child(4),
#forecastAccountWrap table td:nth-child(4){width:22% !important;}

.founder-account-forecast table th:nth-child(5),
.founder-account-forecast table td:nth-child(5),
#forecastByAccount table th:nth-child(5),
#forecastByAccount table td:nth-child(5),
#forecastAccountWrap table th:nth-child(5),
#forecastAccountWrap table td:nth-child(5){
  width:16% !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  text-align:center !important;
}

/* Headers should never be ellipsized in this table */
.founder-account-forecast table th,
#forecastByAccount table th,
#forecastAccountWrap table th{
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
}

/* Body cells can still stay compact, but no forced dots on the date column */
.founder-account-forecast table td,
#forecastByAccount table td,
#forecastAccountWrap table td{
  text-overflow:clip !important;
}

@media(max-width:900px){
  .founder-account-forecast table th,
  .founder-account-forecast table td,
  #forecastByAccount table th,
  #forecastByAccount table td,
  #forecastAccountWrap table th,
  #forecastAccountWrap table td{
    padding-left:8px !important;
    padding-right:8px !important;
    font-size:12px !important;
  }
}

/* ===== [036] dtbox-v14-1-11-revenue-layout  (src lines 1993-2298) ===== */
/* ==========================================================
   V14.1.11 — Revenue page hierarchy + stacked payment chart
   UI only; source business calculations remain unchanged.
   ========================================================== */

#page-revenue .revenue-overview-layout{
  display:grid;
  grid-template-columns:minmax(0,2.25fr) minmax(300px,.85fr);
  gap:16px;
  align-items:stretch;
  margin-top:6px;
}
#page-revenue .revenue-main-kpis{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
#page-revenue .revenue-primary-kpi{
  min-height:154px;
  padding:22px 22px 20px;
}
#page-revenue .revenue-primary-kpi .label{
  font-size:13px;
  font-weight:750;
}
#page-revenue .revenue-primary-kpi .value{
  font-size:clamp(30px,2.35vw,42px);
  line-height:1.04;
  letter-spacing:-.035em;
  margin-top:10px;
}
#page-revenue .revenue-primary-kpi .hint{
  margin-top:10px;
  font-size:12px;
}
#page-revenue .revenue-primary-kpi .kpi-detail-btn{
  right:16px;
  bottom:14px;
}

#page-revenue .revenue-today-hero{
  position:relative;
  min-height:324px;
  padding:25px 24px;
  border:1px solid #eadfd7;
  border-top:3px solid #ff9a61;
  border-radius:24px;
  background:
    radial-gradient(circle at 100% 0%,rgba(255,154,97,.13) 0,rgba(255,154,97,.05) 24%,transparent 45%),
    #fff;
  box-shadow:0 8px 28px rgba(38,34,76,.035);
  overflow:hidden;
}
#page-revenue .revenue-hero-eyebrow{
  color:#70758c;
  font-size:12px;
  font-weight:800;
}
#page-revenue .revenue-hero-value{
  margin-top:12px;
  color:#171827;
  font-size:clamp(34px,2.7vw,48px);
  line-height:1;
  font-weight:850;
  letter-spacing:-.045em;
}
#page-revenue .revenue-hero-breakdown{
  margin-top:10px;
  color:#9a6c54;
  font-size:12px;
  line-height:1.45;
}
#page-revenue .revenue-hero-divider{
  height:1px;
  background:#ece9f4;
  margin:24px 0 7px;
}
#page-revenue .revenue-hero-metric{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:60px;
  border-bottom:1px solid #f0edf6;
}
#page-revenue .revenue-hero-metric span{
  color:#7e8398;
  font-size:12px;
  font-weight:650;
}
#page-revenue .revenue-hero-metric strong{
  color:#202131;
  font-size:18px;
  font-weight:800;
  text-align:right;
}
#page-revenue .revenue-hero-foot{
  margin-top:13px;
  color:#a1a5b6;
  font-size:11px;
}

#page-revenue .revenue-compact-title{
  margin-top:28px;
  margin-bottom:11px;
}
#page-revenue .revenue-mini-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
#page-revenue .revenue-mini-kpi{
  min-height:112px;
  padding:17px 18px 15px;
  border-radius:19px;
}
#page-revenue .revenue-mini-kpi .label{
  font-size:11px;
}
#page-revenue .revenue-mini-kpi .value{
  margin-top:7px;
  font-size:24px;
  line-height:1.05;
}
#page-revenue .revenue-mini-kpi .hint{
  margin-top:7px;
  font-size:10.5px;
}
#page-revenue .revenue-mini-kpi .kpi-detail-btn{
  right:12px;
  bottom:10px;
  transform:scale(.92);
  transform-origin:right bottom;
}

#page-revenue .revenue-payment-panel{
  margin-top:28px;
}
#page-revenue .revenue-payment-panel .panel-body{
  padding-top:16px;
}
#page-revenue .revenue-stacked-chart{
  position:relative;
  min-height:340px;
  width:100%;
  padding:24px 14px 8px 48px;
  overflow:visible;
}
#page-revenue .revenue-chart-stage{
  position:relative;
  height:268px;
  border-bottom:1px solid #dedbea;
  background:
    linear-gradient(to bottom,
      transparent 0,
      transparent calc(25% - .5px),#eeebf5 calc(25% - .5px),#eeebf5 calc(25% + .5px),transparent calc(25% + .5px),
      transparent calc(50% - .5px),#eeebf5 calc(50% - .5px),#eeebf5 calc(50% + .5px),transparent calc(50% + .5px),
      transparent calc(75% - .5px),#eeebf5 calc(75% - .5px),#eeebf5 calc(75% + .5px),transparent calc(75% + .5px));
}
#page-revenue .revenue-chart-bars{
  position:absolute;
  inset:0 0 0 0;
  display:grid;
  grid-template-columns:repeat(14,minmax(16px,1fr));
  gap:8px;
  align-items:end;
}
#page-revenue .revenue-day-group{
  position:relative;
  height:100%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  cursor:default;
}
#page-revenue .revenue-day-bar{
  position:relative;
  width:min(30px,72%);
  min-width:10px;
  height:0;
  border-radius:8px 8px 3px 3px;
  overflow:hidden;
  background:#f1eff6;
  box-shadow:0 0 0 1px rgba(31,32,49,.025);
  transition:filter .15s ease,transform .15s ease;
}
#page-revenue .revenue-day-group:hover .revenue-day-bar{
  filter:brightness(.98) saturate(1.05);
  transform:translateY(-2px);
}
#page-revenue .revenue-segment{
  position:absolute;
  left:0;
  right:0;
}
#page-revenue .revenue-segment.cod{
  bottom:0;
  background:#ff9a61;
}
#page-revenue .revenue-segment.prepaid{
  top:0;
  background:#2bb6a8;
}
#page-revenue .revenue-day-label{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  transform:translateX(-50%);
  color:#9297aa;
  font-size:10px;
  white-space:nowrap;
}
#page-revenue .revenue-axis-label{
  position:absolute;
  left:-44px;
  color:#9ba0b2;
  font-size:10px;
  transform:translateY(50%);
}
#page-revenue .revenue-chart-empty{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9ca0b2;
  font-size:13px;
}
#page-revenue .revenue-chart-tooltip{
  position:fixed;
  z-index:9999;
  min-width:218px;
  padding:13px 14px;
  border:1px solid #e6e2ef;
  border-radius:14px;
  background:rgba(255,255,255,.98);
  box-shadow:0 12px 36px rgba(30,28,58,.16);
  color:#252637;
  font-size:12px;
  line-height:1.45;
  pointer-events:none;
  opacity:0;
  transform:translate(10px,-50%);
  transition:opacity .08s ease;
}
#page-revenue .revenue-chart-tooltip.show{opacity:1}
#page-revenue .revenue-tooltip-date{
  font-weight:800;
  margin-bottom:7px;
}
#page-revenue .revenue-tooltip-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-top:4px;
}
#page-revenue .revenue-tooltip-row strong{
  white-space:nowrap;
}
#page-revenue .revenue-tooltip-total{
  padding-top:7px;
  margin-top:7px;
  border-top:1px solid #ece9f3;
}
#page-revenue .revenue-payment-legend{
  justify-content:center;
  margin-top:18px;
}

@media(max-width:1050px){
  #page-revenue .revenue-overview-layout{
    grid-template-columns:1fr;
  }
  #page-revenue .revenue-today-hero{
    min-height:auto;
  }
  #page-revenue .revenue-mini-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:720px){
  #page-revenue .revenue-main-kpis{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  #page-revenue .revenue-primary-kpi{
    min-height:132px;
    padding:17px 14px;
  }
  #page-revenue .revenue-primary-kpi .value{
    font-size:25px;
  }
  #page-revenue .revenue-mini-grid{
    grid-template-columns:1fr;
  }
  #page-revenue .revenue-stacked-chart{
    min-height:310px;
    padding-left:36px;
    overflow-x:auto;
  }
  #page-revenue .revenue-chart-stage{
    min-width:620px;
  }
}

/* ===== [037] dtbox-v14-1-12-revenue-tooltip-fix  (src lines 2301-2344) ===== */
/* V14.1.12 — Fix chart tooltip leaking as raw text at viewport corner.
   Tooltip is appended to <body>, so it must not be scoped under #page-revenue. */
#revenuePaymentTooltipV14111{
  position:fixed !important;
  z-index:9999 !important;
  min-width:218px;
  padding:13px 14px;
  border:1px solid #e6e2ef;
  border-radius:14px;
  background:rgba(255,255,255,.98);
  box-shadow:0 12px 36px rgba(30,28,58,.16);
  color:#252637;
  font-size:12px;
  line-height:1.45;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:translate(10px,-50%);
  transition:opacity .08s ease, visibility .08s ease;
}
#revenuePaymentTooltipV14111.show{
  opacity:1 !important;
  visibility:visible !important;
}
#revenuePaymentTooltipV14111 .revenue-tooltip-date{
  font-weight:800;
  margin-bottom:7px;
}
#revenuePaymentTooltipV14111 .revenue-tooltip-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-top:4px;
}
#revenuePaymentTooltipV14111 .revenue-tooltip-row strong{
  white-space:nowrap;
}
#revenuePaymentTooltipV14111 .revenue-tooltip-total{
  padding-top:7px;
  margin-top:7px;
  border-top:1px solid #ece9f3;
}

/* ===== [038] dtbox-v14-1-16-1-forecast-detail  (src lines 2347-2357) ===== */
/* Forecast box drill-down: visual-only enhancement */
.forecast-detail-actions{display:flex;justify-content:flex-end;margin-top:9px}
.forecast-detail-btn-inline{
  border:1px solid #e3e0ef;background:rgba(255,255,255,.92);color:#6558d9;
  border-radius:999px;padding:7px 11px;font-size:9px;line-height:1;font-weight:800;
  cursor:pointer;box-shadow:0 5px 16px rgba(74,61,149,.08);transition:.16s ease
}
.forecast-detail-btn-inline:hover{transform:translateY(-1px);border-color:#bdb3ff;background:#f7f5ff}
.forecast-detail-btn-inline:focus-visible{outline:2px solid #6656f4;outline-offset:2px}

/* ===== [039] dtbox-v14-1-18-dashboard-command-center-cleanup  (src lines 2360-2437) ===== */
/* V14.1.18 — Compact Founder health metadata */
#page-dashboard .dashboard-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:12px 0 14px;
  min-height:32px;
}
#page-dashboard .dashboard-meta-pills{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
#page-dashboard .dashboard-meta-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid #e6e3ef;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:#9699aa;
  font-size:9.5px;
  line-height:1;
}
#page-dashboard .dashboard-meta-pill b{
  color:#25263a;
  font-size:10px;
  font-weight:800;
}
#page-dashboard .dashboard-meta-pill.confidence{
  background:#f5f2ff;
  border-color:#e4ddff;
}
#page-dashboard .dashboard-meta-pill.confidence b{
  color:#6556ef;
}
#page-dashboard .dashboard-recon-alert{
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid #ffd9a8;
  border-radius:999px;
  background:#fff8ec;
  color:#a56616;
  font-size:9.5px;
  font-weight:750;
  white-space:nowrap;
}
#page-dashboard .dashboard-recon-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#f0a23a;
  flex:0 0 7px;
}
#page-dashboard .dashboard-recon-alert.is-danger{
  border-color:#ffc4ca;
  background:#fff2f4;
  color:#c94f5c;
}
#page-dashboard .dashboard-recon-alert.is-danger .dashboard-recon-dot{
  background:#e95c68;
}
@media(max-width:720px){
  #page-dashboard .dashboard-meta-row{
    align-items:flex-start;
    flex-direction:column;
  }
  #page-dashboard .dashboard-recon-alert{
    white-space:normal;
  }
}

/* ===== [040] dtbox-v14-1-18-1-forecast-popup-highlight  (src lines 2440-2485) ===== */
/* V14.1.18.1 — Highlight key rows inside forecast detail popup */
.kpi-detail-table-wrap tr.forecast-main-row td{
  font-weight:800;
  background:#faf9fe;
}
.kpi-detail-table-wrap tr.forecast-main-row td:first-child{
  box-shadow:inset 3px 0 0 #cfc8ff;
}
.kpi-detail-table-wrap tr.forecast-main-current td{
  background:#f5f2ff;
}
.kpi-detail-table-wrap tr.forecast-main-current td:first-child{
  box-shadow:inset 3px 0 0 #7a67f8;
}
.kpi-detail-table-wrap tr.forecast-main-in td{
  background:#eefaf6;
}
.kpi-detail-table-wrap tr.forecast-main-in td:first-child{
  box-shadow:inset 3px 0 0 #2bb79a;
}
.kpi-detail-table-wrap tr.forecast-main-est td{
  background:#fff8ef;
}
.kpi-detail-table-wrap tr.forecast-main-est td:first-child{
  box-shadow:inset 3px 0 0 #efad4e;
}
.kpi-detail-table-wrap tr.forecast-main-out td{
  background:#fff3f4;
}
.kpi-detail-table-wrap tr.forecast-main-out td:first-child{
  box-shadow:inset 3px 0 0 #ec6c78;
}
.kpi-detail-table-wrap tr.forecast-main-total td{
  background:#f3f1ff;
}
.kpi-detail-table-wrap tr.forecast-main-total td:first-child{
  box-shadow:inset 3px 0 0 #6556ef;
}
.kpi-detail-table-wrap tr.forecast-main-row td b{
  font-weight:900;
}
.kpi-detail-table-wrap tr.forecast-main-row td.money{
  font-weight:900;
}

/* ===== [041] dtbox-v15-unified-alpha-css  (src lines 2488-2518) ===== */
/* V15.0 Unified Alpha — finance operations inside the existing Cashflow OS */
.exp-status{
  display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;
  font-size:9px;font-weight:850;white-space:nowrap
}
.exp-status.draft{background:#f2f1f6;color:#777b8e}
.exp-status.submitted{background:#fff6e8;color:#b8751f}
.exp-status.awaiting_payment{background:#f1eeff;color:#6452e9}
.exp-status.paid{background:#ecfaf5;color:#168a73}
.exp-status.rejected,.exp-status.cancelled{background:#fff0f2;color:#d85865}
.exp-doc{font-size:9px;font-weight:800}
.exp-doc.complete{color:#168a73}.exp-doc.partial{color:#b8751f}.exp-doc.missing{color:#d85865}
.exp-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}
.exp-detail-cell{border:1px solid var(--line);background:#faf9ff;border-radius:14px;padding:12px}
.exp-detail-cell span{display:block;color:var(--muted);font-size:9px;margin-bottom:5px}
.exp-detail-cell b{display:block;font-size:11px}
.exp-flow{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}
.exp-flow span{padding:6px 9px;border-radius:999px;background:#f1f0f6;color:#8b8e9e;font-size:9px;font-weight:850}
.exp-flow span.on{background:#eeeaff;color:#6452e9}
.exp-action-row{display:flex;gap:8px;flex-wrap:wrap}
.exp-dashboard-strip{margin:12px 0 14px;border:1px solid #e5e1fb;background:#faf9ff;border-radius:16px;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.exp-dashboard-strip .left{display:flex;gap:18px;flex-wrap:wrap}
.exp-dashboard-metric span{display:block;color:var(--muted);font-size:8.5px}
.exp-dashboard-metric b{display:block;margin-top:3px;font-size:11px}
.exp-dashboard-strip .right{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:720px){
 .exp-detail-summary{grid-template-columns:1fr}
 .exp-dashboard-strip{align-items:flex-start;flex-direction:column}
}

/* ===== [042] dtbox-v15-0-1-left-sidebar  (src lines 2521-2783) ===== */
/* ============================================================
   V15.0.1 — Official left navigation
   Two domains: Quản trị dòng tiền / Vận hành tài chính
   ============================================================ */
html,body{
  min-width:0 !important;
  overflow-x:hidden !important;
}
.app{
  display:flex !important;
  min-height:100vh !important;
  padding:0 !important;
}
.sidebar{
  position:fixed !important;
  left:16px !important;
  top:16px !important;
  bottom:16px !important;
  inset:16px auto 16px 16px !important;
  width:244px !important;
  height:auto !important;
  min-height:0 !important;
  padding:18px 14px 14px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:0 !important;
  border-radius:24px !important;
  background:rgba(255,255,255,.96) !important;
  color:var(--ink) !important;
  border:1px solid rgba(225,222,241,.96) !important;
  box-shadow:0 16px 42px rgba(48,43,91,.10) !important;
  backdrop-filter:blur(20px) !important;
  overflow:hidden !important;
}
.brand{
  min-width:0 !important;
  margin:0 !important;
  padding:2px 5px 17px !important;
  gap:10px !important;
  flex:0 0 auto;
  border-bottom:1px solid #efedf5;
}
.brand-mark{
  flex:0 0 40px;
  width:40px !important;
  height:40px !important;
  border-radius:12px !important;
}
.brand-copy{min-width:0}
.brand strong{
  font-size:14px !important;
  white-space:nowrap;
}
.brand span{
  font-size:9px !important;
  margin-top:2px;
  display:block;
}
.finance-sidebar-nav{
  margin:0 !important;
  padding:14px 0 10px !important;
  background:transparent !important;
  min-width:0 !important;
  width:100% !important;
  flex:1 1 auto !important;
  display:block !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  border-radius:0 !important;
}
.nav-group{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.nav-group + .nav-group{
  margin-top:15px;
  padding-top:15px;
  border-top:1px solid #efedf5;
}
.nav-group-title{
  padding:0 10px 7px;
  color:#a0a3b3;
  font-size:8px;
  line-height:1.2;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.10em;
}
.finance-sidebar-nav button{
  position:relative;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:10px 10px !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  color:#666a7d !important;
  background:transparent !important;
  border-radius:12px !important;
  font-size:10.5px !important;
  text-align:left !important;
  white-space:normal !important;
  box-shadow:none !important;
}
.finance-sidebar-nav button:hover{
  color:#3d385f !important;
  background:#f5f3ff !important;
}
.finance-sidebar-nav button.active{
  color:#5d4aed !important;
  background:#efecff !important;
  box-shadow:none !important;
}
.finance-sidebar-nav button.active:before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  bottom:9px;
  width:3px;
  border-radius:999px;
  background:#6754f4;
}
.finance-sidebar-nav .nav-ico{
  display:inline-flex !important;
  width:23px !important;
  height:23px;
  flex:0 0 23px;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#f5f3fb;
  color:#77758c;
  font-size:12px;
}
.finance-sidebar-nav button.active .nav-ico{
  background:#ded8ff;
  color:#5d4aed;
}
.nav-text{
  min-width:0;
  flex:1 1 auto;
  line-height:1.25;
}
.nav-count{
  flex:0 0 auto;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#f0edff;
  color:#6552ed;
  font-size:8.5px;
  font-weight:900;
}
.nav-count.is-zero{
  color:#aaa9b7;
  background:#f3f2f6;
}
.nav-divider{
  display:block !important;
  height:1px !important;
  margin:4px 4px 10px !important;
  background:#efedf5 !important;
}
.side-bottom{
  margin:auto 0 0 !important;
  padding-top:10px !important;
  border-top:1px solid #efedf5;
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:7px !important;
}
.ghost-side{
  width:100% !important;
  height:38px !important;
  padding:0 !important;
  font-size:0 !important;
  border-radius:11px !important;
  background:#f7f6fb !important;
  border:1px solid #eceaf4 !important;
  color:#4d4e62 !important;
}
.ghost-side:first-child:before{content:"⚙";font-size:15px}
.ghost-side:nth-child(2):before{content:"⇩";font-size:15px}
.ghost-side:nth-child(3):before{content:"⇧";font-size:15px}

.main{
  margin-left:276px !important;
  width:calc(100% - 276px) !important;
  min-width:0 !important;
}
.topbar{
  position:relative !important;
  top:auto !important;
  height:auto !important;
  min-height:70px !important;
  padding:20px 28px 4px !important;
  background:transparent !important;
  border:0 !important;
}
.content{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:18px 28px 50px !important;
}

/* Mid-size screens: slightly slimmer sidebar */
@media(max-width:1180px) and (min-width:761px){
  .sidebar{
    left:10px !important;
    top:10px !important;
    bottom:10px !important;
    inset:10px auto 10px 10px !important;
    width:220px !important;
  }
  .main{
    margin-left:240px !important;
    width:calc(100% - 240px) !important;
  }
  .content{padding-left:20px !important;padding-right:20px !important}
}

/* Mobile: drawer */
@media(max-width:760px){
  .app{display:block !important}
  .sidebar{
    left:10px !important;
    top:10px !important;
    bottom:10px !important;
    inset:10px auto 10px 10px !important;
    width:min(270px,calc(100vw - 28px)) !important;
    transform:translateX(calc(-100% - 24px)) !important;
    transition:transform .2s ease !important;
    z-index:80 !important;
  }
  .sidebar.open{
    transform:translateX(0) !important;
  }
  .main{
    margin-left:0 !important;
    width:100% !important;
  }
  .topbar{
    min-height:62px !important;
    padding:12px 14px 2px !important;
  }
  .mobile-menu{
    display:inline-flex !important;
  }
  .content{
    padding:14px 14px 40px !important;
  }
}

/* ===== [043] dtbox-v15-0-2-hr-payroll-css  (src lines 2786-2810) ===== */
.hr-status,.hr-type,.payroll-status{
 display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:850;white-space:nowrap
}
.hr-status.probation{background:#fff6e8;color:#b8751f}
.hr-status.official{background:#ecfaf5;color:#168a73}
.hr-status.temporary_leave{background:#f1eeff;color:#6452e9}
.hr-status.terminated{background:#f2f1f5;color:#858898}
.hr-type{background:#f5f3ff;color:#6254cc}
.payroll-status.draft{background:#fff6e8;color:#b8751f}
.payroll-status.locked{background:#f1eeff;color:#6452e9}
.payroll-status.paid{background:#ecfaf5;color:#168a73}
.hr-yes{color:#168a73;font-weight:850}.hr-no{color:#b8751f;font-weight:850}
.salary-diff-ok{color:#168a73;font-weight:900}
.salary-diff-bad{color:#d85865;font-weight:900}
.payroll-adjust-input{
 width:120px;min-width:100px;border:1px solid var(--line);border-radius:9px;padding:7px 8px;text-align:right;background:#fff
}
.payroll-locked-row .payroll-adjust-input{background:#f6f5f9;color:#999;pointer-events:none}
.payroll-forecast-warning-v1502{border-color:#ffe0af!important;background:#fff9ef!important}
@media(max-width:760px){
 #page-payroll .page-head{align-items:flex-start!important}
 #page-payroll .page-head .filters{width:100%}
}

/* ===== [044] dtbox-v15-0-3-employee-modal  (src lines 2813-2981) ===== */
.hr-profile-modal-v1503{
  width:min(980px,94vw)!important;
  max-height:92vh!important;
}
.hr-profile-body-v1503{
  padding:20px 24px 26px!important;
  background:#fbfaff;
}
.modal-kicker-v1503{
  display:block;
  margin-bottom:4px;
  color:#7261f1;
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.hr-form-section-v1503{
  margin-bottom:16px;
  padding:17px 18px 18px;
  border:1px solid #e8e5f1;
  border-radius:18px;
  background:#fff;
}
.hr-form-section-v1503:last-child{margin-bottom:0}
.hr-section-head-v1503{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:14px;
  padding-bottom:11px;
  border-bottom:1px solid #f0eef5;
}
.hr-section-head-v1503 b{
  display:block;
  color:#292b3c;
  font-size:12px;
}
.hr-section-head-v1503 span{
  display:block;
  margin-top:3px;
  color:#989bad;
  font-size:9px;
  line-height:1.45;
}
.hr-section-head-action-v1503{align-items:center}
.hr-form-grid-v1503{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px 16px;
}
.hr-form-grid-v1503 .field{
  min-width:0;
  margin:0!important;
}
.hr-form-grid-v1503 .field label{
  min-height:16px;
  margin-bottom:6px!important;
  color:#55596e;
  font-size:9.5px!important;
  font-weight:800;
}
.hr-form-grid-v1503 .field label em{color:#e0616d;font-style:normal}
.hr-form-grid-v1503 .field input,
.hr-form-grid-v1503 .field select,
.hr-form-grid-v1503 .field textarea{
  width:100%;
  min-height:44px;
  padding:10px 12px!important;
  border:1px solid #ddd9e9!important;
  border-radius:12px!important;
  background:#fdfdff!important;
  font-size:11px!important;
}
.hr-form-grid-v1503 .field textarea{min-height:74px;resize:vertical}
.hr-span-2-v1503{grid-column:1/-1}

.hr-upload-btn-v1503{
  flex:0 0 auto;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
}
.hr-file-drop-v1503{
  padding:12px;
  border:1px dashed #d9d3ef;
  border-radius:14px;
  background:#faf9ff;
}
.hr-file-note-v1503{
  margin-bottom:9px;
  color:#989bad;
  font-size:8.8px;
}
.hr-file-list-v1503{display:grid;gap:8px}
.hr-employee-file-v1503{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:9px 10px;
  border:1px solid #ebe8f3;
  border-radius:12px;
  background:#fff;
}
.hr-employee-file-v1503 .file-type{
  width:34px;height:34px;flex:0 0 34px;
  display:grid;place-items:center;
  border-radius:9px;background:#f0edff;color:#6352e7;
  font-size:8px;font-weight:900;text-transform:uppercase;
}
.hr-employee-file-v1503 .file-info{flex:1;min-width:0}
.hr-employee-file-v1503 .file-name{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#36384b;font-size:9.5px;font-weight:800;
}
.hr-employee-file-v1503 .file-meta{margin-top:2px;color:#9a9dad;font-size:8px}
.hr-file-actions-v1503{display:flex;gap:5px}
.hr-file-actions-v1503 button{
  border:1px solid #ebe8f3;background:#fff;border-radius:8px;padding:6px 8px;
  color:#636678;font-size:8px;font-weight:800
}
.hr-file-actions-v1503 button.remove{color:#d85865}

.hr-income-section-v1503{
  background:linear-gradient(180deg,#fbfaff,#f8f6ff);
  border-color:#ddd7ff;
}
.hr-income-summary-v1503{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.hr-income-metric-v1503{
  padding:12px;
  border:1px solid #e5e0ff;
  border-radius:13px;
  background:#fff;
}
.hr-income-metric-v1503 span{display:block;color:#9699aa;font-size:8px}
.hr-income-metric-v1503 b{display:block;margin-top:5px;color:#292b3c;font-size:11px}
.hr-income-actions-v1503{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:2px;
}
.hr-no-salary-v1503{
  grid-column:1/-1;
  padding:13px;
  border:1px dashed #d8d2f4;
  border-radius:13px;
  color:#8f92a3;
  font-size:9.5px;
  text-align:center;
}
@media(max-width:760px){
  .hr-profile-modal-v1503{width:96vw!important}
  .hr-profile-body-v1503{padding:14px!important}
  .hr-form-section-v1503{padding:14px}
  .hr-form-grid-v1503{grid-template-columns:1fr}
  .hr-span-2-v1503{grid-column:auto}
  .hr-income-summary-v1503{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hr-section-head-action-v1503{align-items:flex-start;flex-direction:column}
}

/* ===== [045] dtbox-v15-0-4-expense-request-modal  (src lines 2984-3014) ===== */
.exp-request-modal-v1504{width:min(1000px,95vw)!important;max-height:92vh!important}
.exp-request-body-v1504{padding:20px 24px 24px!important;background:#fbfaff}
.modal-kicker-v1504{display:block;margin-bottom:4px;color:#7261f1;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.ops-form-section-v1504{margin-bottom:16px;padding:17px 18px 18px;border:1px solid #e8e5f1;border-radius:18px;background:#fff}
.ops-form-section-v1504:last-child{margin-bottom:0}
.ops-section-head-v1504{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #f0eef5}
.ops-section-head-v1504 b{display:block;color:#292b3c;font-size:12px}
.ops-section-head-v1504 span{display:block;margin-top:3px;color:#989bad;font-size:9px;line-height:1.45}
.ops-section-head-action-v1504{align-items:center}
.ops-form-grid-v1504{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px}
.ops-form-grid-v1504 .field{min-width:0;margin:0!important}
.ops-form-grid-v1504 .field label{min-height:16px;margin-bottom:6px!important;color:#55596e;font-size:9.5px!important;font-weight:800}
.ops-form-grid-v1504 .field label em{color:#e0616d;font-style:normal}
.ops-form-grid-v1504 .field input,.ops-form-grid-v1504 .field select,.ops-form-grid-v1504 .field textarea{width:100%;min-height:44px;padding:10px 12px!important;border:1px solid #ddd9e9!important;border-radius:12px!important;background:#fdfdff!important;font-size:11px!important}
.ops-form-grid-v1504 .field textarea{min-height:74px;resize:vertical}
.ops-span-2-v1504{grid-column:1/-1}
.exp-upload-btn-v1504{flex:0 0 auto;display:inline-flex!important;align-items:center;justify-content:center}
.exp-file-drop-v1504{padding:12px;border:1px dashed #d9d3ef;border-radius:14px;background:#faf9ff}
.exp-file-note-v1504{margin-bottom:9px;color:#989bad;font-size:8.8px}
.exp-file-list-v1504{display:grid;gap:8px}
.exp-file-row-v1504{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 10px;border:1px solid #ebe8f3;border-radius:12px;background:#fff}
.exp-file-row-v1504 .file-type{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:9px;background:#f0edff;color:#6352e7;font-size:8px;font-weight:900;text-transform:uppercase}
.exp-file-row-v1504 .file-info{flex:1;min-width:0}.exp-file-row-v1504 .file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#36384b;font-size:9.5px;font-weight:800}.exp-file-row-v1504 .file-meta{margin-top:2px;color:#9a9dad;font-size:8px}
.exp-file-actions-v1504{display:flex;gap:5px}.exp-file-actions-v1504 button{border:1px solid #ebe8f3;background:#fff;border-radius:8px;padding:6px 8px;color:#636678;font-size:8px;font-weight:800}.exp-file-actions-v1504 button.remove{color:#d85865}
.exp-detail-grid-v1504{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.exp-detail-card-v1504{padding:11px 12px;border:1px solid #ebe8f3;border-radius:14px;background:#faf9ff}.exp-detail-card-v1504 span{display:block;color:#9194a8;font-size:8px}.exp-detail-card-v1504 b{display:block;margin-top:4px;color:#2a2d3f;font-size:10px;line-height:1.45}
.exp-subtitle-v1504{margin:14px 0 8px;font-size:10px;font-weight:900;color:#45485d;text-transform:uppercase;letter-spacing:.08em}
.exp-attachment-chips-v1504{display:flex;flex-wrap:wrap;gap:8px}.exp-attachment-chip-v1504{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #e3ddfb;border-radius:999px;background:#f6f3ff;color:#5d56b3;font-size:8.5px;font-weight:800}.exp-attachment-chip-v1504 button{border:0;background:transparent;color:#5d56b3;font-size:8.5px;font-weight:900;cursor:pointer}
@media(max-width:760px){.exp-request-modal-v1504{width:96vw!important}.exp-request-body-v1504{padding:14px!important}.ops-form-section-v1504{padding:14px}.ops-form-grid-v1504,.exp-detail-grid-v1504{grid-template-columns:1fr}.ops-span-2-v1504{grid-column:auto}.ops-section-head-action-v1504{align-items:flex-start;flex-direction:column}}

/* ===== [046] dtbox-v15-0-6-sidebar-accordion  (src lines 3017-3117) ===== */
/* V15.0.6 — sidebar hierarchy + accordion */
.finance-sidebar-nav{
  overflow-y:hidden!important;
  overflow-x:hidden!important;
  padding-top:12px!important;
}
.nav-overview-v1506{
  padding:0 0 12px;
  margin-bottom:3px;
  border-bottom:1px solid #ebe8f2;
}
.nav-overview-btn-v1506{
  font-weight:800!important;
  color:#4e5062!important;
}
.nav-group + .nav-group{
  margin-top:8px!important;
  padding-top:8px!important;
  border-top:1px solid #f0eef5!important;
}
.collapsible-nav-group-v1506{
  display:block!important;
  gap:0!important;
}
.nav-group-toggle-v1506{
  width:100%!important;
  min-height:34px!important;
  padding:7px 9px!important;
  margin:0 0 4px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#555768!important;
  font-size:8.7px!important;
  line-height:1.2!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  letter-spacing:.075em!important;
  cursor:pointer!important;
}
.nav-group-toggle-v1506:hover{background:#f7f5fd!important;color:#3f4050!important}
.nav-chevron-v1506{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;height:20px;
  border-radius:7px;
  background:#f4f2f9;
  color:#858797;
  font-size:13px;
  line-height:1;
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.collapsible-nav-group-v1506.is-collapsed .nav-chevron-v1506{transform:rotate(-90deg)}
.collapsible-nav-group-v1506:not(.is-collapsed) .nav-group-toggle-v1506{color:#454657}
.collapsible-nav-group-v1506:not(.is-collapsed) .nav-chevron-v1506{background:#ece8ff;color:#6653ee}
.nav-group-items-v1506{
  display:flex;
  flex-direction:column;
  gap:3px;
  overflow:hidden;
  max-height:320px;
  opacity:1;
  transition:max-height .20s ease,opacity .15s ease;
}
.collapsible-nav-group-v1506.is-collapsed .nav-group-items-v1506{
  max-height:0;
  opacity:0;
  pointer-events:none;
}
.finance-sidebar-nav .nav-group-items-v1506 > button,
.finance-sidebar-nav .nav-overview-v1506 > button{
  color:#525466!important;
  font-weight:700!important;
  font-size:10.7px!important;
}
.finance-sidebar-nav .nav-group-items-v1506 > button .nav-text,
.finance-sidebar-nav .nav-overview-v1506 > button .nav-text{
  font-weight:700!important;
  letter-spacing:.005em;
}
.finance-sidebar-nav button.active{
  color:#5948e9!important;
  font-weight:800!important;
}
.finance-sidebar-nav button.active .nav-text{font-weight:800!important}
.finance-sidebar-nav .nav-ico{color:#686a7d!important}
.finance-sidebar-nav button.active .nav-ico{color:#5846e9!important}
@media(max-height:720px) and (min-width:761px){
  .sidebar{padding-top:14px!important;padding-bottom:12px!important}
  .brand{padding-bottom:12px!important}
  .finance-sidebar-nav{padding-top:8px!important}
  .finance-sidebar-nav .nav-group-items-v1506 > button,.finance-sidebar-nav .nav-overview-v1506 > button{padding-top:8px!important;padding-bottom:8px!important}
  .nav-group + .nav-group{margin-top:5px!important;padding-top:5px!important}
}

/* ===== [047] dtbox-v15-0-7-finance-ops  (src lines 3120-3208) ===== */
/* Sidebar is intentionally scrollable again: modules will keep growing. */
.finance-sidebar-nav{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-right:4px!important;
  scrollbar-width:thin;
  scrollbar-color:#d9d5e8 transparent;
}
.finance-sidebar-nav::-webkit-scrollbar{width:5px}
.finance-sidebar-nav::-webkit-scrollbar-track{background:transparent}
.finance-sidebar-nav::-webkit-scrollbar-thumb{background:#d9d5e8;border-radius:999px}
.finance-sidebar-nav::-webkit-scrollbar-thumb:hover{background:#c7c1dc}
.nav-group-items-v1506{max-height:520px!important}
.finance-sidebar-nav .nav-group-items-v1506 > button,.finance-sidebar-nav .nav-overview-v1506 > button{
  color:#484a5c!important;font-weight:750!important
}
.finance-sidebar-nav .nav-group-items-v1506 > button .nav-text,.finance-sidebar-nav .nav-overview-v1506 > button .nav-text{font-weight:750!important}
.nav-group-toggle-v1506{color:#484a5a!important;font-weight:950!important}
.ops-center-grid-v1507{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ops-task-list-v1507,.ops-control-list-v1507{display:grid;gap:9px}
.ops-work-item-v1507{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid #ebe8f3;border-radius:14px;background:#fff}
.ops-work-item-v1507 .meta{min-width:0}.ops-work-item-v1507 .meta b{display:block;font-size:10px;color:#343648}.ops-work-item-v1507 .meta span{display:block;margin-top:3px;color:#9699aa;font-size:8.5px;line-height:1.4}.ops-work-item-v1507 .value{flex:0 0 auto;text-align:right;font-size:10px;font-weight:900}.ops-work-item-v1507 .value.red{color:#d85865}.ops-work-item-v1507 .value.orange{color:#b8751f}.ops-work-item-v1507 .value.purple{color:#6653ee}.ops-work-item-v1507 .value.green{color:#168a73}
.ops-status-v1507{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:900;white-space:nowrap}.ops-status-v1507.ok{background:#ebfaf5;color:#168a73}.ops-status-v1507.warn{background:#fff7e9;color:#b8751f}.ops-status-v1507.bad{background:#fff0f2;color:#d85865}.ops-status-v1507.info{background:#f1eeff;color:#6653ee}
@media(max-width:920px){.ops-center-grid-v1507{grid-template-columns:1fr}}

.debt-dashboard-v1535{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(360px,1.18fr);gap:16px;margin-bottom:18px;align-items:stretch}
.debt-summary-card-v1535,.debt-forecast-card-v1535{background:#fff;border:1px solid #ebe8fb;border-radius:22px;box-shadow:0 8px 24px rgba(24,20,56,.04);position:relative;overflow:hidden}
.debt-summary-card-v1535{padding:18px 18px 16px;display:flex;flex-direction:column;gap:14px;min-height:186px}
.debt-summary-card-v1535:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--card-accent,#6756f4)}
.debt-summary-card-v1535:after,.debt-forecast-card-v1535:after{content:'';position:absolute;right:-18px;top:-24px;width:96px;height:96px;border-radius:50%;background:rgba(108,94,246,.08)}
.debt-summary-card-v1535 .title{position:relative;z-index:1;font-size:14px;font-weight:850;color:#616680;line-height:1.35;margin:0}
.debt-summary-card-v1535 .amount{position:relative;z-index:1;font-size:22px;line-height:1.18;font-weight:900;color:#22263d;letter-spacing:-.5px;margin:0;word-break:break-word}
.debt-summary-card-v1535 .count-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 0;border-top:1px solid #efedf9;position:relative;z-index:1}
.debt-summary-card-v1535 .count-line .label{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#9a9fb4}
.debt-summary-card-v1535 .count-line .value{font-size:14px;font-weight:800;color:#3f4563}
.debt-summary-card-v1535 .detail-btn{margin-top:auto;align-self:flex-start;padding:8px 14px;border-radius:12px;border:1px solid #d9d3fb;background:#f8f6ff;color:#6354f4;font-size:11px;font-weight:800;cursor:pointer;position:relative;z-index:1}
.debt-summary-card-v1535.green{--card-accent:#61cdb8}.debt-summary-card-v1535.red{--card-accent:#ef9b9b}.debt-summary-card-v1535.orange{--card-accent:#efb06f}
.debt-summary-card-v1535.green .amount{color:#1e9e82}.debt-summary-card-v1535.red .amount{color:#d14b5c}.debt-summary-card-v1535.orange .amount{color:#c87915}
.debt-forecast-card-v1535{padding:18px;display:flex;flex-direction:column;gap:14px;min-height:186px}
.debt-forecast-eyebrow-v1535{font-size:11px;font-weight:900;letter-spacing:1.1px;text-transform:uppercase;color:#6b5cf5}
.debt-forecast-card-v1535 h3{margin:2px 0 0;font-size:20px;line-height:1.2;color:#20243a}
.debt-forecast-card-v1535 p{margin:4px 0 0;color:#7d8197;font-size:12px;line-height:1.5;max-width:42ch}
.debt-forecast-stats-v1535{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;position:relative;z-index:1}
.debt-forecast-stat-v1535{border:1px solid #ece8fb;border-radius:16px;padding:12px 13px;background:#fcfbff}
.debt-forecast-stat-v1535 .label{font-size:11px;font-weight:800;color:#5f647b;line-height:1.35}
.debt-forecast-stat-v1535 .amount{font-size:18px;line-height:1.18;font-weight:900;letter-spacing:-.4px;margin-top:6px}
.debt-forecast-stat-v1535 .count{font-size:11px;color:#8a8faa;margin-top:4px}
.debt-forecast-stat-v1535.in .amount{color:#189975}.debt-forecast-stat-v1535.out .amount{color:#d14b5c}
.debt-forecast-net-v1535{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:16px;background:#f7f6fe;border:1px solid #e9e4ff;position:relative;z-index:1}
.debt-forecast-net-v1535 .label{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#8a90aa}
.debt-forecast-net-v1535 .value{font-size:16px;font-weight:900;color:#2a304d}.debt-forecast-net-v1535 .value.negative{color:#d14b5c}.debt-forecast-net-v1535 .value.positive{color:#159a71}
.debt-forecast-actions-v1535{display:flex;justify-content:flex-end;margin-top:auto;position:relative;z-index:1}
.debt-forecast-actions-v1535 .detail-btn{padding:8px 14px;border-radius:12px;border:1px solid #d9d3fb;background:#f8f6ff;color:#6354f4;font-size:11px;font-weight:800;cursor:pointer}
.debt-detail-grid-v1536{display:grid;grid-template-columns:1fr;gap:16px}.debt-detail-grid-v1536 .panel{min-width:0}.debt-detail-grid-v1536 .panel[hidden]{display:none!important}
.debt-detail-grid-v1536 .table-wrap,.debt-forecast-detail-v1535 .table-wrap{overflow-x:visible;padding-bottom:0}
.debt-table-v1536{width:100%;table-layout:fixed;border-collapse:collapse}
.debt-table-v1536 th,.debt-table-v1536 td{white-space:normal;word-break:break-word;vertical-align:top;font-size:12px}
.debt-table-v1536 th:nth-child(1),.debt-table-v1536 td:nth-child(1){width:86px}.debt-table-v1536 th:nth-child(4),.debt-table-v1536 td:nth-child(4){width:120px}.debt-table-v1536 th:nth-child(5),.debt-table-v1536 td:nth-child(5){width:98px}.debt-table-v1536 th:nth-child(6),.debt-table-v1536 td:nth-child(6){width:74px}
.debt-table-v1536 .money{font-weight:800;font-variant-numeric:tabular-nums}.debt-table-v1536 .money.pos{color:#159a71}.debt-table-v1536 .money.neg{color:#d14b5c}
.debt-table-v1536 .source{font-weight:700;color:#2a2f49;line-height:1.45}.debt-table-v1536 .source small{display:block;margin-top:2px;color:#8b90a6;font-size:10px;font-weight:600;line-height:1.45}
.debt-detail-list-v1536{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px}
.debt-detail-head-v1536{display:grid;grid-template-columns:92px minmax(320px,1.9fr) minmax(180px,1fr) 150px 110px 76px;gap:12px;align-items:center;padding:0 12px 8px;border-bottom:1px solid #efedf7;color:#9196ad;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.debt-detail-row-v1536{display:grid;grid-template-columns:92px minmax(320px,1.9fr) minmax(180px,1fr) 150px 110px 76px;gap:12px;align-items:center;padding:11px 12px;border:1px solid #ece8f6;border-radius:14px;background:#fff;box-shadow:0 1px 0 rgba(40,34,88,.02)}
.debt-detail-row-v1536:hover{border-color:#ddd7fb;box-shadow:0 8px 20px rgba(86,74,194,.05)}
.debt-detail-cell-v1536{min-width:0}.debt-detail-date-v1536{font-size:13px;font-weight:800;color:#373d5c;line-height:1.35}.debt-detail-source-v1536{font-size:14px;font-weight:800;color:#252b45;line-height:1.4}.debt-detail-sub-v1536{margin-top:3px;font-size:11px;color:#8b90a6;line-height:1.4;font-weight:600}.debt-detail-account-v1536{font-size:13px;font-weight:700;color:#464c69;line-height:1.35}.debt-detail-amount-v1536{font-size:16px;line-height:1.2;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.debt-detail-amount-v1536.pos{color:#159a71}.debt-detail-amount-v1536.neg{color:#d14b5c}
.debt-detail-status-v1536 .ops-status-v1507{font-size:10px;padding:5px 8px}.debt-detail-action-v1536{display:flex;justify-content:flex-end}.debt-filterbar-v1537{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #f0edf7;border-bottom:1px solid #f0edf7;background:#fcfbff}
.debt-filter-v1537{display:flex;flex-direction:column;gap:5px;min-width:140px}.debt-filter-v1537.date{min-width:155px}.debt-filter-v1537 label{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#9196ad}.debt-filter-v1537 input,.debt-filter-v1537 select{height:34px;border:1px solid #ded9ee;border-radius:10px;background:#fff;padding:0 10px;font-size:12px;color:#343a57;outline:none}.debt-filter-v1537 input:focus,.debt-filter-v1537 select:focus{border-color:#8f82f6;box-shadow:0 0 0 3px rgba(111,92,246,.08)}
.debt-filter-reset-v1537{height:34px;padding:0 12px;border-radius:10px;border:1px solid #ded9ee;background:#fff;color:#6259d9;font-size:11px;font-weight:800;cursor:pointer}.debt-filter-count-v1537{margin-left:auto;align-self:center;font-size:11px;color:#858aa0;font-weight:700}
.debt-detail-head-v1536,.debt-detail-row-v1536{grid-template-columns:86px minmax(150px,1fr) minmax(260px,1.7fr) minmax(145px,.9fr) 132px 102px 64px}
.debt-detail-head-v1536{font-size:10px}.debt-detail-row-v1536{padding:10px 12px}.debt-detail-unit-v1537{font-size:13px;font-weight:800;color:#343a58;line-height:1.35}.debt-detail-content-v1537{font-size:13px;font-weight:750;color:#252b45;line-height:1.4}.debt-detail-content-v1537 small{display:block;margin-top:2px;font-size:10px;font-weight:600;color:#9297aa}
.debt-forecast-detail-v1535 .debt-table-v1536{table-layout:fixed}.debt-forecast-detail-v1535 .debt-table-v1536 th,.debt-forecast-detail-v1535 .debt-table-v1536 td{font-size:11px;white-space:normal;word-break:break-word}.debt-forecast-detail-v1535 .debt-table-v1536 th:nth-child(1){width:76px}.debt-forecast-detail-v1535 .debt-table-v1536 th:nth-child(2){width:86px}.debt-forecast-detail-v1535 .debt-table-v1536 th:nth-child(3){width:150px}.debt-forecast-detail-v1535 .debt-table-v1536 th:nth-child(4){width:auto}.debt-forecast-detail-v1535 .debt-table-v1536 th:nth-child(5){width:120px}.debt-forecast-detail-v1535 .debt-table-v1536 th:nth-child(6){width:104px}.debt-forecast-detail-v1535 .debt-table-v1536 th:nth-child(7){width:60px}
@media(max-width:1280px){.debt-detail-head-v1536,.debt-detail-row-v1536{grid-template-columns:80px minmax(130px,.9fr) minmax(220px,1.5fr) minmax(125px,.8fr) 118px 94px 58px;gap:8px}.debt-filter-count-v1537{width:100%;margin-left:0}.debt-detail-unit-v1537,.debt-detail-content-v1537{font-size:12px}}
@media(max-width:980px){.debt-filterbar-v1537{align-items:stretch}.debt-filter-v1537,.debt-filter-v1537.date{min-width:0;flex:1 1 150px}.debt-detail-row-v1536{grid-template-columns:1fr 1fr}.debt-detail-row-v1536 .cell-unit,.debt-detail-row-v1536 .cell-content{grid-column:1/-1}.debt-detail-row-v1536 .cell-unit:before,.debt-detail-row-v1536 .cell-content:before{display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9196ad;margin-bottom:4px;content:attr(data-label)}}

.debt-mini-btn-v1536{padding:6px 10px;font-size:10px;min-width:0}
.debt-detail-empty-v1536{padding:12px;color:#8b90a6;border:1px dashed #e7e3f4;border-radius:12px;background:#fcfbff}.debt-detail-list-v1536 .detail-btn{min-width:86px}
@media(max-width:1280px){.debt-detail-head-v1536,.debt-detail-row-v1536{grid-template-columns:86px minmax(240px,1.8fr) minmax(150px,1fr) 128px 100px 70px;gap:10px}.debt-detail-source-v1536{font-size:13px}.debt-detail-amount-v1536{font-size:15px}}
@media(max-width:980px){.debt-detail-head-v1536{display:none}.debt-detail-row-v1536{grid-template-columns:1fr 1fr;gap:8px 12px}.debt-detail-row-v1536 .cell-source{grid-column:1/-1}.debt-detail-row-v1536 .cell-amount{grid-column:2/3;justify-self:end}.debt-detail-row-v1536 .cell-action{grid-column:2/3;justify-self:end}.debt-detail-row-v1536 .cell-status{grid-column:1/2}.debt-detail-row-v1536 .cell-date:before,.debt-detail-row-v1536 .cell-account:before,.debt-detail-row-v1536 .cell-amount:before,.debt-detail-row-v1536 .cell-status:before{display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9196ad;margin-bottom:4px;content:attr(data-label)}}
@media(max-width:640px){.debt-detail-row-v1536{grid-template-columns:1fr}.debt-detail-row-v1536 .cell-amount,.debt-detail-row-v1536 .cell-action,.debt-detail-row-v1536 .cell-status{grid-column:1/-1;justify-self:start}.debt-detail-amount-v1536{text-align:left}}
.debt-mini-btn-v1536{padding:6px 10px;border-radius:10px;border:1px solid #d9d3fb;background:#f8f6ff;color:#6354f4;font-size:11px;font-weight:800;cursor:pointer}
.debt-forecast-detail-v1535{margin-bottom:16px}.debt-forecast-detail-v1535[hidden]{display:none!important}.debt-forecast-detail-v1535 .panel-head{align-items:flex-start}
.debt-chip-v1535{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:10px;font-weight:800}.debt-chip-v1535.in{background:#eef8f4;color:#159a71}.debt-chip-v1535.out{background:#fff0f2;color:#d14b5c}
.debt-modal-meta-v1536{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.debt-modal-meta-v1536 .item{padding:12px 13px;border:1px solid #ece8fb;border-radius:14px;background:#faf9fe}.debt-modal-meta-v1536 .k{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#9096ad}.debt-modal-meta-v1536 .v{margin-top:6px;font-size:14px;font-weight:800;color:#2a304a;line-height:1.45;word-break:break-word}.debt-modal-note-v1536{margin-top:12px;padding:12px 13px;border:1px solid #ece8fb;border-radius:14px;background:#faf9fe}.debt-modal-note-v1536 .k{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#9096ad}.debt-modal-note-v1536 .v{margin-top:6px;font-size:13px;line-height:1.55;color:#434965;white-space:pre-wrap}
@media(max-width:1380px){.debt-dashboard-v1535{grid-template-columns:repeat(2,minmax(0,1fr))}.debt-forecast-card-v1535{grid-column:span 2}}
@media(max-width:980px){.debt-dashboard-v1535,.debt-detail-grid-v1536{grid-template-columns:1fr}.debt-forecast-card-v1535{grid-column:span 1}.debt-forecast-stats-v1535{grid-template-columns:1fr}.debt-modal-meta-v1536{grid-template-columns:1fr}}



/* ===== [048] dtbox-v15-0-8-payslip-permissions  (src lines 3211-3222) ===== */
.payroll-private-note-v1508{margin-bottom:12px;border-color:#dfdafc!important;background:#f8f6ff!important}
.payslip-shell-v1508{max-width:980px;margin:0 auto}
.payslip-card-v1508{border:1px solid #e3dff0;border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(49,44,91,.07);overflow:hidden}
.payslip-head-v1508{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;background:linear-gradient(135deg,#faf9ff,#f3f0ff);border-bottom:1px solid #ebe7f7}
.payslip-head-v1508 .brandline{font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#6b59ed}.payslip-head-v1508 h3{margin:5px 0 0;font-size:22px;color:#242638}.payslip-period-v1508{padding:8px 11px;border-radius:999px;background:#e9e4ff;color:#5f4fea;font-size:9px;font-weight:900;white-space:nowrap}
.payslip-employee-v1508{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:18px 24px;border-bottom:1px solid #efedf5}.payslip-info-v1508{padding:10px 11px;border-radius:12px;background:#faf9fc}.payslip-info-v1508 span{display:block;color:#9598a8;font-size:8px}.payslip-info-v1508 b{display:block;margin-top:4px;font-size:10px;color:#303245}
.payslip-money-v1508{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:20px 24px}.payslip-metric-v1508{padding:15px;border:1px solid #ece8f4;border-radius:16px}.payslip-metric-v1508 span{display:block;color:#8e92a4;font-size:8.5px}.payslip-metric-v1508 b{display:block;margin-top:7px;font-size:19px;color:#252738}.payslip-metric-v1508.net{border-color:#d8d1ff;background:#f8f6ff}.payslip-metric-v1508.net b{color:#5d4bed}
.payslip-breakdown-v1508{padding:0 24px 22px}.payslip-breakdown-v1508 table{width:100%;border-collapse:collapse}.payslip-breakdown-v1508 td{padding:10px 3px;border-bottom:1px solid #f0eef5;font-size:10px}.payslip-breakdown-v1508 td:last-child{text-align:right;font-weight:850}.payslip-breakdown-v1508 .plus{color:#168a73}.payslip-breakdown-v1508 .minus{color:#d85865}
.payslip-footer-v1508{display:flex;justify-content:space-between;gap:12px;padding:14px 24px;background:#faf9fc;color:#9699aa;font-size:8.5px}.payslip-empty-v1508{padding:42px 24px;text-align:center;border:1px dashed #dcd7ef;border-radius:18px;background:#fbfaff;color:#9093a4}.payslip-empty-v1508 b{display:block;margin-bottom:6px;color:#55586d;font-size:12px}
@media(max-width:760px){.payslip-head-v1508{flex-direction:column}.payslip-employee-v1508{grid-template-columns:repeat(2,minmax(0,1fr))}.payslip-money-v1508{grid-template-columns:1fr}.payslip-footer-v1508{flex-direction:column}}

/* ===== [049] dtbox-v15-0-9-demo-data-css  (src lines 3225-3252) ===== */
.demo-banner-v1509{
  margin:0 0 14px;
  padding:10px 13px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border:1px solid #ddd7ff;
  border-radius:14px;
  background:#f7f5ff;
  color:#6559ad;
  font-size:9.5px;
}
.demo-banner-v1509 b{color:#4f42bd}
.demo-chip-v1509{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  background:#ebe7ff;
  color:#5e4fdb;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
}
@media(max-width:760px){.demo-banner-v1509{align-items:flex-start;flex-direction:column}}

/* ===== [050] dtbox-v15-0-11-expense-analytics-css  (src lines 3255-3292) ===== */
.expense-period-head-v1511{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:4px 0 13px}
.expense-period-head-v1511 h3{margin:3px 0 2px;font-size:14px;color:#25283a}
.expense-period-head-v1511 p{margin:0;color:#9396a8;font-size:9px}
.expense-eyebrow-v1511{font-size:8px;font-weight:900;color:#7160e8;text-transform:uppercase;letter-spacing:.1em}
.expense-period-compare-v1511{padding:7px 10px;border:1px solid #e4e0f2;border-radius:10px;background:#fbfaff;color:#777a8d;font-size:8.5px;font-weight:800}

.expense-main-kpis-v1511{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:15px}
.expense-main-kpi-v1511{position:relative;overflow:hidden;padding:14px 14px 12px;border:1px solid #e9e7ef;border-radius:16px;background:#fff;min-height:128px}
.expense-main-kpi-v1511:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#8c84b8}
.expense-main-kpi-v1511.tone-blue:before{background:#6388d8}.expense-main-kpi-v1511.tone-orange:before{background:#d89a58}.expense-main-kpi-v1511.tone-red:before{background:#d56f78}.expense-main-kpi-v1511.tone-green:before{background:#63a58f}.expense-main-kpi-v1511.tone-purple:before{background:#836fd8}
.expense-kpi-label-v1511{min-height:26px;color:#686b7d;font-size:8.6px;font-weight:850;line-height:1.35}
.expense-kpi-value-v1511{margin-top:9px;color:#282a3b;font-size:18px;font-weight:900;line-height:1.05;letter-spacing:-.02em}
.expense-kpi-sub-v1511{margin-top:7px;color:#8b8e9f;font-size:8.2px;line-height:1.35}
.expense-kpi-mom-v1511{margin-top:7px;padding-top:6px;border-top:1px solid #f0eef4;color:#777a8d;font-size:8px;font-weight:800}
.expense-kpi-mom-v1511 .up{color:#23866e}.expense-kpi-mom-v1511 .down{color:#c75b67}.expense-kpi-mom-v1511 .flat{color:#777a8d}

.expense-analysis-grid-v1511{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.expense-analysis-card-v1511{padding:14px 14px 10px;border:1px solid #e9e7ef;border-radius:17px;background:#fff;min-width:0}
.expense-analysis-head-v1511{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid #f0eef4}
.expense-analysis-head-v1511 b{display:block;color:#323548;font-size:10px}
.expense-analysis-head-v1511 span{display:block;margin-top:3px;color:#9699aa;font-size:8.2px}
.expense-stat-table-v1511{display:grid;gap:0}
.expense-stat-row-v1511{display:grid;grid-template-columns:minmax(110px,1.35fr) 52px 62px 92px 62px 74px;align-items:center;gap:7px;padding:8px 4px;border-bottom:1px solid #f3f1f6}
.expense-stat-row-v1511:last-child{border-bottom:0}
.expense-stat-row-v1511.header{padding-top:2px;color:#aaa6b5;font-size:7.1px;font-weight:850;text-transform:uppercase}
.expense-stat-name-v1511{min-width:0;color:#45485b;font-size:8.7px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.expense-stat-num-v1511,.expense-stat-pct-v1511,.expense-stat-value-v1511,.expense-stat-mom-v1511{text-align:right;font-size:8px;color:#6f7284}
.expense-stat-value-v1511{color:#343648;font-weight:850}
.expense-stat-share-v1511{position:relative;height:5px;border-radius:99px;background:#f0eef5;overflow:hidden}
.expense-stat-share-v1511 i{display:block;height:100%;border-radius:inherit;background:#8a79df}
.expense-stat-mom-v1511.up{color:#23866e}.expense-stat-mom-v1511.down{color:#c75b67}.expense-stat-mom-v1511.flat{color:#8a8d9d}
.expense-stat-empty-v1511{padding:17px 4px;color:#999cad;font-size:8.5px;text-align:center}

@media(max-width:1180px){.expense-main-kpis-v1511{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.expense-analysis-grid-v1511{grid-template-columns:1fr}.expense-main-kpis-v1511{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.expense-period-head-v1511{align-items:flex-start;flex-direction:column}.expense-main-kpis-v1511{grid-template-columns:1fr}.expense-stat-row-v1511{grid-template-columns:minmax(110px,1.5fr) 42px 48px 82px 54px}.expense-stat-row-v1511>:nth-child(6){display:none}}

/* ===== [051] dtbox-v15-0-12-expense-drilldown-css  (src lines 3295-3329) ===== */
.expense-summary-grid-v1512{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.expense-summary-card-v1512{display:flex;flex-direction:column;min-height:238px;padding:16px;border:1px solid #e8e5ef;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(46,38,82,.025)}
.expense-summary-top-v1512{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid #f0eef4}
.expense-summary-title-v1512 b{display:block;color:#303347;font-size:11px}.expense-summary-title-v1512 span{display:block;margin-top:4px;color:#989bad;font-size:8.2px;line-height:1.4}
.expense-summary-groups-v1512{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#f4f1ff;color:#6958d5;font-size:7.8px;font-weight:900}
.expense-summary-leader-v1512{padding:13px 0 11px}
.expense-summary-leader-v1512 small{display:block;color:#a0a2b2;font-size:7.5px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.expense-summary-leader-v1512 strong{display:block;margin-top:5px;color:#37394c;font-size:13px;line-height:1.35}
.expense-summary-metrics-v1512{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:13px}
.expense-summary-metric-v1512{padding:9px 10px;border:1px solid #efedf4;border-radius:12px;background:#fcfbfe}
.expense-summary-metric-v1512 span{display:block;color:#9b9eae;font-size:7.3px;line-height:1.3}.expense-summary-metric-v1512 b{display:block;margin-top:4px;color:#3b3e50;font-size:9.4px}
.expense-summary-metric-v1512.wide{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:10px}
.expense-summary-metric-v1512.wide b.up{color:#21846d}.expense-summary-metric-v1512.wide b.down{color:#cc5c67}.expense-summary-metric-v1512.wide b.flat{color:#777a8c}
.expense-summary-action-v1512{margin-top:auto}.expense-summary-action-v1512 button{width:100%;height:36px;border:1px solid #ded8fa;border-radius:11px;background:#f8f6ff;color:#6654d6;font-size:8.7px;font-weight:900;cursor:pointer}.expense-summary-action-v1512 button:hover{background:#f1edff}

.expense-analytics-modal-v1512{width:min(1080px,95vw)!important;max-height:90vh!important}
.expense-modal-subtitle-v1512{margin:4px 0 0;color:#9699aa;font-size:8.5px}
.expense-analytics-modal-body-v1512{padding:18px 22px 22px!important;background:#fcfbff}
.expense-popup-total-v1512{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.expense-popup-total-v1512>div{padding:12px 13px;border:1px solid #ebe8f3;border-radius:13px;background:#fff}
.expense-popup-total-v1512 span{display:block;color:#999cac;font-size:7.8px}.expense-popup-total-v1512 b{display:block;margin-top:4px;color:#333649;font-size:11px}
.expense-popup-table-wrap-v1512{overflow:auto;border:1px solid #ebe8f3;border-radius:15px;background:#fff}
.expense-popup-table-v1512{min-width:850px;padding:4px 14px 10px}
.expense-popup-row-v1512{display:grid;grid-template-columns:minmax(190px,1.5fr) 84px 126px 135px 130px 130px;align-items:center;gap:10px;padding:12px 7px;border-bottom:1px solid #f0eef4}
.expense-popup-row-v1512:last-child{border-bottom:0}
.expense-popup-row-v1512.header{position:sticky;top:0;z-index:1;background:#fff;color:#a09dac;font-size:7.4px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.expense-popup-name-v1512{color:#45485b;font-size:9.2px;font-weight:850}
.expense-popup-cell-v1512{text-align:right;color:#737687;font-size:8.7px}.expense-popup-cell-v1512.money{color:#37394b;font-weight:900}
.expense-popup-share-v1512{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.expense-popup-bar-v1512{width:100%;height:5px;border-radius:99px;background:#f0eef5;overflow:hidden}.expense-popup-bar-v1512 i{display:block;height:100%;border-radius:inherit;background:#8876df}
.expense-popup-mom-v1512.up{color:#21846d}.expense-popup-mom-v1512.down{color:#cb5d68}.expense-popup-mom-v1512.flat{color:#7d8090}

@media(max-width:1050px){.expense-summary-grid-v1512{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.expense-summary-grid-v1512{grid-template-columns:1fr}.expense-popup-total-v1512{grid-template-columns:1fr}.expense-summary-card-v1512{min-height:auto}}

/* ===== [052] dtbox-v15-0-13-expense-visual-css  (src lines 3332-3459) ===== */
.expense-summary-grid-v1512{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}
.expense-summary-card-v1512{
  min-height:360px!important;
  padding:18px!important;
}
.expense-summary-top-v1512{
  align-items:center!important;
  padding-bottom:13px!important;
}
.expense-summary-title-v1512 b{font-size:12.5px!important}
.expense-summary-title-v1512 span{font-size:8.8px!important}
.expense-summary-groups-v1512{font-size:8.2px!important;padding:6px 9px!important}

.expense-summary-overview-v1513{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:13px 0 14px;
}
.expense-summary-overview-v1513>div{
  padding:10px 11px;
  border:1px solid #efedf4;
  border-radius:12px;
  background:#fcfbfe;
}
.expense-summary-overview-v1513 span{
  display:block;
  color:#9a9dad;
  font-size:7.5px;
}
.expense-summary-overview-v1513 b{
  display:block;
  margin-top:4px;
  color:#35384b;
  font-size:10.4px;
}
.expense-mini-chart-v1513{display:grid;gap:10px}
.expense-mini-row-v1513{
  display:grid;
  grid-template-columns:minmax(120px,1.15fr) minmax(180px,1.6fr) 82px;
  align-items:center;
  gap:12px;
}
.expense-mini-label-v1513{
  min-width:0;
}
.expense-mini-label-v1513 b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#414457;
  font-size:9.3px;
}
.expense-mini-label-v1513 span{
  display:block;
  margin-top:3px;
  color:#9699aa;
  font-size:7.8px;
}
.expense-mini-bar-wrap-v1513{
  min-width:0;
}
.expense-mini-value-v1513{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:5px;
  color:#737687;
  font-size:7.9px;
}
.expense-mini-value-v1513 strong{
  color:#393c4f;
  font-size:8.6px;
}
.expense-mini-bar-v1513{
  height:8px;
  border-radius:99px;
  background:#efedf4;
  overflow:hidden;
}
.expense-mini-bar-v1513 i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#7e6ce2,#9a8aec);
}
.expense-mini-mom-v1513{
  justify-self:end;
  padding:5px 7px;
  border-radius:999px;
  font-size:7.8px;
  font-weight:900;
}
.expense-mini-mom-v1513.up{background:#eef9f5;color:#24826c}
.expense-mini-mom-v1513.down{background:#fff1f2;color:#c85b67}
.expense-mini-mom-v1513.flat{background:#f3f2f6;color:#808394}

.expense-summary-action-v1512{
  margin-top:0!important;
}
.expense-summary-action-v1512 button{
  width:auto!important;
  height:30px!important;
  padding:0 10px!important;
  border-radius:9px!important;
  font-size:7.8px!important;
}
.expense-summary-footer-v1513{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #f0eef4;
}
@media(max-width:1000px){
  .expense-summary-grid-v1512{grid-template-columns:1fr!important}
}
@media(max-width:640px){
  .expense-mini-row-v1513{grid-template-columns:1fr}
  .expense-mini-mom-v1513{justify-self:start}
  .expense-summary-overview-v1513{grid-template-columns:1fr}
}

/* ===== [053] dtbox-v15-0-14-expense-charts-css  (src lines 3462-3570) ===== */
.expense-chart-grid-v1514{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:14px;
  margin:0 0 16px;
}
.expense-chart-card-v1514{
  padding:18px;
  border:1px solid #e8e5ef;
  border-radius:18px;
  background:#fff;
  min-height:340px;
}
.expense-chart-head-v1514{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding-bottom:13px;
  margin-bottom:16px;
  border-bottom:1px solid #f0eef4;
}
.expense-chart-head-v1514 b{display:block;color:#303347;font-size:12px}
.expense-chart-head-v1514 span{display:block;margin-top:4px;color:#9699aa;font-size:8.4px}
.expense-chart-total-v1514{text-align:right;white-space:nowrap}
.expense-chart-total-v1514 span{font-size:7.5px}
.expense-chart-total-v1514 b{margin-top:4px;font-size:11px}

.expense-pie-layout-v1514{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:20px;
  align-items:center;
  min-height:245px;
}
.expense-donut-v1514{
  position:relative;
  width:220px;
  height:220px;
  border-radius:50%;
  background:#eee;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.02);
}
.expense-donut-hole-v1514{
  position:absolute;
  inset:46px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 1px #f0eef4;
  pointer-events:none;
}
.expense-donut-hole-v1514 span{color:#9a9dad;font-size:8px}
.expense-donut-hole-v1514 b{margin-top:4px;color:#323548;font-size:20px}
.expense-pie-hotspot-v1514{
  position:absolute;
  inset:0;
  border-radius:50%;
  cursor:pointer;
}
.expense-pie-tooltip-v1514{
  position:fixed;
  z-index:99999;
  min-width:165px;
  padding:9px 10px;
  border:1px solid #e5e1ef;
  border-radius:10px;
  background:#fff;
  box-shadow:0 12px 30px rgba(43,37,73,.15);
  pointer-events:none;
  display:none;
}
.expense-pie-tooltip-v1514 b{display:block;color:#35384b;font-size:9px}
.expense-pie-tooltip-v1514 span{display:block;margin-top:4px;color:#7c7f91;font-size:8px}
.expense-pie-legend-v1514{display:grid;gap:8px}
.expense-pie-legend-row-v1514{
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:6px 0;
}
.expense-pie-dot-v1514{width:9px;height:9px;border-radius:50%}
.expense-pie-legend-row-v1514 b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4a4d60;font-size:8.7px}
.expense-pie-legend-row-v1514 span{color:#777a8c;font-size:8px}
.expense-pie-legend-row-v1514 strong{color:#37394c;font-size:8.5px}

.expense-horizontal-bars-v1514{display:grid;gap:12px}
.expense-hbar-row-v1514{display:grid;grid-template-columns:145px minmax(0,1fr) 115px;align-items:center;gap:12px}
.expense-hbar-name-v1514{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#44475a;font-size:8.8px;font-weight:850}
.expense-hbar-track-v1514{height:12px;border-radius:99px;background:#f0eef5;overflow:hidden}
.expense-hbar-track-v1514 i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7966dd,#9a8bed)}
.expense-hbar-value-v1514{text-align:right}
.expense-hbar-value-v1514 b{display:block;color:#36394b;font-size:8.7px}
.expense-hbar-value-v1514 span{display:block;margin-top:2px;color:#8c8f9f;font-size:7.6px}

@media(max-width:1050px){
  .expense-chart-grid-v1514{grid-template-columns:1fr}
}
@media(max-width:700px){
  .expense-pie-layout-v1514{grid-template-columns:1fr;justify-items:center}
  .expense-pie-legend-v1514{width:100%}
  .expense-hbar-row-v1514{grid-template-columns:110px minmax(0,1fr) 92px}
}

/* ===== [054] dtbox-v15-0-15-expense-period-filter-css  (src lines 3573-3627) ===== */
.expense-period-head-v1515{align-items:flex-start!important}
.expense-period-controls-v1515{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.expense-period-filter-v1515{
  display:flex;
  flex-direction:column;
  gap:5px;
}
.expense-period-filter-v1515 label{
  padding-left:2px;
  color:#9a9dad;
  font-size:7.4px;
  font-weight:850;
}
.expense-period-filter-v1515 select,
.expense-period-filter-v1515 input{
  height:35px;
  min-width:128px;
  padding:0 10px;
  border:1px solid #e3dff0;
  border-radius:10px;
  background:#fff;
  color:#55586b;
  font-size:8.5px;
  font-weight:800;
  outline:none;
}
.expense-period-filter-v1515 select:focus,
.expense-period-filter-v1515 input:focus{
  border-color:#9b8aef;
  box-shadow:0 0 0 3px rgba(126,108,226,.08);
}
.expense-period-controls-v1515 .expense-period-compare-v1511{
  min-height:35px;
  display:flex;
  align-items:center;
  margin:0;
}
@media(max-width:900px){
  .expense-period-head-v1515{flex-direction:column}
  .expense-period-controls-v1515{width:100%;justify-content:flex-start}
}
@media(max-width:600px){
  .expense-period-filter-v1515,
  .expense-period-filter-v1515 select,
  .expense-period-filter-v1515 input{width:100%}
  .expense-period-controls-v1515{display:grid;grid-template-columns:1fr}
}

/* ===== [055] dtbox-v15-0-16-expense-detail-css  (src lines 3630-3702) ===== */
.expense-detail-modal-v1516{width:min(930px,94vw)!important;max-height:92vh!important}
.expense-detail-modal-v1516 .modal-head{padding:18px 24px!important}
.expense-detail-modal-v1516 .modal-head h3{font-size:16px!important;line-height:1.35!important;color:#232638!important}
.expense-detail-modal-v1516 .modal-body{padding:20px 24px 22px!important;background:#fcfbff}
.expense-detail-modal-v1516 .modal-foot{padding:14px 24px!important;gap:8px!important}
.expense-detail-modal-v1516 .modal-foot .btn{min-height:40px!important;padding:0 16px!important;font-size:10px!important;border-radius:11px!important}

.exp-detail-statusline-v1516{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.exp-status-pill-v1516{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:8.7px;font-weight:900;line-height:1}
.exp-status-pill-v1516.submitted{background:#fff4df;color:#a96b17;border:1px solid #f4d9a7}
.exp-status-pill-v1516.awaiting_payment{background:#eeeaff;color:#614bd8;border:1px solid #dcd4ff}
.exp-status-pill-v1516.paid{background:#eaf8f3;color:#17735f;border:1px solid #cceadf}
.exp-status-pill-v1516.rejected{background:#fff0f1;color:#bb4d5a;border:1px solid #f1cbd0}
.exp-status-pill-v1516.draft{background:#f1f1f5;color:#6c6f7e;border:1px solid #e0e0e8}
.exp-status-pill-v1516:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.exp-detail-ref-v1516{color:#9699aa;font-size:8.5px}

.exp-detail-grid-v1516{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:14px}
.exp-detail-cell-v1516{padding:10px 12px;border:1px solid #e9e6f1;border-radius:12px;background:#fff;min-height:66px}
.exp-detail-cell-v1516 span{display:block;color:#9699aa;font-size:8.3px;font-weight:650}
.exp-detail-cell-v1516 b{display:block;margin-top:5px;color:#303347;font-size:10.6px;line-height:1.35}
.exp-detail-cell-v1516.money b{font-size:13px}

.exp-detail-section-v1516{margin-top:13px;padding:14px;border:1px solid #e9e6f1;border-radius:14px;background:#fff}
.exp-detail-section-head-v1516{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.exp-detail-section-head-v1516 b{color:#3b3e51;font-size:9.7px;text-transform:uppercase;letter-spacing:.07em}
.exp-detail-section-v1516 p{margin:0;color:#707487;font-size:9.6px;line-height:1.65}
.exp-detail-section-v1516 strong{color:#3e4154}
.exp-detail-meta-v1516{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 16px;margin-top:10px}
.exp-detail-meta-v1516 div{font-size:8.8px;color:#777a8c}.exp-detail-meta-v1516 b{color:#44475a}

.exp-flow-v1516{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.exp-flow-step-v1516{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#f0eff5;color:#9295a5;font-size:7.8px;font-weight:850}
.exp-flow-step-v1516.on{background:#eeeaff;color:#6752dc}
.exp-flow-step-v1516.done{background:#eaf8f3;color:#257662}
.exp-flow-step-v1516:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}

.exp-action-panel-v1516{margin-top:14px;padding:15px;border:1px solid #ded8f5;border-radius:14px;background:#faf8ff}
.exp-action-panel-v1516.danger{border-color:#f0cbd0;background:#fff8f8}
.exp-action-panel-v1516.success{border-color:#cfe9df;background:#f8fdfb}
.exp-action-panel-v1516 h4{margin:0 0 5px;color:#34374a;font-size:11px}
.exp-action-panel-v1516 p{margin:0 0 11px;color:#7d8091;font-size:8.8px;line-height:1.5}
.exp-action-panel-v1516 textarea,
.exp-action-panel-v1516 input,
.exp-action-panel-v1516 select{width:100%;min-height:40px;padding:9px 11px;border:1px solid #ddd9e8;border-radius:10px;background:#fff;font-size:9.5px;outline:none}
.exp-action-panel-v1516 textarea{min-height:82px;resize:vertical}
.exp-action-form-grid-v1516{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.exp-action-field-v1516 label{display:block;margin-bottom:5px;color:#666a7c;font-size:8px;font-weight:850}
.exp-action-span-2-v1516{grid-column:1/-1}

.exp-payment-upload-v1516{margin-top:11px;padding:11px;border:1px dashed #d9d3ef;border-radius:12px;background:#fff}
.exp-payment-upload-head-v1516{display:flex;justify-content:space-between;align-items:center;gap:10px}
.exp-payment-upload-head-v1516 span{color:#6b6e80;font-size:8.7px;font-weight:800}
.exp-payment-upload-head-v1516 label{display:inline-flex;align-items:center;height:30px;padding:0 10px;border:1px solid #dcd6f7;border-radius:9px;background:#f7f5ff;color:#6554d0;font-size:8px;font-weight:900;cursor:pointer}
.exp-payment-files-v1516{display:grid;gap:6px;margin-top:8px}
.exp-payment-file-v1516{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid #eeeaf5;border-radius:9px;background:#fbfaff}
.exp-payment-file-v1516 b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4b4e61;font-size:8.3px}
.exp-payment-file-v1516 span{color:#9699aa;font-size:7.5px}
.exp-payment-file-v1516 button{border:0;background:transparent;color:#c65762;font-size:7.7px;font-weight:900;cursor:pointer}

.exp-reject-reason-v1516{margin-top:10px;padding:10px 12px;border-left:3px solid #d66570;border-radius:8px;background:#fff4f5;color:#6d5960;font-size:8.8px;line-height:1.55}
.exp-payment-proof-list-v1516{display:flex;gap:6px;flex-wrap:wrap}
.exp-payment-proof-chip-v1516{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #d9e9e2;border-radius:999px;background:#f2faf7;color:#26715f;font-size:7.8px;font-weight:850}
.exp-payment-proof-chip-v1516 button{border:0;background:transparent;color:inherit;font-weight:900;cursor:pointer}

@media(max-width:760px){
 .expense-detail-grid-v1516{grid-template-columns:1fr 1fr}
 .exp-action-form-grid-v1516{grid-template-columns:1fr}
 .exp-action-span-2-v1516{grid-column:auto}
}
@media(max-width:520px){.expense-detail-grid-v1516{grid-template-columns:1fr}.exp-detail-meta-v1516{grid-template-columns:1fr}}

/* ===== [056] dtbox-v15-0-17-expense-action-fix-css  (src lines 3705-3768) ===== */
.exp-copy-grid-v1517{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:12px;
}
.exp-copy-box-v1517{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:10px 11px;
  border:1px solid #ddd9e9;
  border-radius:11px;
  background:#faf9ff;
}
.exp-copy-main-v1517{flex:1;min-width:0}
.exp-copy-main-v1517 span{
  display:block;
  margin-bottom:4px;
  color:#9699aa;
  font-size:7.7px;
  font-weight:750;
}
.exp-copy-main-v1517 b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#35384b;
  font-size:9.2px;
}
.exp-copy-btn-v1517{
  flex:0 0 auto;
  height:28px;
  padding:0 9px;
  border:1px solid #d9d3f4;
  border-radius:8px;
  background:#fff;
  color:#6654d3;
  font-size:7.6px;
  font-weight:900;
  cursor:pointer;
}
.exp-copy-btn-v1517:hover{background:#f2efff}
.exp-copy-btn-v1517.copied{border-color:#bde1d5;background:#eef9f5;color:#247863}

.exp-payment-success-v1517{
  margin-top:14px;
  padding:14px 15px;
  border:1px solid #c6e6da;
  border-radius:13px;
  background:#f2fbf7;
}
.exp-payment-success-v1517 b{display:block;color:#19705d;font-size:10px}
.exp-payment-success-v1517 span{display:block;margin-top:5px;color:#668177;font-size:8.7px;line-height:1.5}

.expense-detail-modal-v1516 .btn[disabled]{
  opacity:.6;
  cursor:wait;
}
@media(max-width:760px){.exp-copy-grid-v1517{grid-template-columns:1fr}}

/* ===== [057] dtbox-v15-0-19-direct-actions-css  (src lines 3771-3774) ===== */
#expenseDetailModalV150 .modal-foot{position:relative!important;z-index:100!important;pointer-events:auto!important}
#expenseDetailModalV150 .modal-foot button{position:relative!important;z-index:101!important;pointer-events:auto!important;cursor:pointer!important}

/* ===== [058] dtbox-v15-0-20-stable-action-css  (src lines 3777-3783) ===== */
.exp-inline-feedback-v1520{margin:12px 0 0;padding:11px 13px;border-radius:11px;font-size:8.8px;font-weight:800;line-height:1.5}
.exp-inline-feedback-v1520.success{border:1px solid #c9e8dd;background:#f1faf7;color:#24715f}
.exp-inline-feedback-v1520.error{border:1px solid #efccd0;background:#fff5f5;color:#af4c58}
#expenseDetailFootV150{position:relative!important;z-index:20!important;pointer-events:auto!important}
#expenseDetailFootV150 button{pointer-events:auto!important;position:relative!important;z-index:21!important}

/* ===== [059] dtbox-v15-0-22-vat-total-css  (src lines 3786-3797) ===== */
#expTotalAmountV1522{
  border-color:#a99af3!important;
  background:#f7f4ff!important;
  color:#4f3fc4!important;
  font-weight:900!important;
}
#expVatAmountV1522{
  color:#7a6b30!important;
  background:#fffdf7!important;
}

/* ===== [060] dtbox-v15-0-23-detail-two-column-css  (src lines 3800-3896) ===== */
.exp-detail-main-2col-v1523{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:12px;
  margin-top:13px;
}
.exp-detail-main-card-v1523{
  padding:15px 16px;
  border:1px solid #e9e6f1;
  border-radius:14px;
  background:#fff;
}
.exp-detail-main-card-v1523 h4{
  margin:0 0 7px;
  color:#33364a;
  font-size:11px;
  line-height:1.45;
}
.exp-detail-main-card-v1523 .desc{
  margin:0 0 12px;
  color:#747789;
  font-size:9.3px;
  line-height:1.55;
}
.exp-detail-info-list-v1523{
  display:grid;
  gap:8px;
}
.exp-detail-info-row-v1523{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:10px;
  align-items:start;
}
.exp-detail-info-row-v1523 span{
  color:#9295a5;
  font-size:8.4px;
}
.exp-detail-info-row-v1523 b{
  color:#404356;
  font-size:9.2px;
  line-height:1.4;
}
.exp-payment-info-list-v1523{
  display:grid;
  gap:7px;
}
.exp-payment-info-row-v1523{
  display:grid;
  grid-template-columns:135px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  min-height:38px;
  padding:8px 9px;
  border:1px solid #eeebf4;
  border-radius:10px;
  background:#fbfaff;
}
.exp-payment-info-row-v1523 .label{
  color:#9295a5;
  font-size:8px;
}
.exp-payment-info-row-v1523 .value{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#3e4154;
  font-size:9px;
  font-weight:850;
}
.exp-payment-copy-btn-v1523{
  height:27px;
  padding:0 8px;
  border:1px solid #d9d3f4;
  border-radius:8px;
  background:#fff;
  color:#6654d3;
  font-size:7.5px;
  font-weight:900;
  cursor:pointer;
}
.exp-payment-copy-btn-v1523.copied{
  border-color:#bde1d5;
  background:#eef9f5;
  color:#247863;
}
@media(max-width:800px){
  .exp-detail-main-2col-v1523{grid-template-columns:1fr}
}
@media(max-width:520px){
  .exp-detail-info-row-v1523{grid-template-columns:1fr}
  .exp-payment-info-row-v1523{grid-template-columns:1fr auto}
  .exp-payment-info-row-v1523 .label{grid-column:1/-1}
}

/* ===== [061] dtbox-v15-0-24-clean-payment-info-css  (src lines 3899-3925) ===== */
.exp-payment-plain-list-v1524{
  display:grid;
  gap:9px;
  margin-top:2px;
}
.exp-payment-plain-row-v1524{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:3px 0;
}
.exp-payment-plain-row-v1524 span{
  color:#9295a5;
  font-size:8.4px;
}
.exp-payment-plain-row-v1524 b{
  color:#404356;
  font-size:9.2px;
  line-height:1.45;
  word-break:break-word;
}
@media(max-width:520px){
  .exp-payment-plain-row-v1524{grid-template-columns:1fr;gap:3px}
}

/* ===== [062] dtbox-v1525-expense-routing-css  (src lines 3928-3964) ===== */
.expense-routing-grid-v1525{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.expense-routing-card-v1525{background:#fff;border:1px solid #ece8fb;border-radius:24px;padding:24px;box-shadow:0 8px 24px rgba(24,20,56,.04)}
.expense-routing-card-v1525 .eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7a6cf0;margin-bottom:8px}
.expense-routing-card-v1525 h3{margin:0;font-size:28px;line-height:1.15;color:#202339}
.expense-routing-card-v1525 p{margin:8px 0 18px;color:#7e8297;font-size:14px;line-height:1.55}
.expense-routing-stats-v1525{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.expense-routing-stat-v1525{padding:16px 18px;border:1px solid #efebfb;border-radius:18px;background:#faf9ff}
.expense-routing-stat-v1525 span{display:block;font-size:12px;color:#8d91a6;margin-bottom:8px;font-weight:700}
.expense-routing-stat-v1525 b{display:block;font-size:28px;color:#1f2236;line-height:1.1;margin-bottom:4px}
.expense-routing-stat-v1525 small{display:block;font-size:13px;color:#666c84}
.expense-routing-chip-row-v1525{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.expense-routing-chip-v1525{padding:8px 12px;border-radius:999px;background:#f5f3ff;color:#5e5bf4;font-size:12px;font-weight:700}
.expense-routing-footer-v1525{display:flex;justify-content:flex-end}
.ops-kpi-grid-v1525{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:18px}
.ops-kpi-card-v1525{background:#fff;border:1px solid #ece8fb;border-radius:24px;padding:20px 20px 16px;position:relative;overflow:hidden;box-shadow:0 8px 24px rgba(24,20,56,.04)}
.ops-kpi-card-v1525::after{content:'';position:absolute;right:-22px;top:-22px;width:96px;height:96px;border-radius:50%;background:rgba(105,86,241,.08)}
.ops-kpi-card-v1525 .label{font-size:14px;font-weight:800;color:#666c84;margin-bottom:10px;position:relative;z-index:1}
.ops-kpi-card-v1525 .value{font-size:42px;line-height:1;color:#202339;font-weight:900;position:relative;z-index:1}
.ops-kpi-card-v1525 .hint{margin-top:8px;font-size:14px;color:#7d8397;position:relative;z-index:1;font-weight:700}
.ops-kpi-card-v1525 .detail-btn-wrap{margin-top:18px;position:relative;z-index:1}
.ops-kpi-card-v1525 .detail-btn-wrap .mini-btn{min-width:0;padding:8px 14px;font-size:12px}
.ops-kpi-card-v1525.tone-orange{border-color:#f3c08d}.ops-kpi-card-v1525.tone-orange .value{color:#b56812}
.ops-kpi-card-v1525.tone-purple{border-color:#b9aaf7}.ops-kpi-card-v1525.tone-purple .value{color:#5e5bf4}
.ops-kpi-card-v1525.tone-red{border-color:#f3b6c0}.ops-kpi-card-v1525.tone-red .value{color:#c44f5b}
.ops-kpi-card-v1525.tone-slate{border-color:#d6daea}.ops-kpi-card-v1525.tone-slate .value{color:#525b74}
.ops-kpi-card-v1525.tone-green{border-color:#bfe6dc}.ops-kpi-card-v1525.tone-green .value{color:#1a8f78}
.ops-detail-panel-v1525{margin-top:18px;background:#fff;border:1px solid #ece8fb;border-radius:24px;overflow:hidden;box-shadow:0 8px 24px rgba(24,20,56,.04)}
.ops-detail-panel-v1525[hidden]{display:none!important}
.ops-detail-head-v1525{padding:22px 24px;border-bottom:1px solid #f0ecfb;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.ops-detail-head-v1525 h3{margin:0;font-size:24px;color:#202339}
.ops-detail-head-v1525 p{margin:6px 0 0;color:#7d8397;font-size:14px}
.ops-detail-head-v1525 .mini-btn{padding:9px 14px;font-size:12px}
.ops-empty-row-v1525{padding:30px 18px;text-align:center;color:#8a90a5}
@media(max-width:1200px){.ops-kpi-grid-v1525{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.expense-routing-grid-v1525{grid-template-columns:1fr}.expense-routing-stats-v1525{grid-template-columns:1fr}.ops-kpi-grid-v1525{grid-template-columns:1fr}}

/* ===== [063] dtbox-v1526-ops-layout-polish  (src lines 3966-3991) ===== */
.ops-kpi-grid-v1525{gap:20px;margin-top:24px}
.ops-kpi-card-v1525{min-height:212px;padding:22px 22px 18px;border-radius:28px;border:1px solid #ebe7fb;background:linear-gradient(180deg,#ffffff 0%,#fbfaff 100%);box-shadow:0 14px 34px rgba(53,45,107,.06);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.ops-kpi-card-v1525::after{width:112px;height:112px;right:-26px;top:-30px;background:rgba(114,95,245,.08)}
.ops-kpi-card-v1525::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:28px 0 0 28px;background:#d7d0ff}
.ops-kpi-card-v1525 .label{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:9px 14px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.01em;color:#515a72;background:#f4f2ff;border:1px solid #e9e5ff;margin:0;position:relative;z-index:1}
.ops-kpi-card-v1525 .label::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.9}
.ops-kpi-main-v1526{display:flex;flex-direction:column;gap:12px;position:relative;z-index:1;margin-top:14px}
.ops-kpi-card-v1525 .value{font-size:58px;line-height:.92;font-weight:900;letter-spacing:-.04em;margin:0}
.ops-kpi-amount-v1526{padding-top:12px;border-top:1px solid #efebfb}
.ops-kpi-amount-v1526 .amount-label-v1526{display:block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#979cb1;margin-bottom:6px}
.ops-kpi-card-v1525 .hint{margin:0;font-size:28px;line-height:1.1;color:#3b4058;font-weight:800}
.ops-kpi-card-v1525 .detail-btn-wrap{margin-top:18px;position:relative;z-index:1}
.ops-kpi-card-v1525 .detail-btn-wrap .mini-btn{min-width:0;padding:10px 14px;border-radius:12px;font-size:12px;font-weight:800;border:1px solid #d8d1ff;background:#f6f4ff;color:#5f58f6;box-shadow:none}
.ops-kpi-card-v1525 .detail-btn-wrap .mini-btn:hover{background:#ede9ff}
.ops-kpi-card-v1525.tone-orange::before{background:#f4b16c}.ops-kpi-card-v1525.tone-orange .label{background:#fff7ef;border-color:#f8debf;color:#c66f10}.ops-kpi-card-v1525.tone-orange .value{color:#c66f10}
.ops-kpi-card-v1525.tone-purple::before{background:#b6a6ff}.ops-kpi-card-v1525.tone-purple .label{background:#f5f2ff;border-color:#ddd4ff;color:#5e5bf4}.ops-kpi-card-v1525.tone-purple .value{color:#5e5bf4}
.ops-kpi-card-v1525.tone-red::before{background:#f0a2ad}.ops-kpi-card-v1525.tone-red .label{background:#fff3f5;border-color:#f6d1d7;color:#cb4b5c}.ops-kpi-card-v1525.tone-red .value{color:#cb4b5c}
.ops-kpi-card-v1525.tone-slate::before{background:#cfd5e7}.ops-kpi-card-v1525.tone-slate .label{background:#f6f7fb;border-color:#e4e7f2;color:#59617b}.ops-kpi-card-v1525.tone-slate .value{color:#59617b}
.ops-kpi-card-v1525.tone-green::before{background:#9bd8ca}.ops-kpi-card-v1525.tone-green .label{background:#effbf7;border-color:#caeee4;color:#19947a}.ops-kpi-card-v1525.tone-green .value{color:#19947a}
.ops-detail-head-v1525{padding:24px 26px}
.ops-detail-head-v1525 .mini-btn{padding:10px 14px;border-radius:12px;border:1px solid #d8d1ff;background:#f6f4ff;color:#5f58f6;font-weight:800}
@media(max-width:1500px){.ops-kpi-grid-v1525{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1200px){.ops-kpi-grid-v1525{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-kpi-card-v1525 .value{font-size:52px}.ops-kpi-card-v1525 .hint{font-size:24px}}
@media(max-width:760px){.ops-kpi-grid-v1525{grid-template-columns:1fr}.ops-kpi-card-v1525{min-height:auto}.ops-kpi-card-v1525 .value{font-size:44px}.ops-kpi-card-v1525 .hint{font-size:22px}}

/* ===== [064] dtbox-v15-0-29-open-snapshot-css  (src lines 3993-4012) ===== */
.expense-snapshot-note-v1529{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:5px;
  padding:5px 8px;
  border:1px solid #e7e2fb;
  border-radius:999px;
  background:#faf8ff;
  color:#706a96;
  font-size:7.6px;
  font-weight:800;
}
.expense-snapshot-note-v1529::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:#7c6ce4;
}

/* ===== [065] dtbox-v15-0-30-overdue-dedup-css  (src lines 4015-4019) ===== */
.overdue-overlay-v1530{
  background:linear-gradient(180deg,#fff 0%,#fff8f8 100%)!important;
}

/* ===== [066] dtbox-v15-0-33-kpi-alignment-fix  (src lines 4022-4115) ===== */
/* Five FinOps KPI cards — balanced typography + stable baseline */
.ops-kpi-grid-v1525{
  align-items:stretch;
  gap:18px!important;
}
.ops-kpi-card-v1525{
  min-height:250px!important;
  padding:20px 20px 18px!important;
  display:flex!important;
  flex-direction:column!important;
}
.ops-kpi-card-v1525 .label{
  min-height:36px;
  display:inline-flex!important;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:8px 12px!important;
  margin:0!important;
  font-size:12px!important;
  line-height:1.1!important;
}
.ops-kpi-main-v1526{
  display:grid!important;
  grid-template-rows:64px 86px;
  gap:12px!important;
  margin-top:14px!important;
  flex:0 0 auto;
}
.ops-kpi-card-v1525 .value{
  display:flex!important;
  align-items:flex-end;
  margin:0!important;
  font-size:46px!important;
  line-height:.92!important;
  letter-spacing:-.035em!important;
}
.ops-kpi-amount-v1526{
  min-width:0;
  padding-top:12px!important;
  border-top:1px solid #ece9f5!important;
  display:flex!important;
  flex-direction:column;
  justify-content:flex-start;
}
.ops-kpi-amount-v1526 .amount-label-v1526{
  margin:0 0 7px!important;
  font-size:10px!important;
  line-height:1!important;
  letter-spacing:.085em!important;
}
.ops-kpi-card-v1525 .hint{
  display:block!important;
  margin:0!important;
  min-width:0;
  font-size:19px!important;
  line-height:1.12!important;
  letter-spacing:-.018em!important;
  font-weight:850!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  color:#3b4058!important;
}
.ops-kpi-card-v1525 .detail-btn-wrap{
  margin-top:auto!important;
  padding-top:16px;
  display:flex;
  align-items:flex-end;
}
.ops-kpi-card-v1525 .detail-btn-wrap .mini-btn{
  height:34px!important;
  padding:0 13px!important;
  border-radius:11px!important;
  font-size:11px!important;
}

/* Long monetary values stay on one line by scaling slightly on narrower cards. */
@media(max-width:1550px){
  .ops-kpi-card-v1525 .hint{font-size:17px!important}
  .ops-kpi-card-v1525 .value{font-size:43px!important}
}
@media(max-width:1250px){
  .ops-kpi-grid-v1525{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ops-kpi-card-v1525 .hint{font-size:19px!important}
}
@media(max-width:760px){
  .ops-kpi-grid-v1525{grid-template-columns:1fr!important}
  .ops-kpi-card-v1525{min-height:230px!important}
  .ops-kpi-card-v1525 .value{font-size:40px!important}
  .ops-kpi-card-v1525 .hint{font-size:18px!important}
}

/* ===== [067] dtbox-v15-0-34-expense-scale-polish  (src lines 4118-4374) ===== */
/* ==========================================================
   Expense page only — +15% typography / +10% spacing
   ========================================================== */
#page-expenses .page-head h2{font-size:calc(100% * 1.15)}
#page-expenses .page-head p{font-size:calc(100% * 1.15);line-height:1.55}
#page-expenses .page-head{margin-bottom:22px}
#page-expenses .page-head .btn{font-size:1.05em;padding:0 18px;min-height:42px;border-radius:12px}

#page-expenses .expense-period-head-v1511{gap:20px;margin:5px 0 15px}
#page-expenses .expense-period-head-v1511 h3{font-size:16.1px}
#page-expenses .expense-period-head-v1511 p{font-size:10.35px;line-height:1.45}
#page-expenses .expense-eyebrow-v1511{font-size:9.2px}
#page-expenses .expense-period-compare-v1511{padding:8px 11px;border-radius:11px;font-size:9.8px}
#page-expenses .expense-period-filter-v1515{gap:6px}
#page-expenses .expense-period-filter-v1515 label{font-size:8.5px}
#page-expenses .expense-period-filter-v1515 select,
#page-expenses .expense-period-filter-v1515 input{height:39px;min-width:141px;padding:0 11px;border-radius:11px;font-size:9.8px}
#page-expenses .expense-snapshot-note-v1529{padding:6px 9px;font-size:8.7px}

#page-expenses .expense-main-kpis-v1511{gap:11px;margin-bottom:17px}
#page-expenses .expense-main-kpi-v1511{padding:15px 15px 13px;border-radius:18px;min-height:141px}
#page-expenses .expense-kpi-label-v1511{min-height:29px;font-size:9.9px;line-height:1.4}
#page-expenses .expense-kpi-value-v1511{margin-top:10px;font-size:20.7px}
#page-expenses .expense-kpi-sub-v1511{margin-top:8px;font-size:9.4px;line-height:1.45}
#page-expenses .expense-kpi-mom-v1511{margin-top:8px;padding-top:7px;font-size:9.2px;line-height:1.35}

#page-expenses .expense-chart-grid-v1514{gap:15px;margin-bottom:18px}
#page-expenses .expense-chart-card-v1514{padding:20px;border-radius:20px;min-height:374px}
#page-expenses .expense-chart-head-v1514{gap:15px;padding-bottom:14px;margin-bottom:18px}
#page-expenses .expense-chart-head-v1514 b{font-size:13.8px}
#page-expenses .expense-chart-head-v1514 span{margin-top:5px;font-size:9.7px;line-height:1.45}
#page-expenses .expense-chart-total-v1514 span{font-size:8.6px}
#page-expenses .expense-chart-total-v1514 b{font-size:12.7px}
#page-expenses .expense-pie-layout-v1514{grid-template-columns:242px minmax(0,1fr);gap:22px;min-height:270px}
#page-expenses .expense-donut-v1514{width:242px;height:242px}
#page-expenses .expense-donut-hole-v1514{inset:51px}
#page-expenses .expense-donut-hole-v1514 span{font-size:9.2px}
#page-expenses .expense-donut-hole-v1514 b{font-size:23px}
#page-expenses .expense-pie-legend-v1514{gap:9px}
#page-expenses .expense-pie-legend-row-v1514{grid-template-columns:11px minmax(0,1fr) auto;gap:9px;padding:7px 0}
#page-expenses .expense-pie-dot-v1514{width:10px;height:10px}
#page-expenses .expense-pie-legend-row-v1514 b{font-size:10px}
#page-expenses .expense-pie-legend-row-v1514 span{font-size:9.2px}
#page-expenses .expense-pie-legend-row-v1514 strong{font-size:9.8px}
#page-expenses .expense-horizontal-bars-v1514{gap:13px}
#page-expenses .expense-hbar-row-v1514{grid-template-columns:160px minmax(0,1fr) 127px;gap:13px}
#page-expenses .expense-hbar-name-v1514{font-size:10.1px}
#page-expenses .expense-hbar-track-v1514{height:13px}
#page-expenses .expense-hbar-value-v1514 b{font-size:10px}
#page-expenses .expense-hbar-value-v1514 span{font-size:8.7px;margin-top:3px}

#page-expenses .expense-summary-grid-v1512{gap:15px!important;margin-bottom:20px!important}
#page-expenses .expense-summary-card-v1512{min-height:396px!important;padding:20px!important;border-radius:20px!important}
#page-expenses .expense-summary-top-v1512{gap:13px;padding-bottom:14px!important}
#page-expenses .expense-summary-title-v1512 b{font-size:14.4px!important}
#page-expenses .expense-summary-title-v1512 span{font-size:10.1px!important;line-height:1.45}
#page-expenses .expense-summary-groups-v1512{font-size:9.4px!important;padding:7px 10px!important}
#page-expenses .expense-summary-overview-v1513{gap:9px;margin:14px 0 15px}
#page-expenses .expense-summary-overview-v1513>div{padding:11px 12px;border-radius:13px}
#page-expenses .expense-summary-overview-v1513 span{font-size:8.6px}
#page-expenses .expense-summary-overview-v1513 b{margin-top:5px;font-size:12px}
#page-expenses .expense-mini-chart-v1513{gap:11px}
#page-expenses .expense-mini-row-v1513{grid-template-columns:minmax(132px,1.15fr) minmax(198px,1.6fr) 90px;gap:13px}
#page-expenses .expense-mini-label-v1513 b{font-size:10.7px}
#page-expenses .expense-mini-label-v1513 span{margin-top:4px;font-size:9px}
#page-expenses .expense-mini-value-v1513{gap:11px;margin-bottom:6px;font-size:9.1px}
#page-expenses .expense-mini-value-v1513 strong{font-size:9.9px}
#page-expenses .expense-mini-bar-v1513{height:9px}
#page-expenses .expense-mini-mom-v1513{padding:6px 8px;font-size:9px}
#page-expenses .expense-summary-action-v1512 button{height:33px!important;padding:0 11px!important;border-radius:10px!important;font-size:9px!important}
#page-expenses .expense-summary-footer-v1513{margin-top:15px;padding-top:13px}
#page-expenses .expense-summary-footer-v1513 span{font-size:9px!important}

/* Keep the page airy without changing its two-column information architecture. */
#page-expenses .panel{border-radius:20px}
#page-expenses .panel-head{padding:18px 20px}

@media(max-width:1250px){
  #page-expenses .expense-pie-layout-v1514{grid-template-columns:220px minmax(0,1fr)}
  #page-expenses .expense-donut-v1514{width:220px;height:220px}
  #page-expenses .expense-donut-hole-v1514{inset:47px}
  #page-expenses .expense-hbar-row-v1514{grid-template-columns:140px minmax(0,1fr) 118px}
}
@media(max-width:700px){
  #page-expenses .expense-pie-layout-v1514{grid-template-columns:1fr}
  #page-expenses .expense-donut-v1514{width:220px;height:220px}
  #page-expenses .expense-mini-row-v1513{grid-template-columns:1fr}
}

/* V15.0.36.5 debt display fix */
#page-debt-ops .debt-filterbar-v1537{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(170px,1fr)) auto minmax(160px,1fr);
  gap:10px 12px;
  align-items:end;
  padding:12px 16px !important;
  border-top:1px solid #f0edf7;
  border-bottom:1px solid #f0edf7;
  background:#fcfbff;
}
#page-debt-ops .debt-filter-v1537{
  display:flex !important;
  flex-direction:column;
  gap:5px;
  min-width:0 !important;
}
#page-debt-ops .debt-filter-v1537.date{min-width:0 !important}
#page-debt-ops .debt-filter-v1537 label{
  margin:0;
  font-size:11px !important;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#9196ad;
}
#page-debt-ops .debt-filter-v1537 input,
#page-debt-ops .debt-filter-v1537 select{
  width:100%;
  height:40px !important;
  border:1px solid #ded9ee;
  border-radius:12px;
  background:#fff;
  padding:0 12px;
  font-size:13px !important;
  color:#343a57;
  outline:none;
  box-shadow:none;
}
#page-debt-ops .debt-filter-v1537 input:focus,
#page-debt-ops .debt-filter-v1537 select:focus{
  border-color:#8f82f6;
  box-shadow:0 0 0 3px rgba(111,92,246,.08);
}
#page-debt-ops .debt-filter-reset-v1537{
  height:40px;
  align-self:end;
  padding:0 14px;
  border-radius:12px;
  border:1px solid #ded9ee;
  background:#fff;
  color:#6259d9;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
#page-debt-ops .debt-filter-count-v1537{
  margin-left:0;
  justify-self:end;
  align-self:center;
  font-size:12px;
  color:#858aa0;
  font-weight:700;
}
#page-debt-ops .debt-detail-list-v1536{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px 16px 16px;
}
#page-debt-ops .debt-detail-head-v1536,
#page-debt-ops .debt-detail-row-v1536{
  grid-template-columns:88px minmax(150px,1fr) minmax(250px,1.8fr) minmax(150px,.9fr) 130px 96px 72px;
  gap:12px;
}
#page-debt-ops .debt-detail-head-v1536{
  padding:0 12px 8px;
  border-bottom:1px solid #efedf7;
  color:#9196ad;
  font-size:11px !important;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
#page-debt-ops .debt-detail-row-v1536{
  align-items:center;
  padding:10px 12px;
  border:1px solid #ece8f6;
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 0 rgba(40,34,88,.02);
}
#page-debt-ops .debt-detail-date-v1536{font-size:12px;font-weight:800;color:#373d5c;line-height:1.35}
#page-debt-ops .debt-detail-unit-v1537{font-size:13px;font-weight:800;color:#343a58;line-height:1.35}
#page-debt-ops .debt-detail-content-v1537{font-size:13px;font-weight:750;color:#252b45;line-height:1.4}
#page-debt-ops .debt-detail-content-v1537 small{display:block;margin-top:2px;font-size:10px;font-weight:600;color:#9297aa}
#page-debt-ops .debt-detail-account-v1536{font-size:12px;font-weight:700;color:#464c69;line-height:1.35}
#page-debt-ops .debt-detail-amount-v1536{font-size:14px !important;line-height:1.2;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
#page-debt-ops .debt-detail-status-v1536 .ops-status-v1507{font-size:10px;padding:5px 8px}
#page-debt-ops .debt-detail-action-v1536{display:flex;justify-content:flex-end}
#page-debt-ops .debt-detail-list-v1536 .detail-btn,
#page-debt-ops .debt-table-v1536 .detail-btn,
#page-debt-ops .debt-mini-btn-v1536{
  min-width:0;
  padding:6px 10px;
  border-radius:10px;
  font-size:11px;
  font-weight:800;
}
#page-debt-ops .debt-table-v1536{width:100%;table-layout:fixed;border-collapse:collapse}
#page-debt-ops .debt-table-v1536 thead th{
  padding:12px 12px;
  border-bottom:1px solid #ece8f6;
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#9196ad;
  background:#fcfbff;
  text-align:left;
}
#page-debt-ops .debt-table-v1536 tbody td{
  padding:12px;
  border-bottom:1px solid #f0edf7;
  font-size:13px;
  color:#343a57;
  vertical-align:top;
}
#page-debt-ops .debt-table-v1536 .source{font-size:13px;font-weight:700;color:#2a2f49;line-height:1.4}
#page-debt-ops .debt-table-v1536 .source small{display:block;margin-top:2px;color:#8b90a6;font-size:10px;font-weight:600;line-height:1.35}
#page-debt-ops .debt-table-v1536 .money{font-size:13px;font-weight:800}
#page-debt-ops .debt-detail-empty-v1536{padding:12px;color:#8b90a6;border:1px dashed #e7e3f4;border-radius:12px;background:#fcfbff}
@media (max-width: 1280px){
  #page-debt-ops .debt-filterbar-v1537{grid-template-columns:repeat(3,minmax(160px,1fr)) auto;}
  #page-debt-ops .debt-filter-count-v1537{grid-column:1/-1;justify-self:start}
  #page-debt-ops .debt-detail-head-v1536,
  #page-debt-ops .debt-detail-row-v1536{grid-template-columns:82px minmax(130px,.9fr) minmax(220px,1.5fr) minmax(135px,.9fr) 118px 90px 66px;gap:10px}
}
@media (max-width: 980px){
  #page-debt-ops .debt-filterbar-v1537{grid-template-columns:1fr 1fr;}
  #page-debt-ops .debt-filter-reset-v1537{justify-self:start}
  #page-debt-ops .debt-filter-count-v1537{grid-column:1/-1;justify-self:start}
  #page-debt-ops .debt-detail-head-v1536{display:none}
  #page-debt-ops .debt-detail-row-v1536{grid-template-columns:1fr 1fr;gap:8px 12px}
  #page-debt-ops .debt-detail-row-v1536 .cell-unit,
  #page-debt-ops .debt-detail-row-v1536 .cell-content{grid-column:1/-1}
  #page-debt-ops .debt-detail-row-v1536 .cell-amount,
  #page-debt-ops .debt-detail-row-v1536 .cell-action{justify-self:end}
  #page-debt-ops .debt-detail-row-v1536 .cell-date:before,
  #page-debt-ops .debt-detail-row-v1536 .cell-unit:before,
  #page-debt-ops .debt-detail-row-v1536 .cell-content:before,
  #page-debt-ops .debt-detail-row-v1536 .cell-account:before,
  #page-debt-ops .debt-detail-row-v1536 .cell-amount:before,
  #page-debt-ops .debt-detail-row-v1536 .cell-status:before{
    display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9196ad;margin-bottom:4px;content:attr(data-label)
  }
}
@media (max-width: 640px){
  #page-debt-ops .debt-filterbar-v1537{grid-template-columns:1fr}
  #page-debt-ops .debt-detail-row-v1536{grid-template-columns:1fr}
  #page-debt-ops .debt-detail-row-v1536 .cell-amount,
  #page-debt-ops .debt-detail-row-v1536 .cell-action{justify-self:start}
  #page-debt-ops .debt-detail-amount-v1536{text-align:left}
}


/* ===== [068] dtbox-v15-0-37-ui-system-pass  (src lines 4378-4571) ===== */
/* =========================================================
   DTBOX Finance OS — V15.0.37 UI SYSTEM PASS
   Canonical visual reference: Tổng quan
   No business logic changes in this layer.
   ========================================================= */
:root{
  --ui-ink:#171927;
  --ui-heading:#202233;
  --ui-text:#53576a;
  --ui-muted:#888da1;
  --ui-muted-2:#9a9daf;
  --ui-line:#ebe9f3;
  --ui-line-soft:#f0eef5;
  --ui-soft:#f8f7fc;
  --ui-soft-purple:#f6f4ff;
  --ui-primary:#6554f2;
  --ui-primary-2:#735ff8;
  --ui-green:#1ca494;
  --ui-red:#df6572;
  --ui-orange:#df8247;
  --ui-card-radius:24px;
  --ui-control-radius:12px;
  --ui-button-radius:13px;
  --ui-shadow:0 12px 34px rgba(70,58,138,.065);
  --ui-shadow-soft:0 8px 24px rgba(72,62,132,.05);
}

/* ---------- Global typography / page rhythm ---------- */
html,body{color:var(--ui-ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.content{max-width:1540px!important}
.page-head{align-items:center!important;margin-bottom:24px!important;padding:0 5px!important;gap:20px!important}
.page-head h2{font-size:31px!important;line-height:1.07!important;letter-spacing:-1.1px!important;font-weight:850!important;color:var(--ui-ink)!important;margin:0 0 7px!important}
.page-head p{font-size:11px!important;line-height:1.55!important;color:var(--ui-muted)!important;margin:0!important;max-width:110ch}
.section-title{margin:28px 4px 12px!important}
.section-title h3{font-size:14px!important;font-weight:850!important;letter-spacing:-.15px!important;color:var(--ui-heading)!important}
.section-title .desc{font-size:10px!important;color:var(--ui-muted-2)!important}

/* ---------- Cards / panels ---------- */
.panel{border:1px solid var(--ui-line)!important;border-radius:var(--ui-card-radius)!important;box-shadow:var(--ui-shadow)!important;background:#fff!important;overflow:hidden}
.panel-head{padding:18px 20px!important;border-bottom:1px solid var(--ui-line-soft)!important;gap:15px!important}
.panel-head h3{font-size:13px!important;line-height:1.35!important;font-weight:850!important;color:var(--ui-heading)!important;margin:0!important}
.panel-head p{font-size:10px!important;line-height:1.45!important;color:var(--ui-muted-2)!important;margin:4px 0 0!important}
.panel-body{padding:20px!important}
.kpi-grid{gap:13px!important}
.kpi{min-height:142px!important;border:1px solid #eceaf4!important;border-radius:22px!important;padding:19px 20px!important;background:linear-gradient(145deg,#fff 65%,#fdfcff 100%)!important;box-shadow:0 11px 30px rgba(72,62,132,.06)!important}
.kpi .label{font-size:10.5px!important;font-weight:720!important;color:#747b90!important}
.kpi .value{font-size:25px!important;line-height:1.12!important;color:var(--ui-ink)!important;font-weight:850!important}
.kpi .hint{font-size:9.8px!important;line-height:1.45!important;color:#9b9eaf!important}

/* ---------- Buttons: same family everywhere ---------- */
.btn,.mini-btn,.detail-btn,.debt-mini-btn-v1536,.debt-filter-reset-v1537{
  border-radius:var(--ui-button-radius)!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
  transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease!important;
}
.btn{min-height:40px!important;padding:0 14px!important;font-size:12px!important}
.btn-sm{min-height:34px!important;padding:0 11px!important;font-size:10.5px!important;border-radius:11px!important}
.btn-primary{background:linear-gradient(135deg,var(--ui-primary-2),#5c4bea)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 8px 20px rgba(103,82,245,.23)!important}
.btn-secondary{background:#fff!important;color:#363a50!important;border-color:#e9e7f1!important;box-shadow:none!important}
.btn-danger{background:#fff3f5!important;color:#d55765!important;border-color:#f3d5da!important;box-shadow:none!important}
.btn-green{background:linear-gradient(135deg,#42c8bb,#25ab9e)!important;color:#fff!important;box-shadow:0 8px 18px rgba(43,182,168,.19)!important}
.btn:hover,.mini-btn:hover,.detail-btn:hover,.debt-mini-btn-v1536:hover{transform:translateY(-1px)}
.mini-btn,.detail-btn,.debt-mini-btn-v1536{
  min-height:34px!important;
  padding:0 12px!important;
  border:1px solid #d8d1ff!important;
  background:var(--ui-soft-purple)!important;
  color:#5f58f6!important;
  font-size:11px!important;
  box-shadow:none!important;
}

/* ---------- Controls ---------- */
.filters{gap:8px!important}
.filters label,.field label,.debt-filter-v1537 label{font-size:10px!important;line-height:1.3!important;font-weight:800!important;color:#55596b!important}
.filters input,.filters select,.field input,.field select,.field textarea,.debt-filter-v1537 input,.debt-filter-v1537 select{
  border:1px solid #e5e3ed!important;
  border-radius:var(--ui-control-radius)!important;
  background:#fdfdff!important;
  color:#53576a!important;
  box-shadow:0 3px 10px rgba(60,53,111,.025)!important;
  outline:none!important;
}
.filters input,.filters select,.debt-filter-v1537 input,.debt-filter-v1537 select{height:39px!important;min-height:39px!important;padding:0 10px!important;font-size:11px!important}
.field input,.field select{min-height:43px!important;padding:0 12px!important;font-size:11.5px!important}
.field textarea{min-height:92px!important;padding:11px 12px!important;font-size:11.5px!important;line-height:1.55!important}
.filters input:focus,.filters select:focus,.field input:focus,.field select:focus,.field textarea:focus,.debt-filter-v1537 input:focus,.debt-filter-v1537 select:focus{border-color:#978aff!important;box-shadow:0 0 0 4px rgba(102,86,244,.09)!important}
.field small{font-size:9px!important;color:var(--ui-muted)!important}

/* ---------- Tables ---------- */
.table-wrap{background:#fff}
table{font-size:10.5px!important}
th{background:#faf9fe!important;color:#8b8fa0!important;border-bottom:1px solid #eceaf4!important;padding:12px 13px!important;font-size:10px!important;font-weight:800!important;line-height:1.35!important}
td{padding:12px 13px!important;border-bottom:1px solid #f0eef5!important;font-size:10.5px!important;line-height:1.45!important;color:#363a50}
tr:hover td{background:#fbfaff!important}
.money{font-variant-numeric:tabular-nums;letter-spacing:-.05px}
.pos{color:var(--ui-green)!important}.neg{color:var(--ui-red)!important}

/* ---------- Status pills ---------- */
.badge,.ops-status-v1507,.hr-status,.hr-type,.payroll-status{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:24px!important;padding:4px 8px!important;border-radius:999px!important;
  font-size:9px!important;line-height:1!important;font-weight:850!important;white-space:nowrap!important
}
.badge-blue{background:#efedff!important;color:#6250eb!important}.badge-green{background:#eaf9f5!important;color:#199b8d!important}.badge-orange{background:#fff2e9!important;color:#df8247!important}.badge-red{background:#ffeff2!important;color:#dc5f6c!important}.badge-purple{background:#f0edff!important;color:#7557df!important}.badge-gray{background:#f1f2f6!important;color:#777c8c!important}

/* ---------- Modals: one canonical shell ---------- */
.modal-backdrop{background:rgba(26,24,48,.42)!important;backdrop-filter:blur(7px)!important;padding:20px!important}
.modal{border-radius:24px!important;border:1px solid rgba(231,228,244,.95)!important;box-shadow:0 30px 100px rgba(29,24,71,.22)!important;background:#fff!important;overflow:hidden!important}
.modal-head,.expense-detail-modal-v1516 .modal-head,#debtForecastModalV1536 .modal-head{padding:20px 22px!important;border-bottom:1px solid var(--ui-line-soft)!important;align-items:center!important;min-height:72px!important}
.modal-head h3,.expense-detail-modal-v1516 .modal-head h3,#debtForecastModalV1536 .modal-head h3{font-size:16px!important;line-height:1.35!important;font-weight:850!important;letter-spacing:-.25px!important;color:#232638!important;margin:0!important}
.modal-head p,#debtForecastModalV1536 .modal-head p{font-size:10.5px!important;line-height:1.5!important;color:var(--ui-muted)!important;margin:5px 0 0!important}
.x,.modal-head .x,#debtForecastModalV1536 .modal-head .x{width:36px!important;height:36px!important;min-width:36px!important;flex:0 0 36px!important;border-radius:11px!important;border:0!important;background:#f5f4fa!important;color:#777b90!important;font-size:20px!important;display:grid!important;place-items:center!important;margin:0 0 0 16px!important;align-self:center!important;padding:0!important}
.modal-body,.expense-detail-modal-v1516 .modal-body,#debtForecastModalV1536 .modal-body{padding:22px!important;background:#fff!important}
.modal-foot,.expense-detail-modal-v1516 .modal-foot,#debtForecastModalV1536 .modal-foot{padding:15px 22px!important;gap:8px!important;background:#fbfaff!important;border-top:1px solid var(--ui-line-soft)!important}
.modal-foot .btn,.expense-detail-modal-v1516 .modal-foot .btn{min-height:40px!important;padding:0 16px!important;font-size:11px!important;border-radius:12px!important}
.note{background:var(--ui-soft)!important;border:1px solid var(--ui-line-soft)!important;color:#808498!important;border-radius:14px!important}

/* ---------- Expense page: bring scale back to Overview hierarchy ---------- */
#page-expenses .page-head h2{font-size:31px!important}
#page-expenses .page-head p{font-size:11px!important}
#page-expenses .page-head .btn{font-size:12px!important;min-height:40px!important;padding:0 14px!important;border-radius:13px!important}
#page-expenses .expense-period-head-v1511 h3{font-size:14px!important}
#page-expenses .expense-period-head-v1511 p{font-size:10px!important}
#page-expenses .expense-eyebrow-v1511{font-size:8px!important}
#page-expenses .expense-period-compare-v1511{font-size:9px!important;border-radius:10px!important}
#page-expenses .expense-period-filter-v1515 label{font-size:8px!important}
#page-expenses .expense-period-filter-v1515 select,#page-expenses .expense-period-filter-v1515 input{height:39px!important;font-size:9.5px!important;border-radius:11px!important}
#page-expenses .expense-main-kpis-v1511{gap:13px!important;margin-bottom:16px!important}
#page-expenses .expense-main-kpi-v1511{min-height:142px!important;padding:16px 17px 14px!important;border-radius:22px!important;box-shadow:var(--ui-shadow-soft)!important}
#page-expenses .expense-kpi-label-v1511{font-size:10.5px!important;line-height:1.35!important}
#page-expenses .expense-kpi-value-v1511{font-size:22px!important;line-height:1.15!important;margin-top:9px!important}
#page-expenses .expense-kpi-sub-v1511{font-size:9.8px!important;line-height:1.45!important;margin-top:7px!important}
#page-expenses .expense-kpi-mom-v1511{font-size:9px!important;line-height:1.4!important}
#page-expenses .expense-chart-card-v1514,#page-expenses .expense-summary-card-v1512{border-radius:24px!important;box-shadow:var(--ui-shadow)!important;border-color:var(--ui-line)!important}
#page-expenses .expense-chart-head-v1514 b{font-size:13px!important}#page-expenses .expense-chart-head-v1514 span{font-size:10px!important}
#page-expenses .expense-summary-title-v1512 b{font-size:13px!important}#page-expenses .expense-summary-title-v1512 span{font-size:10px!important}
#page-expenses .expense-summary-action-v1512 button{height:34px!important;padding:0 12px!important;border-radius:11px!important;font-size:10px!important}

/* ---------- Approval & Payment KPI: same density as Overview ---------- */
.ops-kpi-grid-v1525{gap:13px!important;align-items:stretch!important}
.ops-kpi-card-v1525{min-height:188px!important;padding:18px 18px 16px!important;border-radius:22px!important;box-shadow:var(--ui-shadow-soft)!important;background:linear-gradient(145deg,#fff,#fcfbff)!important}
.ops-kpi-card-v1525::after{width:84px!important;height:84px!important;right:-28px!important;top:-30px!important}
.ops-kpi-card-v1525::before{width:4px!important;border-radius:22px 0 0 22px!important}
.ops-kpi-card-v1525 .label{min-height:30px!important;padding:7px 11px!important;border-radius:999px!important;font-size:10.5px!important;line-height:1!important}
.ops-kpi-card-v1525 .label::before{width:7px!important;height:7px!important}
.ops-kpi-main-v1526{grid-template-rows:48px 66px!important;gap:8px!important;margin-top:10px!important}
.ops-kpi-card-v1525 .value{font-size:34px!important;line-height:.95!important;letter-spacing:-.035em!important}
.ops-kpi-amount-v1526{padding-top:9px!important;border-top:1px solid #ece9f5!important}
.ops-kpi-amount-v1526 .amount-label-v1526{font-size:9px!important;margin:0 0 5px!important}
.ops-kpi-card-v1525 .hint{font-size:16px!important;line-height:1.15!important;font-weight:850!important;white-space:normal!important}
.ops-kpi-card-v1525 .detail-btn-wrap{padding-top:10px!important;margin-top:auto!important}
.ops-kpi-card-v1525 .detail-btn-wrap .mini-btn{height:34px!important;padding:0 12px!important;font-size:10.5px!important;border-radius:11px!important}

/* ---------- Debt page: same card / filter / table language ---------- */
#page-debts .debt-summary-card-v1535,#page-debts .debt-forecast-card-v1535{border-color:var(--ui-line)!important;border-radius:22px!important;box-shadow:var(--ui-shadow-soft)!important}
#page-debts .debt-summary-card-v1535{min-height:148px!important;padding:16px 18px 14px!important}
#page-debts .debt-summary-card-v1535 .title{font-size:13px!important;color:#666c84!important}
#page-debts .debt-summary-card-v1535 .amount{font-size:20px!important}
#page-debts .debt-summary-card-v1535 .count-line .label{font-size:9px!important}#page-debts .debt-summary-card-v1535 .count-line .value{font-size:12px!important}
#page-debts .debt-forecast-card-v1535{padding:17px 19px!important}
#page-debts .debt-forecast-card-copy-v1536 h3{font-size:17px!important}#page-debts .debt-forecast-card-copy-v1536 p{font-size:10.5px!important}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535,#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535{min-height:72px!important;padding:12px 14px!important;border-radius:16px!important}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535 .amount,#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535 .value{font-size:15px!important}
#page-debts .debt-detail-list-v1536{padding:12px 16px 16px!important;gap:8px!important}
#page-debts .debt-detail-row-v1536{padding:10px 12px!important;border-radius:12px!important}
#page-debts .debt-detail-source-v1536,#page-debts .debt-detail-unit-v1537,#page-debts .debt-detail-content-v1537{font-size:11.5px!important}
#page-debts .debt-detail-account-v1536,#page-debts .debt-detail-date-v1536{font-size:10.5px!important}
#page-debts .debt-detail-amount-v1536{font-size:13px!important}
#page-debts .debt-filterbar-v1537{padding:12px 16px!important;background:#fcfbff!important;border-color:var(--ui-line-soft)!important}

/* ---------- HR / Payroll ---------- */
.hr-form-section-v1503{border-color:var(--ui-line)!important;border-radius:18px!important;background:#fff!important}
.hr-section-head-v1503{border-bottom-color:var(--ui-line-soft)!important}
.payroll-adjust-input{border-color:#e5e3ed!important;border-radius:10px!important;background:#fdfdff!important;font-size:11px!important}

/* ---------- Secondary operational blocks ---------- */
.ops-task-list-v1507,.ops-control-list-v1507{font-size:11px!important}
.flow-box,.insight-card,.risk-card{border-radius:16px!important}
.empty{font-size:10.5px!important;color:var(--ui-muted)!important}
.detail-link{color:var(--ui-primary)!important;font-weight:800!important}
.toast{background:#222337!important;border:1px solid rgba(255,255,255,.07)!important;border-radius:13px!important;font-size:11px!important}

@media(max-width:1250px){
  .ops-kpi-card-v1525 .value{font-size:32px!important}.ops-kpi-card-v1525 .hint{font-size:15px!important}
}
@media(max-width:760px){
  .page-head{align-items:flex-start!important;flex-direction:column!important}.page-head h2{font-size:27px!important}
  .ops-kpi-card-v1525{min-height:auto!important}.ops-kpi-card-v1525 .value{font-size:30px!important}.ops-kpi-card-v1525 .hint{font-size:15px!important}
  .modal-head,.modal-body,.modal-foot{padding-left:16px!important;padding-right:16px!important}
}

/* ===== [069] cashflow-fix-v15-0-37a  (src lines 4574-4596) ===== */
  /* Cash Flow fixes: prevent section overlap and separate row action buttons */
  #page-cashflow .section-title{
    margin-top: 22px;
  }
  #page-cashflow #cashBody td:last-child{
    min-width: 108px;
    white-space: nowrap;
  }
  #page-cashflow #cashBody td:last-child .btn{
    display: block;
    min-width: 88px;
    margin-left: auto;
  }
  #page-cashflow #cashBody td:last-child .btn + .btn{
    margin-top: 8px;
  }
  #page-cashflow #cashBody td:last-child .badge{
    display: inline-flex;
    justify-content: center;
    min-width: 88px;
  }

/* ===== [070] debt-forecast-detail-button-fix-v1538  (src lines 4599-4652) ===== */
#page-debts .debt-forecast-card-metrics-v1536{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535,
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535{
  min-height:142px !important;
  justify-content:flex-start !important;
}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535.detailable{
  padding-bottom:14px !important;
}
#page-debts .debt-forecast-stat-actions-v1538{
  margin-top:auto;
  padding-top:10px;
}
#page-debts .debt-forecast-stat-actions-v1538 .detail-btn{
  min-width:92px;
  height:40px;
  padding:0 16px !important;
  border-radius:14px !important;
  white-space:nowrap;
}
#page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535{
  justify-content:center !important;
}
#debtForecastModalV1536{
  align-items:center !important;
}
#debtForecastModalV1536 .modal{
  display:flex !important;
  flex-direction:column !important;
  max-height:min(92vh,960px) !important;
}
#debtForecastModalV1536 .modal-body{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
#debtForecastModalV1536 .modal-foot{
  flex:0 0 auto !important;
}
@media(max-width:1260px){
  #page-debts .debt-forecast-card-metrics-v1536{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}
@media(max-width:860px){
  #page-debts .debt-forecast-card-metrics-v1536{grid-template-columns:1fr !important;}
  #page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-stat-v1535,
  #page-debts .debt-forecast-card-metrics-v1536 .debt-forecast-net-v1535{min-height:auto !important;}
}

/* ===== [071] debt-forecast-modal-scroll-view-fix-v1539  (src lines 4655-4729) ===== */
/* Forecast modal: explicit scroll viewport + stable Xem button */
#debtForecastModalV1536.show{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}
#debtForecastModalV1536 .modal{
  width:min(1180px,calc(100vw - 48px)) !important;
  height:min(92vh,920px) !important;
  max-height:min(92vh,920px) !important;
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) auto !important;
  overflow:hidden !important;
}
#debtForecastModalV1536 .modal-head,
#debtForecastModalV1536 .modal-foot{
  position:relative !important;
  z-index:2 !important;
  flex:none !important;
}
#debtForecastModalV1536 .modal-body{
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  overflow-y:scroll !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:stable !important;
  -webkit-overflow-scrolling:touch !important;
  padding-right:18px !important;
}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar{width:9px}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar-track{background:#f3f1f8;border-radius:999px}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar-thumb{background:#c9c3dc;border-radius:999px;border:2px solid #f3f1f8}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar-thumb:hover{background:#aaa2c7}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single{
  overflow:hidden !important;
}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .table-wrap{
  overflow:visible !important;
}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 th:nth-child(6),
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 td:nth-child(6){
  width:84px !important;
  min-width:84px !important;
  text-align:center !important;
  white-space:nowrap !important;
  word-break:normal !important;
}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .debt-table-v1536 td:nth-child(6) .debt-mini-btn-v1536{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:58px !important;
  max-width:none !important;
  height:32px !important;
  min-height:32px !important;
  padding:0 10px !important;
  line-height:1 !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow:visible !important;
}
@media(max-width:760px){
  #debtForecastModalV1536 .modal{
    width:calc(100vw - 20px) !important;
    height:94vh !important;
    max-height:94vh !important;
  }
  #debtForecastModalV1536 .modal-body{padding-right:14px !important}
}

/* ===== [072] debt-forecast-modal-true-scroll-fix-v1540  (src lines 4732-4791) ===== */
/* True scroll fix: children must keep natural height so modal-body can actually overflow */
#debtForecastModalV1536.show{
  overflow:hidden !important;
}
#debtForecastModalV1536 .modal{
  height:min(92vh,920px) !important;
  max-height:min(92vh,920px) !important;
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) auto !important;
  overflow:hidden !important;
}
#debtForecastModalV1536 .modal-body.debt-forecast-modal-body-v1536{
  display:block !important;
  min-height:0 !important;
  height:100% !important;
  max-height:none !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scrollbar-gutter:stable !important;
  overscroll-behavior-y:contain !important;
  -webkit-overflow-scrolling:touch !important;
  padding:18px 22px 28px !important;
}
#debtForecastModalV1536 .debt-forecast-modal-summary-v1536,
#debtForecastModalV1536 .debt-forecast-tabs-v1536,
#debtForecastModalV1536 .debt-forecast-modal-filter-v1536,
#debtForecastModalV1536 .debt-forecast-pane-v1536.single{
  flex:none !important;
  min-height:max-content !important;
}
#debtForecastModalV1536 .debt-forecast-modal-summary-v1536{margin-bottom:16px !important}
#debtForecastModalV1536 .debt-forecast-tabs-v1536{margin:0 0 16px !important}
#debtForecastModalV1536 .debt-forecast-modal-filter-v1536{margin:0 0 18px !important}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  margin-bottom:8px !important;
}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single .table-wrap{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single table{
  height:auto !important;
}
#debtForecastModalV1536 .debt-forecast-pane-v1536.single tbody{
  height:auto !important;
}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar{width:10px !important}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar-track{background:#f3f1f8 !important;border-radius:999px !important}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar-thumb{background:#bbb4d2 !important;border-radius:999px !important;border:2px solid #f3f1f8 !important}
#debtForecastModalV1536 .modal-body::-webkit-scrollbar-thumb:hover{background:#9d94bd !important}
@media(max-width:760px){
  #debtForecastModalV1536 .modal{height:94vh !important;max-height:94vh !important}
  #debtForecastModalV1536 .modal-body.debt-forecast-modal-body-v1536{padding:16px 14px 24px !important}
}

/* ===== [073] reconciliation-workflow-v1539  (src lines 4794-4807) ===== */
#page-reconciliation-ops .recon-periodbar-v1539{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 18px;margin-bottom:16px;border:1px solid #e9e6f6;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(31,24,72,.035)}
#page-reconciliation-ops .recon-period-copy-v1539 .eyebrow{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#6a5cf5}.recon-period-copy-v1539 .title{font-size:15px;font-weight:850;color:#2a2f49;margin-top:3px}.recon-period-copy-v1539 .desc{font-size:12px;color:#8b90a6;margin-top:3px;line-height:1.45}
#page-reconciliation-ops .recon-period-field-v1539{width:190px;flex:0 0 auto}#page-reconciliation-ops .recon-period-field-v1539 input{height:42px}
#page-reconciliation-ops .recon-kpi-grid-v1539{margin-bottom:16px}.recon-kpi-v1539{appearance:none;text-align:left;cursor:pointer;font-family:inherit}.recon-kpi-v1539:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(31,24,72,.06)}.recon-kpi-v1539:focus-visible{outline:3px solid rgba(99,84,244,.16);outline-offset:2px}
#page-reconciliation-ops .recon-kpi-v1539 .hint{font-weight:750}.recon-main-panel-v1539{overflow:hidden}.recon-panel-head-v1539{align-items:center}.recon-head-count-v1539{font-size:12px;font-weight:800;color:#777d96;background:#f7f5ff;border:1px solid #e6e1fb;padding:7px 11px;border-radius:999px}
#page-reconciliation-ops .recon-filterbar-v1539{display:grid;grid-template-columns:150px 170px minmax(180px,1fr) 170px auto;gap:10px;align-items:end;padding:12px 16px;border-top:1px solid #f0edf7;border-bottom:1px solid #f0edf7;background:#fcfbff}.recon-filterbar-v1539 .field{gap:5px}.recon-filterbar-v1539 .field label{font-size:10px;letter-spacing:.06em;text-transform:uppercase}.recon-filterbar-v1539 input,.recon-filterbar-v1539 select{height:38px;font-size:12px}.recon-clear-filter-v1539{height:38px;padding:0 13px}
#page-reconciliation-ops .recon-table-wrap-v1539{overflow-x:auto}.recon-table-v1539{width:100%;min-width:1120px;table-layout:fixed}.recon-table-v1539 th,.recon-table-v1539 td{padding:12px 12px;font-size:12px;vertical-align:middle}.recon-table-v1539 th{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#969bb0}.recon-table-v1539 th:nth-child(1){width:86px}.recon-table-v1539 th:nth-child(2){width:110px}.recon-table-v1539 th:nth-child(3){width:150px}.recon-table-v1539 th:nth-child(4){width:auto}.recon-table-v1539 th:nth-child(5),.recon-table-v1539 th:nth-child(6),.recon-table-v1539 th:nth-child(7){width:130px}.recon-table-v1539 th:nth-child(8){width:110px}.recon-table-v1539 th:nth-child(9){width:76px}.recon-source-v1539{font-weight:750;color:#303650;line-height:1.4}.recon-source-v1539 small{display:block;margin-top:2px;color:#9297aa;font-size:10px;font-weight:600}.recon-money-v1539{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.recon-money-v1539.pos{color:#159a71}.recon-money-v1539.neg{color:#d65464}.recon-detail-btn-v1539{padding:6px 10px;min-width:0;border-radius:10px;border:1px solid #d9d3fb;background:#f8f6ff;color:#6354f4;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}
.recon-status-v1539{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:850;white-space:nowrap}.recon-status-v1539.pending{background:#f0edff;color:#6555f4}.recon-status-v1539.processing{background:#fff6e6;color:#c67a12}.recon-status-v1539.mismatch{background:#fff0f2;color:#d65565}.recon-status-v1539.matched{background:#eaf9f5;color:#168f78}
.recon-modal-v1539{max-width:900px}.recon-modal-v1539 .modal-head>div p{margin:4px 0 0;font-size:12px;color:#8a8fa5}.recon-item-summary-v1539{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.recon-item-summary-v1539 .item{padding:11px 12px;border:1px solid #ece8f6;border-radius:13px;background:#faf9fe}.recon-item-summary-v1539 .item.wide{grid-column:1/-1}.recon-item-summary-v1539 .k{font-size:9px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#9499ae}.recon-item-summary-v1539 .v{margin-top:5px;font-size:13px;font-weight:800;color:#303650;line-height:1.4}
.recon-amount-grid-v1539{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.recon-amount-box-v1539{padding:13px 14px;border-radius:14px;border:1px solid #ebe8f6;background:#fff}.recon-amount-box-v1539 span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#959aae}.recon-amount-box-v1539 strong{display:block;margin-top:6px;font-size:18px;color:#2c324e}.recon-amount-box-v1539.actual strong{color:#6555f4}.recon-amount-box-v1539.difference.good strong{color:#168f78}.recon-amount-box-v1539.difference.bad strong{color:#d65565}.recon-form-v1539{margin-top:14px}.recon-rule-note-v1539{margin-top:14px;padding:10px 12px;border-radius:12px;background:#f8f7fc;color:#737890;font-size:11px;line-height:1.5}.recon-processing-btn-v1539{color:#b36b0c;border-color:#efd8ac;background:#fff9ee}
@media(max-width:1100px){#page-reconciliation-ops .recon-filterbar-v1539{grid-template-columns:1fr 1fr}.recon-clear-filter-v1539{justify-self:start}}
@media(max-width:760px){#page-reconciliation-ops .recon-periodbar-v1539{flex-direction:column;align-items:stretch}#page-reconciliation-ops .recon-period-field-v1539{width:100%}#page-reconciliation-ops .recon-filterbar-v1539,.recon-item-summary-v1539,.recon-amount-grid-v1539{grid-template-columns:1fr}.recon-item-summary-v1539 .item.wide{grid-column:auto}}

/* ===== [074] recon-period-selector-fix-v1540  (src lines 4810-4816) ===== */
#page-reconciliation-ops .recon-period-field-v1539{width:300px!important;}
#page-reconciliation-ops .recon-period-selects-v1540{display:grid;grid-template-columns:1fr 112px;gap:8px;}
#page-reconciliation-ops .recon-period-selects-v1540 select{width:100%;height:42px;border:1px solid #ded9ee;border-radius:12px;background:#fff;padding:0 12px;font-size:12px;font-weight:700;color:#343a57;outline:none;box-shadow:none;}
#page-reconciliation-ops .recon-period-selects-v1540 select:focus{border-color:#8f82f6;box-shadow:0 0 0 3px rgba(111,92,246,.08);}
@media(max-width:760px){#page-reconciliation-ops .recon-period-field-v1539{width:100%!important}.recon-period-selects-v1540{grid-template-columns:1fr 1fr!important}}

/* ===== [075] revenue-kpi-width-balance-v150382  (src lines 4819-4866) ===== */
/* Revenue overview width balance — layout only, no business logic changes */
#page-revenue .revenue-overview-layout{
  grid-template-columns:minmax(0,1.72fr) minmax(360px,1.02fr) !important;
  gap:16px !important;
}
#page-revenue .revenue-main-kpis{
  grid-template-columns:minmax(0,1.55fr) minmax(230px,.72fr) !important;
  gap:16px !important;
}
#page-revenue .revenue-primary-kpi{
  min-width:0;
}
#page-revenue #rSales,
#page-revenue #rAov{
  white-space:nowrap;
}
#page-revenue #rOrders,
#page-revenue #rPrepaidRatio{
  white-space:nowrap;
}
#page-revenue .revenue-today-hero{
  min-width:360px;
  padding-left:26px !important;
  padding-right:26px !important;
}
#page-revenue .revenue-hero-value{
  font-size:clamp(34px,2.45vw,46px) !important;
  white-space:nowrap;
}
@media(max-width:1180px){
  #page-revenue .revenue-overview-layout{
    grid-template-columns:minmax(0,1.55fr) minmax(330px,.95fr) !important;
  }
  #page-revenue .revenue-main-kpis{
    grid-template-columns:minmax(0,1.4fr) minmax(210px,.72fr) !important;
  }
}
@media(max-width:1050px){
  #page-revenue .revenue-overview-layout{grid-template-columns:1fr !important;}
  #page-revenue .revenue-today-hero{min-width:0;}
}
@media(max-width:720px){
  #page-revenue .revenue-main-kpis{grid-template-columns:1fr 1fr !important;}
  #page-revenue #rSales,#page-revenue #rAov,#page-revenue #rOrders,#page-revenue #rPrepaidRatio{white-space:normal;}
  #page-revenue .revenue-hero-value{white-space:normal;}
}

/* ===== [076] debt-view-handler-fix-v1541  (src lines 4869-4874) ===== */
.debt-item-actionbar-v1540{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.debt-item-action-buttons-v1541{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.debt-item-action-buttons-v1541 .btn{white-space:nowrap}
@media(max-width:760px){.debt-item-actionbar-v1540{align-items:stretch}.debt-item-action-buttons-v1541{width:100%;justify-content:flex-start}}

/* ===== [077] debt-status-filter-recon-fix-v1541  (src lines 4877-4894) ===== */
#page-debts .debt-partial-chip-v1540,
#page-debts .debt-paid-chip-v1540,
#debtForecastModalV1536 .debt-partial-chip-v1540,
#debtForecastModalV1536 .debt-paid-chip-v1540{
  white-space:nowrap!important;
  flex-wrap:nowrap!important;
  line-height:1!important;
  max-width:none!important;
}
#page-debts .debt-detail-row-v1536 .cell-status{min-width:126px}
#page-debts .debt-detail-head-v1536,
#page-debts .debt-detail-row-v1536{
  grid-template-columns:88px minmax(150px,1fr) minmax(250px,1.8fr) minmax(150px,.9fr) 130px 130px 72px!important;
}
#debtForecastModalV1536 .debt-table-v1536 th:nth-child(5),
#debtForecastModalV1536 .debt-table-v1536 td:nth-child(5){width:130px!important;white-space:nowrap!important}

/* ===== [078] cash-source-recon-ux-v1542  (src lines 4897-4902) ===== */
#page-cashflow .cash-manual-actions-v1542{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:88px}
#page-cashflow .cash-manual-actions-v1542 .btn,#page-cashflow .cash-source-btn-v1542{min-width:88px;white-space:nowrap}
#page-cashflow .cash-source-btn-v1542{color:#6259d9;border-color:#d9d3fb;background:#f8f6ff}
.debt-settlement-table-v1540 .recon.pending{color:#b26a00}.debt-settlement-table-v1540 .recon.processing{color:#b26a00}.debt-settlement-table-v1540 .recon.matched{color:#128a68}.debt-settlement-table-v1540 .recon.mismatch{color:#d14b5c}

/* ===== [079] recorded-verified-cash-v1543  (src lines 4905-4908) ===== */
.cash-layer-summary-v1543{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(260px,1.2fr);gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid #e9e6f6;border-radius:16px;background:#fcfbff}.cash-layer-summary-v1543>div{display:flex;flex-direction:column;gap:3px;min-width:0}.cash-layer-summary-v1543 span{font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:#9297aa}.cash-layer-summary-v1543 b{font-size:14px;color:#303650}.cash-layer-summary-v1543 small{font-size:10px;color:#8b90a6}.cash-layer-note-v1543{justify-content:center;color:#777d96;font-size:11px;line-height:1.45}.cash-verify-v1543{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:850;white-space:nowrap}.cash-verify-v1543.pending{background:#f0edff;color:#6555f4}.cash-verify-v1543.processing{background:#fff6e6;color:#b97814}.cash-verify-v1543.mismatch{background:#fff0f2;color:#d65565}.cash-verify-v1543.verified{background:#eaf9f5;color:#168f78}.cash-verify-link-v1543{border:0;background:transparent;padding:0;cursor:pointer}.cash-pending-row-v1543 td{background:#fffefe}.cash-verified-row-v1543 td{background:#fff}.verified-cash-note-v1543{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:750;color:#777d96}
@media(max-width:1000px){.cash-layer-summary-v1543{grid-template-columns:1fr 1fr}.cash-layer-note-v1543{grid-column:1/-1}}@media(max-width:650px){.cash-layer-summary-v1543{grid-template-columns:1fr}}

/* ===== [080] recorded-verified-cash-table-tune-v1543  (src lines 4911-4914) ===== */
#page-cashflow table th:nth-last-child(2),#page-cashflow table td:nth-last-child(2){min-width:110px;white-space:nowrap}
#page-cashflow table th:last-child,#page-cashflow table td:last-child{min-width:108px;white-space:nowrap}

/* ===== [081] dtbox-v15-0-44-maker-checker-css  (src lines 4917-4934) ===== */
/* V15.0.44 — Maker / Checker bank verification */
.recon-maker-checker-v1544{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;
  margin:13px 0 14px;padding:12px;border:1px solid #e4e0f4;border-radius:15px;
  background:linear-gradient(135deg,#faf9ff,#fff)
}
.recon-mc-card-v1544{min-width:0;padding:10px 11px;border:1px solid #ece9f5;border-radius:12px;background:#fff}
.recon-mc-card-v1544 span{display:block;color:#9699aa;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.recon-mc-card-v1544 b{display:block;margin-top:5px;color:#34374a;font-size:9.6px;line-height:1.35;word-break:break-word}
.recon-mc-card-v1544 b.good{color:#168a73}.recon-mc-card-v1544 b.warn{color:#b8751f}.recon-mc-card-v1544 b.info{color:#6452e9}
.recon-mc-note-v1544{margin:-3px 0 13px;padding:10px 12px;border:1px solid #e7e3f6;border-radius:12px;background:#f8f7fc;color:#74788d;font-size:9px;line-height:1.55}
.recon-mc-note-v1544 strong{color:#4a4d62}
.recon-mc-note-v1544.is-warning{border-color:#f2d8ad;background:#fff8ec;color:#94651f}
.cash-verify-meta-v1544{display:block;margin-top:4px;color:#9699aa;font-size:8px;line-height:1.25;white-space:nowrap}
@media(max-width:900px){.recon-maker-checker-v1544{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.recon-maker-checker-v1544{grid-template-columns:1fr}}

/* ===== [082] dtbox-v15-0-46-reconciliation-footer-fix  (src lines 4937-4980) ===== */
/* V15.0.46 — Reconciliation detail popup footer safe area */
#reconciliationModal .modal{
  display:flex!important;
  flex-direction:column!important;
  max-height:min(92vh,980px)!important;
  overflow:hidden!important;
}
#reconciliationModal .modal-head{
  flex:0 0 auto!important;
}
#reconciliationModal .modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  padding-bottom:18px!important;
}
#reconciliationModal .modal-foot{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:2!important;
  padding:18px 28px 26px!important;
  gap:10px!important;
  background:#fbfaff!important;
  border-top:1px solid #efebf6!important;
  justify-content:flex-end!important;
  align-items:center!important;
  flex-wrap:wrap!important;
}
#reconciliationModal .modal-foot .btn{
  min-height:42px!important;
  padding:0 18px!important;
  border-radius:12px!important;
}
@media(max-width:760px){
  #reconciliationModal .modal-foot{
    padding:14px 16px 20px!important;
  }
  #reconciliationModal .modal-foot .btn{
    flex:1 1 calc(50% - 8px);
  }
}

/* ===== [083] dtbox-v15-0-48-reconciliation-action-spacing  (src lines 4983-5008) ===== */
/* V15.0.48 — Reconciliation table action-column safe spacing */
#page-reconciliation-ops .recon-table-v1539 th:nth-child(9),
#page-reconciliation-ops .recon-table-v1539 td:nth-child(9){
  width:104px!important;
  padding-left:10px!important;
  padding-right:20px!important;
  text-align:right!important;
  box-sizing:border-box!important;
}
#page-reconciliation-ops .recon-table-v1539 td:nth-child(9) .recon-detail-btn-v1539{
  margin-left:auto!important;
  margin-right:0!important;
  min-width:72px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
@media(max-width:1180px){
  #page-reconciliation-ops .recon-table-v1539 th:nth-child(9),
  #page-reconciliation-ops .recon-table-v1539 td:nth-child(9){
    width:100px!important;
    padding-right:16px!important;
  }
}

/* ===== [084] dtbox-v15-0-49-id-document-graph-css  (src lines 5011-5034) ===== */
.doc-page-head-v1549{align-items:flex-end!important}
.doc-head-badge-v1549{padding:8px 12px;border-radius:999px;border:1px solid #ddd7ff;background:#f5f2ff;color:#6655e9;font-size:9px;font-weight:900;white-space:nowrap}
.doc-architecture-note-v1549{margin:0 0 14px;padding:12px 14px;border:1px solid #e5e0fb;border-radius:14px;background:#faf9ff;color:#74798f;font-size:10px;line-height:1.6}
.doc-architecture-note-v1549 b{color:#4d5064}
.doc-kpi-grid-v1549{margin-bottom:16px!important}
.doc-smart-panel-v1549{overflow:hidden}
.doc-panel-head-v1549{align-items:center!important}
.doc-result-count-v1549{padding:7px 11px;border-radius:999px;background:#f4f1ff;border:1px solid #e3defb;color:#6556e9;font-size:10px;font-weight:850;white-space:nowrap}
.doc-filterbar-v1549{display:grid;grid-template-columns:minmax(240px,1.6fr) 150px 165px 180px auto;gap:10px;align-items:end;padding:13px 16px;border-bottom:1px solid #efedf5;background:#fcfbff}
.doc-filterbar-v1549 .field{gap:5px}.doc-filterbar-v1549 label{font-size:9px!important;text-transform:uppercase;letter-spacing:.05em;color:#9296aa!important}.doc-filterbar-v1549 input,.doc-filterbar-v1549 select{height:38px!important;min-height:38px!important;font-size:10px!important}.doc-clear-v1549{height:38px!important;min-height:38px!important;padding:0 13px!important}
.doc-table-v1549{min-width:1180px;table-layout:fixed}.doc-table-v1549 th,.doc-table-v1549 td{vertical-align:middle!important}.doc-table-v1549 th:nth-child(1){width:135px}.doc-table-v1549 th:nth-child(2){width:135px}.doc-table-v1549 th:nth-child(3){width:110px}.doc-table-v1549 th:nth-child(4){width:92px}.doc-table-v1549 th:nth-child(5){width:auto}.doc-table-v1549 th:nth-child(6){width:130px}.doc-table-v1549 th:nth-child(7){width:80px}.doc-table-v1549 th:nth-child(8){width:120px}.doc-table-v1549 th:nth-child(9){width:88px}
.doc-code-v1549{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:900;color:#5547d6;white-space:nowrap}.doc-code-v1549.source{color:#34384c}.doc-code-copy-v1549{width:22px;height:22px;border:0;border-radius:7px;background:#f2efff;color:#6655e9;font-size:9px;cursor:pointer}.doc-code-copy-v1549:hover{background:#e8e2ff}
.doc-type-chip-v1549{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f2f1f6;color:#6f7284;font-size:8px;font-weight:850;white-space:nowrap}.doc-type-chip-v1549.expense{background:#fff3ea;color:#c57942}.doc-type-chip-v1549.revenue{background:#eaf9f5;color:#188b7c}.doc-type-chip-v1549.cash{background:#efedff;color:#6554e9}
.doc-content-v1549{font-size:10.5px;font-weight:800;color:#33374b;line-height:1.4}.doc-content-v1549 small{display:block;margin-top:3px;color:#9599aa;font-size:8.7px;font-weight:600}.doc-file-count-v1549{font-size:11px;font-weight:900;color:#3c4054}.doc-status-v1549{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8.5px;font-weight:900;white-space:nowrap}.doc-status-v1549.organized{background:#eaf9f5;color:#168a73}.doc-status-v1549.classification{background:#fff6e8;color:#b8751f}.doc-status-v1549.missing{background:#fff0f2;color:#d85865}
.doc-open-btn-v1549{min-width:62px!important}

.doc-bundle-modal-v1549{width:min(1040px,94vw)!important}.doc-bundle-hero-v1549{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(145px,.7fr));gap:10px;margin-bottom:14px}.doc-hero-main-v1549,.doc-hero-mini-v1549{padding:13px 14px;border:1px solid #e9e5f4;border-radius:14px;background:#fff}.doc-hero-main-v1549{background:linear-gradient(135deg,#f8f6ff,#fff);border-color:#dfd9ff}.doc-hero-main-v1549 span,.doc-hero-mini-v1549 span{display:block;color:#9699aa;font-size:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:850}.doc-hero-main-v1549 b{display:block;margin-top:5px;font-size:18px;color:#5848df}.doc-hero-main-v1549 small{display:block;margin-top:5px;color:#777b90;font-size:9px;line-height:1.45}.doc-hero-mini-v1549 b{display:block;margin-top:5px;color:#34374a;font-size:10.5px;line-height:1.35}
.doc-section-v1549{margin-top:13px;border:1px solid #e9e6f1;border-radius:14px;background:#fff;overflow:hidden}.doc-section-head-v1549{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-bottom:1px solid #efedf5;background:#fcfbff}.doc-section-head-v1549 b{font-size:10px;color:#3d4053}.doc-section-head-v1549 span{font-size:8.5px;color:#989bad}.doc-rel-list-v1549{display:grid;gap:0}.doc-rel-row-v1549{display:grid;grid-template-columns:105px 130px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 13px;border-top:1px solid #f1eff5}.doc-rel-row-v1549:first-child{border-top:0}.doc-rel-kind-v1549{font-size:8px;font-weight:900;color:#8e92a5;text-transform:uppercase}.doc-rel-title-v1549{min-width:0;color:#4b4e61;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-rel-row-v1549 button{min-height:30px!important;padding:0 9px!important;font-size:8px!important}
.doc-file-table-v1549{width:100%;min-width:780px;table-layout:fixed}.doc-file-table-v1549 th:nth-child(1){width:115px}.doc-file-table-v1549 th:nth-child(2){width:190px}.doc-file-table-v1549 th:nth-child(3){width:auto}.doc-file-table-v1549 th:nth-child(4){width:90px}.doc-file-table-v1549 th:nth-child(5){width:120px}.doc-file-table-v1549 th:nth-child(6){width:80px}.doc-file-table-v1549 select{width:100%;height:32px;border:1px solid #e1deeb;border-radius:9px;background:#fff;padding:0 8px;font-size:8.7px}.doc-file-name-v1549{font-size:9.2px;font-weight:800;color:#3f4254;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-file-name-v1549 small{display:block;margin-top:3px;color:#999cad;font-size:7.8px;font-weight:600}.doc-file-open-v1549{min-height:30px!important;padding:0 9px!important;font-size:8px!important}
.entity-doc-strip-v1549{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;padding:10px 12px;border:1px solid #dfd9fb;border-radius:13px;background:#f8f6ff}.entity-doc-strip-v1549 .left{min-width:0}.entity-doc-strip-v1549 .eyebrow{font-size:7.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#8a83b2}.entity-doc-strip-v1549 .codes{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:4px}.entity-doc-strip-v1549 .codes b{font-size:9.5px;color:#383b4d}.entity-doc-strip-v1549 .codes span{color:#a2a4b2;font-size:9px}.entity-doc-strip-v1549 .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.entity-doc-strip-v1549 .actions button{min-height:30px!important;padding:0 9px!important;font-size:8px!important}
@media(max-width:1050px){.doc-filterbar-v1549{grid-template-columns:1fr 1fr}.doc-clear-v1549{justify-self:start}.doc-bundle-hero-v1549{grid-template-columns:1fr 1fr}.doc-hero-main-v1549{grid-column:1/-1}}
@media(max-width:700px){.doc-page-head-v1549{align-items:flex-start!important}.doc-head-badge-v1549{white-space:normal}.doc-filterbar-v1549,.doc-bundle-hero-v1549{grid-template-columns:1fr}.doc-hero-main-v1549{grid-column:auto}.doc-rel-row-v1549{grid-template-columns:1fr 1fr}.doc-rel-title-v1549{grid-column:1/-1}.entity-doc-strip-v1549{align-items:flex-start;flex-direction:column}.entity-doc-strip-v1549 .actions{justify-content:flex-start}}

/* ===== [085] dtbox-v15-0-50-document-bulk-classification-css  (src lines 5037-5096) ===== */
/* V15.0.50 — Document warehouse row selection + bulk classification */
.doc-bulkbar-v1550{
  display:none;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:11px 16px;
  border-bottom:1px solid #ebe8f4;
  background:linear-gradient(135deg,#f8f6ff,#fcfbff);
}
.doc-bulkbar-v1550.show{display:flex}
.doc-bulk-summary-v1550{display:flex;align-items:center;gap:8px;min-width:190px;margin-right:auto}
.doc-bulk-count-v1550{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:28px;padding:0 9px;border-radius:999px;background:#6656f4;color:#fff;font-size:9px;font-weight:900}
.doc-bulk-summary-v1550 b{display:block;font-size:9.5px;color:#383b4d}
.doc-bulk-summary-v1550 small{display:block;margin-top:2px;color:#9296aa;font-size:8px}
.doc-bulk-field-v1550{display:flex;align-items:center;gap:7px}
.doc-bulk-field-v1550 label{font-size:8.5px;font-weight:850;color:#6f7286;white-space:nowrap}
.doc-bulk-field-v1550 select{height:34px;min-width:170px;border:1px solid #dfdbea;border-radius:10px;background:#fff;padding:0 9px;font-size:9px;color:#45485b;outline:none}
.doc-bulk-overwrite-v1550{display:inline-flex;align-items:center;gap:6px;color:#777b90;font-size:8.5px;white-space:nowrap;cursor:pointer}
.doc-bulk-overwrite-v1550 input{width:15px;height:15px;accent-color:#6656f4}
.doc-bulk-apply-v1550{height:34px!important;min-height:34px!important;padding:0 13px!important;font-size:9px!important}
.doc-bulk-clear-v1550{height:34px!important;min-height:34px!important;padding:0 11px!important;font-size:9px!important}
.doc-select-cell-v1550{width:44px!important;text-align:center!important;padding-left:14px!important;padding-right:8px!important}
.doc-select-v1550{width:16px;height:16px;accent-color:#6656f4;cursor:pointer;vertical-align:middle}
.doc-row-selected-v1550 td{background:#faf8ff!important}
.doc-row-selected-v1550 td:first-child{box-shadow:inset 3px 0 0 #7665f5}
/* 10 columns after adding selection checkbox */
.doc-table-v1549{min-width:1260px!important}
.doc-table-v1549 th:nth-child(1){width:44px!important}
.doc-table-v1549 th:nth-child(2){width:135px!important}
.doc-table-v1549 th:nth-child(3){width:135px!important}
.doc-table-v1549 th:nth-child(4){width:110px!important}
.doc-table-v1549 th:nth-child(5){width:92px!important}
.doc-table-v1549 th:nth-child(6){width:auto!important}
.doc-table-v1549 th:nth-child(7){width:130px!important}
.doc-table-v1549 th:nth-child(8){width:70px!important}
.doc-table-v1549 th:nth-child(9){width:120px!important}
.doc-table-v1549 th:nth-child(10){width:112px!important}
.doc-table-v1549 th:last-child,.doc-table-v1549 td:last-child{padding-right:22px!important;text-align:right!important}
.doc-open-btn-v1549{
  min-width:78px!important;
  width:auto!important;
  padding-left:13px!important;
  padding-right:13px!important;
  white-space:nowrap!important;
  word-break:normal!important;
  line-height:1!important;
}
@media(max-width:900px){
  .doc-bulk-summary-v1550{width:100%;margin-right:0}
  .doc-bulkbar-v1550{align-items:flex-start}
}
@media(max-width:620px){
  .doc-bulk-field-v1550{width:100%;align-items:flex-start;flex-direction:column}
  .doc-bulk-field-v1550 select{width:100%}
  .doc-bulk-overwrite-v1550{width:100%}
  .doc-bulk-apply-v1550,.doc-bulk-clear-v1550{flex:1}
}

/* ===== [086] dtbox-v15-0-51-salary-package-ui  (src lines 5099-5155) ===== */
/* V15.0.51 — Salary Package popup aligned to Finance OS modal design system */
#salaryPackageModalV1502 .salary-package-modal-v1551{
  width:min(1040px,calc(100vw - 48px))!important;
  max-height:min(92vh,980px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
#salaryPackageModalV1502 .salary-package-head-v1551{align-items:flex-start!important;padding:20px 28px 18px!important}
#salaryPackageModalV1502 .salary-package-head-v1551 h3{margin:2px 0 0!important;font-size:18px!important;line-height:1.3!important}
#salaryPackageModalV1502 .salary-package-head-v1551 p{margin:6px 0 0;color:#8e92a5;font-size:10px;line-height:1.45}
.salary-modal-kicker-v1551{display:block;color:#6b59ed;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
#salaryPackageModalV1502 .salary-package-body-v1551{
  flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;
  padding:22px 28px 26px!important;background:#fbfaff!important;overscroll-behavior:contain
}
.salary-employee-card-v1551{
  position:relative;margin-bottom:14px;padding:14px 16px 14px 54px;border:1px solid #e4dffc;border-radius:16px;
  background:linear-gradient(135deg,#f8f6ff,#fff);color:#33364a;font-size:10px;line-height:1.5
}
.salary-employee-card-v1551:before{
  content:"NV";position:absolute;left:15px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:9px;
  display:grid;place-items:center;background:#e9e4ff;color:#6352e7;font-size:8px;font-weight:900
}
.salary-employee-card-v1551 b{font-size:11.5px;color:#2d3044}.salary-employee-card-v1551 br+*{color:#8e92a5}
.salary-form-section-v1551{margin-bottom:14px;padding:16px 17px 17px;border:1px solid #e8e5f1;border-radius:18px;background:#fff}
.salary-form-section-v1551:last-child{margin-bottom:0}
.salary-section-head-v1551{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #f0eef5}
.salary-section-head-v1551 b{display:block;color:#2e3145;font-size:11.5px}.salary-section-head-v1551 span:not(.salary-section-index-v1551){display:block;margin-top:3px;color:#989bad;font-size:8.7px;line-height:1.45}
.salary-section-index-v1551{flex:0 0 auto;display:inline-flex!important;align-items:center;justify-content:center;width:29px;height:29px;margin:0!important;border-radius:9px;background:#f0edff;color:#6754ee!important;font-size:8px!important;font-weight:900}
.salary-form-grid-v1551{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px}
.salary-form-grid-v1551 .field{min-width:0;margin:0!important}.salary-form-grid-v1551 .field.full{grid-column:1/-1}
.salary-form-grid-v1551 .field label,.salary-payment-fields-v1551 .field label{min-height:15px;margin-bottom:6px!important;color:#55596e;font-size:9px!important;font-weight:800}
.salary-form-grid-v1551 .field label em{color:#df626d;font-style:normal}
.salary-form-grid-v1551 input,.salary-form-grid-v1551 textarea,.salary-payment-fields-v1551 input,.salary-payment-fields-v1551 select{width:100%;min-height:43px;padding:10px 12px!important;border:1px solid #ddd9e9!important;border-radius:11px!important;background:#fdfdff!important;font-size:10.5px!important}
.salary-form-grid-v1551 textarea{min-height:70px;resize:vertical}
.salary-form-grid-v1551 .field small{margin-top:4px;color:#9b9eae;font-size:8px;line-height:1.4}
.salary-readonly-v1551{min-height:43px;display:flex;align-items:center;padding:10px 12px;border:1px dashed #ded9f3;border-radius:11px;background:#f8f6ff;color:#6554f2;font-size:11px;font-weight:850}
.salary-payment-grid-v1551{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.salary-payment-card-v1551{min-width:0;padding:13px;border:1px solid #ebe8f3;border-radius:15px;background:#fcfbfe}
.salary-payment-card-v1551.company{border-top:3px solid #6e61e8}.salary-payment-card-v1551.personal{border-top:3px solid #4aa9c5}.salary-payment-card-v1551.cash{border-top:3px solid #d7a85d}
.salary-payment-title-v1551{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.salary-payment-icon-v1551{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#f0edff;color:#6654e7;font-size:8px;font-weight:900}
.salary-payment-title-v1551 b{display:block;color:#393c50;font-size:9.7px}.salary-payment-title-v1551 small{display:block;margin-top:2px;color:#999cad;font-size:7.6px;line-height:1.35}
.salary-payment-fields-v1551{display:grid;gap:9px}.salary-payment-fields-v1551 .field{min-width:0;margin:0!important}
.salary-source-share-v1551{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:9px;border-top:1px solid #efedf4;color:#9699aa;font-size:8px}.salary-source-share-v1551 b{color:#4d5065;font-size:9px}
.salary-check-section-v1551{background:linear-gradient(180deg,#fbfaff,#f8f6ff);border-color:#ddd7ff}
.salary-check-grid-v1551{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.salary-check-grid-v1551>div{padding:11px 12px;border:1px solid #e6e2f4;border-radius:12px;background:#fff}.salary-check-grid-v1551 span{display:block;color:#989bad;font-size:7.8px}.salary-check-grid-v1551 b{display:block;margin-top:5px;color:#303347;font-size:11px;font-variant-numeric:tabular-nums}
.salary-check-grid-v1551 .difference b.good{color:#168a73}.salary-check-grid-v1551 .difference b.bad{color:#d85865}
.salary-balance-note-v1551{margin-top:10px;padding:10px 12px;border:1px solid #e4e0f3;border-radius:11px;background:#fff;color:#73778c;font-size:9px;line-height:1.5}.salary-balance-note-v1551.good{border-color:#d2eee4;background:#f3fbf8}.salary-balance-note-v1551.bad{border-color:#f1d4d8;background:#fff7f8}
#salaryPackageModalV1502 .salary-package-foot-v1551{flex:0 0 auto!important;padding:16px 28px 26px!important;gap:9px!important;background:#fbfaff!important}
#salaryPackageModalV1502 .salary-package-foot-v1551 .btn{min-height:44px!important;padding:0 18px!important}
@media(max-width:900px){.salary-payment-grid-v1551{grid-template-columns:1fr}.salary-form-grid-v1551{grid-template-columns:1fr}.salary-form-grid-v1551 .field.full{grid-column:auto}}
@media(max-width:620px){#salaryPackageModalV1502 .salary-package-modal-v1551{width:calc(100vw - 20px)!important}#salaryPackageModalV1502 .salary-package-head-v1551,#salaryPackageModalV1502 .salary-package-body-v1551{padding-left:14px!important;padding-right:14px!important}.salary-check-grid-v1551{grid-template-columns:1fr}#salaryPackageModalV1502 .salary-package-foot-v1551{padding:13px 14px 18px!important}#salaryPackageModalV1502 .salary-package-foot-v1551 .btn{flex:1 1 auto}}

/* ===== [087] dtbox-v15-0-52-payroll-rule-architecture  (src lines 5158-5173) ===== */
/* V15.0.52 — Payroll Rule Architecture / shadow engine */
#salaryPackageModalV1502 .salary-package-modal-v1551{width:min(1160px,calc(100vw - 36px))!important}
.payroll-shadow-banner-v1552{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;padding:12px 14px;border:1px solid #ddd7ff;border-radius:14px;background:linear-gradient(135deg,#f8f6ff,#fff)}
.payroll-shadow-banner-v1552 b{display:block;font-size:10.5px;color:#3b3e53}.payroll-shadow-banner-v1552 span{display:block;margin-top:3px;color:#8e92a5;font-size:8.8px;line-height:1.5}.payroll-shadow-chip-v1552{flex:0 0 auto;display:inline-flex;padding:6px 9px;border-radius:999px;background:#eeeaff;color:#6653ee;font-size:8px;font-weight:900;white-space:nowrap}
.salary-rule-grid-v1552{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.salary-rule-grid-v1552 .field{min-width:0}
.salary-rule-meta-v1552{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:2px}.salary-rule-meta-v1552>div{padding:10px 11px;border:1px solid #ece9f5;border-radius:12px;background:#faf9fe}.salary-rule-meta-v1552 span{display:block;color:#9699aa;font-size:7.8px}.salary-rule-meta-v1552 b{display:block;margin-top:4px;color:#34374a;font-size:9.5px;line-height:1.35}
.salary-component-toolbar-v1552{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.salary-component-toolbar-v1552 .copy b{display:block;font-size:10px;color:#3c3f53}.salary-component-toolbar-v1552 .copy span{display:block;margin-top:3px;color:#9497aa;font-size:8px}
.salary-component-table-v1552{border:1px solid #e9e6f1;border-radius:14px;overflow:hidden;background:#fff}.salary-component-head-v1552,.salary-component-row-v1552{display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(120px,.85fr) 132px 138px 72px 72px 34px;gap:8px;align-items:center;padding:9px 10px}.salary-component-head-v1552{background:#faf9fe;color:#9699aa;font-size:7.3px;font-weight:900;text-transform:uppercase;letter-spacing:.045em}.salary-component-row-v1552{border-top:1px solid #f0eef5}.salary-component-row-v1552 input,.salary-component-row-v1552 select{width:100%;min-width:0;height:36px;border:1px solid #e2dfeb;border-radius:9px;background:#fff;padding:0 9px;font-size:8.8px;color:#4c5064}.salary-component-row-v1552 .money-input{text-align:right;font-variant-numeric:tabular-nums}.salary-component-row-v1552 .toggle-cell{display:flex;justify-content:center}.salary-component-row-v1552 .toggle-cell input{width:16px;height:16px}.salary-component-remove-v1552{width:32px;height:32px;border:0;border-radius:9px;background:#fff0f3;color:#d65c69;font-weight:900;cursor:pointer}.salary-component-empty-v1552{padding:18px;color:#999cad;text-align:center;font-size:9px}
.salary-component-summary-v1552{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.salary-component-summary-v1552>div{padding:10px 11px;border:1px solid #ece9f5;border-radius:12px;background:#faf9fe}.salary-component-summary-v1552 span{display:block;color:#979aac;font-size:7.6px}.salary-component-summary-v1552 b{display:block;margin-top:4px;color:#34374a;font-size:10px}.salary-component-summary-v1552 .accent b{color:#6653ee}
.salary-insurance-grid-v1552{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.salary-insurance-card-v1552{padding:12px;border:1px solid #e9e6f1;border-radius:13px;background:#fff}.salary-insurance-card-v1552 span{display:block;color:#9598aa;font-size:7.7px}.salary-insurance-card-v1552 b{display:block;margin-top:5px;color:#303347;font-size:12px}.salary-insurance-card-v1552.employee b{color:#d16a48}.salary-insurance-card-v1552.employer b{color:#6553e7}.salary-insurance-card-v1552.total b{color:#168a73}.salary-insurance-note-v1552{margin-top:9px;padding:9px 10px;border-radius:11px;background:#f8f7fc;color:#85899c;font-size:8px;line-height:1.5}.salary-insurance-note-v1552 strong{color:#52566a}
.salary-preview-inputs-v1552{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:12px}.salary-preview-inputs-v1552 .field input{min-height:39px!important}.salary-preview-grid-v1552{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.salary-preview-metric-v1552{padding:10px 11px;border:1px solid #ebe8f3;border-radius:12px;background:#fff;min-width:0}.salary-preview-metric-v1552 span{display:block;color:#9699aa;font-size:7.4px;line-height:1.3}.salary-preview-metric-v1552 b{display:block;margin-top:5px;color:#34374a;font-size:10px;line-height:1.35;word-break:break-word}.salary-preview-metric-v1552.primary{border-color:#ddd7ff;background:#f8f6ff}.salary-preview-metric-v1552.primary b{color:#5f4fea}.salary-preview-foot-v1552{margin-top:10px;padding:9px 11px;border:1px dashed #ded9ef;border-radius:11px;color:#85899c;font-size:8px;line-height:1.5}.salary-preview-foot-v1552 b{color:#54586d}
.salary-engine-readonly-v1552{background:#f8f7fc!important;color:#6256d9!important;font-weight:850!important;cursor:not-allowed}.salary-manual-reason-v1552{display:none}.salary-manual-reason-v1552.show{display:grid}
@media(max-width:1050px){.salary-rule-grid-v1552{grid-template-columns:repeat(2,minmax(0,1fr))}.salary-rule-meta-v1552,.salary-component-summary-v1552,.salary-insurance-grid-v1552{grid-template-columns:repeat(2,minmax(0,1fr))}.salary-preview-inputs-v1552,.salary-preview-grid-v1552{grid-template-columns:repeat(3,minmax(0,1fr))}.salary-component-head-v1552{display:none}.salary-component-row-v1552{grid-template-columns:1fr 1fr}.salary-component-row-v1552 .toggle-cell{justify-content:flex-start}.salary-component-row-v1552 .toggle-cell:before{content:attr(data-label);margin-right:6px;color:#9699aa;font-size:7.5px;font-weight:800}.salary-component-remove-v1552{justify-self:end}}
@media(max-width:650px){.salary-rule-grid-v1552,.salary-rule-meta-v1552,.salary-component-summary-v1552,.salary-insurance-grid-v1552,.salary-preview-inputs-v1552,.salary-preview-grid-v1552{grid-template-columns:1fr}.salary-component-row-v1552{grid-template-columns:1fr}.salary-component-toolbar-v1552,.payroll-shadow-banner-v1552{align-items:flex-start;flex-direction:column}}

/* ===== [088] dtbox-v15-0-53-attendance-data-architecture-css  (src lines 5176-5194) ===== */
/* ==========================================================
   V15.0.53 — Attendance Data Architecture (Shadow Mode)
   Non-destructive: normalized attendance is preview-only and
   does not post into locked/current payroll automatically.
   ========================================================== */
.att-shadow-banner-v1553{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 15px;padding:13px 15px;border:1px solid #ddd7ff;border-radius:15px;background:linear-gradient(135deg,#f8f6ff,#fff)}
.att-shadow-banner-v1553 b{display:block;font-size:11px;color:#36394d}.att-shadow-banner-v1553 span{display:block;margin-top:4px;color:#8b8fa3;font-size:9px;line-height:1.55}.att-shadow-chip-v1553{flex:0 0 auto;display:inline-flex;padding:6px 9px;border-radius:999px;background:#eeeaff;color:#6653ee;font-size:8px;font-weight:900;white-space:nowrap}
.att-head-actions-v1553{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.att-head-actions-v1553 .field{min-width:150px}.att-head-actions-v1553 .field label{font-size:8px!important}.att-head-actions-v1553 input{height:40px!important}
.att-kpi-grid-v1553{margin-bottom:15px!important}.att-contract-v1553{margin-bottom:15px}.att-contract-grid-v1553{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.att-contract-item-v1553{padding:10px 11px;border:1px solid #ebe8f3;border-radius:12px;background:#fcfbff}.att-contract-item-v1553 span{display:block;color:#9699aa;font-size:7.7px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.att-contract-item-v1553 b{display:block;margin-top:5px;color:#393c50;font-size:9.2px;line-height:1.45}.att-contract-item-v1553 code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#6554e9;font-size:8.3px;word-break:break-word}
.att-contract-note-v1553{margin-top:10px;padding:10px 12px;border-radius:12px;background:#f8f7fc;color:#767b90;font-size:8.8px;line-height:1.55}.att-contract-note-v1553 b{color:#44485c}
.att-table-v1553{min-width:1240px;table-layout:fixed}.att-table-v1553 th,.att-table-v1553 td{vertical-align:middle!important}.att-table-v1553 th:nth-child(1){width:175px}.att-table-v1553 th:nth-child(2){width:105px}.att-table-v1553 th:nth-child(3){width:80px}.att-table-v1553 th:nth-child(4){width:82px}.att-table-v1553 th:nth-child(5){width:82px}.att-table-v1553 th:nth-child(6){width:82px}.att-table-v1553 th:nth-child(7),.att-table-v1553 th:nth-child(8),.att-table-v1553 th:nth-child(9){width:78px}.att-table-v1553 th:nth-child(10){width:110px}.att-table-v1553 th:nth-child(11){width:118px}.att-table-v1553 th:nth-child(12){width:90px}.att-employee-v1553 b{display:block;color:#34374b;font-size:10px}.att-employee-v1553 small{display:block;margin-top:3px;color:#9699aa;font-size:8px}.att-num-v1553{font-variant-numeric:tabular-nums;font-weight:800;color:#44485b;white-space:nowrap}.att-status-v1553{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:900;white-space:nowrap}.att-status-v1553.ready{background:#eaf9f5;color:#168a73}.att-status-v1553.review{background:#fff6e8;color:#b8751f}.att-status-v1553.empty{background:#f1f1f5;color:#86899a}.att-row-actions-v1553{display:flex;gap:5px;justify-content:flex-end}.att-row-actions-v1553 .btn{min-height:30px!important;padding:0 9px!important;font-size:8px!important;white-space:nowrap!important}
.att-import-meta-v1553{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 15px;border-bottom:1px solid #efedf5;background:#fcfbff}.att-import-meta-v1553 span{color:#9296aa;font-size:8.5px}.att-import-meta-v1553 b{color:#45485b}
.att-detail-modal-v1553{width:min(1120px,94vw)!important}.att-detail-summary-v1553{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:13px}.att-detail-summary-v1553>div{padding:10px 11px;border:1px solid #e9e6f2;border-radius:12px;background:#fff}.att-detail-summary-v1553 span{display:block;color:#9699aa;font-size:7.5px}.att-detail-summary-v1553 b{display:block;margin-top:4px;color:#34374b;font-size:10px}.att-detail-table-v1553{min-width:980px;table-layout:fixed}.att-detail-table-v1553 th,.att-detail-table-v1553 td{font-size:9px!important}.att-detail-table-v1553 th:nth-child(1){width:92px}.att-detail-table-v1553 th:nth-child(2){width:105px}.att-detail-table-v1553 th:nth-child(3){width:105px}.att-detail-table-v1553 th:nth-child(4){width:90px}.att-detail-table-v1553 th:nth-child(5),.att-detail-table-v1553 th:nth-child(6){width:90px}.att-detail-table-v1553 th:nth-child(7),.att-detail-table-v1553 th:nth-child(8),.att-detail-table-v1553 th:nth-child(9){width:82px}.att-detail-table-v1553 th:nth-child(10){width:auto}
.att-preview-bridge-v1553{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 12px;border:1px solid #ded9fb;border-radius:13px;background:#f8f6ff}.att-preview-bridge-v1553 .copy b{display:block;color:#474a60;font-size:9.5px}.att-preview-bridge-v1553 .copy span{display:block;margin-top:3px;color:#8e92a5;font-size:8.3px;line-height:1.45}.att-preview-bridge-v1553 .btn{flex:0 0 auto;min-height:34px!important;padding:0 11px!important;font-size:8.5px!important}
.att-source-health-v1553{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.att-source-pill-v1553{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f1efff;color:#6655e9;font-size:7.5px;font-weight:850}
@media(max-width:1050px){.att-contract-grid-v1553{grid-template-columns:repeat(2,1fr)}.att-detail-summary-v1553{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.att-shadow-banner-v1553,.att-preview-bridge-v1553{align-items:flex-start;flex-direction:column}.att-head-actions-v1553{width:100%}.att-head-actions-v1553 .field,.att-head-actions-v1553 .btn{width:100%}.att-contract-grid-v1553,.att-detail-summary-v1553{grid-template-columns:1fr}.att-preview-bridge-v1553 .btn{width:100%}}

/* ===== [089] dtbox-v15-0-56-payroll-detail-css  (src lines 5197-5228) ===== */
/* V15.0.56 — Payroll detail + 4-insured demo assumption */
#page-payroll .payroll-assumption-v1556{
  margin:0 0 14px;padding:11px 13px;border:1px solid #e3ddff;border-radius:13px;
  background:linear-gradient(135deg,#f7f5ff,#fff);color:#6e7190;font-size:9.5px;line-height:1.55
}
#page-payroll .payroll-assumption-v1556 b{color:#5749cc}
#page-payroll .payroll-action-cell-v1556{width:104px;min-width:104px;text-align:right;padding-right:20px!important}
#page-payroll .payroll-detail-btn-v1556{white-space:nowrap;min-width:72px;height:34px;padding:0 12px!important}
#page-payroll .table-wrap table{min-width:1435px!important}

#payrollDetailModalV1556 .modal{width:min(920px,94vw)!important;max-height:92vh!important}
#payrollDetailModalV1556 .modal-body{background:#fcfbff!important}
.payroll-detail-hero-v1556{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;padding:15px 16px;border:1px solid #e5e1f5;border-radius:16px;background:linear-gradient(135deg,#f7f5ff,#fff)}
.payroll-detail-hero-v1556 .eyebrow{font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#6b59ed}
.payroll-detail-hero-v1556 h4{margin:5px 0 0;font-size:18px;color:#292b3e}
.payroll-detail-hero-v1556 p{margin:5px 0 0;color:#8d91a5;font-size:9.5px}
.payroll-detail-status-v1556{display:inline-flex;padding:6px 9px;border-radius:999px;background:#efecff;color:#6653ee;font-size:8px;font-weight:900;white-space:nowrap}
.payroll-detail-grid-v1556{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.payroll-detail-metric-v1556{padding:12px 13px;border:1px solid #e9e6f2;border-radius:13px;background:#fff}
.payroll-detail-metric-v1556 span{display:block;color:#9699aa;font-size:8px;font-weight:750}
.payroll-detail-metric-v1556 b{display:block;margin-top:5px;color:#303347;font-size:13px;font-variant-numeric:tabular-nums}
.payroll-detail-metric-v1556.deduct b{color:#d16a48}.payroll-detail-metric-v1556.net{border-color:#d9d2ff;background:#f8f6ff}.payroll-detail-metric-v1556.net b{color:#168a73}.payroll-detail-metric-v1556.cost b{color:#6553e7}
.payroll-detail-section-v1556{margin-top:12px;padding:14px 15px;border:1px solid #e9e6f2;border-radius:15px;background:#fff}
.payroll-detail-section-v1556 h5{margin:0 0 10px;color:#3b3e52;font-size:10px;text-transform:uppercase;letter-spacing:.07em}
.payroll-detail-line-v1556{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:8px 0;border-bottom:1px solid #f0eef5;font-size:9.5px;color:#6f7387}
.payroll-detail-line-v1556:last-child{border-bottom:0}
.payroll-detail-line-v1556 b{color:#383b4e;font-variant-numeric:tabular-nums}.payroll-detail-line-v1556.minus b{color:#d16a48}.payroll-detail-line-v1556.plus b{color:#168a73}.payroll-detail-line-v1556.total{padding-top:10px;font-size:10.5px}.payroll-detail-line-v1556.total b{font-size:12px}
.payroll-detail-note-v1556{margin-top:12px;padding:10px 12px;border:1px solid #e3ddff;border-radius:12px;background:#f8f6ff;color:#777b90;font-size:8.8px;line-height:1.55}
.payroll-detail-note-v1556 b{color:#5749cc}
@media(max-width:720px){.payroll-detail-grid-v1556{grid-template-columns:1fr}.payroll-detail-hero-v1556{flex-direction:column}.payroll-detail-line-v1556{grid-template-columns:1fr}}

/* ===== [090] dtbox-v15-0-57-payroll-payslip-css  (src lines 5231-5255) ===== */
/* V15.0.57 — Payroll payslip detail, paid stamp & PDF archive */
#payrollPayslipModalV1557{z-index:1580!important}
#payrollPayslipModalV1557 .modal{width:min(1040px,calc(100vw - 36px))!important;max-height:92vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
#payrollPayslipModalV1557 .modal-head{flex:0 0 auto!important}
#payrollPayslipModalV1557 .modal-body{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;background:#fbfaff!important;padding:20px 24px!important}
#payrollPayslipModalV1557 .modal-foot{flex:0 0 auto!important;padding:16px 28px 24px!important;gap:9px!important;flex-wrap:wrap!important}
.payroll-slip-v1557{border:1px solid #e4e0ef;border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 8px 28px rgba(51,43,92,.045)}
.payroll-slip-head-v1557{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 18px;background:linear-gradient(135deg,#faf9ff,#f4f1ff);border-bottom:1px solid #ebe8f4}
.payroll-slip-brand-v1557{font-size:8px;font-weight:950;letter-spacing:.13em;text-transform:uppercase;color:#6958ee}.payroll-slip-head-v1557 h4{margin:5px 0 0;font-size:22px;color:#252739}.payroll-slip-head-v1557 p{margin:6px 0 0;color:#8e92a4;font-size:9.5px;line-height:1.5}
.payroll-slip-code-v1557{padding:7px 10px;border:1px solid #ddd7fa;border-radius:999px;background:#fff;color:#6252dc;font-size:8px;font-weight:900;white-space:nowrap}
.payroll-paid-stamp-v1557{position:absolute;right:26px;bottom:16px;padding:7px 14px;border:2px solid #1b9a75;border-radius:9px;color:#168b6d;font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;transform:rotate(-5deg);background:rgba(236,250,245,.84)}
.payroll-slip-identity-v1557{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px 24px;border-bottom:1px solid #efedf5}.payroll-slip-idcell-v1557{padding:10px 11px;border-radius:12px;background:#faf9fc}.payroll-slip-idcell-v1557 span{display:block;color:#979aaa;font-size:7.8px}.payroll-slip-idcell-v1557 b{display:block;margin-top:4px;color:#303347;font-size:10px;line-height:1.35}
.payroll-slip-metrics-v1557{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:18px 24px}.payroll-slip-metric-v1557{padding:13px;border:1px solid #ebe8f3;border-radius:14px}.payroll-slip-metric-v1557 span{display:block;color:#9296a8;font-size:8px}.payroll-slip-metric-v1557 b{display:block;margin-top:6px;color:#292c3e;font-size:15px;font-variant-numeric:tabular-nums}.payroll-slip-metric-v1557.deduct b{color:#d26b4c}.payroll-slip-metric-v1557.net{border-color:#d8d1ff;background:#f8f6ff}.payroll-slip-metric-v1557.net b{color:#168a73}
.payroll-slip-breakdown-v1557{padding:0 24px 18px}.payroll-slip-breakdown-v1557 h5,.payroll-slip-payment-v1557 h5{margin:0 0 8px;font-size:9px;color:#46495d;text-transform:uppercase;letter-spacing:.08em}.payroll-slip-line-v1557{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:9px 2px;border-bottom:1px solid #f0eef5;font-size:9.5px;color:#73778a}.payroll-slip-line-v1557 b{color:#373a4d;font-variant-numeric:tabular-nums}.payroll-slip-line-v1557.minus b{color:#d16a4a}.payroll-slip-line-v1557.total{font-size:10.5px;font-weight:850}.payroll-slip-line-v1557.total b{font-size:12px}
.payroll-slip-payment-v1557{margin:0 24px 18px;padding:14px 15px;border:1px solid #e6e2f2;border-radius:14px;background:#fcfbff}.payroll-slip-payment-grid-v1557{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.payroll-slip-payment-grid-v1557>div{padding:9px 10px;border-radius:11px;background:#fff;border:1px solid #efedf5}.payroll-slip-payment-grid-v1557 span{display:block;color:#979aaa;font-size:7.5px}.payroll-slip-payment-grid-v1557 b{display:block;margin-top:4px;color:#35384b;font-size:9.5px}
.payroll-slip-sign-v1557{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:10px 24px 28px}.payroll-sign-box-v1557{text-align:center;color:#6f7386;font-size:8.5px}.payroll-sign-line-v1557{height:62px;margin-top:7px;border-bottom:1px dashed #cbc7d9}.payroll-sign-box-v1557 b{display:block;margin-top:8px;color:#3c3f52;font-size:9px}
.payroll-slip-note-v1557{margin:0 24px 18px;padding:10px 12px;border-radius:12px;background:#fff8eb;border:1px solid #f2dfb8;color:#8d6826;font-size:8.5px;line-height:1.55}
.payroll-paid-btn-v1557{background:linear-gradient(135deg,#35b899,#209e80)!important;color:#fff!important;box-shadow:0 8px 18px rgba(32,158,128,.18)!important}.payroll-paid-btn-v1557[disabled]{opacity:.62!important;cursor:default!important;transform:none!important}
.payroll-archive-v1557{margin-top:16px}.payroll-archive-code-v1557{font-weight:900;color:#6353e8;white-space:nowrap}.payroll-archive-status-v1557{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eaf9f5;color:#168a73;font-size:8px;font-weight:900;white-space:nowrap}.payroll-archive-actions-v1557{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
#page-payroll .payroll-action-cell-v1557,#page-payroll .payroll-action-head-v1557{width:116px!important;min-width:116px!important;padding-right:20px!important;text-align:right!important}#page-payroll .payroll-detail-btn-v1557{white-space:nowrap!important;min-width:82px!important}
#page-payroll tr.payroll-item-paid-v1557 td{background:#fbfffd!important}#page-payroll tr.payroll-item-paid-v1557 .payroll-adjust-input{background:#f3f4f6!important;color:#979aaa!important;pointer-events:none!important}
@media(max-width:800px){.payroll-slip-identity-v1557,.payroll-slip-metrics-v1557{grid-template-columns:repeat(2,1fr)}.payroll-slip-payment-grid-v1557{grid-template-columns:1fr}.payroll-slip-sign-v1557{grid-template-columns:1fr}.payroll-sign-line-v1557{height:38px}}
@media(max-width:560px){#payrollPayslipModalV1557 .modal-body{padding:14px!important}.payroll-slip-identity-v1557,.payroll-slip-metrics-v1557{grid-template-columns:1fr}.payroll-slip-head-v1557{flex-direction:column}.payroll-paid-stamp-v1557{position:static;align-self:flex-start;margin-top:8px}.payroll-slip-code-v1557{white-space:normal}}

/* ===== [091] dtbox-v15-0-58-payroll-detail-locked-fix  (src lines 5258-5263) ===== */
/* V15.0.58 — Payroll Detail works in Draft / Locked / Paid periods. */
#page-payroll .payroll-detail-btn-v1557{pointer-events:auto!important;cursor:pointer!important;position:relative!important;z-index:2!important}
#payrollPayslipModalV1557{z-index:1320!important}
#payrollPayslipModalV1557 .modal{position:relative!important;z-index:1321!important}

/* ===== [092] dtbox-v15-0-67-attendance-action-spacing-fix  (src lines 5266-5333) ===== */
/* V15.0.67 — Attendance status/action spacing */
#page-attendance .att-table-v1553{
  min-width:1360px!important;
}
#page-attendance .att-table-v1553 th:nth-child(11){
  width:158px!important;
  min-width:158px!important;
  padding-left:16px!important;
  padding-right:16px!important;
}
#page-attendance .att-table-v1553 th:nth-child(12){
  width:196px!important;
  min-width:196px!important;
  padding-left:14px!important;
  padding-right:22px!important;
}
#page-attendance .att-table-v1553 td:nth-child(11){
  width:158px!important;
  min-width:158px!important;
  padding-left:16px!important;
  padding-right:16px!important;
}
#page-attendance .att-table-v1553 td:nth-child(12){
  width:196px!important;
  min-width:196px!important;
  padding-left:14px!important;
  padding-right:22px!important;
}
#page-attendance .att-status-v1553{
  min-height:30px!important;
  padding:0 11px!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1.15!important;
}
#page-attendance .att-row-actions-v1553{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex-wrap:nowrap!important;
  width:100%!important;
}
#page-attendance .att-row-actions-v1553 .btn{
  flex:0 0 auto!important;
  min-height:34px!important;
  padding:0 12px!important;
  font-size:8.5px!important;
  white-space:nowrap!important;
  margin:0!important;
}
#page-attendance .att-row-actions-v1553 .btn.btn-secondary{
  min-width:72px!important;
}
#page-attendance .att-row-actions-v1553 .btn.btn-primary{
  min-width:78px!important;
}
/* Give the status/action boundary a visual breathing zone without changing the table design. */
#page-attendance .att-table-v1553 td:nth-child(12),
#page-attendance .att-table-v1553 th:nth-child(12){
  border-left:1px solid #f0edf7;
}
@media(max-width:760px){
  #page-attendance .att-table-v1553{min-width:1320px!important}
  #page-attendance .att-row-actions-v1553{gap:8px!important}
}

/* ===== [093] dtbox-v15-0-74-ops-center-css  (src lines 5336-5372) ===== */
/* V15.0.74 — Finance Operations Center V2 */
#page-ops-center{padding-bottom:34px}
.ops-head-v1574{align-items:flex-start}
.ops-eyebrow-v1574{font-size:8.5px;font-weight:950;letter-spacing:.16em;color:#6c58f6;margin-bottom:5px}
.ops-head-chips-v1574{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.ops-head-chip-v1574{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:#f0edff;color:#6552ed;font-size:8.5px;font-weight:900;white-space:nowrap}
.ops-head-chip-v1574.muted{background:#f7f6fb;color:#8d90a1}
.ops-action-grid-v1574{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:16px}
.ops-action-card-v1574{position:relative;min-width:0;padding:15px 15px 13px;border:1px solid #ebe8f3;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(57,48,101,.025)}
.ops-action-card-v1574:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ops-tone,#8b7cf8)}
.ops-action-card-v1574:after{content:"";position:absolute;width:66px;height:66px;border-radius:50%;right:-27px;top:-28px;background:var(--ops-soft,#f2efff);opacity:.9}
.ops-action-card-v1574.tone-orange{--ops-tone:#ff9f6e;--ops-soft:#fff1e9}.ops-action-card-v1574.tone-purple{--ops-tone:#8b72eb;--ops-soft:#f0edff}.ops-action-card-v1574.tone-red{--ops-tone:#ef7c88;--ops-soft:#fff0f2}.ops-action-card-v1574.tone-rose{--ops-tone:#e66a9e;--ops-soft:#fff0f7}.ops-action-card-v1574.tone-blue{--ops-tone:#7f8cff;--ops-soft:#f0f2ff}.ops-action-card-v1574.tone-amber{--ops-tone:#e7a53c;--ops-soft:#fff6e8}
.ops-action-top-v1574{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#777b8d;font-size:8.8px;font-weight:900}
.ops-action-dot-v1574{width:7px;height:7px;border-radius:50%;background:var(--ops-tone,#8b7cf8);box-shadow:0 0 0 4px var(--ops-soft,#f2efff)}
.ops-action-value-v1574{position:relative;z-index:1;margin-top:8px;color:#242737;font-size:25px;line-height:1;font-weight:950;letter-spacing:-.035em}
.ops-action-hint-v1574{position:relative;z-index:1;margin-top:8px;min-height:25px;color:#a0a3b1;font-size:8px;line-height:1.45;font-weight:650}
.ops-action-link-v1574{position:relative;z-index:1;border:0;background:transparent;padding:5px 0 0;color:#6856ef;font-size:8px;font-weight:900;cursor:pointer}
.ops-action-link-v1574:hover{text-decoration:underline}
.ops-primary-grid-v1574{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.95fr);gap:16px;margin-bottom:16px}
.ops-bottom-grid-v1574{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:16px;margin-top:16px}
.ops-panel-v1574{overflow:hidden}.ops-panel-head-v1574{min-height:74px;align-items:center}.ops-panel-body-v1574{padding:14px 16px 16px!important}
.ops-panel-count-v1574{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;background:#f3f1ff;color:#6653ee;font-size:8.5px;font-weight:900;white-space:nowrap}.ops-panel-count-v1574.warning{background:#fff5e7;color:#b8751f}
.ops-task-list-v1574,.ops-control-list-v1574,.ops-exception-list-v1574,.ops-deadline-list-v1574{display:grid;gap:9px}
.ops-task-v1574{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 12px;border:1px solid #ebe9f2;border-radius:14px;background:#fff}
.ops-task-v1574 .rail{width:8px;height:38px;border-radius:999px;background:#d9d7e3}.ops-task-v1574.urgent .rail{background:#ee7a86}.ops-task-v1574.action .rail{background:#e6a23d}.ops-task-v1574.monitor .rail{background:#8b7cf8}
.ops-task-main-v1574{min-width:0}.ops-task-title-v1574{display:flex;align-items:center;gap:7px;min-width:0}.ops-task-title-v1574 b{color:#343749;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-priority-v1574{display:inline-flex;align-items:center;min-height:21px;padding:0 7px;border-radius:999px;font-size:7.5px;font-weight:950;white-space:nowrap}.ops-priority-v1574.urgent{background:#fff0f2;color:#d85865}.ops-priority-v1574.action{background:#fff6e7;color:#b8751f}.ops-priority-v1574.monitor{background:#f1eeff;color:#6653ee}
.ops-task-meta-v1574{margin-top:4px;color:#9699a9;font-size:8.2px;line-height:1.45}.ops-task-side-v1574{display:flex;align-items:center;gap:10px}.ops-task-amount-v1574{text-align:right;color:#3d4051;font-size:9px;font-weight:900;white-space:nowrap}.ops-open-btn-v1574{min-width:49px;height:29px;border:1px solid #dcd7fb;border-radius:10px;background:#faf9ff;color:#6653ee;font-size:8px;font-weight:900;cursor:pointer}.ops-open-btn-v1574:hover{background:#f1eeff}
.ops-control-v1574{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid #ebe9f2;border-radius:14px;background:#fff}.ops-control-main-v1574{min-width:0}.ops-control-title-v1574{display:flex;align-items:center;gap:7px}.ops-control-title-v1574 b{font-size:9px;color:#343749}.ops-control-meta-v1574{margin-top:4px;color:#9a9dac;font-size:7.9px;line-height:1.45}.ops-control-side-v1574{display:flex;align-items:center;gap:7px}.ops-health-v1574{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:7.5px;font-weight:950;white-space:nowrap}.ops-health-v1574.good{background:#eaf9f5;color:#168a73}.ops-health-v1574.warn{background:#fff6e7;color:#b8751f}.ops-health-v1574.bad{background:#fff0f2;color:#d85865}.ops-health-v1574.info{background:#f1eeff;color:#6653ee}
.ops-exception-panel-v1574{margin-top:0}.ops-exception-v1574{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #efeaf0;border-radius:13px;background:#fff}.ops-exception-icon-v1574{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:#fff4e6;color:#b8751f;font-size:12px;font-weight:950}.ops-exception-v1574.bad .ops-exception-icon-v1574{background:#fff0f2;color:#d85865}.ops-exception-copy-v1574 b{display:block;color:#393c4d;font-size:8.9px}.ops-exception-copy-v1574 span{display:block;margin-top:3px;color:#999cac;font-size:7.8px;line-height:1.45}
.ops-deadline-v1574{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 11px;border-bottom:1px solid #efedf4}.ops-deadline-v1574:last-child{border-bottom:0}.ops-deadline-date-v1574{display:grid;place-items:center;padding:7px 4px;border-radius:11px;background:#f7f6fb;color:#46495a}.ops-deadline-date-v1574 b{font-size:13px;line-height:1}.ops-deadline-date-v1574 span{margin-top:3px;font-size:7px;color:#979aaa;font-weight:800}.ops-deadline-copy-v1574 b{display:block;color:#343748;font-size:8.8px}.ops-deadline-copy-v1574 span{display:block;margin-top:3px;color:#999cac;font-size:7.8px;line-height:1.4}.ops-deadline-amount-v1574{color:#3e4152;font-size:8.7px;font-weight:900;text-align:right;white-space:nowrap}
.ops-closing-grid-v1574{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ops-closing-item-v1574{padding:11px;border:1px solid #eceaf2;border-radius:13px;background:#fff}.ops-closing-label-v1574{color:#989baa;font-size:7.8px;font-weight:800}.ops-closing-main-v1574{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:7px}.ops-closing-main-v1574 b{font-size:14px;color:#323547}.ops-closing-main-v1574 span{font-size:7.5px;font-weight:900;text-align:right}.ops-closing-main-v1574 span.good{color:#168a73}.ops-closing-main-v1574 span.warn{color:#b8751f}.ops-closing-main-v1574 span.bad{color:#d85865}.ops-closing-sub-v1574{margin-top:5px;color:#a0a3b0;font-size:7.4px;line-height:1.4}
.ops-close-badge-v1574{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;background:#f3f1ff;color:#6653ee;font-size:8px;font-weight:950;white-space:nowrap}.ops-close-badge-v1574.good{background:#eaf9f5;color:#168a73}.ops-close-badge-v1574.warn{background:#fff6e7;color:#b8751f}
.ops-empty-v1574{padding:26px 12px;text-align:center;border:1px dashed #e1deeb;border-radius:14px;color:#999cac;font-size:8.5px;line-height:1.6;background:#fcfbff}.ops-empty-v1574 b{display:block;margin-bottom:3px;color:#4a4d60;font-size:9.5px}
@media(max-width:1350px){.ops-action-grid-v1574{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-primary-grid-v1574,.ops-bottom-grid-v1574{grid-template-columns:1fr}}
@media(max-width:760px){.ops-action-grid-v1574{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-closing-grid-v1574{grid-template-columns:1fr}.ops-task-v1574{grid-template-columns:7px minmax(0,1fr)}.ops-task-side-v1574{grid-column:2;justify-content:flex-start}.ops-head-chips-v1574{justify-content:flex-start}.ops-deadline-v1574{grid-template-columns:50px minmax(0,1fr)}.ops-deadline-amount-v1574{grid-column:2;text-align:left}}

/* ===== [094] dtbox-v15-0-77-meta-nested-modal-zindex-fix  (src lines 5375-5401) ===== */
/* V15.0.77 — Meta Integration modals can be launched from Settings.
   Settings sits at z-index 1000, so Meta child dialogs must live above it. */
#metaConfigModalV1576,
#metaSyncHistoryModalV1576,
#metaApiContractModalV1576,
#metaCsvPreviewModalV1576,
#metaSpendDetailModalV1576{
  z-index:1420!important;
}
#metaConfigModalV1576 > .modal,
#metaSyncHistoryModalV1576 > .modal,
#metaApiContractModalV1576 > .modal,
#metaCsvPreviewModalV1576 > .modal,
#metaSpendDetailModalV1576 > .modal{
  position:relative!important;
  z-index:1421!important;
}
/* Keep the parent Settings visible as context while the Meta child modal is open. */
#settingsModal.show ~ #metaConfigModalV1576.show,
#settingsModal.show ~ #metaSyncHistoryModalV1576.show,
#settingsModal.show ~ #metaApiContractModalV1576.show,
#settingsModal.show ~ #metaCsvPreviewModalV1576.show,
#settingsModal.show ~ #metaSpendDetailModalV1576.show{
  background:rgba(26,24,48,.30)!important;
}

/* ===== [095] v1580-sidebar-collapse-flow-fix  (src lines 5403-5422) ===== */
/* V15.0.80 — Sidebar collapsed groups must leave the normal document flow.
   A later legacy rule forces .nav-group-items-v1506 to max-height:520px!important;
   this override intentionally only applies while the group is collapsed. */
.collapsible-nav-group-v1506.is-collapsed .nav-group-items-v1506{
  max-height:0!important;
  height:0!important;
  min-height:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  opacity:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
.collapsible-nav-group-v1506.is-collapsed{
  min-height:0!important;
}

/* ===== [096] dtbox-v15-0-45-modal-safe-area  (src lines 18709-18800) ===== */
/*
   Fix action buttons appearing too close to modal edges.
   Applied globally so reconciliation, expense, debt, settings and all future
   modal footers inherit the same visual safe area.
*/
.modal-foot,
.expense-detail-modal-v1516 .modal-foot,
#debtForecastModalV1536 .modal-foot,
#settingsModal .modal-foot,
#reconciliationModal .modal-foot{
  box-sizing:border-box !important;
  width:100% !important;
  min-height:70px !important;
  padding:15px 30px 18px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  flex-wrap:wrap !important;
  background:#fbfaff !important;
  border-top:1px solid var(--ui-line-soft,#efedf5) !important;
}

/* Reconciliation is a primary operational action: give it slightly more breathing room. */
#reconciliationModal .modal-foot{
  padding-left:32px !important;
  padding-right:32px !important;
  padding-bottom:20px !important;
}

/* Keep buttons comfortably inside the safe area and prevent accidental stretching/overflow. */
.modal-foot > .btn,
.modal-foot > button,
.expense-detail-modal-v1516 .modal-foot > .btn,
#debtForecastModalV1536 .modal-foot > .btn,
#reconciliationModal .modal-foot > .btn{
  flex:0 0 auto !important;
  margin:0 !important;
  max-width:100% !important;
}

/* Footer may sit below a scrollable body. Keep the body scrollbar from visually colliding
   with controls and preserve the same right-hand inset as the footer. */
.modal-body,
.expense-detail-modal-v1516 .modal-body,
#debtForecastModalV1536 .modal-body,
#reconciliationModal .modal-body{
  scrollbar-gutter:stable;
}

/* Prevent custom inline action rows inside modal bodies from touching card/modal edges. */
.modal-body .exp-action-row,
.modal-body .cloud-sync-actions-v141,
.modal-body .hr-income-actions-v1503,
.modal-body .annual-actions,
.modal-body .settings-compact-actions,
.modal-body .partner-setting-actions,
.modal-body .user-card-actions-v14{
  padding-right:2px;
}

/* Tablet / mobile: retain safe inset without wasting scarce width. */
@media(max-width:760px){
  .modal-foot,
  .expense-detail-modal-v1516 .modal-foot,
  #debtForecastModalV1536 .modal-foot,
  #settingsModal .modal-foot,
  #reconciliationModal .modal-foot{
    min-height:64px !important;
    padding:13px 18px 16px !important;
    gap:8px !important;
  }
  #reconciliationModal .modal-foot{
    padding-left:18px !important;
    padding-right:18px !important;
  }
}

@media(max-width:520px){
  /* On narrow phones, actions remain inset and can wrap rather than overflow the viewport. */
  .modal-foot,
  #reconciliationModal .modal-foot{
    justify-content:stretch !important;
  }
  .modal-foot > .btn,
  .modal-foot > button,
  #reconciliationModal .modal-foot > .btn{
    flex:1 1 auto !important;
  }
}

/* ===== [097] dtbox-v15-0-47-global-ui-audit  (src lines 18811-19056) ===== */
/* ============================================================
   V15.0.47 — Global UI Audit Pass
   - Canonical modal geometry and safe-area
   - Revenue + reconciliation footer fix
   - Header/body/footer collision prevention
   - Modal control typography/alignment normalization
   - Responsive action wrapping
   Presentation only: no finance/business logic changes.
   ============================================================ */

/* All controls use the same UI font metrics. */
.modal,
.modal button,
.modal input,
.modal select,
.modal textarea{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
  font-synthesis:none;
}

/* Modal canvas: leave breathing room around rounded corners on every viewport. */
.modal-backdrop{
  box-sizing:border-box!important;
  padding:clamp(12px,2.4vh,26px)!important;
  overflow:hidden!important;
}

/* One canonical modal shell. Every modal becomes a three-zone flex layout.
   Viewer modals without a footer simply let the body consume the remaining space. */
.modal-backdrop > .modal{
  display:flex!important;
  flex-direction:column!important;
  width:min(720px,100%)!important;
  max-width:100%!important;
  max-height:calc(100dvh - clamp(24px,4.8vh,52px))!important;
  min-height:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.modal-backdrop > .modal.wide{width:min(1180px,100%)!important}
.modal-backdrop > .modal.expense-analytics-modal-v1512{width:min(1080px,95vw)!important}
.modal-backdrop > .modal.exp-request-modal-v1504{width:min(1000px,95vw)!important}
.modal-backdrop > .modal.expense-detail-modal-v1516{width:min(930px,94vw)!important}
.modal-backdrop > .modal.hr-profile-modal-v1503{width:min(980px,94vw)!important}
.modal-backdrop > .modal.kpi-detail-modal{width:min(820px,calc(100vw - 28px))!important}
.modal-backdrop > .modal.recon-modal-v1539{width:min(900px,100%)!important}

/* Header must never collide with the close control. */
.modal > .modal-head{
  flex:0 0 auto!important;
  min-height:74px!important;
  padding:19px 28px 18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  box-sizing:border-box!important;
}
.modal > .modal-head > :first-child{min-width:0!important}
.modal > .modal-head h3{
  margin:0!important;
  font-size:17px!important;
  line-height:1.3!important;
  font-weight:850!important;
  letter-spacing:-.25px!important;
  overflow-wrap:anywhere;
}
.modal > .modal-head p{
  margin:5px 0 0!important;
  font-size:11px!important;
  line-height:1.5!important;
}
.modal > .modal-head .x{
  flex:0 0 38px!important;
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  margin:0!important;
  padding:0!important;
  align-self:center!important;
  line-height:1!important;
}

/* Body owns all scrolling; footer no longer gets pushed against / below the shell. */
.modal > .modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  box-sizing:border-box!important;
  padding:22px 28px 26px!important;
}
.modal > .modal-body > *{max-width:100%;box-sizing:border-box}
.modal .form-grid,
.modal .settings-grid,
.modal .ops-form-grid-v1504,
.modal .hr-form-grid-v1503,
.modal .exp-action-form-grid-v1516{
  min-width:0!important;
}
.modal .field{min-width:0!important}

/* Canonical action safe-area. Bottom padding is intentionally larger than top padding:
   buttons visually float inside the rounded modal instead of touching its lower edge. */
.modal > .modal-foot{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:5!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-height:84px!important;
  padding:16px 28px 26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  background:#fbfaff!important;
  border-top:1px solid var(--ui-line-soft,#efedf5)!important;
  box-shadow:0 -7px 20px rgba(48,43,91,.018)!important;
}
.modal > .modal-foot > .btn,
.modal > .modal-foot > button{
  flex:0 0 auto!important;
  min-height:44px!important;
  height:auto!important;
  margin:0!important;
  padding:0 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:12px!important;
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:780!important;
  white-space:nowrap!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* Primary problem screens: give a touch more bottom breathing room. */
#revenueModal > .modal > .modal-foot,
#reconciliationModal > .modal > .modal-foot{
  padding-bottom:28px!important;
}

/* Long-form modal controls: normalize sizes without changing compact analytics widgets. */
#revenueModal .field > label,
#reconciliationModal .field > label,
#cashModal .field > label,
#adSpendModal .field > label,
#adTopupModal .field > label,
#forecastModal .field > label,
#realizeModal .field > label{
  font-size:11px!important;
  line-height:1.35!important;
}
#revenueModal .field input,
#revenueModal .field select,
#reconciliationModal .field input,
#reconciliationModal .field select,
#cashModal .field input,
#cashModal .field select,
#adSpendModal .field input,
#adSpendModal .field select,
#adTopupModal .field input,
#adTopupModal .field select,
#forecastModal .field input,
#forecastModal .field select,
#realizeModal .field input,
#realizeModal .field select{
  min-height:44px!important;
  font-size:12px!important;
}
#revenueModal .field textarea,
#reconciliationModal .field textarea,
#cashModal .field textarea,
#adSpendModal .field textarea,
#adTopupModal .field textarea,
#forecastModal .field textarea,
#realizeModal .field textarea{
  font-size:12px!important;
  line-height:1.55!important;
}

/* Prevent button/action groups inside scrollable bodies from colliding or overflowing. */
.modal .exp-action-row,
.modal .cloud-sync-actions-v141,
.modal .hr-income-actions-v1503,
.modal .annual-actions,
.modal .settings-compact-actions,
.modal .partner-setting-actions,
.modal .user-card-actions-v14,
.modal .exp-action-panel-v1516 .exp-action-row{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  max-width:100%!important;
}
.modal img,.modal svg,.modal canvas{max-width:100%}

/* Keep scrollbars visually separated from content. */
.modal > .modal-body::-webkit-scrollbar{width:10px}
.modal > .modal-body::-webkit-scrollbar-track{background:#f4f2f8;border-radius:999px}
.modal > .modal-body::-webkit-scrollbar-thumb{background:#c8c2d8;border-radius:999px;border:2px solid #f4f2f8}
.modal > .modal-body::-webkit-scrollbar-thumb:hover{background:#aaa2c2}

/* Tablet */
@media(max-width:760px){
  .modal-backdrop{padding:10px!important}
  .modal-backdrop > .modal{
    max-height:calc(100dvh - 20px)!important;
    width:100%!important;
  }
  .modal > .modal-head{padding:16px 18px 15px!important;min-height:66px!important}
  .modal > .modal-head h3{font-size:16px!important}
  .modal > .modal-body{padding:18px 18px 22px!important}
  .modal > .modal-foot,
  #revenueModal > .modal > .modal-foot,
  #reconciliationModal > .modal > .modal-foot{
    min-height:74px!important;
    padding:14px 18px 20px!important;
    gap:8px!important;
  }
  .modal > .modal-foot > .btn,
  .modal > .modal-foot > button{
    min-height:42px!important;
    padding:0 14px!important;
    font-size:11px!important;
  }
}

/* Phone: wrap actions instead of clipping / stacking on top of each other. */
@media(max-width:520px){
  .modal > .modal-foot{justify-content:stretch!important}
  .modal > .modal-foot > .btn,
  .modal > .modal-foot > button{flex:1 1 135px!important}
  #reconciliationModal > .modal > .modal-foot > .btn{flex:1 1 100%!important}
}

/* ===== [098] dtbox-v15-0-54-attendance-preview-fix-css  (src lines 19461-19473) ===== */
/* V15.0.54 — Attendance -> Payroll Preview navigation fix */
#page-attendance .att-row-actions-v1553 .btn.btn-primary:disabled,
#attendanceDetailModalV1553 #attendanceDetailPreviewBtnV1553:disabled{
  opacity:1!important;
  filter:none!important;
}
.salary-preview-focus-v1554{
  outline:2px solid rgba(102,86,244,.28);
  box-shadow:0 0 0 6px rgba(102,86,244,.07)!important;
  transition:outline-color .25s ease,box-shadow .25s ease;
}

/* ===== [099] dtbox-v15-0-55-insurance-netpay-fix  (src lines 19589-19609) ===== */
/* V15.0.55 — Employee insurance deduction must reduce employee take-home pay. */
.payroll-insurance-strip-v1555{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;
  margin:0 0 14px;padding:12px;border:1px solid #e7e2fb;border-radius:16px;background:#faf9ff
}
.payroll-insurance-metric-v1555{padding:11px 12px;border:1px solid #ece8f6;border-radius:13px;background:#fff}
.payroll-insurance-metric-v1555 span{display:block;color:#9699aa;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.payroll-insurance-metric-v1555 b{display:block;margin-top:5px;color:#303347;font-size:12px;font-variant-numeric:tabular-nums}
.payroll-insurance-metric-v1555.employee b{color:#d16a48}.payroll-insurance-metric-v1555.net b{color:#168a73}.payroll-insurance-metric-v1555.employer b{color:#6553e7}.payroll-insurance-metric-v1555.cost b{color:#34374a}
.payroll-insurance-note-v1555{grid-column:1/-1;padding:9px 10px;border-radius:11px;background:#f4f1ff;color:#74788d;font-size:8.5px;line-height:1.5}
.payroll-insurance-note-v1555 b{color:#5147b8}
#page-payroll .table-wrap table{min-width:1320px}
#page-payroll .payroll-net-v1555{font-weight:900;color:#168a73}
#page-payroll .payroll-deduction-v1555{font-weight:850;color:#d16a48}
.payslip-insurance-note-v1555{margin:0 24px 20px;padding:10px 12px;border:1px solid #e6e1fb;border-radius:12px;background:#faf9ff;color:#74788d;font-size:8.5px;line-height:1.5}
.salary-preview-formula-v1555{margin-top:9px;padding:9px 10px;border:1px solid #e6e1fb;border-radius:11px;background:#faf9ff;color:#73778d;font-size:8.4px;line-height:1.5}
.salary-preview-formula-v1555 b{color:#5147b8}
@media(max-width:900px){.payroll-insurance-strip-v1555{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.payroll-insurance-strip-v1555{grid-template-columns:1fr}.payslip-insurance-note-v1555{margin-left:16px;margin-right:16px}}

/* ===== [100] dtbox-v15-0-59-legal-payslip-css  (src lines 20010-20065) ===== */
/* V15.0.59 — Legal payslip redesign */
#payrollPayslipModalV1557 .modal-body{background:#f7f6fb!important}
.payroll-slip-v1557.legal{display:flex;flex-direction:column;gap:16px}
.payroll-legal-card-v1559{background:#fff;border:1px solid #e7e2f4;border-radius:20px;box-shadow:0 10px 28px rgba(60,55,102,.06);overflow:hidden}
.payroll-legal-head-v1559{display:flex;justify-content:space-between;gap:20px;padding:22px 24px;background:linear-gradient(135deg,#faf9ff,#f3f0ff);border-bottom:1px solid #ebe7f7;position:relative}
.payroll-legal-head-v1559:after{content:'';position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:rgba(109,90,236,.07)}
.payroll-legal-brand-v1559{position:relative;z-index:1}
.payroll-legal-brand-v1559 .eyebrow{font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#6857ee}
.payroll-legal-brand-v1559 h4{margin:6px 0 4px;font-size:24px;color:#232536}
.payroll-legal-brand-v1559 p{margin:0;color:#7e8398;font-size:11px;line-height:1.55;max-width:560px}
.payroll-legal-docmeta-v1559{display:grid;grid-template-columns:1fr;gap:8px;min-width:250px;position:relative;z-index:1}
.payroll-legal-chip-v1559{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #ddd6fb;border-radius:14px;background:#fff;font-size:10px;color:#6f7386}
.payroll-legal-chip-v1559 b{color:#33374a;font-size:11px}
.payroll-legal-chip-v1559.status b{color:#168a73}
.payroll-paid-stamp-v1557{position:absolute;right:24px;bottom:20px;transform:rotate(-8deg);background:rgba(22,138,115,.09);border:2px solid rgba(22,138,115,.55);color:#168a73;border-radius:999px;padding:8px 14px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;z-index:2}
.payroll-legal-grid-v1559{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px 24px 0}
.payroll-legal-block-v1559{border:1px solid #ede8f8;border-radius:16px;background:#fff;padding:14px 15px}
.payroll-legal-block-v1559 h5{margin:0 0 10px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#666a7f}
.payroll-legal-list-v1559{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.payroll-legal-list-v1559 .cell{padding:10px 11px;border-radius:12px;background:#faf9fd}
.payroll-legal-list-v1559 .cell span{display:block;color:#8d92a7;font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.payroll-legal-list-v1559 .cell b{display:block;margin-top:5px;color:#303448;font-size:11px;line-height:1.45}
.payroll-legal-att-v1559{padding:0 24px}
.payroll-legal-attgrid-v1559{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.payroll-legal-stat-v1559{padding:12px;border:1px solid #ece7f6;border-radius:14px;background:#fff}
.payroll-legal-stat-v1559 span{display:block;color:#8f94a8;font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.payroll-legal-stat-v1559 b{display:block;margin-top:6px;font-size:16px;color:#2f3346}
.payroll-legal-sections-v1559{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;padding:0 24px 20px}
.payroll-legal-tablewrap-v1559{border:1px solid #ebe6f5;border-radius:16px;overflow:hidden;background:#fff}
.payroll-legal-tablewrap-v1559 h5{margin:0;padding:14px 16px;background:#fbfaff;border-bottom:1px solid #efeaf8;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#55596e}
.payroll-legal-table-v1559{width:100%;border-collapse:collapse}
.payroll-legal-table-v1559 th,.payroll-legal-table-v1559 td{padding:11px 16px;border-bottom:1px solid #f1edf7;font-size:10px;color:#5e6377;vertical-align:top}
.payroll-legal-table-v1559 th{font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;color:#8c91a5;background:#fff;text-align:left}
.payroll-legal-table-v1559 td:last-child,.payroll-legal-table-v1559 th:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.payroll-legal-table-v1559 tr:last-child td{border-bottom:none}
.payroll-legal-table-v1559 .total td{font-weight:900;color:#2d3144;background:#fcfbff}
.payroll-legal-table-v1559 .minus td:last-child{color:#d16a48;font-weight:800}
.payroll-legal-table-v1559 .plus td:last-child{color:#168a73;font-weight:800}
.payroll-legal-summary-v1559{padding:0 24px 18px}
.payroll-legal-sumgrid-v1559{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.payroll-legal-sum-v1559{padding:14px 15px;border:1px solid #ece7f6;border-radius:16px;background:#fff}
.payroll-legal-sum-v1559 span{display:block;color:#8f94a8;font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.payroll-legal-sum-v1559 b{display:block;margin-top:7px;font-size:18px;color:#303448}
.payroll-legal-sum-v1559.net{background:#f8f6ff;border-color:#d6cffd}.payroll-legal-sum-v1559.net b{color:#168a73}
.payroll-legal-note-v1559{margin:0 24px 18px;padding:12px 14px;border:1px dashed #d8d1f7;border-radius:14px;background:#fbfaff;color:#787d91;font-size:9px;line-height:1.6}
.payroll-legal-note-v1559 b{color:#5547c7}
.payroll-legal-sign-v1559{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0 24px 24px}
.payroll-legal-signbox-v1559{padding:14px 12px 10px;border:1px solid #eee9f7;border-radius:16px;background:#fff;text-align:center}
.payroll-legal-signbox-v1559 b{display:block;color:#313547;font-size:10px}
.payroll-legal-signline-v1559{height:72px;border-bottom:1px dashed #bbb5cf;margin:12px 0 10px}
.payroll-legal-signbox-v1559 small{display:block;color:#8d92a7;font-size:8.5px;line-height:1.45}
.payroll-legal-foot-v1559{padding:14px 24px 20px;border-top:1px solid #efeaf8;background:#fbfaff;color:#8b90a3;font-size:8.8px;line-height:1.6}
@media(max-width:860px){.payroll-legal-grid-v1559,.payroll-legal-sections-v1559,.payroll-legal-sign-v1559{grid-template-columns:1fr}.payroll-legal-attgrid-v1559,.payroll-legal-sumgrid-v1559{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-legal-list-v1559{grid-template-columns:1fr}.payroll-legal-head-v1559{flex-direction:column}.payroll-legal-docmeta-v1559{min-width:0}}
@media(max-width:560px){.payroll-legal-attgrid-v1559,.payroll-legal-sumgrid-v1559{grid-template-columns:1fr}.payroll-legal-grid-v1559,.payroll-legal-att-v1559,.payroll-legal-sections-v1559,.payroll-legal-summary-v1559,.payroll-legal-sign-v1559{padding-left:14px;padding-right:14px}.payroll-legal-head-v1559{padding:18px}.payroll-paid-stamp-v1557{position:static;transform:none;display:inline-flex;align-self:flex-start;margin-top:8px}}

/* ===== [101] dtbox-v15-0-61-payslip-compliance-css  (src lines 20073-20076) ===== */
.salary-insurance-compliance-v1561{display:none;margin-top:10px;padding:11px 12px;border:1px solid #f0d2a9;border-radius:13px;background:#fff8ec;color:#855d22;font-size:8.7px;line-height:1.55}.salary-insurance-compliance-v1561.show{display:block}.salary-insurance-compliance-v1561 strong{color:#70480e}.salary-insurance-compliance-v1561.good{border-color:#cceadf;background:#f1fbf7;color:#347664}.salary-insurance-compliance-v1561.good strong{color:#1d6b58}
.payroll-employee-facing-note-v1561{margin:0 24px 18px;padding:11px 13px;border-radius:13px;background:#f8f7fc;color:#7a7f92;font-size:8.8px;line-height:1.55}.payroll-employee-facing-note-v1561 b{color:#55596c}.payroll-legal-table-v1559 .zero td:last-child{color:#9a9daf}.payroll-legal-sumgrid-v1559.v1561{grid-template-columns:repeat(3,minmax(0,1fr))}.payroll-legal-words-v1561{margin-top:10px;padding:10px 12px;border:1px solid #ece7f6;border-radius:12px;background:#fff;color:#686d81;font-size:9.2px}.payroll-legal-words-v1561 b{color:#303448}

/* ===== [102] dtbox-v15-0-62-income-catalog-legal-payslip-css  (src lines 20079-20096) ===== */
/* V15.0.62 — Income component catalog, legal entity & paid watermark */
.payroll-legal-card-v1559{position:relative!important}
.payroll-company-legal-v1562{margin-top:8px!important;max-width:680px!important;font-size:9.5px!important;line-height:1.6!important;color:#777c90!important}
.payroll-company-legal-v1562 b{color:#3b3e52;font-size:10px}
.payroll-paid-stamp-v1557{display:none!important}
.payroll-paid-watermark-v1562{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%) rotate(-13deg);z-index:6;pointer-events:none;opacity:.075;display:flex;align-items:center;justify-content:center;width:min(72%,680px);height:170px;border:7px solid #168a73;border-radius:38px;color:#168a73;text-align:center}
.payroll-paid-watermark-v1562 span{font-size:54px;font-weight:950;letter-spacing:.07em;white-space:nowrap}
.salary-catalog-v1562{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:10px 0 12px;padding:12px 13px;border:1px solid #dfdaf6;border-radius:14px;background:#faf9ff}
.salary-catalog-v1562 .copy b{display:block;font-size:9.5px;color:#44485c}.salary-catalog-v1562 .copy span{display:block;margin-top:3px;font-size:8px;color:#8f93a6;line-height:1.45}
.salary-catalog-control-v1562{display:flex;gap:8px;align-items:center;min-width:0}.salary-catalog-control-v1562 select{height:38px;min-width:290px;max-width:520px;border:1px solid #ded9ee;border-radius:10px;background:#fff;padding:0 10px;font-size:9px;color:#4b4f63}
.salary-catalog-legend-v1562{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;padding-top:2px}.salary-catalog-pill-v1562{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;font-size:7.7px;font-weight:800}.salary-catalog-pill-v1562.include{background:#edf9f5;color:#168a73}.salary-catalog-pill-v1562.exclude{background:#f1efff;color:#6454e8}.salary-catalog-pill-v1562.review{background:#fff5e7;color:#b36d11}
.salary-component-name-v1562{min-width:0}.salary-component-name-v1562 input{display:block}.salary-component-policy-v1562{display:flex;align-items:center;gap:5px;margin-top:4px;min-height:14px;font-size:7px;font-weight:750;line-height:1.3}.salary-component-policy-v1562.include{color:#168a73}.salary-component-policy-v1562.exclude{color:#6454e8}.salary-component-policy-v1562.review{color:#b36d11}.salary-component-policy-v1562.manual{color:#8e92a4}
.salary-insurance-compliance-v1561.high{border-color:#efb7bd!important;background:#fff1f3!important;color:#a64150!important}.salary-insurance-compliance-v1561.high strong{color:#8d2636!important}
.salary-compliance-reason-v1562{display:none;margin-top:10px;padding:11px 12px;border:1px solid #efc2c7;border-radius:13px;background:#fff6f7}.salary-compliance-reason-v1562.show{display:block}.salary-compliance-reason-v1562 label{display:block;margin-bottom:6px;font-size:8px;font-weight:850;color:#7f3540}.salary-compliance-reason-v1562 input{width:100%;height:38px;border:1px solid #e4dfe9;border-radius:10px;padding:0 10px;font-size:9px}
@media(max-width:1050px){.salary-component-name-v1562{grid-column:1/-1}.salary-catalog-v1562{grid-template-columns:1fr}.salary-catalog-control-v1562{flex-wrap:wrap}.salary-catalog-control-v1562 select{min-width:0;flex:1 1 240px}}
@media(max-width:650px){.payroll-paid-watermark-v1562{width:78%;height:120px}.payroll-paid-watermark-v1562 span{font-size:30px}.salary-catalog-control-v1562{align-items:stretch;flex-direction:column}.salary-catalog-control-v1562 select,.salary-catalog-control-v1562 .btn{width:100%}}

/* ===== [103] dtbox-v15-0-63-pit-engine-css  (src lines 20171-20185) ===== */
/* V15.0.63 — PIT / Tax Profile Engine */
.salary-tax-section-v1563{position:relative}
.salary-tax-banner-v1563{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;padding:11px 13px;border:1px solid #ded8ff;border-radius:14px;background:#faf8ff}
.salary-tax-banner-v1563 b{display:block;color:#4f43c7;font-size:9.5px}.salary-tax-banner-v1563 span{display:block;margin-top:4px;color:#858a9e;font-size:8.5px;line-height:1.5}.salary-tax-chip-v1563{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#ede9ff;color:#604ff0;font-size:8px;font-weight:900;white-space:nowrap}
.salary-tax-grid-v1563{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.salary-tax-grid-v1563 .field.full{grid-column:1/-1}
.salary-tax-summary-v1563{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.salary-tax-metric-v1563{padding:11px 12px;border:1px solid #e9e5f5;border-radius:13px;background:#fff}.salary-tax-metric-v1563 span{display:block;color:#9297aa;font-size:7.8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.salary-tax-metric-v1563 b{display:block;margin-top:5px;color:#303448;font-size:11px;font-variant-numeric:tabular-nums}.salary-tax-metric-v1563.tax b{color:#d16a48}.salary-tax-metric-v1563.net{background:#f8f6ff;border-color:#d9d1ff}.salary-tax-metric-v1563.net b{color:#168a73}
.salary-tax-note-v1563{margin-top:10px;padding:10px 12px;border:1px dashed #dcd6f6;border-radius:12px;background:#fcfbff;color:#777c91;font-size:8.4px;line-height:1.55}.salary-tax-note-v1563 b{color:#5549c7}.salary-tax-note-v1563.warn{border-color:#f1d4a8;background:#fff9ef;color:#93651e}.salary-tax-note-v1563.danger{border-color:#efc4ca;background:#fff6f7;color:#91424d}
.salary-tax-breakdown-v1563{margin-top:9px;display:flex;flex-wrap:wrap;gap:6px}.salary-tax-breakdown-v1563 span{padding:5px 8px;border-radius:999px;background:#f3f1fa;color:#72778d;font-size:7.8px;font-weight:750}
.payroll-pit-v1563{font-weight:850;color:#d16a48!important}.payroll-net-v1563{font-weight:900;color:#168a73!important}.payroll-pit-metric-v1563 b{color:#d16a48!important}
#page-payroll .table-wrap table{min-width:1430px}
.salary-preview-pit-v1563 b{color:#d16a48!important}.salary-preview-taxable-v1563 b{color:#6553e7!important}
@media(max-width:1050px){.salary-tax-grid-v1563,.salary-tax-summary-v1563{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.salary-tax-grid-v1563,.salary-tax-summary-v1563{grid-template-columns:1fr}.salary-tax-banner-v1563{flex-direction:column}.salary-tax-chip-v1563{align-self:flex-start}}

/* ===== [104] dtbox-v15-0-64-five-employee-demo-css  (src lines 20300-20305) ===== */
.payroll-demo-panel-v1564{margin:0 0 16px;border:1px solid #ddd6fb;border-radius:18px;background:linear-gradient(135deg,#fbfaff,#f5f2ff);overflow:hidden}
.payroll-demo-head-v1564{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid #e8e3f7}.payroll-demo-head-v1564 b{display:block;color:#343748;font-size:12px}.payroll-demo-head-v1564 span{display:block;margin-top:4px;color:#898da0;font-size:9px;line-height:1.5}.payroll-demo-badge-v1564{padding:6px 9px;border-radius:999px;background:#ece8ff;color:#6653e7;font-weight:900;font-size:8px;white-space:nowrap}
.payroll-demo-grid-v1564{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:14px 16px}.payroll-demo-card-v1564{padding:12px;border:1px solid #eae6f4;border-radius:14px;background:#fff}.payroll-demo-card-v1564 .name{font-size:10px;font-weight:900;color:#303347}.payroll-demo-card-v1564 .role{margin-top:3px;font-size:8px;color:#9296a8}.payroll-demo-card-v1564 .row{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:8.5px;color:#777b8d}.payroll-demo-card-v1564 .row b{font-size:8.5px;color:#303347}.payroll-demo-card-v1564 .pit{color:#d16a48!important}.payroll-demo-card-v1564 .zero{color:#168a73!important}.payroll-demo-card-v1564 .review{color:#9a6b18!important}
@media(max-width:1100px){.payroll-demo-grid-v1564{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.payroll-demo-grid-v1564{grid-template-columns:1fr}.payroll-demo-head-v1564{flex-direction:column}}

/* ===== [105] dtbox-v15-0-65-payroll-workqueue-css  (src lines 20371-20385) ===== */
/* V15.0.65 — explicit money breakdown + unpaid work queue */
.payroll-break-card-v1565{overflow:hidden!important}
.payroll-break-head-v1565{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:16px;padding:10px 16px;background:#faf9fe;border-bottom:1px solid #ece8f5;color:#8c91a5;font-size:8.5px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.payroll-break-head-v1565 b{text-align:right;color:#8c91a5}
.payroll-break-list-v1565{display:flex;flex-direction:column}
.payroll-break-row-v1565{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:16px;min-height:54px;padding:10px 16px;border-bottom:1px solid #f0edf6;background:#fff}
.payroll-break-row-v1565:last-child{border-bottom:0}
.payroll-break-label-v1565{min-width:0}.payroll-break-label-v1565 b{display:block;color:#4f5469;font-size:10px;line-height:1.35}.payroll-break-label-v1565 span{display:block;margin-top:3px;color:#969aae;font-size:8.3px;line-height:1.35}
.payroll-break-money-v1565{display:block;min-width:130px;text-align:right;white-space:nowrap;font-size:11px;color:#303448;font-variant-numeric:tabular-nums}
.payroll-break-row-v1565.minus .payroll-break-money-v1565{color:#d16a48}.payroll-break-row-v1565.plus .payroll-break-money-v1565{color:#168a73}.payroll-break-row-v1565.zero .payroll-break-money-v1565{color:#8f94a7}.payroll-break-row-v1565.total{background:#fbfaff}.payroll-break-row-v1565.total .payroll-break-label-v1565 b,.payroll-break-row-v1565.total .payroll-break-money-v1565{font-weight:900;font-size:11.5px}
.payroll-workqueue-badge-v1565{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:6px 10px;border-radius:999px;background:#f2efff;color:#6654e8;font-size:9px;font-weight:850;white-space:nowrap}
.payroll-workqueue-note-v1565{color:#8b90a3!important}.payroll-workqueue-note-v1565 b{color:#5d6175}
@media(max-width:700px){.payroll-break-head-v1565,.payroll-break-row-v1565{grid-template-columns:minmax(0,1fr) 115px;gap:10px;padding-left:12px;padding-right:12px}.payroll-break-money-v1565{min-width:100px;font-size:10px}}

/* ===== [106] dtbox-v15-0-68-attendance-detail-only-css  (src lines 20428-20443) ===== */
/* V15.0.68 — Attendance is input-only; Detail is the only row action */
#page-attendance .att-table-v1553{min-width:1260px!important}
#page-attendance .att-table-v1553 th:nth-child(11),
#page-attendance .att-table-v1553 td:nth-child(11){width:142px!important;min-width:142px!important;padding-left:16px!important;padding-right:16px!important}
#page-attendance .att-table-v1553 th:nth-child(12),
#page-attendance .att-table-v1553 td:nth-child(12){width:118px!important;min-width:118px!important;padding-left:14px!important;padding-right:20px!important;border-left:1px solid #f0edf7}
#page-attendance .att-row-actions-v1553{justify-content:flex-end!important;gap:0!important}
#page-attendance .att-row-actions-v1553 .btn.btn-secondary{min-width:76px!important;min-height:34px!important}
#page-attendance .att-row-actions-v1553 .btn.btn-primary{display:none!important}
#attendanceDetailModalV1553 .modal-foot{justify-content:flex-end!important}
#attendanceDetailModalV1553 .att-detail-summary-v1553{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
#attendanceDetailModalV1553 .att-detail-summary-v1553>div{min-height:72px!important}
.att-detail-data-state-v1568{font-size:8px!important;line-height:1.35!important}
@media(max-width:760px){#attendanceDetailModalV1553 .att-detail-summary-v1553{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* ===== [107] dtbox-v15-0-69-attendance-detail-noscroll-css  (src lines 20491-20575) ===== */
/* V15.0.69 — Attendance detail stable action + fit table without horizontal scroll */
#page-attendance .att-table-wrap-v1569{
  overflow-x:hidden!important;
  width:100%!important;
}
#page-attendance .att-table-v1553{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
#page-attendance .att-table-v1553 th,
#page-attendance .att-table-v1553 td{
  min-width:0!important;
  width:auto!important;
  padding:12px 7px!important;
  overflow:hidden!important;
  text-overflow:ellipsis;
}
#page-attendance .att-table-v1553 th{
  font-size:8.5px!important;
  line-height:1.28!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
#page-attendance .att-table-v1553 td{
  font-size:9px!important;
}
/* Balanced column allocation: all 12 columns fit the panel. */
#page-attendance .att-table-v1553 th:nth-child(1),#page-attendance .att-table-v1553 td:nth-child(1){width:14%!important}
#page-attendance .att-table-v1553 th:nth-child(2),#page-attendance .att-table-v1553 td:nth-child(2){width:8%!important}
#page-attendance .att-table-v1553 th:nth-child(3),#page-attendance .att-table-v1553 td:nth-child(3){width:6.5%!important}
#page-attendance .att-table-v1553 th:nth-child(4),#page-attendance .att-table-v1553 td:nth-child(4){width:6.5%!important}
#page-attendance .att-table-v1553 th:nth-child(5),#page-attendance .att-table-v1553 td:nth-child(5){width:7.5%!important}
#page-attendance .att-table-v1553 th:nth-child(6),#page-attendance .att-table-v1553 td:nth-child(6){width:7.5%!important}
#page-attendance .att-table-v1553 th:nth-child(7),#page-attendance .att-table-v1553 td:nth-child(7){width:6%!important}
#page-attendance .att-table-v1553 th:nth-child(8),#page-attendance .att-table-v1553 td:nth-child(8){width:7%!important}
#page-attendance .att-table-v1553 th:nth-child(9),#page-attendance .att-table-v1553 td:nth-child(9){width:5.5%!important}
#page-attendance .att-table-v1553 th:nth-child(10),#page-attendance .att-table-v1553 td:nth-child(10){width:8%!important}
#page-attendance .att-table-v1553 th:nth-child(11),#page-attendance .att-table-v1553 td:nth-child(11){width:10%!important;padding-left:8px!important;padding-right:8px!important}
#page-attendance .att-table-v1553 th:nth-child(12),#page-attendance .att-table-v1553 td:nth-child(12){width:9.5%!important;padding-left:8px!important;padding-right:10px!important;border-left:1px solid #f0edf7}
#page-attendance .att-employee-v1553 b{font-size:9.5px!important;white-space:normal!important;line-height:1.3!important}
#page-attendance .att-employee-v1553 small{font-size:7.5px!important;white-space:normal!important}
#page-attendance .att-status-v1553{
  min-width:0!important;
  max-width:100%!important;
  min-height:28px!important;
  padding:0 8px!important;
  font-size:7.5px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
#page-attendance .att-row-actions-v1553{
  display:flex!important;
  width:100%!important;
  justify-content:center!important;
  align-items:center!important;
  gap:0!important;
}
#page-attendance .att-row-actions-v1553 .btn.btn-secondary{
  width:100%!important;
  max-width:86px!important;
  min-width:0!important;
  min-height:34px!important;
  padding:0 8px!important;
  font-size:8.5px!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}
#page-attendance .att-row-actions-v1553 .btn.btn-primary{display:none!important}
/* Detail modal: keep daily records readable; main page has no horizontal scrollbar. */
#attendanceDetailModalV1553 .modal{max-width:min(1120px,94vw)!important}
#attendanceDetailModalV1553 .att-detail-summary-v1553{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1100px){
 #page-attendance .att-table-v1553 th,#page-attendance .att-table-v1553 td{padding-left:5px!important;padding-right:5px!important;font-size:8px!important}
 #page-attendance .att-status-v1553{font-size:7px!important;padding:0 5px!important}
 #page-attendance .att-row-actions-v1553 .btn.btn-secondary{font-size:8px!important;padding:0 5px!important}
}
@media(max-width:760px){
 #page-attendance .att-table-wrap-v1569{overflow-x:auto!important}
 #page-attendance .att-table-v1553{min-width:1050px!important}
 #attendanceDetailModalV1553 .att-detail-summary-v1553{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* ===== [108] dtbox-v15-0-70-attendance-detail-controller-css  (src lines 20664-20671) ===== */
#page-attendance .att-table-v1553{width:100%!important;min-width:0!important;table-layout:fixed!important}
#page-attendance .att-table-v1553 th,#page-attendance .att-table-v1553 td{overflow:hidden;text-overflow:ellipsis}
#page-attendance .att-row-actions-v1553{display:flex!important;justify-content:center!important;align-items:center!important}
#page-attendance .att-row-actions-v1553 .btn{min-width:92px!important;white-space:nowrap!important}
.att-detail-warning-v1570{margin:0 0 12px;padding:10px 12px;border:1px solid #f0d8ae;border-radius:12px;background:#fff8ed;color:#96651f;font-size:9px;line-height:1.5}
.att-detail-warning-v1570 b{color:#825614}

/* ===== [109] dtbox-v15-0-71-attendance-direct-detail-css  (src lines 20760-20767) ===== */
#attendanceDetailModalV1553 .modal{max-width:min(1160px,95vw)!important}
#attendanceDetailModalV1553 .table-wrap{overflow:auto!important;max-height:430px!important;border:1px solid #ebe7f4;border-radius:14px}
#attendanceDetailModalV1553 .att-detail-table-v1553{min-width:980px}
.att-direct-meta-v1571{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.att-direct-pill-v1571{padding:7px 10px;border-radius:999px;background:#f5f3ff;border:1px solid #e3defb;color:#6255d7;font-size:9px;font-weight:800}
.att-direct-pill-v1571.warn{background:#fff7e9;border-color:#f3dfb7;color:#a56a19}

/* ===== [110] dtbox-v15-0-72-attendance-input-v2-css  (src lines 20850-20874) ===== */
/* V15.0.72 — Attendance Input V2 / read-only */
#page-attendance .att-head-actions-v1572{align-items:flex-end;gap:10px;flex-wrap:wrap}
#page-attendance .att-input-banner-v1572{border-color:#d9d3fb;background:linear-gradient(135deg,#fbfaff,#f5f3ff)}
#page-attendance .att-source-grid-v1572{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#page-attendance .att-source-card-v1572{border:1px solid #e9e5f4;border-radius:16px;padding:14px 15px;background:#fff;min-width:0}
#page-attendance .att-source-card-v1572 span{display:block;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#969aac}
#page-attendance .att-source-card-v1572 b{display:block;margin-top:6px;font-size:13px;color:#303448}
#page-attendance .att-source-card-v1572 small{display:block;margin-top:5px;font-size:8.5px;line-height:1.5;color:#8c90a3;word-break:break-word}
#page-attendance .att-contract-v1572 code{font-size:8px;white-space:normal;word-break:break-word}
#page-attendance .att-import-history-v1572 .table-wrap{max-height:280px;overflow-y:auto;overflow-x:hidden}
#page-attendance .att-import-history-v1572 table{width:100%;table-layout:fixed}
#page-attendance .att-import-history-v1572 th,#page-attendance .att-import-history-v1572 td{font-size:8.5px;padding:10px 12px;white-space:normal;word-break:break-word}
.att-readonly-foot-v1572{margin-right:auto;color:#777c90;font-size:9px;font-weight:700}
#attendanceDetailModalV1553 .att-direct-meta-v1571:after{content:'READ-ONLY';padding:7px 10px;border-radius:999px;background:#eefaf6;border:1px solid #d6f1e8;color:#168a73;font-size:9px;font-weight:900;letter-spacing:.06em}
.att-csv-modal-v1572{max-width:min(940px,94vw)!important}
.att-csv-kpis-v1572{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.att-csv-kpis-v1572>div{padding:13px 14px;border:1px solid #e8e3f4;border-radius:15px;background:#fff}
.att-csv-kpis-v1572 span{display:block;color:#9498aa;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.att-csv-kpis-v1572 b{display:block;margin-top:6px;font-size:18px;color:#303448}
.att-csv-note-v1572{font-size:9px;line-height:1.55;margin-bottom:14px}
.att-csv-preview-table-v1572{width:100%;table-layout:fixed}.att-csv-preview-table-v1572 th,.att-csv-preview-table-v1572 td{font-size:9px;padding:10px 12px;white-space:normal;word-break:break-word}
.att-csv-row-ok-v1572{color:#168a73;font-weight:800}.att-csv-row-warn-v1572{color:#a56a19;font-weight:800}.att-csv-row-bad-v1572{color:#d15c65;font-weight:800}
@media(max-width:1000px){#page-attendance .att-source-grid-v1572{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){#page-attendance .att-source-grid-v1572,.att-csv-kpis-v1572{grid-template-columns:1fr}}

/* ===== [111] dtbox-v15-0-75-payment-integration-css  (src lines 21113-21128) ===== */
/*
  Trusted DTBOX API events become Confirmed Cash immediately.
  Manual Cash keeps the existing Maker–Checker workflow.
*/
.cash-api-panel-v1575{margin:16px 0;border:1px solid #e8e4f7;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#fbfaff 100%);overflow:hidden;box-shadow:0 8px 24px rgba(58,48,105,.025)}
.cash-api-head-v1575{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;border-bottom:1px solid #efecf7}.cash-api-head-copy-v1575{min-width:0}.cash-api-eyebrow-v1575{font-size:8px;font-weight:950;letter-spacing:.14em;color:#6b59f4}.cash-api-head-v1575 h3{margin:4px 0 3px;font-size:14px;color:#2e3143}.cash-api-head-v1575 p{margin:0;color:#9296a8;font-size:8.5px;line-height:1.5}.cash-api-head-actions-v1575{display:flex;align-items:center;gap:7px;flex:0 0 auto}.cash-api-head-actions-v1575 .btn{min-height:34px!important;padding:0 11px!important;font-size:8px!important}
.cash-api-grid-v1575{display:grid;grid-template-columns:1.25fr repeat(3,minmax(0,1fr));gap:0}.cash-api-stat-v1575{padding:13px 16px;border-right:1px solid #efecf7;min-width:0}.cash-api-stat-v1575:last-child{border-right:0}.cash-api-stat-v1575 span{display:block;color:#9a9dad;font-size:7.6px;font-weight:800}.cash-api-stat-v1575 b{display:block;margin-top:6px;color:#333648;font-size:11px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cash-api-stat-v1575 small{display:block;margin-top:4px;color:#aaaebe;font-size:7.4px;line-height:1.35}.cash-api-stat-v1575 b.good{color:#168a73}.cash-api-stat-v1575 b.warn{color:#bd7b1f}.cash-api-stat-v1575 b.bad{color:#d85865}
.cash-system-confirm-v1575{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#eaf9f5;color:#168a73;font-size:8px;font-weight:900;white-space:nowrap}.cash-system-confirm-v1575:before{content:"✓";font-size:8px}.cash-api-source-v1575{display:inline-flex;flex-direction:column;gap:2px}.cash-api-source-v1575 b{font-size:8.3px;color:#5f50dc}.cash-api-source-v1575 small{font-size:7px;color:#999dac}.cash-api-readonly-v1575{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 10px;border:1px solid #dcd6f7;border-radius:10px;background:#f8f6ff;color:#6254db;font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap}
.payint-modal-v1575{max-width:960px}.payint-modal-v1575 .modal-body{padding:18px 22px 22px}.payint-summary-v1575{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.payint-summary-v1575>div{padding:11px 12px;border:1px solid #ebe8f5;border-radius:13px;background:#faf9fe}.payint-summary-v1575 span{display:block;color:#999daf;font-size:7.6px;font-weight:800}.payint-summary-v1575 b{display:block;margin-top:5px;color:#343749;font-size:10px}.payint-table-v1575{width:100%;table-layout:fixed}.payint-table-v1575 th,.payint-table-v1575 td{padding:9px 9px;font-size:8px;vertical-align:top}.payint-table-v1575 th{font-size:7px;color:#9a9daf;text-transform:uppercase;letter-spacing:.04em}.payint-table-v1575 th:nth-child(1){width:126px}.payint-table-v1575 th:nth-child(2){width:116px}.payint-table-v1575 th:nth-child(3){width:105px}.payint-table-v1575 th:nth-child(4){width:auto}.payint-table-v1575 th:nth-child(5){width:110px}.payint-status-v1575{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:7px;font-weight:900}.payint-status-v1575.processed{background:#eaf9f5;color:#168a73}.payint-status-v1575.duplicate{background:#f2f0ff;color:#6757e6}.payint-status-v1575.exception{background:#fff0f2;color:#d85865}
.payint-contract-v1575{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px}.payint-contract-card-v1575{padding:14px;border:1px solid #e9e6f4;border-radius:15px;background:#fff}.payint-contract-card-v1575 h4{margin:0 0 9px;color:#343749;font-size:10px}.payint-contract-card-v1575 p{margin:0 0 10px;color:#9296a7;font-size:8px;line-height:1.55}.payint-code-v1575{margin:0;padding:12px;border-radius:12px;background:#282b39;color:#f4f3ff;font:7.6px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word;max-height:330px;overflow:auto}.payint-field-list-v1575{display:grid;gap:6px}.payint-field-v1575{display:grid;grid-template-columns:142px 1fr;gap:8px;padding:7px 8px;border-bottom:1px solid #f0edf6}.payint-field-v1575:last-child{border-bottom:0}.payint-field-v1575 code{font-size:7.5px;color:#5f50dc}.payint-field-v1575 span{font-size:7.7px;color:#777b8e;line-height:1.45}.payint-rule-v1575{margin-top:11px;padding:10px 11px;border-radius:12px;background:#f2faf7;color:#3e7165;font-size:8px;line-height:1.55}.payint-rule-v1575.warn{background:#fff8ea;color:#9a6a25}.payint-config-v1575{display:grid;gap:9px}.payint-config-v1575 .field label{font-size:7.5px}.payint-config-v1575 select{height:38px;font-size:8.5px}
.payint-detail-grid-v1575{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.payint-detail-grid-v1575>div{padding:10px 11px;border:1px solid #ebe8f5;border-radius:12px;background:#faf9fe}.payint-detail-grid-v1575>div.wide{grid-column:1/-1}.payint-detail-grid-v1575 span{display:block;color:#999daf;font-size:7.2px;font-weight:800}.payint-detail-grid-v1575 b{display:block;margin-top:5px;color:#343749;font-size:9px;line-height:1.45;word-break:break-word}.payint-readonly-note-v1575{margin-top:12px;padding:10px 12px;border-radius:12px;background:#f4f2ff;color:#6557d8;font-size:8px;line-height:1.55}
.ops-integration-ex-v1575{border-left:3px solid #d85865!important}
@media(max-width:1000px){.cash-api-grid-v1575{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-api-stat-v1575:nth-child(2){border-right:0}.cash-api-stat-v1575:nth-child(-n+2){border-bottom:1px solid #efecf7}.payint-contract-v1575{grid-template-columns:1fr}.payint-summary-v1575{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.cash-api-head-v1575{align-items:flex-start;flex-direction:column}.cash-api-head-actions-v1575{width:100%;flex-wrap:wrap}.cash-api-grid-v1575,.payint-summary-v1575,.payint-detail-grid-v1575{grid-template-columns:1fr}.cash-api-stat-v1575{border-right:0!important;border-bottom:1px solid #efecf7}.cash-api-stat-v1575:last-child{border-bottom:0}.payint-detail-grid-v1575>div.wide{grid-column:auto}.payint-field-v1575{grid-template-columns:1fr}}

/* ===== [112] dtbox-v15-0-76-meta-ads-integration-css  (src lines 21483-21493) ===== */
.meta-int-panel-v1576{margin:0 0 18px;border:1px solid #e9e4f4;background:linear-gradient(135deg,#fff 0%,#fbf9ff 100%);border-radius:18px;padding:18px 20px;box-shadow:0 10px 28px rgba(54,35,97,.05)}
.meta-int-head-v1576{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.meta-int-title-v1576{display:flex;gap:12px;align-items:flex-start}.meta-int-icon-v1576{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f1ebff;color:#6842bd;font-weight:1000;font-size:16px}.meta-int-copy-v1576 b{display:block;font-size:13px;color:#292239}.meta-int-copy-v1576 span{display:block;font-size:9.5px;color:var(--muted);margin-top:4px;line-height:1.45}.meta-int-actions-v1576{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.meta-int-stats-v1576{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.meta-int-stat-v1576{border:1px solid #eee9f6;border-radius:13px;padding:12px 13px;background:#fff}.meta-int-stat-v1576 span{display:block;font-size:8px;font-weight:900;letter-spacing:.045em;text-transform:uppercase;color:#8a8199}.meta-int-stat-v1576 b{display:block;font-size:13px;color:#2f263f;margin-top:5px}.meta-int-stat-v1576 small{display:block;font-size:8.5px;color:#978fa3;margin-top:4px;line-height:1.4}.meta-status-v1576{display:inline-flex!important;align-items:center;gap:5px}.meta-status-v1576:before{content:'';width:7px;height:7px;border-radius:50%;background:#9c94a9}.meta-status-v1576.connected:before{background:#2db77e}.meta-status-v1576.error:before{background:#e65c66}.meta-status-v1576.ready:before{background:#e0a72f}
.ads-source-badge-v1576{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 8px;font-size:7.5px;font-weight:1000;white-space:nowrap;border:1px solid #ebe5f4;background:#faf8fd;color:#675b75}.ads-source-badge-v1576.api{background:#f1ebff;border-color:#e0d3ff;color:#6842bd}.ads-source-badge-v1576.csv{background:#eef8ff;border-color:#d5edff;color:#2675a8}.ads-source-badge-v1576.manual{background:#fff8ea;border-color:#f5e2b7;color:#9a6a16}.ads-ledger-account-v1576 b{display:block;font-size:9px;color:#30283d}.ads-ledger-account-v1576 small{display:block;font-size:8px;color:#978fa3;margin-top:3px}.ads-lock-v1576{display:inline-flex;align-items:center;gap:4px;color:#746b80;font-size:8px;font-weight:900}.ads-lock-v1576:before{content:'🔒';font-size:8px}.ads-sync-ok-v1576{font-size:8px;font-weight:900;color:#26825e}.ads-sync-manual-v1576{font-size:8px;font-weight:900;color:#9a6a16}.ads-ledger-actions-v1576{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
.settings-int-v1576{margin:0 0 18px}.settings-int-head-v1576{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.settings-int-head-v1576 b{font-size:12px}.settings-int-head-v1576 small{display:block;color:var(--muted);font-size:8.5px;margin-top:4px}.settings-int-grid-v1576{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.settings-int-card-v1576{border:1px solid #ebe6f2;border-radius:13px;padding:12px;background:#fff}.settings-int-card-v1576 .top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.settings-int-card-v1576 b{font-size:9.5px}.settings-int-card-v1576 span{font-size:7.5px;font-weight:1000;border-radius:999px;padding:4px 7px;background:#f5f2f8;color:#746a80}.settings-int-card-v1576 span.connected{background:#edf9f4;color:#26825e}.settings-int-card-v1576 span.error{background:#fff0f1;color:#bf4550}.settings-int-card-v1576 small{display:block;font-size:8px;color:#978fa3;line-height:1.45;margin-top:7px}.settings-int-card-v1576 button{margin-top:9px}
.meta-config-summary-v1576{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.meta-config-summary-v1576>div{border:1px solid #eee8f5;border-radius:12px;padding:11px 12px}.meta-config-summary-v1576 span{display:block;font-size:8px;color:#8f8799}.meta-config-summary-v1576 b{display:block;font-size:10px;margin-top:4px;color:#30283d}.meta-config-form-v1576{border:1px solid #ebe5f2;background:#fbf9fd;border-radius:14px;padding:14px;margin:14px 0}.meta-map-table-v1576{min-width:760px}.meta-map-state-v1576{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:7.5px;font-weight:1000;background:#edf9f4;color:#26825e}.meta-map-state-v1576.off{background:#f2eff5;color:#857b91}
.meta-sync-summary-v1576{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.meta-sync-pill-v1576{border:1px solid #eae4f2;border-radius:999px;padding:6px 9px;font-size:8px;font-weight:900;background:#fff}.meta-code-v1576{padding:13px;border-radius:12px;background:#211b2b;color:#f5efff;font-size:9px;line-height:1.55;overflow:auto;white-space:pre-wrap}.meta-rule-v1576{border-left:3px solid #8d68d8;background:#faf7ff;padding:10px 12px;border-radius:0 10px 10px 0;font-size:8.5px;color:#5f5668;line-height:1.55;margin-top:10px}.meta-csv-preview-v1576{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.meta-csv-preview-v1576>div{border:1px solid #eee8f5;border-radius:11px;padding:10px}.meta-csv-preview-v1576 span{display:block;font-size:7.5px;color:#8e8598}.meta-csv-preview-v1576 b{display:block;font-size:11px;margin-top:4px}.meta-readonly-note-v1576{margin-top:8px;font-size:8px;color:#8c8395;line-height:1.5}
@media(max-width:900px){.meta-int-stats-v1576,.settings-int-grid-v1576,.meta-config-summary-v1576,.meta-csv-preview-v1576{grid-template-columns:1fr 1fr}.meta-int-head-v1576{flex-direction:column}.meta-int-actions-v1576{justify-content:flex-start}}
@media(max-width:620px){.meta-int-stats-v1576,.settings-int-grid-v1576,.meta-config-summary-v1576,.meta-csv-preview-v1576{grid-template-columns:1fr}}

/* ===== [113] dtbox-v15-0-78-system-audit-css  (src lines 21606-21611) ===== */
.system-health-v1578{margin:0 0 18px;border:1px solid #e8e3f2;border-radius:15px;background:linear-gradient(135deg,#fff 0%,#fbfaff 100%);padding:14px 15px}
.system-health-head-v1578{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}.system-health-head-v1578 b{font-size:11px;color:#2f3040}.system-health-head-v1578 small{display:block;margin-top:4px;color:#9295a8;font-size:8.3px;line-height:1.45}.system-health-grid-v1578{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.system-health-metric-v1578{border:1px solid #ece8f4;border-radius:11px;background:#fff;padding:10px 11px}.system-health-metric-v1578 span{display:block;color:#8b8fa3;font-size:7.6px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.system-health-metric-v1578 b{display:block;margin-top:4px;font-size:11px;color:#323446}.system-health-metric-v1578.good b{color:#19866f}.system-health-metric-v1578.warn b{color:#a56d18}.system-health-metric-v1578.bad b{color:#c64d59}.system-health-foot-v1578{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;color:#8f93a6;font-size:8px;line-height:1.45}.system-health-foot-v1578 code{font-size:7.5px;color:#6856d7;background:#f1eeff;border-radius:6px;padding:2px 5px}
.modal-stack-v1578{isolation:isolate}.modal-backdrop.show{will-change:z-index}.modal-backdrop.show>.modal{max-height:calc(100vh - 40px)}
@media(max-width:760px){.system-health-grid-v1578{grid-template-columns:1fr 1fr}.system-health-head-v1578,.system-health-foot-v1578{flex-direction:column;align-items:flex-start}}

/* ===== [114] dtbox-v15-0-81-audit-hardening-css  (src lines 21985-22086) ===== */
/* --- LR-06: a write failure must be impossible to miss --- */
#persistFailBarV1581{
  position:fixed;left:0;right:0;bottom:0;z-index:400;display:none;
  gap:14px;align-items:center;flex-wrap:wrap;
  padding:14px 20px;background:#7d1f2b;color:#fff;
  box-shadow:0 -8px 26px rgba(0,0,0,.22);
}
#persistFailBarV1581.show{display:flex}
#persistFailBarV1581 b{font-size:12px;letter-spacing:.06em}
#persistFailBarV1581 span{flex:1 1 320px;font-size:11px;line-height:1.6;opacity:.94}
#persistFailBarV1581 .btn{background:#fff;color:#7d1f2b;border-color:#fff}

/* --- NT-03: partial approval field + permission notes in the modal footer --- */
.exp-approve-amount-v1581{display:flex;align-items:center;gap:9px;margin-right:auto}
.exp-approve-amount-v1581 label{font-size:10px;font-weight:800;color:#4b5a68;white-space:nowrap}
.exp-approve-amount-v1581 input{
  width:150px;border:1px solid #d7e0e7;border-radius:9px;padding:8px 10px;
  font-variant-numeric:tabular-nums;text-align:right;font-weight:700;font-size:12px;
}
.exp-approve-amount-v1581 input:focus{border-color:#83a9ff;box-shadow:0 0 0 3px rgba(47,111,237,.1);outline:none}
.exp-approve-amount-v1581 small{font-size:9px;color:var(--muted);white-space:nowrap}
.exp-foot-note-v1581{margin-right:auto;font-size:10.5px;color:#9a6b18;font-weight:700;align-self:center}
.exp-variance-v1581{
  margin-top:10px;padding:10px 12px;border-radius:10px;
  background:#fff4e5;border:1px solid #f0d6ab;font-size:10.5px;color:#8a5a12;line-height:1.6;
}
.exp-variance-v1581.over{background:#fff0f2;border-color:#ffd4da;color:#a03040}

/* Pre-existing layout bug surfaced while fixing the badge overflow: the detail grid is
   7 fixed columns (~1059px) inside a .panel with overflow-x:hidden, so "Trạng thái" and
   "Thao tác" were clipped away entirely at normal window widths. Give the list its own
   horizontal scroll so the header and rows move together and nothing is lost. */
#page-debts .debt-detail-list-v1536{overflow-x:auto;-webkit-overflow-scrolling:touch}
#page-debts .debt-detail-head-v1536,
#page-debts .debt-detail-row-v1536{min-width:max-content}

/* --- LR-01: say which debts are already inside the cash forecast --- */
.debt-fc-flag-v1581{
  /* The date cell is a fixed 88px grid column. Anything wider than that used to spill
     straight over the "Đơn vị" column, so the badge is clamped and ellipsised, and the
     full sentence lives in the title tooltip instead. */
  display:block;width:fit-content;max-width:100%;
  margin-top:4px;
  font-size:8.5px;font-weight:800;letter-spacing:.02em;line-height:1.5;
  padding:2px 7px;border-radius:999px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  cursor:help;
}
.debt-fc-flag-v1581.inside{background:#eef2f5;color:#617181}
.debt-fc-flag-v1581.counted{background:var(--green-soft);color:var(--green)}
.debt-fc-flag-v1581.estimate{background:var(--orange-soft);color:#8a5a12}
.debt-fc-note-v1581{
  margin:0 0 14px;padding:12px 15px;border-radius:12px;
  background:#f7f9fb;border:1px solid var(--line);
  font-size:10.5px;color:var(--muted);line-height:1.65;
}
.debt-fc-note-v1581 b{color:var(--ink)}

/* --- NT-04 / NT-06: overdue COD and statutory obligations get their own read-outs --- */
.cod-overdue-v1581{
  margin:0 0 14px;padding:13px 16px;border-radius:12px;
  background:var(--orange-soft);border:1px solid #f0d6ab;
  display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;
}
.cod-overdue-v1581.clean{background:var(--green-soft);border-color:#bfe0cf}
.cod-overdue-v1581 .lbl{font-size:10px;font-weight:800;color:#8a5a12;letter-spacing:.04em}
.cod-overdue-v1581.clean .lbl{color:var(--green)}
.cod-overdue-v1581 .val{font-size:15px;font-weight:900;font-variant-numeric:tabular-nums}
.cod-overdue-v1581 .desc{flex:1 1 260px;font-size:10px;color:var(--muted);line-height:1.6}

/* --- NC-06: mobile needs its own type scale, not just a one-column grid --- */
@media(max-width:760px){
  /* The founder strip has its own card class, so it needs the same treatment as .kpi —
     without it each card stayed ~310px tall and four numbers took four screens. */
  .founder-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}
  .founder-kpi{padding:12px 13px;border-radius:13px;min-height:0}
  .founder-kpi .label{font-size:10px;margin-bottom:5px;line-height:1.35}
  .founder-kpi .value{font-size:16px;letter-spacing:-.02em;line-height:1.2}
  .founder-kpi .hint{font-size:9px;margin-top:4px;line-height:1.45}
  .founder-kpi .kpi-detail-btn{padding:5px 8px;font-size:9px}
  .founder-safety-card .safety-ratio-value{font-size:18px!important}
  .founder-safety-card{grid-column:1/-1}
  .kpi{padding:13px 14px;border-radius:13px}
  .kpi .label{margin-bottom:6px;font-size:10px}
  .kpi .value{font-size:17px;letter-spacing:-.02em}
  .kpi .hint{margin-top:5px;font-size:9px}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .page-head h2{font-size:19px}
  .page-head p{font-size:11.5px}
  .content{padding:14px 12px 36px}
  .panel-body{padding:13px}
  .section-title{margin:16px 0 9px}
  .exp-approve-amount-v1581{margin:0 0 8px;width:100%}
  .exp-approve-amount-v1581 input{flex:1}
  #persistFailBarV1581{padding:11px 14px}
}
@media(max-width:380px){
  .kpi-grid{grid-template-columns:1fr}
  .kpi .value{font-size:19px}
}

/* ===== [115] dtbox-v15-0-82-permissions-css  (src lines 22856-22895) ===== */
.perm-block-v1582{margin-top:16px;border:1px solid var(--line);border-radius:13px;overflow:hidden}
.perm-head-v1582{
  padding:12px 15px;background:#f7f9fb;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.perm-head-v1582 b{font-size:11px;color:var(--ink)}
.perm-head-v1582 small{display:block;margin-top:3px;font-size:9.5px;color:var(--muted);line-height:1.5}
.perm-head-actions-v1582{display:flex;gap:6px;flex-wrap:wrap}
.perm-mini-btn-v1582{
  border:1px solid var(--line);background:#fff;color:var(--ink);
  border-radius:8px;padding:5px 9px;font-size:9.5px;font-weight:800;white-space:nowrap;
}
.perm-mini-btn-v1582:hover{border-color:var(--blue);color:var(--blue)}
.perm-body-v1582{padding:13px 15px;max-height:280px;overflow-y:auto}
.perm-group-v1582{margin-bottom:14px}
.perm-group-v1582:last-child{margin-bottom:0}
.perm-group-title-v1582{
  font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin-bottom:7px;
}
.perm-grid-v1582{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.perm-item-v1582{
  display:flex;align-items:center;gap:8px;padding:7px 9px;
  border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;
  font-size:10.5px;line-height:1.35;
}
.perm-item-v1582:hover{border-color:#83a9ff;background:#fbfdff}
.perm-item-v1582 input{width:14px;height:14px;flex:0 0 auto;margin:0;cursor:pointer}
.perm-item-v1582.is-on{border-color:#bfe0cf;background:var(--green-soft)}
.perm-item-v1582.is-locked{opacity:.55;cursor:not-allowed;background:#f4f7fa}
.perm-item-v1582 .perm-danger-v1582{color:var(--red);font-weight:800}
.perm-note-v1582{
  padding:10px 15px;border-top:1px solid var(--line);background:#fafbfc;
  font-size:9.5px;color:var(--muted);line-height:1.6;
}
.perm-note-v1582 b{color:var(--ink)}
.perm-summary-v1582{font-size:9.5px;color:var(--muted);font-weight:700;white-space:nowrap}
@media(max-width:640px){.perm-grid-v1582{grid-template-columns:1fr}}

/* ===== [116] dtbox-v15-0-83-login-wall-css  (src lines 23306-23323) ===== */
.hosted-lock-note-v1583{
  margin-top:14px;padding:11px 13px;border-radius:11px;
  background:#f2f5f9;border:1px solid #dde4ec;
  font-size:10.5px;line-height:1.65;color:#5b6a7a;
}
.hosted-lock-note-v1583 b{color:#22303d}
.hosted-lock-badge-v1583{
  display:inline-flex;align-items:center;gap:5px;margin-bottom:9px;
  padding:3px 8px;border-radius:999px;background:#e6f2ea;color:#1d6b45;
  font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;
}
/* Belt and braces: even if some other layer re-inserts the button, CSS hides it. */
body.dtbox-hosted-v1583 button[onclick*="continueLocalAdmin"]{display:none!important}
/* The shell must never be visible behind an un-passed login on a hosted install. */
body.dtbox-hosted-v1583.dtbox-locked-v1583 .app{filter:blur(6px);pointer-events:none;user-select:none}
body.dtbox-hosted-v1583.dtbox-locked-v1583 #cloudLoginScreen{display:flex!important}

/* ===== [117] dtbox-v15-0-86-simple-cloud-css  (src lines 23596-23621) ===== */
body.dtbox-cloud-required-v1586.dtbox-cloud-locked-v1586 .app{
  filter:blur(5px);pointer-events:none;user-select:none;
}
body.dtbox-cloud-required-v1586.dtbox-cloud-locked-v1586 #cloudLoginScreen{
  display:flex!important;
}
body.dtbox-cloud-required-v1586 button[onclick*="continueLocalAdmin"]{display:none!important}
.cloud-required-note-v1586{
  margin-top:10px;padding:10px 12px;border-radius:11px;
  background:#eef7f4;border:1px solid #d6eee7;color:#256b59;
  font-size:10px;line-height:1.55;font-weight:700;
}
.cloud-user-status-v1586{
  display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:9px 12px;
  border:1px solid #e5e1f4;border-radius:12px;background:#faf9ff;
  color:#575b70;font-size:10px;font-weight:700;
}
.cloud-user-status-v1586.ok{background:#f1fbf7;border-color:#d4eee4;color:#19735e}
.cloud-user-status-v1586.bad{background:#fff7f1;border-color:#f6dfc9;color:#a65a1f}
.user-cloud-error-v1586{
  display:none;margin-top:10px;padding:10px 12px;border-radius:10px;
  background:#fff5f5;border:1px solid #f5d1d5;color:#b33d4d;
  font-size:10px;line-height:1.5;font-weight:700;
}

/* ===== [118] dtbox-v15-0-87-login-style  (src lines 23882-23905) ===== */
#cloudLoginStatusV14.login-error-v1587{
  display:block!important;
  background:#fff4f4!important;
  border:1px solid #f3c7cc!important;
  color:#b23a49!important;
  white-space:normal!important;
  line-height:1.5!important;
}
#cloudLoginStatusV14.login-ok-v1587{
  display:block!important;
  background:#f1fbf7!important;
  border:1px solid #d4eee4!important;
  color:#19735e!important;
}
.login-password-wrap-v1587{position:relative}
.login-password-toggle-v1587{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  border:0;background:transparent;color:#6b6f82;font-size:10px;font-weight:800;
  cursor:pointer;padding:5px 7px;border-radius:8px;
}
.login-password-toggle-v1587:hover{background:#f3f1fb}
#loginPasswordV14{padding-right:58px!important}
