/* AJRE approved visual direction: royal blue, original gold artwork, white space.
   Presentation only. Account authentication and record permissions are unchanged. */
:root {
  --royal: #193f90;
  --royal-light: #254fa4;
  --navy: #102858;
  --gold: #d5ad55;
  --gold-light: #f3dfa0;
  --gold-dark: #855b14;
  --forest: var(--royal);
  --forest-2: var(--royal-light);
  --sage: #edf2fc;
  --ink: #15294f;
  --muted: #5f6f89;
  --line: #e0e6f0;
  --paper: #f5f7fc;
  --blue: #274d91;
  --blue-bg: #edf3ff;
  --amber: #895c14;
  --amber-bg: #fff5df;
  --red: #b23f38;
  --red-bg: #fceceb;
  --shadow: 0 7px 25px #152e6105;
  --radius: 15px;
  color-scheme: light;
}
body { background: var(--paper); }
button, a, input, select, textarea { touch-action: manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 3px solid #a8751b;
  outline-offset: 3px;
}
.btn, .nav-item, .icon-button { transition: background-color .15s, border-color .15s, box-shadow .15s; }
.btn { color: var(--ink); border-radius: 8px; }
.btn:hover { background: #edf2fc; border-color: #c8d4eb; }
.btn.primary { background: var(--royal); border-color: var(--royal); box-shadow: 0 3px 8px #193f9010; }
.btn.primary:hover { background: var(--navy); border-color: var(--navy); }
.btn.soft { background: #edf2fc; border-color: #e1e9f8; }
.text-button { color: var(--royal); }
.brand-loading { display: block; width: 44px; height: 66px; object-fit: contain; margin: auto; }
.loading { color: var(--royal); }
.shell { grid-template-columns: 246px minmax(0, 1fr); }
.sidebar {
  width: 246px; padding: 27px 18px 18px;
  background: linear-gradient(165deg, #1e4594 0%, #183875 52%, #102858 100%);
  border-right: 1px solid #1d3d7b;
  color: #e5ecfb; overflow-y: auto; scrollbar-width: thin;
  scrollbar-color: #4763a3 transparent;
}
.brand-stacked {
  width: 100%; min-height: 98px; display: flex; align-items: flex-start;
  padding: 0 6px 23px; margin-bottom: 17px; gap: 12px;
  border-bottom: 1px solid #e4ca8738;
}
.brand-key { display: block; width: 43px; height: 65px; object-fit: contain; flex-shrink: 0; }
.brand-wordmark { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 8px; padding-top: 15px; min-width: 0; }
.brand-name-image { display: block; width: 119px; height: auto; max-width: 100%; }
.brand-company-image { display: block; width: 147px; height: auto; max-width: 100%; }
.brand-full { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; padding: 0; position: relative; z-index: 2; }
.brand-full-image { display: block; width: 410px; max-width: 100%; height: auto; }
.brand-full .brand-sub { font-size: 9px; letter-spacing: 2px; color: #e6d9b5; margin: 0; }
.nav-label { color: #c4d2ef; margin: 8px 12px 15px; font-size: 9px; letter-spacing: 1.8px; }
.nav-item { color: #e1e8f9; padding: 12px 14px; min-height: 44px; margin: 5px 0; font-size: 12px; gap: 12px; }
.nav-item:hover { color: #fff; background: #ffffff10; }
.nav-item.active { color: #fff; background: #ffffff17; box-shadow: inset 3px 0 var(--gold-light), inset 0 0 0 1px #ffffff0d; }
.nav-item.active .icon { color: var(--gold-light); }
.nav-count { color: #fae5af; background: #bd985733; min-width: 24px; text-align: center; padding: 3px 6px; }
.sidebar-bottom { padding-top: 38px; }
.care-note {
  margin: 0 4px 20px; padding: 19px 17px; border: 1px solid #e5ce933d;
  border-radius: 12px; min-height: 152px; position: relative; overflow: hidden;
  background: linear-gradient(145deg, #1c407ebf, #0a224cdf);
}
.care-note::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .13;
  background: url('/static/assets/approved-architecture.webp') center bottom / cover;
}
.care-note > * { position: relative; }
.care-note .icon { color: var(--gold-light); width: 23px; height: 23px; margin-bottom: 12px; }
.care-note h3 { color: var(--gold-light); font-size: 15px; font-weight: 500; line-height: 1.35; margin-bottom: 9px; }
.care-note p { color: #d2ddf1; font-size: 11px; }
.profile { border-top-color: #e4ca8730; padding-top: 16px; }
.avatar { background: linear-gradient(125deg, #f8eabd, #d7b365); color: #16305d; border: 1px solid #efd89c; }
.profile-name { max-width: 149px; }
.profile-role { color: #b9c9e8; }
.topbar { height: 76px; padding: 0 30px; gap: 19px; border-top: 2px solid var(--gold); }
.header-search { background: #f8f9fd; border-color: var(--line); max-width: 286px; }
.header-search input { width: 198px; height: 36px; color: var(--ink); }
.header-search input::placeholder { color: #6b7890; }
.top-date { display: flex; gap: 9px; align-items: center; font-size: 11px; }
.top-date .icon { width: 17px; height: 17px; color: var(--ink); }
.icon-button { color: var(--royal); }
.top-profile { display: flex; align-items: center; gap: 9px; border: 0; background: none; padding: 0; }
.top-profile > .icon { width: 13px; height: 13px; color: var(--royal); transform: rotate(90deg); }
.top-profile .avatar { width: 34px; height: 34px; }
.mobile-brand-key { display: none; }
.preview-bar { padding: 8px 30px; background: #fcf8ee; border-color: #eee0ba; color: #765b23; }
.preview-bar select { color: var(--royal); border-color: #ddc892; background: #fff; }
.preview-label .icon { width: 15px; height: 15px; }
main { padding: 27px 30px 26px; max-width: 1600px; }
.dashboard-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0 0 19px; }
.dashboard-heading .eyebrow, .page-heading .eyebrow { color: var(--gold-dark); letter-spacing: 1.8px; }
.dashboard-heading .eyebrow::before, .page-heading .eyebrow::before { content: ""; display: inline-block; vertical-align: middle; width: 22px; height: 1px; background: var(--gold); margin-right: 10px; }
.dashboard-heading .btn { padding: 9px 13px; font-size: 11px; }
.hero {
  padding: 30px 32px; min-height: 264px; margin-bottom: 22px;
  border: 1px solid #dce4f1; border-radius: 18px; align-items: center;
  background: #f3f6fc; color: var(--ink); box-shadow: 0 8px 28px #18357207;
}
.hero::after { display: none; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, #fff 0%, #fffffffa 36%, #ffffffdd 48%, #ffffff30 70%, #ffffff00 100%);
}
.hero > .hero-copy { position: relative; z-index: 2; max-width: 64%; }
.hero .eyebrow { color: #5a70a3; letter-spacing: 1.9px; margin-bottom: 12px; font-size: 9px; }
.hero h1 {
  font-family: Georgia, "Times New Roman", serif; font-weight: 400;
  font-size: clamp(31px, 2.8vw, 43px); line-height: 1.09; letter-spacing: -.9px; margin: 0 0 13px;
}
.hero h1 em { font-style: normal; color: var(--gold-dark); }
.hero p { color: #5c6c86; font-size: 12px; line-height: 1.65; max-width: 510px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 19px; }
.hero .btn { margin-top: 0; min-height: 39px; color: #172d53; font-size: 11px; border-color: #d9b667; background: linear-gradient(115deg, #f4dfa1, #ddb964); padding: 10px 14px; box-shadow: 0 3px 8px #8c621010; }
.hero .btn:hover { background: #ebcc82; border-color: #bc923c; }
.hero .btn.hero-secondary { border-color: #d8e1ef; background: #ffffffdf; color: var(--royal); box-shadow: none; }
.hero .btn.hero-secondary:hover { background: #eef3fe; }
.hero > .hero-art {
  position: absolute; inset: 0 0 0 auto; width: 54%; z-index: 0;
  background: url('/static/assets/approved-architecture.webp') center / cover no-repeat;
}
.hero > .hero-aside {
  position: absolute; z-index: 2; right: 20px; bottom: 18px;
  display: flex; gap: 13px; align-items: center; padding: 10px 14px;
  margin: 0; border: 1px solid #ffffffd9; border-left: 2px solid var(--gold);
  background: #ffffffeb; border-radius: 0 8px 8px 0; max-width: 230px;
  backdrop-filter: blur(6px); box-shadow: 0 3px 12px #12244808;
}
.hero-number { font: 31px Georgia, serif; color: var(--gold-dark); margin: 0; }
.hero .hero-aside p { font-size: 9px; line-height: 1.5; color: #354b70; }
.stats { gap: 14px; margin-bottom: 22px; }
.stat { padding: 20px 17px; display: flex; align-items: flex-start; gap: 13px; min-height: 124px; border-radius: 14px; }
.stat-symbol { flex-shrink: 0; width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid #efd9a7; border-radius: 50%; background: #fff8e9; color: var(--gold-dark); }
.stat-symbol .icon { width: 22px; height: 22px; stroke-width: 1.5; }
.stat-copy { min-width: 0; padding-top: 3px; }
.stat-label { margin-bottom: 10px; font-size: 10px; color: var(--ink); line-height: 1.4; }
.stat-number { font-size: 31px; margin-bottom: 9px; font-weight: 500; color: var(--navy); }
.stat-foot { font-size: 9px; line-height: 1.5; color: var(--muted); }
.stat.alert .stat-number { color: var(--navy); }
.stat.urgent .stat-number { color: var(--red); }
.stat.urgent .stat-symbol { color: var(--red); background: var(--red-bg); border-color: #f3c9c4; }
.split { grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr); gap: 18px; margin-bottom: 22px; }
.panel { border-color: var(--line); box-shadow: var(--shadow); }
.panel-head { padding: 22px 23px 17px; }
.panel-title { display: flex; align-items: center; gap: 10px; }
.panel-title .icon { color: var(--gold-dark); width: 20px; height: 20px; }
.panel-title + p { padding-left: 30px; }
.panel-head .text-button { font-size: 11px; color: var(--gold-dark); white-space: nowrap; }
.focus-row { border-bottom-color: #edf0f6; padding: 14px 0; }
.focus-text .issue-title { color: var(--ink); font-size: 11px; font-weight: 600; text-align: left; line-height: 1.5; }
.focus-text small { color: var(--muted); line-height: 1.6; }
.focus-symbol.green { color: var(--royal); background: var(--blue-bg); }
.visit-card { background: #f8f9fd; border-color: #e4e9f3; padding: 17px 15px; }
.visit-date { background: linear-gradient(#fffcf5, #fff7e5); border-color: #ebd19a; color: var(--navy); padding: 9px 0; }
.visit-date span { color: var(--gold-dark); }
.visit-date strong { font-size: 24px; }
.visit-details h3 { line-height: 1.6; }
.upcoming-note { padding: 10px 11px; border: 1px solid #dfe7f5; border-radius: 8px; background: #f6f8fd; color: var(--muted); }
.upcoming-note .icon { color: var(--royal); }
.table th { background: #f8f9fc; color: #65738b; font-size: 8px; border-color: #e5eaf4; }
.table td { border-bottom-color: #edf0f6; color: var(--ink); }
.table tbody tr:hover { background: #f8faff; }
.table .issue-title { color: var(--ink); }
.badge { background: #eef2f8; color: #586987; }
.badge.assigned, .badge.in-progress { background: #f0edf9; color: #6e5599; }
.badge.awaiting-confirmation, .badge.proposed { background: #fff4df; color: #7f591c; }
.badge.closed, .badge.confirmed, .badge.completed { background: #edf2fc; color: #285299; }
.priority { color: #5f6f89; }
.priority::before { background: #8c9fbc; }
.priority.p-priority::before { background: #b18429; }
.table-footer { color: var(--muted); }
.footer { margin-top: 26px; border-top: 1px solid var(--line); padding-top: 18px; color: #64738d; }
.footer span:last-child { color: #64738d; }
/* Shared controls and secondary pages: no old forest-green surfaces remain. */
.empty .icon { color: #859ab8; }
.board-col { background: #eef2fa; }
.plot-tile { background: #f7f9ff; }
.note { background: #f4f7fd; color: #506487; }
.note.warning { background: var(--amber-bg); color: #76541b; border-color: #ead9b0; }
.note.danger { background: var(--red-bg); color: var(--red); }
.resource.empty-resource { background: #fbfcff; }
.empty-resource .resource-icon { background: #edf2fb; color: #627da7; }
.field input, .field select, .field textarea { border-color: #d4ddea; }
.field input[type=file] { background: #f8faff; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--royal); }
input[type=checkbox], input[type=radio] { accent-color: var(--royal); }
progress, progress::-webkit-progress-bar { background: #eaf0fa; }
progress::-webkit-progress-value { background: var(--royal); }
progress::-moz-progress-bar { background: var(--royal); }
.activity-row { border-color: #dbe3f2; }
.activity-row::before { background: #617cac; }
.activity-row.internal::before { background: var(--gold); }
.dialog { box-shadow: -10px 0 80px #10285826; }
.dialog::backdrop { background: #0b204f70; }
.dialog-head { border-top: 3px solid var(--gold); }
.dialog-head .eyebrow { color: var(--gold-dark); }
.detail-desc { color: #54647f; }
.detail-facts, .password-output { background: #f6f8fe; }
/* Sign-in: the same approved brand, not a separate visual prototype. */
.login-page { grid-template-columns: 1.1fr 1fr; }
.login-story {
  background: linear-gradient(155deg, #214b9c, #183a7d 58%, #102858);
  padding: 48px 54px 35px; min-height: 780px; border-top: 3px solid var(--gold);
}
.login-copy { max-width: 580px; padding: 58px 0 96px; margin: auto 0; z-index: 2; }
.login-copy .eyebrow { color: #f0dca3; letter-spacing: 2px; font-size: 9px; }
.login-copy h1 { font-size: clamp(40px, 4vw, 57px); line-height: 1.15; letter-spacing: -.85px; }
.login-copy h1 em { color: #f3dfa0; }
.login-copy p { color: #dce5f8; max-width: 400px; font-size: 13px; line-height: 1.9; }
.login-features { color: #edf2ff; gap: 23px; font-size: 11px; }
.login-features .icon { color: var(--gold-light); }
.login-architecture {
  position: absolute; inset: auto 0 0; height: 38%; opacity: .26; z-index: 0;
  background: linear-gradient(180deg, #183a7d 0%, #1536763a 60%, #102858ad 100%), url('/static/assets/approved-architecture.webp') center 67% / cover;
}
.login-legal { color: #d4dff4; line-height: 1.6; font-size: 10px; z-index: 2; }
.login-side { padding: 55px 42px; width: 100%; min-height: 780px; margin: 0; background: #fff; }
.login-form { max-width: 370px; }
.login-form .eyebrow { color: var(--gold-dark); letter-spacing: 1.8px; }
.login-form h2 { font-size: 34px; color: var(--navy); font-weight: 500; }
.login-form > p { color: var(--muted); }
.login-form .field input { padding: 13px 14px; }
.login-form .btn.primary { padding: 14px; border-bottom: 2px solid var(--gold); }
.login-help .text-button { margin-top: 6px; }
.login-preview { background: #fcf8ee; border-color: #eadab3; color: #75591f; }
.login-preview .btn { color: var(--royal); }
.login-bottom { color: #66758d; }
@media (min-width: 1600px) {
  main { padding-top: 32px; }
  .hero { min-height: 285px; }
  .stat { padding: 23px; }
}
@media (max-width: 1250px) {
  .shell { grid-template-columns: 224px minmax(0, 1fr); }
  .sidebar { width: 224px; padding-left: 14px; padding-right: 14px; }
  .brand-key { width: 38px; height: 59px; }
  .brand-stacked { gap: 10px; }
  .brand-wordmark { padding-top: 13px; }
  .brand-name-image { width: 111px; }
  .brand-company-image { width: 135px; }
  .nav-item { font-size: 11px; }
  main { padding: 25px; }
  .topbar { padding: 0 25px; gap: 14px; }
  .top-date { display: none; }
  .preview-bar { padding-left: 25px; padding-right: 25px; }
  .hero { min-height: 247px; padding: 28px; }
  .hero > .hero-copy { max-width: 76%; }
  .hero h1 { font-size: 36px; }
  .hero > .hero-aside { display: none; }
  .stat { padding: 17px 15px; gap: 10px; }
  .stat-symbol { width: 35px; height: 35px; }
  .stat-symbol .icon { width: 18px; height: 18px; }
  .stat-label { font-size: 9px; }
  .stat-number { font-size: 28px; }
  .stat-foot { font-size: 9px; }
  .split { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 16px; }
  .panel-head { padding: 20px 19px 16px; gap: 8px; }
  .panel-head h2 { font-size: 13px; }
  .panel-head .text-button { font-size: 10px; }
  .panel-body { padding: 0 19px 20px; }
  .panel-title { gap: 8px; }
  .panel-title + p { padding-left: 0; }
  .login-story { padding: 43px 39px 32px; }
  .brand-full-image { width: 370px; }
  .login-copy h1 { font-size: 46px; }
}
@media (max-width: 1000px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split { grid-template-columns: 1fr; }
  .stat { padding: 19px; min-height: 112px; }
  .stat-label { font-size: 11px; }
  .stat-foot { font-size: 10px; }
  .hero > .hero-copy { max-width: 100%; }
  .hero::before { background: linear-gradient(90deg, #fff, #ffffffed 58%, #ffffff7a); }
  .top-date { display: flex; margin-left: auto; }
  .header-search { display: none; }
  .panel-head h2 { font-size: 15px; }
  .brand-full .brand-sub { font-size: 8px; letter-spacing: 1.2px; }
  .login-page { grid-template-columns: .95fr 1fr; }
  .login-story { padding: 37px 28px 30px; }
  .login-copy h1 { font-size: 39px; }
  .login-features { gap: 15px; }
  .login-side { padding: 45px 30px; }
}
@media (max-width: 720px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { width: 246px; box-shadow: 10px 0 60px #10285833; }
  .sidebar.open { transform: translateX(0); }
  .brand-key { width: 43px; height: 65px; }
  .brand-name-image { width: 119px; }
  .brand-company-image { width: 147px; }
  .nav-item { font-size: 12px; }
  .topbar { height: 66px; gap: 11px; padding: 0 17px; }
  .mobile-brand-key { display: block; height: 30px; width: 21px; object-fit: contain; }
  .topbar .breadcrumb { gap: 8px; font-size: 11px; min-width: 0; }
  .topbar .breadcrumb > .icon { display: none; }
  .top-date { display: none; }
  .top-profile > .icon { display: none; }
  .top-profile .avatar { width: 30px; height: 30px; font-size: 10px; }
  .topbar .icon-button { height: 32px; width: 32px; }
  .preview-bar { padding: 9px 17px; gap: 6px; }
  .preview-label { font-size: 8px; letter-spacing: .3px; }
  .preview-label .icon { width: 13px; height: 13px; }
  .preview-bar select { max-width: 119px; padding: 3px 4px; font-size: 10px; }
  .preview-link { font-size: 9px; }
  main { padding: 22px 17px 24px; }
  .dashboard-heading { gap: 11px; margin-bottom: 16px; }
  .dashboard-heading .eyebrow { font-size: 8px; letter-spacing: 1.4px; }
  .dashboard-heading .eyebrow::before { width: 16px; margin-right: 7px; }
  .dashboard-heading .heading-actions { margin: 0; }
  .dashboard-heading .btn { font-size: 10px; padding: 9px 11px; }
  .dashboard-heading .heading-actions .btn:not(.primary) { display: none; }
  .hero { min-height: 242px; padding: 24px 21px; border-radius: 14px; margin-bottom: 19px; }
  .hero > .hero-copy { max-width: 100%; }
  .hero h1 { font-size: 32px; line-height: 1.12; letter-spacing: -.6px; margin-bottom: 12px; }
  .hero .eyebrow { font-size: 8px; letter-spacing: 1.5px; margin-bottom: 12px; }
  .hero p { font-size: 11px; max-width: 320px; }
  .hero > .hero-art { width: 100%; opacity: .48; background-position: 55% center; }
  .hero::before { background: linear-gradient(90deg, #fffffffa, #ffffffeb 58%, #ffffffc2); }
  .hero-actions { gap: 8px; margin-top: 17px; }
  .hero .btn { font-size: 10px; padding: 9px 10px; min-height: 38px; }
  .hero .btn .icon { width: 13px; height: 13px; }
  .stats { gap: 11px; margin-bottom: 19px; }
  .stat { min-height: 122px; padding: 16px 13px; gap: 8px; display: block; position: relative; }
  .stat-copy { padding: 0; }
  .stat-symbol { position: absolute; right: 12px; top: 14px; width: 27px; height: 27px; }
  .stat-symbol .icon { height: 15px; width: 15px; }
  .stat-label { font-size: 10px; max-width: calc(100% - 29px); min-height: 28px; line-height: 1.4; margin-bottom: 8px; }
  .stat-number { font-size: 30px; margin-bottom: 8px; }
  .stat-foot { font-size: 9px; }
  .panel-head { padding: 19px 16px 15px; }
  .panel-head h2 { font-size: 13px; }
  .panel-title { gap: 8px; }
  .panel-title .icon { width: 17px; height: 17px; }
  .panel-head p { font-size: 10px; line-height: 1.6; }
  .panel-head .text-button { font-size: 9px; }
  .panel-body { padding: 0 16px 18px; }
  .focus-row { gap: 8px; }
  .focus-text .issue-title { font-size: 11px; }
  .focus-text small { font-size: 9px; }
  .focus-row .badge { font-size: 8px; padding: 5px 6px; }
  .visit-card { padding: 14px 12px; }
  .visit-details h3 { font-size: 11px; }
  .upcoming-note { font-size: 9px; }
  .footer { padding-top: 16px; }
  .login-page { display: block; }
  .login-story { min-height: auto; padding: 24px 26px 28px; }
  .brand-full { gap: 10px; }
  .brand-full-image { width: 286px; }
  .brand-full .brand-sub { font-size: 7px; letter-spacing: 1.4px; }
  .login-copy { margin: 29px 0 0; padding: 0; }
  .login-copy .eyebrow { font-size: 8px; letter-spacing: 1.5px; margin-bottom: 13px; }
  .login-copy h1 { font-size: 34px; line-height: 1.17; }
  .login-copy p { font-size: 12px; line-height: 1.75; margin-top: 15px; max-width: 430px; }
  .login-features, .login-legal { display: none; }
  .login-architecture { height: 60%; opacity: .1; }
  .login-side { padding: 31px 26px; min-height: auto; }
  .login-form { max-width: 430px; }
  .login-form h2 { font-size: 29px; }
  .login-form .eyebrow { font-size: 9px; }
  .login-form .field input { padding: 12px; font-size: 16px; }
}
@media (max-width: 360px) {
  .preview-bar { gap: 5px; }
  .preview-label { font-size: 7px; }
  .preview-bar select { max-width: 105px; font-size: 9px; }
  .dashboard-heading .eyebrow { letter-spacing: .8px; }
  .hero { padding: 23px 18px; }
  .hero h1 { font-size: 29px; }
  .hero .btn { padding: 9px; font-size: 9px; }
  .stat-label { font-size: 9px; }
  .panel-title { gap: 6px; }
  .panel-head h2 { font-size: 12px; }
  .panel-head .text-button { font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
/* A visible close control and outside-tap target for the mobile drawer. */
.sidebar-close, .nav-backdrop { display: none; }
@media (max-width: 720px) {
  .sidebar-close { display: grid; place-items: center; position: absolute; right: 9px; top: 8px; width: 27px; height: 27px; border-radius: 5px; border: 0; background: #ffffff10; color: #f3dfa0; z-index: 3; }
  .sidebar-close .icon { width: 15px; height: 15px; }
  .sidebar.open + .nav-backdrop { display: block; position: fixed; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: #0b204f66; backdrop-filter: blur(1px); z-index: 39; }
}
@media (max-width: 720px) {
  .sidebar { box-shadow: none; }
  .sidebar.open { box-shadow: 10px 0 60px #10285833; }
}

/* v0.11 - operational daily view for the AJRE Customer Care Coordinator. */
.care-dashboard{display:grid;gap:18px;min-width:0}
.care-dash-head{background:linear-gradient(116deg,#102b60 0%,#1c4895 100%);color:#fff;border:1px solid #234687;border-radius:17px;padding:28px 31px;display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;overflow:hidden;isolation:isolate}
.care-dash-head:before{content:"";position:absolute;top:-210px;left:45%;height:420px;width:420px;border:1px solid #ffffff13;border-radius:100%;z-index:-1}
.care-dash-head:after{content:"";position:absolute;top:-85px;right:-100px;height:315px;width:315px;border:1px solid #e5be6738;border-radius:100%;z-index:-1}
.care-dash-head h1{font-size:clamp(24px,2.5vw,37px);line-height:1.15;color:white;margin:11px 0 9px;letter-spacing:-.028em}
.care-dash-head p{color:#e3ebfb;font-size:13px;line-height:1.55;max-width:520px;margin:0 0 11px}
.care-dash-head .eyebrow{color:#e4be72;font-size:10px;letter-spacing:1.7px;font-weight:750}
.care-updated{font-size:10px;color:#ccd9f3}
.care-dash-actions{display:grid;gap:13px;justify-items:end;min-width:255px}
.care-project-selector{display:grid;gap:6px;width:100%}
.care-project-selector label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#f5d993;font-weight:700}
.care-project-selector select{background:#fff;border:1px solid #d5dce9;border-radius:8px;min-width:235px;width:100%;height:40px;padding:6px 34px 6px 12px;color:#1b365e;font-size:12px}
.care-primary-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.care-primary-actions .btn{min-height:40px;font-size:11px;padding:10px 13px;background:#fff;color:#173a73;border-color:#d8e1f1}
.care-primary-actions .btn.primary{background:#d5ac59;border-color:#e1bd79;color:#102b60;font-weight:750}
.care-primary-actions .btn.primary:hover{background:#f0d59b;color:#102b60}
.care-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}
.care-kpi{border:1px solid #e0e6f0;border-radius:13px;background:#fff;box-shadow:0 6px 15px #132e5908;color:#17366e;text-align:left;padding:17px 14px;display:flex;flex-direction:column;min-height:158px;cursor:pointer;min-width:0;transition:box-shadow .18s,border-color .18s,transform .18s}
.care-kpi:hover,.care-kpi:focus-visible{border-color:#c09c55;box-shadow:0 9px 22px #122c5b19;transform:translateY(-1px)}
.care-kpi-top{display:flex;align-items:center;justify-content:space-between;color:#a6813e;width:100%;margin-bottom:15px}
.care-kpi-top>.icon{width:24px;height:24px;stroke-width:1.65}
.care-kpi-chevron>.icon{color:#8c9bb5;width:15px;height:15px}
.care-kpi-value{font-size:31px;font-weight:750;color:#16356c;line-height:1;letter-spacing:-.04em;margin-bottom:8px}
.care-kpi strong{font-size:12px;line-height:1.3}
.care-kpi small{font-size:10px;color:#687a94;line-height:1.45;margin-top:6px}
.care-kpi.attention .care-kpi-value{color:#a54137}
.care-kpi.attention .care-kpi-top{color:#b65b4d}
.care-secondary-tasks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.care-secondary-tasks button{display:flex;align-items:center;gap:9px;min-height:53px;background:#fff;border:1px solid #e1e7f0;border-radius:10px;padding:12px 17px;font-size:11px;color:#476184;cursor:pointer;text-align:left;white-space:normal}
.care-secondary-tasks button:hover{border-color:#c7a35a;color:#164189}
.care-secondary-tasks button .icon{width:17px;height:17px;flex-shrink:0;color:#c29b55}
.care-secondary-tasks button .icon:last-child{margin-left:auto;color:#8698b1;width:15px;height:15px}
.care-secondary-tasks button strong{font-size:17px;color:#143675;font-weight:750}
.care-panels{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:17px;align-items:stretch}
.care-panel{min-width:0;overflow:hidden}
.care-panel .panel-head{align-items:flex-start;gap:9px;padding:19px 21px 15px}
.care-panel .panel-head h2{display:flex;gap:9px;align-items:center;color:#183b79;font-size:17px;margin:0}
.care-panel .panel-head h2 svg{color:#be9a4f;width:19px;height:19px}
.care-panel .panel-head p{padding-left:0;color:#718097;font-size:11px;line-height:1.55;margin:7px 0 0}
.care-panel .panel-head .text-button{margin-left:auto;flex-shrink:0;font-size:11px}
.care-panel-body{padding:5px 21px 16px}
.care-action-row{display:flex;align-items:center;gap:12px;padding:13px 0;width:100%;border:0;border-bottom:1px solid #ecf0f7;background:transparent;text-align:left;cursor:pointer;min-width:0;color:#213e68}
.care-action-row:last-child{border-bottom:0}
.care-action-row:hover .care-action-main strong,.care-action-row:focus-visible .care-action-main strong{color:#a17632}
.care-action-status{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;background:#f4f0e5;color:#a27b3e;border-radius:9px}
.care-action-status.urgent-review{background:#fff0ed;color:#ad5044}
.care-action-status.past-indicative-target{background:#fff3e6;color:#ac6834}
.care-action-status .icon{width:19px;height:19px}
.care-action-main{min-width:0;flex:1;display:grid;gap:5px}
.care-action-main strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.care-action-main>span{font-size:10px;line-height:1.45;color:#6d7d95;overflow-wrap:anywhere}
.care-dot{padding:0 4px;color:#b6bfd0}
.care-action-right{display:grid;gap:6px;flex-shrink:0;justify-items:end;max-width:130px}
.care-action-right small{font-size:10px;color:#708099}
.care-reason{font-size:9px;font-weight:700;background:#edf2fb;color:#29558a;padding:5px 8px;border-radius:6px;max-width:100%;text-align:center}
.care-reason.urgent-review{background:#feece8;color:#a54038}
.care-reason.past-indicative-target{background:#fff0da;color:#986323}
.care-action-row>.icon{color:#91a0b6;flex-shrink:0;width:13px;height:13px}
.care-visit-row{display:flex;width:100%;gap:11px;align-items:center;text-align:left;background:transparent;padding:15px 0;border:0;border-bottom:1px solid #edf0f6;cursor:pointer;color:#24406d;min-width:0}
.care-visit-row:last-child{border-bottom:0}
.care-visit-row:hover strong{color:#b0833d}
.care-visit-date{width:46px;min-width:46px;height:50px;border:1px solid #e4d4b2;border-radius:8px;background:#fff8eb;color:#8b6a36;display:grid;align-content:center;justify-items:center}
.care-visit-date strong{font-size:19px;line-height:1}
.care-visit-date small{font-size:10px;text-transform:uppercase;font-weight:650}
.care-visit-body{display:grid;gap:4px;min-width:0;flex:1}
.care-visit-body strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.care-visit-body small{font-size:10px;color:#6f819a;overflow-wrap:anywhere}
.care-visit-row>.badge{font-size:9px}
.care-workload-row{display:grid;grid-template-columns:minmax(135px,1fr) minmax(60px,1.15fr) auto 17px;align-items:center;gap:17px;padding:12px 0;width:100%;background:transparent;border:0;border-bottom:1px solid #edf0f6;cursor:pointer;color:#27436d;text-align:left}
.care-workload-row:last-child{border:0}
.care-workload-row:hover strong{color:#b18440}
.care-workload-name{display:grid;gap:4px;min-width:0}
.care-workload-name strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.care-workload-name small{font-size:10px;color:#79879d}
.care-workload-bar{height:9px;background:#edf1f7;border-radius:50px;display:block;overflow:hidden}
.care-workload-bar i{background:linear-gradient(90deg,#183f8b,#c4a05b);display:block;height:100%;border-radius:50px}
.care-workload-total{font-size:14px;font-weight:700;white-space:nowrap}
.care-workload-total small{font-size:10px;color:#7c8ca4;font-weight:400}
.care-workload-row>.icon{color:#8a9cb4;width:16px;height:16px}
.care-panel-empty{padding:26px 16px;display:grid;gap:9px;justify-items:center;text-align:center;color:#76849c;font-size:12px;line-height:1.5}
.care-panel-empty>.icon{color:#bb9755;width:28px;height:28px}
.care-panel-empty strong{color:#27436f;font-size:13px}
.care-empty{padding:32px 15px;text-align:center;display:grid;gap:10px;justify-items:center}
.care-empty-icon{background:#f3f6ed;border:1px solid #d5e5cb;color:#73936d;display:grid;place-items:center;width:45px;height:45px;border-radius:50%}
.care-empty h3{font-size:17px;color:#173975;margin:0}
.care-empty p{max-width:410px;font-size:12px;line-height:1.6;color:#667993;margin:0}
.care-empty .btn{margin-top:7px}
.care-dashboard-footnote{display:flex;gap:11px;align-items:flex-start;border:1px solid #e8dfc7;background:#fcfaf6;color:#806d4c;border-radius:9px;padding:13px 17px;font-size:11px;line-height:1.55}
.care-dashboard-footnote>.icon{width:18px;height:18px;flex-shrink:0;color:#b88e49}
.care-queue-filter{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#355b92}
.care-queue-filter .text-button{white-space:nowrap}
@media(max-width:1350px){.care-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.care-kpi{min-height:133px}.care-kpi-top{margin-bottom:9px}}
@media(max-width:1000px){.care-panels{grid-template-columns:1fr}.care-dash-head{align-items:flex-start}.care-dash-actions{min-width:195px}.care-project-selector select{min-width:0}}
@media(max-width:750px){.care-dash-head{flex-direction:column;gap:19px;padding:25px 21px}.care-dash-actions{width:100%;min-width:0;justify-items:stretch}.care-primary-actions{justify-content:flex-start}.care-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.care-secondary-tasks{grid-template-columns:1fr}.care-kpi{padding:14px;min-height:137px}.care-panel .panel-head{padding:18px 14px 11px}.care-panel-body{padding:5px 14px 15px}.care-action-row{gap:8px}.care-action-right{max-width:105px}.care-action-main strong{font-size:11px}.care-dash-head h1{font-size:29px}}
@media(max-width:460px){.care-kpi-value{font-size:27px}.care-kpi strong{font-size:11px}.care-kpi small{font-size:9px}.care-action-status{width:29px;height:29px}.care-action-right small{display:none}.care-visit-row>.badge{display:none}.care-workload-row{grid-template-columns:minmax(100px,1fr) minmax(40px,.65fr) auto 14px;gap:8px}.care-workload-name strong{font-size:11px}.care-queue-filter{align-items:flex-start;flex-direction:column}}

/* v0.12 private Home Documents library */
.docs-filter{padding:26px 28px;margin-bottom:25px;border-radius:20px}
.docs-filter-head{display:flex;align-items:center;justify-content:space-between;gap:22px}
.docs-filter-head h2,.docs-section-heading h2{font-size:21px;color:#122954;margin:5px 0 5px}
.docs-filter-head p,.docs-section-heading p{margin:0;color:#65738c;font-size:13px;line-height:1.5}
.docs-filter .eyebrow{color:#b38d4e;font-size:10px;letter-spacing:1.8px}
.docs-selectors{display:grid;grid-template-columns:1fr 1.5fr;gap:16px;margin-top:20px}
.docs-selectors .field{margin-bottom:0}
.docs-overview{display:flex;flex-wrap:wrap;gap:13px;margin-top:19px;border-top:1px solid #e9ecf2;padding-top:17px}
.docs-overview span{display:inline-flex;align-items:center;gap:9px;background:#f4f7fb;border:1px solid #e8edf5;border-radius:12px;padding:10px 14px;font-size:12px;color:#576984}
.docs-overview svg{color:#b99150}
.docs-overview strong{font-size:16px;color:#153b7e}
.docs-checklist{padding:24px 26px;margin:20px 0 28px}
.docs-checklist .panel-head{padding:0;border:0;margin-bottom:16px}
.docs-checklist .panel-head h2{font-size:18px;margin:0 0 5px}
.docs-checklist .panel-head p{font-size:12px;line-height:1.5;color:#687891;margin:0}
.docs-checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.docs-check{display:flex;align-items:center;gap:11px;border:1px solid #e6eaf2;border-radius:13px;background:#fcfcfe;padding:14px;color:#4d5b72;font-size:12px}
.docs-check svg{color:#b58c3d;flex-shrink:0}
.docs-check span{flex:1;line-height:1.3}
.docs-check strong{font-size:11px;font-weight:650;color:#985d18}
.docs-check.complete{background:#f3f9f4;border-color:#dcebdc}
.docs-check.complete svg,.docs-check.complete strong{color:#28764a}
.docs-section{margin:23px 0 34px}
.docs-section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 15px}
.docs-section-heading h2{margin:0 0 4px}
.docs-section-heading span{background:#edf1f8;border-radius:50px;color:#29476e;font-size:12px;font-weight:650;padding:8px 13px;white-space:nowrap}
.docs-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.docs-card{padding:21px 20px;min-width:0;border-radius:16px}
.docs-card-top{display:flex;align-items:flex-start;gap:14px}
.docs-file-icon{display:grid;place-items:center;background:#f6eddc;border:1px solid #ebdcbb;color:#b18a43;width:46px;height:46px;border-radius:12px;flex-shrink:0}
.docs-file-icon svg{width:22px;height:22px}
.docs-file-details{min-width:0;flex:1}
.docs-card h3{font-size:16px;color:#122a53;margin:9px 0 5px;line-height:1.35}
.docs-card p{margin:0 0 4px;font-size:13px;color:#42577d;line-height:1.5;overflow-wrap:anywhere}
.docs-card small{display:block;font-size:11px;color:#7a879c;line-height:1.5;overflow-wrap:anywhere}
.docs-card .docs-expiry{margin-top:6px;color:#99671e}
.docs-card-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.docs-category,.docs-status{font-size:10px;padding:5px 9px;border-radius:30px;font-weight:650}
.docs-category{background:#eaf0fa;color:#224a91}
.docs-status{background:#edf7ed;color:#28744d}
.docs-status.draft{background:#fff4db;color:#9a6107}
.docs-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-top:1px solid #edf0f5;margin-top:19px;padding-top:15px}
.docs-card-actions .btn{min-height:36px}
.docs-card-actions .text-button{font-size:12px}
.docs-publish-option{margin:14px 0;padding:15px;border:1px solid #e3e9f2;border-radius:12px;background:#f6f8fc}
.docs-publish-option .check{margin:5px 0}
#doc-plot-wrap[hidden],#doc-approval-wrap[hidden]{display:none!important}
@media(max-width:850px){.docs-card-grid{grid-template-columns:1fr}.docs-selectors{grid-template-columns:1fr}.docs-checklist-grid{grid-template-columns:1fr}}
@media(max-width:650px){.docs-filter{padding:18px}.docs-filter-head{align-items:stretch;flex-direction:column}.docs-filter-head .btn{width:100%;justify-content:center}.docs-overview{gap:7px}.docs-overview span{padding:8px 9px;font-size:11px}.docs-card{padding:17px 14px}.docs-card-actions{gap:7px}}

/* AJRE v0.13 — contractor evidence, on-site acknowledgement and AJRE closure. */
.completion-actions{background:linear-gradient(130deg,#f8fafd,#fdfaf5);border:1px solid #dbe4f1;border-left:4px solid #bd9856;border-radius:12px;padding:17px 19px;margin:19px 0;color:#1c345e}
.completion-actions p{font-size:13px;line-height:1.65;margin:0 0 12px}.completion-actions strong{color:#153f7b;font-size:15px}
.completion-buttons{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:12px 0}
.completion-buttons .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:7px}
.signoff-history{margin:24px 0 22px}.signoff-history h3{display:flex;gap:8px;align-items:center;color:#183e79;font-size:17px;margin:0 0 8px}.signoff-history h3 svg{color:#ad8745}.signoff-history>p{margin:0 0 15px;font-size:12px}
.signoff-record{border:1px solid #dfe7f0;border-radius:13px;padding:18px;margin:13px 0;background:#fff;box-shadow:0 4px 15px rgba(22,48,83,.035);min-width:0}
.signoff-record p{font-size:13px;line-height:1.6;color:#4a5b72}.signoff-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#173b74}
.signoff-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}
.signoff-photos>a{border:1px solid #dfe6ef;background:#f4f7fb;border-radius:11px;overflow:hidden;display:block;position:relative;min-width:0;text-decoration:none}
.signoff-photos img{width:100%;height:138px;object-fit:cover;display:block}
.signoff-photos span{position:absolute;left:9px;bottom:8px;background:rgba(16,49,100,.94);padding:4px 10px;border-radius:5px;color:#fff;font-size:10px;letter-spacing:.07em;font-weight:800}
.signoff-note{border-left:3px solid #bf9a58;padding:9px 13px;background:#fdf9f1;border-radius:4px}
.signoff-note strong{color:#1c477f}.signoff-note p{margin:5px 0 0}
.signoff-signature{display:block;width:100%;height:auto;aspect-ratio:640/210;border:2px dashed #b6c6df;background:#fff;border-radius:10px;touch-action:none;cursor:crosshair;margin:8px 0 6px;max-width:600px}
.signoff-divider{border:0;border-top:1px solid #dce4f2;margin:22px 0}
.field-label{font-size:13px;font-weight:700;color:#163a74;display:block}
#signature-fields[hidden],#paper-fields[hidden],#unsigned-fields[hidden]{display:none!important}
@media(max-width:600px){.signoff-record{padding:13px}.signoff-photos img{height:115px}.completion-actions{padding:13px}.completion-buttons>.btn{width:100%}}
/* v0.14 - AJRE property handover & warranty register */
.handover-workspace{display:grid;gap:18px;min-width:0}
.handover-workspace .page-heading{margin-bottom:0}
.handover-hero{border-radius:17px;padding:28px 32px;background:linear-gradient(115deg,#122d66 0%,#1b458d 70%,#2350a0 100%);color:#fff;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden;min-height:168px}
.handover-hero:after{content:"";position:absolute;right:-50px;top:-100px;width:340px;height:340px;border:1px solid #f5da8e36;border-radius:50%}
.handover-hero .eyebrow{color:#f4ce78;font-size:10px;letter-spacing:.17em;font-weight:750;margin-bottom:11px}
.handover-hero h2{font-size:28px;line-height:1.2;letter-spacing:-.02em;margin:0 0 10px;position:relative;z-index:1}
.handover-hero p{max-width:600px;color:#e0e9fd;line-height:1.7;font-size:12px;position:relative;z-index:1}
.handover-hero-key{border:1px solid #ffffff31;background:#ffffff10;color:#f5cd70;border-radius:100%;width:66px;height:66px;display:grid;place-items:center;z-index:1;flex-shrink:0}
.handover-hero-key .icon{width:30px;height:30px}
.handover-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}
.handover-kpi{border:1px solid #e0e6f0;border-radius:13px;background:#fff;padding:18px;display:grid;gap:8px;box-shadow:0 7px 22px #122c5b08}
.handover-kpi .icon{color:#be9950;width:21px;height:21px}.handover-kpi strong{font-size:30px;line-height:1;color:#17386f}.handover-kpi span{color:#657891;font-weight:650;font-size:11px;line-height:1.4}
.handover-register{overflow:hidden}.handover-filters{display:flex;gap:12px;align-items:flex-end;padding:0 21px 19px;flex-wrap:wrap}.handover-filters label{display:grid;gap:7px;font-size:11px;font-weight:700;color:#405579;flex:1;min-width:180px}.handover-filters select,.handover-filters input{border:1px solid #dce3ef;border-radius:8px;height:42px;padding:0 11px;color:#18376b;background:#fff;width:100%;font-size:12px}.handover-table{width:100%}.handover-table td{vertical-align:middle;white-space:normal}.handover-table th{font-size:10px;white-space:nowrap}.handover-table .btn{white-space:nowrap}.handover-table .issue-meta{display:block;margin-top:5px}
.handover-stage{display:inline-flex;align-items:center;white-space:nowrap;border-radius:50px;padding:6px 10px;font-size:10px;font-weight:700;background:#eef1f8;color:#34476b}.handover-stage.handed-over{background:#e6f4ec;color:#187246}.handover-stage.ready-for-handover{background:#eaf0fe;color:#194d9b}.handover-stage.preparing{background:#fff2d8;color:#916319}.handover-stage.on-hold{background:#fde8e6;color:#9b443e}
.handover-mini-bar{width:100px;height:5px;border-radius:4px;background:#e8edf5;overflow:hidden;margin-bottom:6px}.handover-mini-bar i{background:#b99048;display:block;height:100%;border-radius:inherit}.handover-alert{color:#ad6b20;font-weight:700;font-size:10px}.handover-ok{color:#267456;font-weight:700;font-size:10px}.handover-loading{padding:18px;color:#697a94;font-size:13px}
.dialog:has(.handover-sheet){width:min(920px,95vw);max-width:95vw}.handover-sheet{display:grid;gap:16px}.handover-sheet-intro{display:flex;gap:17px;align-items:center;padding:15px 17px;background:#f1f5fc;border:1px solid #e3e9f4;border-radius:12px}.handover-sheet-intro>span{display:grid;place-items:center;width:45px;height:45px;background:#fff;border:1px solid #e8e3d8;color:#b18a43;border-radius:12px;flex-shrink:0}.handover-sheet-intro .icon{width:23px;height:23px}.handover-sheet-intro .eyebrow{font-size:10px;color:#a97c38}.handover-sheet-intro h3{margin:5px 0;color:#18396e;font-size:19px}.handover-sheet-intro p{font-size:11px;color:#6b7b95;line-height:1.6;margin:0}
.handover-form-block{border:1px solid #e2e8f2;background:#fff;border-radius:13px;padding:20px;margin:17px 0}.handover-form-block>h3{font-size:17px;color:#153975;margin:0 0 17px}.handover-form-block>.muted{margin:-8px 0 15px;color:#728199;font-size:12px}.handover-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.handover-form-block .field input,.handover-form-block .field select,.handover-form-block textarea{width:100%;border-radius:8px}.handover-form-block .note{font-size:11px;margin-top:18px}.handover-task{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid #edf0f5;padding:13px 0}.handover-task:last-child{border-bottom:0}.handover-task-title{min-width:140px;flex:1;display:grid;gap:5px}.handover-task-title strong{font-size:12px;color:#17376b}.handover-task-title small{font-size:10px;color:#70819c}.handover-task-control{display:flex;gap:9px;flex:1;min-width:240px}.handover-task-control select{min-width:135px;padding:7px 9px;background:#fff;color:#21395c;border:1px solid #dce3ef;border-radius:8px;font-size:11px}.handover-task-control input{min-width:0;flex:1;border:1px solid #dce3ef;border-radius:8px;padding:7px 9px;font-size:11px}.handover-form-actions{display:flex;justify-content:flex-end;gap:11px;align-items:center}.handover-form-footnote{font-size:10px;color:#72839a;text-align:right}.handover-change{border-left:2px solid #be9950;padding:6px 12px;font-size:12px;line-height:1.55}.handover-change small{color:#75869b;font-size:11px}
.handover-home-hero{background:#14336d;color:white;padding:26px 30px;border-radius:14px}.handover-home-hero .eyebrow{color:#dbbc70;font-size:10px}.handover-home-hero h2{font-size:25px;margin:8px 0}.handover-home-hero p{font-size:12px;color:#e0e9fd}.handover-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;align-items:start}.handover-home-section .panel-head{border-bottom:1px solid #ecf0f6}.handover-details{padding:3px 19px 15px;margin:0}.handover-details>div{padding:12px 0;border-bottom:1px solid #eef1f6;display:grid;gap:6px}.handover-details>div:last-child{border:0}.handover-details dt{font-size:11px;color:#7a879b}.handover-details dd{margin:0;font-size:13px;color:#153975;font-weight:650}.handover-resident{text-align:center;padding:55px 30px}.handover-resident-icon{background:#f9f0dc;color:#aa823c;border-radius:50%;display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px}.handover-resident-icon .icon{width:30px;height:30px}.handover-resident h2{font-size:22px;margin:0 auto 12px}.handover-resident p{max-width:500px;margin:0 auto 22px;color:#718199;line-height:1.7}
@media(max-width:1100px){.handover-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.handover-hero h2{font-size:25px}}
@media(max-width:700px){.handover-hero{padding:25px 21px}.handover-hero h2{font-size:22px}.handover-hero-key{display:none}.handover-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.handover-kpi{padding:14px}.handover-kpi strong{font-size:24px}.handover-filters{padding:0 14px 15px}.handover-home-grid,.handover-field-grid{grid-template-columns:1fr}.handover-sheet-intro{padding:12px}.handover-form-block{padding:16px}.handover-task{display:grid;gap:10px}.handover-task-control{min-width:0;flex-wrap:wrap}.handover-task-control select{width:100%}.handover-task-control input{width:100%;flex-basis:100%}.handover-form-actions .btn{flex:1}}

/* v0.15 - appointment outcomes and individual visit attempts */
.visit-toolbar{display:flex;gap:1rem;align-items:end;justify-content:space-between;flex-wrap:wrap;margin:1rem 0 1.4rem}
.visit-project-selector{min-width:215px}.visit-metrics{display:flex;gap:.65rem;flex-wrap:wrap}
.visit-count{padding:.6rem 1rem;background:#f5f7fb;border:1px solid #dbe3ef;border-radius:12px;min-width:115px;display:flex;gap:.4rem;align-items:baseline}
.visit-count strong{color:#174a9e;font-size:1.3rem}.visit-count small{color:#5a6878;font-size:.75rem}
.visit-record{border-left:4px solid #b58b37}.visit-head-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}
.visit-tag{display:inline-block;padding:.22rem .5rem;color:#425874;background:#edf1f7;border-radius:20px;font-size:.7rem;font-weight:600}
.visit-private{padding:.55rem .7rem;background:#f3f6fa;border-radius:8px;font-size:.85rem;color:#344050;margin:.5rem 0}
.visit-record .appointment-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}
@media(max-width:660px){.visit-count{flex:1;min-width:90px}.visit-metrics{width:100%}.visit-project-selector{width:100%}.visit-record .appointment-actions .btn{min-height:41px}}

/* v0.16 - linked, chronological activity inside each issue */
.case-timeline{margin:26px 0 24px;border:1px solid #dfe6f0;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 7px 24px #102e6009}
.case-timeline-head{display:flex;align-items:start;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:24px 24px 17px;background:linear-gradient(120deg,#f6f9fe,#fff)}
.case-timeline-head .eyebrow{font-size:10px;letter-spacing:.15em;color:#a77c34;font-weight:800}
.case-timeline-head h3{font-size:21px;line-height:1.3;color:#133568;margin:5px 0 8px}
.case-timeline-head p{font-size:12px;line-height:1.65;color:#5c6e89;max-width:550px;margin:0}
.case-export{text-decoration:none;white-space:nowrap}.case-export svg{flex-shrink:0}
.case-summary{display:flex;gap:10px;flex-wrap:wrap;padding:2px 24px 17px;background:#fff}
.case-summary span{border:1px solid #e0e8f3;background:#f6f9fd;padding:7px 10px;display:flex;align-items:center;gap:6px;border-radius:8px;color:#49607f;font-size:11px}
.case-summary svg{width:15px;height:15px;color:#be9950}.case-summary strong{color:#173d7b}
.case-filter{padding:14px 23px;display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid #edf0f6;border-bottom:1px solid #edf0f6;background:#fbfcff}
.case-filter-button{border:1px solid #dfe7f3;border-radius:40px;color:#355379;background:#fff;padding:8px 13px;cursor:pointer;font-size:11px;font-weight:650;display:inline-flex;align-items:center;gap:7px;min-height:35px}
.case-filter-button span{font-size:10px;opacity:.7}.case-filter-button.active{background:#193f83;border-color:#193f83;color:#fff}.case-filter-button:focus-visible{outline:3px solid #c6a65e;outline-offset:2px}
.case-timeline-items{position:relative;padding:22px 24px 10px 35px}
.case-timeline-items:before{content:"";position:absolute;left:49px;top:33px;bottom:20px;width:2px;background:#e1e8f1}
.case-event{display:flex;align-items:start;gap:17px;position:relative;margin:0 0 24px;min-width:0}
.case-event[hidden]{display:none!important}
.case-event-marker{display:flex;align-items:center;justify-content:center;background:#f2f5fb;border:2px solid #fff;box-shadow:0 0 0 1px #dfebf8;border-radius:50%;width:30px;height:30px;flex-shrink:0;z-index:1;color:#1d4b91;margin:0}
.case-event-marker svg{width:15px;height:15px}.case-event-private .case-event-marker{color:#926e33;background:#fff5e6}
.case-event-copy{padding:0 0 3px;min-width:0;flex:1}.case-event-heading{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.case-event-heading h4{font-size:13px;font-weight:750;color:#17376a;line-height:1.45;margin:4px 0 3px}
.case-event-meta{font-size:10px;color:#78879c;line-height:1.6}
.case-event-copy p{font-size:12px;color:#435877;line-height:1.65;margin:9px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.case-staff-flag{padding:3px 8px;border-radius:4px;background:#fff4da;color:#92621c;font-size:9px;font-weight:800;letter-spacing:.07em}
.case-event-private .case-event-copy{padding:10px 12px;background:#fffaf1;border:1px solid #f0dfbd;border-radius:8px;margin-top:-8px}
.case-date-chip{display:inline-flex;margin-top:8px;background:#e9f0fb;color:#174b94;border-radius:6px;padding:4px 8px;font-size:10px;font-weight:700}
.case-evidence-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.case-evidence-link{display:inline-flex;gap:5px;align-items:center;color:#174985;text-decoration:none;font-size:11px;font-weight:700;padding:7px 10px;border-radius:7px;background:#eef4fd;border:1px solid #dbe7f8}
.case-evidence-link:hover{text-decoration:underline}.case-evidence-link svg{width:13px;height:13px}
.case-timeline-footer{display:flex;align-items:center;gap:8px;border-top:1px solid #eaf0f7;padding:13px 22px;color:#687d9a;background:#fbfcff;font-size:10px;line-height:1.5}
.case-timeline-footer svg{width:15px;height:15px;color:#b6904e;flex-shrink:0}.case-timeline-no-match,.case-timeline-empty{text-align:center;padding:26px 15px;font-size:12px;color:#68809a}
.case-timeline-no-match[hidden]{display:none!important}
@media(max-width:650px){.case-timeline-head{padding:18px 15px 15px}.case-timeline-head h3{font-size:18px}.case-summary{padding:0 15px 15px}.case-filter{padding:12px 15px}.case-filter-button{flex:1;justify-content:center}.case-timeline-items{padding:20px 15px 0 20px}.case-timeline-items:before{left:34px}.case-event{gap:12px;margin-bottom:20px}.case-event-copy p{font-size:11px}.case-timeline-footer{padding:11px 15px}.case-export{width:100%;justify-content:center}}

/* v0.17 - confidential AJRE management escalation workspace */
.escalation-disclaimer { margin-bottom: 18px; }
.escalation-stats { margin-bottom: 18px; }
.escalation-register { overflow: hidden; }
.escalation-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--border, #e5e9ee); }
.escalation-toolbar label { display: flex; flex-direction: column; gap: 6px; color: #52647d; font-size: 0.79rem; font-weight: 700; min-width: 166px; flex: 1 1 170px; }
.escalation-toolbar label:last-child { flex: 2 1 210px; }
.escalation-toolbar select,.escalation-toolbar input { background: white; color: #183257; border: 1px solid #cfd9e5; border-radius: 9px; padding: 11px 12px; width: 100%; font: inherit; font-size: 0.89rem; }
.escalation-severity { display: inline-block; color: #8b501d; border: 1px solid #e6bc80; background: #fff5e8; font-size: 0.72rem; font-weight: 750; padding: 3px 8px; border-radius: 9px; margin-left: 5px; }
.escalation-late { color: #a12e2e; font-weight: 700; }
.escalation-case { border-radius: 16px; border: 1px solid #d5dfeb; background: #f8fafd; padding: 19px; margin: 21px 0; }
.escalation-case-heading { margin-bottom: 12px; }
.escalation-case-heading h3 { display: flex; align-items: center; gap: 8px; margin: 4px 0 5px; color: #173b82; font-size: 1.13rem; }
.escalation-case-heading h3 svg { width: 21px; height: 21px; }
.escalation-case-heading p { color: #607187; margin: 0; font-size: 0.9rem; line-height: 1.5; }
.escalation-current { border-radius: 12px; background: #fff; border: 1px solid #d8e2ed; padding: 17px; }
.escalation-current p { white-space: pre-wrap; margin: 10px 0 14px; line-height: 1.5; }
.escalation-line { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.escalation-line strong { color: #15386b; }
.escalation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px 17px; margin: 14px 0 17px; }
.escalation-grid span { display: flex; flex-direction: column; gap: 4px; color: #1c3554; font-size: 0.89rem; }
.escalation-grid strong { font-size: 0.72rem; color: #68778c; text-transform: uppercase; letter-spacing: .035em; }
.escalation-no-active { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.escalation-no-active p { margin: 0; color: #526781; }
.escalation-history { margin-top: 13px; background: #fff; border: 1px solid #d8e2ed; border-radius: 10px; padding: 13px 16px; }
.escalation-history summary { cursor: pointer; font-weight: 700; color: #284e88; }
.escalation-old { margin: 14px 0 2px; padding: 10px 0 0; border-top: 1px solid #e3e9f0; }
.escalation-old p { white-space: pre-wrap; margin: 8px 0; }
.escalation-old small { color: #627289; }
@media (max-width: 600px) {
 .escalation-toolbar { padding: 14px; }
 .escalation-toolbar label { flex-basis: 100%; }
 .escalation-case { padding: 13px; }
 .escalation-grid { grid-template-columns: 1fr; }
}

/* v0.18 — streamlined internal escalation filter within the existing snag register. */
.escalation-mini-flag{font-size:10px;font-weight:800;color:#81551e;background:#fff4e3;border:1px solid #e4c28a;border-radius:6px;padding:4px 7px;white-space:nowrap}
#filter-escalation{border-color:#d9c49d;color:#624b24}

/* v0.18 — purpose-built mobile contractor workspace (also works on desktop). */
.contractor-workspace{--site-navy:#163870;--site-gold:#c9a35f;max-width:1160px;margin-inline:auto}
.contractor-hero{background:linear-gradient(115deg,#13346d,#204e9c);color:#fff;border-radius:17px;padding:27px 30px;margin-bottom:17px;display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:hidden;position:relative}
.contractor-hero::after{content:"";position:absolute;width:240px;height:240px;border:1px solid rgba(236,203,137,.27);border-radius:50%;top:-110px;right:-30px;box-shadow:0 0 0 40px #ffffff05,0 0 0 85px #ffffff03;pointer-events:none}
.contractor-hero>div{position:relative;z-index:1}.contractor-hero .eyebrow{color:#eccb89;margin-bottom:9px}.contractor-hero h2{font-size:clamp(21px,2.5vw,29px);line-height:1.2;color:#fff;margin-bottom:9px}.contractor-hero p{max-width:690px;font-size:13px;color:#dbe8fa}.contractor-hero-key{color:#ddbf80}.contractor-hero-key .icon{height:43px;width:43px}
.contractor-mobile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px}
.contractor-mobile-stats button{appearance:none;border:1px solid #dfe6f1;background:#fff;text-align:left;border-radius:13px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding:18px;color:#193d78;min-height:112px;box-shadow:0 4px 14px #15356708}
.contractor-mobile-stats button:hover,.contractor-mobile-stats button:focus-visible{border-color:#c9a35f;background:#fdfbf6}
.contractor-mobile-stats strong{font-size:30px;line-height:1;color:#1c468a;font-weight:750}.contractor-mobile-stats span{display:inline-flex;align-items:center;gap:6px;color:#52647f;font-size:12px;font-weight:650}.contractor-mobile-stats .icon{width:14px;height:14px}
.contractor-next{margin-bottom:23px}.contractor-next-content{padding:2px 22px 23px}.contractor-next-content h3{font-size:19px;margin:10px 0 4px;color:#1a3a74}.contractor-next-content p{font-size:13px;color:#61718b}.contractor-next-date{display:inline-flex;align-items:center;gap:8px;border-radius:8px;background:#eef4fc;color:#224c87;padding:9px 11px;font-size:12px;font-weight:750}
.contractor-next-date .icon{width:15px;height:15px}
.contractor-work-toolbar{background:white;border:1px solid #dfe6f1;border-radius:14px;padding:16px;display:grid;gap:14px;margin-bottom:17px}
.contractor-work-filters{display:flex;flex-wrap:wrap;gap:8px}.contractor-filter{padding:11px 14px;border-radius:9px;border:1px solid #d6deeb;background:#fff;color:#415b7f;font-weight:700;font-size:12px;min-height:44px}
.contractor-filter.active{border-color:#1c448b;background:#1c448b;color:#fff}.contractor-filter:not(.active):hover{border-color:#bb985f;background:#fdf9f2}
.contractor-work-search-label{display:grid;gap:6px;font-weight:650;font-size:12px;color:#4d5e7a}.contractor-work-search-label input{min-height:46px;border:1px solid #cbd6e5;border-radius:9px;padding:10px 13px;width:100%;background:#fff;color:#21385d;font-size:15px}
.contractor-jobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.contractor-job{border:1px solid #dfe6f0;background:white;border-radius:14px;padding:21px;min-width:0;box-shadow:0 6px 17px #173a7309;display:flex;flex-direction:column;gap:12px}
.contractor-job-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.contractor-ref{font-size:11px;letter-spacing:.07em;color:#827047;font-weight:850}
.contractor-job h3{font-size:18px;line-height:1.32;color:#1b3c76;overflow-wrap:anywhere}.contractor-property{display:flex;align-items:flex-start;gap:8px;font-size:13px;font-weight:750;color:#274667;line-height:1.45}.contractor-property .icon{width:17px;height:17px;color:#b28e4a;margin-top:1px}
.contractor-job-meta{display:flex;flex-wrap:wrap;gap:10px 16px;color:#65758a;font-size:12px}.contractor-job-meta span{display:inline-flex;align-items:center;gap:5px}.contractor-job-meta svg{width:15px;height:15px}
.contractor-job-visit{display:flex;align-items:center;gap:11px;flex-wrap:wrap;background:#f1f5fb;border:1px solid #e1e8f3;padding:11px 12px;border-radius:10px;margin-top:3px}.contractor-job-visit>.icon{color:#204a8d}.contractor-job-visit>span{flex:1;display:grid;gap:4px;min-width:140px}.contractor-job-visit strong{font-size:12px;color:#213f75}.contractor-job-visit small{font-size:11px;color:#65778f}.contractor-job-visit .text-button{min-height:40px}
.contractor-job-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:auto;padding-top:6px}.contractor-job-actions .btn{min-height:45px;flex:1;white-space:normal;text-align:center;padding:10px 12px;font-size:12px}
.contractor-workspace .note{font-size:12px;line-height:1.6}
.visit-record:focus{outline:2px solid #bd9957;outline-offset:3px;scroll-margin:18px}

/* Contractor camera upload and site sign-off: large targets, clear sections and photo review. */
.dialog:has(.site-completion-form){width:min(720px,100vw);max-width:100vw}
.site-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:15px 0 19px}
.site-progress span{background:#eaf0f8;border:1px solid #d8e2f1;border-radius:8px;padding:10px 7px;font-size:11px;text-align:center;font-weight:750;color:#34527e;line-height:1.3}
.site-progress span:first-child{background:#173e81;color:#fff;border-color:#173e81}
.site-completion-form{display:grid;gap:17px}
.site-step{background:#fbfcfe;border:1px solid #dfe6f1;border-radius:13px;padding:20px;min-width:0}
.site-step-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.site-step-title>b{font-size:12px;font-weight:850;background:#f7efdf;color:#876320;border:1px solid #ddca9e;border-radius:10px;min-width:38px;height:38px;display:grid;place-items:center}
.site-step-title h3{font-size:17px;color:#173971;margin:1px 0 5px}.site-step-title p{font-size:12px;color:#64778f;line-height:1.45}
.site-step input[type="date"],.site-step input[type="text"],.site-step textarea,.site-step select{min-height:47px}
.site-step textarea{min-height:108px}.site-step input[type="file"]{width:100%;padding:12px;background:white;border:1px dashed #b5c5dd;border-radius:10px;max-width:100%;font-size:13px}
.site-step input[type="file"]::file-selector-button{border:0;border-radius:7px;background:#1d4589;color:#fff;padding:10px 12px;font-weight:700;margin-right:10px}
.site-photo-preview:not(:empty){display:flex;align-items:center;gap:12px;margin-top:9px;padding:8px;border-radius:9px;border:1px solid #d9e5d9;background:#f4fbf3;color:#27543c;font-size:12px;overflow-wrap:anywhere}
.site-photo-preview img{height:77px;width:95px;border-radius:7px;object-fit:cover;flex-shrink:0}
.site-photo-preview span{font-size:12px;min-width:0}
.site-step .signoff-signature{min-height:150px;max-width:100%;object-fit:fill}
.site-submit-actions{display:grid;gap:7px;border-top:1px solid #e4e9f2;padding-top:15px}
.site-submit-actions .btn{width:100%;min-height:52px;font-size:14px;white-space:normal}
.site-submit-actions small{font-size:11px;color:#61738b;text-align:center;line-height:1.45}
@media(max-width:850px){.contractor-hero{padding:23px}.contractor-jobs{grid-template-columns:1fr}}
@media(max-width:600px){
 .contractor-workspace .page-heading{margin-bottom:18px}.contractor-workspace .page-heading h1{font-size:26px}
 .contractor-hero{padding:21px 19px}.contractor-hero-key{display:none}.contractor-hero p{font-size:12px}
 .contractor-mobile-stats{gap:8px}.contractor-mobile-stats button{padding:12px 10px;min-height:106px;gap:8px}.contractor-mobile-stats strong{font-size:27px}.contractor-mobile-stats span{font-size:10px;align-items:flex-start}.contractor-mobile-stats .icon{width:12px;height:12px}
 .contractor-next-content{padding:0 15px 17px}.contractor-next-content h3{font-size:16px}
 .contractor-work-toolbar{padding:12px}.contractor-work-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.contractor-filter{font-size:11px;padding:10px 7px}
 .contractor-job{padding:17px;gap:10px}.contractor-job h3{font-size:16px}.contractor-job-visit{gap:8px}.contractor-job-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.contractor-job-actions .btn{font-size:11px;min-height:48px}
 .site-progress{margin:11px 0 15px}.site-progress span{font-size:10px;padding:9px 4px}
 .site-step{padding:15px}.site-step-title h3{font-size:16px}.site-step-title>b{min-width:32px;height:32px}
 .site-step .form-grid{gap:16px}.site-step .signoff-signature{height:190px;aspect-ratio:auto}
 .site-submit-actions{padding-bottom:calc(env(safe-area-inset-bottom, 0px) + 12px)}
}
@media(max-width:380px){.contractor-job-actions{grid-template-columns:1fr}.contractor-next-date{font-size:10px}.contractor-mobile-stats span{font-size:9px}}

/* v0.19 — focused AJRE Daily Actions and Management Reports */
.ops-intro{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(105deg,#112e65 0%,#1f4a98 78%,#224a8a 100%);color:white;border:1px solid #234983;border-radius:15px;padding:26px 30px;margin:0 0 21px;position:relative;overflow:hidden}
.ops-intro:after{content:"";position:absolute;width:225px;height:225px;border:1px solid #e6c67c22;border-radius:50%;right:-100px;top:-110px;box-shadow:0 0 0 32px #ffffff04,0 0 0 65px #ffffff03;pointer-events:none}
.ops-intro>div,.ops-intro>button{position:relative;z-index:1}.ops-intro .eyebrow{color:#eed29b;letter-spacing:1.5px}
.ops-intro h2{font-size:clamp(21px,2.6vw,29px);margin:9px 0;color:white;letter-spacing:-.65px;line-height:1.25}
.ops-intro p{color:#e3eafa;font-size:12px;line-height:1.65;max-width:685px}
.ops-intro .btn{background:#fff;color:#214383;border-color:#fff;flex-shrink:0}.ops-intro .btn:hover{background:#f3ead7}
.ops-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.ops-stat{border:1px solid #dce4f1;border-radius:12px;background:#fff;box-shadow:var(--shadow);padding:19px 20px;display:flex;flex-direction:column;gap:8px;min-width:0}
.ops-stat span{font-size:11px;color:#62738b;font-weight:700}.ops-stat strong{font-size:30px;line-height:1;letter-spacing:-1px;color:#133974;font-weight:750}.ops-stat small{color:#63738b;font-size:10px;line-height:1.45}
.ops-stat.gold{background:linear-gradient(140deg,#fffdf7,#fff)}.ops-stat.gold strong{color:#a77923}.ops-stat.danger{background:linear-gradient(140deg,#fff9f8,#fff)}.ops-stat.danger strong{color:#ad423c}
.ops-controls{padding:19px 20px;display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;border-top:1px solid #e7ecf5;border-bottom:1px solid #e7ecf5;background:#fbfcfe}
.ops-controls .field{margin:0;min-width:200px;max-width:280px;flex:1}
.ops-controls .field label{display:block;font-size:11px;font-weight:750;color:#374f74;margin:0 0 7px}
.ops-controls .filter{width:100%;max-width:100%;min-width:0;background:white;min-height:41px;border-radius:8px;border:1px solid #d9e2f0;padding:9px 11px;color:#273e66}
.ops-controls .ops-search{flex:1.35;max-width:none}.ops-filter-help{margin-left:auto;max-width:330px;color:#657691;font-size:11px;line-height:1.6;align-self:center}
.ops-list-panel{overflow:hidden;min-width:0;margin-bottom:18px}
.ops-list-panel>.panel-head{padding:20px 22px}.ops-list-panel .panel-head h2{color:#142f66}
#daily-actions-list{padding:0 20px 14px;min-width:0}
.ops-action-item{display:flex;align-items:flex-start;gap:18px;padding:18px 2px;border-bottom:1px solid #e9edf4;min-width:0}
.ops-action-item:last-child{border-bottom:0}.ops-action-flag{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:118px;width:118px;padding:2px 0}
.ops-action-flag>span:last-child{font-size:10px;line-height:1.4;color:#5c6c82}
.ops-urgency{display:inline-flex;border-radius:5px;padding:5px 9px;font-size:10px;font-weight:750;background:#ecf1f9;color:#2c528d}
.ops-urgency.ops-high{background:#fff0d6;color:#8e5e13}.ops-urgency.ops-critical{background:#fce9e8;color:#aa3732}
.ops-action-main{flex:1;min-width:0}.ops-action-main h3{margin:0;font-size:14px}.ops-action-main h3 .text-button{font-size:14px;display:inline;text-align:left;white-space:normal;color:#1a3e7e}
.ops-action-main p{color:#415777;font-size:12px;line-height:1.6;margin:7px 0 9px}
.ops-action-meta{display:flex;flex-wrap:wrap;gap:7px 17px;align-items:center;font-size:10px;color:#62738a;line-height:1.6}.ops-action-meta span{display:inline-flex;align-items:center;gap:5px}.ops-action-meta .icon{width:13px;height:13px}
.ops-action-meta .ops-overdue{color:#b13f36;font-weight:700}.ops-action-item>.btn{margin:1px 0 0;align-self:center;flex-shrink:0}
.ops-footnote{color:#62758f;font-size:11px;line-height:1.75;padding:13px 3px 18px}.ops-list-panel>.ops-footnote{padding-left:20px;padding-right:20px}
.ops-report-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.ops-report-table{min-width:0;overflow:hidden;margin-bottom:16px}.ops-report-table .panel-head{padding:22px}
.ops-report-table .table-wrap{overflow-x:auto}.ops-report-table .table{width:100%;min-width:930px}.ops-report-table th{white-space:normal;font-size:10px;color:#587092;line-height:1.4}
.ops-report-table td{font-size:11px;color:#26446f;vertical-align:top}.ops-report-table td:first-child{min-width:135px}.ops-project-link{font-size:10px;margin-top:6px;display:flex}
@media(max-width:1050px){.ops-stat-grid,.ops-report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-filter-help{width:100%;max-width:none;margin:0}}
@media(max-width:680px){.ops-intro{padding:22px 18px;display:block}.ops-intro .btn{margin-top:16px}.ops-controls{padding:15px;gap:12px}.ops-controls .field,.ops-controls .ops-search{max-width:none;min-width:0;width:100%;flex:auto}.ops-stat-grid,.ops-report-stats{gap:9px}.ops-stat{padding:16px 14px}.ops-stat strong{font-size:27px}.ops-stat small{font-size:10px}.ops-action-item{display:grid;grid-template-columns:1fr;gap:6px;padding:16px 0}.ops-action-flag{flex-direction:row;align-items:center;min-width:0;width:auto}.ops-action-item>.btn{justify-self:start;margin-top:3px;align-self:start}#daily-actions-list{padding:0 15px 10px}.ops-report-table .panel-head{padding:17px}.ops-list-panel>.panel-head{padding:17px}}


/* AJRE v0.19.1 — grouped staff ribbon and live daily actions within Overview. */
.sidebar-nav-group{margin:12px 0 8px;padding:4px 0;border-top:1px solid #ffffff1b}
.sidebar-group-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:42px;padding:11px 13px 8px;border:0;border-radius:8px;background:transparent;color:#c7d7f2;text-align:left;font:inherit;font-size:10px;font-weight:750;letter-spacing:1.25px;text-transform:uppercase;cursor:pointer}
.sidebar-group-toggle:hover,.sidebar-group-toggle:focus-visible{background:#ffffff12;color:white}
.sidebar-group-toggle>.icon{width:14px;height:14px;flex-shrink:0;transition:transform .18s ease;color:#e6c87c}
.sidebar-nav-group.expanded>.sidebar-group-toggle>.icon{transform:rotate(90deg)}
.sidebar-group-links{padding:2px 0 3px 8px}
.sidebar-group-links[hidden]{display:none!important}
.sidebar-group-links .nav-item{font-size:11px;padding:10px 10px;margin:3px 0;min-height:42px;gap:10px}
.sidebar-group-links .nav-item .icon{width:17px;height:17px;flex-shrink:0}
.sidebar-group-links .nav-count{margin-left:auto}
.sidebar .nav-label{margin-bottom:9px}
.sidebar-nav-group.expanded .sidebar-group-toggle{color:#f4dda1}
.overview-actions{min-width:0;scroll-margin-top:25px}
.overview-actions:focus{outline:none}
.overview-actions .ops-intro{margin-bottom:15px;padding:21px 25px}
.overview-actions .ops-intro h2{font-size:clamp(20px,2vw,26px)}
.overview-actions .ops-intro p{max-width:790px}
.overview-actions .ops-stat-grid{gap:12px;margin-bottom:16px}
.overview-actions .ops-stat{padding:16px 18px}
.overview-actions .ops-stat strong{font-size:26px}
.overview-actions .ops-list-panel{margin-bottom:0}
.overview-actions .ops-list-panel>.panel-head{padding:17px 20px}
.overview-actions .ops-footnote{padding-bottom:2px}
@media(max-width:720px){.sidebar-group-links .nav-item{min-height:44px;font-size:12px}.overview-actions .ops-intro{padding:20px 17px}.overview-actions .ops-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-actions .ops-stat{padding:14px}.overview-actions .ops-stat strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){.sidebar-group-toggle>.icon{transition:none}}

.ops-more-actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:16px 10px 6px}.ops-more-actions>span{color:#5e6f86;font-size:11px}

/* v0.20: property-led customer correspondence, never a homeowner complaint channel. */
.issue-comm-action{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px;margin-bottom:16px;background:#f4f7fd;border:1px solid #dbe5f7;border-radius:12px}
.issue-comm-action small{color:#5a6a85;font-size:.8rem}
.care-hub{display:grid;gap:18px}
.care-hub-banner{background:#153a86;border-radius:13px;padding:17px;color:#fff;display:flex;gap:14px;align-items:center}
.care-hub-banner .icon{color:#d9b266;width:25px;height:25px}
.care-hub-banner strong,.care-hub-banner small{display:block}
.care-hub-banner small{opacity:.85;margin-top:4px}
.care-hub-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.care-hub-stats>div{border:1px solid #dde5f3;border-radius:10px;padding:14px;text-align:center;background:#fff}
.care-hub-stats strong{display:block;font-size:1.6rem;color:#153a86}
.care-hub-stats small{display:block;color:#566783;font-size:.75rem}
.care-hub-section{background:#fff;border:1px solid #e1e7f0;padding:16px;border-radius:12px}
.care-hub-section>h3,.care-hub-heading h3{margin:0 0 9px;font-size:1rem}
.care-hub-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;flex-wrap:wrap}
.care-hub-heading h3{margin:0}
.care-hub-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;border-top:1px solid #e8edf5;padding:9px 0}
.care-hub-row:first-of-type{border-top:0}
.care-hub-row small{color:#60718b;flex:1 1 auto}
.care-email-compose{display:grid;gap:10px}
.care-email-preview{border:1px solid #dce3f0;border-radius:12px;overflow:hidden;background:#fff;margin-top:14px}
.care-email-preview-head{background:#153a86;color:#d9b266;padding:19px;display:flex;flex-direction:column;align-items:center;gap:5px}
.care-email-preview-head strong{letter-spacing:2px;font-size:1.6rem}
.care-email-preview-head small{color:#fff;letter-spacing:1px}
.care-email-preview-body{white-space:pre-wrap;overflow-wrap:anywhere;font:15px/1.65 Arial,sans-serif;color:#14264a;padding:22px;min-height:160px}
@media(max-width:640px){.care-hub-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.care-hub-row{align-items:flex-start;flex-direction:column}.issue-comm-action .btn{width:100%;justify-content:center}.care-email-preview-body{padding:16px}}

/* AJRE v0.21 — grouped contractor routes and bulk snag selection. */
.bulk-visit-toolbar{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:13px 16px;margin:0 0 15px;background:#eff4fd;border:1px solid #d5e1f4;border-radius:11px}
.bulk-visit-toolbar>.icon{color:#b68b39}.bulk-visit-toolbar>span{flex:1 1 250px;font-size:12px;color:#365172}.bulk-visit-toolbar strong{color:#113a81;font-size:16px}
.table input[data-bulk-ticket],.table #bulk-select-visible{width:18px;height:18px;accent-color:#16438a;cursor:pointer}
.grouped-visit-card{padding:18px 20px;margin:0 0 13px;border:1px solid #d7e2f2;background:#fff}
.grouped-visit-head{display:flex;align-items:flex-start;gap:14px;min-width:0}
.grouped-visit-head>div:nth-child(2){min-width:0;flex:1}
.grouped-visit-head .eyebrow{color:#987127;font-size:10px}
.grouped-visit-head h3{font-size:17px;letter-spacing:-.2px;color:#183c79;margin:3px 0 5px;overflow-wrap:anywhere}
.grouped-visit-head p{color:#62748e;font-size:12px;line-height:1.6;margin:0}
.grouped-visit-symbol{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:46px;height:46px;background:#ecf2fd;color:#153d84;border-radius:12px}
.grouped-visit-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin:15px 0;border-top:1px solid #e8eef8;padding-top:13px;color:#3b5379;font-size:12px;font-weight:700}
.grouped-visit-summary>span{display:inline-flex;align-items:center;gap:5px}.grouped-visit-summary .icon{width:16px;height:16px;color:#ae8236}
.grouped-visit-stops{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:9px}
.grouped-visit-stops>span{font-size:12px;padding:10px 12px;background:#f6f8fc;border:1px solid #e7ebf2;border-radius:9px;line-height:1.5;color:#28456f}
.grouped-visit-stops small{font-size:10px;color:#697991}
.grouped-visit-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.grouped-visit-actions .btn{min-height:41px}
.grouped-visit-modal-head{padding-bottom:15px;border-bottom:1px solid #e5eaf3;margin-bottom:17px}
.grouped-visit-modal-head h3{font-size:21px;margin:5px 0;color:#163a7b}
.grouped-visit-modal-head p{font-size:12px;color:#5d718d}
.grouped-visit-stop{background:white;border:1px solid #dae4f3;border-radius:13px;padding:16px;margin:0 0 15px}
.grouped-stop-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:14px}
.grouped-stop-index{width:35px;height:35px;min-width:35px;border-radius:10px;display:grid;place-items:center;background:#153a86;color:#e8c882;font-weight:800;font-size:15px}
.grouped-stop-head h3{color:#1b3e7c;font-size:16px;margin:0 0 4px;line-height:1.35}
.grouped-stop-head h3 small{color:#677b97;font-weight:500;font-size:11px}
.grouped-stop-head p{font-size:12px;color:#516b8d;margin:0 0 5px;line-height:1.6}
.grouped-stop-head small{font-size:11px;color:#667c98}
.grouped-job{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid #edf1f7;min-width:0;flex-wrap:wrap}
.grouped-job-info{display:flex;flex:1 1 230px;min-width:0;flex-direction:column;gap:5px}
.grouped-job-info strong{font-size:13px;line-height:1.5;color:#213f76;overflow-wrap:anywhere}
.grouped-job-info>span:last-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.grouped-job-controls{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.grouped-job-controls .btn{min-height:38px}
.grouped-stop-actions{border-top:1px solid #e7ecf5;margin-top:12px;padding-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.resident-group-stop{padding:20px;margin-bottom:13px}.resident-group-stop>p{font-size:12px;color:#4b6385;margin:13px 0 5px}
.resident-group-stop ul{margin:10px 0 14px 17px;padding:0}.resident-group-stop li{font-size:12px;color:#375377;line-height:1.7;margin:3px 0}
.resident-group-stop li .badge{vertical-align:middle}.resident-group-stop>small{font-size:11px;color:#67788f}
.plan-plot{padding:15px;border:1px solid #dce6f3;border-radius:12px;margin:12px 0;background:#f9fbff}
.plan-plot-title{display:flex;align-items:center;gap:12px}.plan-plot-title strong{color:#173b81;display:block;font-size:13px}.plan-plot-title small{color:#647893;display:block;margin-top:4px}
.plan-plot-jobs{display:flex;flex-direction:column;gap:3px;margin:13px 0 15px 46px}.plan-plot-jobs span{font-size:11px;color:#4c6180;line-height:1.6}
.plan-plot .field{margin-bottom:9px}.plan-plot .form-grid{align-items:end}
@media(max-width:720px){.grouped-visit-card{padding:15px}.grouped-visit-head h3{font-size:15px}.grouped-visit-head{flex-wrap:wrap}.grouped-visit-head>.visit-tag{margin-left:60px}.grouped-visit-symbol{width:43px;height:43px}.grouped-visit-stops{grid-template-columns:1fr}.grouped-visit-actions .btn{width:100%;justify-content:center}.grouped-visit-stop{padding:13px}.grouped-job-controls{justify-content:stretch;width:100%}.grouped-job-controls .btn{flex:1 1 140px;justify-content:center}.grouped-stop-actions .btn{width:100%;justify-content:center}.plan-plot{padding:12px}.plan-plot-jobs{margin-left:0}.bulk-visit-toolbar .btn{flex:1 1 130px;justify-content:center}}

/* v0.22: immediate pending feedback for buttons and forms while a request is in flight. */
.is-busy{cursor:progress;opacity:.72;}

/* v0.23: searchable, paged development overview (300+ plots stay usable) */
.plot-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.plot-toolbar input{flex:1 1 240px;min-width:0;padding:10px 12px;border:1px solid #b9c6bd;border-radius:10px;font:inherit;background:#fff;}
.plot-toolbar select{flex:0 1 220px;min-width:0;padding:10px 12px;border:1px solid #b9c6bd;border-radius:10px;font:inherit;background:#fff;}
.plot-count{margin:12px 0 0;font-size:.92rem;}
.plot-more{display:flex;justify-content:center;margin:14px 0 0;}

/* v0.24: smart selections (searchable pickers for long dropdowns) */
.smart-select{position:relative;width:100%;}
.smart-input{width:100%;min-width:0;padding:10px 36px 10px 12px;border:1px solid #b9c6bd;border-radius:10px;font:inherit;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23546b5f' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;}
.smart-input:focus{outline:2px solid #1d4ed8;outline-offset:1px;}
.smart-input:disabled{background-color:#f1f4f2;cursor:not-allowed;opacity:.7;}
.smart-list{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;max-height:280px;overflow:auto;background:#fff;border:1px solid #c9d6cd;border-radius:12px;box-shadow:0 14px 36px rgba(20,61,51,.18);}
.smart-option{padding:9px 10px;border-radius:8px;cursor:pointer;font-size:.95rem;line-height:1.3;}
.smart-option.is-active{background:#e8f0ff;}
.smart-option.is-selected{font-weight:600;}
.smart-empty{padding:10px;color:#546b5f;font-size:.92rem;}
.smart-status{font-size:.82rem;color:#546b5f;margin-top:4px;min-height:0;}
.smart-status:empty{display:none;}
.smart-select.is-disabled .smart-status{display:none;}

/* v0.25: smart lists (search and Show more on long tables) */
.smart-list-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;}
.smart-list-search{flex:1 1 260px;min-width:0;padding:9px 12px;border:1px solid #b9c6bd;border-radius:10px;font:inherit;background:#fff;}
.smart-list-count{font-size:.9rem;color:#546b5f;}
.smart-list-more{display:flex;justify-content:center;margin:12px 0 0;}
.smart-list-more[hidden]{display:none;}
.table tr[hidden]{display:none !important;}

/* v0.27: every choice list is a search button; one shared search window */
.smart-select{position:relative;width:100%;}
.smart-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:10px 12px;border:1px solid #b9c6bd;border-radius:10px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23546b5f' stroke-width='2'%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3C/svg%3E") no-repeat right 12px center;font:inherit;text-align:left;color:#546b5f;cursor:pointer;padding-right:40px;}
.smart-trigger.has-value{color:inherit;font-weight:500;}
.smart-trigger:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px;}
.smart-trigger:disabled{background-color:#f1f4f2;cursor:not-allowed;opacity:.7;}
.smart-trigger-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.smart-error{color:#b42318;font-size:.85rem;margin-top:4px;}
.smart-error[hidden]{display:none;}
.smart-dialog{width:min(560px,92vw);max-height:80vh;padding:0;border:0;border-radius:16px;box-shadow:0 24px 60px rgba(20,61,51,.28);background:#fff;color:inherit;}
.smart-dialog:not([open]){display:none;}
.smart-dialog::backdrop{background:rgba(15,31,26,.45);}
.smart-dialog[open]{display:flex;flex-direction:column;}
.smart-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 8px;}
.smart-dialog-head h2{margin:0;font-size:1.1rem;}
.smart-dialog-close{border:0;background:none;font-size:1.6rem;line-height:1;padding:4px 8px;cursor:pointer;color:#546b5f;}
.smart-dialog-search{margin:6px 20px 0;padding:11px 12px;border:1px solid #b9c6bd;border-radius:10px;font:inherit;width:calc(100% - 40px);box-sizing:border-box;}
.smart-dialog-count{margin:8px 20px 4px;font-size:.85rem;color:#546b5f;min-height:1em;}
.smart-dialog-list{list-style:none;margin:0;padding:0 12px 16px;overflow:auto;flex:1 1 auto;min-height:120px;}
.smart-dialog-list li{margin:0;}
.smart-dialog-option{display:block;width:100%;text-align:left;padding:11px 10px;border:0;border-radius:8px;background:none;font:inherit;cursor:pointer;color:inherit;}
.smart-dialog-option:hover,.smart-dialog-option:focus-visible{background:#e8f0ff;outline:none;}
.smart-dialog-option.is-selected{font-weight:600;}
.smart-dialog-option.is-clear{color:#546b5f;font-style:italic;}
.smart-dialog-empty{padding:12px 10px;color:#546b5f;}
