:root {
  color-scheme:light;
  --text:#202124;
  --muted:#5f6368;
  --line:#dadce0;
  --brand:#185abc;
  font-family:Arial,"Segoe UI",sans-serif;
  font-size:16px;
  background:#fff;
  color:var(--text)
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
a {
  color:var(--brand);
  text-decoration:none
}
a:hover {
  text-decoration:underline
}
button,input,textarea {
  font:inherit
}
button,a,input,summary {
  touch-action:manipulation
}
button,summary {
  cursor:pointer
}
button:disabled {
  cursor:wait;
  opacity:.65
}
:focus-visible {
  outline:3px solid #185abc;
  outline-offset:3px
}
[hidden],.hidden {
  display:none!important
}
.site-header {
  position:sticky;
  top:0;
  z-index:10;
  display:flex;
  align-items:center;
  gap:32px;
  padding:16px max(24px,calc((100vw - 1120px)/2));
  background:#fff;
  border-bottom:1px solid var(--line)
}
.brand {
  font-size:18px;
  font-weight:600;
  color:var(--text);
  white-space:nowrap
}
.site-header .search-form {
  width:min(700px,100%)
}
.page-shell {
  width:min(820px,calc(100% - 40px));
  margin:0 auto;
  padding:32px 0 64px
}
footer {
  padding:24px;
  text-align:center;
  color:var(--muted);
  font-size:13px
}
.landing {
  min-height:65vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding-bottom:10vh
}
.landing h1 {
  font-size:32px;
  font-weight:500;
  letter-spacing:-1px;
  margin:0 0 28px
}
.landing .search-form {
  width:min(640px,100%)
}
.search-form-row {
  display:flex;
  gap:12px;
  align-items:center
}
.search-combobox {
  position:relative;
  flex:1;
  min-width:0
}
.search-input {
  width:100%;
  height:48px;
  border:1px solid var(--line);
  border-radius:24px;
  padding:0 44px 0 20px;
  color:var(--text);
  background:#fff
}
.search-input:hover,.search-input:focus {
  border-color:#aab0b8
}
.search-input::-webkit-search-cancel-button {
  display:none
}
.clear-search {
  position:absolute;
  right:12px;
  top:9px;
  border:0;
  background:none;
  color:var(--muted);
  font-size:24px;
  width:30px;
  height:30px
}
.primary-button,.ghost-button {
  display:inline-block;
  border:1px solid var(--line);
  border-radius:5px;
  background:#f8f9fa;
  padding:11px 18px;
  color:var(--text);
  font-size:14px;
  cursor:pointer
}
.primary-button:hover,.ghost-button:hover {
  background:#eef1f4;
  text-decoration:none
}
.search-suggestions {
  position:absolute;
  top:calc(100% + 5px);
  left:0;
  right:0;
  margin:0;
  padding:6px 0;
  list-style:none;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:0 4px 12px #20212416;
  max-height:380px;
  overflow:auto;
  z-index:20
}
.search-suggestions li {
  padding:10px 16px;
  cursor:pointer
}
.search-suggestions li:hover,.search-suggestions li[aria-selected=true] {
  background:#eef3fb
}
.search-suggestions strong,.search-suggestions span {
  display:block;
  font-size:14px;
  overflow-wrap:anywhere
}
.search-suggestions span {
  color:var(--muted);
  font-size:12px;
  margin-top:3px
}
.status-text,.helper-text,.result-meta {
  color:var(--muted);
  font-size:13px;
  line-height:1.5
}
.status-text:empty,.copy-status:empty {
  display:none
}
.search-form .status-text {
  margin:6px 14px 0
}
.result-row {
  padding:22px 0;
  border-bottom:1px solid #eceff1
}
.result-row h2 {
  font-size:20px;
  font-weight:400;
  margin:6px 0 8px;
  line-height:1.35
}
.result-row p {
  font-size:14px;
  line-height:1.6;
  margin:8px 0;
  color:#45494e
}
.result-id {
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--muted)
}
.pagination {
  padding:24px 0;
  font-size:13px;
  color:var(--muted)
}
.detail-header {
  padding-bottom:24px
}
.detail-header h1 {
  font-size:27px;
  line-height:1.3;
  letter-spacing:-.5px;
  font-weight:500;
  margin:10px 0
}
.detail-grid {
  display:block
}
.card,.detail-section {
  border-top:1px solid var(--line);
  padding:24px 0
}
.card h2 {
  font-size:20px;
  margin:0 0 12px;
  font-weight:600
}
.card h3 {
  font-size:14px;
  margin:22px 0 8px
}
.card p {
  line-height:1.6;
  font-size:14px
}
.decision {
  font-size:17px!important
}
.inline-meta,.result-meta,.tag-list {
  display:flex;
  flex-wrap:wrap;
  gap:10px
}
.pill,.tag {
  font-size:12px;
  display:inline-block;
  padding:4px 8px;
  background:#f1f3f4;
  border-radius:3px;
  color:#45494e
}
.pill.warn {
  background:#fff4d6;
  color:#785300
}
.pill.danger,.error-text {
  color:#a52714
}
.error-text,.notice {
  padding:12px;
  border-left:3px solid #b06000;
  background:#fff8ed;
  font-size:14px;
  line-height:1.5
}
.data-row {
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:20px;
  padding:9px 0;
  font-size:14px;
  line-height:1.6
}
.data-label {
  color:var(--muted)
}
.data-value {
  overflow-wrap:anywhere
}
.evidence-list {
  padding-left:20px;
  font-size:14px;
  line-height:1.7
}
.tag-list {
  padding:0;
  list-style:none
}
summary {
  font-size:15px;
  font-weight:600;
  padding:4px 0;
  line-height:1.5
}
details[open]>summary {
  margin-bottom:16px
}
.vendor-reference-details {
  margin-top:22px
}
.vendor-reference-items {
  padding-left:20px;
  font-size:14px;
  line-height:1.7
}
.vendor-reference-items li {
  margin:12px 0;
  overflow-wrap:anywhere
}
.inline-source {
  overflow-wrap:anywhere
}
.context-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:16px
}
.context-form label {
  font-size:13px;
  color:var(--muted)
}
.context-form input {
  display:block;
  width:100%;
  padding:10px;
  border:1px solid var(--line);
  border-radius:4px;
  margin-top:6px
}
.context-form button {
  align-self:end;
  justify-self:start
}
.evidence-summary {
  width:100%;
  min-height:260px;
  margin-top:14px;
  padding:14px;
  background:#f8f9fa;
  border:1px solid var(--line);
  border-radius:4px;
  font-size:13px;
  line-height:1.6;
  resize:vertical
}
.copy-status {
  font-size:13px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  top:-100px;
  left:10px;
  z-index:30;
  padding:12px;
  background:#fff
}
.skip-link:focus {
  top:10px
}
.back-link {
  display:inline-block;
  margin-bottom:16px
}
@media(max-width:650px) {
  .site-header {
    gap:12px;
    flex-wrap:wrap;
    padding:12px 20px
  }
  .brand {
    font-size:15px
  }
  .site-header .search-form {
    width:100%
  }
  .page-shell {
    padding-top:24px
  }
  .search-form-row {
    gap:8px
  }
  .primary-button {
    padding:12px
  }
  .search-input {
    font-size:14px;
    padding-left:14px
  }
  .detail-header h1 {
    font-size:23px
  }
  .data-row {
    grid-template-columns:1fr;
    gap:2px
  }
  .context-form {
    grid-template-columns:1fr
  }
  .landing h1 {
    font-size:28px
  }
  .card,.detail-section {
    padding:20px 0
  }
  .result-row h2 {
    font-size:18px
  }
}
@media print {
  .site-header,footer,.copy-summary,.context-form,.skip-link {
    display:none
  }
  .page-shell {
    width:100%;
    padding:0
  }
  details {
    break-inside:avoid
  }
}
.clear-search,.copy-summary {
  display:none
}
.js .clear-search,.js .copy-summary {
  display:inline-block
}
.search-input:placeholder-shown + .clear-search {
  visibility:hidden
}
html:not(.js) .search-input::-webkit-search-cancel-button {
  display:block
}

.detail-section p {
  font-size: 14px;
  line-height: 1.6;
}

/* Analysis-only panel layout. Search and results retain their reading width. */
.page-shell.analysis-page {
  width: min(1180px, calc(100% - 40px));
}
.analysis-grid, .analysis-pair, .analysis-metrics {
  display: grid;
  gap: 16px;
  align-items: start;
}
.analysis-pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.analysis-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}
.analysis-panel {
  scroll-margin-top: 120px;
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow-wrap: anywhere;
}
.analysis-panel h2 {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 600;
}
.analysis-panel h3 {
  margin: 20px 0 10px;
  font-size: 14px;
}
.analysis-panel p {
  font-size: 14px;
  line-height: 1.6;
}
.analysis-panel .assessment-label {
  margin: 0 0 8px;
  font-size: 24px;
  font-weight: 600;
}
.analysis-panel .metric-value {
  margin: 12px 0;
  font-size: 32px;
  font-weight: 600;
  line-height: 1.2;
}
.analysis-panel .metric-status {
  font-size: 18px;
  margin: 8px 0;
}
.analysis-panel .data-row {
  grid-template-columns: minmax(100px, 30%) minmax(0, 1fr);
  gap: 14px;
}
.metric-panel .data-row {
  grid-template-columns: 1fr;
  gap: 2px;
}
.analysis-panel > :last-child {
  margin-bottom: 0;
}
.analysis-panel.optional-tool > summary {
  font-size: 16px;
}
html:not(.js) .page-shell:has(.offline-detail) {
  width: min(1180px, calc(100% - 40px));
}
@media (max-width: 999px) {
  .analysis-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 699px) {
  .analysis-pair, .analysis-metrics {
    grid-template-columns: 1fr;
  }
  .analysis-panel .data-row {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}
.priority-body {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 28px;
}
.priority-body h3 {
  margin-top: 0;
}
.priority-body .data-row {
  grid-template-columns: 1fr;
  gap: 2px;
}
@media (max-width: 699px) {
  .priority-body {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
