/* FDE fieldwork: a project register outside, a working sheet inside.
   Loaded last so the shared identity is explicit and can be maintained in one place. */
:root {
  --field-ink: #29443b;
  --field-muted: #78816b;
  --field-frame: #faf6e8;
  --field-line: #dedfc9;
  --field-accent: #2d654f;
  --field-paper: #fffdf5;
}
body.fieldwork {
  --ink: var(--field-ink); --muted: var(--field-muted); --line: var(--field-line);
  --green: var(--field-accent); --blue: var(--field-accent); --bg: var(--field-frame);
  --guided-ink: var(--field-ink); --guided-muted: var(--field-muted);
  --guided-line: var(--field-line); --guided-green: var(--field-accent);
  --scene-control-ink: #3e535e; --scene-control-fill: #f0f4f6;
  font-family: "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  background: var(--field-frame); color: var(--field-ink);
}
.fieldwork :is(button,input,select,textarea) { font-family: inherit; }
.fieldwork [hidden] { display: none !important; }
.fieldwork :is(a,button,input,select,textarea):focus-visible { outline: 3px solid #1b6c80; outline-offset: 3px; }
.fieldwork :is(.hub-header,.topbar,.header) { background: var(--field-frame); border: 0; box-shadow: none; }
.fieldwork :is(.hub-brand>span,.brandmark,.brand-icon) {
  background: transparent; color: var(--field-accent); border: 0; border-radius: 0;
  font: 600 25px/1 "Segoe UI",sans-serif; letter-spacing: -2px; width: 54px; min-width: 54px;
}
.fieldwork :is(.hub-brand strong,.brand strong,.brand h1) { color: var(--field-ink); font-size: 18px; letter-spacing: 0; }
.fieldwork :is(.hub-brand small,.brand small,.brand p) { color: var(--field-muted); font-size: 11px; letter-spacing: .3px; }
.fieldwork :is(.hub-header nav a,.topbar nav a,.nav-link) { color: var(--field-muted); font-size: 13px; }
.fieldwork .hub-header nav a.active { color: var(--field-ink); border-bottom: 2px solid var(--field-accent); }
.fieldwork .model-connection { border-radius: 4px; font-size: 11px; color: #795718; }
.fieldwork :is(.primary,.button.primary,.send) { background: var(--field-ink); border: 1px solid var(--field-ink); color: white; border-radius: 5px; min-height: 40px; }
.fieldwork :is(.secondary,.button.secondary,.outlined) { background: white; color: var(--field-ink); border-color: #bbc6cc; border-radius: 5px; min-height: 36px; }
.fieldwork :is(.quiet,.hint,.lead,.muted) { color: var(--field-muted); }
.fieldwork :is(input,select,textarea) { color: var(--field-ink); background: white; border: 1px solid #bbc6cc; border-radius: 5px; }
.fieldwork :is(h1,h2,h3) { color: var(--field-ink); }
.fieldwork .eyebrow { color: var(--field-muted); font-size: 12px; font-weight: 500; letter-spacing: .6px; }
.fieldwork .panel { box-shadow: none; border-color: var(--field-line); border-radius: 8px; }

/* Directory: the existing scene illustrations are the principal visual material. */
.fieldwork.hub-app .hub-header { height: 72px; padding-inline: 32px; }
.fieldwork.hub-app #hub-main { max-width: 1600px; margin: 0 12px 12px; padding: 0 36px 48px; background: white; border: 1px solid var(--field-line); border-radius: 16px; }
.fieldwork .catalog-heading { padding: 36px 0 24px; border-bottom: 1px solid var(--field-line); margin-bottom: 24px; }
.fieldwork .catalog-heading h1 { font-size: clamp(26px,2.8vw,32px); font-weight: 600; letter-spacing: -1px; margin: 12px 0; color: var(--field-ink); }
.fieldwork .catalog-heading p { font-size: 14px; max-width: 72ch; }
.fieldwork .library-sample { float: right; margin: 0 0 20px 20px; }
.fieldwork .library-explainer { background: none; padding: 10px 0 24px; border-radius: 0; gap: 12px; margin-bottom: 12px; }
.fieldwork .library-explainer span { color: var(--field-ink); font-size: 13px; }
.fieldwork .library-explainer a { margin-left: 0; color: var(--field-accent); font-size: 12px; }
.fieldwork .library-filters { clear: both; padding: 20px 0; border-top: 1px solid var(--field-line); border-bottom: 1px solid var(--field-line); align-items: end; }
.fieldwork .library-filters label,.fieldwork .project-search { color: var(--field-muted); font-size: 12px; display: grid; gap: 8px; }
.fieldwork .library-filters :is(input,select),.fieldwork .project-search input { min-height: 42px; padding: 10px 12px; font-size: 14px; }
.fieldwork .project-search { min-width: 250px; }
.fieldwork :is(.module-grid,.project-grid) { gap: 24px; }
.fieldwork.hub-app :is(.module-card,.project-card) { border-radius: 6px; padding: 20px; border: 1px solid var(--field-line); box-shadow: none; transform: none; }
.fieldwork.hub-app :is(.module-card,.project-card):hover { border-color: #819aa7; }
.fieldwork .catalog-cover { margin: -20px -20px 20px; aspect-ratio: 16/9; border-bottom: 1px solid var(--field-line); }
.fieldwork .catalog-cover figcaption { border-radius: 2px; padding: 5px 8px; font-size: 11px; color: #263c47; background: #fff; border: 0; backdrop-filter: none; }
.fieldwork.hub-app :is(.module-card h3,.project-card h3) { color: var(--field-ink); font-size: 20px; font-weight: 600; margin: 12px 0 8px; }
.fieldwork.hub-app :is(.module-card>p,.project-card>p:not(.eyebrow)) { color: var(--field-muted); font-size: 13px; line-height: 1.8; }
.fieldwork.hub-app .module-card>small { color: var(--field-muted); font-size: 12px; }
.fieldwork.hub-app .module-card .eyebrow { font-size: 12px; }
.fieldwork .hub-footer small { font-size: 12px; }
.fieldwork .module-training-link { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; padding: 12px 0; color: var(--field-accent); border-top: 1px solid var(--field-line); font-size: 14px; font-weight: 600; }
.fieldwork.hub-app .module-projects { color: var(--field-muted); font-size: 12px; padding: 4px 0 16px; min-height: 32px; }
.fieldwork .module-projects a { color: var(--field-muted); }
.fieldwork .card-link { color: var(--field-ink); font-size: 13px; border-color: var(--field-line); padding-top: 14px; }
.fieldwork .card-type { color: var(--field-muted); background: #f3f5f6; border: 0; font-size: 12px; }
.fieldwork .card-facts { color: var(--field-muted); font-size: 12px; }
.fieldwork .project-icon { background: none; color: var(--field-accent); font-size: 22px; border-radius: 0; min-width: 30px; height: 30px; padding: 0; }
.fieldwork .filter-tabs { flex-wrap: wrap; }
.fieldwork .filter-tabs button { border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: var(--field-muted); font-size: 13px; padding: 12px; }
.fieldwork .filter-tabs button.active { background: transparent; color: var(--field-ink); border-bottom-color: var(--field-accent); }
.fieldwork :is(.result-count,#module-results>.muted) { color: var(--field-muted); font-size: 13px; margin: 0 0 20px; }
.fieldwork .hub-hero { padding: 40px 0; gap: 40px; }
.fieldwork .hero-copy h1 { font-size: clamp(30px,3.2vw,46px); line-height: 1.45; }
.fieldwork .hero-copy h1 span { color: var(--field-accent); }
.fieldwork .hero-copy>p { color: var(--field-muted); font-size: 14px; }
.fieldwork .hero-map { background: #f0f3f4; border: 0; border-radius: 8px; box-shadow: none; }
.fieldwork .map-row i { color: var(--field-accent); background: transparent; font-size: 12px; }
.fieldwork .map-row p,.fieldwork .map-note { color: var(--field-muted); font-size: 12px; }
.fieldwork .hero-counts { gap: 20px; }
.fieldwork .hero-counts span { font-size: 12px; color: var(--field-muted); }
.fieldwork .hero-counts b { color: var(--field-ink); font-family: inherit; font-variant-numeric: tabular-nums; }
.fieldwork .hub-flow { border-radius: 6px; }
.fieldwork .hub-flow li { padding: 18px 12px; }
.fieldwork .hub-flow span { color: var(--field-accent); font-size: 12px; font-variant-numeric: tabular-nums; }
.fieldwork .hub-flow small { color: var(--field-muted); font-size: 12px; }
.fieldwork .hub-library-strip { border: 0; background: #f0f3f4; }
.fieldwork :is(.hub-library-strip p,.hub-footer) { color: var(--field-muted); font-size: 12px; }

/* Training: one frame, one sheet, the selected stage and task remain distinct. */
.fieldwork.fde-app .topbar { min-height: 64px; padding: 12px 24px; }
.fieldwork.fde-app .workspace-switcher { background: var(--field-frame); border: 0; }
.fieldwork.fde-app .guided-layout { padding-right: 12px; padding-bottom: 12px; gap: 0; }
.fieldwork.fde-app .sidebar.guided-sidebar { background: var(--field-frame); border: 0; }
.fieldwork.fde-app .guided-layout>main { background: white; border: 1px solid var(--field-line); border-radius: 16px; }
.fieldwork.fde-app .guided-sidebar { background: var(--field-frame); border: 0; }
.fieldwork .guided-stage-nav button { border-radius: 4px; border: 1px solid transparent; }
.fieldwork .guided-stage-nav button[aria-current="step"] { background: white; border-color: #ced7db; color: var(--field-ink); }
.fieldwork .guided-stage-number { color: var(--field-accent); font-family: Consolas,monospace; font-size: 13px; }
.fieldwork .guided-heading { border-bottom: 1px solid var(--field-line); margin-bottom: 8px; }
.fieldwork .guided-heading h1 { font-size: 28px; color: var(--field-ink); }
.fieldwork .guided-stage-status { color: var(--field-accent); }
.fieldwork .guided-view-nav { border-color: var(--field-line); }
.fieldwork .guided-view-nav button[aria-current="step"] { background: transparent; border-color: var(--field-accent); color: var(--field-ink); }
.fieldwork .guided-pane { border: 0; border-radius: 0; padding: 14px 0 24px; }
.fieldwork .guided-task-nav button[aria-current="step"] { background: #f0f4f6; border-color: #96aeb9; color: var(--field-ink); }
.fieldwork .flow-intro { background: #f2f5f6; border-color: var(--field-line); box-shadow: none; }
.fieldwork .workspace-toolbox { background: #f3f5f6; border-color: var(--field-line); box-shadow: none; }
.fieldwork .workspace-context { color: var(--field-muted); border-color: var(--field-line); }
.fieldwork .workspace-context strong { color: var(--field-ink); }
.fieldwork.fde-app .group-workspace { padding: 20px 24px 40px; }
.fieldwork .guided-group-content { background: white; border: 1px solid var(--field-line); border-radius: 16px; padding: 24px; }
.fieldwork .group-project-heading { margin-bottom: 12px; }
.fieldwork .group-project-heading p { max-width: 80ch; color: var(--field-muted); line-height: 1.8; }
.fieldwork .group-workspace>.toolbar { padding: 12px 16px; margin-block: 12px; border-color: var(--field-line); }
.fieldwork :is(.pipeline-exercise,.exercise-feedback) { margin: 24px 0; padding: 20px; border: 1px solid var(--field-line); border-radius: 6px; background: #f5f7f8; }

/* Interview: keep the illustration and role card foremost, with a legible conversation. */
.fieldwork.lab-app>.header { padding: 16px 24px; }
.fieldwork.lab-app>main { padding: 12px 24px 24px; }
.fieldwork.lab-app .case-brief { background: white; border-color: var(--field-line); }
.fieldwork.lab-app .case-heading h2 { color: var(--field-ink); }
.fieldwork.lab-app .opening { background: #f2f5f6; border-left: 2px solid var(--field-accent); }
.fieldwork.lab-app .opening p { color: var(--field-ink); font-size: 14px; }
.fieldwork.lab-app .scene-frame { border-radius: 8px; border: 1px solid #c4cfd5; box-shadow: none; }
.fieldwork.lab-app .scene-label { color: var(--field-ink); background: #fff; }
.fieldwork.lab-app .scene-label .quiet { color: #3e535e; background: #f0f4f6; border: 1px solid #c6d1d7; padding: 6px 9px; }
.fieldwork.lab-app .chat { border-color: var(--field-line); border-radius: 8px; box-shadow: none; }
.fieldwork.lab-app .chat-heading { background: white; border-color: var(--field-line); }
.fieldwork.lab-app .composer { background: #f5f7f8; }
.fieldwork.lab-app .messages { background: white; }
.fieldwork.lab-app .evidence-bar { border-radius: 8px; box-shadow: none; }
.fieldwork.lab-app .role-list button { box-shadow: none; }
.fieldwork .scene-project-entry { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 16px; padding: 14px 18px; background: white; border: 1px solid var(--field-line); border-radius: 6px; font-size: 13px; }
.fieldwork .scene-project-entry a { color: var(--field-accent); font-weight: 600; }
.fieldwork .scene-project-entry span { color: var(--field-muted); }

@media(min-width:1650px) { .fieldwork.hub-app #hub-main { margin-inline: auto; } }
@media(max-width:1000px) {
  .fieldwork.hub-app #hub-main { padding-inline: 24px; }
  .fieldwork .filter-bar { flex-wrap: wrap; }
  .fieldwork .library-sample { float: none; margin: 0 0 16px; }
}
@media(max-width:760px) {
  .fieldwork.hub-app .hub-header { height: auto; padding: 16px 18px 0; }
  .fieldwork.hub-app #hub-main { border-radius: 0; margin: 0; padding: 0 18px 32px; border-inline: 0; }
  .fieldwork .hub-header nav { gap: 16px; }
  .fieldwork .catalog-heading { padding-top: 24px; }
  .fieldwork .library-explainer { gap: 8px; }
  .fieldwork .library-explainer a { flex-basis: 100%; }
  .fieldwork .library-filters label:first-child { max-width: none; flex-basis: 100%; }
  .fieldwork .project-search { min-width: 0; width: 100%; }
  .fieldwork .project-search input { width: 100%; }
  .fieldwork .filter-tabs button { padding-inline: 8px; font-size: 12px; }
  .fieldwork .hub-flow { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .fieldwork.fde-app .guided-layout { padding: 0; }
  .fieldwork.fde-app .guided-layout>main { border-radius: 0; border-inline: 0; padding: 20px 16px; }
  .fieldwork.fde-app .group-workspace { padding: 16px 12px; }
  .fieldwork .guided-group-content { padding: 20px 16px; border-radius: 8px; }
  .fieldwork.lab-app>.header { padding: 16px; }
  .fieldwork.lab-app>main { padding: 12px; }
  .fieldwork.lab-app[data-embedded="true"]>main { padding: 0; }
  .fieldwork .guided-heading h1 { font-size: 25px; }
  .fieldwork .scene-project-entry { align-items: flex-start; flex-direction: column; }
}

/* Warm cream background shared by the register and project workspaces. */
.fieldwork :is(.hub-hero,.catalog-heading,.hub-section,.project-card,.module-card,.panel,.guided-workspace,.chat,.messages) { background-color: var(--field-paper); }
.fieldwork :is(.filter-bar,.library-explainer,.flow-task-guide,.stage-lab-status,.composer) { background-color: #f5f1df; }
.fieldwork :is(.secondary,.button.secondary,.outlined) { background-color: #fffdf5; border-color: #d8dcc2; }
.fieldwork :is(a,button,input,select,textarea):focus-visible { outline-color: var(--field-accent); }
