/* ── APP SHELL ──────────────────────────────────────────────────────────
   Stage-1 navigation/IA redesign: reusable layout primitives for the new
   Dashboard / Catalyst Radar / Signal Lab / Sources & Methodology surfaces.
   Builds on the existing tokens in css/styles.css (--bg, --surface, --accent,
   --green, --amber, --red, --text*, --border*) rather than introducing a
   parallel palette. See js/app-shell-views.js for the markup these classes
   style. */

/* Sidebar active-state left indicator (additive to the existing
   .sb-item.active background/color rule in styles.css — does not replace it). */
.sb-item.active{box-shadow:inset 3px 0 0 var(--accent);}
.sb-item.active .sb-icon{color:var(--accent);}

/* Sidebar language-toggle proxy row (mirrors the other .sb-acct rows). */
.sb-locale-link{width:100%;text-align:left;background:transparent;border:0;font:inherit;}

/* Header additions */
.as-search-notice{
  position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:var(--surface3);border:1px solid var(--amber);border-radius:var(--r);
  padding:6px 10px;font-size:11px;color:var(--amber);z-index:5;
}
.mission-command{position:relative;}
.as-freshness-badge{
  font-size:10px;color:var(--text3);font-family:var(--mono);white-space:nowrap;
  border:1px solid var(--border2);border-radius:4px;padding:2px 7px;
}
.tb-profile{font-size:14px;line-height:1;}

/* Metric card grid (Dashboard row 1) */
.as-metric-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;margin-bottom:20px;
}
.as-metric-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:14px 16px;display:flex;flex-direction:column;gap:6px;
}
.as-metric-label{font-size:10.5px;color:var(--text3);font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;}
.as-metric-value{font-size:24px;font-weight:600;color:var(--text);letter-spacing:-0.5px;}
.as-metric-value.as-metric-value-pending{font-size:13px;font-weight:600;color:var(--text4);}
.as-metric-detail{font-size:10.5px;color:var(--text4);}

/* Two-column responsive row (Dashboard rows 2-3) */
.as-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
@media(max-width:760px){.as-row-2col{grid-template-columns:1fr;}}

.as-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;min-width:0;}
.as-panel-hdr{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.as-panel-hdr h2{font-size:12.5px;font-weight:600;color:var(--text2);margin:0;}

/* Catalyst Radar / Signal Lab category cards reuse .as-metric-grid as a card grid, but each
   card is content-rich (not a single number), so it gets its own inner layout. */
.as-category-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:14px 16px;display:flex;flex-direction:column;gap:8px;
}
.as-category-card h3{font-size:12.5px;font-weight:600;color:var(--text2);margin:0;}
.as-category-card p{font-size:11px;color:var(--text3);margin:0;line-height:1.5;}

/* Empty / not-yet-connected state (shared by every surface that has no live data yet) */
.as-empty-state{
  display:flex;flex-direction:column;gap:6px;align-items:flex-start;
  padding:10px 0 2px;
}
.as-empty-state-title{font-size:11.5px;color:var(--text3);}
.as-empty-state-action{margin-top:4px;}

/* Status pill vocabulary — mirrors js/capabilities.js STATUS_LABELS / js/global-evidence.js
   geState() so "실제 연결 / 베타 / 제한적 연결 / 예정" reads consistently with the rest of the
   product instead of inventing a second status language. */
.as-status-pill{
  display:inline-flex;align-items:center;gap:4px;white-space:nowrap;
  border:1px solid var(--border2);border-radius:4px;padding:2px 7px;
  font:600 10px/1.5 var(--mono);letter-spacing:.03em;color:var(--text3);
}
.as-status-live{color:var(--green);border-color:rgba(70,200,120,.28);}
.as-status-beta{color:var(--accent);border-color:rgba(59,130,246,.3);}
.as-status-limited{color:var(--amber);border-color:rgba(245,180,55,.28);}
.as-status-planned,.as-status-pending{color:var(--text4);}
.as-status-unavailable{color:var(--red);border-color:rgba(239,68,68,.28);}

/* Responsive table wrapper — thin alias over the existing .dtable/.dtable-wrap system so new
   surfaces stay visually consistent with Global Biotech's table instead of a second table style. */
.as-table-wrap{overflow-x:auto;}

.as-evidence-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}

/* Disclaimer footer — required on every analysis-adjacent surface. */
.as-disclaimer-footer{
  margin-top:24px;padding:12px 14px;border-top:1px solid var(--border);
  font-size:11px;line-height:1.6;color:var(--text4);
}

@media(prefers-reduced-motion:reduce){.as-status-pill{transition:none;}}
