:root{--bg: #F4F5F7;--surface: #FFFFFF;--ink: #111827;--muted: #4B5563;--line: #E5E7EB;--line2: #D1D5DB;--nav: #0F1B2D;--nav-active: #1D2E48;--nav-ink: #C9D2DE;--nav-muted: #9AA6B8;--accent: #1D4ED8;--accent-ink: #FFFFFF;--accent-soft: #DBEAFE;--accent-deep: #1E3A8A;--warn: #B45309;--warn-soft: #FEF3C7;--danger: #B91C1C;--danger-soft: #FEE2E2;--mono: "Cascadia Mono", Consolas, "DejaVu Sans Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Noto Sans,system-ui,-apple-system,sans-serif;font-size:15px}a{color:var(--accent)}button{font:inherit;cursor:pointer}button:disabled{opacity:.6;cursor:default}input,select,textarea{font:inherit;color:var(--ink)}.shell{display:flex;min-height:100%}.nav{width:232px;flex:none;background:var(--nav);color:#e5e9f0;padding:28px 18px;display:flex;flex-direction:column;gap:28px}.nav .brand{padding:0 10px;display:flex;flex-direction:column;gap:2px}.nav .brand b{font-size:18px}.nav .brand span{font-size:13px;color:var(--nav-muted)}.nav .links{display:flex;flex-direction:column;gap:4px}.nav .links a{display:block;padding:11px 12px;border-radius:8px;color:var(--nav-ink);text-decoration:none}.nav .links a.active{background:var(--nav-active);color:#fff;font-weight:600}.nav .links a.soon{opacity:.55}.nav .who{margin-top:auto;padding:12px 10px;border-top:1px solid #24364F;font-size:13px;color:var(--nav-muted);display:flex;flex-direction:column;gap:6px}.nav .who b{color:#e5e9f0}.nav .who button{align-self:flex-start;background:none;border:1px solid #3A4E6B;color:#e5e9f0;border-radius:6px;padding:6px 10px}.main{flex:1;min-width:0;padding:32px 40px;display:flex;flex-direction:column;gap:24px;max-width:1240px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.page-head h1{margin:0;font-size:28px}.page-head .sub{font-size:14px;color:var(--muted);margin-top:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px}.card h2{margin:0 0 12px;font-size:17px}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:6px}.kpi .l{font-size:13px;color:var(--muted)}.kpi .v{font-size:28px;font-weight:700}.kpi .n{font-size:13px;color:var(--muted)}.kpi .n.warn{color:var(--warn)}.kpi .n.danger{color:var(--danger)}.grid2{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.grid2>.wide{flex:3 1 520px;min-width:0}.grid2>.narrow{flex:2 1 320px;min-width:0}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-size:13px;font-weight:600;padding:8px 6px}td{padding:11px 6px;border-top:1px solid #F0F1F3;vertical-align:middle}.scroll-x{overflow-x:auto}.mono{font-family:var(--mono)}.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:600;background:#f3f4f6;color:var(--muted)}.pill.ok{background:var(--accent-soft);color:var(--accent-deep)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.btn{height:44px;padding:0 18px;border-radius:8px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.small{height:36px;padding:0 12px;font-size:13px}.alert-item{border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.alert-item .t{display:flex;justify-content:space-between;gap:8px;font-weight:700;font-size:14px}.alert-item .t span:last-child{font-weight:400;color:var(--muted);font-family:var(--mono);font-size:13px}.alert-item.tamper .t span:first-child{color:var(--danger)}.alert-item.wrong_codes .t span:first-child,.alert-item.gateway_offline .t span:first-child{color:var(--warn)}.empty{color:var(--muted);font-size:14px;padding:8px 0}.error{background:var(--danger-soft);color:var(--danger);border-radius:8px;padding:10px 12px;font-size:14px}.login-wrap{min-height:100%;background:var(--nav);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px}.login-brand{color:#e5e9f0;text-align:center;display:flex;flex-direction:column;gap:4px}.login-brand b{font-size:26px}.login-brand span{color:var(--nav-muted)}.login{width:400px;max-width:100%;background:var(--surface);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:16px}.login h1{margin:0;font-size:20px}.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}.field input{height:44px;border:1px solid var(--line2);border-radius:8px;padding:0 12px;font-weight:400}.login footer,.credit{font-size:13px;color:var(--nav-muted);text-align:center}.form-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.form-row .field{flex:1 1 180px}.field select,.field textarea{height:44px;border:1px solid var(--line2);border-radius:8px;padding:0 12px;font-weight:400;background:#fff}.field textarea{height:auto;padding:10px 12px}.back{font-size:14px;text-decoration:none}.row-link{cursor:pointer}.row-link:hover td{background:#f9fafb}.dev{border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:10px;background:var(--surface)}.dev .head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.dev .head b{font-size:17px}.kv{display:flex;justify-content:space-between;gap:8px;font-size:14px}.kv span:first-child{color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn.warnbtn{background:#c2410c;border-color:#c2410c;color:#fff}.btn.danger-ghost{color:var(--danger)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line2);background:#fff}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}.modal{width:560px;max-width:100%;background:#fff;border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:16px;max-height:90vh;overflow:auto}.modal h2{margin:0;font-size:20px}.modal .foot{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.bigcode{font-family:var(--mono);font-size:40px;font-weight:700;letter-spacing:6px;text-align:center;padding:18px;background:#f3f4f6;border-radius:12px}.ok-box{background:var(--accent-soft);color:var(--accent-deep);border-radius:8px;padding:12px;font-size:14px}.note{font-size:13px;color:var(--muted)}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
