@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";.label-manager-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.label-manager-dialog{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;display:flex;box-shadow:0 10px 40px #0003}.label-manager-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:20px;display:flex}.label-manager-header h2{color:#333;margin:0;font-size:18px}.close-btn{color:#666;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:28px;display:flex}.close-btn:hover{color:#000}.label-manager-content{flex:1;padding:20px;overflow-y:auto}.add-btn{color:#fff;cursor:pointer;background:#1e88e5;border:none;border-radius:6px;width:100%;margin-bottom:20px;padding:10px;font-size:14px;font-weight:600}.add-btn:hover{background:#1565c0}.labels-list{flex-direction:column;gap:12px;display:flex}.empty{text-align:center;color:#999;padding:20px;font-size:14px}.label-item{background:#f5f5f5;border-radius:6px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;display:flex}.label-info{flex:1}.label-name{color:#333;margin-bottom:4px;font-weight:600}.label-meta{color:#666;margin-bottom:4px;font-size:12px}.label-notes{color:#555;font-size:13px;font-style:italic}.label-actions{gap:8px;display:flex}.edit-btn,.delete-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:6px 12px;font-size:12px}.edit-btn{color:#333;background:#ffc107}.edit-btn:hover{background:#ffb300}.delete-btn{color:#fff;background:#f44336}.delete-btn:hover{background:#da190b}.label-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:#333;font-size:14px;font-weight:600}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;padding:8px 12px;font-family:inherit;font-size:14px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1e88e5;outline:none;box-shadow:0 0 0 3px #1e88e51a}.form-actions{gap:10px;margin-top:10px;display:flex}.save-btn,.cancel-btn{cursor:pointer;border:none;border-radius:6px;flex:1;padding:10px;font-size:14px;font-weight:600}.save-btn{color:#fff;background:#4caf50}.save-btn:hover{background:#45a049}.cancel-btn{color:#333;background:#e0e0e0}.cancel-btn:hover{background:#d0d0d0}.year-view-container{color:#fff;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);min-height:100vh;padding:2rem}.year-view-header{text-align:center;margin-bottom:3rem}.year-title{background:linear-gradient(135deg,#e91e8c 0%,#1e88e5 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 1.5rem;font-size:3rem;font-weight:700}.year-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;margin-bottom:1.5rem;display:flex}.year-selector{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.year-legend{color:#cbd5e1;border-bottom:1px solid #94a3b833;flex-wrap:wrap;justify-content:center;gap:2rem;max-width:1600px;margin-bottom:2rem;margin-left:auto;margin-right:auto;padding:1rem 0;display:flex}.year-legend .legend-item{color:#cbd5e1;align-items:center;gap:.75rem;font-size:.9rem;font-weight:500;display:flex}.year-legend .legend-dot{border-radius:50%;width:12px;height:12px}.year-legend .legend-item.emma .legend-dot{background:#e91e8c;box-shadow:0 0 12px #e91e8c66}.year-legend .legend-item.phillip .legend-dot{background:#1e88e5;box-shadow:0 0 12px #1e88e566}.year-legend .legend-item.handoff .legend-dot{background:linear-gradient(135deg,#1e88e5 50%,#e91e8c 50%);box-shadow:0 0 12px #fff3}.year-legend .legend-item.trip .legend-dot{background:#1e88e5;border:2px solid #fbbf24;width:14px;height:14px;box-shadow:0 0 10px #fbbf2466}.year-btn{color:#cbd5e1;cursor:pointer;background:0 0;border:2px solid #475569;border-radius:.5rem;padding:.5rem 1rem;font-size:1rem;font-weight:500;transition:all .2s}.year-btn:hover{color:#fff;border-color:#94a3b8}.year-btn.active{color:#e91e8c;background:#e91e8c1a;border-color:#e91e8c}.view-toggle-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#e91e8c33 0%,#1e88e51a 100%);border:1px solid #e91e8c80;border-radius:.5rem;padding:.5rem 1rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s}.months-grid-year{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;max-width:1600px;margin-bottom:3rem;margin-left:auto;margin-right:auto;display:grid}.month-mini{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#1e293bb3;border:1px solid #94a3b833;border-radius:.75rem;padding:1rem;transition:all .3s}.month-mini:hover{background:#1e293be6;border-color:#94a3b866;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.zoomed-year-month{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293bb3;border:1px solid #94a3b833;border-radius:1.5rem;max-width:800px;margin:2rem auto 0;padding:2rem}.back-btn{color:#0f172a;cursor:pointer;background:linear-gradient(135deg,#00d4ff,#00a8cc);border:1px solid #00d4ff4d;border-radius:.8rem;margin-bottom:1.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:700;transition:all .3s}.zoomed-title{text-align:center;background:linear-gradient(135deg,#00d4ff,#e91e8c);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:2.5rem;font-weight:800}.zoomed-calendar-grid{flex-direction:column;gap:.5rem;display:flex}.weekday{text-align:center;color:#a0aec0;text-transform:uppercase;letter-spacing:.04em;padding:.4rem 0;font-size:.7rem;font-weight:700}.day{aspect-ratio:1;cursor:pointer;border:1px solid #0000;border-radius:.6rem;flex-direction:column;justify-content:flex-start;align-items:center;padding:2px;font-weight:700;transition:all .3s;display:flex;position:relative;overflow:visible;box-shadow:0 2px 8px #0000004d}.day.emma{color:#fff;background:#e91e8c}.day.phillip{color:#fff;background:#1e88e5}.month-mini-title{text-transform:uppercase;letter-spacing:.05em;color:#cbd5e1;margin:0 0 .75rem;font-size:.9rem;font-weight:600}.mini-calendar-grid{grid-template-columns:repeat(7,1fr);gap:.3rem;display:grid}.mini-headers{display:contents}.mini-header{text-align:center;color:#94a3b8;text-transform:uppercase;padding:.25rem 0;font-size:.65rem;font-weight:700}.mini-day{aspect-ratio:1;cursor:pointer;border-radius:.3rem;justify-content:center;align-items:center;font-size:.65rem;font-weight:600;transition:all .15s;display:flex;position:relative;overflow:visible}.mini-day.empty{background:0 0}.mini-day.emma{color:#fff;background:#e91e8cb3}.mini-day.emma:hover{z-index:10;background:#e91e8ce6}.mini-day.phillip{color:#fff;background:#1e88e5b3}.mini-day.phillip:hover{z-index:10;background:#1e88e5e6}.mini-day.handoff{border:1px solid #ffffff4d;box-shadow:inset 0 0 8px #0006}.mini-day.trip-event{border:1.5px solid #fbbf24!important;box-shadow:0 0 10px #fbbf244d!important}.school-break-indicator{z-index:3;background:#f59e0b;border-radius:0 1px 1px 0;width:6px;height:6px;position:absolute;bottom:1px;right:1px;box-shadow:0 0 4px #f59e0b99}.mini-date{z-index:2}.mini-day.today{font-weight:700;box-shadow:0 0 0 2px #fbbf24}.mini-day.today.trip-event{box-shadow:0 0 0 2px #fbbf24,0 0 10px #fbbf244d!important}.today-ring{background:#fbbf24;border-radius:50%;width:4px;height:4px;position:absolute;top:2px;right:2px}.mini-tooltip{color:#fff;z-index:20;white-space:nowrap;background:#0f172afa;border:1px solid #94a3b84d;border-radius:.5rem;margin-bottom:.5rem;padding:.6rem .8rem;font-size:.7rem;animation:.15s fadeInUp;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000080}.mini-tooltip:after{content:"";border:4px solid #0000;border-top-color:#0f172afa;position:absolute;top:100%;left:50%;transform:translate(-50%)}.tooltip-date{color:#cbd5e1;margin-bottom:.3rem;font-weight:700}.tooltip-parent{color:#fff;margin-bottom:.2rem;font-weight:600}.tooltip-detail{color:#fbbf24;margin-top:.2rem;font-size:.65rem}.tooltip-event{color:#00d4ff;margin-top:.2rem;font-size:.65rem;font-style:italic}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.austin-isd-legend{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b80;border:1px solid #94a3b833;border-radius:1rem;max-width:1600px;margin:3rem auto 2rem;padding:2rem}.legend-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.legend-header h3{color:#e91e8c;text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:1.1rem;font-weight:600}.isd-pdf-link{color:#fff;background:linear-gradient(135deg,#1e88e5,#1e88e5);border-radius:.5rem;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.isd-pdf-link:hover{background:linear-gradient(135deg,#2196f3,#2196f3);transform:translateY(-2px);box-shadow:0 4px 12px #1e88e54d}.legend-dates{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.legend-date-item{background:#94a3b81a;border-left:3px solid #1e88e5;border-radius:.375rem;flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.date-label{color:#cbd5e1;text-transform:uppercase;letter-spacing:.02em;font-size:.85rem;font-weight:600}.date-value{color:#e2e8f0;font-size:.9rem;font-weight:500}.year-view-footer{text-align:center;border-top:1px solid #94a3b833;padding-top:2rem}.decree-ref{color:#64748b;margin:0;font-size:.75rem}@media print{.year-view-container{color:#000;background:#fff}.year-title{-webkit-text-fill-color:initial;color:#000;background:0 0}.year-selector{display:none}.year-legend{border-bottom-color:#d1d5db}.austin-isd-legend{page-break-inside:avoid;break-inside:avoid;background:#fff;border-color:#d1d5db}.legend-header h3{color:#000}.isd-pdf-link{color:#1e40af;background:#dbeafe;border:1px solid #93c5fd}.legend-date-item{background:#f3f4f6;border-left-color:#6b7280}.date-label{color:#374151}.date-value{color:#1f2937}.mini-calendar-grid{gap:.2rem}.mini-day{-webkit-print-color-adjust:exact;print-color-adjust:exact;border:1px solid #e5e7eb}.mini-day.emma{color:#880e4f;background:#fce4ec!important}.mini-day.phillip{color:#01579b;background:#e3f2fd!important}.mini-day.handoff{box-shadow:none;border:1px solid #999}.mini-day.trip-event{border:2px solid #f59e0b!important}.mini-tooltip{display:none}.month-mini{break-inside:avoid;page-break-inside:avoid;background:#fff;border-color:#d1d5db}.month-mini-title{color:#000}}:root{--color-emma:#e91e8c;--color-phillip:#1e88e5;--color-bg-dark:#0f1419;--color-bg-secondary:#1a1f2e;--color-bg-tertiary:#252d3d;--color-text-primary:#fff;--color-text-secondary:#a0aec0;--color-text-tertiary:#64748b;--color-accent:#00d4ff;--font-display:"Outfit", sans-serif;--font-body:"Plus Jakarta Sans", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}.modern-calendar{background:linear-gradient(135deg, var(--color-bg-dark) 0%, #1a2332 50%, var(--color-bg-dark) 100%);min-height:100vh;color:var(--color-text-primary);font-family:var(--font-body);flex-direction:column;display:flex;overflow:hidden}.calendar-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(#0f1419cc 0%,#1a1f2e80 100%);border-bottom:1px solid #ffffff14;border-radius:0 0 2rem 2rem;padding:2rem;box-shadow:0 8px 32px #0006}.header-content{justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto 2rem;display:flex}.header-title h1{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, #00d4ff 0%, var(--color-emma) 50%, var(--color-phillip) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:3.5rem;font-weight:900}.header-title .subtitle{color:var(--color-text-secondary);letter-spacing:.05em;text-transform:uppercase;opacity:.7;font-size:.9rem;font-weight:500}.header-title .version{color:var(--color-text-tertiary);letter-spacing:.05em;margin-top:.25rem;font-size:.7rem;font-weight:400}.range-select{background:linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%);color:var(--color-text-primary);font-family:var(--font-body);cursor:pointer;border:1px solid #ffffff1f;border-radius:1rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.range-select:hover{background:linear-gradient(135deg, var(--color-bg-tertiary) 0%, #ffffff14 100%);border-color:#fff3;transform:translateY(-2px)}.view-toggle-btn{color:var(--color-text-primary);font-family:var(--font-body);cursor:pointer;background:linear-gradient(135deg,#e91e8c33 0%,#1e88e51a 100%);border:1px solid #e91e8c80;border-radius:.75rem;margin-right:1rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.view-toggle-btn:hover{background:linear-gradient(135deg,#e91e8c4d 0%,#1e88e533 100%);border-color:#e91e8ccc;transform:translateY(-2px)}.legend{border-top:1px solid #ffffff0f;gap:2.5rem;max-width:1400px;margin:0 auto;padding-top:1rem;display:flex}.legend-item{align-items:center;gap:.75rem;font-size:.95rem;font-weight:600;display:flex}.legend-dot{border-radius:50%;width:12px;height:12px;box-shadow:0 0 16px #ffffff4d}.legend-item.emma .legend-dot{background:linear-gradient(135deg, var(--color-emma), #ff6fa8);box-shadow:0 0 20px #e91e8c66}.legend-item.phillip .legend-dot{background:linear-gradient(135deg, var(--color-phillip), #42a5f5);box-shadow:0 0 20px #1e88e566}.legend-item.handoff .legend-dot{background:linear-gradient(135deg, var(--color-phillip) 50%, var(--color-emma) 50%);box-shadow:0 0 16px #fff3}.legend-item.trip .legend-dot{background:var(--color-phillip);border:2px solid #fbbf24;width:14px;height:14px;box-shadow:0 0 12px #fbbf2466}.legend-rules{border-top:1px solid #ffffff0f;flex-wrap:wrap;gap:.5rem 2rem;max-width:1400px;margin:.75rem auto 0;padding-top:.75rem;display:flex}.legend-rule{color:var(--color-text-secondary);font-size:.78rem;font-weight:500}.legend-rule strong{color:var(--color-text-primary);font-weight:700}.summer-editor{border-bottom:1px solid #ffffff0f;width:100%;max-width:1400px;margin:0 auto;padding:2rem}.summer-header{margin-bottom:1.5rem}.summer-header h3{font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:.5rem;font-size:1.8rem;font-weight:800}.summer-hint{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.week-buttons{grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:1rem;max-width:600px;margin-bottom:2rem;display:grid}.week-btn{aspect-ratio:1;font-family:var(--font-display);cursor:pointer;border:none;border-radius:1.2rem;font-size:1.1rem;font-weight:700;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;box-shadow:0 8px 24px #0000004d}.week-btn.emma{background:linear-gradient(135deg, var(--color-emma), #ff6fa8)}.week-btn.phillip{background:linear-gradient(135deg, var(--color-phillip), #42a5f5)}.week-btn:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0006}.week-btn.forced:after{content:"";background:#fbbf24;border-radius:50%;width:8px;height:8px;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse;position:absolute;top:6px;right:6px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.summer-stats{gap:2rem;font-weight:600;display:flex}.stat{align-items:center;gap:.75rem;font-size:.95rem;display:flex}.stat.emma:before{content:"";background:var(--color-emma);border-radius:50%;width:10px;height:10px;display:inline-block}.stat.phillip:before{content:"";background:var(--color-phillip);border-radius:50%;width:10px;height:10px;display:inline-block}.calendar-main{flex-direction:column;flex:1;width:100%;padding:2rem;display:flex;overflow-y:auto}.months-grid{grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:2rem;max-width:100%;display:grid}.month-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:linear-gradient(135deg,#1a1f2e80 0%,#252d3d4d 100%);border:1px solid #ffffff14;border-radius:1.5rem;padding:1.5rem;transition:all .3s}.month-container:hover{background:linear-gradient(135deg,#1a1f2eb3 0%,#252d3d80 100%);border-color:#ffffff26;transform:translateY(-2px);box-shadow:0 8px 24px #00d4ff1a}.month-title{font-family:var(--font-display);color:var(--color-text-primary);text-align:center;margin-bottom:1rem;font-size:1.5rem;font-weight:800}.zoomed-month{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#1a1f2e80 0%,#252d3d4d 100%);border:1px solid #ffffff14;border-radius:1.5rem;max-width:800px;margin:0 auto;padding:2rem}.back-btn{background:linear-gradient(135deg, var(--color-accent), #00a8cc);color:var(--color-bg-dark);cursor:pointer;border:1px solid #00d4ff4d;border-radius:.8rem;margin-bottom:1.5rem;padding:.6rem 1.2rem;font-weight:700;transition:all .3s}.back-btn:hover{background:linear-gradient(135deg,#00d4ff,#00b8d9);box-shadow:0 6px 20px #00d4ff4d}.zoomed-title{font-family:var(--font-display);text-align:center;background:linear-gradient(135deg, #00d4ff, var(--color-emma));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:2.5rem;font-weight:800}.calendar-grid.zoomed,.calendar-grid.zoomed .weekday-headers,.calendar-grid.zoomed .weeks,.calendar-grid.zoomed .week{gap:1rem}.calendar-grid.zoomed .day{aspect-ratio:1}.calendar-grid{flex-direction:column;gap:.5rem;margin-top:3.5rem;display:flex;position:relative}.calendar-with-events .calendar-grid{margin-top:0}.weekday-headers{grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.25rem;display:grid}.weekday{text-align:center;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:700;font-family:var(--font-display);padding:.4rem 0}.weeks{flex-direction:column;gap:.5rem;display:flex}.week{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.day{aspect-ratio:1;font-weight:700;font-family:var(--font-display);cursor:pointer;border:1px solid #0000;border-radius:.6rem;flex-direction:column;justify-content:flex-start;align-items:center;padding:2px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:visible;box-shadow:0 2px 8px #0000004d}.calendar-with-events{flex-direction:column;padding-top:3.5rem;display:flex;position:relative}.event-spanning-line{pointer-events:none;z-index:3;justify-content:space-between;align-items:center;height:2.5rem;padding:0 .5rem;display:flex;position:absolute;top:1.2rem;left:0;right:0}.event-line-text{color:#00d4ff;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:800;font-family:var(--font-display);text-align:center;word-wrap:break-word;background:linear-gradient(135deg,#0f1419fa 0%,#1a1f2efa 100%);border:1.5px solid #00d4ff;border-radius:.5rem;max-width:40%;padding:.4rem 1rem;line-height:1.2;box-shadow:0 4px 12px #00d4ff40,inset 0 0 8px #00d4ff1a}.event-line-connector{background:linear-gradient(90deg,#00d4ff 0%,#00d4ff80 100%);flex:1;height:2px;position:relative}.event-line-connector.start{margin-right:.5rem}.event-line-connector.end{background:linear-gradient(90deg,#00d4ff80 0%,#00d4ff 100%);margin-left:.5rem}.event-line-connector:before,.event-line-connector:after{content:"";background:#00d4ff;border-radius:50%;width:6px;height:6px;position:absolute;top:-2px}.event-line-connector.start:after{right:-3px}.event-line-connector.end:before{left:-3px}.day.event-start,.day.event-middle,.day.event-end{background-clip:padding-box;position:relative}.day.event-start:before,.day.event-middle:before,.day.event-end:before{content:"";z-index:2;background:linear-gradient(90deg,#00d4ff 0%,#00d4ffcc 100%);height:3px;position:absolute;top:50%;left:0;right:0}.day.event-start:before{left:50%}.day.event-end:before{background:linear-gradient(90deg,#00d4ffcc 0%,#00d4ff 100%);right:50%}.day.event-single-day:before{background:linear-gradient(90deg,#00d4ff 25%,#00d4ff66 50%,#00d4ff 75%)}.event-line-label{color:#00d4ff;text-transform:uppercase;letter-spacing:.02em;text-overflow:ellipsis;-webkit-line-clamp:2;z-index:1;-webkit-box-orient:vertical;font-size:.55rem;font-weight:700;line-height:1.1;display:-webkit-box;position:absolute;bottom:1px;left:2px;right:2px;overflow:hidden}.day.emma{background:linear-gradient(135deg, var(--color-emma), #ff6fa8);color:#fff}.day.phillip{background:linear-gradient(135deg, var(--color-phillip), #42a5f5);color:#fff}.day.empty{box-shadow:none;cursor:default;background:0 0;border:none}.day:not(.empty):hover{z-index:5;transform:scale(1.08);box-shadow:0 6px 20px #00000080}.day-number{z-index:2;margin-bottom:.25rem;font-size:1.2rem;font-weight:900;position:relative}.day.handoff{border:1px solid #ffffff4d;box-shadow:inset 0 0 12px #00000080}.day.trip-event{border:2px solid #fbbf24!important;box-shadow:0 0 14px #fbbf2459,0 2px 8px #0000004d!important}.day.special-day{border:2px solid #06b6d4!important;box-shadow:0 0 12px #06b6d44d,0 2px 8px #0000004d!important}.school-break-indicator{background:#f59e0b;border-radius:0 2px 2px 0;width:8px;height:8px;position:absolute;bottom:2px;right:2px;box-shadow:0 0 6px #f59e0b99}.event-labels{z-index:1;flex-direction:column;gap:1px;font-size:.6rem;display:flex;position:absolute;bottom:2px;left:2px;right:2px}.event-label{color:var(--color-bg-dark);white-space:nowrap;text-overflow:ellipsis;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fbbf24e6;border-radius:2px;padding:2px 4px;font-weight:800;line-height:1.1;overflow:hidden}.event-label-multi{color:#fff;white-space:nowrap;text-overflow:ellipsis;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e88e5e6;border-radius:2px;padding:2px 4px;font-size:.65rem;font-weight:700;line-height:1.1;overflow:hidden}.day-tooltip{color:#fff;z-index:10;pointer-events:none;white-space:normal;background:#000000f2;border:1px solid #fff3;border-radius:.75rem;max-width:200px;margin-bottom:.75rem;padding:.75rem 1rem;font-size:.8rem;font-weight:700;animation:.2s fadeInUp;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.tooltip-line{padding:2px 0}.tooltip-line.event-tooltip{color:#fbbf24;font-style:italic}.tooltip-line.school-break-tooltip{color:#f59e0b;font-style:italic}.day-tooltip:after{content:"";border:5px solid #0000;border-top-color:#000000f2;position:absolute;top:100%;left:50%;transform:translate(-50%)}.calendar-footer{text-align:center;color:var(--color-text-tertiary);letter-spacing:.05em;background:#0f141980;border-top:1px solid #ffffff14;padding:1.5rem 2rem;font-size:.8rem}.calendar-main::-webkit-scrollbar{width:8px}.calendar-main::-webkit-scrollbar-track{background:0 0}.calendar-main::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.calendar-main::-webkit-scrollbar-thumb:hover{background:#fff3}@media (width<=1024px){.header-content{flex-direction:column;align-items:flex-start;gap:1.5rem}.header-title h1{font-size:2.5rem}.range-select{width:100%}.month-header h2{font-size:1.8rem}}@media (width<=640px){.header-title h1{font-size:2rem}.calendar-header,.summer-editor,.calendar-main{padding:1rem}.month-header h2{font-size:1.4rem}.nav-btn{width:2.5rem;height:2.5rem;font-size:1.2rem}.day-number{font-size:1rem}.weekday{font-size:.7rem}}@media print{.modern-calendar{min-height:unset;color:#000!important;background:#fff!important}.calendar-header{box-shadow:none;border-bottom:1px solid #ccc;border-radius:0;background:#fff!important}.header-controls,.no-print{display:none!important}.calendar-main{padding:1rem;overflow:visible!important}.months-grid{gap:1rem;grid-template-columns:repeat(2,1fr)!important}.month-container{break-inside:avoid;page-break-inside:avoid;border-radius:.5rem;box-shadow:none!important;background:#fff!important;border:1px solid #ccc!important}.day{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.legend-rules,.calendar-footer{display:none}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.z-50{z-index:50}.float-left{float:left}.container{width:100%}.mx-auto{margin-inline:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.min-h-screen{min-height:100vh}.w-full{width:100%}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.text-center{text-align:center}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:opacity-80:hover{opacity:.8}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media print{body{background:#fff}.no-print{display:none!important}.calendar-grid{page-break-inside:avoid;break-inside:avoid}.day{-webkit-print-color-adjust:exact;print-color-adjust:exact;page-break-inside:avoid}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
