:root{--bg:#131726;--surface:#1c2135;--surface2:#262c46;--ink:#eef0fa;--muted:#8b93b5;--line:#2e3552;--accent:#8b7cf8;--accent-strong:#6d5ce7;--accent-ink:#a5b4fc;--accent-soft:rgba(139,124,251,0.14);--grad:linear-gradient(135deg,#8b5cf6,#3b82f6);--ok:#34d399;--ok-soft:rgba(52,211,153,0.13);--warn:#fbbf24;--warn-soft:rgba(251,191,36,0.13);--crit:#fb7185;--crit-soft:rgba(251,113,133,0.13);--info:#38bdf8;--info-soft:rgba(56,189,248,0.12);--glass:rgba(19,23,38,0.78);--glow:rgba(139,92,246,0.14);--glow2:rgba(244,114,182,0.07);--shadow:0 2px 4px rgba(0,0,0,0.35),0 10px 28px rgba(0,0,0,0.3)}*{box-sizing:border-box;margin:0}body,html{height:100%}body{font-family:Inter,Sukhumvit Set,Noto Sans Thai,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);font-size:13.5px;line-height:1.55;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(720px 480px at 84% -10%,var(--glow),transparent 70%),radial-gradient(600px 440px at -8% 110%,var(--glow2),transparent 70%)}a{color:var(--accent-ink);text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:220px 1fr;grid-template-rows:50px 1fr;height:100vh;z-index:1}.app,.topbar{position:relative}.topbar{grid-column:1/3;display:flex;align-items:center;gap:14px;padding:0 14px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:5}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent 4%,rgba(139,92,246,.6) 30%,rgba(59,130,246,.5) 55%,rgba(244,114,182,.45) 75%,transparent 96%)}.brand{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:-.01em}.brand .dot{width:9px;height:9px;border-radius:2.5px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.brand .nm{background:linear-gradient(90deg,#a78bfa,#60a5fa,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}.ws-chip{margin-left:auto;font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:7px;padding:4px 10px}.sidebar,.ws-chip{background:var(--surface)}.sidebar{border-right:1px solid var(--line);padding:10px 8px;display:flex;flex-direction:column;gap:1px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:7.5px 11px;border-radius:7px;color:var(--muted);font-weight:600;font-size:13px;border-left:2px solid transparent;transition:background .15s,color .15s}.nav-item:hover{background:var(--surface2);color:var(--ink)}.nav-item.active{background:linear-gradient(90deg,rgba(139,92,246,.2),rgba(59,130,246,.1));color:var(--accent-ink);border-left-color:var(--accent)}.main{overflow-y:auto;padding:18px 22px 60px}.view{max-width:1100px;margin:0 auto;position:relative}.ghost{position:absolute;top:-26px;right:-2px;font-size:98px;font-weight:800;letter-spacing:-.05em;color:var(--ink);opacity:.05;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1;z-index:0}h1{font-size:19px;letter-spacing:-.02em}h1,h2{font-weight:700}h2{font-size:14px}.sub{color:var(--muted);font-size:12.5px}.page-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-head .grow{flex:1 1;min-width:200px}.btn{display:inline-flex;align-items:center;gap:6px;padding:6.5px 13px;border-radius:8px;font-weight:600;font-size:12.5px;border:1px solid var(--line);background:var(--surface);transition:background .15s,border-color .15s,transform .1s}.btn:hover{background:var(--surface2);border-color:var(--muted)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--grad);border-color:transparent;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 5px 16px rgba(124,92,246,.35)}.btn.primary:hover{filter:brightness(1.09)}.btn.danger{color:var(--crit);border-color:var(--crit)}.btn.small{padding:4px 10px;font-size:11.5px}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 36%),var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);overflow-x:auto}.chip{display:inline-flex;align-items:center;gap:5px;padding:1.5px 8px;border-radius:6px;font-size:11px;font-weight:600}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.crit{background:var(--crit-soft);color:var(--crit)}.chip.info{background:var(--info-soft);color:var(--info)}.chip.acc{background:var(--accent-soft);color:var(--accent-ink)}.chip.mut{background:var(--surface2);color:var(--muted)}.dot-live{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none;box-shadow:0 0 6px var(--accent);animation:pulse 1.8s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.dot-live{animation:none}}.row{display:flex;align-items:center;gap:12px;padding:10px 13px;border-bottom:1px solid var(--line);flex-wrap:wrap}.row:last-child{border-bottom:none}.row .grow{flex:1 1;min-width:200px}.row .title{font-weight:600;font-size:13px}.row .meta{color:var(--muted);font-size:11.5px}.field{margin-bottom:12px}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.field input,.field select,.field textarea{width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;font-size:12.5px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dlist{margin:0;padding-left:18px;font-size:12.5px}.err{color:var(--crit);font-size:12px}table{width:100%;border-collapse:collapse;font-size:12.5px}th{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;text-align:left;padding:8px 12px}td,th{border-bottom:1px solid var(--line)}td{padding:8.5px 12px;vertical-align:top}tr:last-child td{border-bottom:none}@media (max-width:900px){.app{grid-template-columns:1fr;grid-template-rows:50px auto 1fr}.main,.sidebar,.topbar{grid-column:1}.sidebar{grid-row:2;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--line);padding:6px}.main{grid-row:3}.nav-item{flex:none}.ghost{display:none}}