/* Basecoat Sera, expressed in Skyrover's existing palette and type.
   Loaded last in the document and synchronously inside the viewer shadow root.
   The campus experiment does not load this sheet or Basecoat. */
:root,:host {
  --background:#f2f0e7; --foreground:#193e3b;
  --card:#f2f0e7; --card-foreground:#193e3b;
  --popover:#f2f0e7; --popover-foreground:#193e3b;
  --primary:#193e3b; --primary-foreground:#f2f0e7;
  --secondary:#d6ded0; --secondary-foreground:#193e3b;
  --muted:#e7e9df; --muted-foreground:#53685e;
  --accent:#d6ded0; --accent-foreground:#193e3b;
  --destructive:#963e30; --destructive-foreground:#fffaf0;
  --border:#bac5b7; --input:#8b9e8d; --ring:#a55e40;
  --radius:0rem;
  --font-sans:'Manrope',Arial,sans-serif;
  --font-serif:'Manrope',Georgia,serif;
  --font-mono:'Manrope',monospace;
  --paper:var(--background); --ink:var(--foreground);
  --sky-muted:var(--muted-foreground); --line:var(--border); --clay:#a55e40;
  --chart-1:#193e3b; --chart-2:#a55e40; --chart-3:#69846c;
  --chart-4:#b3905e; --chart-5:#426d80;
  color-scheme:light;
}
/* Use the upstream button component without imposing its uppercase treatment
   on descriptive application and sensor names. */
.button.btn,.hero-copy .button.btn,.btn-outline {
  border-radius:0; box-shadow:none; min-height:44px; height:auto;
  font-family:var(--font-mono); font-size:var(--type-small,.8125rem);
  font-weight:500; line-height:1.5; letter-spacing:0; text-transform:none;
  white-space:normal; transition:background-color 140ms ease,color 140ms ease,transform 100ms var(--ease-out);
}
.button.btn { background:var(--primary); color:var(--primary-foreground); border:1px solid var(--primary); }
.btn-outline { background:transparent; color:var(--ink); border:1px solid var(--border); padding:.6rem .9rem; }
.contact-link,.tags span,.load-note,.scene-loading,.sensor-marker,.workspace-badge { border-radius:0; }
.text-link,.text-button,.connection-actions a,.connection-actions button {
  text-underline-offset:.3em; text-decoration-thickness:1px;
}
/* Native form controls keep browser validation and keyboard behaviour. */
#brief :is(.input,.select,.textarea) {
  width:100%; height:auto; min-height:48px; margin-top:.45rem;
  padding:.65rem 0; border:0; border-bottom:1px solid var(--input);
  border-radius:0; background-color:transparent; box-shadow:none;
  color:var(--foreground); font:400 1rem/1.6 var(--font-sans);
}
#brief select.select { padding-right:2rem; }
#brief textarea.textarea { min-height:7rem; resize:vertical; }
#brief :is(input,textarea)::placeholder { color:var(--muted-foreground); opacity:1; }
#contact { background:var(--popover); color:var(--popover-foreground); border:1px solid var(--border); border-radius:0; }
/* Editorial rules connect disclosure rows without adding another card layer. */
.solutions-list.accordion { gap:0; }
.solutions-list.accordion>.solution>summary { text-transform:none; letter-spacing:0; border:0; }
.solutions-list.accordion>.solution>summary .expand { font-weight:400; color:var(--clay); }
.solution[open],.system-cards details[open] { border-color:var(--ink); }
.system-cards summary,.measurement-notes summary,.section-disclosure>summary { border-radius:0; }
.tags span { background:var(--muted); color:var(--muted-foreground); }
/* The application bar remains persistent; selection is marked by a quiet rule. */
.experience-frame>.application-bar { background:#f2f0e7f5; border-bottom-color:var(--border); }
.experience-frame .application-picker button {
  border:0; border-bottom:2px solid transparent; border-radius:0;
  background:transparent; color:var(--muted-foreground); min-height:44px;
}
.experience-frame .application-picker button[aria-pressed=true] {
  background:transparent; color:var(--ink); border-bottom-color:var(--clay); font-weight:600;
}
.application-compact select.select {
  border:0; border-bottom:1px solid var(--input); border-radius:0;
  background:none; box-shadow:none; min-height:44px; height:auto;
  padding:0 2.5rem .2rem 0; color:var(--ink);
  font:500 1.625rem/1.3 'Manrope',Arial,sans-serif;
  text-transform:none; letter-spacing:.01em;
}
.industry-tab,.measurement-groups button,.sensor-choice,.section-presets button,
.epoch-choices button,.scan-actions button,.live-time button,.timeline>button,
.report-button,.viewport .viewer-representation,.viewport .viewer-representation button,
.viewport .viewport-tools #reset-view { border-radius:0; }
.measurement-groups button { border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted-foreground); }
.measurement-groups button[aria-pressed=true] { border-bottom-color:var(--clay); background:transparent; color:var(--ink); }
.sensor-choice[aria-pressed=true],.section-presets button[aria-pressed=true],
.epoch-choices button[aria-pressed=true] { background:var(--secondary); color:var(--secondary-foreground); border-color:var(--ink); }
.viewport .viewer-representation { background:var(--paper); border-color:var(--border); }
.viewport .viewer-representation button[aria-pressed=true] { background:var(--ink); color:var(--paper); }
/* Explicit focus, contrast and touch targets survive the component cascade. */
:is(button,a,input,select,textarea,summary):focus-visible {
  outline:2px solid var(--ring); outline-offset:4px; transition:none;
}
.application-compact select.select:focus-visible { outline-offset:3px; }
button:disabled { opacity:.5; cursor:not-allowed; }
@media(hover:hover) and (pointer:fine) {
  .button.btn:hover { background:#28534b; border-color:#28534b; box-shadow:none; }
  .btn-outline:hover,.sensor-choice:not([aria-pressed=true]):hover { background:var(--muted); }
  .experience-frame .application-picker button:not([aria-pressed=true]):hover { background:var(--muted); color:var(--ink); }
}
@media(max-width:760px) {
  .sensor-choice,.measurement-groups button,.section-presets button,.epoch-choices button { min-height:44px; }
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {
  .experience-frame>.application-bar { background:var(--paper); backdrop-filter:none; }
}
@media(prefers-contrast:more) {
  :root,:host { --muted-foreground:#274c40; --border:#718773; --input:#53685e; }
}
@media(prefers-reduced-motion:reduce) {
  .button.btn,.hero-copy .button.btn,.btn-outline { transition:none; }
}
