:root{
  --bg:#f6f7f5; --card:#fff; --ink:#1d2420; --muted:#6b7770; --line:#e3e7e2;
  --accent:#3f7d4e; --accent-soft:#eaf3ec; --warn:#b4462f; --warn-soft:#fbeeea;
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent)}
.wrap{max-width:1180px;margin:0 auto;padding:18px}
header.top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header.top .wrap{display:flex;align-items:center;gap:16px;padding:12px 18px}
.brand{font-weight:700;letter-spacing:.06em}
.badge{font-size:12px;padding:2px 8px;border-radius:20px;background:var(--accent-soft);color:var(--accent)}
nav.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:16px 0}
nav.tabs button{border:1px solid var(--line);background:var(--card);padding:7px 12px;border-radius:8px;cursor:pointer;font:inherit;color:var(--muted)}
nav.tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}
.card h2{margin:0 0 4px;font-size:17px}
.card p.hint{margin:0 0 12px;color:var(--muted);font-size:13px}
button.act{border:1px solid var(--accent);background:var(--accent);color:#fff;padding:8px 14px;border-radius:8px;cursor:pointer;font:inherit}
button.ghost{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:8px;cursor:pointer;font:inherit}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}
label{display:block;font-size:13px;color:var(--muted);margin:8px 0 4px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.row>*{flex:1 1 180px}
.row .narrow{flex:0 0 150px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:13px;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:7px 9px;text-align:left;white-space:nowrap;vertical-align:top}
th{background:#f1f4f0;font-weight:600}
tr.section td{background:var(--accent-soft);font-weight:700}
td.num,th.num{text-align:right}
.warn{color:var(--warn);font-weight:600}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.phone{background:#0f1512;border-radius:22px;padding:12px;color:#e9efe9}
.phone .screen{background:#1a221d;border-radius:14px;height:520px;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.msg{background:#243029;border-radius:12px;padding:9px 11px;font-size:13px;white-space:pre-wrap;max-width:95%}
.msg.me{background:var(--accent);align-self:flex-end;color:#fff}
.kb{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.kb button{background:#2f3d35;border:0;color:#e9efe9;padding:8px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;text-align:center}
.kb button:hover{background:#3c4e43}
.phone .compose{display:flex;gap:6px;margin-top:8px}
.phone .compose input{background:#243029;border:0;color:#e9efe9}
.stat{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:8px}
.stat div{background:var(--accent-soft);border-radius:10px;padding:9px 13px;font-size:13px}
.stat b{display:block;font-size:19px}
.login{max-width:380px;margin:80px auto}
.err{color:var(--warn);font-size:13px;margin-top:8px}
ul.links{list-style:none;padding:0;margin:0;font-size:13px}
ul.links li{padding:6px 0;border-bottom:1px solid var(--line)}
code{background:#eef1ed;padding:1px 5px;border-radius:5px;font-size:12px}
