:root{--bg-primary:#0f0f0f;--bg-secondary:#1a1a1a;--bg-tertiary:#252525;--border:#333;--text-primary:#fff;--text-secondary:#888;--text-muted:#555;--accent:#fff;--danger:#f87171;--success:#4ade80;--sidebar-width:220px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,sans-serif}body{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:fixed;top:0;left:0}.sidebar-logo{color:var(--text-primary);margin-bottom:32px;padding:0 8px;font-size:18px;font-weight:700}.nav-section{margin-bottom:24px}.nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;padding:0 8px;font-size:11px}.nav-item{color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px 8px;font-size:14px;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-item:hover,.nav-item.active{background:var(--bg-tertiary);color:var(--text-primary)}.nav-item .icon{text-align:center;width:20px;font-size:16px}.nav-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:16px}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh}.login-container{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:100%;max-width:400px;padding:48px 40px}.login-box h1{text-align:center;margin-bottom:8px;font-size:24px;font-weight:600}.login-box p{color:var(--text-secondary);text-align:center;margin-bottom:32px;font-size:14px}.form-input{background:var(--bg-primary);border:1px solid var(--border);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;margin-bottom:16px;padding:12px 16px;font-size:16px;transition:border-color .15s}.form-input:focus{border-color:var(--text-secondary)}.form-input::placeholder{color:var(--text-muted)}.btn{background:var(--text-primary);color:#000;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px;font-size:16px;font-weight:600;transition:opacity .15s}.btn:hover{opacity:.85}.btn:disabled{opacity:.4;cursor:not-allowed}.error-msg{color:var(--danger);text-align:center;margin-bottom:16px;font-size:14px}.dashboard-header{border-bottom:1px solid var(--border);padding:32px 40px 24px}.dashboard-header h2{margin-bottom:4px;font-size:20px;font-weight:600}.dashboard-header p{color:var(--text-secondary);font-size:14px}.dashboard-content{padding:32px 40px}.app-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.app-card{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;color:inherit;border-radius:12px;padding:24px;text-decoration:none;transition:border-color .15s,transform .1s;display:block}.app-card:hover{border-color:var(--text-secondary);transform:translateY(-1px)}.app-card .app-icon{margin-bottom:12px;font-size:28px}.app-card h3{margin-bottom:6px;font-size:16px;font-weight:600}.app-card p{color:var(--text-secondary);font-size:13px;line-height:1.5}.app-card .app-status{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px;margin-top:12px;padding:3px 8px;font-size:11px;display:inline-block}.app-card .app-status.ok{color:var(--success)}
