/* 1. Use a more-intuitive box-sizing model */ *, *::before, *::after { box-sizing: border-box; } /* 2. Remove default margin */ * { margin: 0; } /* 3. Enable keyword animations */ @media (prefers-reduced-motion: no-preference) { html { interpolate-size: allow-keywords; } } body { /* 4. Add accessible line-height */ line-height: 1.5; /* 5. Improve text rendering */ -webkit-font-smoothing: antialiased; } /* 6. Improve media defaults */ img, picture, video, canvas, svg { display: block; max-width: 100%; } /* 7. Inherit fonts for form controls */ input, button, textarea, select { font: inherit; } /* 8. Avoid text overflows */ p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; } /* 9. Improve line wrapping */ p { text-wrap: pretty; } h1, h2, h3, h4, h5, h6 { text-wrap: balance; } /* 10. Create a root stacking context */ #root, #__next { isolation: isolate; } :root { /* Primary Colors */ --color-sage-green: #7A9B8E; --color-warm-stone: #8B7E74; /* Neutrals */ --color-soft-cream: #F5F3EF; --color-light-gray: #E8E6E1; --color-charcoal: #4A4A48; --color-medium-gray: #878580; /* Accent */ --color-terracotta: #C77E68; /* Data Visualization */ --color-dusty-blue: #8A9BA8; --color-muted-olive: #A8A070; --color-soft-clay: #B89485; /* Semantic Variables (optional - map to use cases) */ --color-primary: var(--color-sage-green); --color-secondary: var(--color-warm-stone); --color-accent: var(--color-terracotta); --color-background: var(--color-soft-cream); --color-surface: var(--color-light-gray); --color-text-primary: var(--color-charcoal); --color-text-secondary: var(--color-medium-gray); /* Font Family */ --font-family: "Jost", sans-serif; --font-size: 16px; /* Font Weights */ --font-weight-light: 300; --font-weight-regular: 400; --font-weight-bold: 700; /* Font Sizes */ --font-size-small: 0.8rem; --font-size-medium: 1rem; --font-size-large: 1.2rem; /* Line Heights */ --line-height-small: 1.2; --line-height-medium: 1.4; --line-height-large: 1.6; } a.btn { display: flex; gap: 3px; align-items: center; text-decoration: none; border-radius: 8px; padding: 0.5rem 1rem; transition: all 0.2s ease; color: var(--color-soft-cream); } a.btn-accent { background: var(--color-accent); } a.btn-accent:hover { background: var(--color-secondary); } a.btn-primary { background: var(--color-primary); } a.btn-primary:hover { background: var(--color-secondary); } a.btn-soft-clay { background: var(--color-soft-clay); } a.btn-soft-clay:hover { background: var(--color-secondary); } header { display: flex; justify-content: center; background-color: color(srgb 0.983 0.9683 0.9471); } #logo a { padding: 0; background: none; color: white; } img { max-width: 90px; } @keyframes grow-shrink { 0% { height: 80px; } 25% { height: 200px; } 50% { height: 250px; } 66% { height: 200px; } 75% { height: 100px; } 90% { height: 300px; } 100% { height: 80px; } } #login .container { flex: 1; display: flex; align-items: center; justify-content: center; padding: 2rem; } #login .login-card { background: white; border-radius: 24px; padding: 3rem; width: 100%; max-width: 440px; box-shadow: 0 20px 60px rgba(74, 74, 72, 0.08); border: 1px solid rgba(122, 155, 142, 0.1); } #login .login-header { text-align: center; margin-bottom: 2.5rem; } #login .login-title { font-size: 1.75rem; color: var(--color-text-primary); font-weight: 600; margin-bottom: 0.5rem; letter-spacing: -0.02em; } #login .login-subtitle { color: var(--color-text-secondary); font-size: 0.95rem; } #login .form-group { margin-bottom: 1.5rem; } #login label { display: block; margin-bottom: 0.5rem; color: var(--color-text-primary); font-size: 0.9rem; font-weight: 500; } #login input[type=text], #login input[type=password] { width: 100%; padding: 0.875rem 1rem; border: 2px solid var(--color-light-gray); border-radius: 12px; font-size: 1rem; color: var(--color-text-primary); background: var(--color-background); transition: all 0.2s ease; outline: none; } #login input[type=text]:focus, #login input[type=password]:focus { border-color: var(--color-primary); background: white; box-shadow: 0 0 0 4px rgba(122, 155, 142, 0.1); } #login input::placeholder { color: var(--color-medium-gray); } #login .login-button { width: 100%; padding: 1rem; background: var(--color-primary); color: white; border: none; border-radius: 12px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.2s ease; margin-top: 0.5rem; } #login .login-button:hover { background: #6b8a7e; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(122, 155, 142, 0.3); } #login .login-button:active { transform: translateY(0); } #login .form-footer { margin-top: 1.5rem; text-align: center; } #login .form-footer a { color: var(--color-primary); text-decoration: none; font-size: 0.9rem; font-weight: 500; transition: color 0.2s ease; } #login .form-footer a:hover { color: var(--color-accent); } #login .divider { display: flex; align-items: center; gap: 1rem; margin: 2rem 0; color: var(--color-medium-gray); font-size: 0.85rem; } #login .divider::before, #login .divider::after { content: ""; flex: 1; height: 1px; background: var(--color-light-gray); } @media (max-width: 640px) { #login .header { padding: 1.5rem 1.5rem; } #login .login-card { padding: 2rem 1.5rem; border-radius: 20px; } #login .login-title { font-size: 1.5rem; } } #denied { background: linear-gradient(135deg, var(--color-soft-cream) 0%, var(--color-light-gray) 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem; } #denied .container { text-align: center; max-width: 600px; } #denied .lock-container { position: relative; margin-bottom: 2rem; animation: float 3s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-20px); } } #denied .lock { width: 120px; height: 140px; margin: 0 auto; position: relative; } #denied .lock-body { width: 120px; height: 80px; background: var(--color-primary); border-radius: 12px; position: absolute; bottom: 0; box-shadow: 0 10px 30px rgba(122, 155, 142, 0.3); } #denied .lock-shackle { width: 60px; height: 60px; border: 12px solid var(--color-primary); border-radius: 50% 50% 0 0; border-bottom: none; position: absolute; top: 0; left: 30px; animation: shake 0.5s ease-in-out; } @keyframes shake { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(-5deg); } 75% { transform: rotate(5deg); } } #denied .lock-keyhole { width: 8px; height: 20px; background: var(--color-soft-cream); border-radius: 4px 4px 0 0; position: absolute; bottom: 25px; left: 56px; } #denied .lock-keyhole::after { content: ""; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 12px solid var(--color-soft-cream); position: absolute; top: 20px; left: -4px; } #denied .error-code { font-size: 6rem; font-weight: 700; color: var(--color-primary); line-height: 1; margin-bottom: 1rem; letter-spacing: -0.02em; opacity: 0; animation: fadeIn 0.5s ease forwards 0.3s; } @keyframes fadeIn { to { opacity: 1; } } #denied .error-title { font-size: 2rem; color: var(--color-text-primary); margin-bottom: 1rem; font-weight: 600; letter-spacing: -0.02em; opacity: 0; animation: fadeIn 0.5s ease forwards 0.5s; } #denied .error-message { font-size: 1.1rem; color: var(--color-text-secondary); margin-bottom: 2.5rem; line-height: 1.6; opacity: 0; animation: fadeIn 0.5s ease forwards 0.7s; } #denied .button-group { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; opacity: 0; animation: fadeIn 0.5s ease forwards 0.9s; } #denied .btn { padding: 0.875rem 2rem; border-radius: 12px; font-size: 1rem; font-weight: 600; text-decoration: none; transition: all 0.2s ease; display: inline-block; cursor: pointer; border: none; } #denied .btn-primary { background: var(--color-primary); color: white; } #denied .btn-primary:hover { background: #6b8a7e; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(122, 155, 142, 0.3); } #denied .btn-secondary { background: white; color: var(--color-primary); border: 2px solid var(--color-primary); } #denied .btn-secondary:hover { background: var(--color-primary); color: white; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(122, 155, 142, 0.2); } #denied .fun-fact { margin-top: 3rem; padding: 1.5rem; background: white; border-radius: 16px; border-left: 4px solid var(--color-accent); box-shadow: 0 4px 12px rgba(74, 74, 72, 0.08); opacity: 0; animation: fadeIn 0.5s ease forwards 1.1s; } #denied .fun-fact-title { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-accent); margin-bottom: 0.5rem; font-weight: 600; } #denied .fun-fact-text { color: var(--color-text-secondary); font-size: 0.95rem; line-height: 1.5; } @media (max-width: 640px) { #denied .error-code { font-size: 4rem; } #denied .error-title { font-size: 1.5rem; } #denied .error-message { font-size: 1rem; } #denied .button-group { flex-direction: column; width: 100%; } #denied .btn { width: 100%; } } #dashboard .dashboard-container { max-width: 800px; margin: auto; padding-bottom: 100px; } #dashboard h1.page-title { margin-bottom: 0; } #dashboard ul#dash-menu { display: flex; gap: 12px; justify-content: flex-start; list-style: none; padding: 0; } #dashboard ul#dash-menu li { display: flex; align-items: center; gap: 1rem; } #task-list .container { max-width: 800px; margin: auto; padding: 24px; } .task-container { max-width: 700px; margin: 0 auto; display: flex; flex-direction: row; gap: 16px; } .task-card { background: #ffffff; border-radius: 16px; padding: 24px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04); border: 1px solid var(--color-light-gray); display: flex; justify-content: space-between; align-items: flex-start; } /* Left side of the card: Title and Link */ .task-info { display: flex; flex-direction: column; gap: 8px; } .task-title { font-size: 1.15rem; font-weight: 600; color: var(--color-charcoal); margin: 0; } /* Status Badges */ .task-status { padding: 6px 14px; border-radius: 100px; font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; } /* Pending: Subtle Terracotta */ .status-pending { background-color: #FDF2F0; /* Very light version of terracotta */ color: var(--color-terracotta); border: 1px solid #F5DBD3; } /* Completed: Subtle Sage */ .status-completed { background-color: #F0F5F3; /* Very light version of sage */ color: var(--color-sage-green); border: 1px solid #D1E0DA; } body { background: var(--color-primary); font-family: var(--font-family); color: var(--color-text-primary); } section { background: var(--color-surface); } h1, h2, h3, h4, h5, h6 { color: var(--color-text-primary); font-family: var(--font-family); } a { color: var(--color-text-secondary); background: var(--color-accent); display: block; text-decoration: 1px transprent solid; padding: 5px 10px; } .animate { animation-name: grow-shrink; animation-duration: 4s; } /*# sourceMappingURL=style.css.map */