:root{--bg: #0f172a;--surface: #1e293b;--surface2: #334155;--accent: #3b82f6;--accent2: #22d3ee;--green: #22c55e;--red: #ef4444;--yellow: #f59e0b;--text: #e2e8f0;--text2: #94a3b8}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-box{background:var(--surface);border-radius:16px;padding:2.5rem;width:100%;max-width:400px;box-shadow:0 20px 60px #0006}.login-box h1{text-align:center;font-size:1.8rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-box p{text-align:center;color:var(--text2);margin-bottom:2rem;font-size:.9rem}.login-box input{width:100%;padding:.8rem 1rem;margin-bottom:1rem;background:var(--surface2);border:1px solid #475569;border-radius:8px;color:var(--text);font-size:1rem;outline:none;transition:border .2s}.login-box input:focus{border-color:var(--accent)}.login-box button{width:100%;padding:.8rem;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.login-box button:hover{background:#2563eb}.login-error{color:var(--red);text-align:center;margin-bottom:1rem;font-size:.9rem}.dashboard{min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--surface);border-bottom:1px solid var(--surface2)}.header h1{font-size:1.3rem;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header-right{display:flex;align-items:center;gap:1rem}.header-right span{color:var(--text2);font-size:.9rem}.avatar{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-weight:700;overflow:hidden;border:1px solid rgba(255,255,255,.12)}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar-xs{width:30px;height:30px;border-radius:8px;font-size:.8rem}.avatar-sm{width:42px;height:42px;font-size:1rem}.avatar-lg{width:64px;height:64px;border-radius:12px;font-size:1.8rem}.avatar-xl{width:96px;height:96px;border-radius:16px;font-size:2.3rem}.avatar-editor{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.logout-btn{padding:.5rem 1rem;background:var(--red);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem}.tabs{display:flex;gap:0;background:var(--surface);padding:0 2rem;border-bottom:1px solid var(--surface2);overflow-x:auto}.tab{padding:.9rem 1.5rem;cursor:pointer;color:var(--text2);font-size:.9rem;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{padding:1.5rem 2rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-bottom:2rem}.card{background:var(--surface);border-radius:12px;padding:1.5rem;border:1px solid var(--surface2);transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-2px);border-color:var(--accent)}.card h3{color:var(--text2);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.card .value{font-size:2rem;font-weight:700}.card .sub{color:var(--text2);font-size:.85rem;margin-top:.3rem}.btn{padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--surface2)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-danger{background:var(--red);color:#fff}.btn-success{background:var(--green);color:#fff}.btn-sm{padding:.3rem .8rem;font-size:.8rem}.form-label{display:grid;gap:.4rem;color:var(--text2);font-size:.85rem;font-weight:500}.form-input{width:100%;min-width:0;padding:.65rem .8rem;background:var(--surface);border:1px solid var(--surface2);border-radius:8px;color:var(--text);font-size:.9rem;outline:none}.form-input:focus{border-color:var(--accent)}.alert{border-radius:8px;padding:.75rem 1rem;font-size:.9rem}.alert-red{background:#ef44441f;border:1px solid var(--red);color:var(--red)}.alert-green{background:#22c55e1f;border:1px solid var(--green);color:var(--green)}.table-wrap{background:var(--surface);border-radius:12px;border:1px solid var(--surface2);overflow:hidden;margin-bottom:2rem}table{width:100%;border-collapse:collapse}th,td{padding:.8rem 1rem;text-align:left;font-size:.9rem}th{background:var(--surface2);color:var(--text2);font-weight:500;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}td{border-top:1px solid var(--surface2)}tr:hover td{background:#3b82f60d}.badge{display:inline-block;padding:.2rem .6rem;border-radius:20px;font-size:.75rem;font-weight:500}.badge-green{background:#22c55e26;color:var(--green)}.badge-red{background:#ef444426;color:var(--red)}.badge-yellow{background:#f59e0b26;color:var(--yellow)}.code-block{background:var(--surface);border:1px solid var(--surface2);border-radius:8px;padding:.8rem 1rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;color:var(--accent2);margin-bottom:.5rem;cursor:pointer;transition:border-color .2s;word-break:break-all}.code-block:hover{border-color:var(--accent)}.event-item{display:flex;gap:1rem;padding:.8rem 1rem;background:var(--surface);border-radius:8px;margin-bottom:.5rem;border:1px solid var(--surface2);font-size:.9rem}.event-time{color:var(--text2);white-space:nowrap;font-size:.8rem}.event-type{padding:.15rem .5rem;border-radius:4px;font-size:.7rem;text-transform:uppercase;font-weight:600}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--surface2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;margin-top:.5rem}.progress-fill{height:100%;border-radius:3px;transition:width .5s}@media (max-width: 768px){.header{padding:1rem}.tabs{padding:0 .5rem}.tab-content{padding:1rem}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.avatar-editor{grid-template-columns:1fr}th,td{padding:.6rem .8rem;font-size:.8rem}}
