/* Стили панели (макет v2). Без внешних ресурсов и inline-стилей: CSP default-src 'self'. */
:root { --bg:#f6f7f9; --card:#fff; --ink:#1d2330; --mute:#6b7280; --line:#e3e6eb; --accent:#2563eb; --high:#c2410c; --med:#b45309; --ok:#15803d; --warn:#a16207; --bad:#b91c1c; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:14px/1.45 system-ui, sans-serif; }
header { display:flex; align-items:center; justify-content:space-between; padding:12px 24px; background:#111827; color:#fff; }
header b { font-size:16px; }
header span { color:#9ca3af; font-size:13px; }
button.link { background:none; border:0; color:#9ca3af; padding:0; text-decoration:underline; }
.layout { display:flex; min-height:calc(100vh - 46px); }
nav { width:210px; flex:0 0 210px; background:#1f2937; padding:14px 0; }
nav a { display:block; padding:9px 20px; color:#d1d5db; }
nav a.on { background:#374151; color:#fff; border-left:3px solid var(--accent); padding-left:17px; }
nav a small { color:#9ca3af; float:right; }
main { flex:1; min-width:0; padding:20px 20px 60px; }
.page { display:none; } .page.on { display:block; }
.hidden { display:none; }
.emails { white-space:normal; min-width:230px; }
.chip { display:inline-block; background:#f1f5f9; border:1px solid var(--line); border-radius:10px; padding:0 7px; margin:1px 2px 1px 0; font-size:12px; }
.edit { color:var(--accent); font-size:12px; margin-left:4px; cursor:pointer; background:none; border:0; padding:0; }
.editing input { width:100%; padding:4px 6px; border:1px solid var(--accent); border-radius:4px; font-size:12px; }
.editing .btns { margin-top:3px; } .editing button { padding:2px 8px; font-size:12px; }
@media (max-width:700px) { .layout { flex-direction:column; } nav { width:auto; flex:none; display:flex; overflow-x:auto; padding:0; } nav a { white-space:nowrap; } nav a.on { border-left:0; border-bottom:3px solid var(--accent); padding-left:20px; } }
.banner { background:#eff6ff; border:1px solid #bfdbfe; padding:10px 14px; border-radius:8px; margin-bottom:16px; }
.banner.bad { background:#fee2e2; border-color:#fecaca; color:var(--bad); }
.banner.warn { background:#fef9c3; border-color:#fde68a; color:var(--warn); }
.result { background:#f0fdf4; border:1px solid #bbf7d0; padding:10px 14px; border-radius:8px; margin-bottom:16px; }
.result.bad { background:#fee2e2; border-color:#fecaca; color:var(--bad); }
.confirm { background:#fff7ed; border:1px solid #fdba74; padding:10px 14px; border-radius:8px; margin-bottom:16px; }
.confirm ul { margin:6px 0 10px; padding-left:20px; }
section { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px; margin-bottom:20px; }
h2 { margin:0 0 12px; font-size:17px; }
.bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
input[type=text], input[type=password] { flex:1; min-width:240px; padding:7px 10px; border:1px solid var(--line); border-radius:6px; }
input.filter { max-width:220px; flex:0 1 220px; }
button { padding:7px 12px; border-radius:6px; border:1px solid var(--line); background:#fff; cursor:pointer; }
button:disabled { opacity:.5; cursor:default; }
button.primary { background:var(--accent); color:#fff; border-color:var(--accent); }
button.danger { color:var(--bad); border-color:#fecaca; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:7px 8px; border-bottom:1px solid var(--line); white-space:nowrap; }
th { color:var(--mute); font-weight:600; font-size:12px; text-transform:uppercase; }
th[data-k] { cursor:pointer; }
th.asc::after { content:" ▲"; } th.desc::after { content:" ▼"; }
th.r, td.num { text-align:right; font-variant-numeric:tabular-nums; }
th.chk { width:24px; }
.h { color:var(--high); font-weight:600; } .m { color:var(--med); font-weight:600; }
.zero { color:#9ca3af; }
.tag { display:inline-block; padding:1px 7px; border-radius:10px; font-size:12px; }
.tag.ok { background:#dcfce7; color:var(--ok); } .tag.warn { background:#fef9c3; color:var(--warn); } .tag.bad { background:#fee2e2; color:var(--bad); }
.tag.pend { background:#e0e7ff; color:#3730a3; }
a { color:var(--accent); text-decoration:none; }
.wrap { overflow-x:auto; }
.q { color:var(--mute); font-size:12px; }
.login { display:flex; align-items:center; justify-content:center; min-height:100vh; }
.loginbox { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:24px; width:min(340px, 92vw); }
.loginbox h1 { font-size:17px; margin:0 0 14px; }
.loginbox label { display:block; margin-bottom:12px; }
.loginbox input { display:block; width:100%; margin-top:4px; min-width:0; }
