:root {
  --navy: #102a43;
  --navy-2: #163a5f;
  --ink: #17222e;
  --muted: #617181;
  --line: #d9e2ec;
  --paper: #f4f7fa;
  --white: #ffffff;
  --teal: #0f8f83;
  --teal-light: #dff6f2;
  --amber: #d97706;
  --amber-light: #fff4dc;
  --red: #b42318;
  --shadow: 0 10px 30px rgba(15, 39, 64, .08);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { font-size: 16px; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--paper); color: var(--ink); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 255px minmax(0, 1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 255px; padding: 24px 18px; color: #e7eef5; background: var(--navy); display: flex; flex-direction: column; z-index: 20; }
.sidebar::after { content:""; position:absolute; inset:0; opacity:.06; pointer-events:none; background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size:28px 28px; }
.brand, .nav-list, .sidebar-footer { position: relative; z-index: 1; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 24px; border-bottom: 1px solid rgba(255,255,255,.14); }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border: 2px solid #2dd4bf; border-radius: 9px; color: #2dd4bf; font-weight: 900; }
.brand strong, .brand span { display: block; }
.brand strong { font-size: .94rem; letter-spacing: .04em; }
.brand span { font-size: .72rem; color: #9fb3c8; margin-top: 3px; }
.nav-list { display: grid; gap: 7px; margin-top: 26px; }
.nav-item { width: 100%; border: 0; border-radius: 8px; padding: 12px; background: transparent; color: #b8c7d7; display: flex; align-items: center; gap: 13px; text-align: left; font-size: .9rem; }
.nav-item:hover { background: rgba(255,255,255,.07); color: white; }
.nav-item.active { background: #fff; color: var(--navy); box-shadow: var(--shadow); font-weight: 700; }
.nav-number { font-size: .68rem; font-weight: 800; letter-spacing: .08em; color: #6eddd1; }
.nav-item.active .nav-number { color: var(--teal); }
.sidebar-footer { margin-top: auto; padding: 14px 10px 4px; font-size: .78rem; color: #c3d1df; }
.sidebar-footer small { display: block; margin: 5px 0 0 15px; color: #829ab1; }
.status-dot { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: #2dd4bf; }
main { grid-column: 2; min-width: 0; }
.topbar { min-height: 82px; padding: 15px 34px; background: var(--white); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 10; }
.eyebrow { margin: 0 0 4px; color: var(--teal); font-size: .68rem; font-weight: 900; letter-spacing: .13em; }
.project-switcher { position: relative; }
.project-picker { min-height: 30px; border: 0; background: none; padding: 0; color: var(--navy); font-weight: 800; font-size: 1rem; display: flex; align-items: center; gap: 8px; }
.project-picker:hover #active-project-name { color: var(--teal); }
.project-picker:focus-visible { outline: 3px solid rgba(15,143,131,.2); outline-offset: 4px; border-radius: 3px; }
.project-picker .picker-chevron { color: var(--muted); transition: transform .18s ease; }
.project-picker[aria-expanded="true"] .picker-chevron { transform: rotate(180deg); }
.project-menu { position: absolute; top: calc(100% + 11px); left: -10px; width: min(340px, calc(100vw - 32px)); padding: 8px; border: 1px solid var(--line); border-radius: 9px; background: white; box-shadow: 0 18px 44px rgba(15,39,64,.18); z-index: 40; }
.project-menu[hidden] { display: none; }
.project-option, .add-project-command { width: 100%; min-height: 52px; border: 0; border-radius: 7px; padding: 9px 10px; background: white; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
.project-option:hover, .project-option:focus-visible { background: #f2f7f8; }
.project-option strong, .project-option small { display: block; }
.project-option strong { color: var(--navy); font-size: .82rem; }
.project-option small { margin-top: 3px; color: var(--muted); font-size: .68rem; }
.project-option b { color: var(--teal); }
.project-option.active { background: var(--teal-light); }
.add-project-command { margin-top: 7px; border-top: 1px solid var(--line); border-radius: 0 0 6px 6px; color: var(--teal); font-size: .78rem; font-weight: 800; justify-content: flex-start; }
.add-project-command:hover { background: #f4fcfb; }
.add-project-command span { font-size: 1rem; }
.topbar-meta { display: flex; align-items: center; gap: 22px; }
.topbar-meta div:first-child { text-align: right; }
.topbar-meta span, .topbar-meta strong { display: block; }
.topbar-meta span { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .1em; }
.topbar-meta strong { color: var(--navy); font-size: .78rem; margin-top: 4px; }
.avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--navy); color: white; font-size: .78rem; font-weight: 800; }
.screen { display: none; padding: 32px 34px 60px; max-width: 1480px; margin: 0 auto; }
.screen.active { display: block; animation: reveal .2s ease-out; }
@keyframes reveal { from { opacity: 0; transform: translateY(4px); } }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 27px; }
.page-heading h1 { margin: 0; color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 500; line-height: 1; }
.page-heading p:not(.eyebrow) { margin: 9px 0 0; color: var(--muted); }
.pill { display: inline-flex; align-items: center; border-radius: 100px; padding: 7px 11px; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.pill.good { color: #087469; background: var(--teal-light); }
.pill.warning { color: #9a5800; background: var(--amber-light); }
.pill.draft { color: #526779; background: #e8eef3; }
.metric-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 30px; }
.metric { padding: 18px 19px; background: var(--white); border: 1px solid var(--line); border-radius: 9px; box-shadow: 0 4px 15px rgba(15,39,64,.03); }
.metric span, .metric small { display: block; color: var(--muted); font-size: .72rem; }
.metric strong { display: block; color: var(--navy); font-size: 1.65rem; margin: 7px 0 2px; }
.section-toolbar, .panel-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.section-toolbar { margin: 0 0 14px; }
.section-toolbar h2, .panel-head h2 { margin: 0; color: var(--navy); font-size: 1rem; }
.section-toolbar p, .panel-head p { margin: 5px 0 0; color: var(--muted); font-size: .78rem; }
.primary-btn, .secondary-btn { min-height: 42px; border-radius: 7px; padding: 10px 15px; font-size: .8rem; font-weight: 800; }
.primary-btn { color: white; background: var(--teal); border: 1px solid var(--teal); }
.primary-btn:hover { background: #0a796f; }
.secondary-btn { color: var(--navy); background: white; border: 1px solid #b8c5d1; }
.secondary-btn:hover { background: #f7fafc; border-color: #829ab1; }
.text-btn { border: 0; background: transparent; color: var(--teal); font-size: .78rem; font-weight: 800; }
.full { width: 100%; }
.source-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.source-card { min-height: 78px; padding: 14px; background: var(--white); border: 1px solid var(--line); border-radius: 8px; display: flex; align-items: center; gap: 12px; position: relative; }
.source-card.category-source { width:100%; cursor:pointer; text-align:left; font:inherit; }
.source-card.category-source:hover { border-color:#6d91ad; box-shadow:0 4px 14px rgba(23,50,77,.08); }
.source-card.category-source.active { border-color:var(--teal); box-shadow:0 0 0 2px rgba(8,116,105,.14); }
.source-card.category-source .category-count { position:absolute; right:12px; bottom:10px; color:var(--navy); font-size:.68rem; font-weight:900; }
.source-card strong, .source-card span { display: block; }
.source-card strong { color: var(--navy); font-size: .85rem; }
.source-card span { color: var(--muted); font-size: .7rem; margin-top: 4px; }
.source-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 6px; color: white; font-size: .62rem; font-weight: 900; letter-spacing: .05em; }
.source-icon.plans { background: #1d4e89; } .source-icon.specs { background: #4c6a92; } .source-icon.schedule, .source-icon.look-ahead { background: #7c3aed; } .source-icon.submittals { background: #087469; } .source-icon.rfis { background: #b45309; }
.source-icon.schedule { font-size: 0; }
.source-icon.schedule::after { content: "SCH"; font-size: .62rem; }
.source-icon.reports { background:#465c6f; } .source-icon.other { background:#6b7280; }
.source-state { position: absolute; right: 11px; top: 10px; font-size: .56rem; color: var(--teal); letter-spacing: .07em; }
.upload-card { border: 1px dashed #90a4b7; background: transparent; cursor: pointer; }
.upload-card:hover { border-color: var(--teal); background: #f4fcfb; }
.upload-plus { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #e6edf3; color: var(--teal); font-weight: 800; }
.panel { margin-top: 22px; padding: 20px; border: 1px solid var(--line); border-radius: 9px; background: var(--white); box-shadow: var(--shadow); }
.table-wrap { overflow-x: auto; margin-top: 13px; }
table { width: 100%; border-collapse: collapse; font-size: .77rem; }
th { padding: 10px 12px; color: var(--muted); background: #f3f6f8; text-align: left; font-size: .63rem; letter-spacing: .07em; text-transform: uppercase; }
td { padding: 12px; border-bottom: 1px solid #e8edf2; }
td strong, td small { display: block; }
td small { margin-top: 3px; color: var(--muted); }
.table-status { padding: 4px 7px; border-radius: 20px; font-size: .64rem; font-weight: 800; }
.table-status.current, .table-status.approved { color: #087469; background: var(--teal-light); }
.table-status.review { color: #9a5800; background: var(--amber-light); }
.two-column { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(290px, .8fr); gap: 22px; align-items: start; }
.work-card { min-height: 132px; padding: 18px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 9px; background: white; display: grid; grid-template-columns: 30px 1fr 28px; gap: 10px; }
.work-card.selected { border-color: #72c8bf; box-shadow: inset 4px 0 var(--teal); }
.work-check { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 5px; color: white; background: var(--teal); font-size: .75rem; font-weight: 900; }
.work-check.empty { background: white; border: 1px solid #afbdca; }
.work-top { display: flex; gap: 7px; }
.activity-id, .trade { display: inline-block; padding: 4px 7px; border-radius: 4px; font-size: .62rem; font-weight: 900; }
.activity-id { color: #0b6f66; background: var(--teal-light); }
.trade { color: #53677a; background: #edf2f6; }
.work-main h3 { margin: 10px 0 5px; color: var(--navy); font-size: 1rem; }
.work-main > p { margin: 0; color: var(--muted); font-size: .78rem; }
.work-details { display: flex; gap: 17px; flex-wrap: wrap; margin-top: 15px; color: #45586a; font-size: .68rem; font-weight: 700; }
.more-btn { border: 0; background: none; color: #829ab1; align-self: start; }
.prep-panel { margin-top: 0; position: sticky; top: 102px; }
.prep-panel h2 { margin: 4px 0 20px; color: var(--navy); font-family: Georgia,serif; font-size: 1.5rem; font-weight: 500; }
.input-summary { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid #e5ebf0; font-size: .76rem; }
.input-summary span { color: var(--muted); }
.prep-panel label, .note-entry label { display: block; color: var(--navy); font-size: .72rem; font-weight: 800; margin: 17px 0 7px; }
.prep-panel input[type="date"], .prep-panel textarea { width:100%; border:1px solid #c8d3dd; border-radius:7px; background:#fff; color:var(--navy); font:inherit; font-size:.86rem; padding:11px 12px; box-sizing:border-box; }
.prep-panel textarea { resize:vertical; line-height:1.45; }
.project-work-input { padding:22px; }
.project-work-input h2 { margin:5px 0 9px; color:var(--navy); font-family:Georgia,serif; font-size:1.35rem; font-weight:500; }
.project-work-input > p:not(.eyebrow) { color:var(--muted); line-height:1.55; }
.source-readiness { margin-top:18px; padding:13px 14px; border-radius:7px; background:var(--teal-light); color:#12645e; font-size:.8rem; font-weight:800; }
.generation-status { min-height:1.2rem; margin:10px 0 0; color:#9a5800; font-size:.75rem; line-height:1.4; }
textarea, input, select { width: 100%; border: 1px solid #b9c6d1; border-radius: 6px; background: white; color: var(--ink); padding: 10px; outline: none; }
textarea:focus, input:focus, select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(15,143,131,.12); }
.alert-box { margin: 16px 0; padding: 12px; border-left: 4px solid var(--amber); background: var(--amber-light); }
.alert-box strong { color: #804900; font-size: .76rem; }
.alert-box p { margin: 5px 0 0; color: #745630; font-size: .7rem; line-height: 1.45; }
.generate-btn { margin-top: 4px; display: flex; justify-content: space-between; align-items: center; }
.button-group { display: flex; gap: 8px; }
.prototype-banner { padding: 11px 14px; margin-bottom: 15px; border: 1px solid #f1c46a; background: #fff9eb; color: #6e4b14; font-size: .75rem; }
.guide-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.guide-section { background: white; border: 1px solid var(--line); border-radius: 8px; padding: 19px; }
.guide-section.wide { grid-column: 1 / -1; }
.guide-section-title { display: flex; gap: 12px; align-items: flex-start; padding-bottom: 14px; border-bottom: 1px solid #e5ebf0; }
.guide-section-title > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--teal); background: var(--teal-light); font-size: .68rem; font-weight: 900; }
.guide-section-title h2 { margin: 0; color: var(--navy); font-size: 1rem; }
.guide-section-title p { margin: 4px 0 0; color: var(--muted); font-size: .7rem; }
.prototype-banner span { margin-left:8px; font-weight:800; }
.generated-guide-section { min-width:0; }
.activity-overview { color:#425466; line-height:1.55; }
.generated-guide-columns { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:17px; }
.generated-guide-columns section { min-width:0; }
.generated-guide-columns h3 { margin:0 0 9px; color:var(--navy); font-size:.79rem; text-transform:uppercase; letter-spacing:.05em; }
.generated-list { list-style:none; margin:0; padding:0; }
.generated-list li { padding:10px 0; border-top:1px solid #e8edf2; color:var(--navy); line-height:1.4; }
.generated-list li:first-child { border-top:0; padding-top:0; }
.generated-list p { margin:4px 0 7px; color:var(--muted); font-size:.78rem; line-height:1.45; }
.guide-empty { color:var(--muted); font-size:.78rem; font-style:italic; }
.missing-citation { display:inline-block; border-color:#e8b762; color:#8a5600; background:#fff8e7; }
.checkpoint-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.checkpoint { display: flex; gap: 10px; padding: 16px 0; border-bottom: 1px solid #eef2f5; }
.check-box { flex: 0 0 auto; width: 18px; height: 18px; border: 1px solid #9cadbb; border-radius: 3px; }
.checkpoint strong { font-size: .78rem; color: var(--navy); }
.checkpoint p { margin: 5px 0 8px; color: #4d6071; font-size: .72rem; line-height: 1.5; }
.citation { display: inline-block; margin: 2px 4px 2px 0; padding: 4px 6px; color: #28567c; background: #edf5fb; border: 1px solid #c6dbea; border-radius: 4px; font-size: .61rem; }
.source-citation { display:block; width:100%; margin:7px 0 0; padding:9px 10px; text-align:left; cursor:pointer; }
.source-citation span, .source-citation small, .source-citation b { display:block; }
.source-citation span { font-weight:800; font-size:.68rem; line-height:1.35; }
.source-citation small { margin-top:4px; color:#4d6071; font-size:.67rem; line-height:1.4; }
.source-citation b { margin-top:5px; color:#147b70; font-size:.62rem; }
.source-citation:hover, .source-citation:focus-visible { border-color:#147b70; background:#eef9f7; outline:none; }
.source-citation:disabled { opacity:.7; cursor:wait; }
.task-list { list-style: none; padding: 0; margin: 0; }
.task-list li { display: flex; gap: 10px; padding: 14px 0; border-bottom: 1px solid #e8edf2; }
.task-list li > span { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: var(--teal-light); color: var(--teal); font-size: .67rem; font-weight: 900; }
.task-list strong, .task-list p { font-size: .73rem; }
.task-list p { margin: 4px 0 6px; color: var(--muted); }
.question-card { margin-top: 11px; padding: 13px; border-radius: 6px; background: #f4f7fa; }
.question-card > span { color: var(--teal); font-size: .61rem; font-weight: 900; }
.question-card strong, .question-card p { display: block; }
.question-card strong { margin-top: 5px; color: var(--navy); font-size: .75rem; }
.question-card p { margin: 5px 0 0; color: var(--muted); font-size: .69rem; line-height: 1.45; }
.warning-card { background: var(--amber-light); }
.compact-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; padding-top: 6px; }
.compact-checks label { display: grid; grid-template-columns: 18px 1fr; gap: 9px; padding: 13px 0; border-bottom: 1px solid #e8edf2; color: var(--navy); font-size: .74rem; font-weight: 700; }
.compact-checks input { width: 17px; height: 17px; padding: 0; accent-color: var(--teal); }
.compact-checks small { grid-column: 2; color: var(--muted); }
.notes-grid { display: grid; grid-template-columns: 1.65fr .75fr; gap: 18px; }
.notes-grid .panel { margin-top: 0; }
.voice-btn { border: 1px solid #f0b5b0; background: #fff4f3; color: var(--red); padding: 7px 10px; border-radius: 6px; font-size: .7rem; font-weight: 800; }
.voice-btn.listening { color: white; background: var(--red); animation: pulse 1s infinite alternate; }
@keyframes pulse { to { box-shadow: 0 0 0 5px rgba(180,35,24,.12); } }
.mic { margin-right: 4px; }
.form-grid, .quantity-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.quantity-row { grid-template-columns: 1fr .7fr 1.1fr; }
.note-actions { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; }
.summary-row { padding: 12px 0; border-bottom: 1px solid #e5ebf0; }
.summary-row span, .summary-row strong { display: block; }
.summary-row span { color: var(--muted); font-size: .68rem; }
.summary-row strong { margin-top: 5px; color: var(--navy); font-size: .76rem; }
.day-summary .secondary-btn { margin-top: 18px; }
.amber-text { color: var(--amber) !important; }
.observation-log { margin-top: 18px; }
.panel-head > span { color: var(--muted); font-size: .7rem; }
.observation { display: grid; grid-template-columns: 75px 1fr; gap: 15px; padding: 16px 0; border-bottom: 1px solid #e7edf2; }
.observation time { color: var(--muted); font-size: .7rem; font-weight: 700; }
.observation strong { display: block; margin: 8px 0 4px; color: var(--navy); font-size: .78rem; }
.observation p { margin: 0 0 7px; color: #4e6071; font-size: .73rem; }
.observation small { color: #758596; }
.insight-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.insight { min-height: 128px; padding: 16px; background: white; border: 1px solid var(--line); border-radius: 8px; display: grid; grid-template-columns: 27px 1fr; gap: 10px; }
.insight.alert { border-top: 3px solid var(--amber); }
.insight > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: #e8eef3; color: var(--navy); font-size: .63rem; font-weight: 900; }
.insight strong { color: var(--navy); font-size: .81rem; }
.insight p { min-height: 38px; margin: 6px 0 10px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.insight button { border: 0; background: none; color: var(--teal); padding: 0; font-size: .67rem; font-weight: 800; }
.intelligence-grid { grid-template-columns: 1.55fr .75fr; }
.timeline-panel, .health-panel { margin-top: 18px; }
.timeline-axis { display: grid; grid-template-columns: repeat(5, 1fr); margin: 25px 0 10px 150px; color: var(--muted); font-size: .6rem; }
.timeline-row { display: grid; grid-template-columns: 135px 1fr; gap: 15px; align-items: center; margin: 12px 0; }
.timeline-row strong { color: var(--navy); font-size: .68rem; }
.timeline-row small { color: var(--muted); font-weight: 500; }
.track { height: 30px; position: relative; border-left: 1px solid #cbd7e1; background-image: linear-gradient(90deg,#e5ebf0 1px,transparent 1px); background-size: 25% 100%; }
.bar { position: absolute; height: 12px; border-radius: 3px; }
.bar.actual { top: 2px; padding: 1px 5px; background: var(--teal); color: white; font-size: .55rem; font-style: normal; z-index: 2; }
.bar.actual.warning { background: var(--amber); }
.bar.plan { top: 17px; background: #b9c6d1; }
.chart-legend { display: flex; justify-content: flex-end; gap: 16px; margin-top: 18px; color: var(--muted); font-size: .62rem; }
.legend { display: inline-block; width: 15px; height: 5px; margin-right: 5px; border-radius: 4px; }
.legend.actual { background: var(--teal); }.legend.planned { background: #b9c6d1; }
.score { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: white !important; background: var(--navy); font-size: .84rem !important; font-weight: 900; }
.health-item { padding: 17px 0; border-bottom: 1px solid #e5ebf0; }
.health-item > div { display: flex; justify-content: space-between; color: var(--navy); font-size: .72rem; }
.health-item progress { width: 100%; height: 7px; margin: 10px 0 5px; accent-color: var(--teal); }
.health-item .amber-progress { accent-color: var(--amber); }
.health-item small { color: var(--muted); line-height: 1.4; }
.upcoming-panel { margin-top: 18px; }
.upcoming-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 15px; }
.upcoming-grid > div { min-height: 92px; padding: 13px; border-left: 1px solid #dce4eb; }
.upcoming-grid time, .upcoming-grid strong, .upcoming-grid span { display: block; }
.upcoming-grid time { color: var(--teal); font-size: .6rem; font-weight: 900; }
.upcoming-grid strong { margin: 8px 0 5px; color: var(--navy); font-size: .72rem; }
.upcoming-grid span { color: var(--muted); font-size: .65rem; line-height: 1.4; }
.report-heading { align-items:center; }
.report-status { text-align:right; }
.report-status strong { display:block; margin-top:8px; color:var(--muted); font-size:.7rem; }
.report-progress { height:7px; margin:-12px 0 24px; overflow:hidden; border-radius:20px; background:#dfe7ed; }
.report-progress span { display:block; height:100%; border-radius:inherit; background:var(--teal); transition:width .3s ease; }
.report-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:18px; align-items:start; }
.report-steps { display:grid; gap:7px; position:sticky; top:102px; }
.report-step { min-height:62px; padding:10px; border:1px solid transparent; border-radius:8px; background:transparent; display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:center; text-align:left; color:var(--muted); }
.report-step:hover { background:#edf3f6; }
.report-step.active { background:white; border-color:#bad6d2; box-shadow:var(--shadow); color:var(--navy); }
.report-step > span { width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:#dfe7ed; color:#647789; font-size:.67rem; font-weight:900; }
.report-step.complete > span { background:var(--teal-light); color:var(--teal); }
.report-step strong,.report-step small { display:block; }
.report-step strong { font-size:.75rem; }
.report-step small { margin-top:3px; color:#7a8997; font-size:.62rem; }
.report-workspace { min-width:0; }
.report-panel { display:none; min-height:520px; padding:22px; border:1px solid var(--line); border-radius:9px; background:white; box-shadow:var(--shadow); }
.report-panel.active { display:block; animation:reveal .18s ease-out; }
.report-panel .panel-head { padding-bottom:17px; border-bottom:1px solid #e5ebf0; }
.report-panel .panel-head h2 { font-size:1.12rem; }
.section-ready,.section-review { padding:5px 8px; border-radius:20px; font-size:.63rem; font-weight:900; }
.section-ready { color:#087469; background:var(--teal-light); }.section-review { color:#9a5800; background:var(--amber-light); }
.condition-hero { display:flex; align-items:center; gap:13px; margin-top:18px; padding:17px; background:#f3f8fa; border-radius:8px; }
.weather-mark { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:#fff0bd; font-size:1.25rem; }
.condition-hero strong,.condition-hero span { display:block; }.condition-hero strong { color:var(--navy); }.condition-hero span { margin-top:4px; color:var(--muted); font-size:.72rem; }.condition-hero button { margin-left:auto; }
.report-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:17px; }
.report-form-grid label,.wide-label { color:var(--navy); font-size:.7rem; font-weight:800; }
.report-form-grid input,.report-form-grid select,.wide-label textarea { margin-top:7px; }
.wide-label { display:block; margin-top:15px; }
.report-footer { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-top:22px; padding-top:17px; border-top:1px solid #e5ebf0; }
.report-footer > span { color:var(--muted); font-size:.66rem; }
.report-total { display:flex; align-items:baseline; gap:14px; margin:18px 0 9px; padding:14px; background:#f3f8fa; border-radius:7px; }.report-total span{color:var(--muted);font-size:.68rem}.report-total strong{color:var(--navy);font-size:1.1rem}.report-total b{margin-left:auto;color:var(--teal);font-size:.76rem}
.entry-list { display:grid; gap:8px; }
.report-entry { display:grid; grid-template-columns:1fr 90px 90px 25px; gap:12px; align-items:center; padding:15px; border:1px solid #e0e7ed; border-radius:7px; }
.report-entry strong,.report-entry small { display:block; }.report-entry strong{margin-top:7px;color:var(--navy);font-size:.8rem}.report-entry small{margin-top:4px;color:var(--muted);font-size:.66rem}
.entry-numbers { text-align:center; }.entry-numbers b,.entry-numbers span{display:block}.entry-numbers b{color:var(--navy);font-size:1.05rem}.entry-numbers span{color:var(--muted);font-size:.61rem}
.report-intro { margin:16px 0;color:var(--muted);font-size:.72rem; }
.activity-report-card { margin-top:12px; padding:16px; border:1px solid #dce5eb; border-radius:8px; }
.activity-report-head { display:flex; justify-content:space-between; gap:12px; }.activity-report-head strong,.activity-report-head small{display:block}.activity-report-head strong{margin:7px 0 3px;color:var(--navy);font-size:.83rem}.activity-report-head small{color:var(--muted);font-size:.66rem}
.activity-report-card textarea { margin-top:13px; font-size:.75rem; line-height:1.5; }
.issue-chip { height:max-content; padding:5px 8px;border-radius:20px;font-size:.59rem;font-weight:900;white-space:nowrap}.issue-chip.clear{color:#087469;background:var(--teal-light)}.issue-chip.attention{color:#985600;background:var(--amber-light)}
.linked-evidence { display:flex; gap:8px; flex-wrap:wrap; margin-top:9px; }.linked-evidence span{padding:4px 7px;border-radius:4px;background:#edf3f6;color:#53677a;font-size:.6rem;font-weight:800}
.carry-forward,.distribution-card { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:17px; padding:14px; border-radius:7px; background:#f3f8fa; }.carry-forward strong,.carry-forward p,.distribution-card strong,.distribution-card p{display:block;margin:0}.carry-forward strong,.distribution-card strong{color:var(--navy);font-size:.75rem}.carry-forward p,.distribution-card p{margin-top:4px;color:var(--muted);font-size:.66rem}
.switch-label { display:flex; align-items:center; gap:7px;color:var(--navy);font-size:.68rem;font-weight:800;white-space:nowrap}.switch-label input{width:18px;height:18px;accent-color:var(--teal)}
.test-card { display:grid; grid-template-columns:58px 1fr auto; gap:13px; align-items:center; padding:17px 0; border-bottom:1px solid #e4ebf0; }.test-result{padding:7px 5px;border-radius:5px;text-align:center;font-size:.61rem;font-weight:900}.test-result.pass{color:#087469;background:var(--teal-light)}.test-card strong,.test-card p,.test-card small{display:block}.test-card strong{color:var(--navy);font-size:.78rem}.test-card p{margin:5px 0;color:#45596b;font-size:.69rem}.test-card small{color:var(--muted)}
.testing-alert { margin-top:17px;padding:13px;border-left:4px solid var(--teal);background:#eff9f7}.testing-alert strong{color:var(--navy);font-size:.73rem}.testing-alert p{margin:5px 0 0;color:var(--muted);font-size:.68rem}
.photo-review-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.photo-placeholder{min-height:150px;padding:12px;border-radius:7px;background:linear-gradient(145deg,#294e63,#6f8c97);color:white;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.photo-placeholder::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(5,26,39,.78));}.photo-placeholder>*{position:relative}.photo-placeholder span{font-size:.6rem;opacity:.8}.photo-placeholder strong{margin-top:5px;font-size:.72rem}.photo-placeholder small{margin-top:4px;font-size:.6rem;opacity:.8}.photo-placeholder.needs-caption{background:repeating-linear-gradient(135deg,#dce4e9,#dce4e9 10px,#e8eef2 10px,#e8eef2 20px);color:var(--navy);border:1px dashed #9bacb8}.photo-placeholder.needs-caption::before{display:none}.photo-placeholder .text-btn{margin-top:10px;padding:0;text-align:left}
.certify-summary{display:grid;grid-template-columns:repeat(6,1fr);margin:18px 0;border:1px solid #dce5eb;border-radius:8px;overflow:hidden}.certify-summary div{padding:14px 8px;text-align:center;border-right:1px solid #e1e8ed}.certify-summary div:last-child{border:0}.certify-summary span,.certify-summary small{display:block}.certify-summary span{color:var(--navy);font-size:1.2rem;font-weight:900}.certify-summary small{margin-top:4px;color:var(--muted);font-size:.6rem}
.final-warning{padding:14px;border-left:4px solid var(--amber);background:var(--amber-light)}.final-warning strong{color:#774700;font-size:.75rem}.final-warning ul{margin:7px 0 0;padding-left:18px;color:#725633;font-size:.68rem;line-height:1.6}
.certification-check{display:grid;grid-template-columns:21px 1fr;gap:11px;margin-top:18px;padding:16px;border:1px solid #cbd6de;border-radius:8px}.certification-check input{width:19px;height:19px;accent-color:var(--teal)}.certification-check strong,.certification-check small{display:block}.certification-check strong{color:var(--navy);font-size:.74rem}.certification-check small{margin-top:5px;color:var(--muted);font-size:.65rem;line-height:1.4}
.submit-report{width:100%;min-height:67px;margin-top:17px;padding:12px 16px;border:0;border-radius:8px;background:var(--teal);color:white;display:flex;align-items:center;justify-content:space-between;text-align:left}.submit-report:disabled{background:#9aaab6;cursor:not-allowed}.submit-report.submitted{background:var(--navy)}.submit-report strong,.submit-report small{display:block}.submit-report strong{font-size:.82rem}.submit-report small{margin-top:4px;font-size:.64rem;opacity:.8}.submit-report b{font-size:1.15rem}
.toast { position: fixed; right: 24px; bottom: 24px; max-width: 340px; padding: 12px 15px; border-radius: 7px; background: var(--navy); color: white; box-shadow: var(--shadow); font-size: .75rem; transform: translateY(20px); opacity: 0; pointer-events: none; transition: .2s ease; z-index: 50; }
.toast.show { transform: translateY(0); opacity: 1; }
.auth-gate{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#071d2d,#123b50)}
.auth-gate[hidden]{display:none}.auth-card{width:min(440px,100%);padding:30px;border-radius:12px;background:white;box-shadow:0 30px 90px rgba(0,0,0,.35)}
.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:28px}.auth-brand>span{width:42px;height:42px;border-radius:8px;background:var(--navy);color:var(--teal);display:grid;place-items:center;font-weight:900}.auth-brand strong,.auth-brand small{display:block}.auth-brand strong{color:var(--navy)}.auth-brand small{margin-top:2px;color:var(--muted);font-size:.67rem}
.auth-card h1{margin:5px 0 8px;color:var(--navy);font-size:1.9rem}.auth-intro{margin:0 0 20px;color:#526779;font-size:.82rem;line-height:1.55}.auth-card form{display:grid;gap:13px}.auth-card form[hidden]{display:none}.auth-card label{color:var(--navy);font-size:.73rem;font-weight:800}.auth-card input{margin-top:7px}.auth-message{min-height:20px;margin:0;color:var(--muted);font-size:.7rem}.auth-message.error{color:var(--red)}.auth-message.success{color:#087469}.auth-link{justify-self:center;padding:2px;border:0;background:none;color:var(--teal);font-size:.7rem;font-weight:800;text-decoration:underline;cursor:pointer}.auth-link:disabled{color:var(--muted);cursor:wait}.auth-note{display:block;margin-top:18px;padding-top:15px;border-top:1px solid var(--line);color:var(--muted);font-size:.62rem;line-height:1.45}
.cloud-account{padding:7px 9px;border:1px solid #c7d4dc;border-radius:6px;background:white;color:var(--teal);font-size:.65rem;font-weight:900}
.project-dialog-card { width: min(560px, calc(100vw - 28px)); }
.dialog-intro { margin: 10px 0 18px; color: var(--muted); font-size: .83rem; line-height: 1.5; }
.required-label { margin-left: 5px; color: var(--teal); font-size: .63rem; text-transform: uppercase; letter-spacing: .06em; }
.empty-row td { padding: 35px 14px; color: var(--muted); text-align: center; }
.linked-evidence button,.entry-actions button,.table-actions button,.photo-actions button { border:0;background:none;color:var(--teal);padding:3px;font-size:.62rem;font-weight:800; }
.linked-evidence button:last-child,.entry-actions button:last-child,.table-actions button:last-child,.photo-actions button:last-child { color:var(--red); }
.saved-narrative { margin:13px 0 0;padding:12px;border-radius:6px;background:#f7f9fb;color:#405467;font-size:.75rem;line-height:1.55;white-space:pre-wrap; }
.entry-actions { display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap; }
.report-entry .entry-actions { flex-direction:column;align-items:flex-end; }
.table-actions { display:flex;gap:6px;margin-top:6px; }
.test-result.fail{color:var(--red);background:#fff0ee}.test-result.pending{color:#985600;background:var(--amber-light)}
.photo-placeholder{min-height:170px;background-size:cover!important;background-position:center!important}.photo-placeholder.needs-caption{color:white;border:2px solid #f0b44d}.photo-placeholder.needs-caption::before{display:block}.photo-actions{display:flex;gap:8px;margin-top:8px}.photo-actions button{color:white;text-decoration:underline}.photo-actions button:last-child{color:#ffd5d1}
.post-cert-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:12px}.post-cert-actions[hidden]{display:none}
.empty-report-entry{padding:28px;border:1px dashed #aebcc7;border-radius:7px;text-align:center;color:var(--muted);font-size:.72rem}
.tm-disclaimer{margin-top:17px;padding:14px;border-left:4px solid var(--amber);background:#fff8e8}.tm-disclaimer strong{color:#744500;font-size:.76rem}.tm-disclaimer p{margin:5px 0 0;color:#6b5735;font-size:.69rem;line-height:1.5}.tm-none{display:flex;align-items:center;gap:9px;margin:13px 0 16px;color:var(--navy);font-size:.72rem;font-weight:800}.tm-none input{width:18px;height:18px;accent-color:var(--teal)}.tm-card{margin-top:13px;border:1px solid #d9e3ea;border-radius:8px;overflow:hidden}.tm-card-head{display:flex;justify-content:space-between;gap:14px;padding:15px;background:#f3f8fa}.tm-card-head strong,.tm-card-head small{display:block}.tm-card-head strong{margin:8px 0 4px;color:var(--navy);font-size:.78rem;line-height:1.45}.tm-card-head small{color:var(--muted);font-size:.65rem}.tm-resource{padding:13px 15px;border-top:1px solid #e1e8ed}.tm-resource-head{display:grid;grid-template-columns:1fr auto auto;gap:13px;align-items:center}.tm-resource-head strong{color:var(--navy);font-size:.73rem}.tm-resource-head span{color:var(--muted);font-size:.64rem}.tm-resource-head button{border:0;background:none;color:var(--teal);font-size:.64rem;font-weight:900}.tm-rows{margin-top:8px}.tm-rows>div{display:grid;grid-template-columns:1.1fr .7fr 1.2fr .7fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #edf1f4;font-size:.64rem}.tm-rows b{color:var(--navy)}.tm-rows span{color:#536779}.tm-rows>p{margin:6px 0;color:var(--muted);font-size:.65rem}.tm-none-state{padding:22px;border:1px solid #b9d9d4;border-radius:7px;background:var(--teal-light);color:#087469;text-align:center;font-size:.73rem;font-weight:800}.certify-summary{grid-template-columns:repeat(8,1fr)}
.deficiency-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.deficiency-toolbar>span{color:var(--red);font-size:.7rem;font-weight:900}.deficiency-list{display:grid;gap:12px}.deficiency-card{border:1px solid #d9e3ea;border-left:4px solid var(--red);border-radius:8px;background:white;overflow:hidden}.deficiency-card.closed{border-left-color:#80909d}.deficiency-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 15px;background:#f7f9fa}.deficiency-head>div>span{display:block;color:var(--red);font-size:.6rem;font-weight:900}.deficiency-head strong{display:block;margin-top:5px;color:var(--navy);font-size:.78rem}.deficiency-head small{display:block;margin-top:4px;color:var(--muted);font-size:.63rem}.deficiency-notes{padding:0 15px}.deficiency-note{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:11px 0;border-top:1px solid #e7edf1}.deficiency-note time{color:var(--teal);font-size:.62rem;font-weight:900}.deficiency-note p{margin:0;color:#405467;font-size:.7rem;line-height:1.45}.deficiency-actions{display:flex;gap:7px;flex-wrap:wrap;padding:12px 15px;border-top:1px solid #e7edf1}.deficiency-actions button{padding:6px 8px;border:0;border-radius:5px;background:#e8f3f4;color:var(--teal);font-size:.62rem;font-weight:800}.deficiency-actions button:last-child{background:#f1f3f4;color:#526779}
.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(7,23,37,.66);display:grid;place-items:center;padding:18px}.modal-backdrop[hidden]{display:none}.entry-modal-card{width:min(680px,100%);max-height:90vh;overflow:auto;padding:22px;border-radius:10px;background:white;box-shadow:0 24px 70px rgba(0,0,0,.3)}.entry-modal-card .panel-head{padding-bottom:15px;border-bottom:1px solid var(--line)}.modal-close{width:36px;height:36px;border:0;border-radius:50%;background:#edf2f5;color:var(--navy);font-size:1.35rem}.modal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.modal-form-grid label{color:var(--navy);font-size:.72rem;font-weight:800}.modal-form-grid input,.modal-form-grid select,.modal-form-grid textarea{margin-top:7px}.modal-wide{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.portal-heading{align-items:center}.portal-role,.portal-tabs{display:flex;padding:3px;border-radius:7px;background:#dfe7ed}.portal-role button,.portal-tabs button{border:0;border-radius:5px;padding:8px 12px;background:transparent;color:#526779;font-size:.7rem;font-weight:800}.portal-role button.active,.portal-tabs button.active{background:white;color:var(--navy);box-shadow:0 2px 8px rgba(15,39,64,.12)}.portal-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.portal-metrics article{padding:15px;border:1px solid var(--line);border-radius:8px;background:white}.portal-metrics span,.portal-metrics strong{display:block}.portal-metrics span{color:var(--muted);font-size:.68rem}.portal-metrics strong{margin-top:7px;color:var(--navy);font-size:1.35rem}.portal-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center}.portal-notice{display:flex;gap:10px;margin-top:13px;padding:11px 13px;border-left:4px solid var(--teal);background:#edf9f7;font-size:.69rem}.portal-notice strong{color:var(--navy);white-space:nowrap}.portal-notice span{color:#506575}.portal-register{margin-top:13px}.portal-actions{min-width:180px}.portal-actions button{display:inline-block;margin:2px;padding:4px 6px;border:0;border-radius:4px;background:#edf4f7;color:var(--teal);font-size:.6rem;font-weight:800}.portal-status{display:inline-block;padding:5px 7px;border-radius:20px;background:#e8eef3;color:#455b6d;font-size:.62rem;font-weight:800}.portal-register td small{max-width:550px;line-height:1.5}.submission-warning{padding:10px;background:var(--amber-light)}
.cover-sheet{width:min(760px,100%)}.cover-head{padding-bottom:16px;border-bottom:3px solid var(--navy)}.cover-head h2{margin:4px 0;color:var(--navy);font-size:1.4rem}.cover-head p:last-child{margin:0;color:var(--muted);font-size:.72rem}.cover-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:18px 0;background:var(--line)}.cover-grid span{padding:12px;background:#f7f9fa}.cover-grid small,.cover-grid strong{display:block}.cover-grid small{color:var(--muted);font-size:.58rem;text-transform:uppercase}.cover-grid strong{margin-top:4px;color:var(--navy);font-size:.68rem}.cover-table{width:100%;border-collapse:collapse}.cover-table th,.cover-table td{padding:10px;border-bottom:1px solid var(--line);font-size:.72rem}.cover-table th{text-align:left;color:#4b6071}.cover-table td{text-align:right;color:var(--navy);font-weight:800}.cover-request{background:#f7f9fa}.cover-recommend{background:var(--teal-light)}.cover-recommend th,.cover-recommend td{color:#087469;font-size:.78rem}.cover-note{margin-top:17px;padding:13px;border:1px solid var(--line);border-radius:6px}.cover-note strong{color:var(--navy);font-size:.68rem}.cover-note p{margin:6px 0 0;color:#4b6071;font-size:.7rem}.cover-disclaimer{margin:15px 0 0;color:var(--muted);font-size:.62rem;line-height:1.5}
.change-warning{display:flex;gap:10px;margin-bottom:18px;padding:13px 15px;border-left:4px solid var(--amber);background:#fff8e8;font-size:.7rem}.change-warning strong{color:#744500;white-space:nowrap}.change-warning span{color:#6b5735}.issue-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.issue-metrics article{padding:15px;border:1px solid var(--line);border-radius:8px;background:white}.issue-metrics span,.issue-metrics strong{display:block}.issue-metrics span{color:var(--muted);font-size:.68rem}.issue-metrics strong{margin-top:7px;color:var(--navy);font-size:1.35rem}.issue-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}.issue-toolbar input{width:min(360px,100%)}.issue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.issue-card{padding:18px;border:1px solid var(--line);border-radius:9px;background:white;box-shadow:0 4px 14px rgba(15,39,64,.05)}.issue-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.issue-card-top>div{display:flex;align-items:center;gap:8px}.issue-card-top b{color:var(--navy);font-size:.72rem}.issue-kind,.change-kind{display:inline-block;padding:5px 7px;border-radius:4px;font-size:.58rem;font-weight:900;text-transform:uppercase}.issue-kind{background:#e7f3f6;color:#0b7081}.change-kind{background:#fff0cc;color:#8a5700}.issue-card h3{margin:14px 0 7px;color:var(--navy);font-size:1rem}.issue-card>p{min-height:38px;margin:0;color:#506575;font-size:.72rem;line-height:1.5}.issue-meta{display:grid;grid-template-columns:1.1fr 1fr .8fr;gap:10px;margin-top:14px;padding-top:13px;border-top:1px solid #e5ebef}.issue-meta small,.issue-meta strong{display:block}.issue-meta small{color:var(--muted);font-size:.56rem;text-transform:uppercase}.issue-meta strong{margin-top:4px;color:var(--navy);font-size:.64rem}.issue-impact{display:flex;gap:18px;margin-top:13px;padding:10px;border-radius:6px;background:#f6f8fa;color:#596d7e;font-size:.65rem}.issue-impact b{color:var(--navy)}.issue-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.issue-actions button{padding:6px 8px;border:0;border-radius:5px;background:#e8f3f4;color:var(--teal);font-size:.61rem;font-weight:800}.issue-actions button:last-child{background:#f3f4f5;color:#526779}
@media (max-width: 1000px) {
  .app-shell { grid-template-columns: 84px minmax(0,1fr); }
  .sidebar { width: 84px; padding: 20px 10px; }
  .brand { justify-content: center; padding-inline: 0; }.brand > div:last-child { display:none; }
  .nav-item { justify-content:center; padding: 12px 4px; }.nav-item span:last-child { display:none; }
  .sidebar-footer { font-size:0; text-align:center; }.sidebar-footer small{display:none}.status-dot{margin:0}
  main { grid-column:2; }
  .metric-row { grid-template-columns: repeat(2,1fr); }
  .source-grid { grid-template-columns: repeat(2,1fr); }
  .two-column, .notes-grid, .intelligence-grid { grid-template-columns: 1fr; }
  .prep-panel { position:static; }
  .insight-row { grid-template-columns:1fr; }
  .report-layout { grid-template-columns:1fr; }.report-steps{position:static;grid-template-columns:repeat(4,1fr)}.report-step{grid-template-columns:26px 1fr}.photo-review-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 650px) {
  .app-shell { display:block; padding-bottom:70px; }
  .sidebar { position:fixed; inset:auto 0 0 0; width:100%; height:66px; padding:7px 6px; }
  .sidebar::after,.brand,.sidebar-footer { display:none; }
  .nav-list { margin:0; grid-template-columns:repeat(8,minmax(72px,1fr)); gap:3px; overflow-x:auto; }
  .nav-item { min-height:52px; flex-direction:column; gap:3px; padding:5px 2px; font-size:.57rem; border-radius:6px; }
  .nav-item span:last-child { display:block; }.nav-number{font-size:.52rem}
  main { grid-column:auto; }
  .topbar { min-height:66px; padding:10px 16px; }.topbar-meta div:first-child{display:none}.avatar{width:36px;height:36px}
  .project-picker { max-width: calc(100vw - 95px); }
  #active-project-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .project-menu { left: 0; }
  .screen { padding:24px 15px 38px; }
  .page-heading { align-items:flex-start; flex-direction:column; margin-bottom:21px; }.page-heading h1{font-size:2rem}
  .metric-row,.source-grid,.guide-grid,.checkpoint-grid,.compact-checks,.upcoming-grid,.generated-guide-columns { grid-template-columns:1fr; }
  .guide-section.wide { grid-column:auto; }
  .source-card { min-height:72px; }
  .work-card { grid-template-columns:27px 1fr; }.more-btn{display:none}.work-details{gap:8px 14px}
  .guide-heading .button-group { width:100%; }.guide-heading .button-group button{flex:1}
  .form-grid,.quantity-row { grid-template-columns:1fr; gap:0; }
  .note-actions { flex-direction:column; }.note-actions button{width:100%}
  .timeline-axis { margin-left:100px; }.timeline-row{grid-template-columns:90px 1fr}.timeline-panel{padding:14px}
  .observation{grid-template-columns:60px 1fr}
  .topbar-meta { gap:8px; }
  .report-heading{align-items:flex-start}.report-status{text-align:left}.report-layout{display:block}.report-steps{display:flex;overflow-x:auto;margin-bottom:12px;padding-bottom:4px}.report-step{min-width:150px}.report-panel{padding:16px;min-height:0}.report-form-grid{grid-template-columns:1fr}.report-entry{grid-template-columns:1fr 65px 65px}.report-entry .more-btn{display:none}.report-footer{align-items:stretch;flex-direction:column}.report-footer button{width:100%}.photo-review-grid{grid-template-columns:1fr 1fr}.certify-summary{grid-template-columns:repeat(3,1fr)}.certify-summary div:nth-child(3){border-right:0}.certify-summary div:nth-child(-n+3){border-bottom:1px solid #e1e8ed}.condition-hero{align-items:flex-start;flex-wrap:wrap}.condition-hero button{margin-left:57px}.test-card{grid-template-columns:50px 1fr}.test-card button{grid-column:2;text-align:left;padding:0}.distribution-card{align-items:flex-start}
  .report-entry{grid-template-columns:1fr 52px 62px}.report-entry .entry-actions{grid-column:1/-1;flex-direction:row;justify-content:flex-start}.modal-form-grid{grid-template-columns:1fr}.modal-wide{grid-column:auto}.post-cert-actions{flex-direction:column}.post-cert-actions button{width:100%}
  .tm-card-head{flex-direction:column}.tm-card-head .entry-actions{justify-content:flex-start}.tm-resource-head{grid-template-columns:1fr auto}.tm-resource-head button{grid-column:1/-1;text-align:left;padding:4px 0}.tm-rows>div{grid-template-columns:1fr 1fr}.tm-rows>div .entry-actions{grid-column:1/-1;justify-content:flex-start}.certify-summary{grid-template-columns:repeat(2,1fr)}.certify-summary div{border-bottom:1px solid #e1e8ed}
  .deficiency-toolbar{align-items:stretch;flex-direction:column}.deficiency-note{grid-template-columns:1fr;gap:4px}
  .portal-heading{align-items:flex-start}.portal-metrics{grid-template-columns:repeat(2,1fr)}.portal-toolbar{align-items:stretch;flex-direction:column}.portal-tabs{width:100%}.portal-tabs button{flex:1}.portal-notice{flex-direction:column}.portal-role{width:100%}.portal-role button{flex:1}
  .cover-grid{grid-template-columns:repeat(2,1fr)}
  .change-warning{flex-direction:column}.issue-metrics{grid-template-columns:repeat(2,1fr)}.issue-toolbar{align-items:stretch;flex-direction:column}.issue-toolbar .portal-tabs{width:100%}.issue-grid{grid-template-columns:1fr}.issue-meta{grid-template-columns:1fr 1fr}.issue-impact{flex-direction:column;gap:5px}
}
@media print {
  body{background:white}.sidebar,.topbar,.report-steps,.report-progress,.report-footer,.report-action,.entry-actions,.table-actions,.photo-actions,.certification-check,.submit-report,.post-cert-actions,.toast{display:none!important}.app-shell{display:block}.screen{display:none!important}.screen#report{display:block!important;max-width:none;padding:0}.report-layout{display:block}.report-workspace{display:block}.report-panel{display:block!important;min-height:0;margin:0 0 18px;padding:14px;box-shadow:none;break-inside:avoid}.report-panel:not(#report-certify){border:1px solid #ccd6de}.report-heading{margin-bottom:14px}.report-status{display:none}.activity-report-card,.test-card,.report-entry{break-inside:avoid}.photo-review-grid{grid-template-columns:repeat(3,1fr)}
}
@media print{body:has(#cover-modal:not([hidden])) .app-shell{display:none!important}body:has(#cover-modal:not([hidden])) #cover-modal{position:static;display:block;background:white;padding:0}body:has(#cover-modal:not([hidden])) .cover-sheet{width:100%;max-height:none;box-shadow:none}body:has(#cover-modal:not([hidden])) .cover-sheet .modal-actions{display:none}}
.rfi-record-link{border:0;background:transparent;padding:0;color:var(--navy);font:inherit;font-weight:800;text-align:left;cursor:pointer}.rfi-record-link:hover{text-decoration:underline;color:#9b5f2b}
.rfi-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.rfi-detail-grid span,.rfi-detail-section{border:1px solid var(--border);border-radius:10px;background:#f7fafb;padding:14px}.rfi-detail-grid small,.rfi-detail-section small{display:block;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin-bottom:5px}.rfi-detail-grid strong{display:block;color:var(--navy)}.rfi-detail-section{margin:10px 0}.rfi-detail-section p{margin:0;line-height:1.55;white-space:pre-wrap}.rfi-detail-section.response{border-color:#8fb7a2;background:#f0f8f3}@media(max-width:640px){.rfi-detail-grid{grid-template-columns:1fr}}

.citation.source-citation { display:block; width:100%; margin:7px 0 0; padding:9px 10px; text-align:left; cursor:pointer; }
.citation.source-citation span, .citation.source-citation small, .citation.source-citation b { display:block; }
.citation.source-citation span { font-weight:800; font-size:.68rem; line-height:1.35; }
.citation.source-citation small { margin-top:4px; color:#4d6071; font-size:.67rem; line-height:1.4; }
.citation.source-citation b { margin-top:5px; color:#147b70; font-size:.62rem; }
.citation.source-citation:hover, .citation.source-citation:focus-visible { border-color:#147b70; background:#eef9f7; outline:none; }
.citation.source-citation:disabled { opacity:.7; cursor:wait; }

.weekly-heading{align-items:flex-end}.weekly-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}.weekly-controls label{display:grid;gap:6px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.weekly-controls input{min-width:160px}.weekly-banner{margin-bottom:18px}.weekly-report{display:grid;gap:18px}.weekly-empty{min-height:360px;border:1px dashed #a9bac7;border-radius:16px;background:linear-gradient(145deg,#f8fbfc,#eef4f6);display:grid;place-content:center;text-align:center;padding:36px}.weekly-empty span{justify-self:center;background:var(--navy);color:white;border-radius:999px;padding:7px 13px;font-size:.72rem;font-weight:900;letter-spacing:.12em}.weekly-empty h2{margin:18px 0 8px;color:var(--navy)}.weekly-empty p{max-width:630px;margin:0;color:var(--muted);line-height:1.6}.weekly-cover,.weekly-summary,.weekly-findings-grid>article,.weekly-daily-section{background:white;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.weekly-cover{padding:24px 26px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-left:6px solid var(--teal)}.weekly-cover h2{margin:4px 0 6px;color:var(--navy);font-size:1.65rem}.weekly-cover p{margin:0;color:var(--muted)}.weekly-source-count{white-space:nowrap;border:1px solid #aed8d2;background:#eef9f7;color:#116b63;border-radius:999px;padding:9px 13px;font-weight:800;font-size:.82rem}.weekly-summary{padding:24px 26px}.weekly-summary h2{margin:0 0 8px;color:var(--navy)}.weekly-summary>p{margin:0;color:#354b5c;line-height:1.65}.weekly-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}.weekly-metrics article{background:#f4f8fa;border:1px solid #d9e3e8;border-radius:12px;padding:14px}.weekly-metrics span{display:block;color:var(--muted);font-size:.74rem;font-weight:800;text-transform:uppercase}.weekly-metrics strong{display:block;margin-top:4px;color:var(--navy);font-size:1.55rem}.weekly-findings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.weekly-findings-grid>article{padding:20px}.weekly-findings-grid h3{margin:0 0 12px;color:var(--navy)}.weekly-findings{margin:0;padding:0;list-style:none;display:grid;gap:10px}.weekly-findings li{border-left:3px solid #d08b46;background:#fff8f0;padding:11px 13px}.weekly-findings strong{color:#5d3a19}.weekly-findings p{margin:4px 0;color:#4d6071;line-height:1.5}.weekly-findings small{color:var(--muted);font-weight:700}.weekly-none{margin:0;color:var(--muted);line-height:1.55}.weekly-daily-section{padding:24px 26px}.weekly-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:18px}.weekly-section-heading h2{margin:3px 0 0;color:var(--navy)}.weekly-section-heading>span{color:var(--muted);font-size:.78rem;font-weight:800}.weekly-daily-list{display:grid;gap:14px}.weekly-day{border:1px solid #d7e0e5;border-radius:13px;overflow:hidden;break-inside:avoid}.weekly-day>header{background:#f4f8fa;padding:14px 16px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.weekly-day>header>div{display:flex;align-items:center;gap:10px;white-space:nowrap}.weekly-day>header p{margin:0;max-width:720px;color:#465d6c;line-height:1.45}.weekly-alignment{border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:900;text-transform:uppercase}.weekly-alignment.aligned{background:#e8f6ee;color:#226a45}.weekly-alignment.different{background:#fff0e4;color:#9a4e19}.weekly-alignment.partial{background:#fff8dc;color:#7b6513}.weekly-alignment.insufficient{background:#edf1f4;color:#526674}.weekly-three-column{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.weekly-three-column section{padding:15px 16px;border-right:1px solid #dfe6ea}.weekly-three-column section:last-child{border-right:0}.weekly-three-column small{display:block;color:var(--muted);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.weekly-three-column p{white-space:pre-wrap;margin:7px 0 0;color:#2d4352;line-height:1.5}.weekly-disclaimer{padding:14px 18px;border:1px solid #c9d4da;background:#f5f8f9;border-radius:12px;color:#536874;font-size:.78rem;line-height:1.5}
@media(max-width:900px){.weekly-heading{align-items:flex-start}.weekly-controls{justify-content:flex-start}.weekly-metrics{grid-template-columns:repeat(2,1fr)}.weekly-findings-grid{grid-template-columns:1fr}.weekly-three-column{grid-template-columns:1fr}.weekly-three-column section{border-right:0;border-bottom:1px solid #dfe6ea}.weekly-three-column section:last-child{border-bottom:0}.weekly-day>header{display:block}.weekly-day>header p{margin-top:9px}.weekly-section-heading{display:block}.weekly-section-heading>span{display:block;margin-top:6px}}
@media(max-width:560px){.weekly-controls{display:grid;width:100%}.weekly-controls>*{width:100%}.weekly-controls input{min-width:0}.weekly-metrics{grid-template-columns:1fr 1fr}.weekly-cover{display:block}.weekly-source-count{display:inline-block;margin-top:14px}}
@media print{body.print-weekly .screen#report{display:none!important}body.print-weekly .screen#weekly{display:block!important;max-width:none;padding:0}body.print-weekly .weekly-controls,body.print-weekly .weekly-banner{display:none!important}body.print-weekly .weekly-report{gap:12px}body.print-weekly .weekly-cover,body.print-weekly .weekly-summary,body.print-weekly .weekly-findings-grid>article,body.print-weekly .weekly-daily-section{box-shadow:none;break-inside:avoid}body.print-weekly .weekly-day{break-inside:avoid}body.print-weekly .weekly-three-column{grid-template-columns:repeat(3,1fr)}}

.final-pdf-status{margin:12px 0 0;padding:10px 12px;border:1px solid #a9d6c4;border-radius:10px;background:#eff9f4;color:#245f48;font-size:.8rem;font-weight:700;line-height:1.45}.secure-photo-unavailable::after{content:"Secure preview unavailable";position:absolute;inset:auto 10px 54px;background:rgba(112,55,26,.9);color:white;padding:6px 8px;border-radius:6px;font-size:.7rem;font-weight:800}.photo-placeholder{position:relative}


@media print {
  body.print-guide .screen#report { display:none!important; }
  body.print-guide .screen#guide { display:block!important; max-width:none; padding:0; }
  body.print-guide #guide .button-group,
  body.print-guide #guide .prototype-banner { display:none!important; }
  body.print-guide #guide .page-heading { margin-bottom:14px; }
  body.print-guide #guide .guide-grid { display:block; }
  body.print-guide #guide .guide-section {
    margin-bottom:14px;
    box-shadow:none;
    break-inside:avoid;
  }
  body.print-guide #guide .citation { color:#263f50; border-color:#b8c5cc; }
}

.team-layout { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr); gap:22px; align-items:start; }
.team-invite-form { display:grid; gap:14px; padding-top:8px; }
.team-invite-form label { display:grid; gap:7px; color:var(--muted); font-size:.84rem; font-weight:700; }
.team-invite-form input, .team-invite-form select { width:100%; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); padding:11px 12px; }
.invite-result { margin-top:16px; padding:14px; border:1px solid #a9ded5; border-radius:10px; background:var(--teal-light); display:grid; gap:8px; }
.invite-result span { color:#42606a; line-height:1.45; }
.team-list { display:grid; }
.team-person { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); }
.team-person:last-child { border-bottom:0; }
.team-person-avatar { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--navy); color:white; font-size:.78rem; font-weight:800; }
.team-person div { display:grid; gap:3px; }
.team-person small { color:var(--muted); }
.pill.pending { background:var(--amber-light); color:#8a4b00; }
.muted { color:var(--muted); }
@media (max-width: 920px) { .team-layout { grid-template-columns:1fr; } }

/* Keep every workspace destination reachable on shorter laptop screens. */
.nav-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 0 3px 8px 0; scrollbar-width: thin; scrollbar-color: rgba(110,221,209,.65) transparent; }
.brand, .sidebar-footer { flex: 0 0 auto; }
.nav-list::-webkit-scrollbar { width: 5px; }
.nav-list::-webkit-scrollbar-thumb { background: rgba(110,221,209,.65); border-radius: 10px; }

.team-person-controls { display:flex!important; align-items:flex-end; justify-content:center; gap:8px; }
.team-person-actions { display:flex!important; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.team-action { border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--navy); padding:7px 9px; font:inherit; font-size:.75rem; font-weight:750; cursor:pointer; }
.team-action:hover { border-color:var(--teal); background:var(--teal-light); }
.team-action.danger { color:#9f2f2f; }
.team-action:disabled { opacity:.55; cursor:wait; }
@media (max-width: 720px) {
  .team-person { grid-template-columns:42px minmax(0,1fr); }
  .team-person-controls { grid-column:1 / -1; align-items:flex-start; justify-content:space-between; }
}
