*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0f;--bg-2: #111118;--surface: #1a1a24;--surface-2: #22223a;--border: rgba(255,255,255,.08);--purple: #7c3aed;--purple-light: #a855f7;--amber: #f59e0b;--green: #4ade80;--text: #f4f4f8;--text-muted: #8888a0;--radius: 10px;--sidebar-w: 220px}html,body,#root{height:100%;font-family:Inter,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:14px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(124,58,237,.2) 0%,transparent 70%),var(--bg)}.login-back{position:fixed;top:1.25rem;left:1.5rem;font-size:.85rem;color:var(--text-muted);text-decoration:none;transition:color .15s}.login-back:hover{color:var(--text)}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.25rem}.login-logo{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,var(--purple-light),var(--amber));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-sub{font-size:.8rem;color:var(--text-muted);margin-bottom:1.5rem}.login-form{width:100%;display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.78rem;font-weight:600;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.field input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:.9rem;padding:.6rem .85rem;outline:none;transition:border-color .15s}.field input:focus{border-color:var(--purple-light)}.field input::placeholder{color:var(--text-muted)}.login-error{font-size:.82rem;color:#f87171;text-align:center}.btn-primary{width:100%;padding:.65rem;background:var(--purple);color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s;margin-top:.25rem}.btn-primary:hover:not(:disabled){background:var(--purple-light)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.login-hint{margin-top:1.5rem;font-size:.78rem;color:var(--text-muted);text-align:center;line-height:1.6}.login-hint code{font-family:monospace;color:var(--amber)}.dashboard{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh}.sidebar-header{padding:1.25rem 1rem 1rem;border-bottom:1px solid var(--border)}.sidebar-logo{font-size:1rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--purple-light),var(--amber));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-nav{flex:1;padding:.75rem .5rem;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border-radius:8px;font-size:.875rem;font-weight:500;color:var(--text-muted);background:none;border:none;cursor:pointer;text-align:left;transition:background .12s,color .12s}.nav-item:hover{background:var(--surface);color:var(--text)}.nav-item--active{background:#7c3aed26;color:var(--purple-light)}.nav-icon{font-size:1rem;width:1.2rem;text-align:center}.sidebar-footer{padding:.75rem .75rem 1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.sidebar-user{display:flex;align-items:center;gap:.6rem;font-size:.85rem;font-weight:600}.avatar{width:28px;height:28px;border-radius:4px;image-rendering:pixelated}.btn-ghost{font-family:inherit;font-size:.8rem;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem;cursor:pointer;transition:color .12s,border-color .12s}.btn-ghost:hover{color:var(--text);border-color:#ffffff2e}.dashboard-main{flex:1;overflow-y:auto;padding:2rem 2.5rem}.view{max-width:900px}.view-title{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;margin-bottom:1.75rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.35rem}.stat-card--highlight{border-color:#f59e0b4d}.stat-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.stat-value{font-size:1.2rem;font-weight:700;letter-spacing:-.02em}.stat-desc{font-size:.78rem;color:var(--text-muted);margin-top:.1rem}.text-amber{color:var(--amber)}.text-green{color:var(--green)}.text-muted{color:var(--text-muted)}.text-center{text-align:center}.font-medium{font-weight:600}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{background:var(--surface);padding:.65rem 1rem;text-align:left;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.data-table td{padding:.7rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#ffffff05}.row-top td{background:#f59e0b0a}.badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600;background:var(--surface-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.badge--owned{background:#7c3aed33;color:var(--purple-light)}.badge--rented{background:#f59e0b26;color:var(--amber)}.badge--for_sale{background:#4ade8026;color:var(--green)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.skill-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.85rem}.skill-name{font-weight:700}.skill-level{font-size:.8rem;font-weight:700;color:var(--purple-light)}.xp-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:.5rem}.xp-fill{height:100%;background:linear-gradient(90deg,var(--purple),var(--purple-light));border-radius:3px;transition:width .4s ease}.xp-label{font-size:.75rem;color:var(--text-muted)}.tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}.tab{padding:.4rem .85rem;border-radius:6px;font-family:inherit;font-size:.82rem;font-weight:500;border:1px solid var(--border);background:none;color:var(--text-muted);cursor:pointer;transition:all .12s}.tab:hover{background:var(--surface);color:var(--text)}.tab--active{background:#7c3aed26;border-color:#7c3aed66;color:var(--purple-light)}.player-cell{display:flex;align-items:center;gap:.5rem}.mini-avatar{width:20px;height:20px;border-radius:3px;image-rendering:pixelated}.rank{font-size:1rem}.online-banner{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius);color:var(--amber);font-size:.85rem;padding:.75rem 1rem;margin-bottom:1.5rem}.send-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.send-form-title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.75rem}.send-form-fields{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.send-input{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:.875rem;padding:.5rem .75rem;outline:none;transition:border-color .15s;min-width:140px}.send-input:focus{border-color:var(--purple-light)}.send-input::placeholder{color:var(--text-muted)}.send-input:disabled{opacity:.45;cursor:not-allowed}.send-input--grow{flex:1}.send-btn{width:auto;padding:.5rem 1.25rem;margin-top:0;white-space:nowrap}.send-error{font-size:.82rem;color:#f87171;margin-top:.6rem}.send-ok{font-size:.82rem;color:var(--green);margin-top:.6rem}.pagination{display:flex;align-items:center;gap:.75rem;margin-top:1rem}.page-btn{font-family:inherit;font-size:.82rem;padding:.35rem .75rem;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color .12s,border-color .12s}.page-btn:hover:not(:disabled){color:var(--text);border-color:#ffffff2e}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-info{font-size:.82rem;color:var(--text-muted)}.badge--sent{background:#7c3aed33;color:var(--purple-light)}.badge--received{background:#4ade8026;color:var(--green)}.msg-content{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-debit{color:#f87171}.bottom-nav{display:none}@media (max-width: 640px){.dashboard{flex-direction:column;height:100dvh}.sidebar{display:none}.dashboard-main{flex:1;overflow-y:auto;padding:1.25rem 1rem 1.5rem;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.view{max-width:100%}.view-title{font-size:1.2rem;margin-bottom:1.25rem}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(56px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-2);border-top:1px solid var(--border);z-index:100;overflow-x:auto;scrollbar-width:none}.bottom-nav::-webkit-scrollbar{display:none}.bottom-nav-item{flex:1;min-width:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;cursor:pointer;color:var(--text-muted);padding:.4rem .25rem;transition:color .12s}.bottom-nav-item--active{color:var(--purple-light)}.bottom-nav-icon{font-size:1.1rem;line-height:1}.bottom-nav-label{font-size:.62rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.stat-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-card{padding:1rem}.stat-value{font-size:1rem}.skills-grid{grid-template-columns:1fr}.send-form-fields{flex-direction:column;align-items:stretch}.send-input{min-width:0;width:100%}.send-btn{width:100%}.login-card{padding:2rem 1.25rem}.data-table th,.data-table td{padding:.55rem .65rem}}
