/* Default working palette. Screen-only so exported/printed briefs stay light. */
@media screen {
  :root {
    color-scheme: dark;
    --paper: #171d1b;
    --surface: #232b26;
    --ink: #f0f1e8;
    --muted: #bac2b7;
    --line: #465349;
    --lime: #d8ed93;
    --forest: #344c3a;
    --sage: #303c32;
    --orange: #f4b68c;
    --orange-bg: #403025;
    --blue: #aed3cd;
    --input: #1b231e;
    --control-line: #697667;
    --green-text: #d8edb7;
    --blue-bg: #293b3b;
    --danger: #ffc1ac;
    --danger-bg: #442e29;
    --shadow: 0 12px 40px rgb(0 0 0 / 12%);
    background: var(--paper);
    color: var(--ink);
    scrollbar-color: #697667 var(--paper);
  }

  body { background: var(--paper); }
  ::selection { background: #566b43; color: var(--ink); }
  input, textarea, select, audio { color-scheme: dark; }
  input, textarea, select { accent-color: var(--lime); caret-color: var(--lime); }
  input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
  input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--ink);
    box-shadow: 0 0 0 1000px var(--input) inset;
    caret-color: var(--lime);
  }
  option, optgroup { background: var(--input); color: var(--ink); }
  button:focus-visible, a:focus-visible, summary:focus-visible {
    outline: 3px solid var(--lime);
    outline-offset: 4px;
  }
  input:focus, textarea:focus, select:focus {
    outline: 2px solid var(--lime);
    border-color: var(--lime);
  }
  button:disabled, .field-shell button:disabled {
    opacity: 1;
    color: #a9b1a5;
    background: #30362f;
    border-color: #56604f;
  }
  .skip-link { background: var(--lime); color: #172018; }

  .nav-link { color: var(--muted); }
  .nav-link.active { color: var(--ink); border-color: #718368; }
  .nav-link:hover:not(.active) { background: var(--sage); color: var(--ink); }
  .nav-link .count { background: #445948; color: var(--ink); }
  .prototype-pill { color: var(--muted); border-color: var(--line); }
  .avatar { background: #3e4d3c; color: var(--ink); }
  .role-switch button:hover:not(.active) { background: var(--sage); color: var(--ink); }
  .role-switch button.active {
    background: var(--forest);
    color: var(--ink);
    box-shadow: inset 0 -2px 0 var(--lime);
  }

  .btn { color: var(--ink); border-color: var(--control-line); }
  .btn:hover:not(:disabled) { background: var(--sage); border-color: #9aac91; }
  .btn.primary, .btn.lime, .hero-copy .btn.lime {
    background: var(--lime);
    border-color: var(--lime);
    color: #172018;
  }
  .btn.primary:hover:not(:disabled), .btn.lime:hover:not(:disabled) {
    background: #e4f4b0;
    border-color: #e4f4b0;
  }
  .btn.ghost { color: var(--muted); border-color: transparent; }
  .btn.ghost:hover:not(:disabled) { color: var(--ink); border-color: transparent; }
  .btn.danger { color: var(--danger); background: var(--danger-bg); border-color: #9c7565; }
  .btn.danger:hover:not(:disabled) { background: #533930; border-color: #c7957d; }
  .btn:disabled { color: #a9b1a5; background: #30362f; border-color: #56604f; }
  .hero-copy .eyebrow, .hero-copy p, .hero-tag { color: #d1debf; }

  .badge { color: var(--green-text); }
  .badge.orange { color: var(--orange); }
  .badge.dark { color: var(--ink); }
  .badge.blue { background: var(--blue-bg); color: var(--blue); }
  .card-meta { color: var(--muted); }
  .progress-track, .field-progress > div { background: #3b483a; }
  .progress-track > span, .save-dot { background: var(--lime); }
  .hint-card { background: #2a372c; }
  .hint-card .hint-icon { background: #3d4e36; color: var(--lime); }
  .hint-card p { color: var(--muted); }
  .stage-circle { border-color: var(--control-line); }
  .stage-circle.done { color: #172018; }
  .stage-tab.active { color: var(--lime); border-color: var(--lime); }

  .form-field input, .form-field textarea, .form-field select, .assistant-input {
    background: var(--input);
    color: var(--ink);
    border-color: var(--control-line);
  }
  .form-field input[readonly] { background: var(--sage); }
  .form-field input:focus, .form-field textarea:focus, .form-field select:focus,
  .assistant-input:focus { border-color: var(--lime); }
  .form-field input:disabled, .form-field textarea:disabled, .form-field select:disabled {
    background: #30362f;
    color: #a9b1a5;
    opacity: 1;
  }
  .check-row input { accent-color: var(--lime); }
  .notice { color: var(--green-text); }
  .notice.warning { color: var(--orange); }
  .notice.plain { background: #2b322c; color: var(--muted); }
  .assistant-head { background: #2c382d; }
  .assistant-body > p { color: var(--muted); }
  .assistant-answer { background: var(--sage); }
  .assistant-chip { border-color: var(--control-line); }
  .assistant-chip.selected { color: var(--ink); border-color: var(--lime); }
  .assistant-chip:hover:not(:disabled) { border-color: #9aac91; }
  .assistant-suggestion { border-color: var(--line); }
  .transition-strip { background: #2d342c; color: var(--muted); }
  .route-order-actions button { border-color: var(--control-line); }
  .route-order-actions button:hover:not(:disabled) { background: var(--sage); }
  .feedback-item.required { border-left-color: var(--orange); }
  .feedback-item.strength { border-left-color: var(--lime); }
  .feedback-item.optional { border-left-color: var(--blue); }
  .feedback-item.done { opacity: 1; background: #2a332c; }
  .upload-zone { border-color: var(--control-line); background: #202d23; }
  .upload-zone:hover { background: var(--sage); }
  .brief-text { background: var(--input); color: var(--ink); }
  .play-btn { background: var(--lime); color: #172018; }
  .toast { background: #344c3a; color: var(--ink); border: 1px solid #718368; }
  .modal-overlay { background: rgb(7 12 9 / 78%); }
  .modal { border: 1px solid var(--line); box-shadow: 0 20px 100px rgb(0 0 0 / 45%); }
  .close-btn { border-color: var(--control-line); }
  .close-btn:hover { background: var(--sage); }
  .number-chip { color: #172018; }
  .next-card { background: #2d3b29; border-color: #59694c; }
  .inline-error { background: var(--danger-bg); color: var(--danger); }
  .mobile-nav { background: rgb(29 38 32 / 96%); }
  .mobile-nav a.active { color: var(--lime); background: var(--forest); }
  .walk-chapters button.active { color: var(--ink); border-color: var(--lime); }
  .walk-chapters button:hover:not(:disabled):not(.active) { background: var(--sage); }

  /* Recolour only navigation diagrams. Keep editorial pictures and covers intact. */
  .scheme { background: #1e2922; border-color: var(--line); }
  .scheme circle[fill="#d9dfca"] { fill: #455541; }
  .scheme path[stroke="#d5dfd2"] { stroke: #294039; }
  .scheme path[stroke="#fffefa"] { stroke: #465347; }
  .scheme polyline { stroke: #bed397; }
  .scheme circle[fill="#253b31"] { fill: #344c3a; stroke: #bed397; stroke-width: 1.5; }
  .scheme text[fill="white"] { fill: var(--ink); }
  .scheme text[fill="#596b4f"], .scheme text[fill="#819175"] { fill: var(--muted); }
  .field-scheme path[stroke="#dce2d6"] { stroke: #455541; }
  .field-scheme path[stroke="#8f9e84"] { stroke: #bed397; }
  .field-scheme circle[fill="#f8f8f0"] { fill: var(--sage); }
  .field-scheme circle[stroke="#334431"] { stroke: #bed397; }
  .field-scheme circle[fill="#334431"] { fill: var(--lime); }
  .field-scheme text[fill="#334431"] { fill: var(--ink); }
  .field-scheme text[fill="#fff"] { fill: #172018; }
  .field-scheme text[fill="#53624e"] { fill: var(--muted); }

  /* Author's mobile route check has its own styling; keep it in the same palette. */
  .field-shell { color: var(--ink); }
  .field-shell button:focus-visible, .field-shell a:focus-visible,
  .field-shell summary:focus-visible, .field-shell textarea:focus-visible {
    outline-color: var(--lime);
  }
  .field-eyebrow, .field-section-label { color: var(--green-text); }
  .field-header p, .field-back { color: var(--muted); }
  .field-panel, .field-composer, .field-history-row, .field-note,
  .field-gps, .field-route-list, .field-summary-stats > div {
    background: var(--surface);
    color: var(--ink);
    border-color: var(--line);
  }
  .field-mode { background: #29332b; color: var(--ink); border-color: var(--control-line); }
  .field-mode:hover:not(:disabled) { background: #303c32; border-color: #9aac91; }
  .field-mode-selected {
    background: var(--forest);
    border-color: var(--lime);
    box-shadow: inset 0 0 0 1px var(--lime);
  }
  .field-mode-icon { color: var(--lime); }
  .field-mode > span:last-child { color: var(--muted); }
  .field-version { border-color: var(--line); }
  .field-version > span, .field-version p { color: var(--muted); }
  .field-readiness li span { color: var(--lime); }
  .field-readiness p, .field-compact p, .field-muted, .field-local-notice,
  .field-map-note, .field-history-row span span, .field-history-row > span:last-child,
  .field-progress, .field-timer p, .field-note-footer, .field-gps p,
  .field-summary-hero p, .field-summary-stats span, .field-check-summary span,
  .field-check-summary p { color: var(--muted); }
  .field-local-notice { border-color: var(--line); }
  .field-local-notice span { color: var(--lime); }
  .field-button { background: var(--surface); color: var(--ink); border-color: var(--control-line); }
  .field-button:hover:not(:disabled) { background: var(--sage); border-color: #9aac91; }
  .field-button-primary { background: var(--lime); color: #172018; border-color: var(--lime); }
  .field-button-primary:hover:not(:disabled) { background: #e4f4b0; border-color: #e4f4b0; }
  .field-active-button { background: var(--forest); color: var(--green-text); border-color: var(--lime); }
  .field-map { background: #1e2922; border-color: var(--line); }
  .field-badge { background: var(--sage); color: var(--muted); }
  .field-badge-done { background: var(--forest); color: var(--green-text); }
  .field-resume { background: #2d3b29; border-color: #59694c; }
  .field-resume > span, .field-resume p { color: var(--muted); }
  .field-history-row:hover { background: var(--sage); }
  .field-progress i { background: var(--lime); }
  .field-timer { background: #29332b; border-color: var(--line); }
  .field-transition { background: var(--orange-bg); border-left-color: var(--orange); }
  .field-transition p, .field-transition > span:last-child { color: #dfc6ae; }
  .field-location { color: var(--muted); }
  .field-scene-prompt { background: var(--sage); }
  .field-scene-prompt span, .field-scene-goal span { color: var(--green-text); }
  .field-script { border-color: var(--line); }
  .field-script summary span { color: var(--muted); }
  .field-script .field-listener-action { background: var(--orange-bg); }
  .field-listener-action p { color: #dfc6ae; }
  .field-check-row { border-top-color: var(--line); }
  .field-check-row button { background: var(--input); border-color: var(--control-line); color: var(--muted); }
  .field-check-row button:hover:not(:disabled) { background: var(--sage); }
  .field-check-row .field-check-yes { background: var(--forest); border-color: var(--lime); color: var(--green-text); }
  .field-check-row .field-check-no { background: var(--orange-bg); border-color: #ca956e; color: var(--orange); }
  .field-category { background: var(--input); border-color: var(--control-line); }
  .field-category button { color: var(--muted); }
  .field-category button:hover:not(:disabled) { background: var(--sage); }
  .field-category .field-selected { background: var(--forest); color: var(--ink); box-shadow: none; }
  .field-quick-buttons button { background: var(--sage); color: var(--green-text); border-color: var(--control-line); }
  .field-quick-buttons button:hover:not(:disabled) { background: #3c4b37; border-color: #9aac91; }
  .field-quick-buttons .field-recording { background: var(--danger-bg); border-color: #b98369; color: var(--danger); }
  .field-recording-info { color: var(--danger); }
  .field-draft-button { color: var(--orange); }
  .field-note { border-left-color: var(--orange); }
  .field-note-idea { border-color: var(--line); border-left-color: var(--lime); }
  .field-note-meta { color: #dfc6ae; }
  .field-note-idea .field-note-meta { color: var(--green-text); }
  .field-note-delete { color: var(--orange); }
  .field-note-media img { background: var(--input); }
  .field-note-media a { color: var(--green-text); }
  .field-gps a { color: var(--green-text); }
  .field-route-list button { color: var(--muted); border-bottom-color: var(--line); }
  .field-route-list button:hover:not(:disabled) { background: var(--sage); }
  .field-route-list button > span:first-child { background: var(--sage); color: var(--ink); }
  .field-route-list button small { color: var(--muted); }
  .field-route-list .field-route-current { color: var(--ink); background: var(--forest); }
  .field-route-list .field-route-current > span:first-child { background: var(--lime); color: #172018; }
  .field-route-check { color: var(--lime); }
  .field-finish { background: var(--forest); border-color: #91ac79; color: var(--green-text); }
  .field-summary-hero { background: #2d3b29; border-color: #59694c; }
  .field-summary-count { color: var(--lime); }
  .field-summary-count small { color: var(--muted); }
  .field-summary-title > span { background: var(--sage); color: var(--green-text); }
  .field-empty { background: var(--sage); border-color: var(--control-line); color: var(--muted); }
  .field-check-summary > div { border-top-color: var(--line); }
  .field-inline-status { color: var(--green-text); }
  .field-error { background: var(--danger-bg); color: var(--danger); border-color: #b98369; }
  .field-modal-backdrop { background: rgb(7 12 9 / 78%); }
  .field-composer { border: 1px solid var(--line); box-shadow: 0 20px 80px rgb(0 0 0 / 45%); }
  .field-composer > p { color: var(--muted); }
  .field-composer textarea { background: var(--input); border-color: var(--control-line); color: var(--ink); }
  .field-composer textarea:focus { border-color: var(--lime); }
  .field-composer textarea::placeholder { color: var(--muted); }
  .field-modal-close { color: var(--muted); }
  .field-scene-audio { background: var(--sage); border-color: var(--line); }
  .field-scene-audio a, .field-audio-name { color: var(--green-text); }
  .field-note-timecode { background: var(--forest); color: var(--green-text); }
  .field-mobile-capture {
    background: rgb(35 43 38 / 97%);
    border-color: var(--control-line);
    box-shadow: 0 5px 24px rgb(0 0 0 / 28%);
  }
  .field-mobile-capture > div:first-child span { color: var(--muted); }
  .field-mobile-capture > div:first-child button { color: var(--green-text); }
  .app-update-notice{position:fixed;right:24px;bottom:24px;z-index:60;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:14px 18px;border:1px solid var(--control-line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-size:12px;line-height:1.6}
  .app-update-notice[hidden]{display:none}
  @media(max-width:700px){.app-update-notice{left:16px;right:16px;bottom:calc(88px + env(safe-area-inset-bottom));flex-direction:column;align-items:stretch;gap:8px}}
}

/* The boot palette is inline on html; override only that for paper output. */
@media print {
  html { background: #fff !important; color-scheme: light !important; }
  .app-update-notice{display:none}
}
