@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--pink: #d4829a;--pink-light: #f0c6d4;--pink-dark: #b5607a;--purple: #c9b3f7;--purple-light: #ede5ff;--purple-dark: #a78bfa;--mint: #a8e6cf;--mint-light: #d5f5e8;--yellow: #ffd166;--yellow-light: #fff4d6;--blue: #b8e6f5;--blue-light: #e3f5fc;--coral: #ffb4a2;--bg: #fef6ff;--card: #ffffff;--text: #5c4a6d;--text-light: #9b8ab0;--border: #f0d6f6;--shadow: rgba(200, 160, 220, .15)}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,sans-serif;background:url(/cherry-blossom-bg.jpg) no-repeat center center fixed;background-size:cover;color:var(--text);line-height:1.6;min-height:100vh;position:relative;overflow-x:hidden}.container{max-width:720px;margin:0 auto;padding:1rem;position:relative;z-index:1}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:3px dashed var(--pink-light)}header h1{font-size:1.6rem;font-weight:800;color:var(--pink-dark)}nav button{padding:.45rem 1rem;margin-left:.5rem;border:2px solid var(--border);background:#fff;border-radius:20px;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--text);transition:all .2s}nav button.active{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border-color:transparent;box-shadow:0 2px 8px var(--shadow)}nav button:hover:not(.active){background:var(--pink-light);border-color:var(--pink)}h2{margin-bottom:1rem;color:var(--pink-dark);font-weight:700}.week-indicator{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--purple-light),var(--blue-light));border:2px solid var(--purple);border-radius:16px;padding:.6rem 1.2rem;margin-bottom:1rem;font-size:.95rem;font-weight:700;color:var(--purple-dark)}.week-toggle{padding:.35rem .85rem;border:2px solid var(--purple);background:#fff;color:var(--purple-dark);border-radius:20px;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.week-toggle:hover{background:var(--purple);color:#fff}.task-form{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.task-form input[type=text]{flex:1;min-width:150px;padding:.55rem .85rem;border:2px solid var(--border);border-radius:14px;font-family:inherit;font-size:.9rem;color:var(--text);transition:border-color .2s}.task-form input[type=text]:focus{outline:none;border-color:var(--pink);background:var(--pink-light)}.task-form input[type=text]::placeholder{color:var(--text-light)}.task-form input[type=date]{padding:.55rem .85rem;border:2px solid var(--border);border-radius:14px;font-family:inherit;font-size:.9rem;color:var(--text)}.task-form input[type=date]:focus{outline:none;border-color:var(--pink)}.task-form button[type=submit]{padding:.55rem 1.2rem;background:linear-gradient(135deg,var(--mint),#7dd3a8);color:#fff;border:none;border-radius:14px;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:700;transition:all .2s;box-shadow:0 2px 6px #a8e6cf66}.task-form button[type=submit]:hover{transform:translateY(-1px);box-shadow:0 4px 10px #a8e6cf80}.day-picker{display:flex;gap:.3rem}.day-btn{padding:.3rem .55rem;border:2px solid var(--border);background:#fff;border-radius:10px;cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;text-transform:uppercase;color:var(--text);transition:all .15s}.day-btn.active{background:var(--purple);color:#fff;border-color:var(--purple)}.day-btn:hover:not(.active){background:var(--purple-light)}.toggle-recurring{padding:.35rem .85rem;margin-bottom:1rem;border:2px dashed var(--border);background:#fff;border-radius:14px;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--text-light);transition:all .15s}.toggle-recurring:hover{background:var(--purple-light);border-color:var(--purple);color:var(--text)}.task-list{display:flex;flex-direction:column;gap:.6rem}.task-card{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;background:var(--card);border-radius:16px;border:2px solid var(--border);box-shadow:0 2px 8px var(--shadow);transition:transform .15s,box-shadow .15s}.task-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow)}.task-card.completed{opacity:.5;background:var(--mint-light);border-color:var(--mint)}.task-card.overdue{background:#fff0ed;border-color:var(--coral);border-left:4px solid var(--coral)}.overdue-info{font-size:.8rem;color:#e07060;margin-left:.25rem;font-weight:600}.task-card.completed .task-title{text-decoration:line-through}.task-left{display:flex;align-items:center;gap:.75rem}.task-left input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--pink)}.recurring-dot{font-size:1.2rem;color:var(--purple)}.task-title{font-size:.95rem;font-weight:600}.btn-delete{background:none;border:none;font-size:1.3rem;color:var(--border);cursor:pointer;padding:0 .25rem;line-height:1;transition:color .15s}.btn-delete:hover{color:var(--coral)}.empty{color:var(--text-light);font-style:italic;padding:1rem 0;font-weight:600}.week-grid{display:flex;flex-direction:column;gap:1rem}.week-day{background:var(--card);border-radius:16px;padding:1rem;border:2px solid var(--border);box-shadow:0 2px 8px var(--shadow)}.week-day h3{margin-bottom:.5rem;color:var(--purple-dark);font-size:.95rem;font-weight:700;border-bottom:2px dashed var(--border);padding-bottom:.4rem}.today-schedule{background:linear-gradient(135deg,var(--blue-light),var(--purple-light));border-radius:20px;padding:1.2rem;margin-bottom:1.5rem;border:2px solid var(--purple);box-shadow:0 3px 12px var(--shadow)}.today-schedule h3{margin-bottom:.75rem;color:var(--purple-dark);font-size:1.05rem;font-weight:700}.schedule-periods{display:flex;flex-direction:column;gap:.3rem}.schedule-period{display:flex;align-items:center;gap:.75rem;padding:.4rem .65rem;border-radius:12px;background:#fff9;transition:background .15s}.schedule-period:hover{background:#ffffffd9}.schedule-period.lunch{background:var(--yellow-light);color:#c29520;font-style:italic;font-weight:600}.schedule-period.free{opacity:.4}.period-number{font-weight:700;font-size:.85rem;min-width:3.5rem;color:var(--purple-dark)}.period-subject{font-size:.95rem;font-weight:600}.schedule-period.multi{background:#c8b3f740;border-left:3px solid var(--purple);padding-left:calc(.65rem - 3px)}.period-duration{font-size:.8rem;color:var(--text-light);margin-left:auto;font-weight:600}.schedule-week-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.schedule-week-tabs button{padding:.45rem 1.2rem;border:2px solid var(--border);background:#fff;border-radius:20px;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--text);transition:all .2s}.schedule-week-tabs button.active{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border-color:transparent;box-shadow:0 2px 8px var(--shadow)}.schedule-week-tabs button:hover:not(.active){background:var(--pink-light)}.schedule-grid{overflow-x:auto;margin-bottom:1rem}.schedule-grid table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px var(--shadow);border:2px solid var(--border)}.schedule-grid th,.schedule-grid td{padding:.45rem .5rem;text-align:center;border:1px solid var(--border);font-size:.85rem}.schedule-grid th{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;font-weight:700;border-color:#fff3}.schedule-grid td input{width:100%;padding:.3rem;border:2px solid transparent;border-radius:8px;text-align:center;font-family:inherit;font-size:.85rem;font-weight:600;background:transparent;color:var(--text);transition:all .15s}.schedule-grid td input:focus{border-color:var(--pink);outline:none;background:var(--pink-light)}.schedule-grid td input::placeholder{color:var(--text-light)}.schedule-grid .lunch-row{background:var(--yellow-light)}.schedule-grid .lunch-label{font-style:italic;color:#c29520;font-weight:600}.schedule-grid .period-num{font-weight:700;color:var(--purple-dark);background:var(--purple-light)}.btn-save-schedule{padding:.6rem 1.8rem;background:linear-gradient(135deg,var(--mint),#7dd3a8);color:#fff;border:none;border-radius:20px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:700;box-shadow:0 2px 8px #a8e6cf66;transition:all .2s}.btn-save-schedule:hover{transform:translateY(-1px);box-shadow:0 4px 12px #a8e6cf80}.save-confirm{margin-left:.75rem;color:var(--mint);font-size:.9rem;font-weight:700}.cell-editor{display:flex;align-items:center;gap:2px}.cell-editor input{flex:1;min-width:0}.duration-select{width:38px;padding:.2rem;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.75rem;font-weight:600;background:var(--purple-light);color:var(--text);cursor:pointer;flex-shrink:0}.covered-cell{background:var(--purple-light)}.covered-label{color:var(--text-light);font-style:italic;font-size:.8rem;font-weight:600}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:var(--card);border-radius:24px;padding:2.5rem 2rem;border:2px solid var(--border);box-shadow:0 4px 20px var(--shadow);text-align:center;width:100%;max-width:340px}.login-card h1{font-size:1.4rem;font-weight:800;color:var(--pink-dark);margin-bottom:1.5rem}.login-card form{display:flex;flex-direction:column;gap:.75rem}.login-card input{padding:.7rem 1rem;border:2px solid var(--border);border-radius:14px;font-family:inherit;font-size:1rem;color:var(--text);text-align:center}.login-card input:focus{outline:none;border-color:var(--pink);background:var(--pink-light)}.login-card button{padding:.7rem;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border:none;border-radius:14px;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:700;transition:all .2s;box-shadow:0 2px 8px var(--shadow)}.login-card button:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow)}.login-error{color:#e07060;font-size:.9rem;font-weight:600;margin-top:.5rem}.user-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:.75rem}.btn-small{padding:.3rem .75rem;border:2px solid var(--border);background:#fff;border-radius:12px;cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;color:var(--text-light);transition:all .15s}.btn-small:hover{background:var(--pink-light);border-color:var(--pink);color:var(--text)}.change-password-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.change-password-card{background:var(--card);border-radius:20px;padding:2rem;border:2px solid var(--border);box-shadow:0 4px 20px var(--shadow);width:100%;max-width:340px}.change-password-card h2{text-align:center;margin-bottom:1rem}.change-password-card form{display:flex;flex-direction:column;gap:.65rem}.change-password-card input{padding:.6rem .85rem;border:2px solid var(--border);border-radius:14px;font-family:inherit;font-size:.9rem;color:var(--text)}.change-password-card input:focus{outline:none;border-color:var(--pink);background:var(--pink-light)}.change-password-buttons{display:flex;gap:.5rem;margin-top:.25rem}.change-password-buttons button{flex:1;padding:.6rem;border-radius:14px;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:700;transition:all .2s}.change-password-buttons button[type=submit]{background:linear-gradient(135deg,var(--mint),#7dd3a8);color:#fff;border:none;box-shadow:0 2px 6px #a8e6cf66}.change-password-buttons .btn-cancel{background:#fff;color:var(--text);border:2px solid var(--border)}.change-password-success{text-align:center;color:var(--mint);font-weight:700;font-size:1.1rem;padding:1rem 0}
