@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db9bfcd87f1d73a3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4e2312c98e240c05-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/feed52454563c595-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f83e5507ec3854fa-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8934311971e59087-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bfdf244a9384e8b2-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b10e9fa1144bb4fb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d13ab8ed065835e4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d8c0f620f258dcc1-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5fcb63deed33aab6-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e595057e1ab84c19-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/861fabf8a4ffc042-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/2b32cc5cb75c7a84-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0d4277ce62acaedf-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/942c4903ae74b0f3-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/66c5464579bf95d1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai Fallback;src:local("Arial");ascent-override:110.31%;descent-override:52.78%;line-gap-override:0.00%;size-adjust:101.17%}.__className_218bf9{font-family:IBM Plex Sans Thai,IBM Plex Sans Thai Fallback;font-style:normal}.__variable_218bf9{--font-plex:"IBM Plex Sans Thai","IBM Plex Sans Thai Fallback"}@font-face{font-family:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Syne Fallback;src:local("Arial");ascent-override:93.93%;descent-override:27.93%;line-gap-override:0.00%;size-adjust:98.47%}.__className_4dedb3{font-family:Syne,Syne Fallback;font-style:normal}.__variable_4dedb3{--font-syne:"Syne","Syne Fallback"}:root{--bg:#0b0e11;--bg-elev:#12171c;--bg-soft:#1a2129;--line:#2a343f;--text:#e8eef4;--muted:#8b9aab;--faint:#5c6b7a;--accent:#c4a35a;--accent-dim:rgba(196,163,90,0.14);--ok:#3dba8a;--warn:#d4a017;--danger:#e06a5c;--info:#5b9fd4;--radius:12px;--nav-h:56px;--band-h:28px;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:IBM Plex Sans Thai,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}button{cursor:pointer;border:none;background:none}.band{height:var(--band-h);background:#1c1510;border-bottom:1px solid #3a2e1f;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600}.band span{color:var(--faint);letter-spacing:.04em;text-transform:none;font-weight:400}.app{display:grid;grid-template-columns:1fr;min-height:calc(100% - var(--band-h));padding-bottom:calc(64px + var(--safe-b))}@media (min-width:900px){.app{grid-template-columns:240px 1fr;padding-bottom:0;min-height:calc(100vh - var(--band-h))}}.sidebar{display:none;background:var(--bg-elev);border-right:1px solid var(--line);padding:20px 14px;flex-direction:column;gap:4px}@media (min-width:900px){.sidebar{display:flex}}.brand{font-family:Syne,sans-serif;font-weight:800;font-size:18px;letter-spacing:-.02em;padding:4px 10px 18px;display:flex;flex-direction:column;gap:2px}.brand small{font-family:IBM Plex Sans Thai,sans-serif;font-weight:400;font-size:12px;color:var(--muted);letter-spacing:0}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);padding:14px 10px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--muted);font-size:14px;font-weight:500;text-align:left;width:100%;transition:background .15s,color .15s}.nav-item:hover{background:var(--bg-soft);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--accent)}.nav-item .ico{width:18px;text-align:center;opacity:.85}.nav-item .badge{margin-left:auto;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 5px}.sidebar-foot{margin-top:auto;padding:14px 10px 4px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.sidebar-foot strong{display:block;color:var(--text);font-size:13px;margin-bottom:2px}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--nav-h);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:rgba(11,14,17,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar h1{font-family:Syne,sans-serif;font-size:17px;font-weight:700;letter-spacing:-.02em}.topbar-actions{display:flex;gap:8px;align-items:center}.pill-user{display:none;align-items:center;gap:8px;font-size:13px;color:var(--muted);padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg-elev)}@media (min-width:640px){.pill-user{display:flex}}.av{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#3a4a3a,#c4a35a)}.content{padding:16px;max-width:1100px;width:100%;margin:0 auto}@media (min-width:900px){.content{padding:24px 28px 40px}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:calc(56px + var(--safe-b));padding-bottom:var(--safe-b);background:var(--bg-elev);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:30}@media (min-width:900px){.bottom-nav{display:none}}.bn-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;color:var(--faint);position:relative}.bn-item.active{color:var(--accent)}.bn-item .dot{position:absolute;top:6px;right:calc(50% - 18px);width:6px;height:6px;border-radius:50%;background:var(--danger)}.view{display:none;animation:in .2s ease}.view.active{display:block}@keyframes in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.grid-2{display:grid;grid-gap:12px;gap:12px}@media (min-width:700px){.grid-2{grid-template-columns:1fr 1fr;gap:14px}}.grid-4{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 1fr}@media (min-width:800px){.grid-4{grid-template-columns:repeat(4,1fr);gap:12px}}.stat{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat .k{font-size:12px;color:var(--muted);margin-bottom:6px}.stat .v{font-family:Syne,sans-serif;font-size:26px;font-weight:700;letter-spacing:-.03em}.stat .s{font-size:11px;color:var(--faint);margin-top:4px}.stat.warn .v{color:var(--warn)}.stat.ok .v{color:var(--ok)}.stat.danger .v{color:var(--danger)}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-h{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.card-h h2{font-size:14px;font-weight:600}.card-b{padding:14px 16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:9px;font-size:13px;font-weight:600;border:1px solid transparent;white-space:nowrap}.btn-primary{background:var(--accent);color:#1a1408}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--text)}.btn-ghost:hover{background:var(--bg-soft)}.btn-danger{background:rgba(224,106,92,.15);color:var(--danger);border-color:rgba(224,106,92,.35)}.btn-sm{padding:6px 10px;font-size:12px}.btn-block{width:100%}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent}.tag-ok{background:rgba(61,186,138,.12);color:var(--ok);border-color:rgba(61,186,138,.25)}.tag-warn{background:rgba(212,160,23,.12);color:var(--warn);border-color:rgba(212,160,23,.3)}.tag-danger{background:rgba(224,106,92,.12);color:var(--danger);border-color:rgba(224,106,92,.3)}.tag-info{background:rgba(91,159,212,.12);color:var(--info);border-color:rgba(91,159,212,.3)}.tag-mute{background:var(--bg-soft);color:var(--muted);border-color:var(--line)}.tag-dog{background:var(--accent-dim);color:var(--accent);border-color:rgba(196,163,90,.35)}.row-list{display:flex;flex-direction:column}.row{display:grid;grid-gap:6px 12px;gap:6px 12px;padding:12px 16px;border-bottom:1px solid var(--line);align-items:center;cursor:pointer;transition:background .12s}.row:last-child{border-bottom:none}.row:hover{background:var(--bg-soft)}.row-main{display:flex;align-items:center;justify-content:space-between;gap:10px}.row-title{font-weight:600;font-size:14px}.row-sub{font-size:12px;color:var(--muted)}.row-meta{gap:6px;align-items:center}.row-meta,.search{display:flex;flex-wrap:wrap}.search{gap:8px;margin-bottom:12px}.field input,.field select,.field textarea,.search input,.search select{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:10px 12px;outline:none;width:100%}.field input:focus,.field textarea:focus,.search input:focus{border-color:var(--accent)}.search input{flex:1 1;min-width:160px}.search select{width:auto;min-width:120px}.field{margin-bottom:12px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:500}.tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px;margin-bottom:14px;border-bottom:1px solid var(--line);scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:10px 12px;font-size:13px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;align-items:center}.toolbar .grow{flex:1 1}.kv{display:grid;grid-gap:10px;gap:10px}.kv-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}.kv-row:last-child{border-bottom:none}.kv-row span{color:var(--muted)}.kv-row b{font-weight:600;text-align:right}.health{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.health:last-child{border-bottom:none}.dot-h{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot-h.ok{background:var(--ok);box-shadow:0 0 0 3px rgba(61,186,138,.2)}.dot-h.warn{background:var(--warn);box-shadow:0 0 0 3px rgba(212,160,23,.2)}.dot-h.bad{background:var(--danger);box-shadow:0 0 0 3px rgba(224,106,92,.2)}.bar{height:6px;background:var(--bg);overflow:hidden;margin-top:6px}.bar,.bar>i{border-radius:3px}.bar>i{display:block;height:100%;background:var(--accent)}.spark{display:flex;align-items:flex-end;gap:4px;height:64px;padding:4px 0}.spark>i{flex:1 1;min-width:3px;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--accent),var(--accent-dim))}.callout{border-radius:10px;padding:12px 14px;font-size:13px;border:1px solid var(--line);background:var(--bg-soft);color:var(--muted);margin-bottom:14px}.callout.warn{border-color:rgba(212,160,23,.4);background:rgba(212,160,23,.08);color:#e8d5a0}.callout.danger{border-color:rgba(224,106,92,.4);background:rgba(224,106,92,.08);color:#f0b4ad}.support-banner{background:#3a1f16;border:1px solid #8a4030;color:#f5d0c8;padding:10px 14px;font-size:12px;font-weight:600;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:-16px -16px 16px}@media (min-width:900px){.support-banner{margin:-24px -28px 20px}}.fake-chat{background:#0e1216;border:1px solid var(--line);border-radius:var(--radius);min-height:280px;padding:14px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:80%;padding:8px 12px;border-radius:12px;font-size:13px}.bubble.in{background:var(--bg-soft);align-self:flex-start}.bubble.out{background:#243028;align-self:flex-end;color:#d8ebe0}.empty{text-align:center;padding:36px 16px;color:var(--muted);font-size:14px}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.62);display:none;align-items:flex-end;justify-content:center;z-index:50;padding:16px}.modal-back.open{display:flex}@media (min-width:640px){.modal-back{align-items:center}}.modal{background:var(--bg-elev);border:1px solid var(--line);border-radius:16px;width:100%;max-width:440px;max-height:90vh;overflow:auto;padding:18px;animation:in .2s ease}.modal h3{font-family:Syne,sans-serif;font-size:18px;margin-bottom:6px}.modal .desc{font-size:13px;color:var(--muted);margin-bottom:16px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}.hint{position:fixed;right:12px;bottom:calc(68px + var(--safe-b));background:var(--bg-soft);border:1px solid var(--line);color:var(--muted);font-size:11px;padding:8px 10px;border-radius:8px;z-index:25;max-width:200px}@media (min-width:900px){.hint{bottom:16px}}.stack{display:flex;flex-direction:column;gap:12px}.muted{color:var(--muted);font-size:13px}.right{text-align:right}.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;font-size:12px;color:var(--faint)}.btn{transition:transform .12s ease,filter .15s ease,background .15s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn.is-loading,.btn:disabled{opacity:.65;pointer-events:none}.row{transition:background .12s,transform .1s ease}.row:active{transform:scale(.995);background:var(--bg-soft)}.is-loading{opacity:.55;pointer-events:none}@keyframes skeleton-pulse{0%,to{opacity:.45}50%{opacity:.9}}.skeleton{background:linear-gradient(90deg,var(--bg-soft),var(--line),var(--bg-soft));background-size:200% 100%;border-radius:8px;animation:skeleton-pulse 1.2s ease-in-out infinite;min-height:14px}.skeleton.sk-lg{min-height:28px}.skeleton.sk-stat{min-height:72px;border-radius:var(--radius)}.skeleton.sk-row{min-height:56px;margin-bottom:8px;border-radius:10px}.skeleton.sk-card{min-height:120px;border-radius:var(--radius)}.toast-stack{position:fixed;right:12px;bottom:calc(68px + var(--safe-b));z-index:60;display:flex;flex-direction:column;gap:8px;max-width:min(320px,calc(100vw - 24px));pointer-events:none}@media (min-width:900px){.toast-stack{bottom:16px}}.toast{pointer-events:auto;background:var(--bg-soft);border:1px solid var(--accent);color:var(--accent);font-size:12px;padding:10px 12px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.35);animation:in .2s ease}.toast.toast-mute{border-color:var(--line);color:var(--muted)}.view-page{animation:in .2s ease}.grow{flex:1 1}.ml-auto{margin-left:auto}.tab-panel{display:none}.tab-panel.active{display:block}a.bn-item,a.nav-item{text-decoration:none}body{font-family:var(--font-plex),"IBM Plex Sans Thai",system-ui,sans-serif}.brand,.modal h3,.stat .v,.topbar h1{font-family:var(--font-syne),Syne,sans-serif}