code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.App{min-height:100vh;text-align:center}.login-container{align-items:center;background-color:#f5f5f5;display:flex;height:100vh;justify-content:center}.login-form-container{background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a;max-width:400px;padding:2rem;width:100%}.login-form{gap:1rem;margin-bottom:1.5rem}.form-group,.login-form{display:flex;flex-direction:column}.form-group{text-align:left}.form-group label{font-weight:500;margin-bottom:.5rem}.form-group input{border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:.75rem}.login-button{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .2s}.login-button:hover{background-color:#3367d6}.login-button:disabled{background-color:#a4a4a4;cursor:not-allowed}.error-message{background-color:#ffebee;border-radius:4px;color:#d32f2f;margin-bottom:1rem;padding:.5rem}.login-info{border-top:1px solid #eee;margin-top:2rem;padding-top:1rem;text-align:left}.login-info ul{padding-left:1.5rem}.app-header,.family-tree-page{padding:1rem}.app-header{align-items:center;background-color:#006495;border-radius:4px;box-shadow:0 1px 2px #0000004d,0 1px 3px 1px #00000026;color:#fff;display:flex;justify-content:space-between;margin-bottom:1rem}.app-header h1{font-size:1.5rem;font-weight:500;letter-spacing:.1px;margin:0}.family-tree-container{margin-bottom:2rem}.instruction-text{background-color:#e8f0fe;border-left:4px solid #4285f4;border-radius:0 4px 4px 0;color:#333;font-size:.9rem;margin-bottom:1rem;padding:.8rem 1rem;text-align:left}.canvas-container{min-height:500px;position:relative}.canvas-container,.canvas-container canvas{height:100%;width:100%}.tree-controls{background-color:#ffffffe6;border-radius:4px;box-shadow:0 2px 4px #0003;padding:8px}.tree-controls button{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;transition:background-color .2s}.tree-controls button:hover{background-color:#3367d6}.detail-popup{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.controls-panel{align-items:center;background-color:#fff;border-radius:8px;box-shadow:0 1px 2px #0000004d;display:flex;gap:1rem;justify-content:space-between;margin-bottom:2rem;padding:1rem}.data-controls,.member-controls{display:flex;flex-wrap:wrap;gap:.75rem}.data-controls:after{background-color:#e0e0e0;content:"";height:24px;margin:0 1rem;width:1px}.control-button,.primary-button{align-items:center;border:none;border-radius:9999px;cursor:pointer;display:inline-flex;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;height:2.5rem;justify-content:center;letter-spacing:.1px;padding:0 1.5rem;transition:all .25s ease}.control-button{background-color:#fff;border:1px solid #006495;color:#006495}.control-button:hover{background-color:#00649514;box-shadow:0 1px 2px #0000004d,0 1px 3px 1px #00000026}.primary-button{background-color:#006495;border:none;border-radius:9999px;box-shadow:0 1px 2px #00000026;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-left:.5rem;padding:.75rem 2rem;transition:background .2s,box-shadow .2s}.primary-button:hover{background-color:#004b70}.cancel-btn,.secondary-button{background:#fff;border:2px solid #006495;border-radius:9999px;color:#006495;cursor:pointer;font-size:1rem;font-weight:500;margin-left:.5rem;padding:.75rem 2rem;transition:background .2s,color .2s,border .2s}.cancel-btn:hover,.secondary-button:hover{background:#f0f8ff;border-color:#004b70;color:#004b70}.logout-button{align-items:center;background-color:#ffffff1a;border:1px solid #ffffff4d;border-radius:9999px;color:#fff;cursor:pointer;display:inline-flex;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;height:2.25rem;justify-content:center;letter-spacing:.1px;padding:0 1rem;transition:all .25s ease}.logout-button:hover{background-color:#fff3}.user-controls{align-items:center;display:flex}.control-button:disabled,.logout-button:disabled,.primary-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.38}.control-button:active,.logout-button:active,.primary-button:active{transform:translateY(1px)}.control-button:focus-visible,.logout-button:focus-visible,.primary-button:focus-visible{outline:2px solid #fff;outline-offset:2px}.family-data-container{display:flex;flex-direction:column;gap:2rem}.family-units-container,.members-list-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem;padding:1.5rem}.family-units-container h3,.members-list-container h3{border-bottom:1px solid #eee;color:#4285f4;margin-bottom:1rem;margin-top:0;padding-bottom:.5rem}.family-units-table,.members-table{border-collapse:collapse;width:100%}.family-units-table td,.family-units-table th,.members-table td,.members-table th{border-bottom:1px solid #eee;padding:.75rem;text-align:left}.family-units-table th,.members-table th{background-color:#f8f9fa;font-weight:500}.family-units-table tr:hover,.members-table tr:hover{background-color:#f8f9fa}.action-button{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;margin-right:.5rem;padding:.4rem .8rem;transition:background-color .2s}.edit-button{background-color:#fbbc04;color:#fff}.edit-button:hover{background-color:#f9ab00}.delete-button{background-color:#ea4335;color:#fff}.delete-button:hover{background-color:#d93025}.add-button{background-color:#34a853;color:#fff}.add-button:hover{background-color:#2e7d32}.relationship-form-container{max-width:100%}.relationship-form{display:flex;flex-direction:column;gap:1.5rem}.relationship-form .form-row{display:flex;flex-wrap:wrap;gap:1rem}.relationship-form .form-group{flex:1 1;min-width:200px}.relationship-form select{border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.relationship-form .form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-container{animation:modalFadeIn .3s ease-out;background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;max-height:90vh;overflow-y:auto;width:100%}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1rem 1.5rem}.modal-title{color:#4285f4;font-size:1.5rem;margin:0}.modal-close{background:none;border:none;color:#5f6368;cursor:pointer;font-size:1.5rem}.modal-content{padding:1.5rem}.individual-form-container{max-width:100%}.individual-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:flex;flex-wrap:wrap;gap:1rem}.form-group{flex:1 1;min-width:200px}.form-group.full-width{flex-basis:100%;width:100%}.form-group input,.form-group select,.form-group textarea{border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.form-group textarea{resize:vertical}.checkbox-group,.checkbox-group label{align-items:center;display:flex}.checkbox-group label{cursor:pointer}.checkbox-group input{margin-right:.5rem;width:auto}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.submit-btn{background-color:#006495;border:none;border-radius:9999px;box-shadow:0 1px 2px #00000026;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 2rem;transition:background .2s,box-shadow .2s}.submit-btn:hover{background-color:#004b70}.cancel-btn{background:#fff;border:2px solid #006495;border-radius:9999px;color:#006495;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 2rem;transition:background .2s,color .2s,border .2s}.cancel-btn:hover{background:#f0f8ff;border-color:#004b70;color:#004b70}.confirmation-dialog{text-align:center}.confirmation-dialog p{margin-bottom:1.5rem}.confirmation-actions{display:flex;gap:1rem;justify-content:center}.data-summary{background-color:#f8f9fa;border-radius:4px;box-shadow:0 1px 3px #0000001a;padding:1rem;text-align:left}.data-summary h3{color:#4285f4;margin-top:0}.data-summary ul{padding-left:1.5rem}.loading{align-items:center;color:#4285f4;display:flex;font-size:1.2rem;height:100vh;justify-content:center}@media (max-width:768px){.app-header{flex-direction:column;gap:1rem}.controls-panel{align-items:stretch;flex-direction:column}.data-controls,.member-controls{justify-content:center}.data-controls:after{display:none}.control-button,.primary-button{flex:1 1;min-width:150px}.canvas-container{max-width:100%;overflow-x:auto}.family-data-container{flex-direction:column}}.view-tabs{display:flex;gap:1rem;justify-content:center;margin-bottom:1rem;padding:0 1rem}.tab-button{align-items:center;background-color:#fff;border:1px solid #006495;border-radius:9999px;color:#006495;cursor:pointer;display:inline-flex;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;height:2.5rem;justify-content:center;letter-spacing:.1px;min-width:120px;padding:0 1.5rem;transition:all .25s ease}.tab-button:hover{background-color:#00649514}.tab-button.active{background-color:#006495;box-shadow:0 1px 2px #0000004d,0 1px 3px 1px #00000026;color:#fff}.view-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 2px #0000004d;min-height:500px;padding:1rem}.photo-upload-section{align-items:flex-start;display:flex;gap:2rem;margin-bottom:2rem}.profile-photo-container{align-items:center;display:flex;justify-content:center;min-height:80px;min-width:80px}.profile-photo-placeholder span,.profile-photo-preview img{align-items:center;background:#e3f2fd;border-radius:50%;color:#006495;display:flex;font-size:2.5rem;height:80px;justify-content:center;width:80px}.photo-upload-controls{display:flex;flex-direction:column;gap:.5rem;justify-content:center}.photo-help-text{color:#888;font-size:.9rem}
/*# sourceMappingURL=main.c6e4cbb3.css.map*/