*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{color:#172033;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}#root{min-height:100vh}.app{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:18px;width:100%;max-width:420px;padding:42px;box-shadow:0 20px 60px #0000001f}.brand{letter-spacing:-2px;color:#2563eb;font-size:34px;font-weight:800}.login-card h1{margin:8px 0;font-size:26px}.subtitle{color:#64748b;margin:0 0 30px}form{flex-direction:column;display:flex}label{margin:14px 0 7px;font-size:14px;font-weight:600}input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;outline:none;width:100%;padding:12px 14px;font-size:15px}input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:9px;margin-top:24px;padding:12px 16px;font-size:15px;font-weight:600}button:hover{background:#1d4ed8}button:disabled{opacity:.6;cursor:not-allowed}.error{color:#991b1b;background:#fee2e2;border-radius:8px;margin-top:16px;padding:10px 12px;font-size:14px}.dashboard{width:100%;max-width:1100px}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:40px;display:flex}.dashboard-header h1{margin:4px 0 0;font-size:28px}.dashboard-header button{background:#0f172a;margin:0}.welcome{margin-bottom:30px}.welcome span{color:#2563eb;font-weight:600}.welcome h2{margin:6px 0}.welcome p{color:#64748b;margin:0}.cards{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.cards article{background:#fff;border-radius:14px;padding:24px;box-shadow:0 8px 30px #00000012}.cards strong,.cards span{display:block}.cards span{color:#64748b;margin-top:8px;font-size:14px}@media (width<=800px){.cards{grid-template-columns:repeat(2,1fr)}}@media (width<=500px){.login-card{padding:28px}.cards{grid-template-columns:1fr}.dashboard-header{align-items:flex-start;gap:20px}}
