/*
 * 青芽实验室公共主题：现有实验、工作台外壳和新实验模板共享此文件。
 * 调整下面的变量后刷新页面即可统一生效；不要在实验包里复制这份颜色表。
 */
:root {
  --lab-app-bg: #eef3f8;
  --lab-canvas-bg: #edf3fb;
  --lab-canvas-dot: #cbd8e8;
  --lab-panel-bg: #ffffff;
  --lab-soft-bg: #f5f8fc;
  --lab-border: #d7e1eb;
  --lab-text: #28434e;
  --lab-muted: #718591;
  --lab-accent: #357b68;
  --lab-accent-hover: #286552;
  --lab-accent-soft: #e7f2ed;
  --lab-radius: 16px;
  --lab-control-radius: 9px;
  --lab-shadow: 0 6px 24px rgb(48 75 105 / 4%);
  --lab-font: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
}

/* The namespace confines legacy adapters to experiment documents. */
html[data-qingya-lab], html[data-qingya-lab] body {
  color-scheme: light !important;
  --bg: var(--lab-app-bg);
  --text: var(--lab-text);
  --accent: var(--lab-accent);
  --shadow: var(--lab-shadow);
  color: var(--lab-text) !important;
  background: var(--lab-app-bg) !important;
  font-family: var(--lab-font) !important;
}
html[data-qingya-lab] :is(button,input,select,textarea) {font-family:var(--lab-font)!important}
html[data-qingya-lab] :is(.app,.lab-app) {background:var(--lab-app-bg)!important}
html[data-qingya-lab] :is(.top,.lab-header,.workspace-bar,.lab-toolbar) {
  background:var(--lab-app-bg)!important;color:var(--lab-text)!important;
}
html[data-qingya-lab] :is(.lab-brand,.brand-copy strong,.lesson-heading,.lesson-title,.title) {color:var(--lab-text)!important}
html[data-qingya-lab] :is(.brand-symbol,.library-count,.lesson-badge) {
  color:var(--lab-accent)!important;background:var(--lab-accent-soft)!important;border-color:var(--lab-border)!important;
}
html[data-qingya-lab] :is(.brand-copy small,.lesson-eyebrow,.workspace-location,.library-description,.sidebar-description) {color:var(--lab-muted)!important}
html[data-qingya-lab] :is(.sidebar,.lab-sidebar,.lab-panel,.properties,#properties,.lab-properties,.modal,.lab-modal) {
  background:var(--lab-panel-bg)!important;color:var(--lab-text)!important;
  border-color:var(--lab-border)!important;border-radius:var(--lab-radius)!important;box-shadow:var(--lab-shadow)!important;
}
html[data-qingya-lab] :is(.side-head,.catalog,.catalog-footer,.side-foot,.library-footer) {background:var(--lab-panel-bg)!important;border-color:var(--lab-border)!important}
html[data-qingya-lab] :is(.library-heading,.library-heading h2,.side-head h2) {color:var(--lab-text)!important}
html[data-qingya-lab] :is(.stage,#stage,.lab-stage) {
  background-color:var(--lab-canvas-bg)!important;
  background-image:radial-gradient(var(--lab-canvas-dot) .8px,transparent .8px)!important;
  background-size:24px 24px!important;border-color:var(--lab-border)!important;
  border-radius:var(--lab-radius)!important;box-shadow:var(--lab-shadow)!important;
}
html[data-qingya-lab] :is(.stage,#stage,.lab-stage)::before {background:none!important}
html[data-qingya-lab] #scene {background:transparent!important}
html[data-qingya-lab] :is(.item,.catalog-item,.apparatus-card,.lab-equipment) {
  background:var(--lab-panel-bg)!important;border:1px solid var(--lab-border)!important;
  border-radius:12px!important;color:var(--lab-text)!important;box-shadow:none!important;
}
html[data-qingya-lab] :is(.item,.catalog-item,.apparatus-card,.lab-equipment):hover {
  background:var(--lab-soft-bg)!important;border-color:var(--lab-accent)!important;
}
html[data-qingya-lab] :is(.command,.icon,.lab-button,.library-tab,.tools button,.floating button,.floating-tools button,.modal button) {
  color:var(--lab-text)!important;border-color:var(--lab-border)!important;border-radius:var(--lab-control-radius)!important;
}
html[data-qingya-lab] :is(.command,.icon,.lab-button,.tools .group,.tool-group,.selection-tools,.readouts) {
  background:var(--lab-panel-bg)!important;border-color:var(--lab-border)!important;box-shadow:var(--lab-shadow)!important;
}
/* Stage action buttons keep their own rounded surfaces; gaps show the canvas. */
html[data-qingya-lab] :is(.floating,.floating-tools) {
  background:transparent!important;border:0!important;box-shadow:none!important;
}
html[data-qingya-lab] :is(.floating,.floating-tools) > button {background:var(--lab-panel-bg)!important}
html[data-qingya-lab] button:hover:not(:disabled) {background-color:var(--lab-accent-soft)!important}
html[data-qingya-lab] :is(button[aria-pressed="true"],button[aria-selected="true"],.library-tab.active,.command.active,.icon.active) {
  color:var(--lab-accent)!important;background:var(--lab-accent-soft)!important;border-color:#b7d6c7!important;
}
html[data-qingya-lab] :is(.primary,.lab-button-primary,button.primary) {
  background:var(--lab-accent)!important;color:#fff!important;border-color:var(--lab-accent)!important;
}
html[data-qingya-lab] :is(.primary,.lab-button-primary):hover {background:var(--lab-accent-hover)!important}
html[data-qingya-lab] :is(input,textarea,select,.search-box,.catalog-search) {
  color:var(--lab-text)!important;background-color:var(--lab-soft-bg)!important;border-color:var(--lab-border)!important;
  border-radius:var(--lab-control-radius)!important;accent-color:var(--lab-accent);
}
html[data-qingya-lab] :is(button,input,textarea,select):focus-visible {outline:2px solid var(--lab-accent)!important;outline-offset:3px}
html[data-qingya-lab] :is(.stage-caption,.stage-hint,.stage-pill,.stage-label,.readout-label,.status-label) {color:var(--lab-muted)!important}
html[data-qingya-lab] :is(.readout-value,.property-readings strong) {color:var(--lab-text)!important}
html[data-qingya-lab] :is(.modal-header,.modal-footer,.properties-header,.catalog-status) {border-color:var(--lab-border)!important}
html[data-qingya-lab] :is(.modal-overlay,.lab-modal-overlay) {background:rgb(39 60 82 / 28%)!important}

/* Classes for new experiments. Their layout is separate from the shared palette. */
.lab-template {margin:0;min-height:100vh;padding:24px;box-sizing:border-box;font-family:var(--lab-font);color:var(--lab-text);background:var(--lab-app-bg)}
.lab-template .lab-panel {padding:24px;border:1px solid var(--lab-border);border-radius:var(--lab-radius);background:var(--lab-panel-bg)}
.lab-template .lab-toolbar {display:flex;align-items:center;gap:12px;margin:20px 0}
.lab-template .lab-button {padding:11px 18px;border:1px solid var(--lab-border);border-radius:var(--lab-control-radius);cursor:pointer}
.lab-template .lab-stage {display:block;max-width:100%;border:1px solid var(--lab-border);border-radius:var(--lab-radius);background:var(--lab-canvas-bg)}

/* Nuxt's surrounding workbench uses the same palette as the embedded experiment. */
.lab-shell {background:var(--lab-app-bg)!important}
.lab-shell .site-header {background:var(--lab-panel-bg)!important;border-color:var(--lab-border)!important}
.lab-shell :is(.frame-wrap,.lab-topbar,.assistant-panel) {border-color:var(--lab-border)!important;border-radius:var(--lab-radius)!important}
.lab-shell .frame-wrap {background:var(--lab-app-bg)!important}
.lab-shell :is(.lab-topbar,.assistant-panel,.assistant-body) {background:var(--lab-panel-bg)!important}
.lab-shell :is(.assistant-tabs,.assistant-compose) {background:var(--lab-soft-bg)!important;border-color:var(--lab-border)!important}
.lab-shell .assistant-tabs button.active {background:var(--lab-accent-soft)!important;color:var(--lab-accent)!important}
.lab-shell .assistant-welcome {background:var(--lab-accent-soft)!important;border-color:var(--lab-border)!important;color:var(--lab-text)!important}
.lab-shell :is(.assistant-compose textarea,.prompt-chip,.snapshot-preview) {background:var(--lab-panel-bg)!important;border-color:var(--lab-border)!important}
