/* FIELDNOTE — base: tokens, reset, controls */
:root {
  --bg: #0b100e;
  --bg-2: #0f1613;
  --panel: #131b17;
  --panel-2: #18221d;
  --panel-3: #1e2a24;
  --line: #25332b;
  --line-soft: #1b2620;
  --ink: #e8f0ea;
  --ink-2: #aab9b0;
  --ink-3: #75867c;
  --accent: #7fd1a8;
  --accent-2: #4fbf8f;
  --accent-ink: #06120c;
  --amber: #e6b866;
  --warn: #e0b464;
  --danger: #e07a6a;
  --violet: #a99bf0;
  --radius: 14px;
  --radius-sm: 9px;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  font: 400 14px/1.5 var(--sans);
  background:
    radial-gradient(900px 500px at 8% -10%, rgba(127, 209, 168, .10), transparent 60%),
    radial-gradient(700px 500px at 100% 0%, rgba(169, 155, 240, .06), transparent 60%),
    linear-gradient(var(--bg), var(--bg-2));
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
}
body::before { /* едва заметная топографическая сетка */
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity: .5;
  background-image: linear-gradient(rgba(127, 209, 168, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(127, 209, 168, .035) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse at 30% 0%, #000 0%, transparent 70%);
}
h1, h2, h3, h4, p, dl, dd, dt, ul { margin: 0; padding: 0; }
ul { list-style: none; }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-2); }
code, .mono { font-family: var(--mono); }
.muted { color: var(--ink-3); font-size: 12px; line-height: 1.5; }
[hidden] { display: none !important; }
::selection { background: rgba(127, 209, 168, .3); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 10px; border: 2px solid transparent; background-clip: padding-box; }

/* Кнопки */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 36px; padding: 0 14px;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--panel-2); color: var(--ink);
  font: 500 13px/1 var(--sans); cursor: pointer; white-space: nowrap;
  transition: transform .18s var(--ease), border-color .18s, background .18s, color .18s, box-shadow .18s;
}
.btn:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); transform: translateY(-1px); }
.btn:active:not(:disabled) { transform: translateY(0) scale(.98); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn-icon { width: 36px; padding: 0; font-size: 16px; position: relative; }
.btn-sm { min-height: 30px; padding: 0 10px; font-size: 12px; }
.btn-primary { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 600; }
.btn-primary:hover:not(:disabled) { background: var(--accent-2); border-color: var(--accent-2); color: var(--accent-ink); box-shadow: 0 6px 22px -8px rgba(127, 209, 168, .7); }
.btn-ai { background: linear-gradient(135deg, rgba(127, 209, 168, .18), rgba(169, 155, 240, .18)); border-color: rgba(127, 209, 168, .45); }
.btn-cta { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 600; }
.btn-cta:hover:not(:disabled) { background: var(--accent-2); color: var(--accent-ink); }

/* Поля */
.input, select, textarea, .map-search input, .case-title {
  width: 100%; color: var(--ink); background: var(--bg-2);
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  font: 400 13px/1.4 var(--sans); transition: border-color .18s, box-shadow .18s;
}
.input, select { min-height: 36px; padding: 0 12px; }
textarea { padding: 10px 12px; resize: vertical; }
.input:focus, select:focus, textarea:focus, .map-search input:focus, .case-title:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(127, 209, 168, .14);
}
select { cursor: pointer; width: auto; }
::placeholder { color: var(--ink-3); }

.kicker { font: 600 10px/1 var(--mono); letter-spacing: .14em; color: var(--accent); }
.tag { font: 600 10px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); white-space: nowrap; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip {
  display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--panel-2);
  color: var(--accent); font: 500 12px/1 var(--sans);
  transition: border-color .18s, background .18s, transform .18s var(--ease);
}
.chip:hover { border-color: var(--accent); background: rgba(127, 209, 168, .1); transform: translateY(-1px); color: var(--accent-2); }
