* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: system-ui, -apple-system, sans-serif;
    background: #f5f5f5;
    color: #333;
    min-height: 100vh;
}

main { max-width: 800px; margin: 0 auto; padding: 2rem; }

.login-container {
    max-width: 400px;
    margin: 4rem auto;
    padding: 2rem;
    background: white;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.login-container h1 { margin-bottom: 1.5rem; text-align: center; }
.login-container form p { margin-bottom: 1rem; }
.login-container input { width: 100%; padding: 0.5rem; border: 1px solid #ddd; border-radius: 4px; }
.login-container button {
    width: 100%; padding: 0.75rem; background: #333; color: white;
    border: none; border-radius: 4px; cursor: pointer; font-size: 1rem;
}
.login-container button:hover { background: #555; }
.error { color: #c00; margin-top: 1rem; text-align: center; }

.hub-container header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 1.5rem;
}
.hub-container header a { color: #666; text-decoration: none; }
.logout-link {
    background: none; border: none; color: #666; cursor: pointer;
    font: inherit; padding: 0; text-decoration: none;
}

.app-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin-top: 1.5rem; }

.app-card {
    display: block; padding: 1.5rem; background: white; border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1); text-decoration: none; color: #333;
    transition: transform 0.15s;
}
.app-card:hover { transform: translateY(-2px); }
.app-card h2 { margin-bottom: 0.5rem; }
.app-card p { color: #666; font-size: 0.9rem; }
