:root{color-scheme:dark;--bg: #0a0a0a;--bg-card: rgba(22, 22, 26, .55);--text: rgba(255, 255, 255, .82);--text-main: #ffffffd1;--text-secondary: #a0a0a0;--border: rgba(255, 255, 255, .08);--border-light: rgba(255, 255, 255, .08);--border-md: rgba(255, 255, 255, .15);--border-input: rgba(255, 255, 255, .1);--color-teal: #2DD4BF;--color-teal-rgb: 45, 212, 191;--color-blue: #3B82F6;--color-blue-rgb: 59, 130, 246;--color-green: #10B981;--color-green-rgb: 16, 185, 129;--color-orange: #F59E0B;--color-orange-rgb: 245, 158, 11;--color-red: #FB7185;--color-red-rgb: 251, 113, 133}*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--bg);color:var(--text-main)}body{font-family:-apple-system,SF Pro Display,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Noto Sans SC,sans-serif;-webkit-font-smoothing:antialiased}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}*::-webkit-scrollbar{width:4px;height:4px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#ffffff47}*::-webkit-scrollbar-corner{background:transparent}a{color:inherit}.page-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:6px;flex:1 1 auto;flex-wrap:wrap}.filter-label{font-size:12px;font-weight:600;color:var(--text-secondary, #a0a0a0);flex-shrink:0}.filter-label:after{content:":";margin-right:2px}.filter-chips{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.filter-chip{height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#ffffff80;cursor:pointer;font-family:inherit;transition:background .15s,color .15s,border-color .15s}.filter-chip:hover{color:#ffffffbf;background:#ffffff12}.filter-chip.active{background:#3b82f626;border-color:#3b82f661;color:#93c5fd}.filter-chip.active-teal{background:#2dd4bf26;border-color:#2dd4bf61;color:#2dd4bf}.filter-chip.active-orange{background:#f59e0b26;border-color:#f59e0b61;color:#fbbf24}.toolbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.toolbar-hint{font-size:12px;color:var(--text-secondary, #a0a0a0);margin-right:auto}.vsep{width:1px;height:16px;margin-inline:5px;background:#ffffff1f;flex-shrink:0}.search-wrap{min-width:200px;max-width:300px;flex:1 1 200px}.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.inline-stats{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--text-secondary, #a0a0a0)}.inline-stats strong{font-size:14px;font-weight:700;color:var(--text-main, #fff)}.c-teal{color:#2dd4bf!important}.c-blue{color:#93c5fd!important}.c-green{color:#34d399!important}.c-orange{color:#fbbf24!important}.c-red{color:#fb7185!important}.admin-table{width:100%;border-collapse:collapse;margin-top:2px;font-size:13px}.admin-table th,.admin-table td{text-align:left;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.07);vertical-align:middle}.admin-table th{color:var(--text-secondary, #a0a0a0);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover td{background:#ffffff05}.admin-table td .app-btn{height:26px;padding:0 10px;font-size:12px;border-radius:7px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.empty-state{padding:28px 4px;color:var(--text-secondary, #a0a0a0);font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:center}.dialog-form{display:flex;flex-direction:column;gap:10px}.dialog-field-group{display:flex;flex-direction:column;gap:6px}.dialog-field-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px}.dialog-chip-row{display:flex;gap:6px;flex-wrap:wrap}.dialog-hint{font-size:11px;color:var(--text-secondary);margin:0}.dialog-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dialog-form-grid .span-2{grid-column:1 / -1}.dialog-textarea{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.1);border-radius:12px;resize:vertical;padding:10px 12px;background:#ffffff0f;color:#ffffffeb;font-size:13px;line-height:1.5;outline:none;font-family:inherit;transition:border-color .15s;display:block}.dialog-textarea:focus{border-color:#3b82f666}.dialog-textarea::placeholder{color:#ffffff47}.dialog-btn-cancel{height:40px;padding:0 18px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#ffffffb3;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}.dialog-btn-cancel:hover{background:#ffffff1a}.dialog-btn-confirm{height:40px;padding:0 22px;border-radius:10px;border:none;background:linear-gradient(135deg,#3b82f6d9,#2dd4bfbf);color:#fff;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}.dialog-btn-confirm:hover{opacity:.88}.dialog-btn-confirm:disabled{opacity:.4;cursor:not-allowed}.panel-grid{display:grid;gap:12px}.two-col{grid-template-columns:1.2fr 1fr}.status-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700}.status-ok{background:#10b98126;color:#34d399}.status-failed{background:#fb718526;color:#fb7185}.status-warn{background:#f59e0b26;color:#fbbf24}.tier-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase}.tier-pro,.tier-proplus{background:#2dd4bf26;color:#2dd4bf}.tier-basic{background:#3b82f626;color:#93c5fd}@media(max-width:1200px){.two-col{grid-template-columns:1fr}}@media(max-width:960px){.page-toolbar{flex-direction:column;align-items:stretch}.filter-group,.toolbar-right{flex-wrap:wrap}.search-wrap{max-width:none;flex-basis:100%}.card-header-row{flex-direction:column;align-items:flex-start;gap:8px}.inline-stats{flex-wrap:wrap;gap:10px}.dialog-form-grid{grid-template-columns:1fr}.dialog-form-grid .span-2{grid-column:auto}}.sidebar{width:228px;min-width:228px;height:calc(100vh - 24px);margin:12px;border-radius:20px;border:1px solid var(--border-light);background:#111216eb;display:flex;flex-direction:column;padding:14px;position:sticky;top:12px}.brand{display:flex;align-items:center;gap:10px;padding:6px 6px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-logo{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#2dd4bf29;color:#2dd4bf}.brand-title{font-size:14px;font-weight:700;letter-spacing:.2px}.brand-sub,.env-sub{font-size:11px;color:var(--text-secondary)}.menu{margin-top:12px;display:flex;flex-direction:column;gap:6px}.menu-item{height:38px;border-radius:10px;border:1px solid transparent;background:transparent;color:#fffc;display:flex;align-items:center;gap:10px;padding:0 10px;cursor:pointer;font-size:13px;font-weight:600;text-align:left}.menu-item:hover{background:#ffffff0a}.menu-item.is-active{background:#2dd4bf1f;border-color:#2dd4bf40;color:#fff}.side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.logout-btn{width:100%;margin-top:12px;height:34px;border-radius:10px;border:1px solid rgba(251,113,133,.26);background:#fb718514;color:#fda4af;font-size:12px;font-weight:700;cursor:pointer}@media(max-width:1023px){.sidebar{width:100%;min-width:0;height:auto;position:static;margin:0 0 10px}.menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.side-foot{display:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:4px 0}.topbar-text{flex:1;min-width:0}.topbar h1{margin:0;font-size:20px;font-weight:700;line-height:1.2;letter-spacing:0}.topbar p{margin:4px 0 0;font-size:12px;color:var(--text-secondary)}.admin-pill{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:999px;background:#2dd4bf1a;border:1px solid rgba(45,212,191,.22);color:#5eead4;font-size:12px;font-weight:700;flex-shrink:0}@media(max-width:1023px){.topbar{flex-wrap:wrap}}.c-toast{position:fixed;top:16px;right:16px;width:min(320px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;z-index:10100;pointer-events:none}.c-toast .toast{display:flex;align-items:center;gap:10px;border-radius:14px;border:1px solid var(--toast-border, rgba(255, 255, 255, .1));background:#121216e0;box-shadow:0 6px 22px #00000059;padding:10px 12px;pointer-events:auto;width:100%;color:inherit;text-align:left;cursor:pointer}.c-toast .toast-success{--toast-accent: var(--color-green);--toast-border: rgba(var(--color-green-rgb), .25);--toast-icon-bg: rgba(var(--color-green-rgb), .12)}.c-toast .toast-info{--toast-accent: var(--color-teal);--toast-border: rgba(var(--color-teal-rgb), .25);--toast-icon-bg: rgba(var(--color-teal-rgb), .12)}.c-toast .toast-warning{--toast-accent: var(--color-orange);--toast-border: rgba(var(--color-orange-rgb), .25);--toast-icon-bg: rgba(var(--color-orange-rgb), .12)}.c-toast .toast-error{--toast-accent: var(--color-red);--toast-border: rgba(var(--color-red-rgb), .25);--toast-icon-bg: rgba(var(--color-red-rgb), .12)}.toast-icon-wrap{width:30px;height:30px;border-radius:10px;background:var(--toast-icon-bg);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--toast-accent)}.toast-text{min-width:0;display:flex;flex-direction:column;gap:2px}.toast-title{color:#fff;font-size:14px;line-height:1.25;font-weight:600}.toast-subtitle{color:#ffffffad;font-size:13px;line-height:1.25}.c-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px 40px;overflow-y:auto;opacity:0;transition:opacity .1s}.c-dialog-overlay.visible{opacity:1}.c-dialog-overlay.visible .dialog{transform:scale(1)}.c-dialog-overlay .dialog{--radius: 16px;background:var(--bg-dialog);border-radius:16px;width:100%;overflow:hidden;will-change:transform;transform:scale(.92);transition:transform .2s}.c-dialog-overlay .dialog-title{padding:20px 20px 12px;display:flex;flex-direction:row;align-items:center;gap:8px}.c-dialog-overlay .title-text{font-size:18px;font-weight:700;color:#fff;line-height:1.3}.c-dialog-overlay .dialog-body{padding:0 20px 8px}.c-dialog-overlay .dialog-actions{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:4px;padding:0 20px 20px}.c-dialog-overlay .dialog-btn-cancel{padding:8px 12px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:400;color:#a0a0a0cc;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:transform .1s}.c-dialog-overlay .dialog-btn-cancel:active{transform:scale(.96)}.c-dialog-overlay .dialog-btn-confirm{padding:8px 16px;background:var(--color-teal);border:none;border-radius:8px;font-size:14px;color:#fff;cursor:pointer;font-family:inherit;min-width:88px;height:36px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:transform .1s}.c-dialog-overlay .dialog-btn-confirm:active{transform:scale(.96)}.c-dialog-overlay .dialog-btn-confirm:disabled{opacity:.6;cursor:not-allowed}.c-dialog-overlay .dialog-btn-ok{padding:8px 12px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:700;color:var(--color-teal);cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:transform .1s}.c-dialog-overlay .dialog-content{font-size:14px;color:#a0a0a0cc;line-height:1.5;white-space:pre-wrap}.c-dialog-overlay .app-update-dialog-content{color:#a0a0a0d6}.c-dialog-overlay .app-update-dialog-label{font-size:14px;line-height:1.5;margin-bottom:8px}.c-dialog-overlay .app-update-dialog-notes{margin:0;padding-left:18px;font-size:14px;line-height:1.55}.c-dialog-overlay .app-update-dialog-notes li+li{margin-top:4px}.c-dialog-overlay .dialog-btn-ok:active{transform:scale(.96)}.c-glass-card{background:linear-gradient(135deg,#ffffff08,#ffffff03 30%,#fff0);border-radius:var(--radius, 20px);padding:1px;box-shadow:var(--shadow, 0 6px 16px rgba(0, 0, 0, .3));position:relative}.c-glass-card:after{content:"";top:0;right:0;bottom:0;left:0;position:absolute;border-radius:var(--radius, 20px);background:linear-gradient(135deg,#ffffff14,#ffffff08 40%,#fff0);padding:1px;-webkit-mask:linear-gradient(#fff 0 100%) content-box,linear-gradient(#fff 0 100%);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 100%) content-box,linear-gradient(#fff 0 100%);mask-composite:exclude;pointer-events:none}.c-glass-card .inner{overflow:hidden}.c-section-title{display:flex;flex-direction:row;align-items:center}.c-section-title .icon-box{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.c-section-title .text{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.2px;margin-left:10px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mt-12{margin-top:12px}.kpi-card{display:flex;flex-direction:column;gap:6px}.kpi-label{font-size:12px;color:var(--text-secondary)}.kpi-value{font-size:30px;font-weight:800;letter-spacing:0}.kpi-delta{font-size:12px;font-weight:700}.kpi-delta.green{color:#10b981}.kpi-delta.blue{color:#3b82f6}.kpi-delta.orange{color:#f59e0b}.kpi-delta.red{color:#fb7185}.dashboard-list{margin-top:12px;display:flex;flex-direction:column}.list-item{height:42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.07);font-size:13px}.list-item:last-child{border-bottom:none}.list-item strong{font-size:16px;font-weight:700}@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.table-outer{position:relative;overflow-x:auto;width:100%}.is-loading{min-height:80px}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0e0e148c;display:flex;align-items:center;justify-content:center;z-index:2;border-radius:inherit}.spinner{width:22px;height:22px;border:2.5px solid rgba(255,255,255,.12);border-top-color:#2dd4bf;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.col-actions{width:1px;white-space:nowrap}.empty-cell{padding:28px 0;text-align:center;color:#a0a0a080;font-size:13px}.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 0 0;color:var(--text-secondary);font-size:12px}.table-pagination button{height:28px;padding:0 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffffc7;cursor:pointer}.table-pagination button:disabled{opacity:.4;cursor:not-allowed}.main-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}.main-row>.c-glass-card{height:100%;box-sizing:border-box}.delivery-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-value{font-size:28px;font-weight:800;letter-spacing:0;margin:5px 0}@media(max-width:1200px){.main-row{grid-template-columns:1fr}}.c-app-shell{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg, #0a0a0a)}.c-app-shell .bg-solid{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg, #0a0a0a);z-index:0}.c-app-shell .glow-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:1}.c-app-shell .safe-area-content{position:relative;z-index:2;width:100%;height:100%;padding-top:max(0px,env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column;overflow:hidden;-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px)}.c-app-shell .safe-area-content.with-tab-bar{padding-bottom:calc(env(safe-area-inset-bottom) + 74px)}.c-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;cursor:pointer;font-family:inherit;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .1s,opacity .2s}.c-btn:active:not(:disabled){transform:scale(.97)}.c-btn:disabled{opacity:.65;cursor:default}.c-btn.s-sm{height:32px;border-radius:10px;font-size:13px;padding:0 14px;gap:5px}.c-btn.s-md{height:42px;border-radius:12px;font-size:15px;padding:0 20px;gap:6px}.c-btn.s-lg{height:52px;border-radius:14px;font-size:16px;padding:0 22px;gap:7px}.c-btn.v-primary{background:var(--c, var(--color-teal));color:#fff;font-size:16px;letter-spacing:2px;box-shadow:0 4px 16px rgba(var(--rgb, var(--color-teal-rgb)),.3)}.c-btn.v-primary.s-sm{font-size:14px;letter-spacing:.4px}.c-btn.v-primary.s-lg{font-size:17px;letter-spacing:1px}.c-btn.v-outline{background:rgba(var(--rgb, var(--color-teal-rgb)),.2);color:var(--c, var(--color-teal));border:1px solid rgba(var(--rgb, var(--color-teal-rgb)),.5);font-size:14px}.c-btn.v-outline:disabled{background:rgba(var(--color-gray-rgb),.2);border-color:transparent;color:var(--surface-thumb)}.c-btn.block{width:100%}.c-btn .spinner{display:block;width:22px;height:22px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .7s linear infinite;flex-shrink:0}@keyframes btn-spin{to{transform:rotate(360deg)}}.c-input{position:relative;width:100%}.c-input label{display:block;margin-bottom:7px;font-size:12px;font-weight:600;color:var(--text-secondary)}.c-input .field{position:relative}.c-input .icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:20px;color:#a0a0a080;pointer-events:none;display:flex;align-items:center;justify-content:center}.c-input.sm .icon{left:12px;font-size:16px}.c-input input{width:100%;height:52px;background:#ffffff0d;border:1px solid var(--border-input);border-radius:12px;padding:0 14px;font-size:15px;color:#fff;font-family:inherit;outline:none;transition:border-color .2s;box-sizing:border-box}.c-input.has-icon input{padding-left:44px}.c-input.has-toggle input{padding-right:44px}.c-input.sm input{height:32px;border-radius:10px;padding:0 12px;font-size:13px}.c-input.sm.has-icon input{padding-left:38px}.c-input.sm.has-toggle input{padding-right:38px}.c-input input::placeholder{color:#a0a0a080}.c-input input:focus{border-color:rgba(var(--color-teal-rgb),.5)}.c-input input:disabled{opacity:.5;cursor:not-allowed}.c-input.has-error input{border-color:rgba(var(--color-red-rgb),.65)}.c-input.has-error input:focus{border-color:rgba(var(--color-red-rgb),.85)}.c-input .password-toggle{position:absolute;right:11px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.c-input.sm .password-toggle{right:6px;width:26px;height:26px}.c-input .password-toggle:disabled{opacity:.5;cursor:not-allowed}.c-input .error{margin-top:6px;font-size:12px;line-height:1.4;color:var(--color-red)}.scroll-center{position:relative;width:100%;min-height:calc(100vh - 32px);display:flex;align-items:center;justify-content:center}.form-wrap{width:100%;max-width:420px;padding:0 32px;display:flex;flex-direction:column;align-items:stretch}.logo-wrap{display:flex;justify-content:center;margin:20px 0 24px}.logo-box{width:112px;height:112px;border-radius:24px;display:flex;align-items:center;justify-content:center;overflow:hidden}.login-logo-img{width:112px;height:112px;object-fit:contain}.heading{font-size:26px;font-weight:600;color:#fff;text-align:center}.sub-heading{font-size:14px;color:#a0a0a0cc;text-align:center;margin-top:8px;margin-bottom:40px}.form-wrap .c-input{margin-bottom:16px}.code-row .c-input{margin-bottom:0}.code-row{display:flex;gap:12px;margin-bottom:16px;align-items:stretch}.admin-tip{margin-bottom:24px;font-size:14px;color:#a0a0a0cc;line-height:1.6;text-align:center}.boot-shell{min-height:100vh;display:grid;place-items:center;background:var(--bg);color:var(--text-secondary)}.admin-layout{height:100vh;background:var(--bg);display:flex;align-items:stretch;overflow:hidden}.admin-main{flex:1;min-width:0;min-height:0;padding:12px 12px 16px 0;display:flex;flex-direction:column}.page-wrap{flex:1;min-height:0;border-radius:20px;border:1px solid rgba(255,255,255,.09);background:#121318db;padding:14px;overflow:auto}.page-wrap.is-editor{overflow:hidden;display:flex;flex-direction:column}.dialog-message{color:#ffffffd1;font-size:14px;line-height:1.45;white-space:pre-wrap}.actions-row{display:flex;align-items:center;justify-content:flex-end;gap:4px}@media(max-width:1023px){.admin-layout{flex-direction:column;padding:10px;gap:0}.admin-main{width:100%;padding:0}.page-wrap{padding:10px;border-radius:16px}}
