/* Ilaris global typography + card consistency.
   This is intentionally loaded last so older page-specific preview styles cannot drift from the shared design. */
:root{
  --ilaris-type-page-title:28px;
  --ilaris-type-page-copy:12.5px;
  --ilaris-type-eyebrow:9px;
  --ilaris-type-nav:11px;
  --ilaris-type-card-label:9px;
  --ilaris-type-card-value:20px;
  --ilaris-type-card-note:9px;
  --ilaris-type-panel-title:14px;
  --ilaris-type-body:12px;
}

/* One type scale everywhere. */
body{
  font-size:14px!important;
  line-height:1.45!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Page headings: Command Centre, Bookkeeping Summary, Cash Position and every module page. */
#content .page-heading{
  margin-bottom:18px!important;
  align-items:flex-start!important;
}
#content .page-heading h1{
  margin:3px 0 6px!important;
  font-size:var(--ilaris-type-page-title)!important;
  line-height:1.15!important;
  font-weight:750!important;
  letter-spacing:-.035em!important;
  color:var(--ink)!important;
  text-transform:none!important;
}
#content .page-heading p:not(.eyebrow){
  margin:0!important;
  max-width:900px!important;
  font-size:var(--ilaris-type-page-copy)!important;
  line-height:1.5!important;
  color:var(--muted)!important;
}
#content .page-heading .eyebrow,
#content .eyebrow{
  font-size:var(--ilaris-type-eyebrow)!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}

/* Sidebar hierarchy is carried by indentation, not random font-size changes. */
.sidebar .nav-item,
.sidebar .org-item,
.sidebar .org-module,
.sidebar .org-subnav button{
  font-size:var(--ilaris-type-nav)!important;
  line-height:1.3!important;
  font-weight:650!important;
  letter-spacing:0!important;
}
.sidebar .nav-label{
  font-size:9px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
}

/* Shared card shell: no coloured top strips and no page-specific size drift. */
.stat-card,
.billable-summary-cards>div,
.invoice-summary-cards>div,
.expense-summary-cards>div,
.receipt-summary-cards>div,
.credit-summary-cards>div,
.budget-summary-cards>div,
.banking-summary-cards>div,
.booking-stat,
.booking-widget-stats>div,
.bookkeeping-widget,
.workspace-summary-widget{
  border:1px solid var(--ilaris-border,#dce6ee)!important;
  border-top:1px solid var(--ilaris-border,#dce6ee)!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 1px 2px rgba(16,43,69,.025),0 8px 24px rgba(16,43,69,.025)!important;
}

/* The little heading at the top of every summary card uses one treatment. */
.stat-card small,
.billable-summary-cards small,
.invoice-summary-cards small,
.expense-summary-cards small,
.receipt-summary-cards small,
.credit-summary-cards small,
.budget-summary-cards small,
.banking-summary-cards small,
.booking-stat small,
.booking-widget-stats small,
.workspace-summary-widget small{
  font-size:var(--ilaris-type-card-label)!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
}

/* Bookkeeping Summary uses buttons rather than stat cards, so normalise its heading too. */
.bookkeeping-widget>div>span{
  font-size:var(--ilaris-type-card-label)!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  color:var(--muted)!important;
}

/* Main figures are identical across Command Centre, Cash Position and Bookkeeping. */
.stat-card strong,
.billable-summary-cards strong,
.invoice-summary-cards strong,
.expense-summary-cards strong,
.receipt-summary-cards strong,
.credit-summary-cards strong,
.budget-summary-cards strong,
.banking-summary-cards strong,
.booking-stat strong,
.booking-widget-stats strong{
  font-size:var(--ilaris-type-card-value)!important;
  line-height:1.15!important;
  font-weight:750!important;
  letter-spacing:-.015em!important;
}
.bookkeeping-widget>strong{
  font-size:19px!important;
  line-height:1.15!important;
  font-weight:750!important;
  letter-spacing:-.015em!important;
}

/* Supporting text on cards. */
.stat-card span,
.billable-summary-cards span,
.invoice-summary-cards span,
.expense-summary-cards span,
.receipt-summary-cards span,
.credit-summary-cards span,
.budget-summary-cards span,
.banking-summary-cards span,
.booking-stat span,
.booking-widget-stats span,
.bookkeeping-widget>small,
.workspace-summary-widget>small{
  font-size:var(--ilaris-type-card-note)!important;
  line-height:1.4!important;
  font-weight:500!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:var(--muted)!important;
}

/* Command Centre status cards can contain longer values but keep the same visual hierarchy. */
.master-status strong{
  font-size:17px!important;
  line-height:1.22!important;
  font-weight:750!important;
}
.master-status small{
  font-size:var(--ilaris-type-card-label)!important;
  text-transform:uppercase!important;
}
.master-status span{
  font-size:var(--ilaris-type-card-note)!important;
}

/* Panel and register headings also share one scale. */
.panel-title h2,
.panel>h2,
.cash-panel-title h2,
.billable-section-head h2,
.invoice-group-head h2,
.expense-section-head h2,
.receipt-section-head h2,
.banking-section-head h2{
  margin:0!important;
  font-size:var(--ilaris-type-panel-title)!important;
  line-height:1.3!important;
  font-weight:750!important;
  letter-spacing:-.01em!important;
  color:var(--ink)!important;
  text-transform:none!important;
}

/* Inputs and controls should not jump between tiny legacy sizes. */
.heading-actions button,
.heading-actions select,
.toolbar button,
.secondary,
.people-primary{
  font-size:10px!important;
  line-height:1.2!important;
}
input,select,textarea{
  font-size:11px!important;
}

/* =========================================================
   Bookkeeping Summary — full Ilaris theme enforcement.
   The summary uses its own widget components, so it needs the
   same muted professional colour language as the shared cards.
   ========================================================= */
.bookkeeping-widget-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  margin:0 0 14px!important;
}

.bookkeeping-widget{
  position:relative!important;
  min-width:0!important;
  min-height:118px!important;
  padding:16px 18px!important;
  border:1px solid #DDE5E8!important;
  border-top:1px solid #DDE5E8!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 1px 2px rgba(16,43,69,.025),0 8px 24px rgba(16,43,69,.025)!important;
  text-align:left!important;
  color:var(--ink)!important;
  overflow:hidden!important;
}
.bookkeeping-widget:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 6px 18px rgba(16,43,69,.055)!important;
}
.bookkeeping-widget>div{
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  margin:0 0 13px!important;
}
.bookkeeping-widget>div>i{
  display:grid!important;
  place-items:center!important;
  width:30px!important;
  height:30px!important;
  border-radius:50%!important;
  font-size:12px!important;
  font-style:normal!important;
  font-weight:800!important;
}
.bookkeeping-widget>div>b{
  color:#8CA0AD!important;
  font-size:12px!important;
  font-weight:700!important;
}
.bookkeeping-widget>strong{
  display:block!important;
  margin:0 0 5px!important;
  font-size:var(--ilaris-type-card-value)!important;
  line-height:1.15!important;
  font-weight:750!important;
  color:#1B3245!important;
}
.bookkeeping-widget>small{
  display:block!important;
  margin:0!important;
  font-size:var(--ilaris-type-card-note)!important;
  line-height:1.4!important;
  color:#6E7F8A!important;
}

/* Each Bookkeeping Summary tile receives a clear muted Ilaris accent. */
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(1)>div>i{background:#FAF2EA!important;color:#D9965D!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(1)>div>span{color:#A86F3E!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(2)>div>i{background:#EFF2FA!important;color:#607ED1!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(2)>div>span{color:#607ED1!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(3)>div>i{background:#EEF6F1!important;color:#559A77!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(3)>div>span{color:#477F64!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(4)>div>i{background:#FAF2EA!important;color:#D9965D!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(4)>div>span{color:#A86F3E!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(5)>div>i{background:#FAEEEE!important;color:#CF7070!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(5)>div>span{color:#B95F5F!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(6)>div>i{background:#F2EFF8!important;color:#8471C4!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(6)>div>span{color:#7462B0!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(7)>div>i{background:#EFF2FA!important;color:#607ED1!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(7)>div>span{color:#607ED1!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(8)>div>i{background:#EEF6F1!important;color:#559A77!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(8)>div>span{color:#477F64!important}

.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(1):hover{border-color:#E7C9AF!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(2):hover{border-color:#CAD5F0!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(3):hover{border-color:#C4DCCF!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(4):hover{border-color:#E7C9AF!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(5):hover{border-color:#E6BDBD!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(6):hover{border-color:#D5CDEA!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(7):hover{border-color:#CAD5F0!important}
.bookkeeping-widget-grid>.bookkeeping-widget:nth-child(8):hover{border-color:#C4DCCF!important}

/* Attention strip uses the same red signal as the rest of Ilaris. */
.bookkeeping-alert{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  margin:0 0 14px!important;
  padding:13px 16px!important;
  border:1px solid #EACFCF!important;
  border-left:4px solid #CF7070!important;
  border-radius:11px!important;
  background:#FBF2F2!important;
  box-shadow:none!important;
}
.bookkeeping-alert>div{
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
  min-width:0!important;
}
.bookkeeping-alert>div>i{
  display:grid!important;
  place-items:center!important;
  width:28px!important;
  height:28px!important;
  border-radius:50%!important;
  background:#F4DDDD!important;
  color:#C16464!important;
  font-style:normal!important;
  font-weight:850!important;
}
.bookkeeping-alert strong{display:block!important;font-size:12px!important;color:#1B3245!important}
.bookkeeping-alert small{display:block!important;margin-top:2px!important;font-size:9px!important;color:#6E7F8A!important}
.bookkeeping-alert>button{
  border:0!important;
  background:transparent!important;
  color:#C16464!important;
  font-size:9px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}

/* Lower Bookkeeping Summary panels now share the same themed surface. */
.bookkeeping-lower-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.18fr) minmax(0,.88fr)!important;
  gap:14px!important;
  align-items:stretch!important;
}
.bookkeeping-actions,
.bookkeeping-flow{
  min-height:0!important;
  border:1px solid #DDE5E8!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 1px 2px rgba(16,43,69,.025),0 8px 24px rgba(16,43,69,.025)!important;
}
.bookkeeping-actions .panel-title,
.bookkeeping-flow .panel-title{
  padding-bottom:11px!important;
  margin-bottom:0!important;
  border-bottom:1px solid #E7EDEF!important;
}
.bookkeeping-actions .panel-title p,
.bookkeeping-flow .panel-title p{
  margin:3px 0 0!important;
  font-size:9px!important;
  color:#6E7F8A!important;
}
.bookkeeping-actions .panel-title>button{
  color:#607ED1!important;
  font-weight:700!important;
}
.bookkeeping-action{
  display:grid!important;
  grid-template-columns:8px minmax(0,1fr) auto!important;
  gap:11px!important;
  align-items:center!important;
  padding:12px 2px!important;
  border-bottom:1px solid #E7EDEF!important;
}
.bookkeeping-action:last-child{border-bottom:0!important}
.bookkeeping-action>i{
  width:7px!important;
  height:7px!important;
  border-radius:50%!important;
}
.bookkeeping-action>i.red{background:#CF7070!important}
.bookkeeping-action>i.orange{background:#D9965D!important}
.bookkeeping-action>i.blue{background:#607ED1!important}
.bookkeeping-action span>strong{display:block!important;font-size:10px!important;color:#1B3245!important}
.bookkeeping-action span>small{display:block!important;margin-top:3px!important;font-size:8.5px!important;color:#6E7F8A!important}
.bookkeeping-action>button{
  min-height:30px!important;
  padding:0 10px!important;
  border:1px solid #DDE5E8!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#1B3245!important;
  font-size:8px!important;
  font-weight:750!important;
}
.bookkeeping-flow-row{
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) 22px minmax(95px,.7fr)!important;
  gap:10px!important;
  align-items:center!important;
  padding:11px 2px!important;
  border-bottom:1px solid #E7EDEF!important;
}
.bookkeeping-flow-row>i{
  display:grid!important;
  place-items:center!important;
  width:26px!important;
  height:26px!important;
  border-radius:50%!important;
  background:#EAF5F8!important;
  color:#318CA3!important;
  font-style:normal!important;
  font-size:9px!important;
  font-weight:800!important;
}
.bookkeeping-flow-row span>strong{display:block!important;font-size:10px!important;color:#1B3245!important}
.bookkeeping-flow-row span>small{display:block!important;margin-top:2px!important;font-size:8.5px!important;color:#6E7F8A!important}
.bookkeeping-flow-row>b{color:#9AADBA!important;font-size:11px!important;text-align:center!important}
.bookkeeping-flow-row>em{font-style:normal!important;font-size:9px!important;font-weight:750!important;color:#1B3245!important}
.cash-basis-note{
  margin:12px 0 0!important;
  padding:10px 12px!important;
  border-left:3px solid #318CA3!important;
  border-radius:7px!important;
  background:#F0F7F9!important;
  color:#6E7F8A!important;
  font-size:8.5px!important;
  line-height:1.45!important;
}
.cash-basis-note b{color:#1B3245!important}

@media(max-width:1100px){
  .bookkeeping-widget-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .bookkeeping-lower-grid{grid-template-columns:1fr!important}
}

@media(max-width:760px){
  :root{--ilaris-type-page-title:24px}
  #content .page-heading{margin-bottom:16px!important}
}

@media(max-width:640px){
  .bookkeeping-widget-grid{grid-template-columns:1fr!important}
  .bookkeeping-alert{flex-direction:column!important;align-items:flex-start!important}
  .bookkeeping-action{grid-template-columns:8px minmax(0,1fr)!important}
  .bookkeeping-action>button{grid-column:2!important;justify-self:start!important}
}
