.login-page{min-height:100dvh;padding:var(--space-6);background:var(--color-bg);place-items:center;display:grid}.login-card{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-md);gap:var(--space-5);border:1px solid #28251d1f;padding:clamp(2rem,4vw,2.75rem);display:grid}.login-brand{align-items:center;gap:var(--space-4);display:flex}.login-brand-mark{background:linear-gradient(160deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 65%, white));width:52px;height:52px;box-shadow:var(--shadow-sm);border-radius:14px;flex-shrink:0;place-items:center;display:grid}.login-brand-mark svg{color:#fff;width:30px;height:30px}.login-brand-text h1{font-size:var(--text-xl);letter-spacing:-.03em;font-weight:700;line-height:1.1}.login-brand-text p{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-faint);margin-top:.15rem}.login-divider{background:#28251d1f;height:1px}.login-tagline{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6}.login-error{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-error) 25%, var(--color-border));color:var(--color-error);font-size:var(--text-sm);font-weight:600;display:flex}.login-google-btn{justify-content:center;align-items:center;gap:var(--space-3);border-radius:var(--radius-lg);background:var(--color-surface-2);width:100%;min-height:50px;font-size:var(--text-base);color:var(--color-text);cursor:pointer;transition:background var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition);border:1px solid #28251d24;padding:.85rem 1.25rem;font-weight:600;display:flex}.login-google-btn:hover{background:var(--color-surface-offset);border-color:var(--color-border);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.login-google-btn:active{transform:translateY(0)}.login-footer{font-size:var(--text-xs);color:var(--color-text-faint);text-align:center;letter-spacing:.02em}.signout-actions{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.signout-btn{border-radius:var(--radius-lg);min-height:50px;font-size:var(--text-base);cursor:pointer;transition:background var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition);justify-content:center;align-items:center;padding:.85rem 1.25rem;font-weight:600;display:flex}.signout-btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.signout-btn:active{transform:translateY(0)}.signout-btn-primary{background:var(--color-primary);color:var(--color-text-inverse);border:1px solid var(--color-primary)}.signout-btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.signout-btn-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid #28251d24}.signout-btn-secondary:hover{background:var(--color-surface-offset)}@supports (-webkit-touch-callout:none){input,select,textarea{font-size:16px!important}}.commission-launch-btn{background:var(--color-primary);width:32px;min-width:32px;height:32px;min-height:32px;color:var(--color-text-inverse);cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--transition), transform var(--transition);border:none;border-radius:50%;place-items:center;display:grid}.commission-launch-btn:hover{background:var(--color-primary-hover);transform:scale(1.03)}td[data-col-key]{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}@media (max-width:900px){.dashboard-grid{margin-top:var(--space-3)}.table-wrap{margin-top:var(--space-3);-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 160px);padding-bottom:env(safe-area-inset-bottom);overflow-y:auto}.table-wrap.filters-open{max-height:45vh}.table-wrap th{z-index:2}.leaderboard-page{height:calc(100dvh - 90px);max-height:calc(100dvh - 90px);overflow:hidden;padding:var(--space-4)!important}.table-wrap.leaderboard-table{flex:1;min-height:0;max-height:none}}
