:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-dark:#0f172a;--bg-card:#1e293bb3;--bg-card-hover:#334155cc;--text-main:#f8fafc;--text-muted:#94a3b8;--accent-primary:#3b82f6;--accent-primary-hover:#2563eb;--accent-secondary:#8b5cf6;--accent-success:#10b981;--accent-danger:#ef4444;--border-color:#ffffff1a;--glass-shadow:0 8px 32px 0 #0000004d;--glass-border:1px solid #ffffff0d}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-dark);color:var(--text-main);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 15%,#3b82f626,#0000 25%),radial-gradient(circle at 85% 30%,#8b5cf626,#0000 25%);background-attachment:fixed;min-height:100vh;line-height:1.5}a{color:var(--accent-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-primary-hover)}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;box-shadow:0 4px 12px #3b82f64d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #3b82f680}.text-gradient{background:linear-gradient(135deg,#60a5fa,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.badge{letter-spacing:.05em;text-transform:uppercase;border-radius:9999px;padding:4px 12px;font-size:.75rem;font-weight:600}.badge-success{color:#34d399;background:#10b98126;border:1px solid #10b98133}.badge-warning{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b33}.badge-danger{color:#f87171;background:#ef444426;border:1px solid #ef444433}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}button,input,select,textarea{font:inherit}button{color:#e2e8f0;cursor:pointer;background:linear-gradient(135deg,#24344f,#1e293b);border:1px solid #94a3b840;border-radius:10px;padding:9px 15px;font-weight:600;transition:background .16s,border-color .16s,box-shadow .16s}button:hover:not(:disabled){border-color:#60a5fa;box-shadow:0 3px 12px #3b82f62e}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:2px solid #93c5fd}select,input:not([type=checkbox]):not([type=radio]),textarea{color:#f1f5f9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#162237;border:1px solid #94a3b84d;border-radius:10px;padding:10px 12px}input::placeholder,textarea::placeholder{color:#94a3b8}input[type=checkbox]{accent-color:#60a5fa;vertical-align:middle;width:16px;height:16px;margin-right:7px}.role-promote{color:#a7f3d0;background:linear-gradient(135deg,#134e4a,#183c3d);border-color:#34d39966}.role-demote{color:#fde68a;background:linear-gradient(135deg,#493b20,#332e28);border-color:#fbbf2466}.account-details{flex-direction:column;min-width:0;display:flex}.account-email{color:#a8b8ce;overflow-wrap:anywhere;font-size:12px}.user-profile{border:1px solid #94a3b82e;max-width:360px}.user-profile .user-name{overflow-wrap:anywhere}@media (width<=700px){.header{flex-wrap:wrap;gap:12px}.header-actions{flex-wrap:wrap}.user-profile{max-width:100%}}.app-layout{height:100vh;display:flex;overflow:hidden}.sidebar{-webkit-backdrop-filter:blur(20px);z-index:10;background:#0f172a99;border-right:1px solid #ffffff0d;flex-direction:column;width:260px;padding:1.5rem 0;display:flex}.brand{align-items:center;gap:.75rem;padding:0 1.5rem 2rem;display:flex}.brand-icon{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex;box-shadow:0 4px 12px #6366f166}.brand-title{letter-spacing:.5px;font-size:1.25rem;font-weight:700}.nav-links{flex-direction:column;gap:.25rem;padding:0 1rem;display:flex}.nav-link{color:var(--text-muted);border-radius:8px;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;transition:all .2s;display:flex}.nav-link:hover{color:var(--text-main);background:#ffffff0d}.nav-link.active{color:var(--accent-primary);border-left:3px solid var(--accent-primary);background:linear-gradient(90deg,#3b82f626,#0000)}.nav-link.active .icon{color:var(--accent-primary)}.main-wrapper{flex-direction:column;flex:1;display:flex;overflow:hidden}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;background:#0f172a66;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;height:72px;padding:0 2rem;display:flex}.header-title{font-size:1.25rem;font-weight:600}.header-actions{align-items:center;gap:1rem;display:flex}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.icon-btn:hover{color:var(--text-main);background:#ffffff1a}.user-profile{cursor:pointer;background:#ffffff0d;border:1px solid #ffffff0d;border-radius:999px;align-items:center;gap:.75rem;padding:6px 12px 6px 6px;transition:background .2s;display:flex}.user-profile:hover{background:#ffffff1a}.avatar{background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.user-name{font-size:.875rem;font-weight:500}.content{flex:1;padding:2rem;overflow-y:auto}.page-enter{opacity:0;transform:translateY(10px)}.page-enter-active{opacity:1;transition:opacity .3s,transform .3s;transform:translateY(0)}.dashboard-container{flex-direction:column;gap:2rem;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.stat-card{flex-direction:column;gap:.75rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;display:flex}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0006}.stat-header{justify-content:space-between;align-items:center;display:flex}.stat-title{color:var(--text-muted);font-size:.9rem;font-weight:500}.stat-icon{width:40px;height:40px;color:var(--accent-primary);background:#3b82f626;border-radius:10px;justify-content:center;align-items:center;display:flex}.stat-value{color:var(--text-main);font-size:2rem;font-weight:700}.dashboard-content{grid-template-columns:1fr;gap:1.5rem;display:grid}.chart-placeholder{padding:1.5rem}.chart-placeholder h3{margin-bottom:1.5rem;font-weight:600}.status-bars{flex-direction:column;gap:1rem;display:flex}.status-bar-row{align-items:center;gap:1rem;display:flex}.status-bar-label{width:70px;color:var(--text-muted);text-align:right;flex-shrink:0;font-size:.85rem}.status-bar-track{background:#ffffff0d;border-radius:6px;flex:1;height:12px;overflow:hidden}.status-bar-fill{border-radius:6px;min-width:2px;height:100%;transition:width 1s ease-out}.status-bar-count{width:32px;color:var(--text-main);flex-shrink:0;font-size:.9rem;font-weight:600}.dashboard-loading{height:300px;color:var(--text-muted);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.dashboard-error{text-align:center;color:var(--accent-danger);flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}.error-hint{color:var(--text-muted);font-size:.85rem}.error-hint code{background:#ffffff1a;border-radius:4px;padding:2px 6px}:root{--layer-navigation:1000;--layer-banner:1200;--layer-toast:2000;--layer-dialog:6000}.dialog-theme-app{--dialog-bg:#f5faf8;--dialog-text:#2a241e;--dialog-muted:#625b52;--dialog-primary:#176b4b;--dialog-secondary:#e5e7eb;--dialog-secondary-text:#374151;--dialog-border:#cbd5e1;--dialog-danger:#b91c1c;--dialog-error-text:#b91c1c;--dialog-input:#fff;--dialog-subtle:#eaf2ef}.dialog-theme-admin{--dialog-bg:#162237;--dialog-text:#f8fafc;--dialog-muted:#cbd5e1;--dialog-primary:#1d4ed8;--dialog-secondary:#334155;--dialog-secondary-text:#f1f5f9;--dialog-border:#64748b;--dialog-danger:#b91c1c;--dialog-error-text:#fca5a5;--dialog-input:#0f172a;--dialog-subtle:#1e293b}.dialog-overlay{box-sizing:border-box;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));color:var(--dialog-text);isolation:isolate;overscroll-behavior:contain;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:auto}.dialog-card{width:100%;max-width:400px;max-height:calc(var(--dialog-viewport-height,100dvh) - max(24px, env(safe-area-inset-top)) - max(24px, env(safe-area-inset-bottom)));background:var(--dialog-bg);color:var(--dialog-text);border-radius:28px;outline:none;flex-direction:column;min-height:0;padding:24px;animation:.18s ease-out dialog-enter;display:flex;position:relative;box-shadow:0 8px 32px #0b1f1838}.dialog-variant-alert .dialog-card{max-width:360px}.dialog-header{text-align:center;flex-shrink:0;margin-bottom:16px;padding:0 20px}.dialog-title{color:var(--dialog-text);overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:700;line-height:1.4}.dialog-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 16px;display:flex}.dialog-tone-info{color:#2563eb;background:#dbeafe}.dialog-tone-success{color:#176b4b;background:#ddf3e8}.dialog-tone-warning{color:#b45309;background:#fef3c7}.dialog-tone-error{color:#b91c1c;background:#fee2e2}.dialog-close{z-index:1;width:40px;height:40px;box-shadow:none;color:var(--dialog-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:28px;line-height:1;display:flex;position:absolute;top:12px;right:12px}.dialog-body,.dialog-controls{border:0;min-width:0;margin:0;padding:0}.dialog-controls{width:100%}.dialog-body:disabled{pointer-events:none}.dialog-body{overscroll-behavior:contain;overflow-wrap:anywhere;min-height:0;overflow-y:auto}.dialog-body>p+p{margin-top:12px}.dialog-body>label{margin-top:16px;display:block}.dialog-message{color:var(--dialog-muted);white-space:pre-line;text-align:center;margin:0;font-size:16px;line-height:1.5}.dialog-actions{flex-shrink:0;padding-top:24px}.dialog-button-row,.dialog-actions .alert-modal-buttons{gap:12px;width:100%;display:flex}.dialog-button-row.vertical,.dialog-actions .alert-modal-buttons.vertical{flex-direction:column}.dialog-card .dialog-action,.dialog-card .dialog-actions .btn{width:auto;min-width:0;min-height:48px;font:inherit;text-align:center;white-space:normal;cursor:pointer;box-shadow:none;border:1px solid #0000;border-radius:999px;flex:1;padding:12px 16px;font-size:16px;font-weight:700;line-height:1.5;transition:opacity .15s}.dialog-card .dialog-action-primary,.dialog-card .dialog-actions .btn-primary{background:var(--dialog-primary);color:#fff}.dialog-card .dialog-action-secondary,.dialog-card .dialog-actions .btn-secondary,.dialog-card .dialog-actions .btn-outline{background:var(--dialog-secondary);color:var(--dialog-secondary-text);border-color:var(--dialog-border)}.dialog-card .dialog-action-danger,.dialog-card .dialog-actions .btn-danger{background:var(--dialog-danger);color:#fff}.dialog-card :is(button,input,textarea,select):disabled{opacity:.5;cursor:not-allowed}.dialog-card button:active:not(:disabled){opacity:.85}.dialog-card button:focus-visible,.dialog-card input:focus-visible,.dialog-card textarea:focus-visible,.dialog-card select:focus-visible{outline-offset:3px;outline:3px solid #60a5fa}.dialog-theme-admin .dialog-body button{border:1px solid var(--dialog-border);background:var(--dialog-secondary);min-height:44px;color:var(--dialog-secondary-text);font:inherit;cursor:pointer;border-radius:999px;padding:10px 14px}.dialog-theme-admin .dialog-body a{color:#93c5fd}.dialog-card input:not([type=radio]):not([type=checkbox]):not([type=range]),.dialog-card textarea,.dialog-card select{background:var(--dialog-input);color:var(--dialog-text);border-color:var(--dialog-border);border-radius:14px;padding:12px;font-size:16px}.dialog-variant-sheet{align-items:flex-end;padding:24px 0 0}.dialog-variant-sheet .dialog-card{max-width:640px;max-height:calc(var(--dialog-viewport-height,100dvh) * .8);padding-bottom:max(24px, env(safe-area-inset-bottom));border-radius:28px 28px 0 0}.dialog-handle{background:#cbd5e1;border-radius:2px;flex-shrink:0;width:40px;height:4px;margin:0 auto 20px}.dialog-variant-drawer{justify-content:flex-end;padding:0}.dialog-variant-drawer .dialog-card{width:min(500px,100vw);height:var(--dialog-viewport-height,100dvh);max-height:var(--dialog-viewport-height,100dvh);padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));border-radius:28px 0 0 28px}.dialog-variant-image{padding:max(16px, env(safe-area-inset-top)) 16px;background:#000000e6}.dialog-variant-image .dialog-card{max-width:none;height:100%;max-height:100%;box-shadow:none;background:0 0;border-radius:0;padding:0}.dialog-variant-image .dialog-body{flex:1;justify-content:center;align-items:center;display:flex}.dialog-variant-image .dialog-close{color:#2a241e;background:#fff}.dialog-variant-image img{object-fit:contain;max-width:100%;max-height:100%}@keyframes dialog-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=359px){.dialog-button-row,.dialog-actions .alert-modal-buttons{flex-direction:column}}@media (width<=500px){.dialog-variant-drawer .dialog-card{border-radius:0}}@media (prefers-reduced-motion:reduce){.dialog-card{animation:none}}@media (height<=480px){.dialog-card{padding:16px}.dialog-header{margin-bottom:8px}.dialog-icon{width:48px;height:48px;margin-bottom:8px}.dialog-icon svg,.dialog-icon ion-icon{width:32px;height:32px;font-size:32px!important}.dialog-actions{padding-top:12px}}.table-container{border-radius:12px;overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%}.admin-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);white-space:nowrap;background:#0003;padding:.85rem 1rem;font-size:.8rem;font-weight:600}.admin-table td{vertical-align:middle;border-bottom:1px solid #ffffff05;padding:.85rem 1rem;font-size:.9rem}.admin-table tbody tr{transition:background .2s}.admin-table tbody tr:hover{background:#ffffff08}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr.row-banned{background:#ef44440d}.admin-table tbody tr.row-banned:hover{background:#ef444414}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.user-cell{align-items:center;gap:.5rem;display:inline-flex}.mini-avatar{background:#ffffff1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.verified-badge{color:var(--accent-primary);font-weight:700}.reward-cell{background:linear-gradient(135deg,#60a5fa,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.location-cell{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.action-btn{cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;padding:6px 8px;transition:all .2s;display:inline-flex}.action-btn.danger{color:#f87171}.action-btn.danger:hover{background:#ef444426;border-color:#ef44444d}.action-btn.success{color:#34d399}.action-btn.success:hover{background:#10b98126;border-color:#10b9814d}.badge-primary{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f633}.table-loading,.table-error,.table-empty{text-align:center;color:var(--text-muted);padding:3rem;font-size:1rem}.table-error{color:var(--accent-danger)}.text-xl{font-size:1.25rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.text-muted{color:var(--text-muted)}.finance-sandbox{flex-direction:column;gap:16px;margin-bottom:40px;display:flex}.finance-sandbox h2,.finance-sandbox h3,.finance-sandbox p{margin:0}.finance-admin-notice{color:#ffe4ad;background:#48371c;border:1px solid #e6a23c;border-radius:14px;padding:16px;line-height:1.7}.finance-admin-btn{color:#ecf5ff;cursor:pointer;background:#253e59;border:1px solid #6385a8;border-radius:10px;min-height:40px;margin:4px;padding:9px 14px;font-weight:600}.finance-admin-btn:hover{background:#355575}.finance-admin-btn:disabled{opacity:.5;cursor:wait}.finance-admin-reason{flex-direction:column;gap:8px;display:flex}.finance-sandbox textarea,.finance-sandbox input{color:#ecf5ff;background:#142238;border:1px solid #6385a8;border-radius:10px;padding:12px}.finance-admin-error{color:#ffadad}.finance-admin-totals{color:#addecb;flex-wrap:wrap;gap:14px;display:flex}.finance-admin-sensitive,.finance-admin-exception{background:#142238;border:1px solid #6385a8;border-radius:14px;flex-direction:column;gap:10px;padding:18px;display:flex}.finance-admin-exception label{flex-direction:column;gap:8px;display:flex}.finance-admin-exception a{color:#addecb;text-decoration:underline}.login-container{background-color:var(--bg-primary);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background-color:var(--bg-secondary);border-radius:12px;width:100%;max-width:400px;padding:40px;box-shadow:0 8px 24px #0003}.login-header{text-align:center;margin-bottom:30px}.login-icon{color:var(--brand-primary);margin-bottom:15px}.login-header h2{color:var(--text-primary);margin:0 0 10px;font-size:24px}.login-header p{color:var(--text-secondary);margin:0;font-size:14px}.login-error{color:#ef4444;text-align:center;background-color:#ef44441a;border-radius:8px;margin-bottom:20px;padding:12px;font-size:14px}.form-group{margin-bottom:20px}.form-group label{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;padding:12px;font-size:14px;transition:border-color .2s}.form-group input:focus{border-color:var(--brand-primary);outline:none}.login-btn{background-color:var(--brand-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px;font-size:16px;font-weight:600;transition:opacity .2s}.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.5;cursor:not-allowed}
