.primary-nav { overflow-y: auto; }
.primary-nav .field-nav { margin-top: 8px; border: 1px solid #bcd7fb; color: #075fc8; }
.nav-group-label { margin: 14px 14px 3px; color: var(--neutral-500); font-size: 10px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.primary-nav .nav-group-label:first-of-type { margin-top: 10px; }
.secondary-nav .field-nav { border: 1px solid #bcd7fb; color: #075fc8; }
.secondary-nav .sidebar-user {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding-top: 11px;
  padding-bottom: 11px;
  border-top: 1px solid var(--neutral-200);
  border-radius: 0;
}

/* UX v2: dashboard prioritizes site discovery and today's field work. */
.dashboard-v2 { --dashboard-blue: #075bc7; }
.dashboard-focus { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(310px, .8fr); gap: 18px; margin-bottom: 18px; }
.dashboard-find-site { position: relative; min-height: 390px; overflow: hidden; padding: 28px; border-radius: 16px; background: linear-gradient(135deg, #075fcf 0%, #0b4ea5 58%, #153b78 100%); color: #fff; box-shadow: 0 14px 32px rgb(7 82 177 / 20%); }
.dashboard-find-site::after { position: absolute; right: -90px; bottom: -120px; width: 320px; height: 320px; border: 58px solid rgb(255 255 255 / 7%); border-radius: 50%; content: ""; pointer-events: none; }
.dashboard-find-site > span { position: relative; z-index: 1; font-size: 12px; font-weight: 750; letter-spacing: .08em; }
.dashboard-find-site h2 { position: relative; z-index: 1; margin: 10px 0 6px; font-size: 28px; letter-spacing: -.035em; }
.dashboard-find-site > p { position: relative; z-index: 1; margin: 0 0 20px; color: rgb(255 255 255 / 76%); font-size: 13px; }
.dashboard-find-site > label { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; align-items: center; overflow: hidden; margin-bottom: 18px; border: 2px solid rgb(255 255 255 / 38%); border-radius: 10px; background: #fff; box-shadow: 0 10px 24px rgb(7 44 95 / 18%); }
.dashboard-find-site > label > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.dashboard-find-site > label input { min-width: 0; min-height: 52px; padding: 0 16px; border: 0; outline: 0; color: var(--neutral-950); font-size: 14px; }
.dashboard-find-site > label b { padding: 0 16px; color: var(--primary-700); font-size: 22px; }
.dashboard-site-results { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.dashboard-site-result { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 10px; padding: 14px; border: 1px solid rgb(255 255 255 / 24%); border-radius: 10px; background: rgb(255 255 255 / 12%); color: #fff; backdrop-filter: blur(4px); }
.dashboard-site-result:hover { background: rgb(255 255 255 / 20%); }
.dashboard-site-result > span:first-child { min-width: 0; }
.dashboard-site-result small, .dashboard-site-result strong, .dashboard-site-result em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-site-result small { color: rgb(255 255 255 / 70%); font-size: 10px; }
.dashboard-site-result strong { margin-top: 3px; font-size: 15px; }
.dashboard-site-result em { margin-top: 5px; color: rgb(255 255 255 / 66%); font-size: 10px; font-style: normal; }
.dashboard-site-result .status-pill { align-self: start; background: #fff; }
.dashboard-site-result > b { grid-column: 1 / -1; color: #fff; font-size: 11px; }
.dashboard-search-empty { grid-column: 1 / -1; padding: 20px; border: 1px dashed rgb(255 255 255 / 40%); border-radius: 10px; }
.dashboard-search-empty strong, .dashboard-search-empty a { display: block; color: #fff; }
.dashboard-search-empty a { margin-top: 8px; font-size: 12px; }
.dashboard-today { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgb(17 24 39 / 7%); }
.dashboard-today > header { padding: 22px 20px 18px; border-top: 5px solid var(--primary-600); border-bottom: 1px solid var(--neutral-200); }
.dashboard-today > header span, .dashboard-today > header strong, .dashboard-today > header small { display: block; }
.dashboard-today > header span { color: var(--primary-700); font-size: 12px; font-weight: 750; }
.dashboard-today > header strong { margin-top: 7px; color: var(--neutral-950); font-size: 21px; }
.dashboard-today > header small { margin-top: 7px; color: var(--neutral-500); font-size: 11px; line-height: 1.45; }
.dashboard-today-list > a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 70px; padding: 12px 16px; border-bottom: 1px solid var(--neutral-100); color: var(--neutral-900); }
.dashboard-today-list .work-type { padding: 5px 7px; border-radius: 999px; background: var(--primary-50); color: var(--primary-700); font-size: 10px; font-weight: 750; }
.dashboard-today-list .work-type.delivery { background: #e8f7ee; color: #167447; }
.dashboard-today-list strong, .dashboard-today-list small { display: block; }
.dashboard-today-list strong { font-size: 12px; }
.dashboard-today-list small { margin-top: 4px; color: var(--neutral-500); font-size: 10px; }
.dashboard-today-list > a > b { color: var(--primary-700); font-size: 10px; white-space: nowrap; }
.dashboard-all-work { display: block; margin: 12px 16px 16px; padding: 10px; border-radius: 7px; background: var(--primary-600); color: #fff; text-align: center; font-size: 12px; font-weight: 750; }
.dashboard-signal-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.dashboard-signal-row a { position: relative; min-width: 0; padding: 15px 16px 14px 20px; border: 1px solid var(--neutral-200); border-radius: 10px; background: #fff; color: var(--neutral-900); }
.dashboard-signal-row a::before { position: absolute; top: 14px; bottom: 14px; left: 0; width: 4px; border-radius: 0 4px 4px 0; background: var(--primary-500); content: ""; }
.dashboard-signal-row span, .dashboard-signal-row strong, .dashboard-signal-row small { display: block; }
.dashboard-signal-row span { color: var(--neutral-600); font-size: 11px; }
.dashboard-signal-row strong { margin: 6px 0 3px; font-size: 18px; }
.dashboard-signal-row small { overflow: hidden; color: var(--neutral-500); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-lower-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .75fr); gap: 16px; }
.dashboard-recent-sites, .dashboard-recent-evidence { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 12px; background: #fff; }
.dashboard-recent-sites > header, .dashboard-recent-evidence > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 17px 18px; border-bottom: 1px solid var(--neutral-200); }
.dashboard-recent-sites h2, .dashboard-recent-evidence h2 { margin: 0; font-size: 15px; }
.dashboard-recent-sites header p, .dashboard-recent-evidence header p { margin: 4px 0 0; color: var(--neutral-500); font-size: 10px; }
.dashboard-recent-sites header a, .dashboard-recent-evidence header a { color: var(--primary-700); font-size: 11px; white-space: nowrap; }
.dashboard-recent-sites > div > a { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(190px, .95fr) 14px; align-items: center; gap: 14px; min-height: 66px; padding: 12px 18px; border-bottom: 1px solid var(--neutral-100); color: var(--neutral-900); }
.dashboard-recent-sites > div > a:last-child { border-bottom: 0; }
.dashboard-recent-sites strong, .dashboard-recent-sites small, .dashboard-recent-sites b { display: block; }
.dashboard-recent-sites strong { font-size: 12px; }
.dashboard-recent-sites small { margin-top: 4px; color: var(--neutral-500); font-size: 10px; }
.dashboard-recent-sites b { overflow: hidden; margin-top: 3px; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-recent-sites i { color: var(--primary-700); font-style: normal; }
.dashboard-delivery-visual { min-height: 170px; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding: 22px; background: linear-gradient(135deg, rgb(4 39 91 / 86%), rgb(8 100 199 / 70%)), linear-gradient(45deg, #1c293a, #73879d); color: #fff; }
.dashboard-delivery-visual span > * { display: block; }
.dashboard-delivery-visual b { font-size: 11px; }
.dashboard-delivery-visual strong { margin-top: 8px; font-size: 18px; }
.dashboard-delivery-visual small { margin-top: 7px; color: rgb(255 255 255 / 76%); font-size: 11px; }
.dashboard-delivery-visual em { padding: 9px 11px; border-radius: 8px; background: rgb(255 255 255 / 16%); font-size: 11px; font-style: normal; line-height: 1.5; white-space: nowrap; }
.dashboard-recent-evidence dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.dashboard-recent-evidence dl > div { padding: 13px 16px; }
.dashboard-recent-evidence dl > div + div { border-left: 1px solid var(--neutral-200); }
.dashboard-recent-evidence dt { color: var(--neutral-500); font-size: 9px; }
.dashboard-recent-evidence dd { margin: 5px 0 0; font-size: 11px; font-weight: 650; }

@media (max-width: 980px) {
  .dashboard-focus, .dashboard-lower-grid { grid-template-columns: 1fr; }
  .dashboard-signal-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .dashboard-find-site { min-height: 0; padding: 20px 16px; border-radius: 0; box-shadow: none; }
  .dashboard-find-site h2 { font-size: 23px; }
  .dashboard-site-results { grid-template-columns: 1fr; }
  .dashboard-today { border-radius: 10px; }
  .dashboard-signal-row { grid-template-columns: 1fr 1fr; gap: 8px; }
  .dashboard-signal-row a { padding: 13px 10px 12px 16px; }
  .dashboard-recent-sites > div > a { grid-template-columns: minmax(0, 1fr) 12px; }
  .dashboard-recent-sites > div > a > span:nth-child(2) { grid-column: 1; }
  .dashboard-recent-sites > div > a > i { grid-column: 2; grid-row: 1 / span 2; }
}
.secondary-nav .sidebar-user > .avatar {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--primary-100);
  color: var(--primary-700);
  font-size: 11px;
  font-weight: 800;
}
.secondary-nav .sidebar-user > span:last-child { display: grid; width: auto; min-width: 0; gap: 2px; text-align: left; font-size: inherit; }
.secondary-nav .sidebar-user strong { overflow: hidden; color: var(--neutral-900); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.secondary-nav .sidebar-user small { color: var(--neutral-500); font-size: 10px; }
.sidebar-collapsed .secondary-nav .sidebar-user { justify-content: center; padding-right: 9px; padding-left: 9px; }
.sidebar-collapsed .secondary-nav .sidebar-user > span:last-child { display: none; }
.sidebar-collapsed .nav-group-label { display: none; }
.ops-page { width: 100%; }
.ops-page a { text-decoration: none; }
.preview-banner { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding: 10px 14px; border: 1px solid #a9cff9; border-radius: 7px; background: #f0f7ff; color: #265f9f; font-size: 11px; }
.preview-banner b { padding: 4px 8px; border-radius: 12px; background: #0b67d8; color: #fff; }
.ops-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.ops-page-header > div:first-child > span { color: #0b67d8; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.ops-page-header h1 { margin: 6px 0; font-size: 27px; letter-spacing: -.04em; }
.ops-page-header p { margin: 0; color: #687280; font-size: 12px; }
.ops-page-header > div:last-child:not(:first-child) { display: flex; gap: 8px; }
.primary-action { border: 1px solid #0962d8; background: #0962d8; color: #fff; }
.outline-action { border: 1px solid #ccd5df; background: #fff; color: #28313d; }
.ops-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.ops-metrics a { padding: 15px; border: 1px solid #dce2e9; border-radius: 8px; color: #171b22; background: #fff; }
.ops-metrics span, .ops-metrics strong, .ops-metrics small { display: block; }
.ops-metrics span { color: #5e6875; font-size: 10px; }
.ops-metrics strong { margin: 8px 0 5px; font-size: 25px; }
.ops-metrics small { color: #8a929d; font-size: 9px; }
.ops-dashboard-grid, .detail-columns { display: grid; grid-template-columns: 1.35fr .75fr; gap: 14px; margin-bottom: 14px; }
.ops-panel, .ops-section, .detail-card { border: 1px solid #dce2e9; border-radius: 8px; background: #fff; overflow: hidden; }
.ops-panel > header, .ops-section > header, .detail-card > header { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 10px 15px; border-bottom: 1px solid #e4e8ed; }
.ops-panel h2, .ops-section h2, .detail-card h2 { margin: 0; font-size: 14px; }
.ops-panel header p, .ops-section header p { margin: 3px 0 0; color: #87909b; font-size: 9px; }
.ops-panel header a, .ops-section header a, .detail-card header a { color: #0962d8; font-size: 10px; }
.priority-row { display: grid; grid-template-columns: 48px 1fr 12px; align-items: center; gap: 10px; padding: 13px 15px; border-bottom: 1px solid #edf0f3; color: #202731; }
.priority-row:last-child { border-bottom: 0; }
.priority-row strong, .priority-row span { display: block; }
.priority-row strong { font-size: 11px; }
.priority-row span { margin-top: 4px; color: #78818c; font-size: 9px; }
.status-pill { display: inline-flex; align-items: center; justify-content: center; width: max-content; padding: 4px 8px; border-radius: 12px; font-size: 9px; white-space: nowrap; }
.status-pill.success { background: #e7f7ed; color: #168247; }
.status-pill.warning { background: #fff2dc; color: #ae6200; }
.status-pill.danger { background: #ffeaec; color: #d43643; }
.status-pill.info { background: #e9f2ff; color: #1767c5; }
.delivery-focus { padding: 17px; }
.delivery-focus > b { color: #ae6200; font-size: 9px; }
.delivery-focus h3 { margin: 7px 0 5px; font-size: 16px; }
.delivery-focus p { margin: 0 0 13px; color: #66717e; font-size: 10px; }
.delivery-focus dl, .delivery-card dl, .info-list { margin: 0; }
.delivery-focus dl div, .delivery-card dl div, .info-list div { display: grid; grid-template-columns: 75px 1fr; gap: 8px; padding: 6px 0; border-top: 1px solid #edf0f3; font-size: 9px; }
.delivery-focus dt, .delivery-card dt, .info-list dt { color: #7a838e; }
.delivery-focus dd, .delivery-card dd, .info-list dd { margin: 0; }
.delivery-focus > a { display: inline-block; margin-top: 12px; color: #0962d8; font-size: 10px; }
.ops-section { margin-bottom: 14px; }
.ops-section > header > div p { margin: 3px 0 0; color: #87909b; font-size: 9px; }
.ops-site-grid, .site-directory-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 13px; }
.ops-site-card, .site-directory-card { position: relative; padding: 14px; border: 1px solid #e0e5eb; border-radius: 7px; }
.ops-site-card > header, .site-directory-card > header { display: flex; justify-content: space-between; gap: 8px; }
.ops-site-card header span, .site-directory-card header span { color: #0962d8; font-size: 9px; }
.ops-site-card h3, .site-directory-card h2 { margin: 4px 0 0; font-size: 14px; }
.ops-site-card dl, .site-directory-card dl { margin: 12px 0; }
.ops-site-card dl div, .site-directory-card dl div { padding: 5px 0; border-top: 1px solid #edf0f3; }
.ops-site-card dt, .site-directory-card dt { color: #7b8490; font-size: 8px; }
.ops-site-card dd, .site-directory-card dd { margin: 3px 0 0; font-size: 9px; }
.readiness { display: grid; grid-template-columns: 1fr auto; gap: 5px; font-size: 9px; }
.readiness i, .lifecycle-bars i { grid-column: 1 / -1; height: 5px; overflow: hidden; border-radius: 4px; background: #e7ebf0; }
.readiness em, .lifecycle-bars em { display: block; height: 100%; background: #0962d8; }
.stretched-link { display: inline-block; margin-top: 11px; color: #0962d8; font-size: 9px; }
.content-list-toolbar { display: flex; align-items: flex-end; gap: 14px; margin: -6px 0 16px; }
.toolbar-search-label { display: grid; gap: 5px; flex: 0 1 380px; min-width: 260px; color: var(--neutral-700); font-size: 12px; font-weight: 700; }
.toolbar-search-label input { width: 100%; min-height: 38px; padding: 0 11px; border: 1px solid var(--neutral-300); border-radius: 7px; background: #fff; color: var(--neutral-900); font: inherit; font-weight: 400; }
.toolbar-search-label input:focus { outline: 2px solid rgb(37 99 235 / 18%); border-color: var(--primary-500); }
.toolbar-result-count { padding-bottom: 10px; color: var(--neutral-600); font-size: 12px; white-space: nowrap; }
.content-list-toolbar > a { padding-bottom: 10px; color: var(--primary-700); font-size: 12px; font-weight: 650; text-decoration: none; }
.content-list-toolbar > a:hover { text-decoration: underline; }
.location-line { min-height: 30px; color: #66717e; font-size: 9px; }
.site-directory-card footer { display: flex; justify-content: space-between; gap: 8px; padding-top: 10px; border-top: 1px solid #edf0f3; font-size: 9px; }
.readiness-score { display: inline-flex; align-items: center; padding: 5px 8px; border-radius: 12px; font-size: 10px; }
.readiness-score.success { background: #e7f7ed; color: #168247; }
.readiness-score.warning { background: #fff2dc; color: #a96100; }
.readiness-score.danger { background: #ffeaec; color: #d43643; }
.back-link { display: inline-block; margin-bottom: 13px; color: #5f6975; font-size: 10px; }
.site-detail-header { display: flex; align-items: flex-end; justify-content: space-between; }
.site-detail-header > div > span { color: #0962d8; font-size: 10px; }
.site-detail-header h1 { margin: 5px 0; font-size: 27px; }
.site-detail-header p { margin: 0; color: #6a7480; font-size: 10px; }
.detail-tabs { display: flex; margin: 18px 0 14px; overflow-x: auto; border-bottom: 1px solid #dce2e9; }
.detail-tabs a { flex: 0 0 auto; min-width: 82px; padding: 10px; color: #39434f; text-align: center; font-size: 10px; }
.detail-tabs a.active { border-bottom: 3px solid #0962d8; color: #0962d8; font-weight: 700; }
.detail-overview-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 14px; margin-bottom: 14px; }
.handover-key-grid { display: grid; grid-template-columns: repeat(3, 1fr); padding: 10px 15px 15px; }
.handover-key-grid > div { padding: 11px; border-right: 1px solid #edf0f3; border-bottom: 1px solid #edf0f3; }
.handover-key-grid > div:nth-child(3n) { border-right: 0; }
.handover-key-grid span, .handover-key-grid strong { display: block; }
.handover-key-grid span { color: #7b8490; font-size: 8px; }
.handover-key-grid strong { margin-top: 6px; font-size: 10px; }
.action-checklist { margin: 0; padding: 10px 30px 15px; }
.action-checklist li { padding: 9px 0; border-bottom: 1px solid #edf0f3; font-size: 9px; }
.action-checklist li.warning { color: #a96100; }
.action-checklist li.danger { color: #d43643; }
.timeline-row { display: grid; grid-template-columns: 76px 42px 1fr; gap: 8px; padding: 11px 15px; border-bottom: 1px solid #edf0f3; font-size: 9px; }
.timeline-row time { color: #7d8691; }
.timeline-row b { color: #0962d8; }
.timeline-row strong, .timeline-row span { display: block; }
.timeline-row span { margin-top: 3px; color: #7a838e; }
.record-row { display: grid; gap: 4px; padding: 12px 15px; border-bottom: 1px solid #edf0f3; color: #242c36; font-size: 9px; }
.record-row small { color: #78818c; }
.handover-list { padding: 10px 15px 15px; }
.handover-list > div { display: grid; grid-template-columns: 26px 1fr auto; align-items: center; padding: 10px; border-bottom: 1px solid #edf0f3; font-size: 10px; }
.handover-list b { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; }
.handover-list .done { background: #e7f7ed; color: #168247; }
.handover-list .missing { background: #ffeaec; color: #d43643; }
.handover-list strong { color: #737d89; font-size: 9px; }
.access-flow-row { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 9px; margin: 9px 14px; padding: 10px; border: 1px solid #e0e5eb; border-radius: 6px; font-size: 10px; }
.access-flow-row b { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #0962d8; color: #fff; }
.info-list { padding: 10px 15px; }
.responsive-table { overflow-x: auto; }
.responsive-table table { min-width: 720px; margin: 0; }
.delivery-history-card, .delivery-card { color: #202731; }
.delivery-history-card { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 15px; border-bottom: 1px solid #edf0f3; }
.delivery-history-card h3 { margin: 6px 0; }
.handover-board, .delivery-grid, .knowledge-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.handover-board article, .delivery-card, .knowledge-groups > section { border: 1px solid #dce2e9; border-radius: 8px; background: #fff; overflow: hidden; }
.handover-board article { padding: 15px; }
.handover-board header, .delivery-card header, .knowledge-groups > section > header { display: flex; justify-content: space-between; gap: 8px; }
.handover-board header span { color: #0962d8; font-size: 9px; }
.handover-board h2 { margin: 4px 0 0; font-size: 15px; }
.handover-board ul { padding-left: 18px; font-size: 9px; line-height: 2; }
.handover-board li.ok::marker { color: #168247; }
.handover-board li.bad { color: #d43643; }
.handover-board article > a { color: #0962d8; font-size: 9px; }
.workspace-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.workspace-summary div { padding: 14px; border: 1px solid #dce2e9; border-radius: 7px; }
.workspace-summary strong, .workspace-summary span { display: block; }
.workspace-summary strong { font-size: 22px; }
.workspace-summary span { color: #77818d; font-size: 9px; }
.workflow-guide { padding: 15px; border: 1px solid #dce2e9; border-radius: 8px; }
.workflow-guide h2 { margin: 0 0 12px; font-size: 13px; }
.workflow-guide > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.workflow-guide span { padding: 12px; border-radius: 6px; background: #f4f7fb; font-size: 9px; }
.segmented-tabs { display: flex; gap: 4px; margin-bottom: 14px; }
.segmented-tabs a { padding: 8px 13px; border: 1px solid #d7dee7; border-radius: 5px; color: #39434f; font-size: 10px; }
.segmented-tabs a.active { border-color: #0962d8; background: #0962d8; color: #fff; }
.delivery-card { padding: 15px; }
.delivery-card header span { color: #77818d; font-size: 9px; }
.delivery-card h2 { margin: 12px 0 5px; font-size: 15px; }
.delivery-card > p { color: #687280; font-size: 10px; }
.delivery-card > a { display: inline-block; margin-top: 10px; color: #0962d8; font-size: 9px; }
.photo-placeholder-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
.photo-placeholder-grid div { min-height: 120px; display: flex; align-items: flex-end; padding: 10px; border-radius: 7px; background: linear-gradient(135deg,#263a51,#91a0ad); color: #fff; font-size: 9px; }
.lifecycle-bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.lifecycle-bars > div { display: grid; grid-template-columns: 1fr auto; gap: 7px; padding: 14px; border: 1px solid #dce2e9; border-radius: 7px; font-size: 10px; }
.security-notice { display: flex; gap: 12px; margin-bottom: 14px; padding: 12px 14px; border: 1px solid #f0d49e; border-radius: 7px; background: #fff8e9; color: #77531c; font-size: 10px; }
.post-action-banner { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; padding: 12px 14px; border: 1px solid #b8d6f6; border-radius: 7px; background: #f2f8ff; color: #315d8f; font-size: 10px; line-height: 1.65; }
.post-action-banner b { flex: 0 0 auto; color: #0962d8; }
.field-incident-action { margin: 0 0 14px; }
.knowledge-groups { grid-template-columns: repeat(4, 1fr); }
.knowledge-groups > section > header { padding: 12px; border-bottom: 1px solid #e4e8ed; }
.knowledge-groups h2 { margin: 0; font-size: 13px; }
.knowledge-groups header span { color: #7c8590; font-size: 9px; }
.knowledge-groups article, .knowledge-link { display: block; padding: 13px; border-bottom: 1px solid #edf0f3; color: #202731; }
.knowledge-groups article b, .knowledge-link b { color: #0962d8; font-size: 9px; }
.knowledge-groups article h3, .knowledge-link h3 { margin: 6px 0; font-size: 11px; line-height: 1.5; }
.knowledge-groups article span, .knowledge-link span { color: #7c8590; font-size: 8px; }
.field-layout { display: grid; grid-template-columns: 360px 1fr; gap: 28px; align-items: start; }
.phone-preview { width: 360px; overflow: hidden; border: 8px solid #1e2732; border-radius: 28px; background: #f5f7fa; box-shadow: 0 18px 40px rgb(29 43 58 / 18%); }
.phone-preview > header { height: 54px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 14px; background: #fff; font-size: 9px; }
.phone-preview > header i { justify-self: end; color: #168247; }
.phone-body { display: grid; gap: 11px; padding: 15px; }
.phone-body label { font-size: 9px; }
.gps-card { padding: 10px; border: 1px solid #a9cff9; border-radius: 6px; background: #eef6ff; }
.gps-card b, .gps-card span { display: block; }
.gps-card b { color: #0962d8; font-size: 10px; }
.gps-card span { margin-top: 4px; color: #617080; font-size: 8px; }
.mobile-photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.mobile-photo-grid button { min-height: 78px; display: grid; place-content: center; gap: 5px; border: 1px dashed #9eb2ca; border-radius: 6px; background: #fff; color: #0962d8; }
.mobile-photo-grid button span { color: #687280; font-size: 8px; }
.mobile-photo-grid button.captured { border-style: solid; background: #e7f7ed; color: #168247; }
.mobile-save { padding: 11px; border-radius: 6px; background: #0962d8; color: #fff; text-align: center; font-size: 10px; }
.field-benefits { padding: 20px; border: 1px solid #dce2e9; border-radius: 8px; }
.field-benefits h2 { margin-top: 0; }
.field-benefits li { margin-bottom: 12px; padding: 12px; border-radius: 7px; background: #f6f8fb; }
.field-benefits b, .field-benefits span { display: block; }
.field-benefits span { margin-top: 5px; color: #6e7884; font-size: 10px; }
.narrow-page { max-width: 900px; margin: 0 auto; }
.site-registration-page { width: 100%; max-width: none; margin: 0; }
.site-registration-page .form-card { padding: 22px 24px; }
.site-registration-page .form-card form { gap: 16px 20px; }
.site-registration-guide { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 10px; margin: 0; padding: 12px 14px; border: 1px solid #cfe0fa; border-radius: 7px; background: #f3f8ff; color: #425066; font-size: 11px; line-height: 1.5; }
.site-registration-guide strong { color: #095fcf; }
.site-registration-guide span { color: #596779; }
.form-card { padding: 18px; border: 1px solid #dce2e9; border-radius: 8px; }
.form-card form { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; padding: 0; }
.form-card .full { grid-column: 1 / -1; }
.process-stepper { display: grid; grid-template-columns: repeat(6, 1fr); margin-bottom: 14px; overflow: hidden; border: 1px solid #dce2e9; border-radius: 8px; background: #fff; }
.process-stepper > div { position: relative; display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 54px; border-right: 1px solid #e5e9ee; color: #8a929c; font-size: 9px; }
.process-stepper > div:last-child { border-right: 0; }
.process-stepper b { width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; background: #e8ecf1; color: #68727f; }
.process-stepper .done { color: #168247; }
.process-stepper .done b { background: #dff4e7; color: #168247; }
.process-stepper .current { color: #0962d8; font-weight: 700; }
.process-stepper .current b { background: #0962d8; color: #fff; }
.detail-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.detail-facts > div { padding: 13px; border: 1px solid #dce2e9; border-radius: 7px; background: #fff; }
.detail-facts span, .detail-facts strong { display: block; }
.detail-facts span { color: #7b8590; font-size: 8px; }
.detail-facts strong { margin-top: 6px; font-size: 11px; }
.prose-card { padding-bottom: 10px; }
.prose-card > dl, .prose-card > p, .prose-card > h3, .prose-card > ol { margin-left: 15px; margin-right: 15px; }
.prose-card dl { margin-top: 8px; }
.prose-card dl > div { padding: 9px 0; border-bottom: 1px solid #edf0f3; }
.prose-card dt { color: #68727e; font-size: 9px; font-weight: 700; }
.prose-card dd { margin: 4px 0 0; font-size: 10px; line-height: 1.6; }
.prose-card h3 { margin-top: 16px; margin-bottom: 5px; font-size: 11px; }
.prose-card p, .prose-card li { color: #505b68; font-size: 10px; line-height: 1.7; }
.detail-footer-links { display: flex; gap: 10px; padding: 12px 15px; }
.detail-footer-links a { color: #0962d8; font-size: 9px; }
.check-detail-list { padding: 10px 15px 15px; }
.check-detail-list > div { display: grid; grid-template-columns: 1fr 1.4fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid #edf0f3; font-size: 9px; }
.check-detail-list span { color: #727c88; }
.knowledge-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.knowledge-meta span { padding: 6px 9px; border: 1px solid #dce2e9; border-radius: 14px; color: #5f6b77; font-size: 8px; }
.three-column-prose { display: grid; grid-template-columns: repeat(3, 1fr); }
.three-column-prose > div { padding: 15px; border-right: 1px solid #edf0f3; }
.three-column-prose > div:last-child { border-right: 0; }
.version-row { display: grid; grid-template-columns: 45px 1fr; gap: 10px; padding: 11px 15px; border-bottom: 1px solid #edf0f3; }
.version-row > b { color: #0962d8; font-size: 9px; }
.version-row strong, .version-row span { display: block; }
.version-row strong { font-size: 10px; }
.version-row span { margin-top: 3px; color: #78828d; font-size: 8px; }
.erp-boundary, .library-principle { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; padding: 11px 14px; border: 1px solid #b8d4f7; border-radius: 7px; background: #f1f7ff; color: #315f91; font-size: 9px; }
.erp-boundary b, .library-principle b { color: #0a5ebc; white-space: nowrap; }
.work-case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.work-case-card { padding: 15px; border: 1px solid #dce2e9; border-radius: 8px; background: #fff; }
.work-case-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.work-case-card > header > div { display: grid; gap: 5px; }
.work-case-card > header span { color: #77828f; font-size: 8px; }
.work-case-card > header > strong { color: #0a61c8; font-size: 10px; }
.work-case-card h2 { margin: 13px 0 5px; font-size: 16px; }
.work-case-card > p { margin: 0 0 12px; color: #6d7884; font-size: 9px; }
.work-case-card dl { margin: 0; }
.work-case-card dl > div { padding: 7px 0; border-top: 1px solid #edf0f3; }
.work-case-card dt { color: #7b8591; font-size: 8px; }
.work-case-card dd { margin: 3px 0 0; font-size: 9px; line-height: 1.5; }
.work-case-card > a { display: inline-block; margin-top: 12px; color: #0962d8; font-size: 9px; }
.three-work-flows { display: grid; grid-template-columns: repeat(3, 1fr); }
.three-work-flows article { padding: 15px; border-right: 1px solid #edf0f3; }
.three-work-flows article:last-child { border-right: 0; }
.three-work-flows b { color: #0a61c8; font-size: 11px; }
.three-work-flows p { min-height: 48px; color: #596573; font-size: 9px; line-height: 1.7; }
.three-work-flows a { color: #0962d8; font-size: 9px; }
.report-template-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; padding: 13px; }
.report-template-grid article { padding: 12px; border: 1px solid #e0e5eb; border-radius: 7px; }
.report-template-grid article > b { color: #0962d8; font-size: 9px; }
.report-template-grid h3 { margin: 6px 0; font-size: 10px; }
.report-template-grid p { min-height: 30px; margin: 0 0 7px; color: #687380; font-size: 8px; line-height: 1.5; }
.report-template-grid span { color: #89919a; font-size: 8px; }
.artifact-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.artifact-metrics > div { padding: 14px; border: 1px solid #dce2e9; border-radius: 7px; background: #fff; }
.artifact-metrics strong, .artifact-metrics span { display: block; }
.artifact-metrics strong { font-size: 22px; }
.artifact-metrics span { margin-top: 4px; color: #77818d; font-size: 9px; }
.artifact-tabs { display: flex; gap: 4px; margin-bottom: 12px; overflow-x: auto; padding-bottom: 2px; }
.artifact-tabs a { flex: 0 0 auto; padding: 8px 11px; border: 1px solid #d7dee7; border-radius: 5px; color: #3b4652; font-size: 9px; }
.artifact-tabs a.active { border-color: #0962d8; background: #0962d8; color: #fff; }
.search-context { display: flex; justify-content: space-between; margin-bottom: 10px; padding: 9px 12px; border-radius: 6px; background: #f5f7fa; font-size: 9px; }
.search-context a { color: #0962d8; }
.artifact-list { margin-bottom: 14px; overflow: hidden; border: 1px solid #dce2e9; border-radius: 8px; background: #fff; }
.artifact-list > header, .artifact-row { display: grid; grid-template-columns: 100px minmax(280px, 1fr) 90px 120px 12px; align-items: center; gap: 12px; }
.artifact-list > header { padding: 10px 13px; border-bottom: 1px solid #dce2e9; background: #f7f9fb; color: #7c8691; font-size: 8px; }
.artifact-row { padding: 12px 13px; border-bottom: 1px solid #edf0f3; color: #242c36; }
.artifact-row:last-child { border-bottom: 0; }
.artifact-row .file-kind { width: max-content; padding: 5px 7px; border-radius: 4px; background: #edf4fd; color: #0a61c8; font-size: 8px; }
.artifact-row > div strong, .artifact-row > div small, .artifact-row > div em, .artifact-row > div span { display: block; }
.artifact-row > div strong { font-size: 10px; }
.artifact-row > div small { margin-top: 4px; color: #6f7a86; font-size: 8px; }
.artifact-row > div em { margin-top: 3px; color: #8a929b; font-size: 8px; font-style: normal; }
.artifact-row .artifact-version b { font-size: 9px; }
.artifact-row .artifact-version span, .artifact-row > div:nth-child(4) > span { margin-top: 4px; color: #858e98; font-size: 8px; }
.library-collections, .site-file-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.library-collections .detail-card > p { margin: 0; padding: 15px; color: #606c78; font-size: 9px; line-height: 1.7; }
.linked-artifact-list > a { display: grid; grid-template-columns: 80px 1fr 12px; align-items: center; gap: 10px; padding: 11px 15px; border-bottom: 1px solid #edf0f3; color: #252d37; }
.linked-artifact-list > a > span { color: #0962d8; font-size: 8px; }
.linked-artifact-list strong, .linked-artifact-list small { display: block; }
.linked-artifact-list strong { font-size: 10px; }
.linked-artifact-list small { margin-top: 4px; color: #78838e; font-size: 8px; }
.scope-chip-list { display: flex; flex-wrap: wrap; gap: 6px; padding: 13px 15px 0; }
.scope-chip-list span { padding: 6px 9px; border-radius: 14px; background: #eaf3ff; color: #0962d8; font-size: 8px; font-weight: 700; }
.evidence-tile-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; padding: 13px; }
.evidence-tile { min-height: 76px; display: grid; align-content: center; justify-items: center; gap: 6px; padding: 9px; border: 1px dashed #b8c5d4; border-radius: 7px; color: #647181; text-align: center; }
.evidence-tile.done { border-style: solid; border-color: #b9e1c8; background: #f0faf4; color: #168247; }
.evidence-tile b { width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; background: #dff4e7; font-size: 9px; }
.evidence-tile span { font-size: 8px; font-weight: 700; }
.evidence-tile small { font-size: 7px; }
.part-replacement-layout { display: grid; grid-template-columns: .85fr 1.15fr; }
.part-replacement-layout > dl { margin: 0; padding: 12px 15px; border-right: 1px solid #edf0f3; }
.part-replacement-layout dl > div { padding: 8px 0; border-bottom: 1px solid #edf0f3; }
.part-replacement-layout dt { color: #74808c; font-size: 8px; }
.part-replacement-layout dd { margin: 4px 0 0; font-size: 9px; line-height: 1.5; }
.replacement-evidence h3 { margin: 14px 14px 0; font-size: 10px; }
.replacement-evidence .evidence-tile-grid { grid-template-columns: repeat(3, 1fr); }
.replacement-evidence > a { display: inline-block; margin: 0 14px 14px; color: #0962d8; font-size: 9px; }
.part-summary-row { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 15px; }
.part-summary-row > b { color: #0962d8; font-size: 10px; }
.part-summary-row strong, .part-summary-row span { display: block; }
.part-summary-row strong { font-size: 10px; }
.part-summary-row span { margin-top: 5px; color: #74808c; font-size: 8px; }
.mobile-photo-grid.six { grid-template-columns: repeat(3, 1fr); }
.mobile-secondary { padding: 9px; border: 1px solid #b9c9dc; border-radius: 6px; background: #fff; color: #0962d8; text-align: center; font-size: 9px; }
.bulk-photo-example { display: grid; grid-template-columns: 1fr auto; gap: 7px; margin: 20px 0 0 20px; padding: 14px; border: 1px solid #dce2e9; border-radius: 7px; }
.bulk-photo-example b, .bulk-photo-example span { font-size: 9px; }
.bulk-photo-example i { grid-column: 1 / -1; height: 6px; overflow: hidden; border-radius: 5px; background: #e7ebf0; }
.bulk-photo-example em { display: block; height: 100%; background: #168247; }
.knowledge-lifecycle { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; margin-bottom: 14px; }
.knowledge-lifecycle span { display: flex; align-items: center; gap: 7px; padding: 10px; border: 1px solid #dce2e9; border-radius: 7px; background: #fff; font-size: 8px; }
.knowledge-lifecycle b { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #eaf3ff; color: #0962d8; }
.site-artifact-list > a { display: grid; grid-template-columns: 85px 1fr 100px 12px; align-items: center; gap: 10px; padding: 11px 15px; border-bottom: 1px solid #edf0f3; color: #252d37; }
.site-artifact-list > a > span { color: #0962d8; font-size: 8px; }
.site-artifact-list strong, .site-artifact-list small { display: block; }
.site-artifact-list strong { font-size: 10px; }
.site-artifact-list small { margin-top: 4px; color: #77828e; font-size: 8px; }
.site-artifact-list > a > b { color: #65717d; font-size: 8px; }
.upload-dropzone { padding: 18px; border: 1px dashed #9eb5cf; border-radius: 7px; background: #f5f9fe; }
.upload-dropzone input { margin-top: 8px; background: #fff; }
.upload-dropzone span { display: block; margin-top: 6px; color: #74808d; font-size: 8px; }
.search-result-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.search-result-group { overflow: hidden; border: 1px solid #dce2e9; border-radius: 8px; background: #fff; }
.search-result-group > header { display: flex; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #e4e8ed; }
.search-result-group h2 { margin: 0; font-size: 13px; }
.search-result-group header span { color: #76818d; font-size: 9px; }
.search-result-group > a { display: grid; grid-template-columns: 85px 1fr; gap: 4px 10px; padding: 11px 14px; border-bottom: 1px solid #edf0f3; color: #242c36; }
.search-result-group > a b { grid-row: 1 / 3; color: #0962d8; font-size: 8px; }
.search-result-group > a strong { font-size: 10px; }
.search-result-group > a span { color: #77828d; font-size: 8px; }

@media (max-width: 1200px) {
  .ops-metrics { grid-template-columns: repeat(3, 1fr); }
  .ops-site-grid, .site-directory-grid { grid-template-columns: repeat(2, 1fr); }
  .handover-board, .delivery-grid { grid-template-columns: repeat(2, 1fr); }
  .knowledge-groups { grid-template-columns: repeat(2, 1fr); }
  .work-case-grid, .report-template-grid { grid-template-columns: repeat(2, 1fr); }
  .evidence-tile-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .preview-banner { align-items: flex-start; flex-direction: column; }
  .ops-page-header { align-items: flex-start; flex-direction: column; }
  .ops-page-header > div:last-child:not(:first-child) { width: 100%; }
  .ops-page-header .primary-action, .ops-page-header .outline-action { flex: 1; }
  .ops-metrics, .ops-dashboard-grid, .ops-site-grid, .site-directory-grid, .portfolio-columns,
  .detail-overview-grid, .detail-columns, .handover-board, .delivery-grid, .knowledge-groups,
  .workspace-summary, .workflow-guide > div, .lifecycle-bars, .field-layout { grid-template-columns: 1fr; }
  .handover-key-grid { grid-template-columns: 1fr 1fr; }
  .handover-key-grid > div:nth-child(3n) { border-right: 1px solid #edf0f3; }
  .field-layout { justify-items: center; }
  .phone-preview { width: min(360px, 100%); }
  .field-benefits { width: 100%; }
  .form-card form { grid-template-columns: 1fr; }
  .form-card .full { grid-column: auto; }
  .process-stepper { grid-template-columns: repeat(3, 1fr); }
  .process-stepper > div:nth-child(3) { border-right: 0; }
  .detail-facts, .three-column-prose, .work-case-grid, .report-template-grid, .artifact-metrics,
  .three-work-flows, .library-collections, .site-file-layout, .part-replacement-layout,
  .knowledge-lifecycle, .search-result-layout { grid-template-columns: 1fr; }
  .three-column-prose > div { border-right: 0; border-bottom: 1px solid #edf0f3; }
  .three-work-flows article, .part-replacement-layout > dl { border-right: 0; border-bottom: 1px solid #edf0f3; }
  .artifact-list > header { display: none; }
  .artifact-row { grid-template-columns: 80px 1fr 12px; }
  .artifact-row .artifact-version, .artifact-row > div:nth-child(4) { grid-column: 2; }
  .evidence-tile-grid, .replacement-evidence .evidence-tile-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1279px) {
  #main-content { padding: 20px 24px 24px; }
  .ops-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ops-site-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-context-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  #main-content { padding: 16px; }
  .topbar { height: 58px; padding: 0 12px; }
  .content-list-toolbar { align-items: stretch; flex-wrap: wrap; gap: 8px 12px; margin: -2px 0 14px; }
  .toolbar-search-label { flex-basis: 100%; min-width: 0; }
  .toolbar-result-count, .content-list-toolbar > a { padding-bottom: 0; }
  .ops-page-header { align-items: stretch; gap: 14px; margin-bottom: 16px; }
  .ops-page-header h1 { font-size: 24px; }
  .page-header-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .page-header-actions a { width: 100%; padding: 0 10px; text-align: center; }
  .ops-metrics { grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; overflow: visible; }
  .ops-metrics a { min-height: 112px; padding: 14px; }
  .ops-metrics strong { font-size: 26px; }
  .ops-dashboard-grid { grid-template-columns: 1fr; gap: 12px; }
  .ops-site-grid { grid-template-columns: 1fr; gap: 10px; padding: 12px; }
  .site-context-header { position: static; grid-template-columns: 1fr; gap: 12px; margin: 0 -16px 16px; padding: 16px 16px 0; }
  .site-context-title { align-items: start; display: grid; gap: 8px; }
  .site-context-title > div:first-child { padding: 0; }
  .site-context-title h1 { font-size: 24px; }
  .site-context-actions { display: grid; grid-template-columns: 1fr 84px 1fr; width: 100%; }
  .site-context-actions > a, .site-context-actions > button { width: 100%; }
  .site-context-actions .site-action-menu > summary { width: 100%; min-width: 0; }
  .site-context-facts { grid-template-columns: 1fr 1fr; margin-top: 0; }
  .site-context-facts > div { padding: 10px 8px 10px 0; }
  .site-context-header .site-tabs { margin: 0 -16px; padding: 0 8px; border-top: 1px solid var(--neutral-100); }
  .site-context-header .site-tabs a { padding: 12px 10px; font-size: 12px; }
  .dashboard-workspace-summary { margin-bottom: 16px; border-radius: 10px; }
  .dashboard-title { align-items: stretch; flex-direction: column; gap: 14px; padding: 18px; }
  .dashboard-title h1 { font-size: 25px; }
  .dashboard-title > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .dashboard-title > div:last-child a { width: 100%; padding: 0 8px; text-align: center; }
  .dashboard-summary-body { grid-template-columns: 1fr; }
  .dashboard-day { border-right: 0; border-bottom: 1px solid var(--neutral-200); }
  .dashboard-priority-actions { grid-template-columns: 1fr; }
  .dashboard-priority-actions a { min-height: 94px; padding: 16px 18px; }
  .dashboard-priority-actions a + a { border-top: 1px solid var(--neutral-200); border-left: 0; }
  .site-context-header { margin-left: -16px; margin-right: -16px; border-right: 0; border-left: 0; border-radius: 0; box-shadow: none; }
  .site-context-header .site-tabs { margin: 0 -16px; }
}

/* Site 360: mockup-aligned, information-dense site workspace */
.site-detail-page .site-breadcrumb { display: flex; align-items: center; gap: 9px; }
.site-detail-page .site-breadcrumb a { color: #7b8794; }
.site-detail-page .site-heading { min-width: 0; }
.site-detail-page .site-heading h1 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-detail-content { min-width: 0; }
.site-actions > a,
.site-action-menu > summary { min-height: var(--ui-control-height); display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid #d4dae2; border-radius: 8px; background: #fff; color: #26313d; font-size: 13px; font-weight: 650; text-decoration: none; cursor: pointer; }
.site-actions > a.primary { min-width: 70px; border-color: #0962d8; background: #0962d8; color: #fff; }
.site-actions button.favorite-active { border-color: #8ab8f2; background: #f1f7ff; color: #075fc8; }
.site-action-menu { position: relative; margin: 0; border: 0; overflow: visible; }
.site-action-menu > summary { width: var(--ui-control-height); padding: 0; list-style: none; }
.site-action-menu > summary::-webkit-details-marker { display: none; }
.site-action-menu[open] > summary { border-color: #9cbce3; background: #f4f8fd; }
.site-action-menu > div { position: absolute; z-index: 20; top: calc(var(--ui-control-height) + 5px); right: 0; width: 154px; padding: 5px; border: 1px solid #d8dee6; border-radius: 6px; background: #fff; box-shadow: 0 10px 24px rgb(25 45 68 / 15%); }
.site-action-menu > div a { display: block; padding: 9px 10px; border-radius: 4px; color: #26313d; font-size: 10px; }
.site-action-menu > div a:hover { background: #f1f6fc; color: #0962d8; }
.site-metric { color: #171b22; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.site-metric:hover { border-color: #a8c8ee; box-shadow: 0 5px 16px rgb(31 74 124 / 10%); transform: translateY(-1px); }
.site-metric > span:last-child { min-width: 0; }
.site-metric > span:last-child > span { overflow-wrap: anywhere; }
.site-metric.engineer-metric strong { font-size: 21px; }
.activity-row { color: #202731; text-decoration: none; }
.activity-row:hover { background: #f8fbff; }
.access-step a { color: #414b57; font-size: 9px; white-space: nowrap; }
.access-step a:hover { color: #0962d8; }
.ghost-button { display: inline-flex; align-items: center; justify-content: center; color: #2d3742; text-decoration: none; }
.compact-list a { color: #222b36; text-decoration: none; }
.compact-list a:hover { border-color: #b7cfe9; background: #f8fbff; }
.compact-empty { margin: 8px 0 0; padding: 24px 10px; color: #7c8793; text-align: center; font-size: 9px; }
.photo-card { display: block; color: #26313d; text-decoration: none; }
.photo-card span small { display: block; margin-top: 2px; color: #687482; }
.password-table a { color: #1f2a36; text-decoration: none; }
.password-table a:hover { color: #0962d8; }
.access-flow-row > span strong,
.access-flow-row > span small { display: block; }
.access-flow-row > span small { margin-top: 4px; color: #707b88; font-size: 9px; }
.detail-card + .detail-card { margin-top: 14px; }

/* Design-system foundation: dashboard and site-detail common layout only. */
:root {
  --primary-50: #eff6ff;
  --primary-100: #dbeafe;
  --primary-600: #1769d2;
  --primary-700: #0f56b3;
  --neutral-950: #111827;
  --neutral-700: #374151;
  --neutral-600: #4b5563;
  --neutral-500: #6b7280;
  --neutral-300: #d1d5db;
  --neutral-200: #e5e7eb;
  --neutral-100: #f3f4f6;
  --neutral-50: #f8fafc;
  --success: #16875a;
  --success-bg: #eaf7f0;
  --warning: #b76e00;
  --warning-bg: #fff5dd;
  --danger: #d92d20;
  --danger-bg: #fdecec;
  --info: #2563eb;
  --info-bg: #eef4ff;
}

#main-content { max-width: none; margin: 0; padding: 20px 28px 28px; }
.topbar {
  position: sticky;
  z-index: 20;
  top: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  width: 100%;
  min-height: 76px;
  height: auto;
  padding: 10px 28px;
  border-bottom: 1px solid var(--neutral-200);
  background: rgb(255 255 255 / 97%);
  backdrop-filter: blur(10px);
}
.topbar-page-heading { display: flex; align-items: center; min-width: 0; gap: 12px; }
.topbar-page-identity { min-width: 0; }
.topbar-page-identity > span { display: block; margin-bottom: 3px; color: var(--primary-600); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.topbar-page-identity h1 { margin: 0; overflow: hidden; color: var(--neutral-950); font-size: 22px; line-height: 1.25; letter-spacing: -.03em; text-overflow: ellipsis; white-space: nowrap; }
.topbar-page-identity p { display: none; }
.topbar-back-link { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; margin: 0; border: 1px solid var(--neutral-300); border-radius: 8px; color: transparent; font-size: 0; }
.topbar-back-link::before { content: "←"; color: var(--neutral-700); font-size: 17px; }
.topbar-page-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; }
.topbar-page-actions:empty { display: none; }
.topbar-page-actions .page-header-actions,
.topbar-page-actions .site-context-actions { display: flex; align-items: center; gap: 8px; }
.topbar .site-context-title { display: flex; align-items: center; flex-wrap: nowrap; gap: 10px; min-width: 0; }
.topbar .site-context-title > div:first-child { display: grid; gap: 1px; padding: 0; color: var(--neutral-500); font-size: 10px; }
.topbar .site-context-title > div:first-child strong { color: var(--neutral-700); font-size: 12px; }
.topbar .site-context-title > div:nth-child(2) { min-width: 0; }
.topbar .site-context-title > div:nth-child(2) > span { display: none; }
.topbar .site-context-title h1 { margin: 0; overflow: hidden; color: var(--neutral-950); font-size: 22px; line-height: 1.25; letter-spacing: -.03em; text-overflow: ellipsis; white-space: nowrap; }
.ops-page-header { align-items: flex-end; margin-bottom: 24px; }
.ops-page-header h1 { color: var(--neutral-950); font-size: 28px; line-height: 1.25; }
.ops-page-header p { max-width: 720px; color: var(--neutral-600); font-size: 13px; line-height: 1.55; }
.page-header-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.primary-action,
.detail-card > header a.primary-action,
.ops-panel > header a.primary-action,
.ops-section > header a.primary-action {
  flex: 0 0 auto;
  min-width: max-content;
  border-color: var(--primary-600);
  background: var(--primary-600);
  color: #fff;
  font-size: 13px;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}
.primary-action:visited,
.detail-card > header a.primary-action:visited,
.ops-panel > header a.primary-action:visited,
.ops-section > header a.primary-action:visited { color: #fff; }
.primary-action:hover,
.detail-card > header a.primary-action:hover,
.ops-panel > header a.primary-action:hover,
.ops-section > header a.primary-action:hover { background: var(--primary-700); color: #fff; }
.outline-action { border-color: var(--neutral-300); color: var(--neutral-700); }
.detail-card > header a.outline-action,
.ops-panel > header a.outline-action,
.ops-section > header a.outline-action { flex: 0 0 auto; color: var(--neutral-700); font-size: 13px; white-space: nowrap; }

.ops-metrics { grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: 16px; margin-bottom: 20px; overflow-x: auto; }
.ops-metrics a { min-height: 128px; padding: 18px; border-color: var(--neutral-200); border-radius: 10px; }
.ops-metrics a:hover, .ops-site-card:hover { border-color: #b8d1f2; box-shadow: 0 6px 16px rgb(15 86 179 / 8%); }
.ops-metrics a:nth-child(-n+2) { border-top: 3px solid var(--primary-600); }
.ops-metrics span { color: var(--neutral-600); font-size: 12px; }
.ops-metrics strong { margin: 9px 0 6px; color: var(--neutral-950); font-size: 30px; }
.ops-metrics small { color: var(--neutral-500); font-size: 12px; line-height: 1.4; }
.ops-dashboard-grid { grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr); gap: 16px; }
.ops-panel, .ops-section, .detail-card { border-color: var(--neutral-200); border-radius: 10px; }
.ops-panel > header, .ops-section > header, .detail-card > header { min-height: 60px; padding: 12px 18px; }
.ops-panel h2, .ops-section h2, .detail-card h2 { color: var(--neutral-950); font-size: 16px; }
.ops-panel header p, .ops-section header p { font-size: 12px; line-height: 1.45; }
.priority-row { min-height: 68px; padding: 14px 18px; }
.priority-row strong { font-size: 13px; }
.priority-row span { font-size: 12px; }
.ops-site-grid { grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: 16px; padding: 16px; }
.ops-site-card { min-height: 250px; padding: 16px; border-color: var(--neutral-200); border-radius: 10px; transition: border-color .15s, box-shadow .15s; }
.ops-site-card header span, .ops-site-card dt { font-size: 12px; }
.ops-site-card h3 { font-size: 16px; }
.ops-site-card dd, .stretched-link, .readiness { font-size: 12px; }

.site-detail-page > .site-heading, .site-detail-page > .site-scope-banner { display: none; }
.site-context-header { position: sticky; z-index: 8; top: 76px; display: block; margin-bottom: 20px; padding: 0; border-bottom: 1px solid var(--neutral-200); background: #fff; }
.site-context-title { display: flex; align-items: end; flex-wrap: wrap; gap: 10px 18px; min-width: 0; }
.site-context-title > div:first-child { display: grid; gap: 4px; padding-bottom: 3px; color: var(--neutral-600); font-size: 12px; }
.site-context-title > div:first-child strong { color: var(--neutral-700); font-size: 14px; }
.site-context-title > div:nth-child(2) { min-width: 0; }
.site-context-title > div:nth-child(2) > span { display: block; margin-bottom: 4px; color: var(--neutral-500); font-size: 12px; }
.site-context-title h1 { margin: 0; color: var(--neutral-950); font-size: 28px; line-height: 1.2; letter-spacing: -.03em; }
.site-context-actions { display: flex; align-items: center; gap: 8px; }
.site-context-actions .outline-action { cursor: pointer; }
.site-context-actions .favorite-active { border-color: #9cc6f7; background: var(--primary-50); color: var(--primary-700); }
.site-context-actions .site-action-menu > summary { width: auto; min-width: 74px; padding: 0 12px; font-size: 13px; }
.site-context-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 2px 0 0; border-top: 1px solid var(--neutral-100); }
.site-context-facts > div { padding: 12px 16px 14px 0; }
.site-context-facts dt { margin-bottom: 5px; color: var(--neutral-500); font-size: 12px; }
.site-context-facts dd { margin: 0; color: var(--neutral-700); font-size: 13px; font-weight: 600; }
.site-context-header .site-tabs { grid-column: 1 / -1; margin-top: 0; border-bottom: 0; }
.site-context-header .site-tabs a { min-width: auto; padding: 12px 16px; font-size: 13px; }
.status-pill { gap: 5px; padding: 5px 9px; font-size: 11px; font-weight: 650; }
.status-pill.success { background: var(--success-bg); color: var(--success); }
.status-pill.warning { background: var(--warning-bg); color: var(--warning); }
.status-pill.danger { background: var(--danger-bg); color: var(--danger); }
.status-pill.info { background: var(--info-bg); color: var(--info); }
.status-pill > span { font-size: 8px; }

/* Deliberately visible dashboard hierarchy: action summary, then supporting metrics. */
.ops-page[data-screen="C-01"] > .ops-page-header { display: none; }
.dashboard-workspace-summary { margin-bottom: 24px; overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 12px; background: #fff; box-shadow: 0 6px 18px rgb(17 24 39 / 5%); }
.dashboard-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 24px; border-bottom: 1px solid var(--neutral-200); background: linear-gradient(110deg, var(--neutral-50), #fff 66%); }
.dashboard-title > div:first-child > span { color: var(--primary-600); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.dashboard-title h1 { margin: 7px 0; color: var(--neutral-950); font-size: 30px; letter-spacing: -.04em; }
.dashboard-title p { margin: 0; color: var(--neutral-600); font-size: 14px; line-height: 1.55; }
.dashboard-title > div:last-child { display: flex; flex-wrap: wrap; gap: 8px; }
.dashboard-summary-body { display: grid; grid-template-columns: minmax(240px, .82fr) minmax(0, 2.18fr); }
.dashboard-day { padding: 22px 24px; border-right: 1px solid var(--neutral-200); background: var(--primary-50); }
.dashboard-day span, .dashboard-day strong { display: block; }
.dashboard-day span { color: var(--primary-700); font-size: 12px; font-weight: 700; }
.dashboard-day strong { margin-top: 8px; color: var(--neutral-950); font-size: 22px; }
.dashboard-day p { margin: 7px 0 0; color: var(--neutral-600); font-size: 13px; line-height: 1.5; }
.dashboard-priority-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-priority-actions a { min-height: 126px; padding: 22px 20px; color: var(--neutral-950); text-decoration: none; }
.dashboard-priority-actions a + a { border-left: 1px solid var(--neutral-200); }
.dashboard-priority-actions a:hover { background: var(--neutral-50); }
.dashboard-priority-actions span, .dashboard-priority-actions strong, .dashboard-priority-actions small { display: block; }
.dashboard-priority-actions span { color: var(--neutral-600); font-size: 12px; }
.dashboard-priority-actions strong { margin: 9px 0; font-size: 24px; }
.dashboard-priority-actions small { color: var(--primary-700); font-size: 12px; font-weight: 650; }

/* Site detail is a persistent work context, not a loose page title plus tabs. */
.site-context-header { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 10px; padding: 0; box-shadow: 0 3px 12px rgb(17 24 39 / 4%); }
.site-context-facts { gap: 10px; margin: 0; padding: 12px 16px; border-top: 0; }
.site-context-facts > div { padding: 10px 12px; border-radius: 8px; background: var(--neutral-50); }
.site-context-header .site-tabs { margin: 0; padding: 0 12px; border-top: 1px solid var(--neutral-200); background: #fff; }
.site-context-header .site-tabs a { padding: 14px 14px 11px; }
.upload-dropzone { min-height: 112px; display: flex; flex-direction: column; justify-content: center; cursor: pointer; }
.upload-dropzone.dragging { border-color: #0962d8; background: #eaf4ff; box-shadow: 0 0 0 3px rgb(9 98 216 / 12%); }
.inline-artifact-upload form { padding: 0 18px 18px; }
.inline-upload-actions, .site-photo-fields { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; margin-top: 12px; }
.inline-upload-actions label, .site-photo-fields label { display: grid; gap: 6px; color: var(--neutral-700); font-size: 12px; font-weight: 700; }
.inline-upload-actions input, .site-photo-fields input, .site-photo-fields select { box-sizing: border-box; width: 100%; min-height: 38px; padding: 0 11px; border: 1px solid var(--neutral-300); border-radius: 7px; background: #fff; color: var(--neutral-950); font: 13px/1.4 inherit; }
.site-photo-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-photo-upload .upload-dropzone { margin-top: 16px; }
@media (max-width: 640px) {
  .inline-upload-actions,
  .site-photo-fields { grid-template-columns: 1fr; }
  .inline-upload-actions .primary-action { width: 100%; }
}
.quick-note-card pre { min-height: 130px; margin: 0; padding: 14px; border: 1px solid #e0e6ed; border-radius: 6px; background: #fbfcfe; color: #26313d; font: 12px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.quick-note-card > small { display: block; margin-top: 8px; color: #75808c; font-size: 9px; }
.file-preview iframe { display: block; width: 100%; height: 560px; border: 1px solid #dce2e9; border-radius: 5px; background: #fff; }
.pdf-preview iframe { height: min(76vh, 920px); min-height: 620px; }
.file-preview img { display: block; max-width: 100%; max-height: 680px; margin: 0 auto; border: 1px solid #dce2e9; border-radius: 5px; }
.preview-unavailable p { margin: 0; color: #5c6875; line-height: 1.7; }

/* Site records: fast capture and finished work history share one working view. */
.worklog-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.quick-log-card { border-top: 3px solid var(--primary-600); }
.quick-log-card form { padding: 0 18px 18px; }
.quick-log-title, .quick-log-body { display: grid; gap: 6px; color: var(--neutral-700); font-size: 12px; font-weight: 700; }
.quick-log-title { margin-bottom: 12px; }
.quick-log-title small { color: var(--neutral-500); font-size: 11px; font-weight: 500; }
.quick-log-title input { box-sizing: border-box; width: 100%; min-height: 40px; padding: 0 12px; border: 1px solid var(--neutral-300); border-radius: 7px; color: var(--neutral-950); font: 13px/1.5 inherit; }
.quick-log-card textarea { box-sizing: border-box; width: 100%; resize: vertical; padding: 12px; border: 1px solid var(--neutral-300); border-radius: 7px; color: var(--neutral-950); font: 13px/1.55 inherit; }
.quick-log-title input:focus, .quick-log-card textarea:focus { border-color: var(--primary-600); outline: 3px solid rgb(23 105 210 / 12%); }
.quick-log-attachments { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.quick-log-file-chip, .quick-log-image-preview { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; margin: 0; padding: 6px 8px; border-radius: 6px; background: var(--primary-50); color: var(--primary-700); font-size: 11px; overflow-wrap: anywhere; }
.quick-log-image-preview { align-items: flex-start; max-width: 180px; padding: 5px; }
.quick-log-image-preview img { display: block; width: 52px; height: 52px; flex: 0 0 auto; border-radius: 4px; object-fit: cover; }
.quick-log-image-preview figcaption { min-width: 0; padding: 2px 3px 0 1px; }
.quick-log-file-name { display: inline; overflow-wrap: anywhere; }
.quick-log-attachments small { color: var(--neutral-600); }
.quick-log-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.quick-log-actions label { display: inline-flex; align-items: center; gap: 7px; color: var(--neutral-600); font-size: 12px; }
.quick-log-actions select { min-height: 34px; padding: 0 26px 0 9px; border: 1px solid var(--neutral-300); border-radius: 6px; background: #fff; color: var(--neutral-700); }
.quick-log-actions > span { margin-right: auto; color: var(--neutral-500); font-size: 11px; }
.quick-log-actions .outline-action, .quick-log-actions .primary-action { min-height: 34px; padding: 0 12px; font-size: 12px; }
.quick-log-file-button { cursor: pointer; }
.quick-log-file-button input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.worklog-note pre { max-height: 320px; margin: 0 18px; overflow: auto; padding: 13px; border: 1px solid var(--neutral-200); border-radius: 7px; background: var(--neutral-50); color: var(--neutral-700); font: 12px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; }
.worklog-note { grid-column: 1 / -1; }
.worklog-linked-files { display: flex; flex-wrap: wrap; gap: 7px; padding: 10px 18px 0; }
.worklog-linked-files a { padding: 5px 7px; border-radius: 5px; background: var(--primary-50); color: var(--primary-700); font-size: 11px; text-decoration: none; }
.worklog-note > small { display: block; padding: 8px 18px 16px; color: var(--neutral-500); font-size: 11px; }
.record-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.record-actions .outline-action { min-height: 34px; padding: 0 10px; font-size: 12px; }
.worklog-history { border-top: 1px solid var(--neutral-100); }
.worklog-history a { display: grid; grid-template-columns: 94px 88px minmax(0, 1fr) 80px; gap: 10px; align-items: center; min-height: 58px; padding: 10px 18px; border-bottom: 1px solid var(--neutral-100); color: var(--neutral-700); text-decoration: none; }
.worklog-history a:hover { background: var(--neutral-50); }
.worklog-record-details { border-bottom: 1px solid var(--neutral-100); }
.worklog-record-details[open] { background: var(--neutral-50); }
.worklog-record-details summary { display: grid; grid-template-columns: 94px 88px minmax(0, 1fr) 120px; gap: 10px; align-items: center; min-height: 58px; padding: 10px 18px; cursor: pointer; list-style: none; }
.worklog-record-details summary::-webkit-details-marker { display: none; }
.worklog-record-details summary:hover { background: var(--neutral-50); }
.worklog-record-body { padding: 0 18px 16px; border-top: 1px dashed var(--neutral-200); }
.worklog-record-body > p { margin: 12px 0; color: var(--neutral-700); white-space: pre-wrap; font-size: 12px; line-height: 1.65; }
.worklog-saved-images { display: flex; flex-wrap: wrap; gap: 8px; }
.worklog-saved-images a { display: block; width: 88px; height: 68px; min-height: 0; padding: 0; overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 6px; }
.worklog-saved-images img { display: block; width: 100%; height: 100%; object-fit: cover; }
.worklog-saved-files { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.worklog-saved-files a { display: inline-flex; min-height: 0; padding: 5px 7px; border-radius: 5px; background: var(--primary-50); color: var(--primary-700); font-size: 11px; }
.worklog-history time, .worklog-history em { color: var(--neutral-500); font-size: 11px; font-style: normal; }
.worklog-history em { text-align: right; }
.worklog-history .worklog-type { display: inline-flex; width: fit-content; padding: 4px 7px; border-radius: 999px; background: var(--primary-50); color: var(--primary-700); font-size: 11px; font-weight: 650; }
.worklog-history strong, .worklog-history small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.worklog-history strong { color: var(--neutral-950); font-size: 13px; }
.worklog-history small { margin-top: 3px; color: var(--neutral-500); font-size: 11px; }
.operations-layout { align-items: start; }
.operations-layout .inventory-preview-card { grid-column: 1 / -1; }
.operation-summary { margin-top: 14px; }
.operation-links > header span { color: var(--neutral-500); font-size: 11px; }
.operation-links > a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 0 18px; border-top: 1px solid var(--neutral-100); color: var(--neutral-700); text-decoration: none; }
.operation-links > a:hover { background: var(--neutral-50); color: var(--primary-700); }
.operation-links > a b { color: var(--primary-700); font-size: 12px; }
.operation-links > p { margin: 0; padding: 13px 18px 16px; color: var(--neutral-500); font-size: 11px; line-height: 1.5; }
.inventory-files > a { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 62px; padding: 0 18px; border-top: 1px solid var(--neutral-100); color: var(--neutral-700); text-decoration: none; }
.inventory-files > a:hover { background: var(--neutral-50); }
.inventory-files > a > span { display: inline-flex; justify-content: center; width: fit-content; padding: 5px 7px; border-radius: 5px; background: #e8f1ff; color: var(--primary-700); font-size: 11px; font-weight: 700; }
.inventory-files strong, .inventory-files small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inventory-files strong { color: var(--neutral-950); font-size: 13px; }
.inventory-files small { margin-top: 3px; color: var(--neutral-500); font-size: 11px; }
.inventory-files > a > b { color: var(--primary-700); font-size: 12px; }
.inventory-preview-item { border-top: 1px solid var(--neutral-100); }
.inventory-file-meta { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 18px; }
.inventory-file-meta > a:first-child { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 10px; align-items: center; color: var(--neutral-700); text-decoration: none; }
.inventory-file-meta > a:first-child > span { grid-row: 1 / span 2; display: inline-flex; justify-content: center; width: fit-content; padding: 5px 7px; border-radius: 5px; background: #e8f1ff; color: var(--primary-700); font-size: 11px; font-weight: 700; }
.inventory-file-meta strong, .inventory-file-meta small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inventory-file-meta strong { color: var(--neutral-950); font-size: 13px; }
.inventory-file-meta small { margin-top: 3px; color: var(--neutral-500); font-size: 11px; }
.inventory-file-meta > a:last-child { color: var(--primary-700); font-size: 12px; text-decoration: none; white-space: nowrap; }
.inventory-preview-card .spreadsheet-preview .responsive-table, .inventory-preview-card > .responsive-table { max-height: 560px; }
.account-summary .responsive-table { border-top: 1px solid var(--neutral-100); }
.contact-point-panel dl { margin: 0; padding: 8px 16px 0; }
.contact-point-panel dl div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 8px; min-height: 35px; padding: 7px 0; border-bottom: 1px solid var(--neutral-100); }
.contact-point-panel dt { color: var(--neutral-500); font-size: 11px; }
.contact-point-panel dd { margin: 0; color: var(--neutral-700); font-size: 12px; overflow-wrap: anywhere; }
.contact-point-link { display: block; padding: 13px 16px; color: var(--primary-700); font-size: 12px; font-weight: 650; text-decoration: none; }
.spreadsheet-preview .responsive-table { max-height: 560px; overflow: auto; border-top: 1px solid var(--neutral-100); }
.spreadsheet-tabs { display: flex; gap: 4px; margin: 0 0 12px; border-bottom: 1px solid var(--neutral-100); }
.spreadsheet-tabs a { padding: 8px 12px; color: var(--neutral-600); font-size: 13px; border-bottom: 2px solid transparent; }
.spreadsheet-tabs a.active { color: var(--primary-600); font-weight: 700; border-bottom-color: var(--primary-600); }
.spreadsheet-preview table { min-width: max-content; border-collapse: separate; border-spacing: 0; }
.spreadsheet-preview th { position: sticky; top: 0; z-index: 1; background: var(--neutral-50); color: var(--neutral-500); font-size: 11px; }
.spreadsheet-preview td { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.spreadsheet-preview td, .spreadsheet-preview th { padding: 9px 12px; border-right: 1px solid var(--neutral-100); border-bottom: 1px solid var(--neutral-100); }
.spreadsheet-preview header label { display: inline-flex; align-items: center; gap: 7px; color: var(--neutral-600); font-size: 12px; }
.spreadsheet-preview select { min-height: 34px; max-width: 240px; padding: 0 24px 0 8px; border: 1px solid var(--neutral-300); border-radius: 6px; background: #fff; color: var(--neutral-700); }
.spreadsheet-preview-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.spreadsheet-focus-toggle { white-space: nowrap; }
body.spreadsheet-focus-open { overflow: hidden; }
.spreadsheet-focus-mode { position: fixed !important; z-index: 950; inset: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); width: 100vw !important; height: 100dvh; max-width: none !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: #fff; }
.spreadsheet-focus-mode > header { min-height: 58px; padding: max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left)); }
.spreadsheet-focus-mode > header p, .spreadsheet-focus-mode .spreadsheet-layout-note, .spreadsheet-focus-mode .spreadsheet-limit { display: none; }
.spreadsheet-focus-mode .spreadsheet-table { width: 100%; height: 100%; max-height: none !important; overflow: auto; overscroll-behavior: contain; }
.spreadsheet-focus-mode .spreadsheet-table th { position: sticky; z-index: 3; top: 0; }
.spreadsheet-focus-mode .spreadsheet-table :is(th, td):first-child { position: sticky; z-index: 2; left: 0; background: #fff; box-shadow: 1px 0 0 var(--neutral-200); }
.spreadsheet-focus-mode .spreadsheet-table th:first-child { z-index: 4; background: var(--neutral-50); }
.spreadsheet-loading, .spreadsheet-error, .spreadsheet-limit { margin: 0; padding: 16px 18px; color: var(--neutral-500); font-size: 12px; line-height: 1.5; }
.spreadsheet-error { color: var(--danger); }
.migration-list { display: grid; gap: 10px; margin: 0; padding: 0 18px 16px; list-style: none; }
.migration-list li { display: grid; gap: 3px; padding-bottom: 10px; border-bottom: 1px solid var(--neutral-100); }
.migration-list strong { color: var(--neutral-700); font-size: 12px; }
.migration-list span { color: var(--neutral-500); font-size: 11px; line-height: 1.45; }
.full-width-action { display: flex; width: calc(100% - 36px); margin: 0 18px 18px; justify-content: center; }
.site-file-layout > :nth-child(3) { grid-column: 1 / -1; }

/* Site-detail normalization: legacy compact cards use a single spacing and type scale. */
.site-detail-page .detail-columns,
.site-detail-page .site-file-layout {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.site-detail-page .site-file-layout > .detail-card {
  min-width: 0;
  height: 100%;
  box-sizing: border-box;
}
.site-detail-page .operations-layout { grid-template-rows: minmax(220px, max-content) minmax(276px, max-content); }
.site-detail-page .operations-layout > .detail-card { min-width: 0; height: 100%; box-sizing: border-box; }
.site-detail-page .detail-columns > .detail-card,
.site-detail-page .site-file-layout > .detail-card { margin-top: 0; }
.site-detail-page .detail-card > header {
  flex: 0 0 auto;
  align-items: center;
  gap: 14px;
}
.site-detail-page .detail-card > header > div { min-width: 0; }
.site-detail-page .detail-card > header h2 { font-size: 15px; line-height: 1.35; }
.site-detail-page .detail-card > header p { margin: 4px 0 0; color: var(--neutral-600); font-size: 12px; line-height: 1.45; }
.site-detail-page .detail-card > header > span { color: var(--neutral-500); font-size: 12px; white-space: nowrap; }
.site-detail-page .info-list { padding: 8px 18px 14px; }
.site-detail-page .info-list div {
  grid-template-columns: 96px minmax(0, 1fr);
  align-items: center;
  min-height: 38px;
  padding: 6px 0;
  font-size: 12px;
  line-height: 1.45;
}
.site-detail-page .info-list dt { color: var(--neutral-500); }
.site-detail-page .info-list dd { color: var(--neutral-700); overflow-wrap: anywhere; }
.site-detail-page .inventory-files > a {
  min-height: 76px;
  padding: 10px 18px;
}
.site-detail-page .operation-links > a { min-height: 60px; }
.site-detail-page .operation-links > p { min-height: 55px; box-sizing: border-box; }
.site-detail-page .site-artifact-list > a {
  grid-template-columns: 84px minmax(0, 1fr) auto 16px;
  min-height: 76px;
  gap: 12px;
  padding: 11px 18px;
}
.site-detail-page .site-artifact-list > a > span { font-size: 11px; line-height: 1.35; }
.site-detail-page .site-artifact-list strong { color: var(--neutral-950); font-size: 13px; line-height: 1.35; }
.site-detail-page .site-artifact-list small { margin-top: 4px; color: var(--neutral-500); font-size: 11px; line-height: 1.35; }
.site-detail-page .site-artifact-list > a > b { color: var(--neutral-600); font-size: 11px; white-space: nowrap; }
.site-detail-page .delivery-history-card {
  grid-template-columns: minmax(0, 1fr) minmax(180px, .55fr);
  align-items: start;
  min-height: 132px;
  gap: 28px;
  padding: 18px;
}
.site-detail-page .delivery-history-card h3 { margin: 7px 0; color: var(--neutral-950); font-size: 17px; line-height: 1.35; }
.site-detail-page .delivery-history-card p { margin: 0; color: var(--neutral-600); font-size: 13px; line-height: 1.45; }
.site-detail-page .delivery-history-card dl div {
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  min-height: 34px;
  padding: 4px 0;
  font-size: 12px;
}
.site-detail-page .delivery-history-card dt { color: var(--neutral-500); }
.site-detail-page .delivery-history-card dd { color: var(--neutral-700); }

@media (max-width: 760px) {
  .worklog-layout { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .worklog-note { grid-column: auto; }
  .site-detail-page .detail-columns,
  .site-detail-page .site-file-layout { grid-template-columns: minmax(0, 1fr); }
  .site-detail-page .site-file-layout > .detail-card,
  .site-detail-page .operations-layout > .detail-card { height: auto; }
  .site-detail-page .operations-layout { grid-template-rows: auto; }
  .site-detail-page .detail-card > header { align-items: flex-start; flex-wrap: wrap; }
  .site-detail-page .detail-card > header > div { flex: 1 1 180px; }
  .site-detail-page .info-list div { grid-template-columns: 86px minmax(0, 1fr); min-height: 36px; }
  .site-detail-page .site-artifact-list > a { grid-template-columns: 70px minmax(0, 1fr) 14px; min-height: 72px; padding: 10px 14px; }
  .site-detail-page .site-artifact-list > a > b { display: none; }
  .site-detail-page .delivery-history-card { grid-template-columns: 1fr; min-height: 0; gap: 12px; padding: 14px; }
  .site-detail-page .delivery-history-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
  .site-detail-page .site-heading { align-items: flex-start; }
  .site-detail-page .site-heading h1 { width: 100%; white-space: normal; }
  .site-detail-page .site360-badge { order: 2; }
  .site-detail-page .site-actions { order: 3; margin-left: 0; overflow: visible; }
  .site-actions > button, .site-actions > a { flex: 1; white-space: nowrap; }
  .site-action-menu { flex: 0 0 auto; }
  .site-scope-banner { align-items: flex-start; flex-wrap: wrap; }
  .site-tabs a { min-width: 94px; }
  .activity-row { grid-template-columns: 42px 26px 78px minmax(0, 1fr); }
  .quick-log-card form { padding: 0 14px 14px; }
  .quick-log-actions { align-items: stretch; }
  .quick-log-actions label { width: 100%; justify-content: space-between; }
  .quick-log-actions > span { width: 100%; }
  .quick-log-actions .outline-action, .quick-log-actions .primary-action { flex: 1; justify-content: center; }
  .inventory-file-meta { align-items: flex-start; flex-direction: column; padding: 12px 14px; }
  .record-actions { width: 100%; }
  .record-actions .outline-action { flex: 1; justify-content: center; }
  .inventory-files > a { grid-template-columns: 48px minmax(0, 1fr); padding: 12px 14px; }
  .inventory-files > a > b { display: none; }
  .spreadsheet-preview header { align-items: flex-start; gap: 10px; }
  .spreadsheet-preview header label { width: 100%; justify-content: space-between; }
  .spreadsheet-preview select { max-width: 75%; }
  .worklog-history a { grid-template-columns: 1fr auto; gap: 7px; padding: 12px 14px; }
  .worklog-record-details summary { grid-template-columns: 1fr auto; gap: 7px; padding: 12px 14px; }
  .worklog-history .worklog-type { grid-row: 1; grid-column: 2; }
  .worklog-record-details .worklog-type { grid-row: 1; grid-column: 2; }
  .worklog-history a > span:nth-child(3) { grid-row: 2; grid-column: 1 / -1; }
  .worklog-record-details summary > span:nth-child(3) { grid-row: 2; grid-column: 1 / -1; }
  .worklog-history em { display: none; }
  .worklog-record-details em { display: none; }
  .worklog-record-body { padding: 0 14px 14px; }
}

/* Field-first responsive system: compact phones, foldable inner screens, and tablets. */
html { -webkit-text-size-adjust: 100%; }

.sidebar-backdrop { display: none; }

@media (max-width: 760px) {
  body { min-width: 320px; padding-bottom: env(safe-area-inset-bottom); }
  .sidebar { height: 100dvh; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .sidebar-backdrop:not([hidden]) {
    position: fixed;
    z-index: 29;
    inset: 0;
    display: block;
    width: 100%;
    height: 100dvh;
    margin: 0;
    border: 0;
    background: rgb(15 23 42 / 38%);
  }
  .topbar {
    position: sticky;
    z-index: 20;
    top: 0;
    padding-right: max(12px, env(safe-area-inset-right));
    padding-left: max(12px, env(safe-area-inset-left));
  }
  #main-content {
    padding-right: max(16px, env(safe-area-inset-right));
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
    padding-left: max(16px, env(safe-area-inset-left));
  }
  select,
  input,
  textarea {
    font-size: max(16px, 1em);
  }
  button,
  select,
  .primary-action,
  .outline-action,
  .site-actions > a,
  .site-action-menu > summary { min-height: 44px; }
  input:not([type="checkbox"]):not([type="radio"]), textarea { min-height: 44px; }
  .mobile-menu { width: 44px; min-width: 44px; min-height: 44px; }
  .site-actions > a,
  .site-action-menu > summary { font-size: 13px; }
  .site-tabs { scrollbar-width: none; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
  .site-tabs::-webkit-scrollbar { display: none; }
  .site-tabs a { scroll-snap-align: start; }
  .responsive-table { -webkit-overflow-scrolling: touch; }
  .responsive-table table { margin-bottom: 2px; }
  .site-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .site-metrics .site-metric:first-child { grid-column: 1 / -1; }
  .site-metric { min-height: 102px; padding: 14px; }
  .metric-icon { flex-basis: 42px; width: 42px; height: 42px; font-size: 21px; }
  .quick-log-actions .outline-action,
  .quick-log-actions .primary-action,
  .record-actions .outline-action { min-height: 44px; }
}

/* Foldable inner display / wide phone: retain a short, two-column field workspace. */
@media (min-width: 600px) and (max-width: 760px) {
  #main-content { padding-right: 20px; padding-left: 20px; }
  .site-context-header { margin-right: 0; margin-left: 0; border-right: 1px solid var(--neutral-200); border-left: 1px solid var(--neutral-200); border-radius: 12px; }
  .site-context-header .site-tabs { margin: 0 -20px; }
  .worklog-layout,
  .site-detail-page .detail-columns,
  .site-detail-page .site-file-layout,
  .detail-overview-grid,
  .ops-dashboard-grid,
  .field-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .worklog-note { grid-column: 1 / -1; }
  .site-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-metrics .site-metric:first-child { grid-column: auto; }
  .ops-site-grid,
  .site-directory-grid,
  .delivery-grid,
  .knowledge-groups,
  .work-case-grid,
  .report-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tablet: keep dense tables and paired panels usable without desktop-only spacing. */
@media (min-width: 761px) and (max-width: 1024px) {
  .app-shell,
  .sidebar-collapsed { display: block; }
  .sidebar {
    position: fixed;
    z-index: 30;
    top: 0;
    left: 0;
    width: 256px;
    height: 100dvh;
    transform: translateX(-105%);
    transition: transform .2s ease;
  }
  .sidebar.open { transform: none; }
  .sidebar-collapsed .brand strong,
  .sidebar-collapsed .primary-nav a:not([aria-current]),
  .sidebar-collapsed .secondary-nav a,
  .sidebar-collapsed .collapse-menu span { font-size: initial; }
  .mobile-menu {
    display: block;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    border: 0;
    background: #fff;
  }
  .sidebar-backdrop:not([hidden]) {
    position: fixed;
    z-index: 29;
    inset: 0;
    display: block;
    width: 100%;
    height: 100dvh;
    margin: 0;
    border: 0;
    background: rgb(15 23 42 / 38%);
  }
  .topbar { padding: 0 20px; }
  #main-content { padding: 20px; }
  .ops-page-header { align-items: flex-end; }
  .site-context-header { top: 64px; }
  .worklog-layout,
  .site-detail-page .detail-columns,
  .site-detail-page .site-file-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .worklog-note { grid-column: 1 / -1; }
  .ops-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ops-site-grid,
  .site-directory-grid,
  .delivery-grid,
  .knowledge-groups,
  .work-case-grid,
  .report-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Unified application chrome: every route exposes one title and one action area. */
.site-favorite-button {
  flex: 0 0 40px;
  width: 40px;
  min-width: 40px;
  padding: 0;
  font-size: 20px;
  line-height: 1;
}
.form-card form > * { min-width: 0; }
.form-card input,
.form-card select,
.form-card textarea { width: 100%; min-width: 0; max-width: 100%; }
.topbar-page-actions .site-action-menu { margin: 0; }
.topbar-page-actions .site-action-menu > summary { min-height: 38px; }

@media (max-width: 760px) {
  .topbar {
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 4px 8px;
    min-height: 58px;
    padding: 7px max(12px, env(safe-area-inset-right)) 7px max(12px, env(safe-area-inset-left));
  }
  .topbar-page-heading { min-height: 44px; gap: 8px; }
  .topbar-page-identity > span,
  .topbar .site-context-title > div:first-child,
  .topbar .site360-badge { display: none; }
  .topbar-page-identity h1,
  .topbar .site-context-title h1 { font-size: 18px; }
  .topbar-back-link { flex-basis: 34px; width: 34px; height: 34px; }
  .topbar-page-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
    width: 100%;
    padding-top: 6px;
    overflow-x: auto;
    border-top: 1px solid var(--neutral-100);
  }
  .topbar-page-actions .page-header-actions,
  .topbar-page-actions .site-context-actions { width: 100%; justify-content: flex-end; flex-wrap: nowrap; }
  .topbar-page-actions .page-header-actions > a,
  .topbar-page-actions .site-context-actions > a { flex: 1 1 0; width: auto; min-width: 0; }
  .topbar-page-actions .primary-action,
  .topbar-page-actions .outline-action,
  .topbar-page-actions .site-action-menu > summary { min-height: 38px; }
  .dashboard-summary-body { grid-template-columns: minmax(0, 1fr); }
  .dashboard-day { border-right: 0; border-bottom: 1px solid var(--neutral-200); }
  .dashboard-priority-actions { grid-template-columns: minmax(0, 1fr); }
  .dashboard-priority-actions a { min-height: 88px; padding: 15px 18px; }
  .dashboard-priority-actions a + a { border-top: 1px solid var(--neutral-200); border-left: 0; }
  .site-context-header { position: static; margin: 0 -16px 16px; border-right: 0; border-left: 0; border-radius: 0; box-shadow: none; }
  .site-context-facts { padding: 10px 16px; }
  .site-context-header .site-tabs { margin: 0; padding: 0 8px; }
}

@media (min-width: 761px) and (max-width: 1024px) {
  .topbar {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 12px;
    min-height: 76px;
    padding: 10px 20px;
  }
  .topbar-page-actions { grid-column: 3; }
  .topbar .site-context-title > div:first-child { display: none; }
  .site-context-header { top: 76px; }
}

/* UX v2: the site overview is a handover briefing, not a metric wall. */
.site-overview-focus { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(360px, .85fr); gap: 16px; margin-bottom: 14px; }
.site-briefing-focus { overflow: hidden; border: 1px solid #b8d2f4; border-radius: 14px; background: #fff; box-shadow: 0 10px 26px rgb(18 72 140 / 9%); }
.site-briefing-focus > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 20px 22px; background: linear-gradient(120deg, #075fcf, #15458a); color: #fff; }
.site-briefing-focus > header span { display: block; color: #bcd9ff; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.site-briefing-focus > header h2 { margin: 7px 0 0; font-size: 19px; letter-spacing: -.025em; }
.site-briefing-focus > header a { color: #fff; font-size: 11px; font-weight: 700; white-space: nowrap; }
.site-briefing-body { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); }
.briefing-primary-contact { padding: 22px; border-right: 1px solid var(--neutral-200); background: var(--primary-50); }
.briefing-primary-contact small, .briefing-primary-contact strong, .briefing-primary-contact span, .briefing-primary-contact a { display: block; }
.briefing-primary-contact small { color: var(--primary-700); font-size: 10px; font-weight: 750; }
.briefing-primary-contact strong { margin-top: 8px; color: var(--neutral-950); font-size: 18px; line-height: 1.45; }
.briefing-primary-contact span { margin-top: 12px; color: var(--neutral-600); font-size: 12px; line-height: 1.55; }
.briefing-primary-contact a { margin-top: 18px; color: var(--primary-700); font-size: 11px; font-weight: 700; }
.site-briefing-body dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.site-briefing-body dl > div { min-width: 0; padding: 17px 18px; border-bottom: 1px solid var(--neutral-100); }
.site-briefing-body dl > div:nth-child(odd) { border-right: 1px solid var(--neutral-100); }
.site-briefing-body dt { color: var(--neutral-500); font-size: 9px; }
.site-briefing-body dd { overflow: hidden; margin: 6px 0 0; color: var(--neutral-950); font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.site-briefing-body dl small { display: block; overflow: hidden; margin-top: 5px; color: var(--neutral-500); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.site-briefing-focus > footer { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 18px; border-top: 1px solid var(--neutral-200); }
.site-briefing-focus > footer a { min-height: 36px; }
.site-overview-recent { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 14px; background: #fff; }
.site-overview-recent > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px; border-bottom: 1px solid var(--neutral-200); }
.site-overview-recent > header span { color: var(--primary-700); font-size: 10px; font-weight: 750; }
.site-overview-recent > header h2 { margin: 5px 0 0; font-size: 15px; }
.site-overview-recent > header a { color: var(--primary-700); font-size: 10px; white-space: nowrap; }
.site-overview-recent .activity-list { padding: 4px 14px 10px; }
.site-overview-recent .activity-row { grid-template-columns: 46px 28px minmax(0, 1fr) auto; min-height: 61px; }
.site-overview-recent .activity-kind { display: none; }
.site-overview-recent .activity-detail { min-width: 0; padding-left: 10px; }
.site-overview-recent .activity-detail strong, .site-overview-recent .activity-detail small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-overview-recent .activity-row:not(:last-child)::after { left: 59px; }
.site-overview-signals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.site-overview-signals a { min-width: 0; padding: 14px 16px; border: 1px solid var(--neutral-200); border-radius: 10px; background: #fff; color: var(--neutral-900); }
.site-overview-signals span, .site-overview-signals strong, .site-overview-signals small { display: block; }
.site-overview-signals span { color: var(--neutral-500); font-size: 10px; }
.site-overview-signals strong { margin: 6px 0 4px; color: var(--neutral-950); font-size: 17px; }
.site-overview-signals small { overflow: hidden; color: var(--neutral-500); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.site-overview-signals a:hover { border-color: var(--primary-300); box-shadow: 0 5px 16px rgb(17 24 39 / 6%); }
.site-overview-evidence { display: grid; grid-template-columns: minmax(360px, 1.25fr) minmax(290px, .88fr) minmax(290px, .88fr); gap: 14px; }
.site-overview-evidence > .site-panel { min-width: 0; min-height: 255px; }
.site-overview-evidence .photo-card { height: 94px; }

/* UX v2: field capture follows the physical work sequence. */
.field-quick-page { max-width: 1220px; margin: 0 auto; }
.field-quick-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); align-items: start; gap: 18px; }
.field-quick-form { overflow: hidden; padding: 0; border: 1px solid var(--neutral-200); border-radius: 14px; background: #fff; box-shadow: 0 10px 28px rgb(17 24 39 / 7%); }
.field-quick-form > header { padding: 23px 24px; background: linear-gradient(120deg, #075fcf, #15458a); color: #fff; }
.field-quick-form > header span { color: #bedaff; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.field-quick-form > header h2 { margin: 8px 0 5px; font-size: 22px; }
.field-quick-form > header p { margin: 0; color: rgb(255 255 255 / 75%); font-size: 11px; }
.field-quick-step { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; padding: 21px 24px; border-bottom: 1px solid var(--neutral-200); }
.field-step-number { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-600); color: #fff; font-size: 13px; font-weight: 800; }
.field-quick-step h3 { margin: 2px 0 4px; font-size: 15px; }
.field-quick-step > div:last-child > p { margin: 0 0 14px; color: var(--neutral-500); font-size: 10px; line-height: 1.5; }
.field-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.field-quick-form label { color: var(--neutral-700); font-size: 10px; font-weight: 650; }
.field-quick-form select, .field-quick-form input, .field-quick-form textarea { box-sizing: border-box; width: 100%; min-width: 0; margin-top: 5px; border-color: var(--neutral-300); color: var(--neutral-900); font-size: 12px; font-weight: 400; }
.field-capture-dropzone { min-height: 155px; display: grid; place-items: center; align-content: center; gap: 6px; padding: 18px; border: 2px dashed #8eb8ec; border-radius: 12px; background: var(--primary-50); color: var(--primary-700); text-align: center; cursor: pointer; }
.field-capture-dropzone.dragging { border-color: var(--primary-700); background: #dcecff; }
.field-capture-dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.field-capture-dropzone b { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-600); color: #fff; font-size: 23px; }
.field-capture-dropzone strong { font-size: 13px; }
.field-capture-dropzone span { color: var(--neutral-600); font-size: 10px; font-weight: 400; }
.field-gps-row { display: flex; align-items: center; gap: 10px; margin-bottom: 13px; }
.field-gps-row button { min-height: 36px; padding: 0 12px; border: 1px solid #8eb8ec; border-radius: 7px; background: var(--primary-50); color: var(--primary-700); font-size: 11px; font-weight: 700; }
.field-gps-row button:disabled { opacity: .6; }
.field-gps-row span { color: var(--neutral-500); font-size: 10px; }
.field-memo-label { margin-bottom: 10px; }
.field-quick-actions { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: flex-end; gap: 8px; padding: 14px 24px; border-top: 1px solid var(--neutral-200); background: rgb(255 255 255 / 96%); box-shadow: 0 -8px 18px rgb(17 24 39 / 5%); }
.field-quick-actions a, .field-quick-actions button { min-width: 120px; min-height: 42px; }
.field-quick-guide { display: grid; gap: 14px; }
.field-quick-guide > section, .field-incident-link { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 12px; background: #fff; }
.field-quick-guide > section:first-child { padding: 20px; border-top: 5px solid var(--primary-600); }
.field-quick-guide > section:first-child > span { color: var(--primary-700); font-size: 10px; font-weight: 750; }
.field-quick-guide h2 { margin: 7px 0 12px; font-size: 15px; }
.field-quick-guide ul { margin: 0; padding-left: 18px; color: var(--neutral-600); font-size: 10px; line-height: 1.9; }
.field-quick-guide section > header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--neutral-200); }
.field-quick-guide section > header h2 { margin: 0; }
.field-quick-guide section > header a { color: var(--primary-700); font-size: 10px; }
.field-quick-guide section > div > a { display: block; padding: 12px 16px; border-bottom: 1px solid var(--neutral-100); color: var(--neutral-900); }
.field-quick-guide section > div > a:last-child { border-bottom: 0; }
.field-quick-guide section > div strong, .field-quick-guide section > div small { display: block; }
.field-quick-guide section > div strong { font-size: 11px; }
.field-quick-guide section > div small { margin-top: 4px; color: var(--neutral-500); font-size: 9px; line-height: 1.45; }
.field-incident-link { display: block; padding: 16px; border-color: #f0c9ca; background: #fff7f7; color: #9b2c2f; }
.field-incident-link strong, .field-incident-link span { display: block; }
.field-incident-link strong { font-size: 12px; }
.field-incident-link span { margin-top: 5px; font-size: 10px; }

@media (max-width: 1100px) {
  .site-overview-focus, .site-overview-evidence, .field-quick-layout { grid-template-columns: 1fr; }
  .site-overview-evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-overview-evidence > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .site-overview-focus { gap: 10px; }
  .site-briefing-focus, .site-overview-recent { border-right: 0; border-left: 0; border-radius: 0; }
  .site-briefing-focus > header { flex-direction: column; padding: 18px 16px; }
  .site-briefing-body { grid-template-columns: 1fr; }
  .briefing-primary-contact { padding: 18px 16px; border-right: 0; border-bottom: 1px solid var(--neutral-200); }
  .site-briefing-body dl { grid-template-columns: 1fr; }
  .site-briefing-body dl > div:nth-child(odd) { border-right: 0; }
  .site-briefing-focus > footer { display: grid; grid-template-columns: 1fr; padding: 12px 16px; }
  .site-overview-signals { grid-template-columns: 1fr 1fr; gap: 8px; }
  .site-overview-evidence { grid-template-columns: 1fr; }
  .site-overview-evidence > :first-child { grid-column: auto; }
  .field-quick-page { margin: 0 -16px; }
  .field-quick-form { border-right: 0; border-left: 0; border-radius: 0; box-shadow: none; }
  .field-quick-form > header { padding: 20px 16px; }
  .field-quick-step { grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 18px 16px; }
  .field-step-number { width: 28px; height: 28px; }
  .field-choice-grid { grid-template-columns: 1fr; }
  .field-gps-row { align-items: flex-start; flex-direction: column; }
  .field-quick-form { padding-bottom: 72px; }
  .field-quick-actions { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
  .field-quick-actions a { display: none; }
  .field-quick-actions button { width: 100%; }
  .field-quick-guide { padding: 0 16px 20px; }
}

/* Information architecture v3: sites own data; cross-site screens are read/search lenses. */
.site-directory-tabs,
.global-search-tabs {
  display: flex;
  gap: 4px;
  margin: 0 0 12px;
  padding-bottom: 1px;
  overflow-x: auto;
  border-bottom: 1px solid var(--neutral-200);
}
.site-directory-tabs a,
.global-search-tabs a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border-bottom: 2px solid transparent;
  color: var(--neutral-600);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.site-directory-tabs a.active,
.global-search-tabs a.active { border-bottom-color: var(--primary-600); color: var(--primary-700); }
.handover-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.handover-directory-card { min-width: 0; padding: 18px; border: 1px solid var(--neutral-200); border-radius: 12px; background: #fff; }
.handover-directory-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.handover-directory-card header span { color: var(--primary-700); font-size: 9px; }
.handover-directory-card h2 { margin: 5px 0 0; font-size: 16px; }
.handover-directory-card header > b,
.handover-history-row > b { padding: 5px 8px; border-radius: 999px; background: #fff1d7; color: #9b6400; font-size: 9px; white-space: nowrap; }
.handover-directory-card header > b.completed,
.handover-history-row > b.completed { background: #e7f7ed; color: #147541; }
.handover-route { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin: 16px 0 10px; padding: 12px; border-radius: 8px; background: var(--neutral-50); text-align: center; font-size: 12px; font-weight: 750; }
.handover-directory-card > p { min-height: 32px; color: var(--neutral-600); font-size: 10px; line-height: 1.55; }
.handover-directory-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--neutral-100); }
.handover-directory-card > footer small { color: var(--neutral-500); font-size: 9px; }
.handover-directory-card form { margin: 0; }
.handover-detail-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); align-items: start; gap: 14px; }
.handover-package-card { grid-row: span 2; }
.handover-package-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; padding: 0; list-style: none; }
.handover-package-list li { display: grid; grid-template-columns: 24px 1fr; gap: 2px 8px; padding: 13px 16px; border-bottom: 1px solid var(--neutral-100); }
.handover-package-list li:nth-child(odd) { border-right: 1px solid var(--neutral-100); }
.handover-package-list b { grid-row: span 2; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #e7f7ed; color: #147541; font-size: 10px; }
.handover-package-list .missing b { background: #fff1d7; color: #9b6400; }
.handover-package-list span { color: var(--neutral-900); font-size: 11px; font-weight: 700; }
.handover-package-list small { color: var(--neutral-500); font-size: 9px; }
.handover-assignees { display: grid; grid-template-columns: 1fr 1fr; margin: 16px; border: 1px solid var(--neutral-200); border-radius: 8px; }
.handover-assignees > div { padding: 12px; }
.handover-assignees > div + div { border-left: 1px solid var(--neutral-200); }
.handover-assignees dt { color: var(--neutral-500); font-size: 9px; }
.handover-assignees dd { margin: 5px 0 0; color: var(--neutral-950); font-size: 12px; font-weight: 750; }
.handover-action-card form { padding: 16px; }
.handover-request-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.handover-request-form label { color: var(--neutral-600); font-size: 10px; font-weight: 650; }
.handover-request-form input { box-sizing: border-box; width: 100%; margin-top: 5px; }
.handover-request-form .handover-keep { display: flex; align-items: center; gap: 8px; grid-column: 1 / -1; }
.handover-request-form .handover-keep input { width: auto; margin: 0; }
.handover-request-form button { justify-self: end; grid-column: 1 / -1; }
.handover-history-card { grid-column: 2; }
.handover-history-row { display: grid; grid-template-columns: 78px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--neutral-100); }
.handover-history-row time,
.handover-history-row small { color: var(--neutral-500); font-size: 9px; }
.handover-history-row strong,
.handover-history-row small { display: block; }
.global-search-focus { max-width: 980px; padding: 20px; border: 1px solid #b8d2f4; border-radius: 12px; background: linear-gradient(120deg, #f4f9ff, #fff); }
.global-search-focus form > label { display: block; margin-bottom: 8px; color: var(--neutral-900); font-size: 12px; font-weight: 750; }
.global-search-focus form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.global-search-focus input[type="search"] { box-sizing: border-box; width: 100%; min-height: 42px; }
.global-search-focus > p { margin: 10px 0 0; color: var(--neutral-500); font-size: 9px; }
.global-search-tabs { margin-top: 16px; }
.global-search-results { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 12px; background: #fff; }
.global-search-results > header { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--neutral-200); }
.global-search-results h2 { margin: 0; font-size: 15px; }
.global-search-results header p { margin: 4px 0 0; color: var(--neutral-500); font-size: 9px; }
.global-result-row { display: grid; grid-template-columns: 100px minmax(0, 1.4fr) minmax(160px, .7fr) 58px; align-items: center; gap: 14px; min-height: 62px; padding: 8px 18px; border-bottom: 1px solid var(--neutral-100); color: var(--neutral-900); }
.global-result-row:hover { background: var(--primary-50); }
.global-result-kind { color: var(--primary-700); font-size: 9px; font-weight: 750; }
.global-result-row strong,
.global-result-row small { display: block; }
.global-result-row strong { font-size: 11px; }
.global-result-row small { margin-top: 3px; color: var(--neutral-500); font-size: 9px; }
.global-result-row > b { color: var(--primary-700); font-size: 9px; white-space: nowrap; }
.dashboard-scope { display: inline-flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid var(--neutral-200); border-radius: 8px; background: var(--neutral-50); }
.dashboard-scope > span { padding: 0 7px; color: var(--neutral-500); font-size: 9px; }
.dashboard-scope a { min-height: 30px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 6px; color: var(--neutral-600); font-size: 10px; font-weight: 700; }
.dashboard-scope a.active { background: #fff; color: var(--primary-700); box-shadow: 0 1px 4px rgb(17 24 39 / 9%); }
.sidebar-logout { width: 100%; min-height: 40px; display: flex; align-items: center; gap: 11px; padding: 0 14px; border: 0; background: transparent; color: var(--neutral-600); font: inherit; font-size: 11px; text-align: left; cursor: pointer; }
.sidebar-logout:hover { background: var(--neutral-50); color: var(--neutral-950); }

/* Identity gate: no central workspace is visible before password + phone TOTP succeeds. */
body.auth-mode .sidebar,
body.auth-mode .topbar,
body.auth-mode .app-footer,
body.auth-mode .sidebar-backdrop { display: none !important; }
body.auth-mode .app-shell { display: block; min-height: 100vh; background: #f3f6fa; }
body.auth-mode .workspace { min-height: 100vh; }
body.auth-mode #main-content { max-width: none; min-height: 100vh; padding: 0; }
body.auth-mode .global-message {
  position: fixed;
  top: 16px;
  right: auto;
  bottom: auto;
  left: 50%;
  z-index: 100;
  width: min(520px, calc(100% - 32px));
  height: auto;
  max-height: none;
  margin: 0;
  transform: translateX(-50%);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgb(20 36 58 / 14%);
}
.auth-screen { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; place-items: center; padding: 36px 20px 24px; }
.auth-brand { display: flex; align-items: center; gap: 11px; color: #0b315d; font-size: 16px; }
.auth-brand .brand-shield { border-color: #0962d8; color: #0962d8; }
.auth-card { align-self: center; width: min(440px, 100%); overflow: hidden; border: 1px solid #d9e0e8; border-radius: 14px; background: #fff; box-shadow: 0 18px 50px rgb(24 43 68 / 10%); }
.auth-card > header { padding: 30px 32px 20px; }
.auth-card > header > span { color: #0962d8; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.auth-card h1 { margin: 8px 0; font-size: 25px; letter-spacing: -.035em; }
.auth-card header p { margin: 0; color: #687383; line-height: 1.6; }
.auth-form { display: grid; gap: 16px; padding: 12px 32px 30px; }
.auth-form label { gap: 7px; color: #303947; font-size: 12px; font-weight: 650; }
.auth-form input { width: 100%; min-height: 44px; padding: 0 12px; border-color: #cbd4df; font-size: 14px; }
.auth-form small { color: #778292; font-weight: 400; }
.auth-form .auth-remember-device { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 8px; row-gap: 2px; color: #4c6178; font-weight: 600; }
.auth-form .auth-remember-device input { width: 16px; min-height: 16px; height: 16px; margin: 0; padding: 0; }
.auth-form .auth-remember-device small { grid-column: 2; font-size: 11px; }
.auth-form .primary-action { width: 100%; min-height: 44px; margin-top: 4px; }
.auth-form > a { color: #4c6178; text-align: center; text-decoration: none; font-size: 12px; }
.auth-form > .auth-recovery-link { margin-top: -8px; color: #0962d8; text-align: right; font-weight: 700; }
.auth-result-message { margin: 0 32px 8px; padding: 12px 14px; border: 1px solid #b9dfc8; border-radius: 8px; background: #eef9f2; color: #166534; font-size: 12px; line-height: 1.6; }
.auth-result-error { border-color: #fecaca; background: #fff1f2; color: #b42318; }
.auth-block-link { display: block; margin: 16px 32px 30px; text-align: center; text-decoration: none; }
.auth-form [data-password-match-status][data-state="match"] { color: #16803d; }
.auth-form [data-password-match-status][data-state="mismatch"] { color: #c62828; }
.auth-note { margin: 0; padding: 15px 32px; border-top: 1px solid #e3e8ee; background: #f7f9fc; color: #667385; font-size: 11px; line-height: 1.6; }
.mfa-setup { margin: 0 32px; padding: 16px; border: 1px solid #d7e5f8; border-radius: 8px; background: #f5f9ff; color: #35465b; }
.mfa-setup ol { margin: 0; padding-left: 20px; font-size: 11px; line-height: 1.8; }
.mfa-qr { display: grid; justify-items: center; gap: 8px; margin: 14px 0 0; padding: 14px; border-radius: 8px; background: #fff; text-align: center; }
.mfa-qr > span { color: #35465b; font-size: 11px; font-weight: 750; }
.mfa-qr img { display: block; width: 184px; height: 184px; border: 1px solid #e4e9ef; image-rendering: pixelated; }
.mfa-qr figcaption { color: #65758a; font-size: 10px; line-height: 1.5; }
.mfa-secret { display: grid; gap: 5px; margin-top: 12px; padding: 11px; border-radius: 6px; background: #fff; }
.mfa-secret span { color: #65758a; font-size: 10px; }
.mfa-secret-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.mfa-secret code { overflow-wrap: anywhere; color: #0759bd; font-size: 14px; font-weight: 750; letter-spacing: .08em; }
.mfa-copy-button { min-width: 64px; min-height: 40px; padding: 0 10px; border: 1px solid #b9cce4; border-radius: 6px; background: #edf5ff; color: #0759bd; font-size: 11px; font-weight: 750; }
.mfa-copy-button:hover, .mfa-copy-button:focus-visible { border-color: #0962d8; background: #e2efff; }
.mfa-copy-button[data-copied="true"] { border-color: #8fc7a5; background: #eaf8ef; color: #16713a; }
.backup-flow { display: flex; gap: 8px; margin: 16px 18px; padding: 0; list-style: none; }
.backup-flow li { display: flex; flex: 1; align-items: center; gap: 7px; padding: 9px; border-radius: 7px; background: var(--neutral-50); font-size: 11px; font-weight: 700; }
.backup-flow b { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 50%; background: var(--primary-600); color: #fff; font-size: 10px; }
.backup-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ui-border); }
.backup-list > li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--ui-border); }
.backup-list strong, .backup-list small { display: block; }
.backup-list small { margin-top: 3px; color: var(--neutral-500); font-size: 11px; }
.backup-list > li > div { display: flex; gap: 7px; }
.backup-list .outline-action { min-height: 34px; padding: 0 10px; font-size: 12px; }
.settings-tabs { display: flex; gap: 6px; margin: -4px 0 4px; overflow-x: auto; border-bottom: 1px solid var(--ui-border); }
.settings-tabs a { flex: 0 0 auto; padding: 11px 14px; border-bottom: 3px solid transparent; color: var(--neutral-500); font-size: 13px; font-weight: 700; text-decoration: none; }
.settings-tabs a.active { border-bottom-color: var(--primary-600); color: var(--primary-700); }
.account-settings, .account-password-settings { margin-top: 14px; }
.account-settings > header { align-items: center; }
.identity-account-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: 0;
}
.identity-account-summary > div { min-width: 0; padding: 15px 16px; border-top: 1px solid var(--neutral-100); }
.identity-account-summary dt { color: var(--neutral-500); font-size: 10px; }
.identity-account-summary dd { margin: 6px 0 0; overflow-wrap: anywhere; color: var(--neutral-900); font-size: 13px; font-weight: 750; }
.account-password-settings form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  padding: 16px;
}
.account-password-settings form > label:first-child { grid-column: auto; }
.account-password-settings label small { display: block; margin-top: 5px; color: var(--neutral-500); font-size: 10px; }
.account-password-settings .passkey-secure-note,
.account-password-settings .form-actions { grid-column: 1 / -1; }
.account-password-settings .passkey-secure-note { margin: 0; }
.account-password-settings .form-actions { justify-content: flex-end; padding-top: 2px; }
.account-password-settings .form-actions button { min-width: 132px; }
.account-password-settings .password-match-status {
  min-height: 16px;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 700;
}
.account-password-settings .password-match-status[data-state="match"] { color: #16713a; }
.account-password-settings .password-match-status[data-state="mismatch"] { color: #b42318; }
.account-password-settings input[aria-invalid="false"] { border-color: #78bd94; box-shadow: 0 0 0 1px rgb(22 113 58 / 8%); }
.account-password-settings input[aria-invalid="true"] { border-color: #df8b86; box-shadow: 0 0 0 1px rgb(180 35 24 / 8%); }
@media (max-width: 700px) {
  .account-settings > header { align-items: stretch; }
  .account-settings > header a { width: 100%; }
  .identity-account-summary, .account-password-settings form { grid-template-columns: 1fr; }
  .account-password-settings form > label:first-child { grid-column: auto; }
}
@media (max-width: 680px) { .backup-flow { flex-direction: column; } .backup-list > li { align-items: flex-start; flex-direction: column; } .backup-list > li > div { width: 100%; } .backup-list .outline-action { flex: 1; min-height: 44px; } }
.mfa-secret small { color: #65758a; font-size: 10px; }
.auth-screen > footer { color: #7a8593; font-size: 10px; }
@media (max-width: 480px) {
  .auth-screen { padding: 24px 14px 18px; }
  .auth-card > header, .auth-form { padding-right: 22px; padding-left: 22px; }
  .auth-result-message, .auth-block-link { margin-right: 22px; margin-left: 22px; }
  .mfa-setup { margin-right: 22px; margin-left: 22px; }
  .auth-note { padding-right: 22px; padding-left: 22px; }
}
.signed-out-screen { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--neutral-50); text-align: center; }
.signed-out-screen > div { max-width: 440px; padding: 34px; border: 1px solid var(--neutral-200); border-radius: 16px; background: #fff; box-shadow: 0 18px 45px rgb(17 24 39 / 9%); }
.signed-out-screen span { color: var(--primary-700); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.signed-out-screen h1 { margin: 10px 0; font-size: 24px; }
.signed-out-screen p { margin: 0 0 20px; color: var(--neutral-600); font-size: 12px; line-height: 1.65; }

@media (max-width: 1100px) {
  .handover-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .handover-detail-layout { grid-template-columns: 1fr; }
  .handover-package-card { grid-row: auto; }
  .handover-history-card { grid-column: auto; }
}

@media (max-width: 700px) {
  .site-directory-tabs,
  .global-search-tabs { margin-right: -16px; margin-left: -16px; padding-left: 10px; }
  .handover-directory-grid { grid-template-columns: 1fr; }
  .handover-package-list { grid-template-columns: 1fr; }
  .handover-package-list li:nth-child(odd) { border-right: 0; }
  .handover-request-form { grid-template-columns: 1fr; }
  .handover-request-form .handover-keep,
  .handover-request-form button { grid-column: auto; }
  .handover-request-form button { width: 100%; }
  .handover-history-row { grid-template-columns: 70px minmax(0, 1fr); }
  .handover-history-row > b { grid-column: 2; justify-self: start; }
  .global-search-focus { margin: 0 -16px; padding: 16px; border-right: 0; border-left: 0; border-radius: 0; }
  .global-search-focus form > div { grid-template-columns: 1fr; }
  .global-search-focus button { width: 100%; }
  .global-result-row { grid-template-columns: 76px minmax(0, 1fr); gap: 7px 10px; padding: 12px 14px; }
  .global-result-row > span:nth-child(3) { grid-column: 2; }
  .global-result-row > b { display: none; }
  .dashboard-scope > span { display: none; }
  .topbar-page-actions .dashboard-scope { flex: 1 1 auto; }
  .dashboard-scope a { flex: 1 1 0; justify-content: center; }
}

/* Keep account, logout, and collapse controls together at the true sidebar bottom. */
.secondary-nav { margin-top: auto; margin-bottom: 0; }
.collapse-menu { flex: 0 0 68px; margin-top: 0; }

/* Compact site context: title first, supporting assignment information underneath. */
.topbar .site-context-title { align-items: center; gap: 10px; }
.topbar .site-context-title > .site-title-stack {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 0;
}
.topbar .site-context-title > .site-title-stack h1 { margin: 0; }
.topbar .site-context-title .site-title-meta {
  display: block;
  max-width: min(680px, 58vw);
  margin: 0;
  overflow: hidden;
  color: var(--neutral-500);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-context-header { margin-bottom: 16px; }
.site-context-header .site-tabs { border-top: 0; }

/* Feedback is transient and must not push page content down. */
.global-message {
  position: fixed;
  z-index: 120;
  right: 24px;
  bottom: 24px;
  width: max-content;
  max-width: min(390px, calc(100vw - 32px));
  min-height: 44px;
  box-sizing: border-box;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 11px 15px;
  border: 1px solid #a8dcc0;
  border-radius: 10px;
  background: #f1fbf5;
  box-shadow: 0 12px 32px rgb(17 24 39 / 18%);
  color: #176c43;
  font-size: 12px;
  line-height: 1.45;
  cursor: pointer;
}
.global-message:not(:empty) { display: flex; animation: toast-enter .18s ease-out; }
.global-message:not(:empty)::before { content: "✓"; flex: 0 0 22px; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #d8f3e4; font-size: 11px; font-weight: 800; }
.global-message[data-state="error"] { border-color: #efb7b7; background: #fff5f5; color: #a22c2c; }
.global-message[data-state="error"]::before { content: "!"; background: #fde2e2; }
@keyframes toast-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 760px) {
  /* The title stack is also the first child; keep it visible after the compact-header rule. */
  .topbar .site-context-title > div.site-title-stack { display: grid; }
  .topbar .site-context-title .site-title-meta { max-width: calc(100vw - 126px); font-size: 9px; }
  .topbar .site-context-title .status-pill { display: none; }
  .global-message { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); left: 16px; width: auto; max-width: none; }
}

/* Site tabs are one persistent navigation bar: route changes must not move it. */
html { scrollbar-gutter: stable; }

@media (min-width: 761px) {
  .site-detail-page { margin-top: -20px; }
  .site-context-header .site-tabs {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0;
    overflow: visible;
    padding: 0;
  }
  .site-context-header .site-tabs a,
  .site-context-header .site-tabs a.active {
    box-sizing: border-box;
    min-width: 0;
    font-weight: 650;
    white-space: nowrap;
  }
}

/* Central Vault access: explicit reauthentication, one-time reveal, no list exposure. */
.vault-action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 16px; }
.vault-action-grid > form, .vault-biometric-panel { display: grid; align-content: start; gap: 10px; padding: 14px; border: 1px solid var(--neutral-200); border-radius: 8px; background: #f8fafc; }
.vault-biometric-panel > p { margin: 0; color: var(--neutral-600); font-size: 12px; line-height: 1.55; }
.secret-code-fallback { border-top: 1px solid var(--neutral-200); padding-top: 8px; }
.secret-code-fallback summary { cursor: pointer; color: var(--neutral-600); font-size: 11px; font-weight: 700; }
.secret-code-fallback form { display: grid; gap: 8px; padding-top: 10px; }
.vault-action-grid h3 { margin: 0 0 2px; font-size: 14px; }
.vault-action-grid label { display: grid; gap: 5px; color: var(--neutral-700); font-size: 11px; font-weight: 700; }
.vault-action-grid input { box-sizing: border-box; width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--neutral-300); border-radius: 6px; background: #fff; }
.vault-action-grid button { min-height: 40px; }
.vault-action-grid button:disabled { cursor: not-allowed; opacity: .5; }
.secret-once-result { min-height: 44px; box-sizing: border-box; padding: 11px; overflow-wrap: anywhere; border: 1px dashed #aab7c7; border-radius: 6px; background: #fff; color: var(--neutral-500); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.secret-once-result[data-visible="true"] { border-color: #d6a443; background: #fff9e9; color: #342300; font-size: 15px; font-weight: 800; }
.external-secret-card > p { margin: 12px 16px; color: var(--neutral-700); }
.upload-source-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.folder-picker { background: #f5f9ff; }
.artifact-view-row { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.artifact-view-row .artifact-tabs { min-width: 0; }
.artifact-view-toggle { display: inline-flex; flex: 0 0 auto; gap: 3px; padding: 3px; border: 1px solid var(--neutral-200); border-radius: 7px; background: #f8fafc; }
.artifact-view-toggle a { padding: 7px 12px; border-radius: 5px; color: var(--neutral-600); font-size: 11px; font-weight: 700; }
.artifact-view-toggle a.active { background: #fff; box-shadow: 0 1px 3px rgb(15 23 42 / 12%); color: var(--primary-700); }
.artifact-folder-browser { display: grid; gap: 12px; }
.artifact-folder { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 8px; background: #fff; }
.artifact-folder > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--neutral-100); background: #f8fafc; }
.artifact-folder > header span { color: var(--primary-600); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.artifact-folder > header h2 { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 13px; }
.artifact-folder > header > b { color: var(--neutral-500); font-size: 11px; }
.artifact-folder > div > a { display: grid; grid-template-columns: 92px minmax(160px, 1fr) minmax(180px, 1fr) 16px; align-items: center; gap: 12px; min-height: 48px; padding: 8px 14px; border-bottom: 1px solid var(--neutral-100); }
.artifact-folder > div > a:last-child { border-bottom: 0; }
.artifact-folder > div > a strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.artifact-folder > div > a small { color: var(--neutral-500); }

@media (max-width: 760px) {
  .vault-action-grid { grid-template-columns: 1fr; padding: 12px; }
  .upload-source-grid { grid-template-columns: 1fr; }
  .artifact-view-row { align-items: stretch; flex-direction: column; }
  .artifact-view-toggle { align-self: flex-end; }
  .artifact-folder > div > a { grid-template-columns: 76px minmax(0, 1fr) 14px; gap: 8px; }
  .artifact-folder > div > a small { grid-column: 2; }
  .artifact-folder > div > a i { grid-column: 3; grid-row: 1 / span 2; }
}

/* Standard inventory import: source Excel -> review -> explicit commit. */
.inventory-header-actions { display: flex; gap: 8px; align-items: center; }
.inventory-summary { display: flex; align-items: baseline; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--neutral-100); background: #f8fafc; }
.inventory-summary strong { color: var(--primary-700); font-size: 20px; }
.inventory-summary span { color: var(--neutral-800); font-weight: 700; }
.inventory-summary small { margin-left: auto; color: var(--neutral-500); }
.inventory-data-table table { min-width: 1240px; }
.inventory-status, .inventory-diff { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 999px; background: #eaf6ef; color: #17623a; font-size: 11px; font-weight: 800; }
.inventory-empty { display: grid; justify-items: center; gap: 6px; padding: 36px 16px; color: var(--neutral-600); }
.inventory-empty strong { color: var(--neutral-900); font-size: 14px; }
.inventory-import-flow { display: grid; width: 100%; min-width: 0; max-width: 100%; gap: 14px; overflow: hidden; }
.inventory-import-guide { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; background: #f8fafc; }
.inventory-import-guide ol { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); flex: 1; gap: 8px; margin: 0; padding: 0; list-style: none; }
.inventory-import-guide li { display: flex; align-items: center; gap: 8px; color: var(--neutral-700); font-size: 12px; }
.inventory-import-guide li b { flex: 0 0 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #dbeafe; color: #1558b0; }
.inventory-import-flow, .inventory-import-start, .inventory-upload-form, .inventory-upload-form > * { min-width: 0; }
.inventory-upload-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: stretch; overflow: hidden; padding: 18px; border-top: 1px solid var(--neutral-100); }
.inventory-upload-form [data-file-dropzone] { display: grid; gap: 4px; min-width: 0; min-height: 92px; box-sizing: border-box; overflow: hidden; padding: 16px; border: 1px dashed #9db6d8; border-radius: 8px; background: #f7fbff; cursor: pointer; }
.inventory-upload-form [data-file-dropzone].dragging { border-color: #0962d8; background: #eaf2ff; }
.inventory-upload-form [data-file-dropzone] input { display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; margin-top: 8px; }
.inventory-upload-form [data-file-dropzone] span, .inventory-upload-form [data-file-dropzone] small { color: var(--neutral-500); font-size: 11px; }
.site-contact-list { display: grid; gap: 0; }
.site-contact-row { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(180px, 1.4fr) auto; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--neutral-200); }
.site-contact-row:last-child { border-bottom: 0; }
.site-contact-row strong, .site-contact-row small { display: block; }
.site-contact-row small { margin-top: 4px; color: var(--neutral-500); }
.site-contact-actions { display: flex; gap: 8px; align-items: center; }
.site-contact-actions button { border: 0; background: transparent; color: #c7352f; cursor: pointer; padding: 4px; }
.site-contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.site-contact-form .full { grid-column: 1 / -1; }
.site-contact-form .checkbox-field { display: flex; align-items: center; gap: 8px; min-height: 40px; }
.site-contact-form .checkbox-field input { width: auto; min-height: auto; margin: 0; }
@media (max-width: 720px) { .site-contact-row, .site-contact-form { grid-template-columns: 1fr; } .site-contact-form .full { grid-column: auto; } }
.inventory-upload-form > button { min-width: 190px; }
.inventory-focus-toggle { white-space: nowrap; }
body.inventory-focus-open { overflow: hidden; }
.inventory-focus-mode { position: fixed !important; z-index: 900; inset: 0; display: grid; grid-template-rows: minmax(0, 1fr); width: 100vw; height: 100dvh; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: #fff; }
.inventory-focus-mode > header { position: absolute; z-index: 5; top: max(8px, env(safe-area-inset-top)); right: max(8px, env(safe-area-inset-right)); width: auto; padding: 0; border: 0; background: transparent; }
.inventory-focus-mode > header > div:first-child,
.inventory-focus-mode > header .operations-board-actions > a { display: none; }
.inventory-focus-mode > header .operations-board-actions { width: auto; }
.inventory-focus-mode > header .inventory-focus-toggle { min-height: 38px; border-color: #94a3b8; background: rgb(255 255 255 / 92%); box-shadow: 0 2px 10px rgb(15 23 42 / 16%); }
.inventory-focus-mode .inventory-data-table { height: 100%; max-height: none; overflow: auto; overscroll-behavior: contain; }
.inventory-focus-mode .inventory-data-table table { min-width: 1240px; }
.inventory-diff-counts { display: flex; flex-wrap: wrap; gap: 6px; }
.inventory-diff-counts span { padding: 6px 9px; border-radius: 6px; background: #f1f5f9; color: var(--neutral-700); font-size: 11px; }
.inventory-diff.new { background: #eaf6ef; color: #17623a; }
.inventory-diff.update { background: #fff2d8; color: #8a5500; }
.inventory-diff.unchanged { background: #eef2f7; color: #536171; }
.inventory-validation-errors, .inventory-missing { margin: 16px 18px; padding: 16px; border: 1px solid #efb7b7; border-radius: 8px; background: #fff7f7; }
.inventory-validation-errors ul, .inventory-missing ul { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.inventory-validation-errors li, .inventory-missing li { display: flex; gap: 12px; color: var(--neutral-700); }
.inventory-missing { border-color: #f0d69b; background: #fffaf0; }
.inventory-missing p { margin: 5px 0 0; color: #72511c; }
.inventory-commit-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 16px 18px; border-top: 1px solid var(--neutral-100); }

@media (max-width: 760px) {
  .inventory-import-flow { overflow-x: clip; padding-inline: 1px; }
  .inventory-header-actions { width: 100%; }
  .inventory-header-actions a { flex: 1 1 0; text-align: center; }
  .inventory-summary { align-items: center; flex-wrap: wrap; }
  .inventory-summary small { flex-basis: 100%; margin-left: 0; }
  .inventory-import-guide { align-items: stretch; flex-direction: column; }
  .inventory-import-guide > a { box-sizing: border-box; width: 100%; max-width: 100%; white-space: normal; overflow-wrap: anywhere; text-align: center; }
  .inventory-import-guide ol { grid-template-columns: 1fr 1fr; }
  .inventory-upload-form { grid-template-columns: minmax(0, 1fr); overflow: visible; padding: 14px; }
  .inventory-upload-form > button { width: 100%; min-width: 0; min-height: 48px; }
  .inventory-upload-form [data-file-dropzone] { padding: 14px; }
  .inventory-upload-form [data-file-dropzone] input[type="file"] { display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; overflow: hidden; color: transparent; font-size: 0; line-height: 1; }
  .inventory-upload-form [data-file-dropzone] input[type="file"]::file-selector-button { box-sizing: border-box; max-width: 100%; margin: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: 7px; background: var(--surface); color: var(--text); font: inherit; font-size: 13px; font-weight: 700; white-space: normal; }
  .inventory-upload-form [data-file-summary] { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
  .inventory-import-start, .inventory-import-review, .inventory-import-review > .responsive-table { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; }
  .inventory-import-review > .responsive-table { overflow-x: auto; }
  .inventory-import-guide ol { grid-template-columns: minmax(0, 1fr); }
  .inventory-diff-counts { width: 100%; }
  .inventory-commit-actions { position: sticky; bottom: 0; background: #fff; }
  .inventory-commit-actions > * { flex: 1 1 0; }
}

@media (max-width: 760px) {
  html { scrollbar-gutter: auto; }
  .site-detail-page { margin-top: 0; }
  .site-context-header .site-tabs {
    display: flex;
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    touch-action: pan-y;
    overscroll-behavior-x: contain;
  }
  .site-context-header .site-tabs a,
  .site-context-header .site-tabs a.active {
    flex: 0 0 104px;
    min-width: 104px;
    font-weight: 650;
  }
}

.artifact-preview-image { cursor: zoom-in; touch-action: manipulation; }
.auth-method-divider { display: flex; align-items: center; gap: 10px; color: var(--neutral-400); font-size: 11px; text-align: center; }
.auth-method-divider::before, .auth-method-divider::after { content: ""; height: 1px; flex: 1; background: var(--neutral-200); }
.passkey-action { width: 100%; min-height: 46px; }
.passkey-settings > header { align-items: center; }
.passkey-settings > ul { margin: 0; padding: 0; list-style: none; }
.passkey-settings > ul > li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 10px 16px; border-top: 1px solid var(--neutral-100); }
.passkey-settings li span, .passkey-settings li small { display: block; }
.passkey-settings li small, .passkey-secure-note { color: var(--neutral-500); font-size: 11px; }
.passkey-secure-note { margin: 0; padding: 12px 16px; border-top: 1px solid var(--neutral-100); background: #f8fafc; }

@media (max-width: 760px) {
  .artifact-detail-page { min-width: 0; overflow: hidden; }
  .artifact-detail-page > .detail-facts,
  .artifact-detail-page > .detail-columns,
  .artifact-detail-page > .artifact-link-panel,
  .artifact-detail-page > .detail-card:last-child { display: none; }
  .artifact-detail-page .file-preview,
  .artifact-detail-page .document-preview,
  .artifact-detail-page .spreadsheet-preview { width: 100%; min-width: 0; max-width: 100%; margin-bottom: 0; box-sizing: border-box; }
  .artifact-detail-page .file-preview img { width: 100%; max-height: calc(100dvh - 225px); object-fit: contain; }
  .artifact-detail-page .file-preview iframe { height: calc(100dvh - 225px); min-height: 480px; }
  .artifact-detail-page .spreadsheet-table,
  .artifact-detail-page .document-preview-pages { max-height: calc(100dvh - 245px); overflow: auto; overscroll-behavior: contain; }
  .passkey-settings > header { align-items: stretch; }
  .passkey-settings > header button { width: 100%; }
  .artifact-detail-page .spreadsheet-preview > header { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 10px; padding: 12px 14px; }
  .artifact-detail-page .spreadsheet-preview > header h2 { font-size: 18px; }
  .artifact-detail-page .spreadsheet-preview > header p { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .spreadsheet-preview-actions { width: 100%; align-items: stretch; justify-content: stretch; }
  .spreadsheet-preview-actions label { min-width: 0; flex: 1 1 auto; }
  .spreadsheet-preview-actions select { width: 100%; max-width: none; }
  .spreadsheet-focus-toggle { flex: 0 0 auto; }
  .artifact-detail-page .spreadsheet-table :is(th, td):first-child { position: sticky; z-index: 2; left: 0; background: #fff; box-shadow: 1px 0 0 var(--neutral-200); }
  .artifact-detail-page .spreadsheet-table th { position: sticky; z-index: 3; top: 0; }
  .artifact-detail-page .spreadsheet-table th:first-child { z-index: 4; background: var(--neutral-50); }
  .spreadsheet-focus-mode > header { display: flex; grid-template-columns: none; }
  .spreadsheet-focus-mode > header h2 { font-size: 16px; }
  .spreadsheet-focus-mode .spreadsheet-preview-actions { display: flex; width: auto; }
}
.account-metadata-table td small {
  display: block;
  margin-top: 3px;
  color: var(--muted, #69717d);
  white-space: nowrap;
}

.detail-facts > div small {
  display: block;
  margin-top: 3px;
  color: var(--muted, #69717d);
  font-size: 11px;
}

.document-preview { min-width: 0; max-width: 100%; overflow: hidden; }
.document-preview > header { min-width: 0; align-items: center; }
.document-preview-note { padding: 10px 14px; border-top: 1px solid var(--neutral-100); border-bottom: 1px solid var(--neutral-100); background: #f6f9fd; color: var(--neutral-600); font-size: 12px; }
.document-preview-pages { display: grid; gap: 18px; max-height: 760px; overflow: auto; padding: 20px; background: #eef1f5; }
.document-preview-pages.slides { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.document-preview-section { overflow: hidden; border: 1px solid #d9dfe7; border-radius: 7px; background: #fff; box-shadow: 0 4px 12px rgb(31 43 58 / 8%); }
.document-preview-section > header { display: flex; align-items: baseline; gap: 10px; min-height: 42px; padding: 10px 14px; border-bottom: 1px solid #e5e9ef; background: #f8fafc; }
.document-preview-section > header span { flex: 0 0 auto; color: #667383; font-size: 11px; }
.document-preview-section > header strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.document-preview-section > div { min-height: 180px; padding: 22px 26px; }
.document-preview-section.page > div { min-height: 360px; }
.document-preview-section p { margin: 0 0 10px; color: #26313e; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.document-preview-empty { padding: 34px 20px; text-align: center; }
.document-preview-empty strong { display: block; margin-bottom: 7px; }
.document-preview-empty p { margin: 0; color: var(--neutral-500); }
.hwp-preview-image-wrap { display: grid; place-items: center; padding: 18px; background: #eef1f5; border-bottom: 1px solid #d9dfe7; }
.hwp-preview-image-wrap img { display: block; max-width: 100%; max-height: 720px; background: #fff; box-shadow: 0 4px 16px rgb(31 43 58 / 12%); }
.document-viewer-actions { display: flex; align-items: center; gap: 7px; }
.document-viewer-actions output { min-width: 48px; color: var(--neutral-700); font-size: 12px; font-weight: 800; text-align: center; }
.document-viewer-actions .outline-action { min-width: 38px; min-height: 38px; padding: 8px 11px; }
.document-viewer-actions .document-expand-button { min-width: 86px; }
.document-pdf-viewer { width: 100%; max-width: 100%; min-width: 0; height: min(76vh, 920px); min-height: 620px; overflow: auto; box-sizing: border-box; padding: 18px; background: #3b4149; contain: layout paint; overscroll-behavior: contain; }
.document-pdf-viewer iframe { display: block; width: 100%; height: 100%; border: 0; background: #3b4149; }
.document-pdf-pages { display: grid; gap: 18px; width: min(100%, 1120px); max-width: 1120px; margin-inline: auto; }
.document-pdf-page { position: relative; width: 100%; margin: 0; background: #fff; box-shadow: 0 5px 22px rgb(0 0 0 / 24%); }
.document-pdf-page img { display: block; width: 100%; height: auto; }
.document-pdf-page figcaption { position: absolute; right: 10px; bottom: 10px; padding: 4px 8px; border-radius: 999px; background: rgb(15 23 42 / 78%); color: #fff; font-size: 11px; font-weight: 800; }
.document-rhwp-viewer { position: relative; }
.document-rhwp-pages { gap: 22px; }
.document-rhwp-page { position: relative; width: 100%; min-height: min(72vh, 820px); overflow: hidden; background: #fff; box-shadow: 0 5px 22px rgb(0 0 0 / 24%); transition: opacity 120ms ease; }
.document-rhwp-page.is-rendering { cursor: progress; opacity: .72; }
.document-rhwp-page svg { display: block; width: 100%; height: auto; max-width: none; background: #fff; }
.document-rhwp-page-placeholder { display: grid; min-height: min(72vh, 820px); place-items: center; color: #64748b; background: linear-gradient(110deg, #fff 30%, #f3f6fa 45%, #fff 60%); background-size: 220% 100%; font-size: 12px; font-weight: 700; animation: document-page-loading 1.4s ease-in-out infinite; }
.document-rhwp-page-number { position: absolute; right: 10px; bottom: 10px; z-index: 1; padding: 4px 8px; border-radius: 999px; background: rgb(15 23 42 / 78%); color: #fff; font-size: 11px; font-weight: 800; }
@keyframes document-page-loading { from { background-position: 100% 0; } to { background-position: -100% 0; } }
.document-render-status { padding: 48px 24px; border-radius: 8px; color: #475569; background: #fff; text-align: center; font-weight: 700; }
.document-action-separator { width: 1px; height: 24px; background: #d7dee8; }
.document-viewer-actions output[data-document-page-status] { min-width: 58px; text-align: center; font-variant-numeric: tabular-nums; }
.document-preview.document-preview-expanded { position: fixed; inset: 12px; z-index: 1200; display: flex; flex-direction: column; margin: 0; background: #fff; box-shadow: 0 24px 80px rgb(15 23 42 / 35%); }
.document-preview.document-preview-expanded .document-pdf-viewer { flex: 1; height: auto; min-height: 0; }
body.document-preview-open { overflow: hidden; }

.archive-preview > header { align-items: center; }
.archive-preview-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--neutral-100); border-bottom: 1px solid var(--neutral-100); background: #f8fafc; }
.archive-preview-summary > div { display: grid; gap: 3px; padding: 12px 16px; border-right: 1px solid var(--neutral-100); }
.archive-preview-summary > div:last-child { border-right: 0; }
.archive-preview-summary span { color: var(--neutral-500); font-size: 10px; }
.archive-preview-summary strong { color: var(--neutral-900); font-size: 14px; }
.archive-warning { margin: 12px 14px 0; padding: 10px 12px; border: 1px solid #f0d69b; border-radius: 6px; background: #fffaf0; color: #72511c; font-size: 11px; }
.archive-entry-table { max-height: 620px; overflow: auto; }
.archive-entry-table table { min-width: 760px; }
.archive-entry-table th:nth-child(1) { width: 55%; }
.archive-entry-table th:nth-child(2) { width: 8%; }
.archive-entry-table th:nth-child(3), .archive-entry-table th:nth-child(4) { width: 12%; }
.archive-path { color: #26313e; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
.archive-state { display: inline-flex; padding: 3px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.archive-state.encrypted { background: #eef2f7; color: #455466; }
.archive-state.suspicious { background: #fff0e5; color: #9a4215; }

/* Site-scoped file workspace: preserve folders, then connect originals to work records. */
.site-library-workspace { display: grid; gap: 14px; }
.site-library-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border: 1px solid var(--neutral-200); border-radius: 9px; background: #fff; }
.site-library-heading > div:first-child > span { color: var(--primary-600); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.site-library-heading h2 { margin: 3px 0 4px; font-size: 20px; }
.site-library-heading p { margin: 0; color: var(--neutral-600); font-size: 12px; }
.site-library-heading > div:last-child { display: flex; flex: 0 0 auto; gap: 8px; }
.site-library-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--neutral-200); border-radius: 9px; overflow: hidden; background: #fff; }
.site-library-stats > div { display: grid; gap: 4px; padding: 13px 16px; border-right: 1px solid var(--neutral-100); }
.site-library-stats > div:last-child { border-right: 0; }
.site-library-stats span { color: var(--neutral-500); font-size: 10px; }
.site-library-stats strong { font-size: 17px; }
.site-library-types { display: flex; gap: 5px; overflow-x: auto; padding-bottom: 2px; }
.site-library-types a { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 6px; min-height: 34px; padding: 0 11px; border: 1px solid var(--neutral-200); border-radius: 6px; background: #fff; color: var(--neutral-700); font-size: 11px; font-weight: 700; }
.site-library-types a.active { border-color: var(--primary-600); background: var(--primary-600); color: #fff; }
.site-library-types small { opacity: .72; }
.site-library-toolbar { display: flex; align-items: end; gap: 10px; padding: 12px 14px; border: 1px solid var(--neutral-200); border-radius: 8px; background: #fff; }
.site-library-toolbar form { display: flex; align-items: end; flex: 1; gap: 8px; }
.site-library-toolbar label { display: grid; flex: 1; gap: 4px; color: var(--neutral-600); font-size: 10px; font-weight: 700; }
.site-library-toolbar input { box-sizing: border-box; width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid var(--neutral-300); border-radius: 6px; }
.site-library-toolbar nav { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--neutral-200); border-radius: 6px; background: #f8fafc; }
.site-library-toolbar nav a { padding: 6px 10px; border-radius: 4px; color: var(--neutral-600); font-size: 11px; font-weight: 700; }
.site-library-toolbar nav a.active { background: #fff; box-shadow: 0 1px 3px rgb(15 23 42 / 12%); color: var(--primary-700); }
.site-library-toolbar > span { color: var(--neutral-500); font-size: 11px; white-space: nowrap; }
.site-library-results { display: grid; gap: 10px; }
.site-folder-group { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 8px; background: #fff; }
.site-folder-group > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--neutral-100); background: #f8fafc; }
.site-folder-group > header span { color: var(--primary-600); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.site-folder-group > header h3 { margin: 2px 0 0; font-size: 13px; overflow-wrap: anywhere; }
.site-folder-group > header b { color: var(--neutral-500); font-size: 11px; }
.site-library-results.list { overflow: hidden; border: 1px solid var(--neutral-200); border-radius: 8px; background: #fff; }
.site-file-row { display: grid; grid-template-columns: 100px minmax(220px, 1.4fr) minmax(180px, 1fr) 110px 12px; align-items: center; gap: 12px; min-height: 54px; padding: 8px 14px; border-bottom: 1px solid var(--neutral-100); }
.site-file-row:last-child { border-bottom: 0; }
.site-file-row > div { display: grid; gap: 3px; min-width: 0; }
.site-file-row strong, .site-file-row small, .site-file-folder { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-file-row small, .site-file-folder { color: var(--neutral-500); font-size: 10px; }
.site-file-row > b { color: var(--primary-700); font-size: 10px; text-align: right; }
.artifact-link-panel > header > b { color: var(--primary-700); }
.artifact-link-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); }
.artifact-link-list { border-right: 1px solid var(--neutral-100); }
.artifact-link-row { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 54px; padding: 8px 14px; border-bottom: 1px solid var(--neutral-100); }
.artifact-link-row > span { color: var(--primary-700); font-size: 10px; font-weight: 800; }
.artifact-link-row > div { display: grid; gap: 3px; min-width: 0; }
.artifact-link-row small { color: var(--neutral-500); font-size: 10px; }
.artifact-link-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-content: start; padding: 14px; background: #f8fafc; }
.artifact-link-form label { display: grid; gap: 4px; color: var(--neutral-600); font-size: 10px; font-weight: 700; }
.artifact-link-form input, .artifact-link-form select { box-sizing: border-box; width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--neutral-300); border-radius: 6px; background: #fff; }
.artifact-link-form button { grid-column: 1 / -1; min-height: 40px; }
.artifact-link-form .artifact-link-target-field { grid-column: 1 / -1; }
.artifact-link-form label[hidden] { display: none; }

/* Administrator identity management */
[hidden] { display: none !important; }
.admin-users-page { display: grid; gap: 14px; }
.admin-user-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.admin-user-metrics article { display: grid; gap: 7px; min-height: 82px; padding: 15px 17px; border: 1px solid var(--neutral-200); border-radius: 8px; background: #fff; }
.admin-user-metrics span { color: var(--neutral-500); font-size: 11px; }
.admin-user-metrics strong { color: var(--neutral-900); font-size: 22px; }
.admin-invite-card > form { display: grid; grid-template-columns: minmax(180px, .65fr) minmax(260px, 1fr) auto; align-items: end; gap: 10px; padding: 16px; }
.admin-invite-card > form label { display: grid; gap: 6px; color: var(--neutral-700); font-size: 11px; font-weight: 700; }
.admin-invite-card > form input { width: 100%; min-height: 40px; }
.admin-invite-card > form button { min-height: 40px; }
.admin-invite-card > form .admin-invite-delivery {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--neutral-200);
  border-radius: 7px;
  background: var(--neutral-50);
}
.admin-invite-card > form .admin-invite-delivery input {
  flex: 0 0 auto;
  width: 16px;
  min-height: 16px;
  height: 16px;
  margin: 0;
}
.admin-invite-card > form .admin-invite-delivery span { color: var(--neutral-600); font-weight: 650; }
.invitation-issued { display: grid; gap: 10px; margin: 0 16px 16px; padding: 14px; border: 1px solid #a9cdf8; border-radius: 7px; background: #f0f7ff; }
.invitation-issued.mail-sent { border-color: #9ed5b5; background: #f1fbf5; }
.invitation-issued > div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.invitation-issued > div:first-child span, .invitation-issued small { color: var(--neutral-600); font-size: 11px; }
.invitation-issued > div:nth-child(2) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.invitation-issued input { width: 100%; min-height: 39px; background: #fff; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px; }
.admin-users-page table td strong, .admin-users-page table td small { display: block; }
.admin-users-page table td small { margin-top: 3px; color: var(--neutral-500); }
.admin-users-page .table-actions { width: 118px; text-align: right; }
.admin-users-page .table-actions form { margin: 0; }
.admin-users-page .table-actions span { color: var(--neutral-500); font-size: 11px; }
.danger-action { border-color: #efc5c5 !important; color: #b42318 !important; }
.status-pill.neutral { background: var(--neutral-100); color: var(--neutral-600); }

@media (max-width: 900px) {
  .admin-user-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-invite-card > form { grid-template-columns: 1fr 1fr; }
  .admin-invite-card > form button { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .admin-user-metrics { grid-template-columns: 1fr 1fr; }
  .admin-user-metrics article { min-height: 70px; padding: 12px; }
  .admin-user-metrics strong { font-size: 18px; }
  .admin-invite-card > form { grid-template-columns: 1fr; padding: 13px; }
  .admin-invite-card > form button { grid-column: auto; width: 100%; }
  .invitation-issued { margin: 0 13px 13px; }
  .invitation-issued > div:first-child { display: grid; }
  .invitation-issued > div:nth-child(2) { grid-template-columns: 1fr; }
  .invitation-issued button { width: 100%; }
}
.artifact-link-target-filters { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(160px, 1.5fr) repeat(2, minmax(120px, .75fr)); gap: 8px; align-items: end; }
.artifact-link-target-filters > label { min-width: 0; }
.artifact-link-target-count { grid-column: 1 / -1; color: var(--neutral-500); font-size: 10px; }
.duplicate-policy-field { display: grid; grid-column: 1 / -1; gap: 6px; }
.duplicate-policy-copy { display: grid; gap: 3px; }
.duplicate-policy-copy strong { color: var(--neutral-800); font-size: 11px; }
.duplicate-policy-copy small { color: var(--neutral-500); font-size: 10px; font-weight: 400; }
.field-quick-step .duplicate-policy-field {
  grid-template-columns: minmax(0, 1fr) minmax(280px, .85fr);
  align-items: center;
  gap: 8px 14px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid var(--neutral-200);
  border-radius: 9px;
  background: var(--neutral-50);
}
.field-quick-step .duplicate-policy-field select { margin-top: 0; }
.artifact-version-upload-notice, .duplicate-upload-review { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; color: #1e3a5f; }
.duplicate-upload-review { border-color: #fed7aa; background: #fff7ed; color: #7c2d12; }
.duplicate-upload-review a { width: max-content; margin-top: 4px; font-weight: 800; }
.artifact-version-row { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 54px; padding: 8px 14px; border-top: 1px solid var(--neutral-100); color: inherit; text-decoration: none; }
.artifact-version-row > span { display: grid; gap: 3px; min-width: 0; }
.artifact-version-row time, .artifact-version-row small { color: var(--neutral-500); font-size: 10px; }
.artifact-version-row:hover { background: #f8fafc; }
.text-action { padding: 4px 6px; border: 0; background: transparent; color: var(--neutral-500); font-size: 10px; cursor: pointer; }
.text-action:hover { color: #a22c2c; }

@media (max-width: 700px) {
  .field-quick-step .duplicate-policy-field { grid-template-columns: 1fr; }
}

.service-relationship-card { margin-bottom: 14px; border-color: #f0d08a; background: #fffdf7; }
.service-relationship-card > header { border-bottom: 0; }
.service-relationship-card > header span { color: #9a6500; font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.service-relationship-card > header h2 { margin: 5px 0; font-size: 17px; }
.service-relationship-card form { display: grid; grid-template-columns: 180px 150px 160px minmax(240px, 1fr) auto; align-items: end; gap: 10px; padding: 0 18px 18px; }
.service-relationship-card label { display: grid; gap: 5px; color: var(--neutral-600); font-size: 10px; font-weight: 700; }
.service-relationship-card input, .service-relationship-card select { min-height: 38px; }
.service-transition-history { margin: 0 18px 18px; border-top: 1px solid var(--neutral-200); padding-top: 12px; }
.service-transition-history summary { cursor: pointer; color: var(--primary-700); font-weight: 750; }
.site-delete-panel { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0 18px 18px; padding: 13px 0 0; border-top: 1px solid var(--neutral-200); }
.site-delete-panel > div { display: grid; gap: 3px; }
.site-delete-panel strong { color: #b42318; font-size: 12px; }
.site-delete-panel span { color: var(--neutral-500); font-size: 11px; line-height: 1.45; }
.danger-action { min-height: 38px; padding: 0 12px; border: 1px solid #f3b4ae; border-radius: 7px; background: #fff; color: #b42318; font-size: 12px; font-weight: 700; white-space: nowrap; }
.danger-action:hover { background: #fff2f0; }
.site-card-header-actions { display: inline-flex; align-items: flex-start; gap: 6px; }
.site-action-menu > div button { display: block; width: 100%; padding: 9px 12px; border: 0; background: transparent; color: var(--neutral-700); font: inherit; font-size: 12px; font-weight: 650; text-align: left; cursor: pointer; }
.site-action-menu > div button:hover { background: var(--primary-50); color: var(--primary-700); }
.site-action-menu > div .danger-menu-action { color: #b42318; }
.site-action-menu > div .danger-menu-action:hover { background: #fff2f0; color: #9f1d17; }
.site-card-action-menu > summary { width: 30px; min-width: 30px; min-height: 30px; height: 30px; padding: 0; border-radius: 6px; font-size: 19px; line-height: 26px; text-align: center; }
.site-card-action-menu > div { top: 34px; right: 0; min-width: 180px; }
.service-transition-history ol { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.service-transition-history li { display: grid; grid-template-columns: 210px 220px 1fr; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 8px; background: var(--neutral-50); }
.service-transition-history li span, .service-transition-history li small { color: var(--neutral-600); }
.service-type-badge { display: inline-flex; align-items: center; width: max-content; min-height: 24px; padding: 3px 9px; border-radius: 999px; background: #e8f1ff; color: #075fc7; font-size: 11px; font-weight: 800; line-height: 1; }
.service-type-badge.one-off { background: #fff1dc; color: #9b5b00; }
.service-type-badge.per-call { background: #f0eaff; color: #6840a4; }
.service-type-badge.ended { background: #eceff3; color: #596575; }
.site-card-badges { display: flex; gap: 6px; margin-top: 8px; }
.site-service-filters, .dashboard-service-filter { display: flex; align-items: center; gap: 6px; overflow-x: auto; scrollbar-width: thin; }
.site-service-filters { margin: 0 0 12px; }
.site-service-filters a, .dashboard-service-filter a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 7px 13px; border: 1px solid var(--neutral-200); border-radius: 8px; background: #fff; color: var(--neutral-700); font-weight: 700; white-space: nowrap; }
.site-service-filters a.active, .dashboard-service-filter a.active { border-color: var(--primary-600); background: var(--primary-600); color: #fff; }
.dashboard-service-filter { margin: 0 0 14px; }
.dashboard-service-filter small { min-width: 20px; padding: 2px 6px; border-radius: 999px; background: rgba(0, 0, 0, .06); text-align: center; }
.dashboard-service-filter a.active small { background: rgba(255, 255, 255, .2); }
.dashboard-result-badges { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.dashboard-result-badges > i { color: var(--neutral-600); font-size: 10px; font-style: normal; font-weight: 750; }
.form-help { margin: -2px 0 4px; padding: 10px 12px; border-radius: 8px; background: var(--primary-50); color: var(--neutral-600); font-size: 11px; line-height: 1.5; }
.form-help a { color: var(--primary-700); font-weight: 700; }

.app-modal-backdrop {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgb(15 23 42 / 38%);
}
.app-modal {
  width: min(100%, 480px);
  overflow: hidden;
  border: 1px solid var(--neutral-200);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 60px rgb(15 23 42 / 24%);
}
.app-modal header { padding: 22px 24px 12px; }
.app-modal .eyebrow { margin: 0 0 6px; color: var(--primary-700); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.app-modal h2 { margin: 0; color: var(--neutral-950); font-size: 20px; line-height: 1.3; }
.app-modal-body { display: grid; gap: 10px; padding: 4px 24px 22px; color: var(--neutral-700); font-size: 14px; line-height: 1.55; }
.app-modal-body p { margin: 0; }
.app-modal-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 24px; border-top: 1px solid var(--neutral-100); background: var(--neutral-50); }
.app-modal-actions button { min-width: 88px; }

@media (max-width: 760px) {
  .service-relationship-card form { grid-template-columns: 1fr; }
  .service-transition-history li { grid-template-columns: 1fr; gap: 3px; }
  .document-preview-pages { max-height: none; padding: 10px; }
  .document-preview-pages.slides { grid-template-columns: 1fr; }
  .document-preview-section > div, .document-preview-section.page > div { min-height: 0; padding: 16px; }
  .pdf-preview iframe { height: calc(100dvh - 190px); min-height: 520px; }
  .hwp-preview-image-wrap { padding: 8px; }
  .hwp-preview-image-wrap img { width: 100%; max-height: calc(100dvh - 240px); object-fit: contain; }
  .document-preview > header { align-items: flex-start; gap: 10px; }
  .document-viewer-actions { flex-wrap: wrap; justify-content: flex-end; }
  .document-pdf-viewer { height: calc(100dvh - 220px); min-height: 520px; padding: 6px; }
  .document-pdf-pages { gap: 8px; }
  .document-preview.document-preview-expanded { inset: 0; border: 0; border-radius: 0; }
  .archive-preview-summary { grid-template-columns: 1fr 1fr; }
  .archive-preview-summary > div:nth-child(2) { border-right: 0; }
  .archive-preview-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--neutral-100); }
  .archive-entry-table { max-height: none; }
  .site-library-heading { align-items: stretch; flex-direction: column; }
  .site-library-heading > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .site-library-stats { grid-template-columns: repeat(3, minmax(90px, 1fr)); overflow-x: auto; }
  .site-library-toolbar { align-items: stretch; flex-wrap: wrap; }
  .site-library-toolbar form { flex-basis: 100%; }
  .site-library-toolbar nav { margin-left: auto; }
  .site-file-row { grid-template-columns: 76px minmax(0, 1fr) 12px; gap: 8px; }
  .site-file-row .site-file-folder { grid-column: 2; }
  .site-file-row > b { grid-column: 2; text-align: left; }
  .site-file-row > i { grid-column: 3; grid-row: 1 / span 3; }
  .artifact-link-layout { grid-template-columns: 1fr; }
  .artifact-link-list { border-right: 0; border-bottom: 1px solid var(--neutral-100); }
  .artifact-link-form { grid-template-columns: 1fr; }
  .artifact-link-form button { grid-column: 1; }
  .artifact-link-target-filters { grid-column: 1; grid-template-columns: 1fr; }
  .artifact-link-target-count { grid-column: 1; }
  .artifact-version-row { grid-template-columns: 76px minmax(0, 1fr); }
  .app-modal-backdrop { align-items: end; padding: 12px; }
  .app-modal { border-radius: 12px; }
  .app-modal header { padding: 20px 18px 10px; }
  .app-modal-body { padding: 4px 18px 20px; }
  .app-modal-actions { padding: 12px 18px; }
  .app-modal-actions button { flex: 1; }
}
