
  * { box-sizing: border-box; }
  body { margin: 0; font-family: 'Manrope', system-ui, sans-serif; color: #11151F; background: #FFFFFF; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
  a { color: #2552CC; }
  a:hover { color: #1C42AA; }
  ::selection { background: #9FBFFF; }
  button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, a:focus-visible { outline: 2px solid #5F8CF0; outline-offset: 3px; }
  @keyframes apt-sheen { 0% { background-position: 0% 50%; } 100% { background-position: -200% 50%; } }
  @keyframes apt-spin { to { transform: rotate(360deg); } }
  @keyframes apt-indeterminate { 0% { margin-left: -30%; } 100% { margin-left: 100%; } }

  /* ---- utilities used by the JS-rendered markup ---- */
  .m-5 { margin: 22px 0; }
  .ml-1 { margin-left: 6px; }
  .ml-2 { margin-left: 10px; }
  .mt-2 { margin-top: 10px; }
  .mt-3 { margin-top: 14px; }
  .mt-5 { margin-top: 20px; }
  .p-1 { padding: 6px; }
  .p-2 { padding: 8px 0; }
  .p-5 { padding: 24px; }
  .text-xs { font-size: 12.5px; line-height: 1.55; }
  .text-sm { font-size: 14px; }
  .text-lg { font-size: 16px; }
  .text-gray-500, .text-gray-600 { color: #6B7280; }
  .text-white { color: #fff; }
  .text-blue-700 { color: #2552CC; }
  .underline { text-decoration: underline; }
  .whitespace-pre-wrap { white-space: pre-wrap; }
  .font-semibold { font-weight: 600; }
  .cursor-pointer { cursor: pointer; }
  .rounded, .shadow, .bg-gray-100, .px-4, .py-2, .px-3, .py-1 { }

  /* ---- buttons ---- */
  .bg-blue-500 {
    display: inline-flex; align-items: center; gap: 8px; background: #2552CC; color: #fff; border: none;
    font: 700 14.5px/1 'Manrope', sans-serif; padding: 13px 21px; border-radius: 10px; cursor: pointer;
    transition: background .18s ease, transform .18s ease;
  }
  .bg-blue-500:hover:not(:disabled) { background: #1C42AA; transform: translateY(-1px); }
  .bg-gray-300 {
    display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 1px solid #D6DAE3;
    color: #11151F; font: 600 14px/1 'Manrope', sans-serif; padding: 11px 18px; border-radius: 10px; cursor: pointer;
  }
  .bg-gray-300:hover:not(:disabled) { background: #F1F3F8; }
  .btn-small { padding: 9px 15px; font-size: 13.5px; border-radius: 9px; }
  button:disabled { opacity: .45; cursor: not-allowed; }

  /* ---- result cards ---- */
  .card {
    background: #fff; border: 1px solid #E7EAF0; border-radius: 18px; padding: clamp(20px,2.4vw,30px);
    margin: 0 0 18px; box-shadow: 0 22px 54px -38px rgba(15,25,55,.4);
  }
  .result-heading { font: 700 12px/1 'Manrope', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #2552CC; margin: 0 0 16px; }
  .result-heading .result-of { font: 500 12px/1 'Manrope', sans-serif; letter-spacing: .04em; text-transform: none; color: #9AA2B1; }
  .result-meta { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 0 18px; margin: 0; font-weight: 400; }
  .result-meta .label { font: 600 11.5px/1.6 'Manrope', sans-serif; letter-spacing: .09em; text-transform: uppercase; color: #9AA2B1; padding: 9px 0; border-top: 1px solid #F0F1F4; }
  .result-meta .value { font: 500 15.5px/1.6 'Manrope', sans-serif; color: #11151F; padding: 9px 0; border-top: 1px solid #F0F1F4; }
  .result-meta br { display: none; }
  .result-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0 0; }
  .result-tags span { font: 600 12px/1 'Manrope', sans-serif; color: #4A5468; background: #F1F3F8; border: 1px solid #E7EAF0; border-radius: 100px; padding: 6px 11px; }
  .snippets-heading { font: 600 11.5px/1 'Manrope', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #9AA2B1; margin: 22px 0 10px; }
  .snippets { background: #F8F9FB; border: 1px solid #ECEEF2; border-radius: 14px; padding: 17px 19px; font: 400 15px/1.72 'Manrope', sans-serif; color: #2B3140; margin: 0; }
  .snippet-sep { color: #5F8CF0; font-weight: 700; }
  .highlight, mark.highlight { background: #FFF0B3; color: #11151F; padding: 0 2px; border-radius: 2px; }
  .card-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
  .oa-subcard { border-top: 1px solid #ECEEF2; margin-top: 26px; padding-top: 4px; }
  .summary-output { font: 400 15px/1.7 'Manrope', sans-serif; color: #2B3140; }
  .summary-output:not(:empty) { margin-top: 18px; background: #0A0E1A; color: rgba(255,255,255,0.9); border-radius: 14px; padding: 20px 22px; }
  .summary-output h1 { font: 700 16px/1.35 'Sora', sans-serif; color: #fff; margin: 14px 0 6px; }
  .summary-output h2 { font: 700 15px/1.35 'Sora', sans-serif; color: #fff; margin: 12px 0 6px; }
  .summary-output ol, .summary-output ul { padding-left: 1.35rem; list-style: revert; margin: 6px 0; }
  .summary-output p { margin: 6px 0; }
  .summary-output .notice { color: #9FBFFF; }
  .notice { font: 500 14px/1.6 'Manrope', sans-serif; color: #6B7280; font-style: normal; }
  .error-text { font: 500 15px/1.6 'Manrope', sans-serif; color: #A61B1B; }
  .full-text { white-space: pre-wrap; font: 400 15px/1.72 ui-monospace, 'SFMono-Regular', monospace; color: #2B3140; }

  /* ---- pager ---- */
  .pager { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 0 0 18px; font: 500 14px/1.5 'Manrope', sans-serif; color: #5B6478; }
  .pager + .card { margin-top: 0; }

  /* ---- status bar ---- */
  .status-bar { position: sticky; top: 82px; z-index: 12; background: #fff; border: 1px solid #E7EAF0; border-radius: 14px; padding: 15px 18px; margin: 0 0 22px; box-shadow: 0 14px 34px -26px rgba(15,25,55,.4); }
  .status-row { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; font: 500 14.5px/1.5 'Manrope', sans-serif; color: #5B6478; }
  .status-row strong { font-weight: 700; color: #11151F; }
  .progress { height: 4px; background: #ECEEF2; border-radius: 3px; overflow: hidden; margin-top: 12px; }
  .progress > div { height: 100%; background: #2552CC; width: 0%; transition: width 300ms ease; }
  .progress.is-indeterminate > div { width: 30%; animation: apt-indeterminate 1.4s infinite ease-in-out; }
  .spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid #DDE2EC; border-top-color: #2552CC; border-radius: 50%; animation: apt-spin .9s linear infinite; vertical-align: middle; }
  .stale-banner { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 0 0 20px; padding: 14px 18px; background: #FFFBEB; border: 1px solid #F3E3B0; border-radius: 12px; font: 500 14px/1.6 'Manrope', sans-serif; color: #6B5A20; }

  /* ---- focus panel ---- */
  .filter-section { margin-bottom: 20px; }
  .filter-section h3 { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font: 700 14px/1.2 'Manrope', sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #2B3140; margin: 0 0 10px; }
  .filter-section h3 .facet-meta { font: 600 13px/1.2 'Manrope', sans-serif; letter-spacing: .02em; text-transform: none; color: #5B6478; }
  .facet-find { width: 100%; border: 1px solid #E1E5EE; border-radius: 8px; padding: 7px 10px; font: 400 13.5px/1.3 'Manrope', sans-serif; margin-bottom: 6px; background: #fff; }
  .facet-find:focus { outline: none; border-color: #5F8CF0; }
  .filter-box { border: 1px solid #ECEEF2; border-radius: 10px; background: #F8F9FB; max-height: 200px; overflow-y: scroll; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: #B4BAC6 #EDEFF4; }
  .filter-box::-webkit-scrollbar { -webkit-appearance: none; width: 11px; }
  .filter-box::-webkit-scrollbar-track { background: #EDEFF4; border-radius: 0 10px 10px 0; }
  .filter-box::-webkit-scrollbar-thumb { background: #B4BAC6; border-radius: 6px; border: 2px solid #EDEFF4; }
  .filter-box:hover::-webkit-scrollbar-thumb { background: #8A93A3; }
  .filter-item { display: flex; justify-content: space-between; gap: 8px; width: 100%; text-align: left; padding: 8px 11px; cursor: pointer; border: 0; border-bottom: 1px solid #F0F1F4; background: none; font: 500 13.5px/1.4 'Manrope', sans-serif; color: #2B3140; }
  .filter-item:last-child { border-bottom: 0; }
  .filter-item > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .filter-item:hover { background: #EEF2FC; }
  .filter-item.is-selected { background: #EEF2FC; color: #1C42AA; font-weight: 700; }
  .filter-item .count { color: #9AA2B1; white-space: nowrap; font-weight: 500; }
  .selected-filter { display: inline-flex; align-items: center; gap: 6px; background: #EEF2FC; border: 1px solid #CFDCFA; color: #1C42AA; border-radius: 100px; padding: 6px 12px; margin: 0 6px 6px 0; font: 600 12.5px/1.3 'Manrope', sans-serif; cursor: pointer; }
  .selected-filter:hover { background: #E1E9FB; }
  .facet-more { font: 600 13.5px/1 'Manrope', sans-serif; color: #2552CC; background: none; border: 0; cursor: pointer; padding: 6px 0; }
  .facet-more:hover { text-decoration: underline; }
  .facet-note { font: 500 15px/1.6 'Manrope', sans-serif; color: #2B3140; margin: 0 0 16px; }
  .sidebar-hidden #sidebar-body { display: none; }

  /* ---- modal ---- */
  .modal { display: none; position: fixed; inset: 0; z-index: 90; overflow: auto; background: rgba(7,10,18,.68); padding: clamp(16px,4vh,52px) clamp(16px,4vw,40px); }
  .modal.is-open { display: block; }
  .modal-content { background: #fff; max-width: 1040px; margin: 0 auto; border-radius: 18px; box-shadow: 0 50px 120px -30px rgba(0,0,0,.5); padding: clamp(20px,3vw,32px); position: relative; }
  .modal .close { position: absolute; top: 20px; right: 20px; background: transparent; border: 1px solid #D6DAE3; color: #11151F; border-radius: 9px; width: 38px; height: 38px; font: 400 20px/1 'Manrope', sans-serif; cursor: pointer; }
  .modal .close:hover { background: #F1F3F8; }
  .modal-header { margin: 0 56px 20px 0; padding-bottom: 18px; border-bottom: 1px solid #ECEEF2; }
  .modal-actions { margin-top: 24px; padding-top: 18px; border-top: 1px solid #ECEEF2; }

  /* ---- static shell helpers ---- */
  details.help summary { cursor: pointer; font: 600 14px/1.5 'Manrope', sans-serif; color: #9FBFFF; }
  details.help ol { list-style: decimal; padding-left: 1.35rem; margin: 12px 0 0; font: 400 14.5px/1.7 'Manrope', sans-serif; color: rgba(255,255,255,0.84); }
  details.help li { margin-bottom: 10px; }
  details.help code { font-family: ui-monospace, monospace; color: #9FBFFF; font-size: .92em; }
  details.privacy summary { cursor: pointer; font: 700 17px/1.4 'Sora', sans-serif; color: #fff; list-style: none; display: flex; align-items: center; gap: 10px; }
  details.privacy summary::-webkit-details-marker { display: none; }
  details.privacy summary .privacy-toggle { flex: none; width: 30px; height: 30px; border-radius: 8px; border: 1px solid rgba(159,191,255,.5); color: #9FBFFF; display: flex; align-items: center; justify-content: center; font: 400 20px/1 'Manrope', sans-serif; }
  details.privacy summary:hover .privacy-toggle { background: rgba(159,191,255,.14); color: #fff; }
  details.privacy[open] summary .privacy-toggle { font-size: 0; }
  details.privacy[open] summary .privacy-toggle::after { content: "–"; font-size: 22px; }
  details.opts summary { cursor: pointer; font: 600 13px/1 'Manrope', sans-serif; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.88); }
  .apt-in { width: 100%; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; padding: 13px 15px; color: #fff; font: 400 15.5px/1.25 'Manrope', sans-serif; outline: none; }
  .apt-in:focus { border-color: #5F8CF0; }
  .apt-in::placeholder, .num-input::placeholder { color: rgba(255,255,255,.66); opacity: 1; }
  .apt-lab { display: block; font: 600 13.5px/1 'Manrope', sans-serif; color: rgba(255,255,255,.92); margin-bottom: 8px; }
  .apt-hint { font: 400 13.5px/1.55 'Manrope', sans-serif; color: rgba(255,255,255,.86); margin: 10px 0 0; }
  .apt-check { display: flex; align-items: center; gap: 9px; font: 500 13.5px/1.4 'Manrope', sans-serif; color: rgba(255,255,255,.88); margin-top: 11px; cursor: pointer; }
  .apt-check input { accent-color: #5F8CF0; width: 15px; height: 15px; }
  .download-bar { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin: 0 0 18px; padding: 14px 16px; background: #F1F4FA; border: 1px solid #DCE3F1; border-radius: 12px; }
  .download-bar .download-label { font: 700 13.5px/1 'Manrope', sans-serif; color: #1C42AA; margin-right: 4px; }
  .download-bar button[disabled] { opacity: .45; cursor: not-allowed; }
  .view-controls { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center; margin: 0 0 18px; font: 500 14px/1 'Manrope', sans-serif; color: #5B6478; }
  .view-controls label { display: flex; align-items: center; gap: 9px; }
  .view-controls select, .num-input { border: 1px solid #D6DAE3; border-radius: 9px; padding: 9px 11px; background: #fff; font: 500 14px/1 'Manrope', sans-serif; color: #11151F; }
  .apt-opt-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 16px; margin-top: 14px; }
  .apt-opt-grid label { display: block; }
  .apt-opt-grid span { display: block; font: 600 12px/1.4 'Manrope', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.86); margin-bottom: 8px; }
  .apt-opt-grid input, .apt-opt-grid select { width: 100%; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 9px; padding: 11px 13px; color: #fff; font: 400 14.5px/1 'Manrope', sans-serif; }
  .apt-opt-grid select option { color: #11151F; }
  .apt-grid { display: grid; grid-template-columns: 288px minmax(0,1fr); gap: clamp(24px,3vw,40px); align-items: start; }
  .apt-side { position: sticky; top: 98px; }
  @media (max-width: 1000px) {
    .apt-grid { grid-template-columns: minmax(0,1fr); }
    .apt-side { position: static; }
    .result-meta { grid-template-columns: minmax(0,1fr); gap: 0; }
    .result-meta .label { border-top: 1px solid #F0F1F4; padding-bottom: 0; }
    .result-meta .value { border-top: 0; padding-top: 2px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .spinner { animation: none; border-top-color: #DDE2EC; }
    .progress.is-indeterminate > div { animation: none; width: 100%; opacity: .4; }
    h1 span { animation: none !important; }
  }

[hidden] { display:none !important; }
input,select,textarea { min-width:0; max-width:100%; }
.forget-keys { background:none;border:0;color:#9FBFFF;text-decoration:underline;font:500 13px Manrope,sans-serif;padding:0;margin:0 0 26px;cursor:pointer; }
.privacy p { color:rgba(255,255,255,.86);line-height:1.65;font-size:14px; }
dialog::backdrop { background:rgba(7,10,18,.7); }
.modal-content { overflow-wrap:anywhere; }
.summary-output a { color:#9FBFFF; }
@media(max-width:600px) { .status-bar { position:static; } .result-meta .value { overflow-wrap:anywhere; } }
