:root{--bg: #0C0C0C;--bg-card: #141414;--bg-inner: #1a1a1a;--border: rgba(255,255,255,.06);--border-hover: rgba(255,255,255,.1);--text: #E4E4E4;--text-sec: #9A9A9A;--text-muted: #6a6a6a;--white: #fff;--green: #44FF97;--amber: #F5A623;--red: #E05252;--blue: #5B9DFF;--btn-bg: #fff;--btn-color: #0C0C0C;--border-focus: rgba(255,255,255,.14);--glow-accent: rgba(255,255,255,.6);--glow-accent-bright: rgba(255,255,255,1);--glow-shadow: rgba(255,255,255,.15)}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;scroll-behavior:smooth}body{font-family:Bai Jamjuree,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100%;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow-x:hidden}::selection{background:#44ff9726}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}a{color:inherit;text-decoration:none}.page{max-width:1400px;margin:0 auto;padding:0 1.5rem 5rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px 22px;transition:border-color .35s}.card:hover{border-color:var(--border-hover)}.card-label{font-size:10px;font-weight:600;color:var(--text-sec);letter-spacing:.07em;text-transform:uppercase;margin-bottom:14px}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:1.5rem}.kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center}.kpi-label{font-size:10px;font-weight:600;color:var(--text-sec);letter-spacing:.07em;text-transform:uppercase;margin-bottom:10px}.kpi-value{font-size:24px;font-weight:700;color:var(--white);letter-spacing:-.02em;line-height:1.1;margin-bottom:3px}.kpi-sub{font-size:11px;color:var(--text-muted)}.sc{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:1.5rem}.sc:hover{border-color:var(--border-hover)}.sh{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;position:relative;z-index:1}.st{font-size:14px;font-weight:600;color:var(--white)}.flag-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--border)}.flag-row:last-child{border-bottom:none}.flag-label{font-size:12px;color:var(--text-sec)}.flag-right{display:flex;align-items:center;gap:8px}.flag-val{font-size:12px;font-weight:600}.flag-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.flag-ok{background:#44ff97}.flag-warn{background:#f5a623}.flag-bad{background:#e05252}.tbl{width:100%;border-collapse:collapse}.tbl th{color:var(--text-muted);font-weight:600;font-size:9px;letter-spacing:.06em;text-transform:uppercase;text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.tbl td{padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text-sec);font-size:11px}.tbl tr:hover td{background:#ffffff04}.tab-group{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.tab-btn{padding:11px 24px;background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent;margin-bottom:-1px}.tab-btn.active{color:var(--white);font-weight:700;border-bottom-color:var(--green)}.tab-btn:hover:not(.active){color:var(--text-sec)}.toggle-group{display:flex;gap:2px}.toggle-btn{padding:4px 10px;border-radius:6px;background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.toggle-btn.active{color:var(--white);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}.toggle-btn:hover:not(.active){color:var(--text-sec)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:3px 8px;border-radius:5px}.badge-green{background:#44ff970f;border:1px solid rgba(68,255,151,.14);color:var(--green)}.badge-amber{background:#f5a6230f;border:1px solid rgba(245,166,35,.14);color:var(--amber)}.badge-red{background:#e052520f;border:1px solid rgba(224,82,82,.14);color:var(--red)}.gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}.gate.exit{opacity:0;transform:scale(.985) translateY(-4px);pointer-events:none}.gate-inner{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center}.gate-logo{margin-bottom:1.3rem;opacity:0;animation:fadeUp 1.2s cubic-bezier(.25,.46,.45,.94) .3s forwards}.gate-input-glow-wrap{position:relative;border-radius:12px;padding:1px;background:var(--border);transition:background .2s ease,box-shadow .4s ease;overflow:hidden;width:100%}.gate-input-glow-wrap:before{content:"";position:absolute;top:50%;left:50%;width:200%;height:200%;margin-top:-100%;margin-left:-100%;background:conic-gradient(from 0deg,transparent 0,transparent 60%,var(--glow-accent) 72%,var(--glow-accent-bright) 76%,var(--glow-accent) 80%,transparent 92%,transparent 100%);opacity:0;transition:opacity .3s ease;pointer-events:none}.gate-input-glow-wrap.glow:before{opacity:1;animation:glowSpin 1.6s cubic-bezier(.2,0,.2,1) forwards}.gate-input-glow-wrap.glow{box-shadow:0 0 20px var(--glow-shadow),0 0 50px var(--glow-shadow);animation:glowPulse 1.8s ease forwards}.gate-input-glow-wrap.error{background:#e052524d}.gate-input-glow-wrap:focus-within{background:var(--border-focus)}.gate-input-row{display:flex;align-items:center;background:var(--bg-card);border-radius:11px;position:relative;z-index:1}.gate-input{flex:1;min-width:0;padding:14px 18px;background:transparent;border:none;border-radius:11px;font-family:inherit;font-size:14px;color:var(--text);outline:none;text-align:center;letter-spacing:.06em}.gate-input::placeholder{color:var(--text-muted);letter-spacing:.02em;font-size:14px}.gate-input[type=password]{font-size:10px;letter-spacing:.2em}.gate-input.shake{animation:inputShake .4s cubic-bezier(.36,.07,.19,.97) both}.gate-submit{position:absolute;right:8px;width:32px;height:32px;border-radius:50%;border:none;background:var(--btn-bg);color:var(--btn-color);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s;pointer-events:none;z-index:2}.gate-submit.visible{opacity:1;transform:scale(1);pointer-events:auto}.gate-submit:hover{opacity:.8}.gate-submit:disabled{opacity:.3;cursor:default}.gate-error{margin-top:10px;font-size:13px;color:var(--red);opacity:0;transition:opacity .25s;height:20px}.gate-error.show{opacity:1}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes glowSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glowPulse{0%{box-shadow:0 0 0 transparent}20%{box-shadow:0 0 20px var(--glow-shadow),0 0 50px var(--glow-shadow)}50%{box-shadow:0 0 30px var(--glow-shadow),0 0 60px var(--glow-shadow)}80%{box-shadow:0 0 20px var(--glow-shadow),0 0 40px var(--glow-shadow)}to{box-shadow:0 0 10px var(--glow-shadow),0 0 20px var(--glow-shadow)}}@keyframes inputShake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:16px}.loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.refresh-btn{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:5px 12px;border-radius:20px;white-space:nowrap;background:#34d39914;border:1px solid rgba(52,211,153,.15);color:var(--green);cursor:pointer;transition:background .2s;font-family:inherit}.refresh-btn:hover{background:#34d39926}.refresh-btn:active svg{animation:spin .5s ease}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.kpi-row{grid-template-columns:repeat(2,1fr)}.page{padding:0 1rem 4rem}}
