@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap";html{font-size:115%}:root{--font-family: "Nunito", sans-serif;--bg-pastel: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%);--card-bg: #ffffff;--text-color: #4a4a4a;--text-light: #888888;--primary-color: #a18cd1;--primary-hover: #bc9ef5;--accent-color: #fbc2eb;--gradient-primary: linear-gradient(45deg, var(--primary-color) 0%, var(--accent-color) 100%);--shadow-soft: 0 12px 35px -8px rgba(0, 0, 0, .12), 0 10px 15px -8px rgba(0, 0, 0, .08);--shadow-hover: 0 25px 45px -10px rgba(0, 0, 0, .15), 0 15px 20px -8px rgba(0, 0, 0, .08);--parent-bg-gradient-start: #F8FAFC;--parent-bg-gradient-end: #EEF1F5;--parent-text-primary: #2F3A5A;--parent-text-secondary: #64748B;--parent-border-soft: #E2E8F0;--parent-border-muted: #CBD5E1;--parent-accent: #4C8BF5;--parent-accent-soft: #E3EEFF}body{margin:0;font-family:var(--font-family);min-height:100vh;color:var(--text-color);background-image:var(--bg-pastel);background-size:200% 200%;animation:gradientBG 10s ease infinite}@keyframes gradientBG{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes slideUpSpring{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes iconBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}#root{width:100%;display:flex;justify-content:center;min-height:100vh}.main-wrapper{min-height:100vh;width:100%;max-width:1000px;padding:1.5rem .75rem;padding-top:calc(env(safe-area-inset-top) + 2.5rem);padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}h1{font-size:1.8rem;font-weight:900;text-align:left;margin-bottom:2rem;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.1);letter-spacing:-1px}h2{font-size:1.4rem;color:#fff;margin-top:0;margin-bottom:1rem;padding-bottom:0;text-shadow:0 2px 10px rgba(0,0,0,.1);font-weight:800}.collapsible-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .3s ease}.collapsible-header:hover{color:var(--primary-hover)}.toggle-icon{font-size:1.5rem;transition:transform .3s ease;color:var(--primary-color);font-weight:400}.toggle-icon.open{transform:rotate(45deg)}.section-container{padding:0}.assignment-form{display:grid;gap:1.2rem}.form-group{display:flex;flex-direction:column}label{font-weight:700;margin-bottom:.5rem;color:#666;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}input,select{padding:1rem;border-radius:15px;border:2px solid #eee;background:#fff;font-family:var(--font-family);font-size:1rem;color:#333;transition:all .3s ease}input:focus,select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #a18cd133}.input-error{border-color:#ef4444!important}.input-error:focus{box-shadow:0 0 0 4px #ef444433!important}.error-subtext{color:#ef4444;font-size:.85rem;margin-top:.25rem;margin-left:.25rem;font-weight:600;display:block}button.add-btn{background:var(--gradient-primary);color:#fff;border:none;padding:1rem;border-radius:50px;font-size:1.1rem;font-weight:800;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);margin-top:.5rem;box-shadow:0 10px 20px -10px #a18cd180}button.add-btn:hover{transform:scale(1.02) translateY(-2px);box-shadow:0 15px 25px -10px #a18cd199}button.add-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}button.add-btn:disabled:hover{transform:none;box-shadow:0 10px 20px -10px #a18cd180}.pill-selector{display:flex;flex-wrap:wrap;gap:.5rem}.pill{padding:.85rem 1.4rem;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:50px;font-family:var(--font-family);font-size:1rem;font-weight:700;color:var(--text-color);cursor:pointer;transition:all .3s ease;white-space:nowrap}.pill:hover{background:#fff;border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 10px #a18cd126}.pill.active{background:var(--gradient-primary);border-color:var(--primary-color);color:#fff;box-shadow:0 4px 15px #a18cd14d}.pill.active:hover{transform:translateY(-2px);box-shadow:0 6px 20px #a18cd166}.empty-state{color:#999;font-size:.9rem;font-style:italic;margin:0;padding:1rem;background:#f8f9fa;border-radius:10px;text-align:center}.assignments-list{display:grid;gap:.75rem}.assignment-card{background:var(--card-bg);border-radius:28px;padding:.85rem 1rem;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-soft);transition:all .3s cubic-bezier(.34,1.56,.64,1);border:2px solid #f0f0f0;position:relative;overflow:hidden;animation:slideUpSpring .6s cubic-bezier(.34,1.56,.64,1) backwards}.assignment-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-hover);border-color:var(--accent-color)}.card-top{display:flex;align-items:center;gap:1rem;margin-bottom:0;width:100%}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.card-details{display:flex;align-items:center;gap:1rem}.emoji-icon{font-size:2rem;background:#f8f9fa;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%}.text-content{display:flex;flex-direction:column;gap:.5rem;flex:1;min-width:0}.text-content h3{margin:0;font-size:1.5rem;font-weight:800;color:#333;line-height:1.3}.tag{display:inline-block;padding:.5rem 1rem;border-radius:12px;background:#e0c3fc;color:#fff;font-size:.85rem;font-weight:700;text-transform:uppercase;margin-bottom:0}.date{display:flex;align-items:center;gap:.4rem;color:#888;font-size:1rem;font-weight:600;line-height:1.5}.card-actions{display:flex;gap:.5rem;align-items:center}.delete-btn{position:absolute;top:.75rem;right:.75rem;background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:2px solid rgba(240,240,240,.8);color:#aaa;width:2.5rem;height:2.5rem;border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;font-size:1.8rem;text-decoration:none;line-height:1;font-weight:400;z-index:10}.delete-btn:hover{background:linear-gradient(45deg,#ff9a9e,#fecfef);border-color:#ff9a9e;color:#fff;transform:scale(1.1);box-shadow:0 4px 15px #ff9a9e66}.filters-wrapper{margin-bottom:1rem}.filter-pills{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.filter-pill{padding:.6rem .5rem;border-radius:50px;border:2px solid rgba(255,255,255,.5);background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-color);font-family:var(--font-family);font-size:.8rem;font-weight:700;cursor:pointer;transition:all .3s ease;text-transform:capitalize;box-shadow:var(--shadow-soft);text-align:center;white-space:nowrap}.filter-pill:hover{border-color:var(--primary-color);background:#fffffff2;transform:translateY(-2px);box-shadow:var(--shadow-hover)}.filter-pill.active{background:var(--gradient-primary);border-color:var(--primary-color);color:#fff;box-shadow:0 4px 20px #a18cd180}.date-filter-group{display:flex;align-items:center;gap:.5rem;width:100%;margin-top:.5rem;grid-column:1 / -1}.subject-filter-pills{display:flex;gap:.75rem;align-items:center;flex-wrap:nowrap;margin-top:.75rem;animation:slideDown .3s ease}.subject-pill{padding:.6rem 1.3rem;font-size:.85rem}.date-picker-input{padding:.7rem 1rem;border-radius:50px;border:2px solid rgba(255,255,255,.5);background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font-family);font-size:.85rem;color:var(--text-color);font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-soft)}.date-picker-input:hover{border-color:var(--primary-color);background:#fffffff2;box-shadow:var(--shadow-hover)}.date-picker-input:focus{outline:none;border-color:var(--primary-color);background:#fffffff2;box-shadow:0 4px 20px #a18cd14d}.clear-date-btn{width:32px;height:32px;border-radius:50%;border:none;background:linear-gradient(45deg,#ff9a9e,#fecfef);color:#fff;font-size:1.3rem;font-weight:700;line-height:1;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #ff9a9e66}.clear-date-btn:hover{background:linear-gradient(45deg,#ff6b6b,#fda6e3);transform:scale(1.1);box-shadow:0 6px 20px #ff9a9e80}.custom-date-picker{position:relative;display:inline-block;width:100%}.filter-group .custom-date-picker{width:100%}.date-picker-trigger{padding:.75rem 1rem;border-radius:12px;border:2px solid var(--parent-border-soft);background:#fff;font-family:var(--font-family);font-size:1rem;color:#334155;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;width:100%;box-sizing:border-box}.date-picker-trigger:hover{border-color:var(--parent-border-muted);box-shadow:0 2px 8px #00000014}.date-picker-trigger:focus{outline:none;border-color:var(--parent-accent);box-shadow:0 0 0 3px #4c8bf51a}.date-picker-value{color:#334155;font-weight:500;flex:1}.date-picker-placeholder{color:#9ca3af;font-weight:500;flex:1}.date-picker-icon{color:#475569;flex-shrink:0;transition:color .2s ease}.date-picker-trigger:hover .date-picker-icon{color:#000000b3}.date-picker-dropdown{position:absolute;top:calc(100% + 8px);left:0;z-index:1000;background:#fffffffa;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;padding:1rem;box-shadow:0 8px 32px #a18cd133,0 2px 8px #0000000d;border:2px solid rgba(255,255,255,.8);width:280px;animation:fadeIn .2s ease}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:2px solid rgba(161,140,209,.1)}.calendar-month-year{font-size:.9rem;font-weight:700;color:var(--text-color);flex:1;text-align:center}.calendar-nav-btn{width:32px;height:32px;border-radius:50%;border:none;background:#a18cd11a;color:var(--primary-color);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.calendar-nav-btn:hover{background:#a18cd133;transform:scale(1.1)}.calendar-nav-btn:active{transform:scale(.95)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.calendar-weekday{text-align:center;font-size:.75rem;font-weight:700;color:#3c3c4399;padding:.5rem 0;text-transform:uppercase}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s ease;color:var(--text-color)}.calendar-day.empty{cursor:default;pointer-events:none}.calendar-day:not(.empty):hover{background:#a18cd126;transform:scale(1.05)}.calendar-day.today{background:#a18cd11a;color:var(--primary-color);font-weight:700}.calendar-day.selected{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;font-weight:700;box-shadow:0 4px 12px #a18cd14d}.calendar-day.selected:hover{transform:scale(1.05);box-shadow:0 6px 16px #a18cd166}.floating-add-btn{position:fixed;bottom:2rem;right:2rem;width:4rem;height:4rem;border-radius:50%;background:var(--gradient-primary);color:#fff;border:none;font-size:2rem;font-weight:300;line-height:1;cursor:pointer;box-shadow:0 10px 25px #a18cd180;transition:all .3s cubic-bezier(.175,.885,.32,1.275);z-index:100;display:none}.floating-add-btn:hover{transform:scale(1.1) rotate(90deg);box-shadow:0 15px 30px #a18cd199}.floating-add-btn:active{transform:scale(1.05)}@media(max-width:800px){.filter-pills,.subject-filter-pills{flex-wrap:wrap}.date-filter-group{margin-left:0;width:100%}.custom-date-picker{flex:1}.date-picker-trigger{width:100%}.date-picker-dropdown{position:fixed;left:50%;right:auto;top:50%;transform:translate(-50%,-50%);width:min(280px,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.floating-add-btn{display:flex;align-items:center;justify-content:center}}.days-counter{width:4.8rem;height:4.8rem;border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 10px #0000001a;transition:transform .3s ease;flex-shrink:0}.days-counter:hover{transform:scale(1.05)}.days-num{font-size:2.2rem;font-weight:800;line-height:1}.days-label{font-size:.75rem;font-weight:700;text-transform:uppercase;opacity:.9;letter-spacing:.3px}.emoji-icon{display:none}.auth-wrapper{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-container{background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:30px;padding:3rem;box-shadow:var(--shadow-soft);border:2px solid rgba(255,255,255,.5);width:100%;max-width:450px}.auth-title{font-size:2.5rem;font-weight:900;text-align:center;margin-bottom:.5rem;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{text-align:center;color:var(--text-light);margin-bottom:2rem;font-size:1rem}.auth-form{display:flex;flex-direction:column;gap:1.2rem}.auth-error{padding:1rem;background:#fee;border:2px solid #fcc;border-radius:15px;color:#c33;font-size:.9rem;text-align:center}.auth-btn{background:var(--gradient-primary);color:#fff;border:none;padding:1rem;border-radius:50px;font-size:1.1rem;font-weight:800;cursor:pointer;transition:all .3s ease;box-shadow:0 10px 20px -10px #a18cd180;font-family:var(--font-family)}.auth-btn:hover:not(:disabled){transform:scale(1.02) translateY(-2px);box-shadow:0 15px 25px -10px #a18cd199}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{background:none;border:none;color:var(--primary-color);font-size:.9rem;font-weight:600;cursor:pointer;margin-top:1rem;padding:.5rem;transition:all .3s ease;font-family:var(--font-family);text-align:center;width:100%}.auth-toggle:hover{color:var(--primary-hover);text-decoration:underline}.subject-selection{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.subject-select-btn{padding:.6rem 1rem;border-radius:50px;border:2px solid #e0e0e0;background:#fff;color:var(--text-color);font-family:var(--font-family);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s ease}.subject-select-btn:hover{border-color:var(--primary-color);background:#f8f9fa}.subject-select-btn.selected{background:var(--gradient-primary);border-color:var(--primary-color);color:#fff;box-shadow:0 2px 8px #a18cd14d}.selected-subjects{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:12px}.selected-subjects-label{font-size:.85rem;font-weight:600;color:var(--text-color);margin-bottom:.75rem;font-family:var(--font-family)}.selected-subjects-list{display:flex;flex-wrap:wrap;gap:.5rem}.selected-subject-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border:2px solid var(--primary-color);border-radius:50px;font-size:.85rem;font-weight:600;color:var(--primary-color);font-family:var(--font-family)}.remove-subject-btn{background:none;border:none;color:var(--primary-color);font-size:1.2rem;line-height:1;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.remove-subject-btn:hover{background:var(--primary-color);color:#fff}.custom-subject-input{display:flex;gap:.5rem;margin-top:1rem}.custom-subject-input input{flex:1;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-family:var(--font-family);font-size:.9rem;transition:border-color .3s ease}.custom-subject-input input:focus{outline:none;border-color:var(--primary-color)}.add-custom-subject-btn{padding:.75rem 1.5rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:8px;font-family:var(--font-family);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.add-custom-subject-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #a18cd14d}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;margin-top:.75rem}.theme-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;border:2px solid #e0e0e0;border-radius:12px;background:#fff;cursor:pointer;transition:all .3s ease;font-family:var(--font-family)}.theme-option:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.theme-option.selected{border-color:var(--primary-color);border-width:3px;box-shadow:0 4px 16px #a18cd14d}.theme-preview{width:100%;height:60px;border-radius:8px;box-shadow:inset 0 2px 8px #0000001a}.theme-name{font-size:.85rem;font-weight:600;color:var(--text-color);text-align:center}.theme-select-button{width:100%;display:flex;align-items:center;gap:1rem;padding:1rem;border:2px solid #e0e0e0;border-radius:12px;background:#fff;cursor:pointer;transition:all .3s ease;font-family:var(--font-family);margin-top:.75rem}.theme-select-button:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.theme-select-preview{width:80px;height:60px;border-radius:8px;box-shadow:inset 0 2px 8px #0000001a;flex-shrink:0}.theme-select-info{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;flex:1}.theme-select-name{font-size:1rem;font-weight:600;color:var(--text-color)}.theme-select-hint{font-size:.85rem;color:#888}.add-custom-subject-btn:disabled{opacity:.5;cursor:not-allowed}.header-row{display:flex;justify-content:flex-start;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.header-actions{display:flex;gap:.75rem;align-items:center}.manage-subjects-btn,.sign-out-btn{padding:.7rem 1.5rem;border-radius:50px;font-family:var(--font-family);font-size:.9rem;font-weight:700;cursor:pointer;transition:all .3s ease;border:none}.manage-subjects-btn{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 10px #a18cd14d}.manage-subjects-btn:hover{transform:translateY(-2px);box-shadow:0 6px 15px #a18cd166}.sign-out-btn{background:#fff;color:var(--text-color);border:2px solid #e0e0e0}.sign-out-btn:hover{background:#f8f9fa;border-color:var(--text-light)}.subject-manager-title{font-size:1.3rem;color:var(--primary-color);margin:0 0 1rem;font-weight:700}.subject-chips{display:flex;gap:.75rem;flex-wrap:wrap}.subject-chip{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:50px;font-size:.95rem;font-weight:600;color:var(--text-color);transition:all .3s cubic-bezier(.34,1.56,.64,1);animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1) backwards}.subject-chip:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px #a18cd133}.subject-chip .subject-name{font-weight:700}.subject-chip .subject-delete{background:none;border:none;color:#aaa;font-size:1.3rem;line-height:1;cursor:pointer;padding:0;margin-left:.25rem;transition:color .2s ease}.subject-chip .subject-delete:hover{color:#ff6b6b}.subject-chip.add-subject-btn{background:#a18cd11a;border-color:var(--primary-color);border-style:dashed;color:var(--primary-color);cursor:pointer}.subject-chip.add-subject-btn:hover{background:#a18cd133}.add-subject-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1.2rem;background:#f8f9fa;border-radius:20px;border:2px solid #e0e0e0;max-width:400px}.add-subject-form input{padding:.8rem 1rem;border-radius:15px;border:2px solid #e0e0e0;background:#fff;font-family:var(--font-family);font-size:.95rem;transition:all .3s ease}.add-subject-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #a18cd126}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.5rem;color:#fff;font-weight:700}.tags-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:0;margin-top:.25rem}.status-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:12px;font-size:.85rem;font-weight:700;text-transform:uppercase;cursor:pointer;transition:all .15s ease;border:none;font-family:var(--font-family)}.status-pill .status-icon{flex-shrink:0;opacity:.85}.status-pill:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 3px 12px #0003}.status-pill:active{transform:scale(.97);box-shadow:0 1px 4px #00000026;transition:all .1s ease}.status-not_started{background:#e2e8f0;color:#64748b}.status-not_started:hover{background:#cbd5e1}.status-not_started:active{background:#b4bcc9}.status-in_progress{background:#bfdbfe;color:#1e40af}.status-in_progress:hover{background:#93c5fd}.status-in_progress:active{background:#7ab5f5}.status-done{background:#bbf7d0;color:#15803d}.status-done:hover{background:#86efac}.status-done:active{background:#6ee09b}.assignment-card.done{opacity:.75}.assignment-card.done .days-counter{opacity:.8}@media(max-width:400px){.status-pill{font-size:.6rem;padding:.4rem .75rem;gap:.3rem}.status-pill .status-icon{width:11px;height:11px}}.hide-completed-toggle{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#fff;border-radius:15px;border:2px solid #e0e0e0;cursor:pointer;transition:all .3s ease;font-weight:600;font-size:.9rem;white-space:nowrap}.hide-completed-toggle:hover{border-color:var(--primary-color);background:#f8f9fa}.hide-completed-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer;margin:0;accent-color:var(--primary-color)}.hide-completed-toggle span{-webkit-user-select:none;user-select:none}.child-selector-container{margin-bottom:1.5rem}.child-chips{display:flex;gap:.75rem;overflow-x:auto;padding:.5rem 0;scrollbar-width:thin;scrollbar-color:var(--primary-color) transparent}.child-chips::-webkit-scrollbar{height:6px}.child-chips::-webkit-scrollbar-track{background:transparent}.child-chips::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:10px}.child-chip{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:50px;font-family:var(--font-family);font-size:.95rem;font-weight:600;color:var(--text-color);cursor:pointer;transition:all .3s ease;white-space:nowrap;flex-shrink:0}.child-chip:hover{background:#fff;border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 10px #a18cd133}.child-chip.active{background:var(--gradient-primary);border-color:var(--primary-color);color:#fff;box-shadow:0 4px 15px #a18cd166}.child-chip.active:hover{transform:translateY(-2px);box-shadow:0 6px 20px #a18cd180}.child-color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:2px solid rgba(255,255,255,.5)}.child-chip.active .child-color-dot{border-color:#fffc}.child-chip.add-child-btn{background:#a18cd11a;border-color:var(--primary-color);border-style:dashed;color:var(--primary-color)}.child-chip.add-child-btn:hover{background:#a18cd133}.add-icon{font-size:1.2rem;font-weight:700;line-height:1}.child-name{font-weight:700}.add-child-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1.2rem;background:#f8f9fa;border-radius:24px;border:2px solid #e0e0e0;box-shadow:0 4px 12px -4px #00000014}.add-child-form input{padding:.8rem 1rem;border-radius:15px;border:2px solid #e0e0e0;background:#fff;font-family:var(--font-family);font-size:.95rem;transition:all .3s ease}.add-child-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #a18cd126}.form-actions{display:flex;gap:.5rem;margin-top:.5rem}.form-actions button{flex:1;padding:.7rem 1rem;border-radius:50px;font-family:var(--font-family);font-size:.9rem;font-weight:700;cursor:pointer;transition:all .3s ease;border:none}.form-actions button[type=submit]{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 10px #a18cd14d}.form-actions button[type=submit]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 15px #a18cd166}.form-actions button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.form-actions button[type=button]{background:#fff;color:var(--text-color);border:2px solid #e0e0e0}.form-actions button[type=button]:hover{background:#f8f9fa;border-color:var(--text-light)}@media(max-width:600px){body{padding:.5rem}h1{font-size:1.3rem;margin-bottom:1rem}.section-container{padding:0}.assignments-list{gap:.6rem;padding:0 .75rem}.assignment-card{padding:.85rem 1rem;flex-direction:row;align-items:center;border-radius:24px}.card-top{display:flex;align-items:center;gap:.85rem;margin-bottom:0;position:relative}.card-bottom{display:flex;justify-content:flex-end;align-items:center;gap:.5rem}.card-details{width:100%;gap:1rem}.card-actions{display:flex;gap:.4rem;flex-shrink:0}.days-counter{width:4.8rem;height:4.8rem;flex-shrink:0;border-radius:24px}.days-num{font-size:2.2rem}.days-label{font-size:.5rem;letter-spacing:.3px}.text-content{flex:1;min-width:0;gap:.1rem;padding-right:.5rem}.text-content h3{font-size:1.105rem;word-wrap:break-word;line-height:1.2}.date{font-size:.808rem}.calendar-btn,.delete-btn{width:28px;height:28px;font-size:1.4rem}.child-chip{font-size:.9rem;padding:.5rem 1rem}.child-selector-container{margin-bottom:1.2rem}.add-child-form{padding:1rem}.form-actions button{font-size:.85rem}.tag{font-size:.689rem;padding:.2rem .5rem;border-radius:8px}.status-pill{font-size:.629rem;padding:.2rem .5rem;border-radius:8px}.hide-completed-toggle{font-size:.85rem;padding:.5rem .8rem}.tags-row{gap:.35rem;margin-top:.3rem}.header-row{flex-direction:column;align-items:stretch;margin-bottom:1.5rem;gap:.75rem}.header-row h1{text-align:center;margin-bottom:0}.header-actions{flex-direction:row;flex-wrap:wrap;width:100%;gap:.5rem}.header-actions button:first-child{display:none}.manage-subjects-btn,.sign-out-btn{flex:1;min-width:calc(50% - .25rem);padding:.7rem 1rem;font-size:.85rem}.subject-manager-panel{padding:1.2rem;margin-bottom:1rem}.auth-container{padding:2rem 1.5rem}.auth-title{font-size:2rem}.filters-wrapper{margin-bottom:.75rem}.filter-pills{grid-template-columns:repeat(2,1fr);gap:.4rem}.filter-pill{padding:.5rem .4rem;font-size:.75rem}.date-filter-group{margin-top:.5rem}.date-picker-input{font-size:.75rem;padding:.6rem .8rem}.clear-date-btn{width:28px;height:28px;font-size:1.1rem}.floating-add-btn{width:56px;height:56px;font-size:1.8rem;bottom:1.5rem;right:1.5rem}.confirm-dialog{padding:1.5rem;max-width:320px}.confirm-title{font-size:1.2rem;margin-bottom:.75rem}.confirm-message{font-size:.9rem;margin-bottom:1.2rem}.confirm-btn{padding:.75rem 1.2rem;font-size:.85rem}.date-picker-dropdown{padding:.75rem}.calendar-day{font-size:.8rem}}.confirm-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:max(1rem,env(safe-area-inset-bottom))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:30px;padding:2rem;box-shadow:0 20px 50px #0000004d;border:2px solid rgba(255,255,255,.5);max-width:400px;width:100%;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-title{font-size:1.5rem;font-weight:800;color:var(--primary-color);margin:0 0 1rem;text-align:center}.confirm-message{font-size:1rem;color:var(--text-color);margin:0 0 1.5rem;text-align:center;line-height:1.5}.confirm-actions{display:flex;gap:.75rem}.confirm-btn{flex:1;padding:.9rem 1.5rem;border-radius:50px;font-family:var(--font-family);font-size:.95rem;font-weight:700;cursor:pointer;transition:all .3s ease;border:none}.confirm-cancel{background:#fff;color:var(--text-color);border:2px solid #e0e0e0}.confirm-cancel:hover{background:#f8f9fa;border-color:var(--text-light);transform:translateY(-2px)}.confirm-delete{background:linear-gradient(45deg,#ff9a9e,#fecfef);color:#fff;box-shadow:0 4px 10px #ff9a9e4d}.confirm-delete:hover{transform:translateY(-2px);box-shadow:0 6px 15px #ff9a9e66}.dashboard-summary-container{padding-bottom:2rem;margin-bottom:2rem;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}.dashboard-summary-container h4{font-size:.9rem;font-weight:700;color:var(--text-color);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.5px}.next-due-section{margin-bottom:1rem;animation:slideUpSpring .6s cubic-bezier(.34,1.56,.64,1) backwards}.next-due-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.next-due-section-title{font-size:.75rem;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#374151;margin:0}.scroll-hint{font-size:.75rem;font-weight:600;color:var(--primary-color);animation:pulseSlide 2s ease-in-out infinite}@keyframes pulseSlide{0%,to{opacity:.6;transform:translate(0)}50%{opacity:1;transform:translate(4px)}}.next-due-scroll-container{display:flex;gap:1rem;overflow-x:auto;overflow-y:visible;padding:.5rem .25rem 1rem;scrollbar-width:none;scroll-behavior:smooth;position:relative;-webkit-overflow-scrolling:touch}.next-due-scroll-container::-webkit-scrollbar{display:none}.next-due-card{background:var(--card-bg);border-radius:28px;padding:1.5rem;box-shadow:var(--shadow-soft);border:2px solid #f0f0f0;transition:all .3s cubic-bezier(.34,1.56,.64,1);animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1) backwards;min-width:280px;max-width:320px;flex-shrink:0}.next-due-card.all-caught-up{margin-bottom:1rem;border-color:#d1fae5;background:linear-gradient(135deg,#f0fdf4,#fff)}.next-due-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-hover)}.next-due-card.all-caught-up:hover{transform:none;cursor:default}.next-due-content{display:flex;align-items:center;gap:1.5rem}.next-due-ring{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.next-due-ring.success-ring{background:conic-gradient(#48bb78 100%,#f0f0f0 0%)}.modal-content{width:100%;height:100%;max-height:100vh;border-radius:0;display:flex;flex-direction:column;padding-top:max(20px,env(safe-area-inset-top))}.next-due-ring-inner{width:64px;height:64px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.next-due-days{font-size:1.8rem;font-weight:800;color:var(--text-color);line-height:1}.next-due-label{font-size:.75rem;font-weight:600;color:var(--text-light);text-transform:uppercase}.next-due-text{flex:1}.next-due-text h3{font-size:1.1rem;font-weight:600;color:var(--text-color);margin:0 0 .35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-due-text p{font-size:.875rem;color:var(--text-light);margin:0 0 .4rem;white-space:nowrap}.suggestion-text{font-size:.85rem;color:var(--primary-color);font-weight:600;font-style:italic}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.workload-timeline,.weekly-progress-card,.subject-tiles-section,.overdue-badge{background:#fff;border-radius:28px;padding:1.5rem;box-shadow:var(--shadow-soft);border:2px solid #f0f0f0;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;animation:slideUpSpring .6s cubic-bezier(.34,1.56,.64,1) backwards}.weekly-progress-card{animation-delay:.1s}.subject-tiles-section{animation-delay:.15s}.overdue-badge{animation-delay:.2s}.subject-tiles-section:before,.weekly-progress-card:before{content:"";position:absolute;inset:0;background:#e5dfff;opacity:.15;border-radius:28px;pointer-events:none}.workload-timeline:hover,.weekly-progress-card:hover,.overdue-badge:hover{transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-hover)}.workload-days{display:flex;justify-content:space-between;align-items:flex-end;gap:.5rem;height:100px}.workload-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem}.workload-day-bar{width:100%;max-width:40px;border-radius:8px 8px 0 0;transition:all .3s ease;min-height:10%}.workload-day-bar:hover{transform:scaleY(1.05)}.workload-day-label{font-size:.85rem;font-weight:700;color:var(--text-color)}.workload-day-date{font-size:.75rem;color:var(--text-light);font-weight:600}.weekly-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;position:relative;z-index:1}.weekly-progress-header h4{margin:0;font-size:.875rem;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#374151}.weekly-progress-text{font-size:.875rem;font-weight:600;color:var(--primary-color)}.progress-bar-track{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;position:relative;z-index:1;margin-bottom:1.5rem}.progress-bar-fill{height:100%;background:var(--primary-color);opacity:.45;border-radius:4px;transition:width .5s ease}.weekly-progress-empty{font-size:.9rem;color:var(--text-light);margin:0;text-align:center}.weekly-timeline{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.timeline-day{display:flex;flex-direction:column;align-items:center;gap:.75rem;flex:1}.timeline-day-name{font-size:.75rem;font-weight:400;color:#6b7280;text-align:center}.timeline-dot{width:8px;height:8px;border-radius:50%;transition:all .3s ease}.timeline-dot.filled{background:var(--primary-color)}.timeline-dot.filled:hover{transform:scale(1.3);background:var(--primary-dark)}.timeline-dot.empty{background:transparent;border:1.5px solid #D1D5DB}.subject-tiles-section{margin-bottom:1rem}.subject-tiles-section h4{margin:0 0 1rem;font-size:.75rem;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#374151;position:relative;z-index:1}.subject-tiles-row{display:flex;gap:.75rem;overflow-x:auto;overflow-y:visible;padding:.75rem .25rem;scrollbar-width:thin;scrollbar-color:var(--primary-color) transparent;position:relative;z-index:1}.subject-tiles-row::-webkit-scrollbar{height:6px}.subject-tiles-row::-webkit-scrollbar-track{background:transparent}.subject-tiles-row::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:10px}.subject-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem 1.5rem;background:var(--primary-bg);border:1.5px solid var(--primary-border);border-radius:24px;min-width:120px;flex-shrink:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1) backwards;box-shadow:0 4px 12px -4px #00000014}.subject-tile.zero-tasks{background:#f9fafb;border-color:#e5e7eb}.subject-tile:hover{transform:translateY(-6px) scale(1.05);box-shadow:var(--shadow-hover);border-color:var(--primary-color)}.subject-tile.zero-tasks:hover{border-color:#9ca3af}.subject-tile-name{font-size:1rem;font-weight:600;color:#4b5563;margin-bottom:.25rem}.subject-tile.zero-tasks .subject-tile-name{color:#9ca3af;font-weight:500}.subject-tile-count{font-size:.875rem;color:var(--primary-color);font-weight:600}.subject-tile.zero-tasks .subject-tile-count{color:#9ca3af}.overdue-badge{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem}.overdue-badge.has-overdue{background:#f565651a;border-color:#f565654d}.overdue-badge.no-overdue{background:#ecfdf5;border-color:#a7f3d0;border-width:1.5px}.overdue-icon{font-size:1.5rem;flex-shrink:0}.overdue-badge.has-overdue .overdue-icon{color:#f56565}.overdue-badge.no-overdue .overdue-icon{color:#ecfdf5;background:#6ee7b7;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem}.overdue-text{font-size:.95rem;font-weight:600;color:var(--text-color)}.overdue-badge.no-overdue .overdue-text{color:#065f46}.parent-view-wrapper .next-due-card,.parent-view-wrapper .weekly-progress-card,.parent-view-wrapper .subject-tiles-section,.parent-view-wrapper .overdue-badge{border-color:var(--parent-border-soft)}.parent-view-wrapper .dashboard-summary-container h4,.parent-view-wrapper .next-due-text h3{color:var(--parent-text-primary)}.parent-view-wrapper .next-due-text p,.parent-view-wrapper .suggestion-text{color:var(--parent-text-secondary)}.parent-view-wrapper .progress-bar-fill{background:var(--parent-accent)}.parent-view-wrapper .weekly-progress-text{color:var(--parent-text-primary)}.parent-view-wrapper .timeline-day-name{color:var(--parent-text-secondary)}.parent-view-wrapper .timeline-dot.filled{background:var(--parent-accent)}.parent-view-wrapper .subject-tile{border-color:var(--parent-border-soft)}.parent-view-wrapper .subject-tile:hover{border-color:var(--parent-accent);background:var(--parent-accent-soft)}.parent-view-wrapper .subject-tile-name{color:var(--parent-text-primary)}.parent-view-wrapper .subject-tile-count{color:var(--parent-text-secondary)}.parent-view-wrapper .overdue-badge.has-overdue{background:#fef2f2;border-color:#fecaca}.parent-view-wrapper .overdue-badge.no-overdue{background:#f0fdf4;border-color:#bbf7d0}.parent-view-wrapper .overdue-text{color:var(--parent-text-primary)}@media(max-width:768px){.dashboard-grid{grid-template-columns:1fr}.next-due-card{max-width:100%}.next-due-content{gap:1rem}.next-due-ring{width:70px;height:70px}.next-due-ring-inner{width:56px;height:56px}.next-due-days{font-size:1.5rem}.next-due-text h3{font-size:1.1rem}.next-due-text p{font-size:.9rem}.workload-timeline,.weekly-progress-card,.subject-tiles-section,.overdue-badge{padding:1.2rem}.subject-tiles-section{margin-left:.75rem;margin-right:.75rem;padding-left:.5rem}.workload-days{height:80px}.workload-day-bar{max-width:30px}.subject-tile{min-width:100px;padding:.8rem 1.2rem}}.bottom-nav{position:fixed;bottom:20px;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;gap:8px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 16px;border-radius:25px;box-shadow:0 10px 40px #a18cd14d;z-index:1000;border:1px solid rgba(161,140,209,.2)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;background:transparent;border:none;cursor:pointer;border-radius:15px;transition:all .3s cubic-bezier(.34,1.56,.64,1);color:var(--text-light);min-width:70px;position:relative}.nav-item:hover{background:#a18cd11a;transform:translateY(-2px)}.nav-item.active{background:linear-gradient(135deg,#a18cd126,#fbc2eb26);color:var(--primary-color);transform:scale(1.05)}.nav-item.active .nav-icon{animation:iconBounce .5s ease}.nav-item.active:after{content:"";position:absolute;top:4px;right:12px;width:6px;height:6px;background:var(--gradient-primary);border-radius:50%;animation:bounceIn .5s cubic-bezier(.34,1.56,.64,1)}.nav-icon{width:24px;height:24px;stroke-width:2.5;transition:transform .3s ease}.nav-label{font-size:.75rem;font-weight:600}.bottom-nav.parent-nav{background:#fff;border:1px solid var(--parent-border-soft);box-shadow:0 -2px 20px #00000014}.bottom-nav.parent-nav .nav-item{color:#94a3b8}.bottom-nav.parent-nav .nav-item.active{background:var(--parent-accent-soft);color:var(--parent-accent)}.bottom-nav.parent-nav .nav-item.active:after{background:var(--parent-accent)}.settings-container{padding:1rem 1.5rem;max-width:1200px;margin:0 auto}.settings-container h2{font-size:1.8rem;margin:0 0 2rem;color:var(--text-color);display:none}.settings-section{background:var(--card-bg);border-radius:28px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow-soft);transition:all .3s cubic-bezier(.34,1.56,.64,1)}.settings-section:hover{transform:translateY(-4px) scale(1.01);box-shadow:var(--shadow-hover)}.settings-profile{display:flex;align-items:center;gap:1.5rem}.profile-avatar{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color) 0%,var(--accent-color) 100%);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;flex-shrink:0}.profile-info h3{margin:0 0 .25rem;font-size:1.3rem;color:var(--text-color)}.profile-info p{margin:0;color:var(--text-light);font-size:.95rem}.settings-section-title{margin:0 0 1rem;font-size:1rem;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.settings-option-btn{display:flex;align-items:center;gap:1rem;width:100%;padding:1rem;background:#fff;border:2px solid rgba(161,140,209,.1);border-radius:15px;cursor:pointer;transition:all .3s ease;color:var(--text-color);font-family:var(--font-family);font-size:1rem;font-weight:600;margin-bottom:.75rem}.settings-option-btn:last-child{margin-bottom:0}.settings-option-btn:hover{background:#a18cd10d;border-color:var(--primary-color);transform:translate(5px)}.settings-option-btn.sign-out-option{border-color:#ef444433;color:#dc2626}.settings-option-btn.sign-out-option:hover{background:#ef44440d;border-color:#dc2626}.settings-icon{width:24px;height:24px;flex-shrink:0}.settings-option-btn span{flex:1;text-align:left}.settings-chevron{width:20px;height:20px;flex-shrink:0;color:var(--text-light)}.desktop-only{display:inline-block}@media(max-width:768px){.bottom-nav{display:flex}.main-wrapper{padding:1rem .5rem 100px;padding-top:calc(env(safe-area-inset-top) + 1rem);padding-bottom:max(100px,env(safe-area-inset-bottom) + 80px)}.desktop-only{display:none}.floating-add-btn{bottom:120px}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:max(1rem,env(safe-area-inset-bottom));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-content{background:var(--card-bg);border-radius:28px;width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-hover);overflow-y:auto;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #E5E7EB}.modal-title{font-size:1.5rem;font-weight:700;color:var(--text-color);margin:0;text-shadow:none}.modal-close-btn{background:transparent;border:none;color:var(--text-light);cursor:pointer;padding:.5rem;border-radius:8px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:#f3f4f6;color:var(--text-color)}.modal-body{padding:2rem}@media(max-width:768px){.modal-overlay{align-items:flex-end;padding:0}.modal-content{width:100%;height:90vh;max-height:90vh;border-radius:24px 24px 0 0;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-header{padding:1rem 1.5rem;position:sticky;top:0;background:#fff;z-index:10}.modal-body{padding:1.5rem 1.5rem 3rem;overflow-y:visible}}.theme-selector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.theme-option{background:#fff;border:2px solid #e0e0e0;border-radius:20px;padding:1rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.theme-option:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:var(--primary-color)}.theme-option.selected{border-color:var(--primary-color);border-width:3px;box-shadow:0 8px 20px #a18cd14d}.theme-preview{width:100%;height:100px;border-radius:12px;margin-bottom:.75rem;display:flex;align-items:center;justify-content:center;padding:1rem}.theme-preview-card{width:80%;height:70%;border-radius:10px;display:flex;gap:.5rem;padding:.5rem;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000001a}.theme-preview-primary{width:40px;height:40px;border-radius:8px}.theme-preview-accent{width:20px;height:20px;border-radius:4px}.theme-info h4{margin:0 0 .25rem;font-size:1.05rem;font-weight:700;color:var(--text-color)}.theme-info p{margin:0;font-size:.85rem;color:var(--text-light);line-height:1.4}.theme-selected-badge{position:absolute;top:.75rem;right:.75rem;width:28px;height:28px;background:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;animation:bounceIn .4s cubic-bezier(.34,1.56,.64,1)}@media(max-width:768px){.theme-selector-grid{grid-template-columns:1fr;gap:1rem}}.landing-container{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem}.landing-header{text-align:center;animation:slideUpSpring .8s cubic-bezier(.34,1.56,.64,1) backwards}.landing-logo{width:80px;height:80px;margin:0 auto 1.5rem;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary-color);box-shadow:var(--shadow-soft);animation:bounceIn .8s cubic-bezier(.34,1.56,.64,1) backwards}.landing-title{font-size:3rem;font-weight:900;margin:0 0 .75rem;text-align:center;color:var(--text-color, #2d3436);text-shadow:0 2px 4px rgba(0,0,0,.1)}.landing-tagline{font-size:1.1rem;color:#fff;font-weight:600;margin:0;text-shadow:0 2px 10px rgba(0,0,0,.1);opacity:.95}.landing-hero{position:relative;width:100%;max-width:500px;height:150px;display:flex;align-items:center;justify-content:center;animation:slideUpSpring 1s cubic-bezier(.34,1.56,.64,1) backwards .1s}.hero-decoration{display:flex;gap:1rem;align-items:center;justify-content:center}.hero-card{width:80px;height:100px;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;box-shadow:var(--shadow-soft);border:2px solid rgba(255,255,255,.5);transition:all .3s ease;display:flex;align-items:center;justify-content:center}.hero-card-1{animation:float 3s ease-in-out infinite}.hero-card-2{animation:float 3s ease-in-out infinite .5s;transform:scale(1.1)}.hero-card-3{animation:float 3s ease-in-out infinite 1s}@keyframes float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.05)}}.hero-card-2{border-color:var(--primary-color);background:#a18cd11a}.hero-days-counter{width:50px;height:60px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 10px #00000026;transition:transform .3s ease}.hero-card:hover .hero-days-counter{transform:scale(1.1)}.hero-days-num{font-size:1.5rem;font-weight:800;line-height:1}.hero-days-label{font-size:.65rem;font-weight:700;text-transform:uppercase;opacity:.95;margin-top:.2rem}.hero-days-red{background:linear-gradient(135deg,#f56565,#fc8181)}.hero-days-orange{background:linear-gradient(135deg,#ed8936,#f6ad55)}.hero-days-green{background:linear-gradient(135deg,#48bb78,#68d391)}.landing-choices{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:500px;animation:slideUpSpring 1.2s cubic-bezier(.34,1.56,.64,1) backwards .2s}.choice-card{background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:30px;padding:2rem;display:flex;align-items:center;gap:1.5rem;border:2px solid rgba(255,255,255,.5);box-shadow:var(--shadow-soft);cursor:pointer;transition:all .4s cubic-bezier(.34,1.56,.64,1);text-align:left;font-family:var(--font-family);color:var(--text-color);position:relative;overflow:hidden}.choice-card:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .4s ease;border-radius:30px}.choice-card-student:before{background:linear-gradient(135deg,#a18cd126,#8ec5fc26)}.choice-card-parent:before{background:linear-gradient(135deg,#4db8c426,#8ec5fc26)}.choice-card:hover{transform:translateY(-8px) scale(1.03);box-shadow:var(--shadow-hover)}.choice-card:hover:before{opacity:1}.choice-card:active{transform:translateY(-4px) scale(1.01)}.choice-icon{width:70px;height:70px;display:flex;align-items:center;justify-content:center;border-radius:20px;flex-shrink:0;position:relative;z-index:1;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.choice-card-student .choice-icon{background:linear-gradient(135deg,#a18cd1,#8ec5fc);color:#fff}.choice-card-parent .choice-icon{background:linear-gradient(135deg,#4db8c4,#66a6ff);color:#fff}.choice-card:hover .choice-icon{transform:scale(1.1) rotate(5deg)}.choice-title{font-size:1.5rem;font-weight:800;margin:0 0 .5rem;color:var(--text-color);text-shadow:none;position:relative;z-index:1}.choice-subtitle{font-size:.95rem;color:var(--text-light);margin:0;line-height:1.5;position:relative;z-index:1}.back-to-landing-btn{display:inline-flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--primary-color);font-size:.95rem;font-weight:600;cursor:pointer;padding:.5rem;margin-bottom:1rem;transition:all .3s ease;font-family:var(--font-family);border-radius:10px}.back-to-landing-btn:hover{background:#a18cd11a;transform:translate(-4px)}.parent-auth-header{text-align:center;margin-bottom:2rem}.parent-auth-icon{width:80px;height:80px;margin:0 auto 1rem;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary-color);box-shadow:0 8px 20px #0000001a;animation:bounceIn .6s cubic-bezier(.34,1.56,.64,1)}.parent-auth-header h2{font-size:2rem;font-weight:800;color:var(--text-color);margin:0;text-shadow:none}.parent-auth-coming-soon{text-align:center;margin-bottom:2rem}.coming-soon-badge{display:inline-block;padding:.5rem 1rem;background:linear-gradient(135deg,#ffd89b,#ff8a65);color:#fff;border-radius:50px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:1rem;box-shadow:0 4px 12px #ff8a654d}.coming-soon-message{font-size:1rem;color:var(--text-color);line-height:1.6;margin:0}.parent-auth-placeholder{background:#f8f9fa;border-radius:20px;padding:1.5rem;border:2px solid #e0e0e0}.parent-auth-placeholder p{font-size:.95rem;font-weight:700;color:var(--text-color);margin:0 0 1rem}.parent-auth-placeholder ul{list-style:none;padding:0;margin:0}.parent-auth-placeholder li{padding:.75rem 0;color:var(--text-light);font-size:.95rem;border-bottom:1px solid #e0e0e0;display:flex;align-items:center;gap:.75rem}.parent-auth-placeholder li:last-child{border-bottom:none}.parent-auth-placeholder li:before{content:"✓";width:24px;height:24px;background:linear-gradient(135deg,#4db8c4,#66a6ff);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}@media(max-width:768px){.landing-title{font-size:2.5rem}.landing-tagline{font-size:1rem}.landing-hero{height:120px}.hero-card{width:60px;height:80px}.hero-days-counter{width:42px;height:50px}.hero-days-num{font-size:1.3rem}.hero-days-label{font-size:.55rem}.choice-card{padding:1.5rem;flex-direction:row}.choice-icon{width:60px;height:60px}.choice-title{font-size:1.25rem}.choice-subtitle{font-size:.875rem}}@media(min-width:769px){.landing-choices{flex-direction:row;max-width:900px;gap:2rem}.choice-card{flex:1;flex-direction:column;text-align:center}.choice-icon{width:80px;height:80px}}.sharing-section-content{display:flex;flex-direction:column;gap:1rem}.sharing-description{color:var(--text-light);font-size:.95rem;line-height:1.5;margin:0 0 .5rem}.sharing-loading{display:flex;justify-content:center;align-items:center;padding:2rem}.spinner{width:40px;height:40px;border:4px solid rgba(161,140,209,.1);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sharing-code-display{display:flex;flex-direction:column;gap:1rem;align-items:center;padding:1rem 0}.code-badge{background:linear-gradient(135deg,var(--primary-color) 0%,var(--accent-color) 100%);color:#fff;padding:1.25rem 2rem;border-radius:20px;box-shadow:0 8px 20px #a18cd14d;transition:all .3s ease}.code-badge:hover{transform:scale(1.05);box-shadow:0 12px 28px #a18cd166}.code-text{font-size:2rem;font-weight:800;letter-spacing:4px;font-family:Courier New,monospace}.code-expiry{color:var(--text-light);font-size:.875rem;margin:0;font-weight:600}.sharing-actions{display:flex;flex-direction:column;gap:.75rem;width:100%}.sharing-btn{justify-content:center}.sharing-btn.revoke-btn{border-color:#ef444433;color:#dc2626}.sharing-btn.revoke-btn:hover{background:#ef44440d;border-color:#dc2626;transform:translate(0) scale(1.02)}.sharing-btn.primary-btn{background:var(--gradient-primary);color:#fff;border-color:transparent}.sharing-btn.primary-btn:hover{transform:translate(0) scale(1.02);box-shadow:0 8px 20px #a18cd14d}.sharing-no-code{display:flex;justify-content:center;padding:1rem 0}.sharing-message{padding:1rem;border-radius:12px;font-size:.9rem;font-weight:600;text-align:center;animation:slideUpSpring .3s ease}.sharing-message.success{background:#22c55e1a;color:#16a34a;border:2px solid rgba(34,197,94,.2)}.sharing-message.error{background:#ef44441a;color:#dc2626;border:2px solid rgba(239,68,68,.2)}.settings-section-title svg{width:20px;height:20px;display:inline-block;margin-right:.5rem;vertical-align:middle}@media(min-width:600px){.sharing-actions{flex-direction:row}.sharing-btn{flex:1}}.parent-dashboard{position:fixed;inset:0;width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;padding-top:max(0rem,env(safe-area-inset-top))}.parent-empty-state{position:fixed;inset:0;width:100%;height:100%;display:flex;flex-direction:column;padding:1.5rem;padding-top:calc(2rem + env(safe-area-inset-top));padding-bottom:calc(4rem + env(safe-area-inset-bottom));overflow-y:auto;z-index:50;background-color:var(--bg-pastel);box-sizing:border-box}.empty-state-content{margin:auto;text-align:center;background:#fff;padding:2rem 1.5rem;border-radius:24px;box-shadow:0 10px 40px #0000001a;max-width:500px;width:100%;box-sizing:border-box;animation:slideUpSpring .5s ease}.empty-state-icon{color:var(--primary-color, #667eea);margin-bottom:1.5rem;display:flex;justify-content:center}.empty-state-content h2{font-size:1.8rem;margin-bottom:1rem;color:var(--text-color, #1a1a1a)}.empty-state-message{color:var(--text-secondary, #666);font-size:1rem;line-height:1.6;margin-bottom:2rem}.empty-state-btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;background:var(--parent-accent);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.empty-state-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4c8bf566}.children-header-card{background:#fff;border-radius:24px;padding:1.5rem;margin:1rem 1rem .5rem;box-shadow:0 10px 40px -10px #a18cd126;position:relative;z-index:10}.children-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.children-label{font-size:.875rem;font-weight:600;color:var(--parent-text-primary);text-transform:uppercase;letter-spacing:.5px}.view-only-pill-compact{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:#fff;border:1.5px solid var(--parent-border-muted);border-radius:20px;font-size:.7rem;font-weight:600;color:#475569}.children-chips-row{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap}.children-chips-row::-webkit-scrollbar{display:none}.child-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;background:#fff;border:1.5px solid var(--parent-border-muted);border-radius:20px;font-size:.875rem;font-weight:600;color:var(--parent-text-secondary);cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0;min-height:40px}.child-chip:hover{background:#f8fafc;border-color:var(--parent-border-soft)}.child-chip.active{background:var(--parent-accent-soft);border-color:transparent;color:var(--parent-text-primary);box-shadow:0 2px 6px #4c8bf526}.child-chip-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.child-chip-name{max-width:100px;overflow:hidden;text-overflow:ellipsis}.add-child-chip{border-style:dashed;color:#475569;background:#fff;border-color:var(--parent-border-muted)}.add-child-chip:hover{background:#f8fafc;border-color:var(--parent-border-soft)}.dashboard-section-header h3{font-size:1.1rem;font-weight:700;color:var(--parent-text-primary);margin:0 0 1rem .5rem;letter-spacing:.5px;text-transform:uppercase}.parent-dashboard-content{flex:1;overflow-y:auto;padding-bottom:80px}.add-child-modal{display:flex;flex-direction:column;min-width:400px;max-width:500px}.add-child-instructions{color:var(--text-secondary, #666);font-size:.95rem;line-height:1.6;margin-bottom:1.5rem}.code-input{width:100%;padding:1rem;font-size:1.5rem;font-weight:700;text-align:center;letter-spacing:.2em;text-transform:uppercase;border:2px solid var(--border-color, #ddd);border-radius:12px;background:var(--input-bg, #f8f9fa);font-family:Courier New,monospace;transition:all .3s ease;box-sizing:border-box}.code-input:focus{outline:none;border-color:var(--primary-color, #667eea);box-shadow:0 0 0 4px #667eea1a}.form-hint{display:block;margin-top:.5rem;font-size:.85rem;color:var(--text-secondary, #888)}.error-message{padding:.75rem 1rem;background:#ef44441a;border:2px solid rgba(239,68,68,.2);border-radius:8px;color:#dc2626;font-size:.9rem;font-weight:600;margin-top:1rem;animation:slideUpSpring .3s ease}.modal-submit-btn{width:100%;padding:1rem;background:var(--primary-color, #667eea);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:1.5rem;transition:all .3s ease}.modal-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.modal-submit-btn:disabled{opacity:.5;cursor:not-allowed}.success-state{text-align:center;padding:2rem 0}.success-icon{color:#16a34a;margin-bottom:1rem}.success-state h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--text-color, #1a1a1a)}.success-state p{color:var(--text-secondary, #666);font-size:1rem}.parent-assignment-view{max-width:1200px;margin:0 auto;padding:1.5rem .75rem 3rem}.assignments-page-title{margin-bottom:2rem}.assignments-page-title h2{color:var(--parent-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.viewing-child{color:var(--parent-text-secondary);font-size:.875rem;font-weight:500}.filters-section{margin-bottom:2.5rem}.filters-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.5rem;flex:1;min-width:0}.filter-group label{color:#334155;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.filter-select{padding:.75rem 1rem;background:#fff;border:2px solid var(--parent-border-soft);border-radius:12px;color:#334155;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%;box-sizing:border-box}.filter-select:hover{border-color:var(--parent-border-muted);box-shadow:0 2px 8px #00000014}.filter-select:focus{outline:none;border-color:var(--parent-accent);box-shadow:0 0 0 3px #4c8bf51a}.subject-filter-wrapper{position:relative}.subject-filter-toggle{width:100%;padding:.75rem 1rem;background:#fff;border:2px solid var(--parent-border-soft);border-radius:12px;color:#334155;font-size:1rem;font-weight:500;text-align:left;cursor:pointer;transition:all .2s ease;box-sizing:border-box}.subject-filter-toggle:hover{border-color:var(--parent-border-muted);box-shadow:0 2px 8px #00000014}.subject-filter-toggle:focus{outline:none;border-color:var(--parent-accent);box-shadow:0 0 0 3px #4c8bf51a}.subject-filter-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;overflow:hidden;z-index:10;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.subject-filter-option{width:100%;padding:.75rem 1rem;background:transparent;border:none;color:#334155;font-size:.95rem;font-weight:500;text-align:left;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;gap:.5rem}.subject-filter-option:hover{background:#f8fafc}.subject-filter-option.active{background:var(--parent-accent-soft);color:var(--parent-text-primary);font-weight:600}.subject-color-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.clear-filters-btn{padding:.75rem 1.5rem;background:#fff;border:2px solid var(--parent-border-soft);border-radius:12px;color:#475569;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;align-self:flex-end}.clear-filters-btn:hover{background:#f8fafc;border-color:var(--parent-border-muted);transform:translateY(-2px)}.assignment-card.read-only{opacity:.95;cursor:default}.assignment-card.read-only:hover{transform:none}.read-only-status{cursor:default;pointer-events:none}.parent-auth-header{text-align:center;margin-bottom:1.5rem}@media(max-width:768px){.add-child-modal{min-width:auto;width:100%}.children-header-card{padding:.75rem 1rem}.child-chip-name{max-width:80px}.parent-assignment-view{padding:1rem .5rem 2.5rem}.assignments-page-title{margin-bottom:1.5rem}.assignments-page-title h2{font-size:1.25rem}.next-due-section{width:100%;margin-bottom:2rem;padding-left:.5rem;box-sizing:border-box}.filters-section{margin-bottom:2rem}.filters-row{flex-direction:column;align-items:stretch}.filter-group{width:100%;min-width:auto}.clear-filters-btn{width:100%;align-self:stretch}}@media(min-width:769px){.children-header-card{padding:1rem 1.25rem}.children-chips-row{flex-wrap:wrap}.child-chip{min-height:44px}.child-chip-avatar{width:28px;height:28px;font-size:.8125rem}.assignments-page-title h2{font-size:1.75rem}}
