@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--papa-color: #3b82f6;--papa-bg: #eff6ff;--mama-color: #f43f5e;--mama-bg: #fff1f2;--bg-color: #f8fafc;--surface-color: #ffffff;--holiday-bg: #ecfccb;--text-main: #0f172a;--text-muted: #64748b;--border: #e2e8f0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased}.app-container{max-width:1000px;margin:0 auto;padding:2rem}header{margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 4px 12px #00000008}.header-top{display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.logo{display:flex;align-items:center;gap:.75rem;color:var(--papa-color)}.logo h1{font-size:1.5rem;font-weight:800;margin:0;background:linear-gradient(135deg,var(--papa-color),var(--mama-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header-actions{display:flex;align-items:center;gap:.5rem;background:#f8fafc;padding:.4rem;border-radius:12px}.header-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border:none;background:transparent;color:#64748b;font-weight:600;font-size:.9rem;border-radius:8px;transition:all .2s}.header-btn:hover{background:#f1f5f9;color:var(--text-main)}.header-btn.active{background:#fff;color:var(--papa-color);box-shadow:0 2px 4px #0000000d}.nav-divider{width:1px;height:24px;background:#e2e8f0;margin:0 .5rem}.print-controls-wrapper{margin:1.5rem 0;display:flex;justify-content:flex-start;padding:1rem 1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000005}.print-controls{display:flex;align-items:flex-end;gap:1.5rem}.print-controls .input-group label{font-size:.75rem;color:#64748b;margin-bottom:4px}.create-btn{background:var(--papa-bg)!important;color:var(--papa-color)!important}.create-btn:hover{background:#dbeafe!important}.request-btn{position:relative;background:transparent;border:none;color:#64748b;padding:.5rem;border-radius:8px;transition:all .2s}.request-btn:hover{background:#f1f5f9;color:var(--mama-color)}.request-btn .badge{position:absolute;top:-2px;right:-2px;background:var(--mama-color);color:#fff;font-size:.7rem;padding:2px 6px;border-radius:10px;border:2px solid white}.user-profile{display:flex;align-items:center;gap:1rem;margin-left:1rem;padding-left:1rem;padding-right:.5rem;border-left:1px solid #e2e8f0}.section-subtitle{font-size:1.25rem;font-weight:700;margin-top:.5rem;margin-bottom:.5rem;color:var(--text-main)}.settings-hint{color:#64748b;font-size:.9rem;margin-bottom:1.5rem}.empty-state{padding:1.5rem;background:#f8fafc;border-radius:8px;text-align:center;color:#94a3b8;font-size:.9rem}.ical-group{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}.ical-group input{flex:1;background:#f8fafc!important}.user-info{display:flex;flex-direction:column;text-align:right}.user-role{font-size:.75rem;font-weight:700;color:var(--text-main)}.user-email{font-size:.7rem;color:#64748b}.logout-btn-minimal{background:#fff1f2;color:#f43f5e;border:none;padding:.5rem;border-radius:8px;transition:all .2s}.logout-btn-minimal:hover{background:#ffe4e6;transform:translateY(-1px)}.add-special-day-box .input-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.add-special-day-box .input-group{margin-bottom:0}.calendar-card{background:var(--surface-color);border-radius:16px;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000003;padding:2rem;overflow:hidden}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.calendar-header button{background:#fff;border:1px solid var(--border);border-radius:8px;padding:.5rem 1rem;cursor:pointer;font-weight:600;color:var(--text-main);transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.calendar-header button:hover{background:var(--bg-color);border-color:#cbd5e1}.calendar-header h2{font-size:1.5rem;font-weight:600;text-transform:capitalize}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:1rem;text-align:center;font-weight:600;color:var(--text-muted);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;grid-auto-rows:minmax(100px,auto)}.day-cell{background:var(--surface-color);border:1px solid var(--border);border-radius:12px;padding:.5rem;position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;min-height:100px;display:flex;flex-direction:column}.day-cell.holiday{background:var(--holiday-bg)}.day-cell:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a}.day-cell.empty{background:transparent;border:none;pointer-events:none}.date-number{font-weight:600;font-size:1rem;z-index:2;position:relative;margin-bottom:.5rem;display:flex;justify-content:space-between}.holiday-indicator{font-size:.7rem;color:#3f6212;background:#d9f99d;padding:.1rem .3rem;border-radius:4px;font-weight:500}.parent-indicator{flex:1;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;color:#fff;z-index:2;position:relative}.parent-indicator.papa{background-color:var(--papa-color)}.parent-indicator.mama{background-color:var(--mama-color)}.parent-indicator.exception{color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.5);font-style:italic;font-weight:800}.parent-indicator.exception.papa,.mini-day.exception.papa{background:repeating-linear-gradient(45deg,var(--papa-color),var(--papa-color) 8px,color-mix(in srgb,var(--papa-color) 85%,black) 8px,color-mix(in srgb,var(--papa-color) 85%,black) 16px)}.parent-indicator.exception.mama,.mini-day.exception.mama{background:repeating-linear-gradient(45deg,var(--mama-color),var(--mama-color) 8px,color-mix(in srgb,var(--mama-color) 85%,black) 8px,color-mix(in srgb,var(--mama-color) 85%,black) 16px)}.switch-day-container{display:flex;flex-direction:column;flex:1;position:relative;border-radius:6px;overflow:hidden}.half-day{flex:1;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem}.half-day.papa{background:var(--papa-color)}.half-day.mama{background:var(--mama-color)}.legend{display:flex;justify-content:center;gap:2rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:.5rem;font-weight:500}.legend-color{width:16px;height:16px;border-radius:4px}.legend-color.papa{background:var(--papa-gradient)}.legend-color.mama{background:var(--mama-gradient)}.legend-color.holiday{background:var(--holiday-bg);border:1px solid #84cc16}.print-controls-card{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 4px 6px -1px #0000000d;border:1px solid var(--border)}.print-controls-card h3{margin-bottom:1rem;font-size:1.1rem}.print-controls{display:flex;gap:1.5rem;align-items:flex-end}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.875rem;font-weight:600;color:var(--text-muted)}.input-group input{padding:.5rem;border:1px solid var(--border);border-radius:6px;width:100%;font-family:inherit}.print-controls .input-group input{width:100px}.print-button{background:var(--text-main);color:#fff;border:none;border-radius:6px;padding:.6rem 1.2rem;cursor:pointer;font-weight:600;display:flex;align-items:center;gap:.5rem;transition:opacity .2s}.print-button:hover{opacity:.9}.print-container{display:none}.year-view-page{width:100%}.year-title{text-align:center;font-size:1.5rem;margin-bottom:.5rem;color:var(--text-main)}.months-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.mini-month{border:1px solid var(--border);border-radius:8px;padding:.25rem;background:#fff}.mini-month-title{text-align:center;font-size:.9rem;margin-bottom:.25rem;text-transform:capitalize}.mini-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.55rem;font-weight:700;color:var(--text-muted);margin-bottom:.1rem}.mini-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;grid-auto-rows:1fr}.mini-day{position:relative;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;background:var(--surface-color);border:1px solid var(--border);aspect-ratio:1;overflow:hidden}.mini-day.empty{background:transparent;border:none}.mini-day.holiday{border:2px solid #84cc16}.mini-day.papa{background:var(--papa-color);color:#fff}.mini-day.mama{background:var(--mama-color);color:#fff}.mini-half{position:absolute;top:0;bottom:0;width:100%}.mini-half.from{clip-path:polygon(0 0,100% 0,0 100%)}.mini-half.to{clip-path:polygon(100% 0,100% 100%,0 100%)}.mini-half.papa{background:var(--papa-color)}.mini-half.mama{background:var(--mama-color)}.mini-date-number{z-index:2;position:relative}.print-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:.5rem;font-size:.75rem;border-top:1px solid var(--border);padding-top:.5rem}.switch-legend-icon{width:16px;height:16px;position:relative;border-radius:4px;overflow:hidden}.top-controls{display:flex;justify-content:flex-end;margin-bottom:1rem}.toggle-view-btn{background:#fff;border:1px solid var(--border);border-radius:8px;padding:.6rem 1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:var(--text-main);transition:all .2s;box-shadow:0 2px 4px #0000000d}.toggle-view-btn:hover{background:var(--bg-color);border-color:#cbd5e1}.settings-card{background:var(--surface-color);border-radius:16px;box-shadow:0 10px 25px -5px #0000000d;padding:2rem}.settings-title{font-size:1.8rem;margin-bottom:2rem;border-bottom:2px solid var(--border);padding-bottom:1rem}.settings-section{margin-bottom:2.5rem}.settings-section h3{font-size:1.2rem;margin-bottom:1rem;color:var(--text-main)}.input-row{display:flex;gap:1.5rem;flex-wrap:wrap}.input-row .input-group{flex:1;min-width:200px}.input-group select{padding:.5rem;border:1px solid var(--border);border-radius:6px;background:#fff;font-family:inherit}.checkbox-group{flex-direction:row!important;align-items:center}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-group label{cursor:pointer}.summer-inputs{margin-top:1rem;background:var(--bg-color);padding:1rem;border-radius:8px}.settings-hint{font-size:.85rem;color:var(--text-muted);margin-top:.5rem;font-style:italic}.special-days-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.special-day-row{display:flex;justify-content:space-between;align-items:center;background:var(--bg-color);padding:1rem;border-radius:8px;border:1px solid var(--border)}.special-day-detail{font-size:.85rem;color:var(--text-muted)}.remove-btn{background:#fef2f2;color:#ef4444;border:1px solid #fecaca;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.remove-btn:hover{background:#fee2e2}.empty-state{color:var(--text-muted);font-style:italic;padding:1rem;text-align:center;background:var(--bg-color);border-radius:8px}.add-special-day-box{background:var(--bg-color);padding:1.5rem;border-radius:8px;border:1px dashed #cbd5e1}.add-special-day-box h4{margin-bottom:1rem;font-size:1rem}.flex-1{flex:1}.flex-2{flex:2}.align-end{align-items:flex-end}.mt-2{margin-top:1rem}.add-btn{background:var(--text-main);color:#fff;border:none;border-radius:6px;padding:.6rem 1.5rem;font-weight:600;cursor:pointer}.add-btn:hover{opacity:.9}.day-cell.selected{background:var(--papa-bg);border:2px solid var(--papa-color);z-index:10}.legend-color.selected{background:var(--papa-bg);border:2px solid var(--papa-color)}.today-btn{background:var(--bg-color)!important;color:var(--text-main)!important;border:1px solid var(--border)!important;font-size:.85rem!important;padding:.4rem .8rem!important}.today-btn:hover{background:#fff!important;border-color:#cbd5e1!important}.day-cell.holiday{background:#f0f9ff!important}.holiday-indicator{display:block;font-size:.6rem;color:#0369a1;font-weight:700;text-transform:uppercase;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-list-view{display:flex;flex-direction:column;gap:.75rem;padding:1rem 0}.list-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#fff;border-radius:12px;border-left:5px solid #e2e8f0;box-shadow:0 2px 4px #0000000d}.list-item.papa{border-left-color:var(--papa-color)}.list-item.mama{border-left-color:var(--mama-color)}.list-item.exception{border-left-style:dashed;background:#fffbeb}.period-dates{display:flex;flex-direction:column}.date-range{font-weight:700;color:var(--text-main);font-size:1rem}.day-count{font-size:.75rem;color:#64748b}.period-content{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.parent-badge{display:flex;align-items:center;gap:.4rem;padding:.25rem .6rem;background:#f1f5f9;border-radius:20px;font-size:.8rem;font-weight:600}.list-item.papa .parent-badge{background:var(--papa-bg);color:var(--papa-color)}.list-item.mama .parent-badge{background:var(--mama-bg);color:var(--mama-color)}.exception-note,.switch-note{display:flex;align-items:center;gap:.3rem;font-size:.7rem;color:#64748b}.exception-note{color:#b45309;font-weight:600}@media (max-width: 768px){.header-top{flex-direction:column;align-items:center!important;text-align:center;gap:1rem}.header-actions{width:100%;justify-content:center;flex-wrap:wrap;gap:.25rem}.header-btn span{display:none}.header-btn{padding:.6rem}.user-profile{margin-left:0;padding-left:0;border-left:none}.user-info{display:none}.calendar-header{flex-direction:column;gap:1rem;align-items:flex-start!important}.calendar-header h2{font-size:1.25rem}.view-toggle{margin-left:0!important}}@media print{@page{size:A4 portrait;margin:.5cm}body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:12px}.screen-container{display:none!important}.print-container{display:block!important}.year-view-page{page-break-after:always;break-after:page}.year-view-page:last-child{page-break-after:auto;break-after:auto}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:20px}.auth-card{background:#fff;border-radius:24px;box-shadow:0 20px 40px #0000001a;width:100%;max-width:420px;padding:40px;animation:slideUp .6s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{background:#3b82f6;color:#fff;width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 8px 16px #3b82f64d}.auth-header h1{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 8px;background:none;-webkit-text-fill-color:initial}.auth-header p{color:#6b7280;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-error{background:#fee2e2;color:#ef4444;padding:12px;border-radius:12px;font-size:13px;text-align:center;border:1px solid #fecaca}.auth-form .input-group{position:relative;display:flex;flex-direction:column}.auth-form .input-icon{position:absolute;left:14px;top:14px;color:#9ca3af;z-index:5}.auth-form input,.auth-form select{width:100%!important;padding:12px 16px 12px 44px!important;border:2px solid #f3f4f6!important;border-radius:12px!important;font-size:15px!important;transition:all .2s!important;background:#f9fafb!important;outline:none!important}.auth-form input:focus,.auth-form select:focus{border-color:#3b82f6!important;background:#fff!important;box-shadow:0 0 0 4px #3b82f61a!important}.auth-button{margin-top:8px;background:#3b82f6;color:#fff;border:none;padding:14px;border-radius:12px;font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s}.auth-button:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb33}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-footer{margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:12px}.toggle-auth{background:none;border:none;color:#3b82f6;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;padding:4px}.toggle-auth:hover{color:#2563eb;text-decoration:underline}.toggle-auth-small{background:none;border:none;color:#64748b;font-size:13px;cursor:pointer;transition:all .2s}.toggle-auth-small:hover{color:#1f2937;text-decoration:underline}.invite-hint{display:block;font-size:11px;color:#9ca3af;margin-top:4px;margin-left:4px;text-align:left}.loading-screen{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f9fafb}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.user-badge{display:flex;align-items:center;gap:12px;background:#fff;padding:6px 12px;border-radius:12px;box-shadow:0 2px 4px #0000000d}.role-tag{font-size:11px;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:6px;background:#eff6ff;color:#1d4ed8}.email-tag{font-size:13px;color:#4b5563}.logout-btn{background:none;border:none;color:#9ca3af;cursor:pointer;display:flex;align-items:center;padding:4px;border-radius:6px;transition:all .2s}.logout-btn:hover{background:#fee2e2;color:#ef4444}.invite-banner{margin-top:12px;background:#f0fdf4;border:1px solid #dcfce7;color:#166534;padding:8px 16px;border-radius:8px;font-size:14px;display:inline-block}.invite-banner code{background:#fff;padding:2px 6px;border-radius:4px;font-weight:700;margin-left:4px;border:1px solid #bbf7d0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}.modal-container{background:#fff;width:100%;max-width:500px;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:1.125rem;color:#111827}.modal-content{padding:1.5rem}.close-btn{background:#f3f4f6;border:none;padding:6px;border-radius:8px;cursor:pointer;color:#6b7280;transition:all .2s}.close-btn:hover{background:#e5e7eb;color:#111827}.cancel-btn{background:#fff;border:1px solid #d1d5db;padding:.5rem 1rem;border-radius:8px;font-weight:600;cursor:pointer;color:#374151}.request-card{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:#f9fafb;border-radius:12px;margin-bottom:1rem;border:1px solid #e5e7eb}.request-card.pending{border-left:4px solid #f59e0b}.request-icon{background:#eff6ff;color:#3b82f6;padding:10px;border-radius:10px}.request-info{flex:1}.request-info p{margin:4px 0 0;font-size:.875rem;color:#6b7280}.request-actions{display:flex;flex-direction:column;gap:.5rem}.approve-btn{background:#2ecc71;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-weight:600;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:4px}.reject-btn{background:#fee2e2;color:#ef4444;border:none;padding:6px 12px;border-radius:6px;font-weight:600;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:4px}.badge{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;padding:2px 6px;border-radius:10px;border:2px solid white}.nav-btn-container{position:relative}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.status-tag{font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:6px;display:flex;align-items:center;gap:4px}.status-tag.approved{background:#dcfce7;color:#166534}.status-tag.pending{background:#fef3c7;color:#92400e}.requester-label{font-size:12px;color:#9ca3af;font-style:italic}.icon-btn{background:none;border:none;padding:8px;border-radius:8px;cursor:pointer;color:#9ca3af;transition:all .2s}.icon-btn.delete:hover{background:#fee2e2;color:#ef4444}.loading-overlay{position:relative}.loading-overlay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff80;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:10;border-radius:inherit}
