:root { --gs-blue:#0f416d; --gs-slate:#60646b; --gs-bg:#f5f7fa; }
body { background:var(--gs-bg); color:#20242a; }
.gs-nav { background:#0d2438; }
.nav-logo { height:34px; width:auto; }
.login-shell { min-height:80vh; display:grid; place-items:center; }
.login-card { width:min(430px, 100%); }
.login-logo { width:240px; max-width:90%; }
.dashboard-tile { display:flex; flex-direction:column; min-height:145px; padding:1.5rem; border:1px solid #dfe4ea; border-radius:14px; background:white; text-decoration:none; color:#17212b; box-shadow:0 2px 10px rgba(0,0,0,.04); transition:.15s ease; }
.dashboard-tile:hover { transform:translateY(-2px); border-color:#9fb5c9; box-shadow:0 8px 22px rgba(0,0,0,.08); }
.dashboard-tile strong { font-size:1.25rem; color:var(--gs-blue); }
.dashboard-tile span { margin-top:.4rem; color:#6b7280; }
.btn-primary { background:var(--gs-blue); border-color:var(--gs-blue); }
.receipt { max-width:800px; margin:auto; }
.receipt-logo { width:260px; max-width:70%; }
@media print {
  nav, .d-print-none { display:none !important; }
  body { background:white; font-size:10px; }
  main.container { max-width:none; width:100%; padding:0 !important; }
  .card, .shadow-sm { box-shadow:none !important; border:0 !important; }
  .report-table { font-size:8px; }
  .report-table th, .report-table td { padding:3px; vertical-align:top; }
  .receipt { font-size:12px; }
}

/* Compact court-sheet layout */
.report-heading { text-align:center; margin-bottom:1rem; }
.report-heading h2 { font-size:1.25rem; margin:0; }
.report-heading h3 { font-size:1rem; margin:.2rem 0 0; font-weight:500; }
.court-sheet { background:#fff; border:1px solid #d8dde3; border-radius:.5rem; padding:.35rem 1rem; }
.court-entry { padding:.75rem 0 .85rem; border-bottom:1px solid #8f969d; break-inside:avoid; page-break-inside:avoid; }
.court-entry:last-child { border-bottom:0; }
.court-client-name { font-size:1.05rem; font-weight:700; margin-bottom:.25rem; }
.court-row { display:grid; gap:.75rem; margin:.12rem 0; }
.court-row-4, .court-row-contact { grid-template-columns:1.4fr .8fr .8fr 1.25fr; }
.court-row-2 { grid-template-columns:1fr 2fr; }
.court-row-finance { grid-template-columns:1.35fr 1fr; }
.court-row > div, .court-notes { min-width:0; }
.court-row span, .court-notes > span { font-weight:700; margin-right:.35rem; }
.court-notes { display:grid; grid-template-columns:auto 1fr; gap:.35rem; margin-top:.12rem; }
.court-notes div { white-space:pre-wrap; overflow-wrap:anywhere; }

@media (max-width: 900px) {
  .court-row-4, .court-row-contact { grid-template-columns:1fr 1fr; }
  .court-row-finance { grid-template-columns:1fr; }
}

@media print {
  @page { size:letter portrait; margin:.45in; }
  body { font-size:9.5pt; }
  .report-heading { margin-bottom:.15in; }
  .report-heading h2 { font-size:13pt; }
  .report-heading h3 { font-size:10pt; }
  .court-sheet { border:0; border-radius:0; padding:0; }
  .court-entry { padding:.08in 0 .1in; }
  .court-client-name { font-size:11pt; }
  .court-row { gap:.12in; margin:.02in 0; }
  .court-row span, .court-notes > span { font-size:8.5pt; }
}

/* v1.0.3 profile-page cleanup */
.case-card {
  background:#fff;
  border:1px solid #dfe4ea;
  border-radius:.65rem;
  padding:1rem 1.1rem;
  margin-bottom:1rem;
  box-shadow:0 1px 4px rgba(13,36,56,.04);
}
.case-card-heading h3 { font-size:1.05rem; margin:0 0 .2rem; }
.case-card-subtitle { color:#66717d; font-size:.95rem; }
.case-facts {
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:.8rem 1.25rem;
  margin:.9rem 0;
  padding:.8rem 0;
  border-top:1px solid #edf0f3;
  border-bottom:1px solid #edf0f3;
}
.case-facts > div { min-width:0; }
.case-fact-label { display:block; color:#68727d; font-size:.78rem; text-transform:uppercase; letter-spacing:.035em; margin-bottom:.1rem; }
.case-facts strong { display:block; overflow-wrap:anywhere; }
.case-actions { margin-top:.15rem; }
.financial-card .card-body { padding:1rem 1.25rem; }
.summary-line { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.3rem 0; }
.summary-line span { color:#4f5964; }
.summary-line strong { white-space:nowrap; font-variant-numeric:tabular-nums; }
.summary-divider { border-top:1px solid #cfd5dc; margin:.55rem 0 .35rem; }
.summary-balance { font-size:1.15rem; }
.summary-balance span, .summary-balance strong { color:#17212b; }
@media (max-width: 1050px) { .case-facts { grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:700px) { .case-facts { grid-template-columns:1fr 1fr; gap:.7rem 1rem; } }
@media (max-width:480px) { .case-facts { grid-template-columns:1fr; } }
