:root {
  --navy: #16283C;
  --brass: #A07E3B;
  --paper: #F4F1EA;
  --ink: #1F2937;
  --hair: #D6D3CD;
  --bad: #B42318;
  --warn: #B45309;
  --quiet: #6B7280;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--paper);
  color: var(--ink);
  font: 15px/1.5 "Avenir Next", "Century Gothic", "Trebuchet MS", sans-serif;
}
.mast {
  background: var(--navy);
  color: #fff;
  padding: 18px 28px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.wordmark { color: inherit; text-decoration: none; }
.wordmark-name {
  display: block;
  letter-spacing: 0.22em;
  font-size: 13px;
  font-weight: 600;
}
.wordmark-sub {
  display: block;
  margin-top: 4px;
  letter-spacing: 0.16em;
  font-size: 10px;
  opacity: 0.75;
}
.brass-rule { height: 3px; background: var(--brass); }
#app {
  max-width: 920px;
  margin: 0 auto;
  padding: 36px 28px 80px;
}
.eyebrow {
  color: var(--brass);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 600;
  margin: 0 0 8px;
}
.sheet-title {
  font-family: Palatino, "Palatino Linotype", "Book Antiqua", serif;
  font-size: 32px;
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 8px;
}
.muted { color: var(--quiet); font-size: 14px; }
.mast-actions .btn { width: auto; margin: 0; }
.register { margin-top: 28px; }
.row-rule {
  border-top: 1px solid var(--hair);
  padding: 16px 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px 24px;
  align-items: baseline;
  cursor: pointer;
}
.row-rule:last-child { border-bottom: 1px solid var(--hair); }
.row-name {
  font-family: Palatino, "Palatino Linotype", "Book Antiqua", serif;
  font-size: 20px;
}
.row-meta { color: var(--quiet); font-size: 13px; }
label { display: block; margin-top: 16px; font-size: 13px; }
input, select, textarea {
  font: inherit;
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid var(--hair);
  background: #fff;
  color: var(--ink);
}
.btn, button {
  font: inherit;
  font-weight: 600;
  width: 100%;
  margin-top: 12px;
  padding: 12px 16px;
  border: 1px solid var(--navy);
  background: var(--navy);
  color: #fff;
  cursor: pointer;
}
.btn-secondary, button.secondary {
  background: transparent;
  color: var(--navy);
}
.btn-danger, button.danger {
  background: transparent;
  color: var(--bad);
  border-color: var(--bad);
}
button:disabled { opacity: 0.45; cursor: not-allowed; }
.hidden { display: none; }
.cycle-links a { margin-right: 12px; }
.actions { display: flex; gap: 12px; margin-top: 20px; }
.actions > * { flex: 1; }
.finding { border-top: 1px solid var(--hair); padding: 28px 0; }
.finding-title {
  font-family: Palatino, "Palatino Linotype", "Book Antiqua", serif;
  font-size: 22px;
  margin: 6px 0 16px;
}
.sev-MEDIUM { color: var(--warn); }
.sev-HIGH, .sev-LOW, .sev-INFO { color: var(--ink); }
.field-label {
  color: var(--brass);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 11px;
  margin: 12px 0 4px;
}
.exhibit-well {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 18px 0 8px;
}
.exhibit-frame {
  aspect-ratio: 4 / 3;
  border: 1px solid var(--hair);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--quiet);
  font-size: 12px;
}
.banner-warn {
  border: 1px solid var(--warn);
  color: var(--warn);
  padding: 12px;
  margin: 16px 0;
}
.banner-info {
  border: 1px solid var(--brass);
  color: var(--navy);
  padding: 12px;
  margin: 16px 0;
}
img.shot { width: 100%; display: block; margin: 12px 0; }
.review-flags { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.badge-off, .badge-test {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 99px;
}
.badge-off { color: var(--warn); border: 1px solid var(--warn); }
.badge-test { color: var(--quiet); border: 1px solid var(--hair); }
.pay-line {
  border-top: 1px solid var(--hair);
  padding: 20px 0 4px;
}
.pay-line .finding-title { font-size: 20px; margin-bottom: 4px; }
.pay-line select { max-width: 360px; }
.issue-row { border-top: 1px solid var(--hair); padding: 16px 0 4px; }
.issue-row .finding-title { font-size: 18px; margin-bottom: 4px; }
.issue-row .actions { margin-top: 8px; }
.doc-rev { margin: 12px 0 8px; }
.doc-checksum { margin: 8px 0; }
.doc-checksum summary {
  cursor: pointer;
  color: var(--quiet);
  font-size: 14px;
}
.confirm-dialog {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 18, 16, 0.45);
}
.confirm-panel {
  width: min(520px, 100%);
  background: var(--paper, #f7f4ee);
  border: 1px solid var(--hair, #d7d0c4);
  padding: 24px;
}
.confirm-title {
  margin: 0 0 16px;
  font-size: 18px;
  line-height: 1.4;
}
.confirm-panel .actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}
.confirm-panel .actions button { width: auto; flex: 1; margin-top: 0; }
.confirm-panel textarea { min-height: 5.5rem; }
.profile-inspect { white-space: pre-wrap; margin: 12px 0; }

/* Keep distinct date columns readable without squeezing wide timelines. */
.schedule-table { width: 100%; min-width: 780px; border-collapse: collapse; }
.schedule-table th, .schedule-table td { padding: .65rem .8rem; text-align: left; vertical-align: top; border-bottom: 1px solid #d8d5ce; }
.schedule-table th { white-space: nowrap; }
.schedule-table td:not(:first-child) { min-width: 7rem; }
.schedule-table caption { text-align: left; padding: .5rem .8rem; }

.readiness-lane { border: 1px solid #cdd5d2; border-radius: 8px; padding: 18px; margin: 16px 0; }
.readiness-counts { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 12px; }
.readiness-counts dt { font-size: 13px; }
.readiness-counts dd { margin: 4px 0 0; font-size: 22px; font-weight: 600; }
.readiness-lane li { margin: 12px 0; }

.client-file-stage { margin-top: 16px; }
.client-file-stage img { max-width: 100%; height: auto; display: block; background: #fff; }
.client-file-stage iframe { width: 100%; min-height: 70vh; border: 1px solid #d8d5ce; background: #fff; }
.client-file-actions { display: flex; gap: 12px; align-items: center; margin-top: 12px; }
.client-file-actions a, .client-file-actions button { width: auto; margin-top: 0; }
/* Project connections reuse the existing visual system. */
.workspace-nav { display:flex; flex-wrap:wrap; gap:12px; padding:16px 0; border-bottom:1px solid #c8c2b5; margin-bottom:20px; }
.workspace-nav a { font-weight:600; }
.workspace-nav span { color:#6b7280; }

/* Card 65 authenticated operating workspace. Public/client surfaces keep their contract. */
body.workspace {--paper:#f1f3f4;--hair:#d9dfe3;--quiet:#536371;--brass:#785c29;background:var(--paper);font:14px/1.55 'Avenir Next',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.workspace .mast {padding:13px 24px;align-items:center;min-height:64px;position:sticky;top:0;z-index:20;}
.workspace .mast nav {display:flex;gap:18px;align-items:center;font-size:13px;}
.workspace .mast nav a {color:#e8eef3;text-decoration:none;}
.workspace .mast nav button {width:auto;margin:0;padding:6px 12px;color:#fff;border-color:#6c8294;background:transparent;}
.workspace .wordmark-name {font-size:15px;letter-spacing:.15em;}.workspace .wordmark-sub {font-size:9px;}
.workspace-layout {display:flex;min-height:calc(100vh - 64px);}
.workspace-sidebar {width:216px;flex-shrink:0;border-right:1px solid var(--hair);background:#f8f9fa;padding:26px 14px;position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto;}
.workspace-project {font-weight:650;overflow-wrap:anywhere;padding:4px 10px 16px;border-bottom:1px solid var(--hair);}
.all-projects,.record-link {display:block;padding:8px 10px;font-size:12px;text-decoration:none;color:var(--quiet);}
.record-link {margin-top:24px;border-top:1px solid var(--hair);padding-top:16px;}
.workspace .workspace-nav {display:flex;flex-direction:column;gap:5px;margin:16px 0;border:0;padding:0;}
.workspace-nav a {display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:5px;color:#344959;text-decoration:none;white-space:nowrap;}
.workspace-nav a:hover {background:#e8edef;}.workspace-nav a[aria-current] {background:#dfe9ed;color:#142f42;font-weight:700;}
.workspace-nav svg {width:19px;height:19px;flex:none;}
.workspace-content {min-width:0;flex:1;}.workspace #app {max-width:1480px;padding:32px 40px 80px;}
.workspace #app>.workspace-nav {display:none;}
.workspace h1,.workspace .sheet-title {font-family:inherit;font-size:28px;font-weight:650;letter-spacing:-.035em;line-height:1.2;}
.workspace h2 {font-size:18px;font-weight:650;letter-spacing:-.015em;}.workspace h3 {font-size:15px;}.workspace .row-name {font:600 17px/1.4 inherit;}
.workspace .eyebrow {color:#546674;font-size:12px;letter-spacing:0;text-transform:none;font-weight:500;}
.workspace .btn,.workspace button {width:auto;padding:10px 16px;border-radius:5px;font-size:13px;transition:background .15s,border-color .15s;}
.workspace .btn {display:inline-block;text-decoration:none;}.workspace .secondary {background:#fff;color:#273e50;border-color:#bdc9d1;}
.workspace button:hover:not(:disabled),.workspace .btn:hover {filter:brightness(.96);}
.workspace button:disabled {opacity:.5;cursor:not-allowed;}.workspace input,.workspace select,.workspace textarea {border-radius:5px;border-color:#b8c4ce;}
.workspace :focus-visible {outline:3px solid #3e84b4;outline-offset:3px;}
.workspace .mast-actions {padding:0 40px;display:flex;gap:8px;flex-wrap:wrap;background:#f8f9fa;border-bottom:1px solid var(--hair);}
.workspace .mast-actions:empty {display:none;}.workspace .mast-actions .btn {margin:10px 0;padding:7px 10px;font-size:12px;}
.page-heading {display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px;}.page-heading h1 {margin:0;}.page-heading p {margin-bottom:0;}
.overview-workspace {display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start;}
.overview-main {min-width:0;}.overview-activity {border-left:1px solid var(--hair);padding-left:24px;}
.workflow-step {display:block;text-decoration:none;border-top:1px solid var(--hair);padding:16px 0;color:var(--ink);}.workflow-step strong,.workflow-step span {display:block;}.workflow-step span {color:var(--quiet);font-size:12px;margin-top:3px;}
.source-row {display:flex;justify-content:space-between;gap:24px;padding:18px 0;border-top:1px solid var(--hair);text-decoration:none;color:var(--ink);}.source-row span {color:var(--quiet);font-size:12px;}
.project-source-list {margin-top:36px;}.text-action {display:inline-block;margin-top:14px;font-weight:600;}
#overview-photos,#field-project-photos,#project-photos {display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;}
#overview-photos>p,#field-project-photos>p,#project-photos>p {grid-column:1/-1;margin:0;}
.workspace .issue-row {background:white;border:1px solid var(--hair);padding:16px;border-radius:6px;}.workspace .shot {width:100%;max-width:700px;aspect-ratio:4/3;object-fit:contain;background:#e5e9eb;}
.workspace .issue-row .shot {max-height:240px;}.workspace .issue-row h2 {font-size:14px;overflow-wrap:anywhere;}
.document-workspace {display:grid;grid-template-columns:minmax(280px,440px) minmax(0,1fr);gap:36px;margin:28px 0;align-items:start;}.intake-panel {background:white;border:1px solid var(--hair);border-radius:7px;padding:24px;}.intake-panel h2 {margin-top:0;}
#intake-retained>section {border-top:1px solid var(--hair);padding:12px 0;}.workspace [data-report-package] {margin:28px 0;padding:24px;background:#fff;border:1px solid var(--hair);border-radius:7px;}.workspace [data-report-package] .finding {border:0;padding:16px 0;margin:16px 0;}
.report-prepare {border-top:1px solid var(--hair);margin-top:24px;padding-top:16px;}.report-prepare summary {cursor:pointer;font-weight:650;}
.empty-state {padding:40px 0;max-width:620px;}.project-search {max-width:430px;}.workspace .row-rule {background:#fff;padding:20px;}.workspace .row-rule:hover {background:#f8fafb;}
.workspace-loading {max-width:650px;padding:18px 0;}.loading-mark {display:block;width:24px;height:24px;border:2px solid #bccad3;border-top-color:#203e52;border-radius:50%;animation:workspace-spin 1s linear infinite;}.skeleton {height:110px;background:#e3e8eb;border-radius:5px;margin-top:24px;}.skeleton.short {height:30px;width:65%;}
@keyframes workspace-spin {to {transform:rotate(360deg);}}
.skip-link {position:absolute;left:12px;top:-60px;background:white;color:#182d3d;padding:12px;z-index:100;}.skip-link:focus {top:8px;}
.workspace.signed-out #app {max-width:560px;margin:8vh auto;background:white;border:1px solid var(--hair);border-radius:8px;padding:36px;}
[hidden] {display:none!important;}
@media(max-width:1050px){.overview-workspace,.document-workspace{grid-template-columns:1fr}.overview-activity{border-left:0;padding:0}.workspace #app{padding:28px}.workspace-sidebar{width:190px}}
@media(max-width:700px){.workspace-layout{display:block}.workspace-sidebar{position:sticky;top:64px;width:100%;height:auto;padding:8px 12px;z-index:10;border-bottom:1px solid var(--hair);border-right:0}.workspace-project,.all-projects,.record-link{display:none}.workspace .workspace-sidebar .workspace-nav{flex-direction:row;overflow-x:auto;margin:0;gap:2px}.workspace-nav a{padding:8px;font-size:12px;gap:6px}.workspace-nav svg{width:16px;height:16px}.workspace #app{padding:24px 16px 60px}.workspace .mast{padding:12px 16px}.workspace .mast nav{gap:10px}.workspace .wordmark-sub{display:none}.workspace .mast-actions{padding:0 16px}.page-heading{align-items:start;flex-direction:column}.source-row{flex-direction:column;gap:5px}.workspace h1{font-size:25px}.workspace.signed-out #app{margin:24px 16px}.workspace .issue-row{padding:12px}}
@media(prefers-reduced-motion:reduce){.loading-mark{animation:none}.workspace *{transition:none!important}}

.workspace a {color:#245570}.workspace .mast a {color:#e8eef3}.workspace .btn {color:white}.workspace .btn.secondary {color:#273e50}.workspace .workspace-nav a {color:#344959}.workspace .workspace-nav a[aria-current] {color:#142f42}.workspace .field-label {letter-spacing:0;text-transform:none;font-size:13px;color:#536371}.workspace .row-name {font-family:inherit;font-weight:600;font-size:17px}.workspace .issue-row .finding-title{font-size:17px}
.risk-controls { max-width: 760px; padding: 24px; background: #fff; margin-block: 24px; }
.risk-controls label, .risk-candidate label { display: block; margin-block: 16px 8px; }
.risk-controls select, .risk-controls input, .risk-candidate textarea { width: 100%; max-width: 720px; }
.risk-scan { border-top: 1px solid var(--hair, #d6d3cd); padding-block: 28px; }
.risk-candidate { display: grid; grid-template-columns: minmax(260px, .85fr) minmax(320px, 1.15fr); gap: 28px; padding-block: 24px; }
.risk-candidate h3 { margin-top: 0; color: #923029; }
.risk-condition { font-size: 20px; font-weight: 600; }
.risk-candidate-image { position: relative; align-self: start; }
.risk-candidate-image img { display: block; width: 100%; height: auto; }
.risk-region { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.risk-region rect { fill: transparent; stroke: #b42318; stroke-width: 3px; }
.risk-scan pre { max-height: 360px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; }
@media (max-width: 760px) { .risk-candidate { grid-template-columns: minmax(0,1fr); gap: 20px; } .risk-controls { padding: 16px; } }

/* Private evaluation review: originals and optional notes stay together. */
.evaluation-six-review { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr)); gap:24px; }
.evaluation-review-card { border:1px solid var(--border,#ced6d3); padding:20px; border-radius:10px; background:var(--surface,#fff); }
.evaluation-review-card img { width:100%; height:360px; object-fit:contain; background:#edf0ed; }
.evaluation-review-card dt { font-weight:650; margin-top:12px; }
.evaluation-review-card dd { margin:4px 0 12px; }
.evaluation-review-card fieldset { margin:16px 0; }
.evaluation-review-card fieldset label { display:block; padding:8px 0; }
.evaluation-review-card textarea { width:100%; }
.evaluation-review-save { position:sticky; bottom:0; padding:16px; background:var(--surface,#fff); border-top:1px solid var(--border,#ced6d3); margin:24px 0; }
.evaluation-six-review ~ details pre { white-space:pre-wrap; max-height:420px; overflow:auto; }
