:root{--bg-base:#070d1a;--bg-surface:#0a1020;--bg-elevated:#0d1625;--border:#1a2840;--border-faint:#141e30;--text-primary:#c8d8f0;--text-secondary:#a8c0d8;--text-muted:#3a5070;--text-dim:#2a4060;--accent:#00c896;--error:#ff4d6d;--warn:#ffb347;--info:#00c896;--debug:#6b7fa3;font-family:IBM Plex Mono,Courier New,monospace}*{box-sizing:border-box}html,body,#app{width:100%;min-height:100%;margin:0}body{color:var(--text-primary);background:radial-gradient(1200px 500px at 20% -10%, #10335a 0%, transparent 65%), radial-gradient(1000px 400px at 85% 120%, #0f2d2a 0%, transparent 60%), var(--bg-base)}.auth-page,.dashboard-page{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{border:1px solid var(--border);background:linear-gradient(#0a1020f2,#0d1625f2);border-radius:12px;gap:12px;width:min(440px,100%);padding:24px;display:grid}.login-card h1{margin:0;font-size:1.4rem}.subtitle{color:var(--text-secondary);margin:0 0 8px}.login-card label{color:var(--text-secondary);gap:6px;font-size:.9rem;display:grid}input,button{font:inherit}input{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;padding:10px}button{background:var(--accent);color:#032318;cursor:pointer;border:none;border-radius:8px;padding:10px 12px;font-weight:700}.error{color:var(--error);margin:0}.viewer{border:1px solid var(--border);background:var(--bg-surface);border-radius:14px;grid-template-rows:auto auto 1fr auto;width:min(1440px,100%);min-height:min(900px,95vh);display:grid;overflow:hidden}.topbar,.statusbar,.filterbar{border-bottom:1px solid var(--border-faint);align-items:center;gap:10px;padding:12px 14px;display:flex}.statusbar{border-bottom:0;border-top:1px solid var(--border-faint);color:var(--text-secondary);justify-content:space-between;font-size:.86rem}.brand{font-weight:700}.stats{color:var(--text-secondary);gap:10px;margin-left:auto;display:flex}.connection{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.connection .dot{background:var(--text-muted);border-radius:50%;width:8px;height:8px}.connection.ok .dot{background:var(--accent)}.levels{gap:6px;display:flex}.chip,.action,.logout{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);padding:8px 10px}.chip.active{background:var(--accent);color:#03190f;border-color:#0000}.search{min-width:120px}.content-grid{grid-template-columns:minmax(0,2.3fr) minmax(280px,1fr);min-height:0;display:grid}.log-list{border-right:1px solid var(--border-faint);min-height:0;overflow:auto}.scroller{min-height:100%}.log-row{cursor:pointer;border-bottom:1px solid #141e3080;grid-template-columns:140px 70px 1fr;gap:10px;padding:7px 12px;display:grid}.log-row:hover,.log-row.selected{background:#1a284073}.ts{color:var(--text-secondary)}.lvl{font-weight:700}.lvl-error .lvl{color:var(--error)}.lvl-warn .lvl{color:var(--warn)}.lvl-info .lvl{color:var(--info)}.lvl-debug .lvl{color:var(--debug)}.detail-panel{padding:12px;overflow:auto}.detail-panel h3{margin-top:0}.detail-panel pre{white-space:pre-wrap;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);border-radius:8px;margin:0;padding:10px}@media (width<=980px){.viewer{border-radius:0;min-height:100vh}.topbar,.filterbar,.statusbar{flex-wrap:wrap}.content-grid{grid-template-rows:1fr auto;grid-template-columns:1fr}.log-list{border-right:0;border-bottom:1px solid var(--border-faint);max-height:55vh}.log-row{grid-template-columns:90px 55px 1fr;font-size:.82rem}}.vue-recycle-scroller__resize-observer[data-v-08cc04ab]{opacity:0;pointer-events:none;z-index:-1;position:absolute;inset:0}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:flex}.vue-recycle-scroller__slot{flex:none}.vue-recycle-scroller__item-wrapper{box-sizing:border-box;flex:1;position:relative;overflow:hidden}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{will-change:transform;position:absolute;top:0;left:0}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}
