:root{--bg:#0b0e14;--bg-elev:#11161f;--card:#141a24;--line:#232b39;--txt:#e8ebf1;--muted:#929cad;--accent:#6c8cff;--accent-weak:rgba(108,140,255,.16);--ok:#3ecf8e;--warn:#e3b341;--bad:#f0584d;--chip:#1b2230;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px rgba(0,0,0,.35), 0 10px 30px rgba(0,0,0,.3);--shadow-lg:0 24px 70px rgba(0,0,0,.55);--overlay:rgba(5,8,13,.6)}body.light{--bg:#f5f4f1;--bg-elev:#ffffff;--card:#ffffff;--line:#e7e4dc;--txt:#1b1f27;--muted:#6b7280;--accent:#1d2128;--accent-weak:rgba(29,33,40,.08);--ok:#0f9d63;--warn:#b27c12;--bad:#c5392b;--chip:#efece5;--shadow:0 1px 2px rgba(24,24,34,.05), 0 10px 30px rgba(24,24,34,.06);--shadow-lg:0 24px 70px rgba(24,24,34,.16);--overlay:rgba(20,22,28,.42)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 22px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar h1{font-size:16px;margin:0;font-weight:700;letter-spacing:-.01em}.topbar h1 span{color:var(--accent)}.topbar nav{display:flex;gap:2px}.topbar nav a{padding:7px 12px;border-radius:9px;color:var(--muted);font-size:13px;font-weight:500;transition:background .15s,color .15s}.topbar nav a.active{background:var(--chip);color:var(--txt)}.topbar nav a:hover{color:var(--txt);background:color-mix(in srgb,var(--chip) 60%,transparent)}.grow{flex:1}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex:none;background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar nav .nav-group{font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--muted);padding:14px 10px 6px}.shell.sb-collapsed .sidebar{width:64px}.shell.sb-collapsed .sidebar nav a{font-size:0;justify-content:center;padding:9px 0}.shell.sb-collapsed .sidebar nav a .ico{font-size:15px}.shell.sb-collapsed .sidebar nav .nav-group{display:none}.shell.sb-collapsed .sidebar-foot{flex-direction:column;gap:6px}.shell.sb-collapsed .sidebar-foot button{display:none}.sidebar .brand{font-weight:700;font-size:15px;letter-spacing:-.01em;padding:4px 6px 16px;display:flex;align-items:center;gap:9px}.sidebar .brand .logo{width:30px;height:30px;border-radius:8px;background:#fff;display:grid;place-items:center;padding:2px;box-shadow:0 1px 3px #0003}.sidebar .brand .logo img{width:100%;height:100%;object-fit:contain;display:block}.sidebar .brand>span:last-child{color:var(--accent)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--muted);font-size:13.5px;font-weight:500;transition:background .15s,color .15s}.sidebar nav a .ico{width:18px;text-align:center;font-size:14px}.sidebar nav a:hover{color:var(--txt);background:color-mix(in srgb,var(--chip) 55%,transparent)}.sidebar nav a.active{color:var(--txt);background:var(--chip)}.sidebar-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:12px 4px 2px;border-top:1px solid var(--line)}.content{flex:1;min-width:0;display:flex;flex-direction:column}.search-trigger{display:flex;align-items:center;gap:8px;min-width:280px;justify-content:flex-start;color:var(--muted);background:var(--bg-elev);font-weight:500}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tabs .tab{background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;color:var(--muted);padding:10px 14px;font-weight:600;font-size:13px;margin-bottom:-1px;transition:color .15s,border-color .15s}.tabs .tab:hover{color:var(--txt)}.tabs .tab.active{color:var(--accent);border-bottom-color:var(--accent)}.shim{background:linear-gradient(90deg,var(--chip) 0%,color-mix(in srgb,var(--chip) 55%,var(--bg-elev)) 50%,var(--chip) 100%);background-size:200% 100%;animation:shim 2.2s ease-in-out infinite;opacity:.7}@keyframes shim{0%{background-position:0% 0}to{background-position:-200% 0}}tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--chip) 14%,transparent)}.search-trigger kbd{font:600 10.5px ui-monospace,SF Mono,Menlo,monospace;background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--muted)}input,select{background:var(--bg-elev);border:1px solid var(--line);color:var(--txt);border-radius:var(--radius-sm);padding:9px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--muted)}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}button{background:var(--chip);color:var(--txt);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 13px;font-size:12.5px;font-weight:550;cursor:pointer;transition:border-color .15s,background .15s,transform .05s,filter .15s}button:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}button:active{transform:translateY(1px)}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-weak)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow)}button.primary:hover{filter:brightness(1.07);border-color:var(--accent)}button.bad{background:color-mix(in srgb,var(--bad) 13%,var(--card));border-color:color-mix(in srgb,var(--bad) 30%,var(--line));color:var(--bad)}button.bad:hover{border-color:var(--bad)}main{padding:24px;max-width:1480px;margin:0 auto;width:100%}h2{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:0 0 16px}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s,transform .12s}.card:hover{border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}.row{display:flex;align-items:center;gap:10px}.dot{width:9px;height:9px;border-radius:50%;flex:none}.name{font-weight:650;font-size:15px;letter-spacing:-.01em}.badge{font-size:11px;padding:3px 9px;border-radius:999px;background:var(--chip);color:var(--muted);border:1px solid var(--line);font-weight:550}.muted{color:var(--muted);font-size:12.5px}.meta{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:12.5px;color:var(--muted)}.meta b{color:var(--txt);font-weight:550}.bat{height:8px;background:var(--bg-elev);border-radius:6px;overflow:hidden;border:1px solid var(--line);flex:1}.bat>div{height:100%;border-radius:6px}.actions{display:flex;flex-wrap:wrap;gap:7px}.applist{max-height:170px;overflow:auto;border-top:1px solid var(--line);padding-top:10px;font-size:12px}.applist .r{display:flex;justify-content:space-between;gap:8px;padding:2px 0;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tbody tr:hover td{background:color-mix(in srgb,var(--chip) 45%,transparent)}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:var(--shadow)}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--card);border:1px solid var(--line);padding:11px 18px;border-radius:12px;opacity:0;color:var(--txt);box-shadow:var(--shadow-lg);transition:opacity .2s;pointer-events:none;z-index:50;max-width:80vw}.s-acked{color:var(--ok)}.s-failed{color:var(--bad)}.s-pending,.s-delivered{color:var(--warn)}.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.gate .panel{box-shadow:var(--shadow-lg);margin:0;border-radius:18px;padding:30px}.kpigrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.kpi-v{font-size:32px;font-weight:750;line-height:1;letter-spacing:-.02em}.kpi-l{margin-top:10px;font-size:13px;font-weight:600}.kpi-s{margin-top:4px;font-size:11.5px;color:var(--muted)}.cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding-top:18vh;z-index:60}.cmdk{width:520px;max-width:90vw;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg)}.cmdk input{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 18px;font-size:15px;background:var(--card)}.cmdk input:focus{box-shadow:none}.cmdk-list{max-height:320px;overflow:auto;padding:7px}.cmdk-item{padding:10px 13px;border-radius:9px;cursor:pointer;font-size:14px}.cmdk-item:hover{background:var(--chip)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40}.drawer{position:fixed;top:0;right:0;height:100vh;width:440px;max-width:92vw;background:var(--card);border-left:1px solid var(--line);z-index:41;overflow-y:auto;padding:22px;box-shadow:var(--shadow-lg)}.drawer h3{color:var(--muted);font-size:13px;margin:18px 0 8px;font-weight:600}.feedrow{display:flex;align-items:baseline;gap:8px;font-size:12px;padding:3px 0}.feedrow .t{font-weight:600;min-width:88px}.feedrow .s{font-size:10.5px;padding:2px 8px;border-radius:999px}.feedrow .d{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedrow .age{color:var(--muted);font-size:11px}.s.acked{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.s.failed{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--bad)}.s.pending,.s.delivered{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
