body.theme-light {
  --ink: #0b1012;
  --muted: #66757b;
  --muted-2: #8a989d;
  --panel: #ffffff;
  --panel-2: #f7f9f9;
  --line: #e2e7e8;
  --line-strong: #cbd4d7;
  --teal: #e85a2a;
  --teal-deep: #c94a1e;
  --amber: #b83b1f;
  --danger: #c23c2a;
  background: #f3f6f6;
  color: var(--ink);
  color-scheme: light;
}

.theme-light .app { background: #f3f6f6; }
.theme-light .sidebar {
  border-right: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(232, 90, 42, .04), transparent 26%),
    #fff;
}
.theme-light .sidebar::before {
  opacity: .5;
  background-image:
    linear-gradient(rgba(10, 16, 18, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10, 16, 18, .035) 1px, transparent 1px);
}
.theme-light .sidebar-glow {
  background: radial-gradient(circle, rgba(232, 90, 42, .10), rgba(232, 90, 42, 0) 68%);
}
.theme-light .side-scroll { padding-bottom: 100px; }
.theme-light .site-back { color: #6f7c82; }
.theme-light .site-back:hover { color: var(--teal); }
.theme-light .brand-mark { color: var(--teal); }
.theme-light .brand-name { color: var(--ink); }
.theme-light .brand-name span { color: var(--teal); }
.theme-light .eyebrow { color: #7b898e; }
.theme-light .brand-copy .eyebrow { color: #7b898e; }
.theme-light .mode-tabs { border-color: var(--line); background: #f6f8f8; }
.theme-light .mode-tabs a { color: #6c7a80; }
.theme-light .mode-tabs a:hover { color: var(--ink); background: #fff; }
.theme-light .mode-tabs a.is-active { border-color: rgba(232, 90, 42, .25); background: #fff; color: var(--teal); }
.theme-light .project-kicker { color: #6c7a80; }
.theme-light .intro h1 { color: var(--ink); }
.theme-light .intro p { color: #69777d; }
.theme-light .stat {
  border-color: var(--line);
  background: #fff;
  box-shadow: 0 4px 18px rgba(10, 20, 22, .035);
}
.theme-light .stat-value { color: var(--ink); }
.theme-light .stat-label { color: #7a888d; }
.theme-light .stat.accent .stat-value { color: var(--teal); }
.theme-light .control-row label { color: #52636a; }
.theme-light .control-row output { color: var(--ink); }
.theme-light .range { --p: 50%; }
.theme-light .range::-webkit-slider-runnable-track {
  background: linear-gradient(90deg, #e85a2a 0 var(--p), #e2e7e8 var(--p) 100%);
}
.theme-light .range::-moz-range-track {
  background: linear-gradient(90deg, #e85a2a 0 var(--p), #e2e7e8 var(--p) 100%);
}
.theme-light .range::-webkit-slider-thumb { background: var(--ink); border-color: #fff; }
.theme-light .range::-moz-range-thumb { background: var(--ink); border-color: #fff; }
.theme-light .range-scale { color: #8a989d; }
.theme-light .segmented,
.theme-light .model-switch,
.theme-light .range-modes { border-color: var(--line); background: #f6f8f8; }
.theme-light .seg { color: #68767c; }
.theme-light .seg:hover { background: #fff; }
.theme-light .seg.is-active { border-color: rgba(232, 90, 42, .3); background: #fff; color: var(--teal); }
.theme-light .seg b { color: inherit; }
.theme-light .target-select { border-color: var(--line-strong); background: #fff; color: var(--ink); }
.theme-light .target-select:focus { border-color: var(--teal); }
.theme-light .panel-hint { color: #7a888d; }
.theme-light .spec-note,
.theme-light .source-note,
.theme-light .range-values { color: #7b898e; }
.theme-light .side-actions { border-color: var(--line); }
.theme-light .btn-primary { background: var(--teal); color: #fff; }
.theme-light .btn-primary:hover { background: #d94f22; }
.theme-light .btn-soft {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
}
.theme-light .btn-soft:hover { border-color: var(--teal); color: var(--teal); }
.theme-light .presentation-btn {
  border-color: rgba(232, 90, 42, .35);
  background: rgba(232, 90, 42, .07);
  color: #a53d18;
}
.theme-light .presentation-btn:hover { background: rgba(232, 90, 42, .13); border-color: var(--teal); }
.theme-light .icon-btn { color: #5d6c72; }
.theme-light .icon-btn.bordered { border-color: var(--line); background: #fff; }
.theme-light .save-status { color: #718087; }
.theme-light .status-dot { background: var(--teal); }
.theme-light .side-footer { color: #809096; border-color: var(--line); }
.theme-light .sidebar-contact {
  border-color: var(--line);
  background: linear-gradient(180deg, rgba(255, 255, 255, .9), #fff 40%);
  box-shadow: 0 -14px 30px rgba(10, 20, 22, .05);
}
.theme-light .contact-monogram { border-color: rgba(232, 90, 42, .35); background: rgba(232, 90, 42, .07); color: var(--teal); }
.theme-light .contact-body strong { color: var(--ink); }
.theme-light .contact-body span { color: #7a888d; }
.theme-light .contact-body a { color: var(--teal); }
.theme-light .camera-row {
  border-color: var(--line);
  background: #fff;
  color: #35464d;
}
.theme-light .camera-row:hover { background: #fbfcfc; }
.theme-light .camera-row.is-selected { border-color: rgba(232, 90, 42, .45); background: rgba(232, 90, 42, .045); }
.theme-light .camera-index { color: var(--teal); }
.theme-light .camera-coords { color: #7d8b90; }
.theme-light .camera-delete { color: #9aa6aa; }
.theme-light .camera-delete:hover { color: var(--danger); }
.theme-light .empty-list { color: #7c8a8f; border-color: var(--line); }
.theme-light .add-banner {
  border-color: rgba(232, 90, 42, .3);
  background: rgba(255, 255, 255, .95);
  color: var(--ink);
  box-shadow: 0 8px 28px rgba(10, 20, 22, .12);
}
.theme-light .add-banner button { color: var(--teal); }
.theme-light .toast {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
  box-shadow: 0 12px 34px rgba(10, 20, 22, .15);
}
.theme-light .help-popover {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
  box-shadow: 0 18px 50px rgba(10, 20, 22, .16);
}
.theme-light .help-head { border-color: var(--line); }
.theme-light .help-popover h3 { color: var(--ink); }
.theme-light .help-popover li { color: #65757b; }
.theme-light .help-popover b { color: var(--ink); }
.theme-light dialog {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
  box-shadow: 0 24px 60px rgba(10, 20, 22, .2);
}
.theme-light dialog::backdrop { background: rgba(10, 18, 20, .35); }
.theme-light dialog h2 { color: var(--ink); }
.theme-light dialog p { color: #6e7d82; }

/* map chrome */
.theme-light .map-shell { background: #e9eeee; }
.theme-light .map-vignette {
  background: linear-gradient(180deg, rgba(255, 255, 255, .2), transparent 18%, transparent 80%, rgba(255, 255, 255, .18));
}
.theme-light .map-watermark { color: rgba(10, 16, 18, .055); }
.theme-light .map-topbar { color: var(--ink); }
.theme-light .map-heading .eyebrow { color: #7d8a8f; }
.theme-light .map-title { color: var(--ink); }
.theme-light .map-heading {
  border-color: var(--line);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 5px 20px rgba(10, 20, 22, .08);
}
.theme-light .layer-chip {
  border-color: var(--line);
  background: rgba(255, 255, 255, .9);
  color: #5b6b71;
}
.theme-light .layer-chip.is-active { border-color: rgba(232, 90, 42, .35); color: var(--teal); }
.theme-light .layer-dot { background: var(--teal); }
.theme-light .coverage-pill {
  border-color: var(--line);
  background: rgba(255, 255, 255, .92);
  color: #56666c;
  box-shadow: 0 4px 16px rgba(10, 20, 22, .07);
}
.theme-light .coverage-dot { background: var(--teal); }
.theme-light .map-controls {
  border-color: var(--line);
  background: #fff;
  box-shadow: 0 5px 18px rgba(10, 20, 22, .09);
}
.theme-light .map-control { color: #4e6066; }
.theme-light .map-control:hover { color: var(--teal); background: #f7f9f9; }
.theme-light .controls-divider { background: var(--line); }
.theme-light .scalebar { color: #46575d; }
.theme-light .scalebar-line { background: #46575d; }
.theme-light .map-attribution { color: #6d7c81; }
.theme-light .map-legend {
  border-color: var(--line);
  background: rgba(255, 255, 255, .94);
  color: #5d6e74;
  box-shadow: 0 5px 18px rgba(10, 20, 22, .07);
}
.theme-light .legend-marker { background: #fff; border-color: var(--teal); }
.theme-light .legend-zone { border-color: var(--teal); }
.theme-light .legend-boundary { border-color: #b5c0c4; }
.theme-light .edit-hint {
  border-color: var(--line);
  background: rgba(255, 255, 255, .94);
  color: #5c6c72;
  box-shadow: 0 5px 18px rgba(10, 20, 22, .07);
}
.theme-light .hint-close { color: #7a888d; }
.theme-light .map-fatal { background: #eef2f2; color: #4b5c62; }
.theme-light .map-file-warning { background: #f4f7f6; }

/* markers */
.theme-light .camera-pin {
  border-color: var(--teal);
  background: #fff;
  color: #9f3d18;
  box-shadow: 0 4px 14px rgba(10, 20, 22, .18);
}
.theme-light .camera-icon:hover .camera-pin { border-color: #b83b1f; }
.theme-light .camera-icon.is-selected .camera-pin { border-color: #b83b1f; color: #b83b1f; }
.theme-light .marker-name {
  border-color: var(--line);
  background: rgba(255, 255, 255, .95);
  color: #26373d;
}

/* light map canvas overlay and labels */
.theme-light .maplibregl-marker { z-index: 2; }

/* Titan controls */
.theme-light .titan-brand-mark { color: var(--teal); }
.theme-light .titan-panel { border-color: var(--line); }
.theme-light .titan-panel h2 { color: var(--ink); }
.theme-light .titan-hint { color: #7b898e; }
.theme-light .titan-field > span { color: #75848a; }
.theme-light .titan-select { border-color: var(--line-strong); background: #fff; color: var(--ink); }
.theme-light .titan-select:focus { border-color: var(--teal); }
.theme-light .titan-spec { border-color: var(--line); background: #f7f9f9; }
.theme-light .titan-spec small { color: #7b898e; }
.theme-light .titan-spec b { color: var(--ink); }
.theme-light .titan-spec.accent b { color: var(--teal); }
.theme-light .titan-add-btn { background: var(--teal); color: #fff; }
.theme-light .titan-export-btn { border-color: rgba(232, 90, 42, .3); background: rgba(232, 90, 42, .06); color: #a53d18; }
.theme-light .titan-camera-row { border-color: var(--line); background: #fff; color: #35464d; }
.theme-light .titan-camera-row:hover { background: #fbfcfc; }
.theme-light .titan-camera-row.is-selected { border-color: rgba(232, 90, 42, .45); background: rgba(232, 90, 42, .045); }
.theme-light .titan-row-num { color: var(--teal); }
.theme-light .titan-row-az { color: #7b898e; }
.theme-light .titan-row-main b { color: var(--ink); }
.theme-light .titan-row-main small { color: #7b898e; }
.theme-light .titan-editor-head b { color: var(--ink); }
.theme-light .titan-editor { border-color: var(--line); }
.theme-light .titan-delete-btn { color: #a05046; }
.theme-light .titan-range-scale { color: #8b999e; }
.theme-light .titan-pin { border-color: var(--teal); background: #fff; color: #a53d18; }
.theme-light .titan-pin.is-selected { border-color: #b83b1f; color: #b83b1f; }
.theme-light .titan-pin-index { background: #e85a2a; color: #fff; }
.theme-light .titan-pin-label { border-color: var(--line); background: rgba(255, 255, 255, .95); color: #26373d; }
.theme-light .titan-handle { border-color: #b83b1f; background: #fff; color: #a53d18; }
.theme-light .titan-legend-perimeter { border-color: var(--teal); }
.theme-light .titan-legend-sector { border-color: rgba(232, 90, 42, .55); background: radial-gradient(circle, rgba(232, 90, 42, .3), rgba(232, 90, 42, .03) 70%); }
.theme-light .titan-legend-camera { border-color: var(--teal); background: #fff; }
.theme-light .map-controls { bottom: 72px; }
