:root {
  --YA-primary:#0b7a3b;
  --YA-primary-soft:#e8f7ee;
  --YA-accent:#f59e0b;
  --YA-primary-dark:#064d2a;
  --YA-dark:#061512;
  --YA-background:#f7f8fa;
  --YA-card:#ffffff;
  --YA-border:#e5e7eb;
  --YA-text:#111827;
  --YA-muted:#6b7280;
  --YA-danger:#ef4444;
  --YA-warning:#f59e0b;
  --YA-success:#16a34a;
  --YA-blue:#2563eb;
  --YA-radius:16px;
  --YA-shadow:0 14px 36px rgba(15, 23, 42, .08);
  --YA-shadow-strong:0 24px 70px rgba(6, 21, 18, .16);
  --YA-focus:0 0 0 4px rgba(11,122,59,.14);
}

html {
  scroll-behavior:smooth;
}

body {
  accent-color:var(--YA-primary);
}

button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color:transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline:3px solid rgba(11,122,59,.32);
  outline-offset:3px;
}

.YA-card {
  background:var(--YA-card);
  border:1px solid var(--YA-border);
  border-radius:var(--YA-radius);
  box-shadow:var(--YA-shadow);
}

.YA-surface {
  background:linear-gradient(135deg,#fff,#f7fbf8);
  border:1px solid var(--YA-border);
  border-radius:24px;
  box-shadow:var(--YA-shadow);
}

.YA-button {
  min-height:42px;
  border:0;
  border-radius:14px;
  padding:10px 14px;
  background:var(--YA-primary);
  color:#fff;
  font-weight:800;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.YA-button:hover { transform:translateY(-1px); filter:brightness(.98); }
.YA-button.secondary { background:var(--YA-blue); }
.YA-button.danger { background:var(--YA-danger); }
.YA-button:disabled { opacity:.55; cursor:not-allowed; }

.YA-badge {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:6px 10px;
  background:#e8f7ee;
  color:var(--YA-primary-dark);
  font-size:12px;
  font-weight:900;
}

.YA-badge.warning {
  background:#fff7e6;
  color:#7a4b07;
}

.YA-badge.dark {
  background:var(--YA-dark);
  color:#fff;
}

.YA-form-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}

.YA-empty-action {
  display:grid;
  place-items:center;
  gap:10px;
  min-height:160px;
  padding:22px;
  border:1px dashed var(--YA-border);
  border-radius:22px;
  background:#fbfcfd;
  text-align:center;
}

.YA-empty-action strong {
  color:var(--YA-text);
  font-size:18px;
}

.YA-empty-action span {
  max-width:420px;
  color:var(--YA-muted);
  line-height:1.45;
}

.YA-mobile-bar {
  position:fixed;
  left:50%;
  bottom:12px;
  z-index:60;
  display:none;
  grid-template-columns:repeat(5,1fr);
  gap:6px;
  width:min(620px, calc(100% - 24px));
  padding:8px;
  border:1px solid var(--YA-border);
  border-radius:22px;
  background:rgba(255,255,255,.94);
  box-shadow:var(--YA-shadow-strong);
  transform:translateX(-50%);
  backdrop-filter:blur(12px);
}

.YA-mobile-bar a,
.YA-mobile-bar button {
  display:grid;
  place-items:center;
  min-height:42px;
  border:0;
  border-radius:16px;
  background:#eef2f6;
  color:var(--YA-text);
  text-decoration:none;
  font-weight:900;
  font-size:12px;
}

.YA-mobile-bar a[aria-current="page"],
.YA-mobile-bar button[aria-current="page"] {
  background:var(--YA-primary);
  color:#fff;
}

.YA-skeleton {
  min-height:18px;
  border-radius:999px;
  background:linear-gradient(90deg,#eef2f7,#f8fafc,#eef2f7);
  background-size:200% 100%;
  animation:YA-shimmer 1.1s linear infinite;
}

.YA-skeleton-card {
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid var(--YA-border);
  border-radius:var(--YA-radius);
  background:#fff;
}

.YA-skeleton-card span,
.YA-skeleton-card strong,
.YA-skeleton-card em {
  display:block;
  height:12px;
  border-radius:999px;
  background:linear-gradient(90deg,#eef2f7,#f8fafc,#eef2f7);
  background-size:200% 100%;
  animation:YA-shimmer 1.1s linear infinite;
}

.YA-skeleton-card span { width:44%; }
.YA-skeleton-card strong { width:78%; height:18px; }
.YA-skeleton-card em { width:62%; }

@keyframes YA-shimmer {
  from { background-position:200% 0; }
  to { background-position:-200% 0; }
}

.YA-empty {
  display:grid;
  place-items:center;
  text-align:center;
  min-height:140px;
  border:1px dashed var(--YA-border);
  border-radius:var(--YA-radius);
  color:var(--YA-muted);
  background:#fbfcfd;
}

.YA-toast-root {
  position:fixed;
  right:18px;
  bottom:18px;
  display:grid;
  gap:10px;
  z-index:9999;
}

.YA-toast {
  max-width:min(360px, calc(100vw - 36px));
  padding:13px 15px;
  border-radius:14px;
  background:var(--YA-dark);
  color:#fff;
  box-shadow:var(--YA-shadow);
  transform:translateY(8px);
  opacity:0;
  transition:.18s ease;
}

.YA-toast.show { transform:translateY(0); opacity:1; }
.YA-toast-success { background:var(--YA-success); }
.YA-toast-error { background:var(--YA-danger); }
.YA-toast-warning { background:var(--YA-warning); color:#241400; }

.YA-action-status {
  border:1px solid var(--YA-border);
  border-radius:var(--YA-radius);
  background:#fff;
  box-shadow:var(--YA-shadow);
  padding:14px;
}

.YA-action-status pre {
  white-space:pre-wrap;
  background:#f8fafc;
  border-radius:12px;
  padding:10px;
  color:var(--YA-muted);
}

.YA-map-fallback {
  min-height:220px;
  display:grid;
  place-items:center;
  text-align:center;
  border:1px dashed var(--YA-border);
  border-radius:var(--YA-radius);
  color:var(--YA-muted);
  background:#fbfcfd;
}

@media (max-width: 760px) {
  :root { --YA-radius:18px; }
  .YA-mobile-bar { display:grid; }
  .YA-card,
  .YA-surface {
    border-radius:20px;
  }
  .YA-button {
    min-height:48px;
  }
}


/* Production polish */
:root { --ya-focus: rgba(8,127,63,.22); }
button, a, input, select, textarea { transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease; }
button:not(:disabled):active { transform: translateY(1px); }
input:focus, select:focus, textarea:focus { outline:none; border-color:#168a4b !important; box-shadow:0 0 0 4px var(--ya-focus) !important; }
button:disabled { opacity:.55; cursor:not-allowed; }
.YA-action-status { border-radius:14px; padding:12px 14px; margin:10px 0; }
.YA-action-success { display:none; }
.YA-action-error { background:#fff5f5; border:1px solid #fecaca; color:#991b1b; }
.YA-toast-root { position:fixed; right:20px; bottom:20px; z-index:9999; display:grid; gap:10px; max-width:min(420px,calc(100vw - 40px)); }
.YA-toast { background:#102319; color:#fff; padding:13px 16px; border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,.2); opacity:0; transform:translateY(8px); }
.YA-toast.show { opacity:1; transform:none; }
.YA-toast-error { background:#991b1b; }
.YA-toast-success { background:#087f3f; }
