:root{--ink:#182c42;--muted:#667586;--paper:#f5f7f9;--card:#fff;--gold:#fad43b;--deep:#182c42;--border:#d6dde5;--danger:#a83434}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:#182c42;text-decoration:none}a:hover{text-decoration:underline}.site-header{min-height:68px;background:var(--deep);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));gap:24px}.brand{font-size:21px;font-weight:800;color:#fff}.brand span{font-weight:400;color:#fad43b}.site-header nav{display:flex;align-items:center;gap:18px}.site-header nav a,.link-button{color:#fff}.site-header form{margin:0}.link-button{border:0;background:none;padding:0}.user{color:#d9e0e7;font-size:13px}.container{max-width:1180px;margin:0 auto;padding:42px 24px 70px}footer{text-align:center;color:var(--muted);padding:26px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}.page-heading h1,.auth-card h1{font:700 38px/1.1 Georgia,serif;margin:4px 0 8px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#9b7a00;font-weight:800;font-size:12px;margin:0}.panel,.auth-card,.loan-card,.empty{background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 28px #24333c0d}.panel{padding:26px}.auth-card{max-width:500px;margin:7vh auto;padding:34px}.auth-card.wide{max-width:760px}.stack{display:grid;gap:16px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{display:grid;gap:6px;font-weight:650;color:#33414a}input,select,textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid #b9c0c4;border-radius:7px;background:#fff;color:var(--ink)}textarea{resize:vertical}button,.button{display:inline-block;border:0;border-radius:7px;background:var(--deep);color:#fff;padding:11px 17px;font-weight:750;cursor:pointer}.button:hover{text-decoration:none}.danger{background:var(--danger)}.danger-zone{border-top:1px solid var(--border);padding-top:18px}.alert{background:#fff8d6;border:1px solid #fad43b;padding:12px 14px;border-radius:7px;margin:15px 0}.muted,small{color:var(--muted)}.cards{display:grid;gap:14px}.loan-card{display:flex;justify-content:space-between;gap:20px;padding:22px;color:inherit}.loan-card:hover{text-decoration:none;border-color:#fad43b}.loan-card h2{margin:8px 0 3px}.loan-card p{margin:0;color:var(--muted)}.amount{text-align:right;display:grid;align-content:center}.amount strong{font-size:21px}.status{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;background:#e8ecee;color:#394851}.status-approved,.status-awaiting_payout{background:#fff0bc;color:#705400}.status-active{background:#d9efe3;color:#146238}.status-declined,.status-cancelled{background:#f4dada;color:#842727}.status-repaid{background:#dce8f4;color:#28577e}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.metrics div{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:18px}.metrics strong{display:block;font-size:28px}.metrics span{color:var(--muted)}.filters{display:flex;justify-content:flex-end;margin-bottom:14px}.filters label{display:flex;align-items:center;gap:10px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #ece9e1;vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#faf9f6}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(310px,1fr);gap:22px}.detail-grid aside{display:grid;gap:22px;align-content:start}.panel h2{margin-top:0;font-family:Georgia,serif}.panel h3{margin-bottom:4px}dl{display:grid;grid-template-columns:150px 1fr;margin:0 0 25px}dt,dd{padding:8px 0;border-bottom:1px solid #eeeae1}dt{color:var(--muted)}dd{margin:0;font-weight:650}.actions form+form{margin-top:22px}.timeline{padding-left:20px}.timeline li{padding:0 0 14px 5px}.timeline span{display:block;color:var(--muted);font-size:12px}.timeline p{margin:3px 0}.plain-list{padding:0;list-style:none}.plain-list li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #eee}.empty{padding:30px;text-align:center;color:var(--muted)}@media(max-width:760px){.site-header{align-items:flex-start;padding:18px 20px;flex-direction:column}.site-header nav{flex-wrap:wrap}.container{padding:28px 16px}.grid-form,.detail-grid,.metrics{grid-template-columns:1fr}.page-heading,.loan-card{flex-direction:column}.amount{text-align:left}.user{display:none}}
.branch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.branch-card{display:grid;grid-template-columns:1fr auto;gap:1rem;background:var(--surface,#fff);border:1px solid var(--border,#d9d9d9);border-radius:14px;padding:1.25rem;text-decoration:none;color:inherit}.branch-card:hover{transform:translateY(-2px)}.branch-card dl{margin:0;text-align:right}.branch-card dt{font-size:.75rem;color:var(--muted,#6b7280)}.branch-card dd{margin:0 0 .65rem;font-weight:700}.success{padding:1rem;border-radius:10px;background:#e9f8ef;color:#176637;margin-bottom:1rem}.preamble{white-space:pre-wrap;font:inherit;background:#f6f7f8;padding:1rem;border-radius:8px}.metrics small{display:block;color:var(--muted,#6b7280);margin-top:.35rem}section+section{margin-top:2rem}
.positive{font-weight:700}.negative{font-weight:700}.muted{opacity:.72}.inline-form{display:flex;gap:1rem;align-items:end;flex-wrap:wrap}

.cashflow-panel{margin-bottom:2rem}.cashflow-heading{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start}.cashflow-heading h2{margin:.25rem 0}.cashflow-heading p:last-child{max-width:720px;color:var(--muted)}.cashflow-controls{display:flex;gap:1rem;min-width:300px}.cashflow-controls label{min-width:135px}.cashflow-chart{margin-top:1.25rem;border:1px solid var(--border);border-radius:10px;background:#fbfcfd;overflow:hidden}.cashflow-svg{display:block;width:100%;height:auto;min-height:310px}.cashflow-grid{stroke:#dfe5e8;stroke-width:1}.cashflow-zero{stroke:#84939b;stroke-width:1.5}.cashflow-in-bar{fill:#287b55}.cashflow-out-bar{fill:#a64747}.cashflow-net-line{stroke:#215b8f;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.cashflow-net-point{fill:#fff;stroke:#215b8f;stroke-width:2}.cashflow-axis-label{fill:#68767e;font-size:12px}.cashflow-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}.cashflow-summary div{padding:1rem;border:1px solid var(--border);border-radius:9px;background:#fff}.cashflow-summary span{display:block;color:var(--muted);font-size:.82rem}.cashflow-summary strong{display:block;margin-top:.25rem;font-size:1.15rem}.cashflow-upcoming{margin-top:1.5rem}.cashflow-upcoming h3{margin-bottom:.75rem}.positive{color:#176637}.negative{color:#842727}@media(max-width:760px){.cashflow-heading{flex-direction:column}.cashflow-controls{width:100%;min-width:0;flex-direction:column}.cashflow-summary{grid-template-columns:1fr}.cashflow-svg{min-width:760px}.cashflow-chart{overflow-x:auto}}

.cashflow-summary{grid-template-columns:repeat(4,1fr)}
.cashflow-summary small{display:block;margin-top:.3rem}
.cashflow-shortfall-zone{fill:#f9dddd;opacity:.7}
.cashflow-danger-point{fill:#fff;stroke:#b42318;stroke-width:3}
.cashflow-warning-label{fill:#9b1c1c;font-size:12px;font-weight:700}
.cashflow-safe-label{fill:#176637;font-size:12px;font-weight:700}
@media(max-width:900px){.cashflow-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cashflow-summary{grid-template-columns:1fr}}

.account-holding{display:block;text-align:right;margin:.15rem 0}

.form-help{color:var(--muted);margin-top:-.35rem}
.nested-form-grid{display:contents}
.nested-form-grid[hidden]{display:none}
.batch-toolbar{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;gap:1rem;align-items:end;margin:1rem 0}.batch-toolbar label{margin:0}.checkbox-label{display:flex;gap:.5rem;align-items:center}.checkbox-label input{width:auto}.reconciliation-table td{vertical-align:top}.reconciliation-table select,.reconciliation-table input[type="text"],.reconciliation-table input:not([type]){min-width:180px}.batch-footer{display:flex;justify-content:flex-end;margin-top:1rem}@media(max-width:900px){.batch-toolbar{grid-template-columns:1fr}.reconciliation-table{min-width:1100px}}
.reconciliation-table{min-width:1100px}.reconciliation-table select,.reconciliation-table input[type="text"],.reconciliation-table input:not([type]){min-width:180px}.batch-toolbar,.batch-footer{display:flex;gap:1rem;align-items:end;justify-content:space-between;margin:1rem 0}.checkbox-label{display:flex;align-items:center;gap:.5rem}.batch-toolbar label:not(.checkbox-label){flex:1;max-width:520px}

.material-holdings-panel{margin-top:1rem}
.material-holdings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem}
.material-holding-card{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:9px;background:#fff}
.material-holding-card strong{font-size:1.15rem}
.material-holding-card span{font-weight:700;color:var(--muted)}

.cashflow-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,460px);
  gap:2rem;
  align-items:start;
}
.cashflow-heading>div{min-width:0}
.cashflow-controls{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  min-width:0;
  width:100%;
}
.cashflow-controls label{min-width:0}
.cashflow-controls select{min-width:0;max-width:100%}
@media(max-width:980px){
  .cashflow-heading{grid-template-columns:1fr}
  .cashflow-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:620px){
  .cashflow-controls{grid-template-columns:1fr}
}

.account-admin-filters{display:flex;gap:1rem;flex-wrap:wrap;justify-content:flex-start}
.account-admin-filters label{min-width:180px}
.account-create-panel{margin-top:1.25rem;border-top:1px solid var(--border);padding-top:1rem}
.account-create-panel summary{cursor:pointer;font-weight:800;color:var(--deep);margin-bottom:1rem}
.account-create-panel[open] summary{margin-bottom:1rem}
.compact-holdings{display:grid;gap:.2rem}
.compact-holdings span{white-space:nowrap}
@media(max-width:760px){.account-admin-filters{display:grid}.account-admin-filters label{min-width:0}}

.input-suffix{display:flex;align-items:center;gap:.5rem}
.input-suffix input{min-width:0;flex:1}
.input-suffix span{white-space:nowrap;color:var(--muted);font-size:.9rem}

.inline-form{display:inline-block;margin-left:.35rem}
.admin-user-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

button:not(.danger):hover,.button:not(.danger):hover{box-shadow:0 0 0 2px #fad43b inset}
input:focus,select:focus,textarea:focus{outline:2px solid #fad43b;outline-offset:1px;border-color:#182c42}
.site-header{border-bottom:3px solid #fad43b}

.permission-fieldset{border:1px solid var(--border);border-radius:9px;padding:14px 16px;display:grid;gap:9px}
.permission-fieldset legend{font-weight:800;color:var(--deep);padding:0 6px}
.permission-fieldset label{display:flex;align-items:center;gap:9px;font-weight:650}
.permission-fieldset input[type="checkbox"]{width:auto}
.permission-chip{margin:2px 3px 2px 0}

.checkbox-card{display:flex;align-items:flex-start;gap:.7rem;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:var(--paper)}
.checkbox-card input[type="checkbox"]{width:auto;margin-top:.2rem}
.checkbox-card small{display:block;color:var(--muted);font-weight:400;margin-left:.35rem}

/* v53: native checkbox controls must not inherit full-width text-input sizing. */
input[type="checkbox"]{
  width:18px;
  height:18px;
  min-width:18px;
  padding:0;
  margin:0;
  border:1px solid var(--border);
  border-radius:3px;
  background:#fff;
  accent-color:#182c42;
  cursor:pointer;
  pointer-events:auto;
  vertical-align:middle;
}
input[type="checkbox"]:disabled{
  cursor:not-allowed;
  opacity:.45;
}
.reconciliation-table td:first-child,
.reconciliation-table th:first-child{
  width:42px;
  min-width:42px;
  text-align:center;
}
.reconciliation-table .batch-row-checkbox,
.reconciliation-table .asset-row-checkbox{
  display:inline-block;
  width:18px;
  min-width:18px;
  height:18px;
}
.batch-toolbar .select-all-batch,
.batch-toolbar #select-all-assets{
  width:18px;
  min-width:18px;
  height:18px;
}
.checkbox-label{
  cursor:pointer;
  user-select:none;
}
.checkbox-label:has(input:disabled){
  cursor:not-allowed;
  opacity:.65;
}

.reconciliation-table tr.reconciliation-row-selected td{
  background:#fff9dc;
}

.material-trade-entry{margin-bottom:1.5rem}
.material-trade-lines-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;border-top:1px solid var(--border);padding-top:1.25rem}
.material-trade-lines-heading h2{margin:0}
.material-trade-lines-heading p{margin:.3rem 0 0;color:var(--muted)}
.material-trade-lines{display:grid;gap:.8rem}
.material-trade-line{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,260px) auto;gap:1rem;align-items:end;padding:1rem;border:1px solid var(--border);border-radius:9px;background:var(--paper)}
.material-trade-line .material-available{min-height:1.2em}
.material-trade-summary{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.material-trade-summary>div{padding:1rem;border:1px solid var(--border);border-radius:9px;background:#fff}
.material-trade-summary span{display:block;color:var(--muted);font-size:.85rem;margin-bottom:.25rem}
.material-trade-summary strong{font-size:1.05rem}
@media(max-width:760px){
  .material-trade-line{grid-template-columns:1fr}
  .material-trade-summary{grid-template-columns:1fr}
  .material-trade-lines-heading{align-items:stretch;flex-direction:column}
}

.transfer-summary{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.transfer-summary>div{padding:1rem;border:1px solid var(--border);border-radius:9px;background:var(--paper)}
.transfer-summary span{display:block;color:var(--muted);font-size:.85rem;margin-bottom:.25rem}
.transfer-summary strong{font-size:1rem}
@media(max-width:760px){.transfer-summary{grid-template-columns:1fr}}

.compact-action{padding:7px 10px;font-size:.85rem;white-space:nowrap}

.discord-login{display:block;text-align:center;font-size:1.05rem;padding:12px 18px;margin:1rem 0}

.user-toggle-deactivate,
.user-toggle-reactivate{
  display:inline-block;
  margin-top:7px;
  padding:7px 10px;
  font-size:.85rem;
  border-radius:7px;
  border:1px solid var(--border);
  cursor:pointer;
}
.user-toggle-deactivate{
  background:#fff;
  color:var(--danger);
  border-color:#d9aaaa;
}
.user-toggle-reactivate{
  background:var(--deep);
  color:#fff;
  border-color:var(--deep);
}
.user-toggle-deactivate:hover,
.user-toggle-reactivate:hover{
  text-decoration:none;
}


/* v65: compact tiled staff navigation */
.primary-nav{position:relative}
.nav-menu{position:relative}
.nav-menu summary{
  list-style:none;
  cursor:pointer;
  color:#fff;
  font-weight:750;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:7px;
  user-select:none;
}
.nav-menu summary::-webkit-details-marker{display:none}
.nav-menu summary::after{content:" ▾";color:var(--gold)}
.nav-menu[open] summary{background:rgba(255,255,255,.08)}
.nav-menu-panel{
  position:absolute;
  z-index:100;
  top:calc(100% + 10px);
  right:0;
  width:min(720px,calc(100vw - 32px));
  padding:14px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  background:#fff;
  color:var(--ink);
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 18px 45px rgba(24,44,66,.22);
}
.nav-menu-group{
  min-width:0;
  display:grid;
  gap:7px;
  align-content:start;
  padding:10px;
  border-radius:9px;
  background:var(--paper);
}
.nav-menu-group>strong{
  padding:2px 4px 5px;
  color:#9b7a00;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.site-header .nav-menu-panel a{
  display:block;
  padding:9px 10px;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px;
}
.site-header .nav-menu-panel a:hover{
  text-decoration:none;
  border-color:var(--gold);
}
.nav-menu-panel a span{display:block;font-weight:800}
.nav-menu-panel a small{display:block;margin-top:2px;font-size:.75rem;font-weight:400}
@media(max-width:760px){
  .primary-nav{width:100%}
  .nav-menu{position:static}
  .nav-menu-panel{
    position:static;
    width:100%;
    margin-top:8px;
    grid-template-columns:1fr;
  }
}

/* v65: material-loan client portfolio summary */
.material-loan-summary-card{align-items:center}
.material-loan-summary-card .amount{max-width:280px}
.material-contract-card .amount{min-width:260px;gap:2px}
.material-contract-card .amount strong+small{margin-bottom:8px}
.material-contract-preamble{
  display:block;
  margin-top:6px;
  max-width:680px;
  white-space:pre-line;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:760px){
  .material-contract-card .amount{min-width:0}
}


/* v66: tiled client dashboard navigation */
.client-dashboard-menu{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:0 0 2rem;
}
.client-dashboard-tile{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:
    "count title"
    "count detail";
  gap:2px 12px;
  align-items:center;
  min-width:0;
  padding:18px;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 8px 28px #24333c0d;
}
.client-dashboard-tile:hover{
  text-decoration:none;
  border-color:var(--gold);
  transform:translateY(-1px);
}
.client-dashboard-count{
  grid-area:count;
  display:grid;
  place-items:center;
  min-width:44px;
  height:44px;
  padding:0 8px;
  border-radius:10px;
  background:var(--deep);
  color:#fff;
  font-size:1.05rem;
  font-weight:850;
}
.client-dashboard-tile>strong{
  grid-area:title;
  font-size:1rem;
}
.client-dashboard-tile>small{
  grid-area:detail;
  line-height:1.35;
}
.client-dashboard-tile-action .client-dashboard-count{
  background:var(--gold);
  color:var(--deep);
  font-size:1.5rem;
}
#cash-loans,
#material-loans,
#deposit-accounts,
#bonds,
#applications{
  scroll-margin-top:24px;
}
@media(max-width:900px){
  .client-dashboard-menu{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:580px){
  .client-dashboard-menu{grid-template-columns:1fr}
}


/* v67: YellowFin brand logo */
.site-header .brand-logo{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  color:#fff;
  text-decoration:none;
}
.site-header .brand-logo img{
  display:block;
  width:auto;
  height:54px;
  max-width:210px;
  object-fit:contain;
}
.site-header .brand-logo .brand-subtitle{
  display:block;
  color:#fff;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
@media(max-width:760px){
  .site-header .brand-logo img{
    height:44px;
    max-width:170px;
  }
  .site-header .brand-logo .brand-subtitle{
    display:none;
  }
}

/* v68: logo contrast against navy header */
.site-header .brand-logo{
  padding:5px 9px;
  background:#fff;
  border-radius:9px;
}
.site-header .brand-logo .brand-subtitle{color:var(--deep);}

/* v70: preserve applicant-entered line breaks when application text is displayed. */
.preserve-lines{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
