@font-face{font-family:Kanit;src:url(/fonts/kanit-600.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Kanit;src:url(/fonts/kanit-700.ttf) format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Kanit;src:url(/fonts/kanit-800.ttf) format("truetype");font-weight:800;font-display:swap}@font-face{font-family:Noto Sans Thai;src:url(/fonts/noto-sans-thai-latin-400-normal.woff2) format("woff2"),url(/fonts/noto-sans-thai-thai-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Noto Sans Thai;src:url(/fonts/noto-sans-thai-latin-600-normal.woff2) format("woff2"),url(/fonts/noto-sans-thai-thai-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}.bo,.bo-auth{--ink:#0f172a;--ink2:#334155;--muted:#5b6474;--line:#e2e6ec;--bg:#f1f3f6;--brand:#113566;--brand-2:#1b4a86;--brand-soft:#eef2f9;--gold:#ffc83d;--gold-deep:#e0a800;--pass:#15803d;--pass-soft:#e3f6e9;--pass-ink:#0b5a28;--review:#f2a516;--review-soft:#fff4d6;--review-ink:#92400e;--fail:#c42020;--fail-soft:#fde6e6;--fail-ink:#9f1717;--shadow:0 1px 2px rgba(15,23,42,.06),0 6px 20px rgba(15,23,42,.06);--font:"Noto Sans Thai",system-ui,sans-serif;--head:"Kanit","Noto Sans Thai",system-ui,sans-serif;color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55}.bo{background:var(--bg);min-height:100vh}.bo .kpi .v,.bo .pkg-price b,.bo .side .brand,.bo h1,.bo h2,.bo h3,.bo-auth h1{font-family:var(--head);letter-spacing:.1px}.bo button,.bo input,.bo select,.bo textarea,.bo-auth button,.bo-auth input{font-family:inherit;color:inherit}.bo a{color:var(--brand-2)}.bo .icon{width:18px;height:18px;flex:none}.bo .mono,.bo .num{font-variant-numeric:tabular-nums}.bo .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.bo .muted{color:var(--muted)}.bo .small{font-size:13px}.bo .shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.bo .side{background:#0f1b3d;color:#c9d3ea;padding:14px 10px 18px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}.bo .side .brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:17px;padding:4px 8px 14px;text-decoration:none}.bo .side .brand small{display:block;font-size:11px;font-weight:600;color:#8ea0c9;font-family:var(--font)}.bo .side .grp{font-size:11px;font-weight:700;color:#6f82ad;margin:12px 10px 4px;letter-spacing:.05em}.bo .side a.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:#c9d3ea;text-decoration:none;font-weight:600;font-size:14px}.bo .side a.nav:hover{background:rgba(255,255,255,.06);color:#fff}.bo .side a.nav.on{background:#1b4a86;color:#fff}.bo .side a.nav .cnt{margin-left:auto;background:#c42020;color:#fff;border-radius:999px;font-size:11px;min-width:18px;text-align:center;padding:0 6px}.bo .side .me{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:10px 8px 8px;font-size:13px}.bo .side .me .disc{color:#8ea0c9;font-size:12px;line-height:1.45;margin-bottom:8px}.bo .side .me b{color:#fff}.bo .side .logout{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:6px 0;background:none;border:0;color:#c9d3ea;font:inherit;font-weight:700;cursor:pointer}.bo .content{min-width:0}.bo .hdr{display:flex;align-items:center;gap:12px;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.bo .hdr h1{font-size:20px;font-weight:700;margin:0;color:var(--brand)}.bo .hdr p{margin:0;font-size:13px;color:var(--muted)}.bo .hdr .env{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.bo .body{padding:18px 24px 50px}.bo .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.bo .kpi{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:14px 16px}.bo .kpi .k{font-size:12px;color:var(--muted);font-weight:600}.bo .kpi .v{font-size:26px;font-weight:800;line-height:1.25;color:var(--brand)}.bo .kpi .s{font-size:12px;color:var(--muted)}.bo .up{color:var(--pass)}.bo .down{color:var(--fail)}.bo .g2{grid-template-columns:1fr 1fr}.bo .g-donut,.bo .g2{display:grid;gap:14px}.bo .g-donut{grid-template-columns:.85fr 1.35fr}.bo .g3{grid-template-columns:1.2fr 1fr 1fr}.bo .g21,.bo .g3{display:grid;gap:14px}.bo .g21{grid-template-columns:1.4fr .9fr}.bo .mt{margin-top:14px}.bo .card{background:#fff;border-radius:18px;box-shadow:var(--shadow)}.bo .card-pad{padding:16px 18px}.bo .card h2,.bo .card h3{margin:0 0 10px;font-size:17px;font-weight:600;color:var(--brand)}.bo .toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.bo .tcard{background:#fff;border-radius:16px;box-shadow:var(--shadow);overflow:auto}.bo .tbl{width:100%;border-collapse:collapse;font-size:14px}.bo .tbl th{text-align:left;font-weight:600;color:var(--muted);font-size:12.5px;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbfc;white-space:nowrap}.bo .tbl td{padding:10px 12px;border-bottom:1px solid #eef0f3;vertical-align:middle}.bo .tbl tr.click{cursor:pointer}.bo .tbl tr.click:hover td{background:#f7f9fd}.bo .empty{text-align:center;color:var(--muted);padding:28px 16px}.bo .chip,.bo-auth .chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap}.bo .chip.pass{background:var(--pass-soft);color:var(--pass-ink)}.bo .chip.review{background:var(--review-soft);color:var(--review-ink)}.bo .chip.fail{background:var(--fail-soft);color:var(--fail-ink)}.bo .chip.info{background:var(--brand-soft);color:var(--brand)}.bo .chip.gray{background:#eef0f4;color:var(--ink2)}.bo .chip.dark{background:#1f2937;color:#fff}.bo .pkg-chip{align-items:center;height:24px;padding:0 10px;font-size:12.5px;font-weight:800;color:#fff}.bo .mini,.bo .pkg-chip{display:inline-flex;border-radius:999px}.bo .mini{margin-left:6px;background:#eef0f4;color:var(--ink2);font-size:11px;font-weight:700;padding:1px 7px}.bo .btn,.bo-auth .btn{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border-radius:12px;font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}.bo .btn-primary,.bo-auth .btn-primary{background:var(--brand);color:#fff}.bo .btn-danger{background:var(--fail);color:#fff}.bo .btn-ghost,.bo-auth .btn-ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.bo .btn-sm{min-height:34px;font-size:13px;padding:0 10px}.bo .btn-block,.bo-auth .btn-block{display:flex;width:100%;min-height:48px;font-size:16px}.bo .btn[disabled],.bo-auth .btn[disabled]{opacity:.5;cursor:not-allowed}.bo .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.bo label.f,.bo-auth label.f{display:block;font-weight:700;font-size:13px;margin:10px 0 4px;color:var(--ink2)}.bo .admin-inp,.bo select.admin-inp,.bo-auth .admin-inp,.bo-auth select.admin-inp{width:100%;min-height:42px;border:1.5px solid var(--line);border-radius:12px;padding:8px 12px;background:#fff;font-size:15px}.bo .admin-inp:focus,.bo select.admin-inp:focus,.bo-auth .admin-inp:focus{outline:none;border-color:var(--gold-deep);box-shadow:0 0 0 3px rgba(255,200,61,.55)}.bo .toolbar .admin-inp,.bo .toolbar select.admin-inp{width:auto;min-width:140px;min-height:38px}.bo .kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:14px}.bo .kv dt{color:var(--muted)}.bo .kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}.bo .qbar{position:relative;height:10px;border-radius:999px;background:#e9edf3;overflow:hidden;min-width:70px}.bo .qbar i{position:absolute;left:0;top:0;bottom:0;border-radius:999px}.bo .note{font-size:13px;background:#f6f7f9;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.bo .note.warn{background:var(--review-soft);border-color:#f6d68a;color:var(--review-ink)}.bo .note.info{background:var(--brand-soft);border-color:#c8d5f5;color:var(--brand)}.bo .back{display:inline-flex;align-items:center;justify-content:flex-start;gap:4px;width:auto;max-width:100%;height:auto;min-height:0;margin:0 0 10px;padding:0;border-radius:0;background:none;font-size:14px;font-weight:700;line-height:1.4;text-decoration:none;white-space:nowrap;position:static}.bo .donut-wrap{display:flex;align-items:center;gap:18px}.bo .legend div{display:flex;align-items:center;gap:8px;margin:5px 0}.bo .legend i{width:12px;height:12px;border-radius:3px;display:inline-block}.bo .hbars .hb{display:grid;grid-template-columns:minmax(120px,180px) 1fr 36px;gap:8px;align-items:center;font-size:13px;margin:7px 0}.bo .vbars{display:flex;align-items:flex-end;gap:3px;height:150px;border-bottom:1px solid var(--line)}.bo .vbars .vb{flex:1;display:flex;flex-direction:column-reverse;height:100%}.bo .vbars .vb i{display:block;width:100%}.bo .xl{display:flex;gap:3px;font-size:10px;color:var(--muted)}.bo .xl span{flex:1;text-align:center}.bo .line-chart{width:100%;height:140px}.bo .pkg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.bo .pkg-card{border-top:6px solid var(--pc,#64748b)}.bo .pkg-price b{font-size:34px;font-weight:800}.bo .cyc{display:inline-flex;background:#eef2f7;border-radius:999px;padding:4px;gap:4px}.bo .cyc button{border:0;background:none;border-radius:999px;padding:7px 14px;font:inherit;font-weight:700;cursor:pointer;color:#475569}.bo .cyc button.on{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(0,0,0,.12)}.bo .pills{display:flex;gap:6px;flex-wrap:wrap}.bo .pills a,.bo .pills button{border:0;background:#eef0f4;border-radius:999px;padding:6px 12px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;color:inherit}.bo .pills a.on,.bo .pills button.on{background:var(--brand);color:#fff}.bo .modal-bg{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;z-index:80;padding:20px}.bo .modal{background:#fff;border-radius:18px;width:min(480px,100%);padding:22px;box-shadow:0 20px 50px rgba(0,0,0,.25)}.bo .modal h3{margin:0 0 8px;font-size:20px}.bo .modal .acts{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.bo .toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#111827;color:#fff;padding:10px 16px;border-radius:12px;font-weight:600;z-index:90}.bo .svc{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #eef0f3}.bo .led{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18)}.bo .led.off{background:#cbd2dc;box-shadow:none}.bo .acct{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bo .acct article{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.bo .rule{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #eef0f3}.bo .rs{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-size:12px;font-weight:800}.bo .rs.pass{background:var(--pass)}.bo .rs.fail{background:var(--fail)}.bo .timeline{list-style:none;margin:0;padding:0}.bo .timeline li{border-left:2px solid #dbe2ee;margin-left:6px;padding:6px 0 6px 12px}.bo-auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(160deg,#0f1b3d,#113566)}.bo-auth .card{width:min(400px,100%);background:#fff;border-radius:18px;padding:28px;box-shadow:var(--shadow)}.bo-auth h1{margin:8px 0 4px;font-size:26px;color:var(--brand)}.bo-auth .foot,.bo-auth .lead{color:var(--muted);font-size:13px}.bo-auth .btn-block+.foot{margin-top:18px}.bo-auth .foot+.foot{margin-top:8px}.bo-auth .otp{display:flex;gap:8px;justify-content:space-between;margin:8px 0 12px}.bo-auth .otp input{width:48px;height:56px;text-align:center;font-size:24px;font-weight:800;font-family:var(--head)}.bo-auth .fp-steps{list-style:none;display:flex;gap:8px;padding:0;margin:8px 0 12px}.bo-auth .fp-steps li{flex:1;font-size:12px;font-weight:700;color:var(--muted)}.bo-auth .fp-steps li.on{color:var(--brand)}.bo-auth .pw-rules{list-style:none;padding:0;margin:6px 0 0;font-size:13px;color:var(--muted)}.bo-auth .pw-rules li.ok{color:var(--pass)}.bo-auth .codes{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0;list-style:none}.bo-auth .qr svg{width:180px;height:180px}@media (max-width:1100px){.bo .kpis,.bo .pkg-grid{grid-template-columns:1fr 1fr}.bo .acct,.bo .g-donut,.bo .g2,.bo .g21,.bo .g3{grid-template-columns:1fr}}@media (max-width:640px){.bo .shell{display:block}.bo .side{position:sticky;top:0;z-index:30;height:auto;flex-direction:row;gap:6px;overflow-x:auto;align-items:center;padding:8px}.bo .side .grp,.bo .side .me{display:none}.bo .side .brand{padding:0 6px 0 0;flex:none}.bo .side .brand small{display:none}.bo .side a.nav{flex:none;border-radius:999px;padding:8px 12px}.bo .hdr{flex-wrap:wrap}.bo .body,.bo .hdr{padding:12px}.bo .kpis,.bo .pkg-grid{grid-template-columns:1fr 1fr}.bo .kv{grid-template-columns:minmax(96px,34%) minmax(0,1fr)}.bo .toolbar .admin-inp,.bo .toolbar select.admin-inp{width:100%}}.bo .side .me a.account-link{display:flex;margin-top:8px;padding:0;background:none;color:var(--gold);font-weight:700;text-decoration:none}.bo .side .me a.account-link:hover{background:none;color:#ffe08a}.bo .hdr a.account-link{color:var(--brand);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap}.bo .account-form{max-width:480px}.bo .strength{margin:4px 0 2px;color:var(--muted);font-size:13px}.bo .account-banner{background:#fff6d8;border:1px solid var(--gold-deep);border-radius:12px;padding:10px 12px;margin:0 0 8px}