/* Bail Simple · linked-band language.
   The connected command is a visual unit; its links remain independent actions.
   Keep this file after the page stylesheets so the same rhythm reaches every journey. */
:root {
  --wash: #faf9f5; /* Warm off-white canvas; cards remain white. */
  --band-ink: #28351f;
  --band-olive: #4d6131;
  --band-olive-hover: #394a27;
  --band-paper: #fff;
  --band-soft: #eff2e9;
  --band-line: #b6c1a9;
  --band-clay: #bc7458;
}

/* Standalone document pages also use the site's existing editorial typeface. */
body {
  font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif);
}

.dashboard-body .resume-draft {
  background: var(--band-paper);
}

/* Controls retain their meaning while sharing one quieter construction. */
.button,
.portal-primary,
.portal-secondary,
.home-body a.home-button,
.signer-primary,
.signer-secondary,
.back-button,
.login-home-link,
.modal-jump {
  border-radius: 8px;
  box-shadow: none;
  text-shadow: none;
}
.button.primary,
.portal-primary,
.home-body a.home-button,
.signer-primary {
  border: 1px solid var(--band-olive);
  color: #fff;
  background: var(--band-olive);
  box-shadow: none;
}
.button.primary:hover:not(:disabled),
.portal-primary:hover:not(:disabled),
.home-body a.home-button:hover,
.signer-primary:hover:not(:disabled) {
  border-color: var(--band-olive-hover);
  color: #fff;
  background: var(--band-olive-hover);
  box-shadow: none;
  filter: none;
  transform: none;
}
.button.ghost,
.button.soft,
.portal-secondary,
.signer-secondary,
.back-button,
.login-home-link {
  border: 1px solid var(--band-line);
  color: var(--band-ink);
  background: var(--band-paper);
  box-shadow: none;
}
.button.ghost:hover:not(:disabled),
.button.soft:hover:not(:disabled),
.portal-secondary:hover:not(:disabled),
.signer-secondary:hover:not(:disabled),
.back-button:hover,
.login-home-link:hover {
  border-color: var(--band-olive);
  color: var(--band-ink);
  background: var(--band-soft);
  box-shadow: none;
  transform: none;
}
.button.danger { border: 1px solid #d9a9a3; background: #fff; }
:is(.button,.portal-primary,.portal-secondary,.home-body a.home-button,.signer-primary,.signer-secondary,.back-button,.login-home-link,.modal-jump):focus-visible {
  outline: 3px solid var(--band-clay);
  outline-offset: 3px;
}

/* Dashboard: the exact connected-band composition selected in the mockup. */
.dashboard-body #home-view .quick-actions {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);
  grid-template-rows: repeat(3,minmax(88px,auto));
  gap: 0;
  overflow: hidden;
  margin: 28px 0 44px;
  border: 1px solid var(--band-ink);
  border-radius: 8px;
  background: var(--band-paper);
}
.dashboard-body #home-view .quick-card,
.dashboard-body #home-view .quick-card + .quick-card {
  display: flex;
  min-width: 0;
  min-height: 88px;
  height: auto;
  padding: 17px 22px;
  align-items: center;
  gap: 14px;
  border: 0;
  border-bottom: 1px solid var(--band-line);
  border-radius: 0;
  color: var(--band-ink);
  background: var(--band-paper);
  box-shadow: none;
  transform: none;
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease;
}
.dashboard-body #home-view .quick-card:last-child { border-bottom: 0; }
.dashboard-body #home-view .quick-card::before,
.dashboard-body #home-view .quick-card::after,
.dashboard-body #home-view .quick-icon { display: none; content: none; }
.dashboard-body #home-view .quick-card > span:nth-child(2) { flex: 1; min-width: 0; }
.dashboard-body #home-view .quick-card strong {
  color: inherit;
  font-size: clamp(17px,1.65vw,21px);
  font-weight: 650;
  letter-spacing: -.025em;
  line-height: 1.2;
}
.dashboard-body #home-view .quick-card em {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.3;
}
.dashboard-body #home-view .quick-card b { color: var(--band-olive); font-size: 23px; font-weight: 400; }
.dashboard-body #home-view .quick-card.lease-action {
  grid-row: 1 / 4;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  min-height: 264px;
  padding: 30px;
  border-right: 1px solid var(--band-ink);
  border-bottom: 0;
  color: #fff;
  background: var(--band-olive);
}
.dashboard-body #home-view .quick-card.lease-action::before { display: none; content: none; }
.dashboard-body #home-view .quick-card.lease-action strong {
  max-width: none;
  color: #fff;
  font-size: clamp(27px,3vw,39px);
  letter-spacing: -.05em;
  line-height: 1.08;
}
.dashboard-body #home-view .quick-card.lease-action em { color: #e6eddd; font-size: 14px; }
.dashboard-body #home-view .quick-card.lease-action b { align-self: flex-end; color: #fff; font-size: 29px; }
.dashboard-body #home-view .quick-card:hover,
.dashboard-body #home-view .quick-card:focus-visible {
  color: var(--band-ink);
  background: var(--band-soft);
  box-shadow: inset 5px 0 var(--band-clay);
}
.dashboard-body #home-view .quick-card:hover strong,
.dashboard-body #home-view .quick-card:focus-visible strong { color: var(--band-ink); }
.dashboard-body #home-view .quick-card:hover em,
.dashboard-body #home-view .quick-card:focus-visible em { color: var(--muted); }
.dashboard-body #home-view .quick-card.lease-action:hover,
.dashboard-body #home-view .quick-card.lease-action:focus-visible {
  color: #fff;
  background: var(--band-olive-hover);
  box-shadow: inset 5px 0 var(--band-clay);
}
.dashboard-body #home-view .quick-card.lease-action:hover strong,
.dashboard-body #home-view .quick-card.lease-action:focus-visible strong,
.dashboard-body #home-view .quick-card.lease-action:hover b,
.dashboard-body #home-view .quick-card.lease-action:focus-visible b { color: #fff; }
.dashboard-body #home-view .quick-card.lease-action:hover em,
.dashboard-body #home-view .quick-card.lease-action:focus-visible em { color: #e6eddd; }
.dashboard-body #home-view .quick-card:focus-visible { outline: 3px solid var(--band-clay); outline-offset: -4px; z-index: 1; }

/* Vitrine: the service chooser has the same primary/secondary relationship. */
.home-body .hero-service {
  padding: 22px;
  border: 1px solid var(--band-line);
  border-radius: 12px;
  background: var(--paper);
}
.home-body .hero-service h2 { margin: 0 0 16px; }
.home-body .hero-service > .service-link {
  min-width: 0;
  min-height: 82px;
  margin: 0;
  padding: 13px 18px;
  border: 1px solid var(--band-line);
  border-radius: 0;
  color: var(--band-ink);
  background: var(--band-paper);
  box-shadow: none;
}
.home-body .hero-service > .service-link + .service-link { border-top: 0; }
.home-body .hero-service > .service-link:first-of-type { border-radius: 8px 8px 0 0; }
.home-body .hero-service > .service-link:last-of-type { border-bottom: 1px solid var(--band-line); border-radius: 0 0 8px 8px; }
.home-body .hero-service > .service-link.service-lease {
  border-color: var(--band-olive);
  color: #fff;
  background: var(--band-olive);
}
.home-body .hero-service > .service-link.service-lease + .service-link { border-top: 0; }
.home-body .hero-service > .service-link.service-lease :is(strong,small,b),
.home-body .hero-service > .service-link.service-lease .service-icon { color: #fff; }
.home-body .hero-service > .service-link.service-lease .service-icon { border-color: #ffffff80; background: #ffffff18; }
.home-body .hero-service > .service-link:hover { border-color: var(--band-line); background: var(--band-soft); transform: none; }
.home-body .hero-service > .service-link.service-lease:hover { border-color: var(--band-olive); background: var(--band-olive-hover); }
.home-body .hero-service > .service-link:focus-visible { outline: 3px solid var(--band-clay); outline-offset: -3px; z-index: 1; }

/* A connected step strip, without changing the order or click behavior. */
@media (min-width: 701px) {
  .dashboard-body #home-view .quick-actions:has(.receipt-action) { grid-template-rows: repeat(4,minmax(88px,auto)); }
  .dashboard-body #home-view .quick-actions:has(.receipt-action) .quick-card.lease-action { grid-row: 1 / 5; }
  .dashboard-body #home-view .quick-actions:has(.amendment-action) { grid-template-rows: repeat(5,minmax(88px,auto)); }
  .dashboard-body #home-view .quick-actions:has(.amendment-action) .quick-card.lease-action { grid-row: 1 / 6; }
  .dashboard-body #home-view .quick-actions:has(.lifecycle-action) { grid-template-rows: repeat(5,minmax(88px,auto)); }
  .dashboard-body #home-view .quick-actions:has(.lifecycle-action) .quick-card.lease-action { grid-row: 1 / 4; border-bottom: 1px solid var(--band-line); }
  .dashboard-body #home-view .quick-actions:has(.lifecycle-action) .receipt-action { grid-row: 4; grid-column: 1; border-right: 1px solid var(--band-line); }
  .dashboard-body #home-view .quick-actions:has(.lifecycle-action) .amendment-action { grid-row: 4; grid-column: 2; }
  .dashboard-body #home-view .quick-actions:has(.lifecycle-action) .lifecycle-action[href="/revision-loyer.html"] { grid-row: 5; grid-column: 1; border-right: 1px solid var(--band-line); border-bottom: 0; }
  .dashboard-body #home-view .quick-actions:has(.lifecycle-action) .lifecycle-action[href="/preavis-depart.html"] { grid-row: 5; grid-column: 2; }

}
@media (min-width: 781px) {
  .app-shell #step-nav,
  .inspection-shell #inspection-nav { gap: 0; }
  .app-shell #step-nav .nav-step,
  .inspection-shell #inspection-nav .inspection-nav-button {
    border-radius: 0;
    border-color: var(--band-line);
    background: var(--band-paper);
  }
  .app-shell #step-nav .nav-step + .nav-step,
  .inspection-shell #inspection-nav .inspection-nav-button + .inspection-nav-button { border-top: 0; }
  .app-shell #step-nav .nav-step:first-child,
  .inspection-shell #inspection-nav .inspection-nav-button:first-child { border-radius: 8px 8px 0 0; }
  .app-shell #step-nav .nav-step:last-child,
  .inspection-shell #inspection-nav .inspection-nav-button:last-child { border-radius: 0 0 8px 8px; }
  .app-shell #step-nav .nav-step.active,
  .inspection-shell #inspection-nav .inspection-nav-button.active {
    border-color: var(--band-olive);
    color: #fff;
    background: var(--band-olive);
    box-shadow: inset 4px 0 var(--band-clay);
  }
  .app-shell #step-nav .nav-step.active :is(span,strong),
  .inspection-shell #inspection-nav .inspection-nav-button.active :is(span,strong) { color: #fff; }
  .app-shell #step-nav .nav-step.active span:first-child,
  .inspection-shell #inspection-nav .inspection-nav-button.active span:first-child {
    border-color: #ffffff80;
    background: #ffffff22;
  }
  .app-shell #step-nav .nav-step.active:hover,
  .inspection-shell #inspection-nav .inspection-nav-button.active:hover { background: var(--band-olive-hover); }
}
/* Mobile step rail uses equal units already; join them while retaining scrolling. */
@media (max-width: 780px) {
  .app-shell #step-nav,
  .inspection-shell #inspection-nav { gap: 0; }
  .app-shell #step-nav .nav-step,
  .inspection-shell #inspection-nav .inspection-nav-button { border-radius: 0; }
  .app-shell #step-nav .nav-step + .nav-step,
  .inspection-shell #inspection-nav .inspection-nav-button + .inspection-nav-button { border-left: 0; }
  .app-shell #step-nav .nav-step.active,
  .inspection-shell #inspection-nav .inspection-nav-button.active { box-shadow: inset 0 -4px var(--band-clay); }
}

/* Navigation and choice groups echo the band only where choices are peers. */
.dashboard-body .portal-navigation { gap: 0; }
.dashboard-body .portal-navigation a,
.dashboard-body .portal-navigation a:last-child { border-radius: 0; }
.dashboard-body .portal-navigation a + a { border-left: 0; }
.dashboard-body .portal-navigation a:first-child { border-radius: 8px 0 0 8px; }
.dashboard-body .portal-navigation a:last-child { border-radius: 0 8px 8px 0; }
.dashboard-body .portal-navigation a[aria-current] { box-shadow: inset 0 -3px var(--band-clay); }
.segmented { gap: 0; }
.segmented .segment { min-width: 0; }
.segmented .segment span { height: 100%; border-radius: 0; }
.segmented .segment:first-child span { border-radius: 8px 0 0 8px; }
.segmented .segment:last-child span { border-radius: 0 8px 8px 0; }
.segmented .segment + .segment span { border-left: 0; }
.segmented .segment input:checked + span { border-color: var(--band-olive); background: var(--band-soft); box-shadow: inset 0 -3px var(--band-clay); }
.segmented .segment input:checked + span:hover { color: var(--band-ink); background: var(--band-soft); }
.binary-control { gap: 0; overflow: hidden; border-color: var(--band-line); border-radius: 8px; background: var(--band-paper); }
.binary-control button { border-radius: 0; }
.binary-control button + button { border-left: 1px solid var(--band-line); }
.binary-control button[aria-pressed="true"],
.binary-control button[aria-pressed="true"]:hover { color: #fff; background: var(--band-olive); box-shadow: inset 0 -3px var(--band-clay); }

/* Login and completion panels share the same ruled, restrained surface. */
.login-body .login-card,
.login-body .register-card,
.payment-shell .payment-card,
.profile-view .profile-editor-card,
.account-disclosure,
.document-disclosure {
  border-radius: 12px;
  box-shadow: none;
}
.login-body .login-card,
.login-body .register-card { border-top: 3px solid var(--band-olive); }
.login-body .login-card .portal-primary {
  min-height: 52px;
  background: var(--band-olive);
  border: 1px solid var(--band-olive);
  color: #fff;
  text-decoration: none;
}
.login-body .login-card .portal-primary:hover:not(:disabled) {
  background: var(--band-olive-hover);
  border-color: var(--band-olive-hover);
  box-shadow: none;
}
/* These legacy home blocks are moved or retired by dashboardLayout. Keep their
   final visibility from the first paint, not only after async module startup. */
.dashboard-body .portal-navigation:not([data-dashboard-navigation-ready]),
.dashboard-body #home-view > p:has(> a[href="#my-properties"]),
.dashboard-body #home-view > .project-search,
.dashboard-body #home-view > #project-results,
.dashboard-body #home-view > .drafts-section,
.dashboard-body #home-view > .document-center {
  display: none;
}
.account-disclosure[open] > summary.profile-editor-heading { border-bottom-color: var(--band-line); }
.account-disclosure-icon { border: 1px solid var(--band-line); border-radius: 6px; }

@media (max-width: 700px) {
  .dashboard-body #home-view .quick-actions { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: auto; }
  .dashboard-body #home-view .quick-card.lease-action {
    grid-row: auto;
    min-height: 138px;
    padding: 20px;
    border-right: 0;
    border-bottom: 1px solid var(--band-ink);
  }
  .dashboard-body #home-view .quick-card,
  .dashboard-body #home-view .quick-card + .quick-card { min-height: 72px; padding: 13px 17px; }
  .dashboard-body #home-view .quick-card.lease-action { padding: 20px; }
  .dashboard-body #home-view .quick-card.lease-action strong { font-size: clamp(25px,7vw,31px); }
}
@media (max-width: 480px) {
  .home-body .hero-service { padding: 16px; }
  .home-body .hero-service > .service-link { min-height: 76px; padding: 12px; }
  .segmented { grid-template-columns: minmax(0,1fr); }
  .segmented .segment + .segment span { border-left: 1px solid var(--band-line); border-top: 0; }
  .segmented .segment:first-child span { border-radius: 8px 8px 0 0; }
  .segmented .segment:last-child span { border-radius: 0 0 8px 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-body #home-view .quick-card,
  .home-body .hero-service > .service-link { transition: none; }
}

/* A radio must remain distinguishable from a checkbox, and a busy spinner
   must remain legible. Neither is a container or a button silhouette. */
body input[type="radio"],
body .segment span::before,
body .button-spinner {
  border-radius: 50% !important;
}

/* Large circular ornaments would become oversized square decorations. */
body .login-story::after,
body .dossier-card::after,
body .property-visual::after,
body .onboarding-welcome::after,
body .onboarding-complete::after {
  display: none !important;
}

/* Brand mark and account avatars share a folded upper-right corner. Keep the monogram
   and existing footprint so headers and account controls remain aligned. */
body :is(.brand-mark, .avatar) {
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
  isolation: isolate;
  clip-path: polygon(0 0, 72% 0, 100% 28%, 100% 100%, 0 100%);
  background: var(--band-olive);
  color: #fff;
  border: 0;
  box-shadow: none;
  padding: 3px 0 0;
}
body :is(.brand-mark, .avatar)::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0 0 auto auto;
  border: 0;
  width: 28%;
  height: 28%;
  background: #cbd5b9;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  pointer-events: none;
}
