*{box-sizing:border-box}
:root{
  --bg:#eef2f7;
  --panel:#ffffff;
  --ink:#172033;
  --muted:#5b6474;
  --line:#c7d0dc;
  --brand:#1d4ed8;
  --brand-strong:#123ca8;
  --brand-soft:#dbeafe;
  --success:#15803d;
  --success-soft:#dcfce7;
  --warn:#b45309;
  --warn-soft:#fef3c7;
  --danger:#b91c1c;
  --danger-soft:#fee2e2;
  --critical:#7c2d12;
  --critical-soft:#ffedd5;
  --shadow:0 1px 3px rgba(15,23,42,.10),0 10px 30px rgba(15,23,42,.06);
}
html{color-scheme:light}
body{
  margin:0;
  font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--ink);
}
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  background:#fff;
  color:var(--ink);
  padding:.75rem 1rem;
  z-index:10;
}
.skip-link:focus{left:.75rem;top:.75rem}
.topbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  padding:1rem 1.25rem;
  background:#11284b;
  color:#fff;
}
.topbar h1{margin:0;font-size:1.4rem}
.topbar small{display:block;font-weight:500;opacity:.8;font-size:.88rem;margin-top:.15rem}
.tagline{margin:.4rem 0 0;color:#dbe4f6;max-width:42rem}
.actions{display:flex;gap:.5rem;flex-wrap:wrap}
button{
  font:inherit;
  padding:.55rem .9rem;
  border:1px solid var(--line);
  border-radius:.55rem;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
}
button.primary{
  background:var(--brand);
  color:#fff;
  border-color:var(--brand);
}
button.primary:hover,
button.primary:focus-visible{background:var(--brand-strong)}
button.secondary{
  background:var(--brand-soft);
  border-color:#93c5fd;
  color:#183b8c;
}
button.danger{
  background:#fff;
  border-color:#fca5a5;
  color:var(--danger);
}
button:hover{border-color:#94a3b8}
button:disabled{opacity:.55;cursor:not-allowed}
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible{
  outline:3px solid rgba(29,78,216,.22);
  outline-offset:2px;
}
.layout{
  display:grid;
  grid-template-columns:minmax(280px,340px) minmax(0,1fr);
  gap:1rem;
  padding:1rem;
  align-items:start;
}
.panel{
  background:var(--panel);
  border-radius:1rem;
  padding:1rem;
  box-shadow:var(--shadow);
}
.sidebar{position:sticky;top:1rem}
.stack>*+*{margin-top:1rem}
.section-head h2,
.section-head h3{margin:0}
.section-head p{margin:.25rem 0 0;color:var(--muted)}
.summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
.metric-card{
  padding:.85rem;
  border:1px solid #d8e0ea;
  border-radius:.85rem;
  background:#f8fafc;
}
.metric-card strong{display:block;font-size:1.35rem;line-height:1.2}
.metric-card span{display:block;color:var(--muted);font-size:.92rem}
.mini-list{display:grid;gap:.6rem}
.mini-card,
.workflow-item,
.insight-card,
.pain-card,
.concept-card{
  border:1px solid #d8e0ea;
  border-radius:.85rem;
  background:#fff;
}
.mini-card{padding:.8rem}
.mini-card h4,
.pain-card h4,
.concept-card h4{margin:.1rem 0 .35rem}
.mini-card p,
.pain-card p,
.concept-card p,
.meta-text{margin:.2rem 0;color:var(--muted)}
.workflow-item{
  width:100%;
  text-align:left;
  padding:.9rem;
  display:block;
  margin-bottom:.6rem;
}
.workflow-item.active{
  border-color:#7aa2ff;
  background:#eff6ff;
}
.workflow-item strong{display:block;font-size:1rem}
.workflow-item small{display:block;color:var(--muted);margin-top:.2rem}
.workflow-item .row{margin-top:.65rem}
.content-stack>*+*{margin-top:1rem}
.head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
}
.head h2{margin:0}
.head p{margin:.35rem 0 0;color:var(--muted)}
.overview-grid{
  display:grid;
  grid-template-columns:1.4fr .95fr;
  gap:1rem;
}
.detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem 1rem;
}
.two-up{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.section-card{
  border:1px solid #d8e0ea;
  border-radius:1rem;
  padding:1rem;
  background:#fff;
}
a{color:var(--brand)}
a:hover{color:var(--brand-strong)}
label{display:block;font-weight:600;margin:.55rem 0}
label span,
.helper{display:block;font-weight:400;color:var(--muted);font-size:.92rem;margin-top:.2rem}
input,select,textarea{
  width:100%;
  font:inherit;
  color:inherit;
  background:#fff;
  border:1px solid #b8c3d4;
  border-radius:.65rem;
  padding:.62rem .72rem;
  margin-top:.28rem;
}
textarea{resize:vertical;min-height:6.2rem}
.row{
  display:flex;
  gap:.5rem;
  align-items:center;
  flex-wrap:wrap;
}
.row.end{justify-content:flex-end}
.badge{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:.18rem .55rem;
  border-radius:999px;
  font-size:.8rem;
  font-weight:700;
  background:#e2e8f0;
  color:#334155;
}
.badge.low{background:var(--success-soft);color:var(--success)}
.badge.medium{background:var(--warn-soft);color:var(--warn)}
.badge.high{background:#fee2e2;color:var(--danger)}
.badge.critical{background:var(--critical-soft);color:var(--critical)}
.badge.active{background:#dbeafe;color:#1d4ed8}
.badge.resolved{background:#ecfccb;color:#3f6212}
.chipset{display:flex;gap:.45rem;flex-wrap:wrap}
.note{
  border:1px solid #bfdbfe;
  background:#eff6ff;
  padding:.8rem;
  border-radius:.85rem;
}
.warn{
  border:1px solid #f59e0b;
  background:#fffbeb;
  padding:.8rem;
  border-radius:.85rem;
}
.empty,
.empty-state{color:var(--muted)}
.empty-state{
  min-height:24rem;
  display:grid;
  align-content:center;
  justify-items:start;
  gap:.2rem;
}
.score-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.75rem;
}
.pain-card,
.concept-card,
.result-card{padding:1rem}
.card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.75rem;
  flex-wrap:wrap;
}
.card-head .row{justify-content:flex-end}
.log{
  display:grid;
  gap:.45rem;
  max-height:17rem;
  overflow:auto;
  padding-right:.2rem;
}
.log-entry{
  border-left:3px solid #cbd5e1;
  padding-left:.7rem;
}
.log-entry time{display:block;font-size:.85rem;color:var(--muted)}
.api-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem 1rem;
}
.search-form textarea{min-height:7rem}
.search-doc-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.95fr);
  gap:1rem;
  align-items:start;
}
.result-grid,
.document-items{
  display:grid;
  gap:.85rem;
}
.result-card{
  border:1px solid #d8e0ea;
  border-radius:.95rem;
  background:#fff;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.result-card h4,
.documents-panel h4,
.document-item h5{
  margin:.1rem 0 .35rem;
}
.result-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.85rem;
  margin-bottom:.6rem;
}
.result-actions{
  display:flex;
  align-items:flex-start;
  gap:.45rem;
  flex-wrap:wrap;
}
.menu-wrap{position:relative}
.menu-panel{
  position:absolute;
  right:0;
  top:calc(100% + .35rem);
  min-width:14rem;
  z-index:5;
  display:grid;
  gap:.25rem;
  padding:.45rem;
  border:1px solid #d8e0ea;
  border-radius:.85rem;
  background:#fff;
  box-shadow:0 12px 24px rgba(15,23,42,.12);
}
.menu-panel button{
  width:100%;
  text-align:left;
  background:#fff;
}
.menu-empty{
  margin:.2rem;
  color:var(--muted);
  font-size:.92rem;
}
.icon-button{
  min-width:2.3rem;
  padding:.55rem .7rem;
  font-weight:700;
}
.documents-shell{
  display:grid;
  gap:1rem;
}
.document-list{
  display:grid;
  gap:.55rem;
}
.document-chip{
  display:block;
  width:100%;
  text-align:left;
  padding:.8rem;
}
.document-chip.active{
  border-color:#7aa2ff;
  background:#eff6ff;
}
.document-chip strong,
.document-chip small{
  display:block;
}
.document-chip small{color:var(--muted);margin-top:.2rem}
.document-detail{
  border-top:1px solid #e2e8f0;
  padding-top:1rem;
}
.document-item{
  border:1px solid #d8e0ea;
  border-radius:.85rem;
  padding:.85rem;
  background:#fff;
}
.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;
}
dialog{
  border:none;
  border-radius:1rem;
  padding:1.2rem;
  width:min(32rem,92vw);
  box-shadow:0 18px 45px rgba(15,23,42,.22);
}
dialog::backdrop{background:rgba(15,23,42,.48)}
@media (max-width:980px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:static}
  .overview-grid,
  .two-up,
  .search-doc-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .summary-grid,
  .detail-grid,
  .score-grid,
  .api-grid{grid-template-columns:1fr}
  .topbar{padding:1rem}
  .layout{padding:.75rem}
  .panel{padding:.9rem}
  .result-card-head{
    flex-direction:column;
    align-items:stretch;
  }
  .result-actions{justify-content:flex-start}
}
.dropdown{position:relative;display:inline-block}
.dropdown ul{position:absolute;right:0;top:100%;margin:.25rem 0 0;padding:.25rem;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:10rem;z-index:20}
.dropdown ul[hidden]{display:none}
.dropdown li button{width:100%;text-align:left}
#research-view[hidden]{display:none}
.r-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:900px){.r-grid{grid-template-columns:1fr}}
.r-card{border:1px solid var(--line);border-radius:8px;padding:.75rem;margin:.5rem 0;background:#fff}
.r-card[draggable=true]{cursor:grab}
.r-card.dragover{outline:2px dashed var(--brand)}
.r-card textarea{width:100%}
.r-cite{color:var(--muted);font-size:.85em;word-break:break-all}
.r-canvas{min-height:14rem;border:2px dashed var(--line);border-radius:8px;padding:.5rem;background:#f8fafc}
.r-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.5rem 0}
.r-issue{background:var(--warn-soft);border-left:4px solid var(--warn);padding:.35rem .6rem;margin:.25rem 0}
.r-bar{height:.6rem;background:var(--brand-soft);border-radius:4px;overflow:hidden}
.r-bar>span{display:block;height:100%;background:var(--brand)}
.r-result{white-space:pre-wrap}
