.g-toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:#1a2242;border:1px solid var(--border-mid);color:var(--text-hi);border-radius:10px;padding:10px 20px;font-size:13px;box-shadow:0 4px 20px #0006;z-index:99999;white-space:nowrap;pointer-events:none}:root{--bg-void: #060810;--bg-base: #090d1e;--bg-surface: #0f1428;--bg-elevated: #141b38;--bg-hover: #1a2242;--border-dim: #1c2448;--border-mid: #243060;--border-bright: #2e3c78;--accent-p: #a78bfa;--accent-p2: #7c3aed;--accent-p3: #c084fc;--accent-g: #10b981;--accent-b: #3b82f6;--accent-o: #f59e0b;--accent-r: #ef4444;--text-hi: #e8eeff;--text-mid: #c8d0e0;--text-lo: #94a3b8;--text-muted: #94a3b8;--text-dim: #64748b;--placeholder: var(--text-dim);--brand-title: var(--accent-p);--grad-p: linear-gradient(135deg, #6c5ce7, #a855f7, #c084fc);--grad-g: linear-gradient(135deg, #059669, #10b981);--grad-surface: linear-gradient(145deg, #0f1428, #141b38);--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "DM Mono", monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;background:var(--bg-base);color:var(--text-hi);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:4px}a{color:var(--accent-p);text-decoration:none;cursor:pointer}a:hover{opacity:.8}input,textarea,select{background:var(--bg-elevated);border:1px solid var(--border-dim);color:var(--text-hi);font-family:var(--font-body);font-size:13px;border-radius:var(--radius-sm);padding:10px 14px;width:100%;outline:none;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent-p)}input::placeholder,textarea::placeholder{color:var(--placeholder);opacity:1}button{cursor:pointer;font-family:var(--font-body);border:none;outline:none;transition:all .15s}.g-toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:#1a2242;border:1px solid var(--border-mid);color:var(--text-hi);border-radius:10px;padding:10px 20px;font-size:13px;box-shadow:0 4px 20px #0006;z-index:99999;max-width:min(420px,calc(100vw - 32px));white-space:normal;word-break:break-word;text-align:center;line-height:1.45;pointer-events:none}.toast-enter-active,.toast-leave-active{transition:all .3s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%) translateY(-8px)}.card{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--radius-md);padding:16px;transition:border-color .15s}.card:hover{border-color:var(--border-mid)}.card-sm{border-radius:10px;padding:14px}.kpi-card{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--radius-md);padding:16px}.kpi-label{font-size:11px;color:var(--text-lo);margin-bottom:8px;font-weight:500;letter-spacing:.4px}.kpi-value{font-size:28px;font-weight:800;font-family:var(--font-display);line-height:1;margin-bottom:4px}.kpi-change{font-size:11px;font-weight:600}.kpi-change.up{color:var(--accent-g)}.kpi-change.down{color:var(--accent-r)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;font-family:var(--font-body);transition:all .15s}.btn-primary{background:var(--grad-p);color:#fff;border:none}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-edit{background:var(--grad-p);color:#fff;border:none}.btn-edit:hover{opacity:.9;transform:translateY(-1px)}.btn-edit:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-sm{padding:5px 12px;font-size:12px;border-radius:7px}.btn-ghost{background:transparent;color:var(--accent-p);border:1px solid var(--border-mid)}.btn-ghost:hover{border-color:var(--accent-p);background:#a78bfa14}.btn-ghost:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-danger{background:#ef44441a;color:var(--accent-r);border:1px solid rgba(239,68,68,.2)}.btn-full{width:100%;justify-content:center;padding:12px 16px;font-size:14px;border-radius:10px}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600}.tag.green{background:#10b9811a;color:var(--accent-g)}.tag.red{background:#ef44441a;color:var(--accent-r)}.tag.blue{background:#3b82f61a;color:var(--accent-b)}.tag.orange{background:#f59e0b1a;color:var(--accent-o)}.tag.purple{background:#a78bfa1a;color:var(--accent-p)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}.status-dot.green{background:var(--accent-g);box-shadow:0 0 6px #10b98180}.status-dot.red{background:var(--accent-r);box-shadow:0 0 6px #ef444480}.status-dot.orange{background:var(--accent-o)}.section-title{font-size:14px;font-weight:700;color:var(--text-hi);margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.section-title .see-all{font-size:12px;color:var(--accent-p);cursor:pointer;font-weight:500}.page-head{margin-bottom:20px}.page-head h1{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--brand-title);margin-bottom:4px}.page-head p{font-size:13px;color:var(--text-mid);line-height:1.55}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{padding:10px 14px;text-align:left;font-size:11px;color:var(--text-lo);font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-dim)}.data-table td{padding:10px 14px;border-bottom:1px solid rgba(28,36,72,.5)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover);cursor:pointer}.progress-bar{background:var(--bg-hover);border-radius:4px;height:6px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:var(--accent-p);transition:width .3s}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9998;display:flex;align-items:center;justify-content:center}.modal-card{position:relative;z-index:1;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--radius-lg);padding:28px;box-shadow:0 20px 60px #00000080;width:520px;max-width:92vw;max-height:85vh;overflow-y:auto;pointer-events:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:17px;font-weight:700;color:var(--text-hi)}.modal-close{width:28px;height:28px;border-radius:50%;background:#ffffff0f;color:var(--text-mid);font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none}.modal-close:hover{background:#ffffff1f}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-dim);font-size:13px}.setting-row:last-child{border-bottom:none}.setting-row .sr-label{color:var(--text-mid)}.toggle{width:44px;height:24px;border-radius:12px;background:var(--border-mid);position:relative;cursor:pointer;transition:background .2s;flex-shrink:0;border:none}.toggle.on{background:var(--accent-p)}.toggle:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:2px;left:2px;transition:transform .2s}.toggle.on:after{transform:translate(20px)}.plat-icon{width:22px;height:22px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;flex-shrink:0}.divider{border:none;border-top:1px solid var(--border-dim);margin:16px 0}.form-group{margin-bottom:14px}.form-label{font-size:12px;color:var(--text-lo);margin-bottom:6px;display:block}.form-hint{display:block;font-size:12px;color:var(--text-lo);line-height:1.45;margin-top:6px}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--placeholder);opacity:1}.auth-wrap--partner{background:linear-gradient(180deg,#eef3ff,#f5f6fa 48%,#f5f6fa)}.auth-wrap--partner .auth-card{box-shadow:0 1px 2px #0000000f,0 2px 8px #0000000a;border-color:#e5e6eb}.auth-card--partner .auth-title{font-weight:600;letter-spacing:0}.auth-card--partner .field-shell{background:#fff;border-color:#dcdfe6}.auth-card--partner .field-shell:focus-within{box-shadow:0 0 0 3px #7c3aed1f}.auth-card--partner .phone-prefix-pill{background:#f2f3f5}.auth-wrap--partner .auth-tabs{background:#f2f3f5;border-color:#e5e6eb}.auth-wrap{min-height:100vh;background:var(--bg-base);display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--radius-lg);padding:36px 28px 32px;width:100%;max-width:400px;box-shadow:0 20px 60px #00000059}.auth-head{text-align:center;margin-bottom:24px}.auth-logo{width:52px;height:52px;border-radius:14px;background:var(--grad-p);font-family:var(--font-display);font-size:22px;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.auth-card--admin .auth-logo{background:transparent;width:auto;height:auto}.auth-title{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--text-hi);margin-bottom:6px;letter-spacing:-.02em}.auth-sub{font-size:13px;color:var(--text-lo);margin:0;line-height:1.5}.auth-tabs{position:relative;display:flex;gap:0;margin-bottom:22px;background:var(--bg-base);border-radius:10px;padding:4px;border:1px solid var(--border-dim)}.auth-tab-indicator{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);background:var(--bg-surface);border-radius:8px;box-shadow:0 1px 4px #0000001f;transition:transform .28s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:0}.auth-tab-indicator--password{transform:translate(100%)}.auth-tab{position:relative;z-index:1;flex:1;border:none;background:transparent;min-height:44px;padding:10px 8px;font-size:13px;font-weight:600;color:var(--text-lo);border-radius:8px;cursor:pointer;transition:color .2s ease;font-family:var(--font-body)}.auth-tab.active{color:var(--text-hi)}.auth-card--admin .auth-tab.active{color:var(--accent-r)}.auth-form{display:flex;flex-direction:column;gap:0}.field-shell{background:var(--bg-elevated);border:1px solid var(--border-dim);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease}.field-shell:focus-within{border-color:var(--accent-p);box-shadow:0 0 0 3px #a78bfa1a}.auth-card--admin .field-shell:focus-within{border-color:var(--accent-r);box-shadow:0 0 0 3px #ef44441a}.field-shell--error{border-color:var(--accent-r)}.field-shell--error:focus-within{box-shadow:0 0 0 3px #ef44441a}.field-shell input{width:100%;min-height:44px;padding:10px 14px;border:none;background:transparent;color:var(--text-hi);font-family:var(--font-body);font-size:14px;outline:none}.field-shell input::placeholder{color:var(--text-lo)}.field-shell--grow{flex:1;min-width:0}.phone-field{display:flex;align-items:center;gap:10px;padding:0 14px 0 10px;min-height:44px}.phone-prefix-pill{flex-shrink:0;padding:5px 10px;font-size:13px;font-weight:600;color:var(--text-mid);background:var(--bg-base);border-radius:6px;line-height:1.2;-webkit-user-select:none;user-select:none}.phone-field input{flex:1;min-width:0;padding:10px 0}.code-row{display:flex;gap:10px;align-items:stretch}.code-input{letter-spacing:.08em}.btn-code{flex-shrink:0;min-height:44px;padding:0 16px;min-width:112px;border-radius:10px;border:1px solid var(--accent-p);background:transparent;color:var(--accent-p);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s;font-family:var(--font-body);white-space:nowrap}.auth-card--admin .btn-code{border-color:var(--accent-r);color:var(--accent-r)}.btn-code:hover:not(:disabled){background:#a78bfa14}.auth-card--admin .btn-code:hover:not(:disabled){background:#ef444414}.btn-code:disabled,.btn-code--countdown{border-color:var(--border-dim);background:var(--bg-base);color:var(--text-lo);cursor:not-allowed;opacity:1}.field-error{margin:6px 0 0;font-size:12px;color:var(--accent-r);line-height:1.4}.field-error--form{margin-bottom:4px;text-align:center}.auth-form .form-group{margin-bottom:14px}.auth-agreement{margin:0 0 12px}.auth-agreement-label{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text-lo);line-height:1.5;cursor:pointer}.auth-agreement-check{width:16px;height:16px;min-height:16px;margin-top:2px;flex-shrink:0;accent-color:var(--accent-p);cursor:pointer}.auth-card--admin .auth-agreement-check{accent-color:var(--accent-r)}.auth-agreement-label a{color:var(--accent-p);text-decoration:none}.auth-card--admin .auth-agreement-label a{color:var(--accent-r)}.auth-agreement-label a:hover{text-decoration:underline;opacity:1}.password-field{display:flex;align-items:center;gap:4px;padding-right:4px;min-height:44px}.password-field input{flex:1;min-width:0;padding-right:8px}.password-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-lo);border-radius:8px;cursor:pointer;transition:color .15s ease,background .15s ease}.password-toggle:hover{color:var(--text-mid);background:var(--bg-base)}.password-toggle-icon{width:20px;height:20px}.auth-forgot-row{display:flex;justify-content:flex-end;margin-top:8px}.auth-forgot-link,.auth-forgot-row .auth-forgot-link{font-size:12px;color:var(--text-mid);text-decoration:none;transition:color .15s ease}.auth-forgot-link:hover,.auth-forgot-row .auth-forgot-link:hover{color:var(--text-hi);text-decoration:underline}.auth-card--admin .auth-forgot-link:hover,.auth-card--admin .auth-forgot-row .auth-forgot-link:hover{color:var(--accent-r)}.auth-submit{margin-top:8px;min-height:48px;font-size:15px;font-weight:700;border-radius:10px}.auth-card--admin .auth-submit{background:var(--accent-r)!important}@media (max-width: 480px){.auth-card{padding:28px 20px 24px;border-radius:14px}.btn-code{min-width:100px;padding:0 12px;font-size:12px}}
