.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.auth-card{background:#fff;padding:3rem;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:450px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.auth-card h1{text-align:center;font-size:2rem;margin-bottom:.5rem;color:#333}.auth-card h2{text-align:center;font-size:1.5rem;margin-bottom:2rem;color:#666;font-weight:500}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#333;font-size:.9rem}.form-group input{padding:.875rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:all .2s ease;font-family:inherit}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input::placeholder{color:#aaa}.error-message{background-color:#fee;color:#c33;padding:.875rem;border-radius:8px;border-left:4px solid #c33;font-size:.9rem}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.auth-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.auth-button:active{transform:translateY(0)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-button:disabled:hover{transform:none;box-shadow:none}.auth-switch{text-align:center;margin-top:2rem;color:#666;font-size:.95rem}.link-button{background:none;border:none;color:#667eea;font-weight:600;cursor:pointer;text-decoration:none;padding:0;font-size:inherit}.link-button:hover{text-decoration:underline}@media(max-width:768px){.auth-container{padding:1rem}.auth-card{padding:2rem}.auth-card h1{font-size:1.75rem}.auth-card h2{font-size:1.25rem}}.year-pixels-container{max-width:1400px;margin:0 auto;padding:2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:#666}.header{text-align:center;margin-bottom:3rem}.user-bar{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-bottom:1.5rem}.welcome-text{font-size:1rem;color:#666;font-weight:500}.logout-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.logout-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.logout-button:active{transform:translateY(0)}.header h1{font-size:2.5rem;margin-bottom:.5rem;color:#333}.subtitle{font-size:1.1rem;color:#666;margin-bottom:2rem}.stats{display:flex;justify-content:center;gap:3rem;margin-top:1.5rem}.stat{display:flex;flex-direction:column;align-items:center;gap:.5rem}.stat-label{font-size:.9rem;color:#666;text-transform:uppercase;letter-spacing:1px}.stat-value{font-size:1.5rem;font-weight:700;color:#4caf50}.calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}.month{background:#f9f9f9;padding:1rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.month-label{font-weight:700;font-size:1.1rem;margin-bottom:.75rem;color:#333;text-align:center}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.pixel{aspect-ratio:1;background-color:#e0e0e0;border-radius:4px;cursor:pointer;transition:all .2s ease;position:relative;display:flex;align-items:center;justify-content:center;border:2px solid transparent}.pixel:hover:not(.future){transform:scale(1.1);box-shadow:0 2px 8px #0003;z-index:1}.pixel.completed{background-color:#4caf50;border-color:#45a049}.pixel.today{border-color:#2196f3;border-width:3px;box-shadow:0 0 0 2px #2196f34d}.pixel.future{background-color:#f5f5f5;cursor:not-allowed;opacity:.5}.day-number{font-size:.7rem;color:#666;font-weight:500;pointer-events:none}.pixel.completed .day-number{color:#fff;font-weight:700}.legend{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;padding:1.5rem;background:#f9f9f9;border-radius:8px}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-pixel{width:24px;height:24px;cursor:default}.legend-pixel:hover{transform:none;box-shadow:none}@media(max-width:768px){.year-pixels-container{padding:1rem}.header h1{font-size:1.8rem}.subtitle{font-size:1rem}.stats{gap:1.5rem}.calendar{grid-template-columns:1fr;gap:1.5rem}.legend{gap:1rem}}
