:root {
  --page:        #EEF1F0;
  --sheet:       #FFFFFF;
  --ink:         #1D2A35;
  --muted:       #5B6872;
  --rule:        #C8CFD2;
  --rule-soft:   #E1E6E7;
  --no-cell:     #DCDFE1;   /* the grey "No." column on the paper schedule */
  --accent:      #1F5C4E;
  --accent-soft: #E0EDE8;
  --warn:        #8A5A00;
  --warn-soft:   #FBF0D2;
  --danger:      #A3322A;
  --danger-soft: #F7E0DD;
  --focus:       #2C6FB7;
}

* { box-sizing: border-box; }
html { font-size: 15px; }
body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: "Public Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  line-height: 1.45;
  font-variant-numeric: tabular-nums;
}
a { color: var(--accent); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }


main { padding: 1.5rem; max-width: 1800px; margin: 0 auto; }

h1 { font-size: 1.6rem; font-weight: 600; margin: 0 0 .25rem; }
h2 { font-size: 1.15rem; font-weight: 600; margin: 2rem 0 .6rem; }
.lede { color: var(--muted); margin: 0 0 1.25rem; max-width: 70ch; }
.page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }

.panel { background: var(--sheet); border: 1px solid var(--rule); padding: 1.25rem; }
.panel + .panel { margin-top: 1rem; }

/* ---- forms ---- */
label { display: block; font-weight: 500; margin-bottom: .25rem; }
.hint { color: var(--muted); font-size: .88rem; font-weight: 400; }
input[type=text], input[type=number], input[type=date], input[type=email], input[type=search], input[type=password],
input[type=file], select, textarea {
  width: 100%; font: inherit; color: inherit;
  padding: .45rem .55rem; border: 1px solid var(--rule); border-radius: 3px; background: #fff;
}
textarea { min-height: 5rem; }
.grid { display: grid; gap: 1rem 1.25rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.grid .wide { grid-column: 1 / -1; }
fieldset { border: 1px solid var(--rule-soft); padding: .75rem 1rem 1rem; margin: 0; }
legend { font-weight: 600; padding: 0 .35rem; }
.checks { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.checks label { display: flex; align-items: center; gap: .4rem; font-weight: 400; margin: 0; }
.radio-list label { display: flex; gap: .5rem; font-weight: 400; margin: .35rem 0; }

.btn {
  display: inline-block; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none;
  padding: .5rem 1rem; border-radius: 3px; border: 1px solid var(--accent);
  background: var(--accent); color: #fff;
}
.btn:hover { filter: brightness(1.1); }
.btn-plain { background: #fff; color: var(--accent); }
.btn-danger { background: #fff; color: var(--danger); border-color: var(--danger); }
.btn-small { padding: .2rem .55rem; font-size: .85rem; font-weight: 500; }
.actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: 1.25rem; }
.linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--danger); cursor: pointer; text-decoration: underline; }

.filters { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; margin-bottom: 1rem; }
.filters > div { min-width: 170px; }
.filters .grow { flex: 1 1 240px; }

/* ---- notices ---- */
.notice { padding: .7rem 1rem; border-left: 4px solid var(--accent); background: var(--accent-soft); margin: 0 0 1rem; }
.notice-error { border-color: var(--danger); background: var(--danger-soft); }
.notice-warn  { border-color: var(--warn);   background: var(--warn-soft); }

/* ---- the schedule table: mirrors the paper form ---- */
/* Lists scroll inside a box the height of the screen, so the title row (and the totals row)
   stay visible while scrolling through many items, and the sideways scrollbar is always reachable. */
.table-wrap { overflow: auto; max-height: calc(100vh - 7rem); background: var(--sheet); border: 1px solid var(--rule); }
table { border-collapse: collapse; width: 100%; font-size: .92rem; }
th, td { border: 1px solid var(--rule); padding: .4rem .55rem; text-align: left; vertical-align: top; }
thead th {
  background: #F6F7F7; font-weight: 500; vertical-align: bottom; white-space: nowrap;
}
table.schedule th.no, table.schedule td.no { background: var(--no-cell); font-weight: 700; text-align: center; width: 3rem; }
table.schedule td.num { text-align: right; white-space: nowrap; }
table.schedule th.cls, table.schedule td.cls { text-align: center; width: 1%; white-space: nowrap; }
td.cls .tick { color: var(--accent); font-weight: 700; }
td.serial { font-family: "Public Sans", system-ui, sans-serif; letter-spacing: .03em; white-space: nowrap; }
tbody tr:hover td:not(.no) { background: #F7FAF9; }
tfoot td { font-weight: 600; background: #F6F7F7; }
.muted { color: var(--muted); }
.empty { padding: 2.5rem 1rem; text-align: center; color: var(--muted); }
.row-actions { white-space: nowrap; }
.row-actions form { display: inline; margin-left: .5rem; }

/* import preview */
tr.is-error td { background: var(--danger-soft); }
tr.is-warn td:not(.no) { background: var(--warn-soft); }
.status { font-size: .85rem; }
.status ul { margin: 0; padding-left: 1rem; }
.mapping { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 0; }
.mapping li { border: 1px solid var(--rule); background: #fff; padding: .2rem .55rem; border-radius: 3px; font-size: .88rem; }
.mapping li.missing { color: var(--muted); border-style: dashed; }
.summary { display: flex; flex-wrap: wrap; gap: 2rem; margin: 0 0 1rem; }
.summary div { font-size: .9rem; color: var(--muted); }
.summary strong { display: block; font-size: 1.35rem; color: var(--ink); font-weight: 600; }

/* overview matrix */
table.matrix td.count { text-align: center; }
table.matrix td.zero { color: #B3BBC0; }

@media (max-width: 640px) {
  main { padding: 1rem .75rem; }
}


/* ---- login ---- */
.auth-box { max-width: 420px; margin: 3rem auto; }
.stack { display: grid; gap: 1rem; }
.stack .btn { justify-self: start; }
code { background: var(--rule-soft); padding: .05rem .3rem; border-radius: 3px; }

/* participant chosen for import */
.chosen { font-size: 1.1rem; font-weight: 600; }

.inline-form { display: flex; gap: .5rem; align-items: center; }
.inline-form input[type=text] { width: 16rem; }
.label-like { display: block; font-weight: 500; margin-bottom: .25rem; }

.participant-pick { border-left: 4px solid var(--accent); padding-left: .9rem; }
.participant-pick select { max-width: 520px; font-weight: 500; }
.participant-banner { border-left: 4px solid var(--accent); margin-bottom: 1rem; display: grid; gap: .2rem; }
.participant-pick .hint { display: block; margin-top: .3rem; }

/* tabs to switch between schedules (import page) */
.tabs { display: flex; gap: .25rem; border-bottom: 2px solid var(--rule); margin-bottom: 1.25rem; }
.tabs a { padding: .5rem 1rem; text-decoration: none; color: var(--muted); border: 1px solid transparent; border-bottom: 0; border-radius: 3px 3px 0 0; margin-bottom: -2px; }
.tabs a:hover { color: var(--ink); }
.tabs a[aria-current="page"] { color: var(--ink); font-weight: 600; background: var(--sheet); border-color: var(--rule); border-bottom: 2px solid var(--sheet); }

/* accessories: shown under their main item */
tr.accessory td:not(.no) { background: #FAFBFB; }
tr.accessory td.no { color: var(--muted); font-weight: 400; }
.acc-name::before { content: "↳ "; color: var(--muted); }
.acc-mark { color: var(--muted); white-space: nowrap; }
td.role { white-space: nowrap; font-size: .88rem; }

/* permit status */
.badge { display: inline-block; font-size: .78rem; font-weight: 600; padding: .05rem .45rem; border-radius: 3px; white-space: nowrap; }
.badge-expired { background: var(--danger-soft); color: var(--danger); }
.badge-soon    { background: var(--warn-soft); color: var(--warn); }
.badge-unknown { background: var(--rule-soft); color: var(--muted); }
.badge-valid   { background: var(--accent-soft); color: var(--accent); }
.summary a { color: inherit; text-decoration: none; }
.summary a:hover strong { text-decoration: underline; }

/* out of service / retired section */
.out-heading { margin-top: 2.25rem; color: var(--muted); }
.out-section table { opacity: .8; }
.out-section tbody td:not(.no) { background: #F4F5F5; }
.badge-out { background: var(--rule-soft); color: var(--muted); }
.check-line { display: flex; gap: .5rem; align-items: baseline; font-weight: 500; }
.out-fieldset { border-color: var(--rule); }
.asset-card { margin-bottom: 1rem; border-left: 4px solid var(--accent); }
td.docs { white-space: nowrap; }
.doc-list { margin: 0; padding-left: 1.1rem; } .doc-list li { margin: .2rem 0; }

/* buildings */
table.buildings th.grp { text-align: center; border-bottom: 1px solid var(--rule); }
table.buildings td.info { min-width: 14rem; max-width: 26rem; font-size: .86rem; }
abbr[title] { text-decoration: underline dotted; cursor: help; }
details.legend { margin: 0 0 1rem; }
details.legend summary { cursor: pointer; color: var(--accent); font-weight: 500; }
.legend-grid { display: grid; gap: 1rem 2rem; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
               background: var(--sheet); border: 1px solid var(--rule); padding: 1rem; margin-top: .5rem; font-size: .88rem; }
.legend-grid ul { list-style: none; padding: 0; margin: .3rem 0 0; }
.legend-grid b { display: inline-block; min-width: 2.6rem; }
.code-checks label { font-size: .9rem; }
.code-checks.many { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .3rem 1rem; }
.code-other { margin-top: .5rem; max-width: 260px; font-size: .88rem; }
.pair { display: grid; grid-template-columns: 2fr 1fr; gap: .5rem; }
.tabs .tab-log { margin-left: auto; }
dl.cells { display: grid; grid-template-columns: max-content 1fr; gap: .15rem .75rem; margin: .4rem 0 0; font-size: .86rem; }
dl.cells dt { color: var(--muted); }
dl.cells dd { margin: 0; }
.owner-name { font-size: .86rem; }

/* buildings map */
.map { height: 68vh; min-height: 380px; border: 1px solid var(--rule); background: #E8ECEA; }
.map-tools { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; align-items: center; margin: .5rem 0; font-size: .9rem; }
.map-key { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; color: var(--muted); }
.map-key .pin { margin-left: .6rem; }
.pin { display: inline-block; width: 16px; height: 16px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.35); }
.pin-C { background: #1F5C4E; }
.pin-R { background: #2C6FB7; }
.pin-out { background: #8A949B; }
.pin-approx { opacity: .45; border-style: dashed; }
.map-popup { font: 13px/1.4 "Public Sans", system-ui, sans-serif; max-width: 260px; }
.map-popup div { margin-top: .15rem; }
.map-links { margin-top: .4rem !important; display: flex; gap: .75rem; }
.locate-box { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.map-link { font-size: .82rem; white-space: nowrap; }
.dup-choice { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }

/* pinned title row(s) and totals row */
.table-wrap thead { position: sticky; top: 0; z-index: 3; }
.table-wrap tfoot { position: sticky; bottom: 0; z-index: 2; }
.table-wrap thead th { box-shadow: inset 0 -1px 0 var(--rule), inset 0 1px 0 var(--rule); }   /* lines stay drawn while pinned */
.table-wrap tfoot td { box-shadow: inset 0 1px 0 var(--rule); }
.out-section table { opacity: 1; }
.out-section tbody td { color: #56626B; }
@media print {
  .table-wrap { max-height: none; overflow: visible; }
  .table-wrap thead, .table-wrap tfoot { position: static; }
}


/* ================= top bar and main menu ================= */
.topbar {
  display: flex; align-items: center; gap: 1.5rem; padding: 0 1.25rem; min-height: 56px;
  background: var(--ink); color: #fff; position: relative; z-index: 40;
}
.brand { color: #fff; font-weight: 700; text-decoration: none; letter-spacing: .01em; white-space: nowrap; }
.menu { display: flex; align-items: stretch; gap: .25rem; flex: 1; align-self: stretch; }
.menu-group { position: relative; display: flex; }
.menu-top {
  display: flex; align-items: center; gap: .4rem; padding: 0 .8rem; min-height: 56px;
  font: inherit; font-weight: 500; color: #C9D3DA; background: none; border: 0; cursor: pointer;
  text-decoration: none; border-bottom: 3px solid transparent; border-top: 3px solid transparent;
}
.menu-top:hover, .menu-top[aria-expanded="true"] { color: #fff; background: rgba(255,255,255,.06); }
.menu-top[aria-current="page"], .is-current > .menu-top { color: #fff; border-bottom-color: #7FC8B2; }
.menu-top:focus-visible { outline: 3px solid #7FB6F0; outline-offset: -3px; }
.caret { width: .45rem; height: .45rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
         transform: rotate(45deg) translateY(-2px); opacity: .75; transition: transform .15s; }
.menu-top[aria-expanded="true"] .caret { transform: rotate(-135deg) translateY(-1px); }

.submenu {
  position: absolute; top: 100%; left: 0; z-index: 50; min-width: 20rem; padding: .4rem;
  background: var(--sheet); color: var(--ink); border: 1px solid var(--rule); border-radius: 6px;
  box-shadow: 0 12px 32px rgba(29, 42, 53, .22);
}
.submenu[hidden] { display: none; }
.submenu-right { left: auto; right: 0; }
.submenu a, .submenu-button {
  display: block; width: 100%; text-align: left; padding: .5rem .75rem; border-radius: 4px;
  color: var(--ink); text-decoration: none; font: inherit; background: none; border: 0; cursor: pointer;
}
.submenu a:hover, .submenu a:focus-visible, .submenu-button:hover, .submenu-button:focus-visible { background: var(--accent-soft); outline: none; }
.submenu a[aria-current="page"] { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
.submenu-label { display: block; font-weight: 600; }
.submenu-desc { display: block; font-size: .82rem; color: var(--muted); margin-top: .05rem; }
.submenu-heading { padding: .45rem .75rem .2rem; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.submenu-sep { height: 1px; background: var(--rule-soft); margin: .35rem .25rem; }
.submenu form { margin: 0; }
.submenu-button { color: var(--danger); font-weight: 600; }

.user-menu { margin-left: auto; }
.user-button { gap: .6rem; }
.avatar { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%;
          background: #2E6E5E; color: #fff; font-size: .8rem; font-weight: 700; letter-spacing: .02em; }
.user-text { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.user-name { color: #fff; font-weight: 600; }
.user-role { font-size: .75rem; color: #AAB6BE; font-weight: 400; }

.nav-toggle { display: none; margin-left: auto; font-size: 1.4rem; line-height: 1; color: #fff; background: none;
              border: 1px solid rgba(255,255,255,.3); border-radius: 4px; padding: .3rem .6rem; cursor: pointer; }

/* Small screens: ☰ opens the whole menu as a list, sections expanded */
@media (max-width: 860px) {
  .topbar { flex-wrap: wrap; gap: 0; padding: .5rem 1rem; }
  .nav-toggle { display: block; }
  .menu { display: none; flex-basis: 100%; flex-direction: column; padding: .5rem 0 .75rem; }
  .nav-open .menu { display: flex; }
  .menu-group { display: block; }
  .menu-top { min-height: 0; padding: .6rem .25rem; border: 0; width: 100%; }
  .menu-group > .menu-top { pointer-events: none; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: #AAB6BE; }
  .menu-group > .menu-top .caret { display: none; }
  .menu-top[aria-current="page"] { color: #fff; box-shadow: inset 3px 0 0 #7FC8B2; padding-left: .75rem; }
  .submenu, .submenu[hidden] { display: block; position: static; box-shadow: none; border: 0; background: rgba(255,255,255,.04); min-width: 0; }
  .submenu a, .submenu-button { color: #E8EEF1; }
  .submenu a:hover, .submenu a[aria-current="page"] { background: rgba(255,255,255,.08); }
  .submenu a[aria-current="page"] { box-shadow: inset 3px 0 0 #7FC8B2; }
  .submenu-desc { color: #AAB6BE; }
  .submenu-heading { color: #AAB6BE; }
  .submenu-sep { background: rgba(255,255,255,.12); }
  .submenu-button { color: #FFB4AA; }
  .user-menu { margin-left: 0; border-top: 1px solid rgba(255,255,255,.12); margin-top: .5rem; padding-top: .25rem; }
  .user-menu > .user-button { pointer-events: none; text-transform: none; letter-spacing: 0; font-size: 1rem; }
}

/* change history */
table.history td { font-size: .88rem; }
.hist-old { color: var(--muted); text-decoration: line-through; text-decoration-color: rgba(163, 50, 42, .45); }
.hist-new { font-weight: 500; }
tr.hist-created td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
tr.hist-deleted td:first-child { box-shadow: inset 3px 0 0 var(--danger); }
tr.hist-deleted .hist-old { text-decoration: none; }
.history-wrap { max-height: 24rem; }

/* sub-item shown under its item (e.g. Buildings > Map) */
.submenu a.submenu-child { margin-left: 1.1rem; width: calc(100% - 1.1rem); padding-top: .3rem; padding-bottom: .35rem;
                           border-left: 2px solid var(--rule); border-radius: 0 4px 4px 0; }
.submenu a.submenu-child .submenu-label { font-weight: 500; font-size: .95rem; }
.submenu a.submenu-child[aria-current="page"] { border-left-color: var(--accent); box-shadow: none; }
@media (max-width: 860px) { .submenu a.submenu-child { border-left-color: rgba(255,255,255,.2); } }

/* an item whose sub-item is the page being shown (e.g. Buildings while on its Map) */
.submenu a.is-parent-here { background: #F3F8F6; }
@media (max-width: 860px) { .submenu a.is-parent-here { background: rgba(255,255,255,.05); } }

/* tanks */
.facility { margin: 1.25rem 0 1.75rem; }
.facility-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .5rem 1rem; margin-bottom: .5rem; }
.facility-head h2 { margin: 0; }
.facility-desc { font-weight: 400; color: var(--muted); font-size: .95rem; }
.facility-total { margin: .35rem 0 0; }
.tank-note { font-size: .85rem; color: var(--muted); }
table.tanks td { white-space: nowrap; }

/* paste from Excel */
.paste-box { min-height: 14rem; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: .82rem; tab-size: 12; white-space: pre; overflow: auto; }
details.alt-input summary { cursor: pointer; color: var(--accent); margin-bottom: .5rem; }
.missing-buildings { border-left: 4px solid var(--warn); margin-bottom: 1rem; }
.missing-one { margin: 0 0 1rem; }
.missing-one .new-building { margin-top: .5rem; }

/* approvals */
.pending-panel { background: var(--sheet); border: 1px solid var(--rule); border-left: 4px solid var(--rule); padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.pending-panel.has-items { border-left-color: var(--warn); }
.pending-panel h2 { margin-top: 0; display: flex; align-items: center; gap: .6rem; }
.pending-panel .count { display: inline-grid; place-items: center; min-width: 1.8rem; height: 1.8rem; padding: 0 .4rem; border-radius: 1rem;
                        background: var(--rule-soft); font-size: .9rem; }
.pending-panel.has-items .count { background: var(--warn); color: #fff; }
table.requests td { font-size: .9rem; vertical-align: top; }
table.request-diff th { text-align: left; white-space: nowrap; width: 1%; }
.decide { max-width: 720px; }

/* insurance dashboard + claims */
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1rem; margin:1rem 0 1.5rem; }
.kpi { display:flex; flex-direction:column; gap:.25rem; background:var(--sheet); border:1px solid var(--rule); border-top:4px solid var(--accent); padding:1rem 1.1rem; text-decoration:none; color:var(--ink); }
.kpi strong { font-size:2rem; line-height:1.1; font-weight:600; } .kpi span { color:var(--muted); font-size:.85rem; font-weight:600; text-transform:uppercase; letter-spacing:.035em; } .kpi small { color:var(--muted); }
.kpi-warn { border-top-color:var(--warn); background:#fffdf7; }
.dash-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; } .dash-columns .panel+.panel{margin-top:0}
.section-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:.6rem; }.section-head h2{margin:0}
.dash-list>a { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; border-top:1px solid var(--rule-soft); text-decoration:none; color:var(--ink); }.dash-list>a:first-child{border-top:0}.dash-list small{display:block;color:var(--muted);margin-top:.15rem}
.claim-steps { display:grid; grid-template-columns:repeat(4,1fr); margin:0 0 1rem; border:1px solid var(--rule); background:var(--sheet); }.claim-steps span{padding:.65rem;text-align:center;border-right:1px solid var(--rule);font-weight:600;font-size:.86rem}.claim-steps span:last-child{border-right:0}
.claim-stage { border-left:4px solid var(--accent); }.claim-stage h2{margin-top:0}.claim-status{display:inline-block;padding:.2rem .5rem;border-radius:1rem;background:var(--rule-soft);font-size:.78rem;font-weight:600;white-space:nowrap}.status-awaiting_documents,.status-draft{background:var(--warn-soft);color:var(--warn)}.status-investigation,.status-reported{background:var(--accent-soft);color:var(--accent)}.status-denied{background:var(--danger-soft);color:var(--danger)}
@media(max-width:860px){.dash-columns{grid-template-columns:1fr}.claim-steps{grid-template-columns:1fr 1fr}.claim-steps span:nth-child(2){border-right:0}}

/* guided claim wizard + asset finder */
.claim-wizard{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin:0 0 1rem;border:1px solid var(--rule);background:var(--sheet)}
.claim-wizard a{display:flex;align-items:center;gap:.45rem;padding:.65rem .55rem;border-right:1px solid var(--rule);text-decoration:none;color:var(--muted);font-size:.8rem;font-weight:600}.claim-wizard a:last-child{border-right:0}.claim-wizard a.active{background:var(--accent-soft);color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}.claim-wizard b{display:grid;place-items:center;min-width:1.5rem;height:1.5rem;border-radius:50%;background:var(--rule-soft);color:var(--ink)}.claim-wizard a.active b{background:var(--accent);color:#fff}
.asset-results{margin-top:.75rem;display:grid;gap:.4rem}.asset-result{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:.7rem .8rem;background:var(--sheet);border:1px solid var(--rule);border-radius:4px;text-align:left;cursor:pointer;color:var(--ink)}.asset-result:hover,.asset-result:focus{border-color:var(--accent);background:var(--accent-soft)}.asset-result span{font-size:.82rem;color:var(--muted);margin-top:.15rem}.asset-selected{margin-top:1rem;padding:1rem;border:1px solid var(--accent);border-left:4px solid var(--accent);background:var(--accent-soft)}.asset-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem 1rem;margin-top:.7rem}.asset-detail-grid span{display:block;color:var(--muted);font-size:.75rem;text-transform:uppercase}.asset-detail-grid b{font-size:.9rem}
@media(max-width:980px){.claim-wizard{grid-template-columns:repeat(3,1fr)}.claim-wizard a:nth-child(3){border-right:0}}@media(max-width:620px){.claim-wizard{grid-template-columns:1fr 1fr}.claim-wizard a:nth-child(3){border-right:1px solid var(--rule)}.claim-wizard a:nth-child(even){border-right:0}.claim-wizard span{font-size:.74rem}}

/* participant-branded insurance reports */
.report-sheet{max-width:1100px;margin:1rem auto 1.5rem;background:#fff;border:1px solid var(--rule);padding:1.35rem 1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.report-brand{display:flex;align-items:center;gap:1rem;border-bottom:2px solid var(--ink);padding-bottom:1rem;margin-bottom:1rem}.report-brand img{width:150px;height:80px;object-fit:contain;object-position:left center}.report-brand h1{margin:.1rem 0;font-size:1.55rem}.report-brand p{margin:0;color:var(--muted)}.report-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:var(--muted)}.report-number{margin-left:auto;text-align:right;display:flex;flex-direction:column;gap:.2rem}.report-number>span{font-size:.72rem;text-transform:uppercase;color:var(--muted)}.report-number>strong{font-size:1.25rem}.report-number>small{color:var(--muted)}
.report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem 1rem}.report-field{border-bottom:1px solid var(--rule-soft);padding:.35rem 0}.report-field span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.report-field strong{display:block;margin-top:.12rem;font-size:.92rem}.report-block{margin-top:1rem}.report-block h2{font-size:1rem;border-bottom:1px solid var(--rule);padding-bottom:.35rem;margin-bottom:.55rem}.report-text p{margin:.2rem 0 .65rem}.report-footer{border-top:1px solid var(--rule);margin-top:1rem;padding-top:.55rem;color:var(--muted);font-size:.75rem}.report-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.5rem}.report-kpis>div{border:1px solid var(--rule);padding:.6rem}.report-kpis span,.report-kpis small{display:block;color:var(--muted);font-size:.75rem}.report-kpis strong{font-size:1.35rem}
.participant-dashboard-brand{display:flex;align-items:center;gap:1rem}.participant-dashboard-brand img{width:120px;height:64px;object-fit:contain;object-position:left center;background:#fff;border:1px solid var(--rule);padding:.35rem}
@media(max-width:760px){.report-grid{grid-template-columns:1fr 1fr}.report-brand{align-items:flex-start;flex-wrap:wrap}.report-number{margin-left:0;text-align:left}.report-brand img{width:120px;height:60px}}
@media print{.topbar,.no-print,.notice{display:none!important}main{max-width:none!important;margin:0!important;padding:0!important}.report-sheet{border:0;box-shadow:none;margin:0;padding:0;max-width:none}.report-grid{grid-template-columns:repeat(4,1fr)}a{color:inherit;text-decoration:none}.report-block{break-inside:avoid}body{background:#fff;font-size:10pt}}
