:root {
  --bg: #f4f6f5; --panel: #ffffff; --ink: #17201e; --muted: #67726f; --line: #e2e7e5;
  --side: #141b1a; --side-ink: #c9d3d0; --tint: #0e7462; --tint-soft: #e2f1ee;
  --red: #c2412d; --red-soft: #fbeae6; --green: #1f7a45; --green-soft: #e3f3e9; --orange: #b86b12; --orange-soft: #fbf0e1;
  --radius: 12px; color-scheme: light;
}
* { box-sizing: border-box; }
[v-cloak] { display: none; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 14px/1.45 'Inter', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: 'Manrope', 'Inter', sans-serif; margin: 0; letter-spacing: -0.01em; }
h1 { font-size: 26px; font-weight: 800; } h2 { font-size: 18px; font-weight: 700; } h3 { font-size: 15px; font-weight: 700; }
.layout { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
.side { background: var(--side); color: var(--side-ink); padding: 22px 16px; display: flex; flex-direction: column; gap: 6px; }
.side .brand { color: #fff; font: 800 16px 'Manrope', sans-serif; margin-bottom: 18px; display: flex; gap: 10px; align-items: center; }
.side .brand span { width: 30px; height: 30px; border-radius: 9px; background: var(--tint); display: grid; place-items: center; }
.side button { all: unset; cursor: pointer; padding: 9px 12px; border-radius: 8px; font-weight: 500; }
.side button.on, .side button:hover { background: rgb(255 255 255 / 8%); color: #fff; }
.side .grow { flex: 1; }
main { padding: 28px 32px; min-width: 0; }
.head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
.muted { color: var(--muted); } .small { font-size: 12.5px; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 20px; }
.kpi { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; }
.kpi b { display: block; font: 800 24px 'Manrope', sans-serif; margin-top: 2px; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
table { width: 100%; border-collapse: collapse; }
th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 600; padding: 10px 14px; border-bottom: 1px solid var(--line); background: #fafbfa; }
td { padding: 11px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; }
tr.click { cursor: pointer; } tr.click:hover td { background: #f8faf9; }
tr:last-child td { border-bottom: 0; }
.badge { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; letter-spacing: .03em; }
.badge.pro { background: var(--tint); color: #fff; } .badge.base { background: #e8ecea; color: #3c4744; }
.badge.red { background: var(--red-soft); color: var(--red); } .badge.orange { background: var(--orange-soft); color: var(--orange); } .badge.green { background: var(--green-soft); color: var(--green); }
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #c3cbc8; margin-right: 6px; } .dot.on { background: #2fae63; }
.btn { font: 600 13px 'Inter', sans-serif; padding: 8px 14px; border-radius: 8px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); cursor: pointer; }
.btn:hover { border-color: #c9d1ce; } .btn:disabled { opacity: .5; cursor: default; }
.btn.primary { background: var(--tint); border-color: var(--tint); color: #fff; }
.btn.danger { color: var(--red); }
.grid2 { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.box { padding: 16px 18px; } .box + .box { border-top: 1px solid var(--line); }
.field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.field span { font-size: 12px; font-weight: 600; color: var(--muted); }
input, select, textarea { font: 14px 'Inter', sans-serif; padding: 8px 10px; border: 1px solid #d3dad7; border-radius: 8px; background: #fff; color: var(--ink); width: 100%; }
textarea { min-height: 70px; resize: vertical; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.key { font: 600 15px ui-monospace, Menlo, monospace; letter-spacing: .04em; background: #f1f4f3; padding: 8px 10px; border-radius: 8px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.notice { padding: 10px 12px; border-radius: 8px; font-size: 13px; margin-bottom: 12px; }
.notice.error { background: var(--red-soft); color: var(--red); } .notice.ok { background: var(--green-soft); color: var(--green); } .notice.warn { background: var(--orange-soft); color: var(--orange); }
.hstack { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.metrics div { background: #f6f8f7; border-radius: 8px; padding: 8px 10px; } .metrics b { display: block; font: 800 18px 'Manrope', sans-serif; }
pre { white-space: pre-wrap; word-break: break-all; font-size: 11.5px; background: #f6f8f7; padding: 10px; border-radius: 8px; margin: 0; }
.center-screen { min-height: 100vh; display: grid; place-items: center; padding: 24px; text-align: center; }
.center-screen .panel { padding: 28px; max-width: 420px; }
@media (max-width: 900px) {
  .layout { grid-template-columns: 1fr; } .side { flex-direction: row; flex-wrap: wrap; align-items: center; padding: 12px 16px; } .side .brand { margin: 0 12px 0 0; } .side .grow { display: none; }
  main { padding: 20px 16px; } .grid2 { grid-template-columns: 1fr; } .hide-sm { display: none; }
}
