:root{--dad-color: #4a90e2;--mom-color: #e24a8d;--neutral-color: #f5f5f5;--border-color: #ddd;--text-color: #333;--accent-color: #42b983;--hover-color: #eee;--error-color: #e74c3c}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Roboto,Helvetica Neue,sans-serif;color:var(--text-color);line-height:1.6;background-color:#f9f9f9}.app-container{max-width:800px;margin:0 auto;padding:1rem}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}header h1{font-size:1.8rem;font-weight:500}.user-section{display:flex;align-items:center;gap:1rem}.logout-button{background:none;border:none;color:var(--accent-color);cursor:pointer;padding:.25rem .5rem;border-radius:4px}.logout-button:hover{background-color:var(--hover-color)}main{margin-top:1rem}.controls{display:flex;flex-direction:column;margin-bottom:1rem;gap:.5rem}.date-navigation{display:flex;align-items:center;justify-content:space-between}.date-navigation h2{font-size:1.2rem;font-weight:500}.nav-button{background:none;border:1px solid var(--border-color);border-radius:4px;padding:.25rem .5rem;cursor:pointer}.nav-button:hover{background-color:var(--hover-color)}.action-buttons{display:flex;gap:.5rem}.action-button{background-color:var(--accent-color);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;flex:1}.action-button:hover{opacity:.9}.calendar{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background-color:#fff}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:500;background-color:var(--neutral-color);border-bottom:1px solid var(--border-color)}.weekday{padding:.5rem}.days{display:grid;grid-template-columns:repeat(7,1fr)}.day{position:relative;min-height:80px;padding:.5rem;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.day:hover{background-color:var(--hover-color)}.day:nth-child(7n){border-right:none}.day:last-child{border-bottom:none}.other-month{opacity:.5}.day-number{font-weight:500}.dad-day{background-color:#4a90e233}.mom-day{background-color:#e24a8d33}.today{box-shadow:inset 0 0 0 2px var(--accent-color)}.custody-indicator{display:block;margin-top:.25rem;font-size:.8rem;padding:.1rem .25rem;border-radius:3px;text-align:center}.dad-day .custody-indicator{background-color:var(--dad-color);color:#fff}.mom-day .custody-indicator{background-color:var(--mom-color);color:#fff}.date-details{margin-top:1.5rem;padding:1rem;border:1px solid var(--border-color);border-radius:8px;background-color:#fff}.date-details h3{margin-bottom:.5rem}.notes-section{margin-top:1rem}.notes-section h4{margin-bottom:.5rem}.notes-section textarea{width:100%;min-height:100px;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;resize:vertical}.date-actions{display:flex;gap:.5rem;margin-top:1rem}.swap-button{background-color:var(--text-color);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer}.auth-container{max-width:400px;margin:2rem auto;padding:1.5rem;border:1px solid var(--border-color);border-radius:8px;background-color:#fff}.auth-container h2{margin-bottom:1.5rem;text-align:center}.input-group{margin-bottom:1rem}.input-group label{display:block;margin-bottom:.25rem}.input-group input{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px}.checkbox-group{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.primary-button{width:100%;background-color:var(--accent-color);color:#fff;border:none;border-radius:4px;padding:.5rem;margin-bottom:.5rem;cursor:pointer}.secondary-button{width:100%;background-color:transparent;color:var(--accent-color);border:1px solid var(--accent-color);border-radius:4px;padding:.5rem;cursor:pointer}.error-message{color:var(--error-color);margin-top:1rem;text-align:center}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:1.5rem;border-radius:8px;max-width:90%;width:500px;max-height:90vh;overflow-y:auto}.modal-content h3{margin-bottom:1rem;text-align:center}.config-group{margin-bottom:1.5rem}.config-group label{display:block;margin-bottom:.5rem;font-weight:500}.radio-group{display:flex;gap:1rem}.weekday-config{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.5rem;border:1px solid var(--border-color);border-radius:4px}.weekday-config select{padding:.25rem;border:1px solid var(--border-color);border-radius:4px}.modal-actions{margin-top:1.5rem;text-align:right}.install-prompt,.ios-install-prompt{position:fixed;bottom:0;left:0;right:0;background-color:#fff;box-shadow:0 -2px 10px #0000001a;z-index:100}.install-content{max-width:800px;margin:0 auto;padding:1rem}.install-content ol{margin:1rem 0 1rem 1.5rem}.install-content li{margin-bottom:.5rem}.ios-share-icon{display:inline-block;background-color:#007aff;color:#fff;width:24px;height:24px;text-align:center;line-height:24px;border-radius:4px;margin-left:4px}.install-buttons{display:flex;gap:1rem;margin-top:1rem}@media (max-width: 768px){.date-navigation h2{font-size:1rem}.action-buttons{flex-wrap:wrap}.day{min-height:60px;padding:.25rem}.custody-indicator{font-size:.7rem}.date-actions{flex-wrap:wrap}.modal-content{padding:1rem}}
