@import url(https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap);*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.hidden{display:none}.h-dvh{height:100dvh}.grow{flex-grow:1}.grow-0{flex-grow:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.border{border-width:1px}.lowercase{text-transform:lowercase}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.header .family-tree-name h1{color:#1e293b}.body .form-container{background:#fff;border:1px solid #e2e8f0}.body .form-container .form-title{color:#1e293b}.body .form-container .input-mode-toggle{border-bottom:2px solid #e2e8f0}.body .form-container .input-mode-toggle button{color:#64748b}.body .form-container .input-mode-toggle button.active{border-bottom-color:#7c3aed;color:#7c3aed}.body .form-container .form-group label,.body .form-container .input-mode-toggle button:not(.active):hover{color:#1e293b}.body .form-container .form-group input,.body .form-container .form-group select{border:1px solid #e2e8f0;color:#1e293b}.App.dark .body .form-container .form-group input,.App.dark .body .form-container .form-group select{color:#1e293b}.body .form-container .form-group input::placeholder,.body .form-container .form-group select::placeholder{color:#64748b}.body .form-container .form-group input:focus,.body .form-container .form-group select:focus{border-color:#7c3aed}.body .form-container .form-group input:disabled,.body .form-container .form-group select:disabled{background:#f1f5f9}.body .form-container .form-group .input-hint{color:#64748b}.body .form-container .form-actions button.btn-primary{background:linear-gradient(135deg,#7c3aed,#06b6d4)}.body .form-container .form-actions button.btn-secondary{background-color:#f1f5f9;border:1px solid #e2e8f0;color:#1e293b}.body .form-container .form-actions button.btn-secondary:hover{background-color:#fff;border-color:#7c3aed}.body .form-container .error-message{border-left:4px solid #ef4444;color:#ef4444}.body .form-container .success-message{border-left:4px solid #10b981;color:#10b981}.footer{background-color:#0000001a;border-top:1px solid #0000001a;padding:1.5rem}.App.dark .footer{background-color:#ffffff05;border-top:1px solid #ffffff1a}.footer .footer-content{align-items:center;display:flex;flex-direction:column;gap:.5rem;margin:0 auto;max-width:1200px;text-align:center}@media(max-width:768px){.footer .footer-content{padding:1rem}}.footer .footer-text{font-size:.85rem;margin:0;opacity:.8}.footer .footer-links{align-items:center;display:flex;font-size:.8rem;gap:.5rem;justify-content:center}.footer .footer-links .footer-link{color:inherit;opacity:.8;text-decoration:none;transition:opacity .2s}.footer .footer-links .footer-link:hover{opacity:1;text-decoration:underline}.footer .footer-links .separator{opacity:.5}.family-tree-page{background:#0000;color:#1e293b;color:var(--text-primary);overflow:hidden;width:100%}.family-tree-page .page-header{align-items:center;background:#0000;border-bottom:1px solid #00ffa426;display:flex;justify-content:space-between;padding:1rem 1.5rem}.App.dark .family-tree-page .page-header{background:#0000;border-bottom-color:#94a3b833}.App.light .family-tree-page .page-header{background:#0000;border-bottom-color:#0000001a}.family-tree-page .page-header h1{font-size:1.5rem;font-weight:600;margin:0}.family-tree-page .page-header .slug-info{font-size:.85rem;margin:.25rem 0 0;opacity:.7}.family-tree-page .page-header .slug-info code{background:#7c3aed1a;border-radius:4px;color:#7c3aed;font-family:Courier New,monospace;padding:.2rem .5rem}.family-tree-page .page-header .header-search{margin-top:1rem;max-width:500px;width:100%}.family-tree-page .page-header .btn-home{background:#f1f5f9;background:var(--button-bg);border:1px solid #e2e8f0;border-radius:6px;color:#1e293b;color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.family-tree-page .page-header .btn-home:hover{background:#e2e8f0;background:var(--button-hover-bg);border-color:#cbd5e1}.App.dark .family-tree-page .page-header .btn-home{background:#334155;border-color:#475569}.App.dark .family-tree-page .page-header .btn-home:hover{background:#475569}.App.light .family-tree-page .page-header .btn-home{background:#f1f5f9;border-color:#cbd5e1}.App.light .family-tree-page .page-header .btn-home:hover{background:#e2e8f0}.family-tree-page .page-header .view-toggle{align-items:center;display:flex;gap:.5rem}.family-tree-page .page-header .view-toggle .toggle-btn{background:#f1f5f9;background:var(--button-bg);border:1.5px solid #e2e8f0;border:1.5px solid var(--border-color);border-radius:6px;color:#1e293b;color:var(--text-primary);cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.family-tree-page .page-header .view-toggle .toggle-btn:hover{background:#e2e8f0;background:var(--button-hover-bg);border-color:#7c3aed;border-color:var(--primary-color)}.family-tree-page .page-header .view-toggle .toggle-btn.active{background:#7c3aed;background:var(--primary-color);border-color:#7c3aed;border-color:var(--primary-color);color:#fff}.App.dark .family-tree-page .page-header .view-toggle .toggle-btn{border-color:#475569}.App.dark .family-tree-page .page-header .view-toggle .toggle-btn.active{background:#7c3aed;border-color:#7c3aed}.App.light .family-tree-page .page-header .view-toggle .toggle-btn{border-color:#cbd5e1}.App.light .family-tree-page .page-header .view-toggle .toggle-btn.active{background:#7c3aed;border-color:#7c3aed}.family-tree-page .tree-content{position:relative;width:100%}.family-tree-page .empty-container,.family-tree-page .error-container,.family-tree-page .loading-container{background:#fff;background:var(--bg-secondary)}.family-tree-page .tree-header{background:linear-gradient(135deg,#00ffa40d,#a668ff0d);border-bottom:1px solid #00ffa433;padding:1.5rem}.family-tree-page .tree-header .header-content h1{align-items:center;display:flex;font-size:1.8rem;font-weight:600;gap:.5rem;margin:0}.family-tree-page .tree-header .header-content .slug-info{font-size:.9rem;margin:.5rem 0 0;opacity:.7}.family-tree-page .tree-header .header-content .slug-info code{background-color:#00ffa41a;border-radius:4px;color:#00ffa4;font-family:Courier New,monospace;padding:.2rem .5rem}.family-tree-page .tree-toolbar{align-items:center;background-color:#ffffff0d;border-bottom:1px solid #00ffa41a;display:flex;gap:1rem;justify-content:space-between;padding:.75rem 1rem}.family-tree-page .tree-toolbar .toolbar-center,.family-tree-page .tree-toolbar .toolbar-left,.family-tree-page .tree-toolbar .toolbar-right{align-items:center;display:flex;gap:.75rem}.family-tree-page .tree-toolbar .toolbar-center{flex:1 1;justify-content:center}.family-tree-page .tree-toolbar .zoom-level-display{background-color:#00ffa41a;border:1px solid #00ffa433;border-radius:4px;color:#00ffa4;font-size:.85rem;font-weight:600;min-width:80px;padding:.35rem .75rem;text-align:center}.family-tree-page .tree-toolbar .member-count{color:inherit;color:var(--text);font-size:.9rem;opacity:.8}.family-tree-page .tree-toolbar .home-btn,.family-tree-page .tree-toolbar .reset-zoom-btn{background-color:#00ffa41a;border:1px solid #00ffa44d;border-radius:4px;color:#00ffa4;cursor:pointer;font-size:.85rem;padding:.5rem .75rem;transition:all .2s ease;white-space:nowrap}.family-tree-page .tree-toolbar .home-btn:hover:not(:disabled),.family-tree-page .tree-toolbar .reset-zoom-btn:hover:not(:disabled){background-color:#00ffa433;border-color:#00ffa499;transform:scale(1.05)}.family-tree-page .tree-toolbar .home-btn:active:not(:disabled),.family-tree-page .tree-toolbar .reset-zoom-btn:active:not(:disabled){transform:scale(.95)}.family-tree-page .tree-toolbar .home-btn:disabled,.family-tree-page .tree-toolbar .reset-zoom-btn:disabled{cursor:not-allowed;opacity:.5}.family-tree-page .tree-toolbar .home-btn{background:linear-gradient(135deg,#00ffa426,#a668ff26);border-color:#00ffa466}.family-tree-page .tree-toolbar .home-btn:hover:not(:disabled){background:linear-gradient(135deg,#00ffa440,#a668ff40);border-color:#00ffa4}.family-tree-page .tree-container{background-color:#291b29;flex:1 1;overflow:hidden;position:relative}.App.dark .family-tree-page .tree-container{background-color:#140a14}.family-tree-page .tree-container .family-tree-wrapper{height:100%;width:100%}.family-tree-page .tree-container .family-tree-wrapper .fancytree-container{background-color:#0000!important;color:inherit!important;color:var(--text)!important;font-family:Montserrat,sans-serif}.family-tree-page .tree-container .family-tree-wrapper .fancytree-node{color:inherit!important;color:var(--text)!important}.family-tree-page .tree-container .family-tree-wrapper .fancytree-node:hover .fancytree-title{background-color:#00ffa426;border-radius:4px}.family-tree-page .tree-container .family-tree-wrapper .fancytree-title{border-radius:2px;color:inherit!important;color:var(--text)!important;padding:.5rem .75rem;transition:all .2s}.family-tree-page .tree-container .family-tree-wrapper svg{stroke:#00ffa44d!important}.family-tree-page .tree-container .family-tree-wrapper line{stroke:#00ffa433!important}.family-tree-page .tree-footer{background-color:#ffffff08;border-top:1px solid #00ffa41a;font-size:.85rem;opacity:.7;padding:.75rem 1rem;text-align:center}.family-tree-page .loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;height:100%;justify-content:center}.family-tree-page .loading-container .spinner{display:inline-block;height:50px;position:relative;width:50px}.family-tree-page .loading-container .spinner div{animation:spinner 1.2s cubic-bezier(.5,0,.5,1) infinite;border:4px solid #00ffa4;border-radius:50%;box-sizing:border-box;display:block;height:40px;margin:5px;position:absolute;width:40px}.family-tree-page .loading-container .spinner div:first-child{animation-delay:-.45s}.family-tree-page .loading-container .spinner div:nth-child(2){animation-delay:-.3s}.family-tree-page .loading-container .spinner div:nth-child(3){animation-delay:-.15s}.family-tree-page .loading-container p{color:#00ffa4;font-size:1.1rem}.family-tree-page .error-container{align-items:center;display:flex;flex-direction:column;gap:1.5rem;height:100%;justify-content:center;padding:2rem;text-align:center}.family-tree-page .error-container h2{font-size:1.5rem;margin:0}.family-tree-page .error-container p{margin:0;opacity:.8}.family-tree-page .error-container .btn-primary{background:linear-gradient(135deg,#00ffa4,#a668ff);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .3s ease}.family-tree-page .error-container .btn-primary:hover{box-shadow:0 4px 12px #00ffa44d;transform:translateY(-2px)}@keyframes spinner{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(1)}}@media(max-width:768px){.family-tree-page .tree-header{padding:1rem}.family-tree-page .tree-header .header-content h1{font-size:1.3rem}.family-tree-page .tree-toolbar{flex-direction:column;gap:.5rem;padding:.5rem}.family-tree-page .tree-toolbar .toolbar-left,.family-tree-page .tree-toolbar .toolbar-right{justify-content:center;width:100%}.family-tree-page .tree-footer{font-size:.8rem}}.modal-content{background:#f8fafc;color:#1e293b}.modal-content .modal-header .modal-close:hover{color:#ef4444}.modal-content .modal-body .form-group label{color:#1e293b}.modal-content .modal-body .form-group .form-input,.modal-content .modal-body .form-group input,.modal-content .modal-body .form-group select,.modal-content .modal-body .form-group textarea{background:#fff;border:1px solid #e2e8f0;color:#1e293b}.modal-content .modal-body .form-group .form-input:focus,.modal-content .modal-body .form-group input:focus,.modal-content .modal-body .form-group select:focus,.modal-content .modal-body .form-group textarea:focus{border-color:#7c3aed}.modal-content{background-color:#f8fafc;border:1px solid #e2e8f0}.modal-content .modal-header{border-bottom:1px solid #e2e8f0}.modal-content .modal-header h2{color:#1e293b}.modal-content .modal-header .modal-close{color:#64748b}.modal-content .modal-header .modal-close:hover{background:#fff;color:#1e293b}.modal-content .modal-footer{border-top:1px solid #e2e8f0}.add-member-modal .form-info{background:#fff;border:1px solid #e2e8f0}.add-member-modal .form-info p{color:#1e293b}.add-member-modal .form-info p strong{color:#7c3aed}.btn-gallery-add-member{background:#06b6d4}.added-images-list{background:#fff;border:1px solid #e2e8f0}.added-images-list .added-image-item{border:2px solid #e2e8f0}.added-images-list .added-image-item:hover{border-color:#7c3aed}:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#e2e8f0;--node-bg-color:#fff;--node-border-color:#cbd5e1;--avatar-bg-color:#f1f5f9;--gender-icon-color:#64748b;--primary-color:#7c3aed;--accent-color:#06b6d4;--connection-color:#7c3aed;--spouse-connection-color:#06b6d4;--action-btn-bg:#f1f5f9;--action-btn-border:#cbd5e1;--action-btn-hover-bg:#e2e8f0;--button-bg:#f1f5f9;--button-hover-bg:#e2e8f0;--edit-btn-color:#7c3aed;--edit-btn-hover-color:#a78bfa;--gallery-btn-color:#06b6d4;--gallery-btn-hover-color:#0891b2;--success-color:#10b981;--danger-color:#ef4444;--warning-color:#f59e0b;--info-color:#3b82f6}.App{font-family:Montserrat,sans-serif;font-optical-sizing:auto;font-style:normal;font-weight:300;height:100%;min-height:100dvh;width:100%}.App.dark{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--border-color:#475569;--node-bg-color:#1e293b;--node-border-color:#64748b;--avatar-bg-color:#334155;--gender-icon-color:#94a3b8;--primary-color:#7c3aed;--accent-color:#06b6d4;--connection-color:#7c3aed;--spouse-connection-color:#06b6d4;--action-btn-bg:#334155;--action-btn-border:#64748b;--action-btn-hover-bg:#475569;--button-bg:#334155;--button-hover-bg:#475569;--edit-btn-color:#a78bfa;--edit-btn-hover-color:#c4b5fd;--gallery-btn-color:#22d3ee;--gallery-btn-hover-color:#06b6d4;--success-color:#10b981;--danger-color:#ef4444;--warning-color:#f59e0b;--info-color:#3b82f6;background-image:linear-gradient(315deg,#291b29,#000 80%);color:#fff}.App.dark,.App.light{background-color:#291b29}.App.light{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#e2e8f0;--node-bg-color:#fff;--node-border-color:#cbd5e1;--avatar-bg-color:#f1f5f9;--gender-icon-color:#64748b;--primary-color:#7c3aed;--accent-color:#06b6d4;--connection-color:#7c3aed;--spouse-connection-color:#06b6d4;--action-btn-bg:#f1f5f9;--action-btn-border:#cbd5e1;--action-btn-hover-bg:#e2e8f0;--button-bg:#f1f5f9;--button-hover-bg:#e2e8f0;--edit-btn-color:#7c3aed;--edit-btn-hover-color:#a78bfa;--gallery-btn-color:#06b6d4;--gallery-btn-hover-color:#0891b2;--success-color:#10b981;--danger-color:#ef4444;--warning-color:#f59e0b;--info-color:#3b82f6;background-image:linear-gradient(315deg,#291b29,#c4e0ff 80%);color:#291b29}.App .header-icons{font-size:1.5rem;-webkit-user-select:none;user-select:none}.App .header-icons div,.App .header-icons span{cursor:pointer}.App .body img{background:-webkit-linear-gradient(135deg,#00ffa4,#a668ff);padding:.75rem}.App #tsparticles{background-repeat:no-repeat!important;background-size:cover!important;height:100%;position:fixed!important;width:100%}.App ::-webkit-scrollbar{width:7px}.App ::-webkit-scrollbar-track{background:#2d1950}.App ::-webkit-scrollbar-thumb{background:rgba(178,121,216,.959);border-radius:12px}.App ::-webkit-scrollbar-thumb:hover{background:rgba(222,130,235,.911);border-radius:12px}.body{height:100%;overflow:auto;padding:2rem;width:100%}@media(max-width:768px){.body{padding:1rem}}.body .form-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0000001a;margin:0 auto;max-width:600px;padding:2rem}@media(max-width:768px){.body .form-container{border-radius:8px;padding:1.5rem}}@media(max-width:480px){.body .form-container{border-radius:6px;padding:1rem}}.body .form-container .form-title{color:var(--text-primary);font-size:1.8rem;font-weight:300;margin-bottom:2rem;text-align:center}@media(max-width:768px){.body .form-container .form-title{font-size:1.5rem;margin-bottom:1.5rem}}@media(max-width:480px){.body .form-container .form-title{font-size:1.25rem;margin-bottom:1rem}}.body .form-container .input-mode-toggle{border-bottom:2px solid var(--border-color);display:flex;gap:1rem;margin-bottom:2rem}.body .form-container .input-mode-toggle button{background:none;border:none;border-bottom:3px solid #0000;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:1rem;transition:all .2s}.body .form-container .input-mode-toggle button.active{border-bottom-color:var(--primary-color);color:var(--primary-color)}.body .form-container .input-mode-toggle button:not(.active){opacity:.6}.body .form-container .input-mode-toggle button:not(.active):hover{color:var(--text-primary);opacity:.8}.body .form-container .form-group{display:flex;flex-direction:column;margin-bottom:1.5rem}.body .form-container .form-group label{color:var(--text-primary);font-size:.95rem;font-weight:500;margin-bottom:.5rem}.body .form-container .form-group input,.body .form-container .form-group select{background:#fff;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:1rem;padding:.75rem;transition:all .2s}.App.dark .body .form-container .form-group input,.App.dark .body .form-container .form-group select{background:#ffffff0d;color:var(--text-primary)}.body .form-container .form-group input::placeholder,.body .form-container .form-group select::placeholder{color:var(--text-secondary);opacity:.6}.body .form-container .form-group input:focus,.body .form-container .form-group select:focus{background:#fff;border-color:var(--primary-color);box-shadow:0 0 0 3px #7c3aed1a;outline:none}.App.dark .body .form-container .form-group input:focus,.App.dark .body .form-container .form-group select:focus{background:#ffffff14}.body .form-container .form-group input:disabled,.body .form-container .form-group select:disabled{background:var(--bg-tertiary);cursor:not-allowed;opacity:.5}.body .form-container .form-group select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23666' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;cursor:pointer;padding-right:2.5rem}.App.dark .body .form-container .form-group select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23ccc' d='M6 9 1 4h10z'/%3E%3C/svg%3E")}.body .form-container .form-group .input-hint{color:var(--text-secondary);font-size:.85rem;margin-top:.25rem;opacity:.7}.body .form-container .form-group-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media(max-width:600px){.body .form-container .form-group-row{grid-template-columns:1fr}}.body .form-container .form-actions{display:flex;gap:1rem;margin-top:2rem}.body .form-container .form-actions button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.body .form-container .form-actions button.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color));border:1px solid #0000;color:#fff}.body .form-container .form-actions button.btn-primary:hover{box-shadow:0 4px 12px #7c3aed4d;transform:translateY(-2px)}.body .form-container .form-actions button.btn-primary:active{transform:translateY(0)}.body .form-container .form-actions button.btn-primary:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.body .form-container .form-actions button.btn-secondary{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.body .form-container .form-actions button.btn-secondary:hover{background-color:var(--bg-secondary);border-color:var(--primary-color)}.body .form-container .form-actions button.btn-secondary:active{transform:scale(.98)}.body .form-container .error-message{background-color:#ef44441a;border-left:4px solid var(--danger-color);border-radius:4px;color:var(--danger-color);font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.body .form-container .success-message{background-color:#10b9811a;border-left:4px solid var(--success-color);border-radius:4px;color:var(--success-color);font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.header{align-items:center;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem;position:relative}@media(max-width:768px){.header{flex-wrap:wrap;padding:.75rem 1rem}}.App.dark .header{box-shadow:0 2px 8px #ffffff1a}.header .header-content{align-items:center;display:flex;gap:2rem}@media(max-width:768px){.header .header-content{flex:1 1;gap:.75rem;min-width:0}}.header .header-content .header-logo{align-items:center;color:inherit;cursor:pointer;display:flex;font-size:1.2rem;font-weight:500;gap:.5rem;text-decoration:none;transition:opacity .2s}@media(max-width:768px){.header .header-content .header-logo{font-size:1rem;gap:.25rem}}.header .header-content .header-logo:hover{opacity:.8}.header .header-content .header-logo svg{font-size:1.5rem}@media(max-width:768px){.header .header-content .header-logo svg{font-size:1.25rem}}.header .header-content .header-title{font-size:.9rem;font-weight:300;letter-spacing:.05em;white-space:nowrap}@media(max-width:768px){.header .header-content .header-title{display:none}}.header .family-tree-name{left:50%;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%)}@media(max-width:768px){.header .family-tree-name{margin-top:.5rem;order:3;position:static;transform:none;width:100%}}.header .family-tree-name h1{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0}@media(max-width:768px){.header .family-tree-name h1{font-size:1.2rem}}.header .header-icons{align-items:center;display:flex;font-size:1.5rem;gap:1.5rem;-webkit-user-select:none;user-select:none}@media(max-width:768px){.header .header-icons{font-size:1.25rem;gap:.75rem}}.header .header-icons button,.header .header-icons div,.header .header-icons span{background:none;border:none;color:inherit;cursor:pointer;font-size:inherit;transition:transform .2s,opacity .2s}.header .header-icons button:hover,.header .header-icons div:hover,.header .header-icons span:hover{opacity:.8;transform:scale(1.1)}.header .header-icons .theme-toggle{align-items:center;background-color:#0000000d;border-radius:20px;display:flex;gap:.5rem;padding:.5rem 1rem;transition:background-color .2s}.App.dark .header .header-icons .theme-toggle{background-color:#ffffff1a}.header .header-icons .theme-toggle:hover{background-color:#0000001a}.App.dark .header .header-icons .theme-toggle:hover{background-color:#ffffff26}.header .header-icons .theme-toggle span{font-size:1.2rem}.header .header-icons .user-menu{align-items:center;border-left:1px solid #0000001a;display:flex;gap:1rem;padding-left:1rem}.App.dark .header .header-icons .user-menu{border-left-color:#ffffff1a}.header .header-icons .user-menu span{font-size:.95rem}.header .header-icons .user-menu button{background-color:#0000000d;border-radius:20px;padding:.5rem 1rem;transition:background-color .2s}.App.dark .header .header-icons .user-menu button{background-color:#ffffff1a}.header .header-icons .user-menu button:hover{background-color:#0000001a}.App.dark .header .header-icons .user-menu button:hover{background-color:#ffffff26}.image-gallery-modal{align-items:center;bottom:0;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.gallery-overlay{animation:fadeIn .2s ease;background:#000000b3;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.gallery-container{animation:slideUp .3s ease;background:var(--bg-primary);border-radius:12px;box-shadow:0 15px 50px #0006;display:flex;flex-direction:column;max-height:85vh;max-width:700px;position:relative;width:90vw;z-index:1101}@media(max-width:768px){.gallery-container{border-radius:8px;max-height:95vh;max-width:95vw;width:95vw}}@media(max-width:480px){.gallery-container{border-radius:0;max-height:100vh;max-width:100vw;width:100vw}}.gallery-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}@media(max-width:768px){.gallery-header{padding:16px}}@media(max-width:480px){.gallery-header{padding:12px}}.gallery-header h2{color:var(--text-primary);font-size:1.5em;margin:0}@media(max-width:768px){.gallery-header h2{font-size:1.25em}}@media(max-width:480px){.gallery-header h2{font-size:1.1em}}.gallery-header .header-actions{align-items:center;display:flex;gap:12px}.gallery-header .header-actions .btn-done{align-items:center;background:linear-gradient(135deg,#1a73e8,#1765cc);border:none;border-radius:8px;box-shadow:0 2px 8px #1a73e84d;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:6px;padding:8px 16px;transition:all .25s cubic-bezier(.4,0,.2,1)}.gallery-header .header-actions .btn-done:hover{background:linear-gradient(135deg,#1765cc,#1557b0);box-shadow:0 4px 12px #1a73e880;transform:translateY(-2px)}.gallery-header .header-actions .btn-done:active{transform:translateY(0)}.gallery-header .header-actions .btn-done svg{flex-shrink:0}.gallery-header .header-actions .close-btn{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5em;height:36px;justify-content:center;transition:all .2s ease;width:36px}.gallery-header .header-actions .close-btn:hover{color:var(--danger-color);transform:scale(1.2)}.gallery-content{gap:16px;overflow-y:auto;padding:20px}.gallery-content,.gallery-empty{display:flex;flex:1 1;flex-direction:column}.gallery-empty{align-items:center;gap:20px;justify-content:center;padding:40px 20px;text-align:center}.gallery-empty p{color:var(--text-secondary);font-size:1.2em;margin:0}.gallery-empty .btn-add-image{align-items:center;background:linear-gradient(135deg,#ff9800,#f57c00);border:none;border-radius:8px;box-shadow:0 4px 12px #ff98004d;color:#fff;cursor:pointer;display:flex;font-size:1em;font-weight:600;gap:10px;overflow:hidden;padding:14px 28px;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.gallery-empty .btn-add-image svg{height:20px;transition:transform .25s ease;width:20px}.gallery-empty .btn-add-image:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.gallery-empty .btn-add-image:hover{background:linear-gradient(135deg,#f57c00,#ef6c00);box-shadow:0 6px 20px #ff980066;transform:translateY(-2px)}.gallery-empty .btn-add-image:hover svg{transform:scale(1.1) rotate(90deg)}.gallery-empty .btn-add-image:hover:before{height:300px;width:300px}.gallery-empty .btn-add-image:active{box-shadow:0 2px 8px #ff98004d;transform:translateY(0)}.image-viewer{align-items:center;display:flex;justify-content:center;margin-bottom:16px;min-height:300px;position:relative}@media(max-width:768px){.image-viewer{min-height:250px}}@media(max-width:480px){.image-viewer{min-height:200px}}.image-viewer .nav-btn{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#1a73e8f2,#1765ccf2);border:2px solid #ffffff4d;border-radius:50%;box-shadow:0 4px 16px #1a73e866;color:#fff;cursor:pointer;display:flex;font-size:1.4em;height:50px;justify-content:center;line-height:1;padding:0;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);width:50px;z-index:10}@media(max-width:768px){.image-viewer .nav-btn{font-size:1.3em;height:46px;width:46px}}@media(max-width:480px){.image-viewer .nav-btn{font-size:1.2em;height:42px;width:42px}}.image-viewer .nav-btn svg{stroke-width:3;height:24px;width:24px}@media(max-width:768px){.image-viewer .nav-btn svg{height:22px;width:22px}}@media(max-width:480px){.image-viewer .nav-btn svg{height:20px;width:20px}}.image-viewer .nav-btn:hover:not(:disabled){background:linear-gradient(135deg,#1765cc,#1557b0);border-color:#ffffff80;box-shadow:0 6px 24px #1a73e899;transform:translateY(-50%) scale(1.15)}.image-viewer .nav-btn:active:not(:disabled){box-shadow:0 3px 12px #1a73e880;transform:translateY(-50%) scale(1.05)}.image-viewer .nav-btn:disabled{background:#64646466;border-color:#ffffff1a;cursor:not-allowed;opacity:.25}.image-viewer .nav-btn.prev{left:12px}@media(max-width:480px){.image-viewer .nav-btn.prev{left:8px}}.image-viewer .nav-btn.prev:hover:not(:disabled){transform:translateY(-50%) scale(1.15) translateX(-3px)}.image-viewer .nav-btn.next{right:12px}@media(max-width:480px){.image-viewer .nav-btn.next{right:8px}}.image-viewer .nav-btn.next:hover:not(:disabled){transform:translateY(-50%) scale(1.15) translateX(3px)}.image-viewer .image-display{align-items:center;aspect-ratio:4/3;background:var(--bg-secondary);border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;justify-content:center;overflow:hidden;position:relative;width:100%}.image-viewer .image-display img{height:100%;object-fit:contain;width:100%}.image-viewer .image-display .current-profile-indicator{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(135deg,#4caf50f2,#388e3cf2);border:none;border-radius:20px;box-shadow:0 3px 10px #4caf5066;color:#fff;display:flex;font-size:.85em;font-weight:600;gap:6px;left:12px;padding:8px 14px;position:absolute;top:12px;transition:all .2s ease}.image-viewer .image-display .current-profile-indicator.clickable{cursor:pointer}.image-viewer .image-display .current-profile-indicator.clickable:hover{background:linear-gradient(135deg,#388e3cf2,#2e7d32f2);box-shadow:0 4px 14px #4caf5080;transform:scale(1.05)}.image-viewer .image-display .current-profile-indicator.clickable:active{transform:scale(.98)}.image-viewer .image-display .current-profile-indicator svg{height:16px;width:16px}.image-viewer .image-display .current-profile-indicator span{letter-spacing:.5px;text-transform:uppercase}.image-viewer .image-display .current-gallery-indicator{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(135deg,#2196f3f2,#1976d2f2);border:none;border-radius:20px;box-shadow:0 3px 10px #2196f366;color:#fff;display:flex;font-size:.85em;font-weight:600;gap:6px;left:12px;padding:8px 14px;position:absolute;top:12px;transition:all .2s ease}.image-viewer .image-display .current-gallery-indicator.clickable{cursor:pointer}.image-viewer .image-display .current-gallery-indicator.clickable:hover{background:linear-gradient(135deg,#1976d2f2,#1565c0f2);box-shadow:0 4px 14px #2196f380;transform:scale(1.05)}.image-viewer .image-display .current-gallery-indicator.clickable:active{transform:scale(.98)}.image-viewer .image-display .current-gallery-indicator svg{height:16px;width:16px}.image-viewer .image-display .current-gallery-indicator span{letter-spacing:.5px;text-transform:uppercase}.image-viewer .image-display .image-counter{background:#0009;border-radius:4px;color:#fff;font-size:.9em;font-weight:600;padding:6px 12px;position:absolute;right:12px;top:12px}.image-viewer .image-display .no-image{color:var(--text-secondary);font-size:1.2em}.gallery-thumbnails{grid-gap:10px;background:var(--bg-secondary);border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));max-height:240px;overflow-y:auto;padding:12px}@media(max-width:768px){.gallery-thumbnails{max-height:200px}}@media(max-width:480px){.gallery-thumbnails{max-height:180px}}.gallery-thumbnails .thumbnail{aspect-ratio:1;background:var(--bg-tertiary);border:2px solid #0000;border-radius:6px;cursor:pointer;overflow:hidden;position:relative;transition:all .2s ease}.gallery-thumbnails .thumbnail img{height:100%;object-fit:cover;width:100%}.gallery-thumbnails .thumbnail:hover{box-shadow:0 4px 8px #0003;transform:scale(1.05)}.gallery-thumbnails .thumbnail.active{border-color:var(--primary-color);box-shadow:0 0 8px #1a73e880}.gallery-thumbnails .thumbnail.profile-photo{border-color:#4caf50;box-shadow:0 0 12px #4caf5099}.gallery-thumbnails .thumbnail .type-badge{align-items:center;border:none;border-radius:50%;box-shadow:0 2px 6px #0000004d;cursor:pointer;display:flex;font-size:10px;font-weight:600;gap:4px;height:24px;left:4px;letter-spacing:.5px;padding:4px;position:absolute;text-transform:uppercase;top:4px;transition:all .25s cubic-bezier(.4,0,.2,1);width:24px;z-index:2}.gallery-thumbnails .thumbnail .type-badge svg{height:12px;min-width:12px;width:12px}.gallery-thumbnails .thumbnail .type-badge span{display:none;font-size:9px;white-space:nowrap}.gallery-thumbnails .thumbnail .type-badge:hover{border-radius:12px;padding:4px 8px;width:auto}.gallery-thumbnails .thumbnail .type-badge:hover span{display:inline}.gallery-thumbnails .thumbnail .type-badge.profile{background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff}.gallery-thumbnails .thumbnail .type-badge.profile:hover{background:linear-gradient(135deg,#388e3c,#2e7d32);box-shadow:0 3px 10px #4caf5080;transform:scale(1.05)}.gallery-thumbnails .thumbnail .type-badge.gallery{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.gallery-thumbnails .thumbnail .type-badge.gallery:hover{background:linear-gradient(135deg,#1976d2,#1565c0);box-shadow:0 3px 10px #2196f380;transform:scale(1.05)}.gallery-thumbnails .thumbnail .type-badge:active{transform:scale(.98)}.gallery-thumbnails .thumbnail .thumbnail-actions{display:flex;gap:4px;opacity:0;position:absolute;right:4px;top:4px;transition:opacity .25s ease}.gallery-thumbnails .thumbnail:hover .thumbnail-actions{opacity:1}.gallery-thumbnails .thumbnail .delete-thumbnail{box-shadow:0 2px 8px #f4433680}.gallery-thumbnails .thumbnail .delete-thumbnail:hover{background:linear-gradient(135deg,#d32f2f,#c62828)}.gallery-thumbnails .thumbnail .delete-thumbnail{align-items:center;background:linear-gradient(135deg,#f44336,#d32f2f);border:none;border-radius:50%;box-shadow:0 2px 8px #f4433666;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .25s cubic-bezier(.4,0,.2,1);width:28px}.gallery-thumbnails .thumbnail .delete-thumbnail svg{stroke:#fff;stroke-width:2.5;height:14px;width:14px}.gallery-thumbnails .thumbnail .delete-thumbnail:hover{background:linear-gradient(135deg,#d32f2f,#b71c1c);box-shadow:0 4px 12px #f4433699;transform:scale(1.15)}.gallery-thumbnails .thumbnail .delete-thumbnail:active{transform:scale(1.05)}.gallery-actions{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:center;padding-top:12px}@media(max-width:768px){.gallery-actions{gap:10px;padding-top:10px}}@media(max-width:480px){.gallery-actions{gap:8px;padding-top:8px}}.gallery-actions button{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:0;font-weight:600;height:48px;justify-content:center;overflow:hidden;padding:0;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);width:48px}@media(max-width:768px){.gallery-actions button{height:44px;width:44px}}@media(max-width:480px){.gallery-actions button{height:40px;width:40px}}.gallery-actions button svg{height:24px;position:relative;transition:transform .25s ease;width:24px;z-index:1}.gallery-actions button:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .4s,height .4s;width:0}.gallery-actions button:hover:not(:disabled){box-shadow:0 6px 20px #00000040;transform:translateY(-2px) scale(1.1)}.gallery-actions button:hover:not(:disabled) svg{transform:scale(1.15)}.gallery-actions button:hover:not(:disabled):before{height:100px;width:100px}.gallery-actions button:active:not(:disabled){transform:translateY(0) scale(1.05)}.gallery-actions button.btn-add-image{background:linear-gradient(135deg,#ff9800,#f57c00);box-shadow:0 4px 12px #ff98004d;color:#fff}.gallery-actions button.btn-add-image:hover{background:linear-gradient(135deg,#f57c00,#ef6c00);box-shadow:0 6px 20px #ff980066}.gallery-actions button.btn-delete-image{background:linear-gradient(135deg,#f44336,#d32f2f);box-shadow:0 4px 12px #f443364d;color:#fff}.gallery-actions button.btn-delete-image:hover:not(:disabled){background:linear-gradient(135deg,#d32f2f,#b71c1c);box-shadow:0 6px 20px #f4433666}.gallery-actions button.btn-delete-image:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;opacity:.4}.gallery-actions button.btn-delete-image:disabled:hover{transform:none}.gallery-actions button.btn-done-gallery{background:linear-gradient(135deg,#1a73e8,#1765cc);box-shadow:0 4px 12px #1a73e84d;color:#fff}.gallery-actions button.btn-done-gallery:hover{background:linear-gradient(135deg,#1765cc,#1557b0);box-shadow:0 6px 20px #1a73e866}.add-image-form{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-top:12px;padding:20px}.add-image-form h3{color:var(--text-primary);margin:0 0 12px}.add-image-form .instructions{background:var(--bg-tertiary);border-left:4px solid var(--accent-color);border-radius:4px;font-size:.9em;margin-bottom:16px;padding:12px 16px}.add-image-form .instructions p{margin:0 0 8px}.add-image-form .instructions p.example{border-top:1px solid var(--border-color);margin-top:12px;padding-top:12px}.add-image-form .instructions p.example code{background:var(--bg-secondary);border-radius:3px;font-family:monospace;font-size:.85em;padding:2px 6px;word-break:break-all}.add-image-form .instructions ol{margin:8px 0 0;padding-left:20px}.add-image-form .instructions ol li{margin:4px 0}.add-image-form .instructions strong{color:var(--text-primary)}.add-image-form .form-group{margin-bottom:12px}.add-image-form .form-group label{color:var(--text-primary);display:block;font-weight:600;margin-bottom:6px}.add-image-form .form-group input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-sizing:border-box;color:var(--text-primary);font-size:1em;padding:10px 12px;width:100%}.add-image-form .form-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #1a73e81a;outline:none}.add-image-form .form-actions{display:flex;gap:12px}.add-image-form .form-actions button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:.95em;font-weight:600;gap:8px;justify-content:center;overflow:hidden;padding:12px 20px;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.add-image-form .form-actions button svg{height:18px;transition:transform .25s ease;width:18px}.add-image-form .form-actions button:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.add-image-form .form-actions button:hover{box-shadow:0 6px 16px #0003;transform:translateY(-2px)}.add-image-form .form-actions button:hover svg{transform:scale(1.1)}.add-image-form .form-actions button:hover:before{height:300px;width:300px}.add-image-form .form-actions button:active{transform:translateY(0)}.add-image-form .form-actions button.btn-confirm{background:linear-gradient(135deg,#4caf50,#45a049);box-shadow:0 4px 12px #4caf504d;color:#fff}.add-image-form .form-actions button.btn-confirm:hover{background:linear-gradient(135deg,#45a049,#3d8b40);box-shadow:0 6px 20px #4caf5066}.add-image-form .form-actions button.btn-cancel{background:var(--bg-tertiary);border:2px solid var(--border-color);box-shadow:0 2px 8px #0000000d;color:var(--text-primary)}.add-image-form .form-actions button.btn-cancel:hover{background:var(--bg-primary);border-color:var(--text-secondary);box-shadow:0 4px 12px #0000001a}:root[data-theme=light]{--primary-color:#1a73e8;--accent-color:#ff9800}:root[data-theme=dark]{--accent-color:#ffb74d}@media(max-width:768px){.gallery-container{max-height:90vh;width:95vw}.image-viewer .image-display{aspect-ratio:3/2}.gallery-thumbnails{gap:8px;grid-template-columns:repeat(auto-fill,minmax(75px,1fr))}}@media(max-width:480px){.gallery-container{border-radius:8px;width:98vw}.gallery-container .gallery-header{padding:16px}.gallery-container .gallery-header h2{font-size:1.3em}.gallery-container .gallery-content{gap:12px;padding:12px}.image-viewer .image-display{aspect-ratio:1}.gallery-thumbnails{gap:8px;grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.gallery-actions{gap:8px}.gallery-actions button{height:44px;width:44px}}.gallery-content,.gallery-thumbnails{scrollbar-color:var(--border-color) #0000;scrollbar-width:thin}.gallery-content::-webkit-scrollbar,.gallery-thumbnails::-webkit-scrollbar{width:6px}.gallery-content::-webkit-scrollbar-track,.gallery-thumbnails::-webkit-scrollbar-track{background:#0000}.gallery-content::-webkit-scrollbar-thumb,.gallery-thumbnails::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.gallery-content::-webkit-scrollbar-thumb:hover,.gallery-thumbnails::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.member-editor-modal{align-items:center;bottom:0;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.editor-overlay{animation:fadeIn .2s ease;background:#00000080;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.editor-container{animation:slideUp .3s ease;background:var(--bg-primary);border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:500px;position:relative;width:90vw;z-index:1001}@media(max-width:768px){.editor-container{border-radius:8px;max-height:95vh;max-width:95vw;width:95vw}}@media(max-width:480px){.editor-container{border-radius:0;max-height:100vh;max-width:100vw;width:100vw}}.editor-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}@media(max-width:768px){.editor-header{padding:16px}}@media(max-width:480px){.editor-header{padding:12px}}.editor-header h2{color:var(--text-primary);font-size:1.5em;margin:0}@media(max-width:768px){.editor-header h2{font-size:1.25em}}@media(max-width:480px){.editor-header h2{font-size:1.1em}}.editor-header .close-btn{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5em;height:36px;justify-content:center;transition:all .2s ease;width:36px}.editor-header .close-btn:hover{color:var(--danger-color);transform:scale(1.2)}.editor-content{display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:20px}.editor-content .profile-section{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:12px;padding-bottom:20px}.editor-content .profile-section .profile-image-container{align-items:center;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;height:100px;justify-content:center;overflow:hidden;width:100px}.editor-content .profile-section .profile-image-container img{height:100%;object-fit:cover;width:100%}.editor-content .profile-section .profile-image-container .profile-icon{font-size:3em}.editor-content .profile-section .btn-gallery{background:var(--accent-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .2s ease}.editor-content .profile-section .btn-gallery:hover{background:#ffa21a;box-shadow:0 4px 12px #ff98004d;transform:translateY(-2px)}.editor-content .profile-section .btn-gallery:active{transform:translateY(0)}.editor-content .profile-section .image-count{color:var(--text-secondary);font-size:.9em;margin:0}.editor-content .edit-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{color:var(--text-primary);font-size:.95em;font-weight:600}.form-group input,.form-group select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:1em;padding:10px 12px;transition:all .2s ease}.form-group input:focus,.form-group select:focus{background:var(--bg-primary);border-color:var(--primary-color);box-shadow:0 0 0 3px #1a73e81a;outline:none}.form-group input.error,.form-group select.error{border-color:var(--danger-color);box-shadow:0 0 0 3px #f443361a}.form-group select{cursor:pointer}.form-group select option{background:var(--bg-secondary);color:var(--text-primary)}.form-group .error-message{color:var(--danger-color);font-size:.85em;font-weight:500}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}@media(max-width:600px){.form-row{grid-template-columns:1fr}}.editor-actions{background:var(--bg-secondary);border-radius:0 0 12px 12px;border-top:1px solid var(--border-color);display:flex;gap:12px;padding:16px 20px}.editor-actions button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:1em;font-weight:600;gap:8px;justify-content:center;overflow:hidden;padding:14px 20px;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.editor-actions button svg{height:20px;transition:transform .25s ease;width:20px}.editor-actions button:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.editor-actions button:hover{box-shadow:0 6px 20px #00000026;transform:translateY(-2px)}.editor-actions button:hover svg{transform:scale(1.1)}.editor-actions button:hover:before{height:300px;width:300px}.editor-actions button:active{box-shadow:0 2px 8px #0000001a;transform:translateY(0)}.editor-actions button.btn-save{background:linear-gradient(135deg,#4caf50,#45a049);border:none;box-shadow:0 4px 12px #4caf504d;color:#fff}.editor-actions button.btn-save:hover{background:linear-gradient(135deg,#45a049,#3d8b40);box-shadow:0 6px 20px #4caf5080;transform:translateY(-3px)}.editor-actions button.btn-save:active{box-shadow:0 3px 10px #4caf5066;transform:translateY(-1px)}.editor-actions button.btn-cancel{background:linear-gradient(135deg,#757575,#616161);border:none;box-shadow:0 4px 12px #7575754d;color:#fff}.editor-actions button.btn-cancel:hover{background:linear-gradient(135deg,#616161,#424242);box-shadow:0 6px 20px #75757580;transform:translateY(-3px)}.editor-actions button.btn-cancel:active{box-shadow:0 3px 10px #75757566;transform:translateY(-1px)}.editor-actions button.btn-delete{background:linear-gradient(135deg,#f44336,#d32f2f);box-shadow:0 4px 12px #f443364d;color:#fff;margin-left:auto}.editor-actions button.btn-delete:hover{background:linear-gradient(135deg,#d32f2f,#b71c1c);box-shadow:0 6px 20px #f4433666}.delete-confirm-modal{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.confirm-overlay{animation:fadeIn .2s ease;background:#0009;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.confirm-dialog{animation:slideUp .3s ease;background:var(--bg-primary);border-radius:12px;box-shadow:0 10px 40px #0006;max-width:450px;position:relative;width:90vw;z-index:2001}.confirm-dialog .confirm-header{border-bottom:1px solid var(--border-color);padding:20px}.confirm-dialog .confirm-header h3{align-items:center;color:var(--danger-color);display:flex;font-size:1.3em;gap:8px;margin:0}.confirm-dialog .confirm-content{padding:20px}.confirm-dialog .confirm-content p{color:var(--text-primary);line-height:1.5;margin:0 0 12px}.confirm-dialog .confirm-content p strong{color:var(--danger-color);font-weight:600}.confirm-dialog .confirm-content .warning-text{background:#f443361a;border-left:3px solid var(--danger-color);border-radius:6px;color:var(--text-secondary);font-size:.9em;padding:12px}.confirm-dialog .confirm-actions{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;padding:20px}.confirm-dialog .confirm-actions button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1em;font-weight:600;gap:8px;overflow:hidden;padding:12px 24px;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.confirm-dialog .confirm-actions button svg{height:18px;transition:transform .25s ease;width:18px}.confirm-dialog .confirm-actions button:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.confirm-dialog .confirm-actions button:hover{box-shadow:0 6px 20px #0003;transform:translateY(-2px)}.confirm-dialog .confirm-actions button:hover svg{transform:scale(1.1)}.confirm-dialog .confirm-actions button:hover:before{height:300px;width:300px}.confirm-dialog .confirm-actions button:active{transform:translateY(0)}.confirm-dialog .confirm-actions button.btn-confirm-delete{background:linear-gradient(135deg,#f44336,#d32f2f);box-shadow:0 4px 12px #f443364d;color:#fff}.confirm-dialog .confirm-actions button.btn-confirm-delete:hover{background:linear-gradient(135deg,#d32f2f,#b71c1c);box-shadow:0 6px 20px #f4433666}.confirm-dialog .confirm-actions button.btn-confirm-cancel{background:var(--bg-tertiary);border:2px solid var(--border-color);box-shadow:0 2px 8px #0000000d;color:var(--text-primary)}.confirm-dialog .confirm-actions button.btn-confirm-cancel:hover{background:var(--bg-primary);border-color:var(--text-secondary);box-shadow:0 4px 12px #0000001a}:root[data-theme=light]{--success-color:#4caf50;--danger-color:#f44336;--bg-tertiary:#f0f0f0}:root[data-theme=dark]{--success-color:#66bb6a;--bg-tertiary:#3d3d3d}@media(max-width:600px){.editor-container{border-radius:8px;width:95vw}.editor-container .editor-header{padding:16px}.editor-container .editor-header h2{font-size:1.3em}.editor-container .editor-content{padding:16px}.editor-container .editor-actions{border-radius:0 0 8px 8px;padding:12px 16px}.editor-container .editor-actions button{font-size:.95em;padding:10px 12px}}@media(max-width:480px){.editor-container{max-height:95vh;width:98vw}.editor-container .editor-header h2{font-size:1.2em}.editor-container .editor-header .close-btn{font-size:1.2em;height:32px;width:32px}.editor-container .editor-actions{flex-direction:column}.editor-container .editor-actions button{width:100%}}.editor-content{scrollbar-color:var(--border-color) #0000;scrollbar-width:thin}.editor-content::-webkit-scrollbar{width:6px}.editor-content::-webkit-scrollbar-track{background:#0000}.editor-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.editor-content::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.search-bar-container{margin:0;max-width:600px;position:relative;width:100%;z-index:10}@media(max-width:1024px){.search-bar-container{max-width:400px}}@media(max-width:768px){.search-bar-container{max-width:100%}}.search-bar-container .search-bar{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;box-shadow:0 4px 12px #00000014;display:flex;padding:.5rem .75rem;position:relative;transition:all .3s ease}@media(max-width:768px){.search-bar-container .search-bar{border-radius:6px;padding:.4rem .6rem}}@media(max-width:480px){.search-bar-container .search-bar{padding:.35rem .5rem}}.App.light .search-bar-container .search-bar{background:#ffffff26;border-color:#ffffff4d}.App.dark .search-bar-container .search-bar{background:#1e293b4d;border-color:#47556966}.search-bar-container .search-bar:focus-within{border-color:#1a73e8;border-color:var(--primary-color,#1a73e8);box-shadow:0 4px 16px #1a73e833}.search-bar-container .search-bar .search-icon{color:#666;color:var(--icon-color,#666);flex-shrink:0;margin-right:.75rem}.search-bar-container .search-bar .search-input{background:#0000;border:none;color:#333;color:var(--text-color,#333);flex:1 1;font-size:1rem;outline:none}@media(max-width:768px){.search-bar-container .search-bar .search-input{font-size:.95rem}}@media(max-width:480px){.search-bar-container .search-bar .search-input{font-size:.9rem}}.search-bar-container .search-bar .search-input::placeholder{color:#ffffffb3}.App.dark .search-bar-container .search-bar .search-input{color:#f1f5f9;color:var(--text-primary,#f1f5f9)}.App.dark .search-bar-container .search-bar .search-input::placeholder{color:#ffffff80}.search-bar-container .search-bar .clear-btn{align-items:center;background:none;border:none;border-radius:50%;color:#666;color:var(--icon-color,#666);cursor:pointer;display:flex;justify-content:center;padding:.25rem;transition:all .2s ease}.search-bar-container .search-bar .clear-btn:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);color:#1a73e8;color:var(--primary-color,#1a73e8)}.search-bar-container .search-dropdown{animation:slideDown .2s ease;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:12px;box-shadow:0 8px 24px #00000026;left:0;max-height:400px;overflow-y:auto;pointer-events:auto;position:absolute;right:0;top:calc(100% + .5rem);z-index:10000}.App.light .search-bar-container .search-dropdown{background:#fffffff2;border-color:#e2e8f0cc}.App.dark .search-bar-container .search-dropdown{background:#1e293bf2;border-color:#475569cc}.search-bar-container .search-dropdown .dropdown-header{background:#f8f9fa;background:var(--header-bg,#f8f9fa);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color,#e0e0e0);padding:.75rem 1rem}.search-bar-container .search-dropdown .dropdown-header .result-count{color:#666;color:var(--secondary-text,#666);font-size:.875rem;font-weight:500}.search-bar-container .search-dropdown .dropdown-list{list-style:none;margin:0;padding:0}.search-bar-container .search-dropdown .dropdown-item{align-items:center;border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--divider-color,#f0f0f0);cursor:pointer;display:flex;justify-content:space-between;padding:.75rem 1rem;pointer-events:auto;position:relative;transition:all .2s ease;z-index:1}.search-bar-container .search-dropdown .dropdown-item:last-child{border-bottom:none}.search-bar-container .search-dropdown .dropdown-item.selected,.search-bar-container .search-dropdown .dropdown-item:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.search-bar-container .search-dropdown .dropdown-item.selected{background:#e3f2fd;background:var(--selected-bg,#e3f2fd)}.search-bar-container .search-dropdown .dropdown-item .member-info{align-items:center;display:flex;flex:1 1;gap:1rem}.search-bar-container .search-dropdown .dropdown-item .member-info .member-avatar{background:#e0e0e0;background:var(--avatar-bg,#e0e0e0);border-radius:50%;flex-shrink:0;height:40px;overflow:hidden;width:40px}.search-bar-container .search-dropdown .dropdown-item .member-info .member-avatar img{height:100%;object-fit:cover;width:100%}.search-bar-container .search-dropdown .dropdown-item .member-info .member-avatar .avatar-placeholder{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;font-size:.875rem;font-weight:600;height:100%;justify-content:center;width:100%}.search-bar-container .search-dropdown .dropdown-item .member-info .member-details{flex:1 1}.search-bar-container .search-dropdown .dropdown-item .member-info .member-details .member-name{color:#333;color:var(--text-color,#333);font-weight:600;margin-bottom:.25rem}.search-bar-container .search-dropdown .dropdown-item .member-info .member-details .member-meta{color:#666;color:var(--secondary-text,#666);font-size:.8125rem}.search-bar-container .search-dropdown .dropdown-item .selection-indicator{color:#1a73e8;color:var(--primary-color,#1a73e8);flex-shrink:0}.search-bar-container .search-dropdown .no-results{color:#666;color:var(--secondary-text,#666);padding:3rem 2rem;text-align:center}.search-bar-container .search-dropdown .no-results svg{margin-bottom:1rem;opacity:.3}.search-bar-container .search-dropdown .no-results p{color:#333;color:var(--text-color,#333);font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.search-bar-container .search-dropdown .no-results span{font-size:.875rem}.search-dropdown::-webkit-scrollbar{width:6px}.search-dropdown::-webkit-scrollbar-track{background:#f1f1f1;background:var(--scrollbar-track,#f1f1f1);border-radius:10px}.search-dropdown::-webkit-scrollbar-thumb{background:#888;background:var(--scrollbar-thumb,#888);border-radius:10px}.search-dropdown::-webkit-scrollbar-thumb:hover{background:#555;background:var(--scrollbar-thumb-hover,#555)}.dark .search-bar-container .search-bar{background:#2d2d2d;border-color:#444}.dark .search-bar-container .search-bar .search-input{color:#fff}.dark .search-bar-container .search-bar .search-input::placeholder{color:#888}.dark .search-bar-container .search-bar .clear-btn:hover{background:#404040}.dark .search-bar-container .search-dropdown{background:#2d2d2d;border-color:#444}.dark .search-bar-container .search-dropdown .dropdown-header{background:#252525;border-color:#444}.dark .search-bar-container .search-dropdown .dropdown-header .result-count{color:#aaa}.dark .search-bar-container .search-dropdown .dropdown-item{border-color:#333}.dark .search-bar-container .search-dropdown .dropdown-item:hover{background:#353535}.dark .search-bar-container .search-dropdown .dropdown-item.selected{background:#1e3a5f}.dark .search-bar-container .search-dropdown .dropdown-item .member-name{color:#fff}.dark .search-bar-container .search-dropdown .dropdown-item .member-meta{color:#aaa}.dark .search-bar-container .search-dropdown .no-results p{color:#fff}.dark .search-bar-container .search-dropdown .no-results span{color:#aaa}.dark .search-bar-container .search-dropdown::-webkit-scrollbar-track{background:#1a1a1a}.dark .search-bar-container .search-dropdown::-webkit-scrollbar-thumb{background:#555}.dark .search-bar-container .search-dropdown::-webkit-scrollbar-thumb:hover{background:#777}@media(max-width:768px){.search-bar-container{margin:0 1rem 1.5rem;max-width:100%}.search-bar-container .search-dropdown{max-height:300px}.search-bar-container .search-dropdown .dropdown-item .member-info .member-avatar{height:36px;width:36px}.search-bar-container .search-dropdown .dropdown-item .member-info .member-details .member-name{font-size:.9375rem}.search-bar-container .search-dropdown .dropdown-item .member-info .member-details .member-meta{font-size:.75rem}}@media(max-width:1024px)and (min-width:769px){.search-bar-container{max-width:500px}}.custom-spinner{animation:spin 1s linear infinite;border:4px solid #7c3aed33;border-radius:50%;border-top-color:#7c3aed;height:50px;margin:20px auto;width:50px}.family-tree-page{display:flex;flex-direction:column;height:100%;min-height:100%}.family-tree-page .page-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border-bottom:1px solid #fff3;flex-shrink:0;padding:1.5rem 2rem}.App.dark .family-tree-page .page-header{background:linear-gradient(135deg,#1e293b4d,#1e293b33);border-bottom:1px solid #4755694d}.family-tree-page .page-header .page-meta{align-items:flex-start;display:flex;justify-content:center}.family-tree-page .page-header .page-meta .header-center{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:1rem}.family-tree-page .page-header .family-tree-header{text-align:center}.family-tree-page .page-header .family-tree-header h1{color:var(--text-primary);font-size:2rem;font-weight:700;margin:0}@media(max-width:768px){.family-tree-page .page-header .family-tree-header h1{font-size:1.5rem}}.family-tree-page .tree-content{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.family-tree-page .empty-container,.family-tree-page .error-container,.family-tree-page .loading-container{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;min-height:400px;padding:2rem}.family-tree-page .error-container{background:linear-gradient(135deg,#ef44441a,#dc26260d)}.App.dark .family-tree-page .error-container{background:linear-gradient(135deg,#ef444426,#dc262614)}.family-tree-page .error-container .error-content{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:20px;box-shadow:0 20px 60px #0003;max-width:600px;padding:3rem 2rem;text-align:center}.App.dark .family-tree-page .error-container .error-content{background:#1e293bf2;border-color:#47556980}.family-tree-page .error-container .error-content .error-icon-animated{margin-bottom:2rem}.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting{animation:sway 2s ease-in-out infinite;display:inline-block;position:relative}.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting .wilted-tree{animation:wilt 3s ease-in-out infinite;display:block;filter:grayscale(.5) drop-shadow(0 4px 12px rgba(0,0,0,.3));font-size:6rem}@media(max-width:768px){.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting .wilted-tree{font-size:4rem}}.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting .falling-leaves{height:150px;left:50%;pointer-events:none;position:absolute;top:0;transform:translateX(-50%);width:150px}.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting .falling-leaves .falling-leaf{animation:leafFall 3s ease-in-out infinite;font-size:1.5rem;opacity:0;position:absolute}.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting .falling-leaves .falling-leaf:first-child{animation-delay:0s;left:20%}.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting .falling-leaves .falling-leaf:nth-child(2){animation-delay:1s;left:50%}.family-tree-page .error-container .error-content .error-icon-animated .tree-wilting .falling-leaves .falling-leaf:nth-child(3){animation-delay:2s;left:80%}.family-tree-page .error-container .error-content .error-title{color:#dc2626;font-size:2rem;font-weight:700;margin:0 0 1rem}.App.dark .family-tree-page .error-container .error-content .error-title{color:#f87171}@media(max-width:768px){.family-tree-page .error-container .error-content .error-title{font-size:1.5rem}}.family-tree-page .error-container .error-content .error-message{color:#4a5568;font-size:1.1rem;line-height:1.6;margin:0 0 2rem}.App.dark .family-tree-page .error-container .error-content .error-message{color:#cbd5e0}@media(max-width:768px){.family-tree-page .error-container .error-content .error-message{font-size:1rem}}.family-tree-page .error-container .error-content .error-suggestions{background:#3b82f61a;border-left:4px solid #3b82f6;border-radius:8px;margin-bottom:2rem;padding:1.5rem;text-align:left}.App.dark .family-tree-page .error-container .error-content .error-suggestions{background:#3b82f626}.family-tree-page .error-container .error-content .error-suggestions .suggestion-title{color:#3b82f6;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.App.dark .family-tree-page .error-container .error-content .error-suggestions .suggestion-title{color:#60a5fa}.family-tree-page .error-container .error-content .error-suggestions ul{color:#4a5568;margin:0;padding-left:1.5rem}.App.dark .family-tree-page .error-container .error-content .error-suggestions ul{color:#cbd5e0}.family-tree-page .error-container .error-content .error-suggestions ul li{line-height:1.6;margin-bottom:.5rem}.family-tree-page .error-container .error-content .error-suggestions ul li:last-child{margin-bottom:0}.family-tree-page .error-container .error-content .error-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.family-tree-page .error-container .error-content .error-actions button{border:none;border-radius:12px;box-shadow:0 4px 12px #00000026;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 2rem;transition:all .3s ease}.family-tree-page .error-container .error-content .error-actions button:hover{box-shadow:0 6px 20px #0003;transform:translateY(-2px)}.family-tree-page .error-container .error-content .error-actions button:active{transform:translateY(0)}.family-tree-page .error-container .error-content .error-actions .btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.App.dark .family-tree-page .error-container .error-content .error-actions .btn-primary{background:linear-gradient(135deg,#60a5fa,#3b82f6)}.family-tree-page .error-container .error-content .error-actions .btn-secondary{background:#ffffffe6;border:2px solid #3b82f6;color:#3b82f6}.App.dark .family-tree-page .error-container .error-content .error-actions .btn-secondary{background:#1e293be6;border-color:#60a5fa;color:#60a5fa}@keyframes wilt{0%,to{transform:scale(1) rotate(0deg)}50%{transform:scale(.95) rotate(-5deg)}}@keyframes leafFall{0%{opacity:0;transform:translateY(0) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(100px) rotate(180deg)}}.alternative-family-tree{background:#0000;color:var(--text-primary);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100%;overflow:hidden;width:100%}.alternative-family-tree .alt-toolbar{align-items:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 4px 12px #00000014;display:flex;flex-shrink:0;gap:1.5rem;justify-content:space-between;padding:1rem 1.5rem;position:relative;z-index:100}.App.light .alternative-family-tree .alt-toolbar,.alternative-family-tree .alt-toolbar{background:#ffffff26;border-bottom:1px solid #fff3}.App.dark .alternative-family-tree .alt-toolbar{background:#1e293b40;border-bottom:1px solid #4755694d}.alternative-family-tree .alt-toolbar .toolbar-section{flex-shrink:0}.alternative-family-tree .alt-toolbar .toolbar-section h3{font-size:1.1rem;font-weight:600;margin:0}.alternative-family-tree .alt-toolbar .toolbar-search{flex:1 1;max-width:500px;min-width:250px}.alternative-family-tree .alt-toolbar .toolbar-controls{align-items:center;display:flex;flex-shrink:0;gap:.75rem}.alternative-family-tree .alt-toolbar .toolbar-controls .btn-add-gen{background:var(--primary-color);border:1px solid var(--primary-color);border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.alternative-family-tree .alt-toolbar .toolbar-controls .btn-add-gen:hover{background:var(--accent-color);border-color:var(--accent-color);transform:scale(1.05)}.alternative-family-tree .alt-toolbar .toolbar-controls .btn-add-gen:active{transform:scale(.95)}.alternative-family-tree .alt-toolbar .toolbar-controls .btn-zoom{background:var(--button-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem .75rem;transition:all .2s ease}.alternative-family-tree .alt-toolbar .toolbar-controls .btn-zoom:hover{background:var(--button-hover-bg);border-color:var(--primary-color)}.alternative-family-tree .alt-toolbar .toolbar-controls .btn-zoom:active{transform:scale(.95)}.alternative-family-tree .alt-toolbar .toolbar-controls .zoom-display{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;font-weight:600;min-width:60px;padding:.25rem .5rem;text-align:center}.alternative-family-tree .alt-toolbar .toolbar-controls .separator{background:var(--border-color);height:24px;margin:0 .25rem;width:1px}.alternative-family-tree .alt-toolbar .toolbar-controls .pan-info{color:var(--text-secondary);font-size:.8rem;font-style:italic;padding:0 .5rem}.alternative-family-tree .alt-tree-container,.alternative-family-tree .tree-container{background:#0000;cursor:grab;flex:1 1;overflow:auto;padding:2rem;position:relative}.alternative-family-tree .alt-tree-container:active,.alternative-family-tree .tree-container:active{cursor:grabbing}.alternative-family-tree .alt-tree-container::-webkit-scrollbar,.alternative-family-tree .tree-container::-webkit-scrollbar{height:8px;width:8px}.alternative-family-tree .alt-tree-container::-webkit-scrollbar-track,.alternative-family-tree .tree-container::-webkit-scrollbar-track{background:var(--bg-primary)}.alternative-family-tree .alt-tree-container::-webkit-scrollbar-thumb,.alternative-family-tree .tree-container::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:4px}.alternative-family-tree .alt-tree-container::-webkit-scrollbar-thumb:hover,.alternative-family-tree .tree-container::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}.alternative-family-tree .alt-tree-container .empty-state,.alternative-family-tree .tree-container .empty-state{align-items:center;color:var(--text-secondary);display:flex;font-size:1.1rem;height:100%;justify-content:center}.alternative-family-tree .tree-content{display:flex;flex-direction:column;gap:3rem;min-height:100%;padding-left:150px;position:relative;transform-origin:top left;transition:transform .2s ease-out}.alternative-family-tree .tree-content:before{background:var(--primary-color);bottom:0;content:"";left:60px;opacity:.5;position:absolute;top:0;width:2px}.alternative-family-tree .tree-content .generations-layout{display:flex;flex-direction:column;gap:4rem;min-height:100%;position:relative}.alternative-family-tree .tree-content .generation{align-items:flex-start;display:flex;flex-direction:row;gap:2rem;padding:1.5rem 0;position:relative;z-index:1}.alternative-family-tree .tree-content .generation:before{background:var(--primary-color);content:"";height:2px;left:-90px;opacity:.5;position:absolute;top:50%;width:90px}.alternative-family-tree .tree-content .generation .generation-header{align-items:center;display:flex;flex-direction:column;gap:.5rem;left:-140px;min-width:80px;position:absolute;top:50%;transform:translateY(-50%);z-index:10}.alternative-family-tree .tree-content .generation .generation-header h3{background:var(--primary-color);border-radius:8px;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin:0;padding:.25rem .6rem;text-transform:uppercase;white-space:nowrap}.alternative-family-tree .tree-content .generation .generation-header .btn-add-member{background:#fff;border:1px solid var(--primary-color);border-radius:8px;color:var(--primary-color);cursor:pointer;font-size:.65rem;font-weight:600;letter-spacing:.05em;padding:.25rem .5rem;text-transform:uppercase;transition:all .2s ease;white-space:nowrap}.alternative-family-tree .tree-content .generation .generation-header .btn-add-member:hover{background:var(--primary-color);color:#fff;transform:scale(1.05)}.alternative-family-tree .tree-content .generation .generation-header .btn-add-member:active{transform:scale(.95)}.alternative-family-tree .tree-content .generation .generation-members{align-items:flex-start;display:flex;flex:1 1;flex-wrap:wrap;gap:3rem;justify-content:flex-start;min-height:200px;position:relative}.alternative-family-tree .tree-content .generation .generation-members .member-card,.alternative-family-tree .tree-content .generation .generation-members .tree-node{flex:0 0 auto;position:relative}.tree-node{cursor:pointer;transition:all .2s ease}.tree-node.selected .node-card{box-shadow:0 0 0 3px var(--primary-color);transform:scale(1.05)}.tree-node .node-card{background:var(--node-bg-color);border:2px solid var(--node-border-color);border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:.75rem;transition:all .2s ease;width:180px}.App.dark .tree-node .node-card{box-shadow:0 4px 12px #0000004d}.tree-node .node-card:hover{border-color:var(--primary-color);box-shadow:0 6px 16px #00000026;transform:translateY(-4px)}.App.dark .tree-node .node-card:hover{box-shadow:0 6px 16px #0006}.tree-node .node-card .node-image-section{align-items:center;background:var(--avatar-bg-color);border-radius:8px;display:flex;height:100px;justify-content:center;margin-bottom:.75rem;overflow:hidden;width:100%}.tree-node .node-card .node-image-section .node-image{height:100%;object-fit:cover;width:100%}.tree-node .node-card .node-image-section .node-avatar{align-items:center;background:linear-gradient(135deg,var(--primary-color) 0,var(--accent-color) 100%);color:var(--primary-color);color:#fff;display:flex;font-size:2rem;font-weight:700;height:100%;justify-content:center;width:100%}.tree-node .node-card .node-info{margin-bottom:.5rem;text-align:center}.tree-node .node-card .node-info .node-name{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:.9rem;font-weight:600;line-height:1.3;margin:0;max-height:2.6em;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.tree-node .node-card .node-info .node-name .gender-icon{display:inline;flex-shrink:0;font-size:1rem;font-weight:700}.tree-node .node-card .node-info .node-name .gender-icon.male{color:var(--primary-color)}.tree-node .node-card .node-info .node-name .gender-icon.female{color:var(--accent-color)}.tree-node .node-card .node-info .node-dates{color:var(--text-secondary);font-family:Courier New,monospace;font-size:.75rem;margin:.25rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-node .node-card .node-actions{align-items:center;display:flex;gap:.5rem;justify-content:center}.tree-node .node-card .node-actions .btn-edit,.tree-node .node-card .node-actions .btn-gallery{align-items:center;background:linear-gradient(135deg,var(--primary-color) 0,#1976d2 100%);border:none;border-radius:8px;box-shadow:0 2px 8px #1a73e84d;color:#fff;cursor:pointer;display:flex;font-size:0;height:36px;justify-content:center;overflow:hidden;padding:0;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);width:36px}.tree-node .node-card .node-actions .btn-edit svg,.tree-node .node-card .node-actions .btn-gallery svg{stroke-width:2.5;height:18px;position:relative;transition:transform .25s ease;width:18px;z-index:1}.tree-node .node-card .node-actions .btn-edit:before,.tree-node .node-card .node-actions .btn-gallery:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .4s,height .4s;width:0}.tree-node .node-card .node-actions .btn-edit:hover,.tree-node .node-card .node-actions .btn-gallery:hover{box-shadow:0 6px 16px #1a73e866;transform:translateY(-2px) scale(1.05)}.tree-node .node-card .node-actions .btn-edit:hover svg,.tree-node .node-card .node-actions .btn-gallery:hover svg{transform:scale(1.1)}.tree-node .node-card .node-actions .btn-edit:hover:before,.tree-node .node-card .node-actions .btn-gallery:hover:before{height:100px;width:100px}.tree-node .node-card .node-actions .btn-edit:active,.tree-node .node-card .node-actions .btn-gallery:active{box-shadow:0 2px 6px #1a73e84d;transform:translateY(0) scale(.98)}.tree-node .node-card .node-actions .btn-edit{background:linear-gradient(135deg,#1a73e8,#1557b0)}.tree-node .node-card .node-actions .btn-edit:hover{background:linear-gradient(135deg,#1557b0,#0d47a1)}.tree-node .node-card .node-actions .btn-gallery{background:linear-gradient(135deg,#ff9800,#f57c00);box-shadow:0 2px 8px #ff98004d}.tree-node .node-card .node-actions .btn-gallery:hover{background:linear-gradient(135deg,#f57c00,#ef6c00);box-shadow:0 6px 16px #ff980066}@media(max-width:1024px){.tree-node .node-card{width:150px}.tree-node .node-card .node-image-section{height:80px}.tree-node .node-card .node-info .node-name{font-size:.85rem}.tree-node .node-card .node-info .node-dates{font-size:.7rem}}@media(max-width:768px){.alternative-family-tree .alt-toolbar{flex-direction:column;gap:.75rem}.alternative-family-tree .alt-toolbar .toolbar-controls{justify-content:center;width:100%}.tree-node .node-card{width:130px}.tree-node .node-card .node-image-section{height:70px}}.member-card{background:#fff;background:var(--node-bg-color,#fff);border:2px solid #e0e0e0;border:2px solid var(--node-border-color,#e0e0e0);border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;padding:1rem;transition:all .3s ease;width:200px}.App.dark .member-card{box-shadow:0 4px 12px #0000004d}.member-card:hover{border-color:#1a73e8;border-color:var(--primary-color,#1a73e8);box-shadow:0 6px 16px #00000026;transform:translateY(-4px)}.App.dark .member-card:hover{box-shadow:0 6px 16px #0006}.member-card.highlighted{animation:highlight-pulse 1.5s ease-in-out;border:3px solid #1a73e8;border:3px solid var(--primary-color,#1a73e8);box-shadow:0 0 20px #1a73e880;position:relative;transform:scale(1.05);z-index:10}.member-card .card-inner{display:flex;flex-direction:column;gap:.75rem}.member-card .member-photo{aspect-ratio:1;background:#f0f0f0;background:var(--avatar-bg,#f0f0f0);border-radius:8px;overflow:hidden;width:100%}.member-card .member-photo img{height:100%;object-fit:cover;width:100%}.member-card .member-photo .photo-placeholder{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;font-size:2rem;font-weight:600;height:100%;justify-content:center;width:100%}.member-card .member-info .member-name{color:var(--text-primary);font-size:.9rem;font-weight:600;margin:0 0 .25rem}.member-card .member-info .node-dates{color:var(--text-secondary);font-size:.75rem;margin:0}.member-card .node-actions{align-items:center;display:flex;gap:.5rem;margin-top:.5rem}.member-card .node-actions button{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;height:36px;justify-content:center;padding:.5rem;transition:all .2s ease;width:36px}.member-card .node-actions button svg{height:18px;transition:transform .2s ease;width:18px}.member-card .node-actions button:hover svg{transform:scale(1.15)}.member-card .node-actions .btn-edit{background:linear-gradient(135deg,#1a73e8,#1557b0);color:#fff}.member-card .node-actions .btn-edit:hover{box-shadow:0 4px 12px #1a73e866;transform:translateY(-2px) scale(1.05)}.member-card .node-actions .btn-gallery{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.member-card .node-actions .btn-gallery:hover{box-shadow:0 4px 12px #ff980066;transform:translateY(-2px) scale(1.05)}.member-card .node-actions .image-badge{background:#ff9800;background:var(--accent-color,#ff9800);border-radius:10px;color:#fff;font-size:.7rem;font-weight:600;padding:.15rem .4rem}@keyframes highlight-pulse{0%{box-shadow:0 0 0 0 #1a73e8b3}50%{box-shadow:0 0 0 15px #1a73e800}to{box-shadow:0 0 20px #1a73e880}}.generation-members{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;position:relative}.generation-members .spouse-connections{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.generation-members .spouse-connections .spouse-line{stroke:var(--primary-color);stroke-width:2px;opacity:.6;transition:opacity .2s ease,stroke-width .2s ease}.generation-members .spouse-connections .spouse-line:hover{stroke-width:3px;opacity:.9}.tree-meta-info{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#ffffff26,#ffffff0d);border:1px solid #fff3;border-radius:12px;box-shadow:0 4px 16px #0000001a;display:flex;gap:2rem;margin-top:12px;padding:12px 20px}.App.dark .tree-meta-info{background:linear-gradient(135deg,#1e293b66,#1e293b33);border:1px solid #4755694d}.tree-meta-info .slug-container{align-items:center;display:flex;flex-shrink:0;gap:8px}.tree-meta-info .slug-container .slug-label{color:var(--text-secondary);font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.tree-meta-info .slug-container .slug-value{background:#1976d21a;border:1px solid #1976d233;border-radius:6px;color:#1976d2;font-family:Courier New,monospace;font-size:.95rem;font-weight:600;padding:6px 12px}.App.dark .tree-meta-info .slug-container .slug-value{background:#64b5f626;border-color:#64b5f64d;color:#64b5f6}.tree-meta-info .share-link-container{align-items:center;display:flex;flex:1 1;gap:10px;min-width:0}.tree-meta-info .share-link-container .share-label{color:var(--text-secondary);flex-shrink:0;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.tree-meta-info .share-link-container .share-input-wrapper{align-items:center;background:#ffffffe6;border:1px solid #0000001a;border-radius:8px;display:flex;flex:1 1;gap:8px;padding:8px 12px;transition:all .2s ease}.App.dark .tree-meta-info .share-link-container .share-input-wrapper{background:#1e293b99;border-color:#47556966}.tree-meta-info .share-link-container .share-input-wrapper:hover{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.tree-meta-info .share-link-container .share-input-wrapper .share-url{background:#0000;border:none;color:#1976d2;flex:1 1;font-family:Courier New,monospace;font-size:.85rem;font-weight:500;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.App.dark .tree-meta-info .share-link-container .share-input-wrapper .share-url{color:#64b5f6}.tree-meta-info .share-link-container .share-input-wrapper .share-actions{display:flex;flex-shrink:0;gap:6px}.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-copy,.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help{align-items:center;background:#0000000d;border:none;border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s ease}.App.dark .tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-copy,.App.dark .tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help{background:#ffffff1a}.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-copy:hover,.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help:hover{background:#0000001a;transform:translateY(-1px)}.App.dark .tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-copy:hover,.App.dark .tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help:hover{background:#ffffff26}.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-copy:active,.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help:active{transform:translateY(0)}.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help{background:linear-gradient(135deg,#1976d2,#1565c0);color:#fff;position:relative}.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help:hover{animation:pulse .6s ease-in-out;background:linear-gradient(135deg,#1565c0,#0d47a1);transform:translateY(-1px)}.tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help:active{animation:bounce .3s ease}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.help-modal-overlay{align-items:center;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:99999}.help-modal-overlay.closing{animation:fadeOut .2s ease}.help-modal-content{animation:slideUpBounce .5s cubic-bezier(.68,-.55,.265,1.55);background:linear-gradient(135deg,#fffffffa,#fffffff2);border-radius:20px;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff80;max-height:85vh;max-width:750px;overflow-y:auto;width:90%}.App.dark .help-modal-content{background:linear-gradient(135deg,#1e293bfa,#1e293bf2);box-shadow:0 20px 60px #00000080,0 0 0 1px #47556980}.help-modal-overlay.closing .help-modal-content{animation:slideDown .2s ease}.help-modal-content::-webkit-scrollbar{width:8px}.help-modal-content::-webkit-scrollbar-track{background:#0000000d;border-radius:10px}.help-modal-content::-webkit-scrollbar-thumb{background:#0003;border-radius:10px}.help-modal-content::-webkit-scrollbar-thumb:hover{background:#0000004d}.help-modal-header{align-items:center;background:linear-gradient(135deg,#673ab70d,#3f51b50d);border-bottom:1px solid #0000001a;display:flex;justify-content:space-between;padding:2rem;position:relative}.App.dark .help-modal-header{background:linear-gradient(135deg,#673ab71a,#3f51b51a);border-bottom-color:#ffffff1a}.help-modal-header .header-icon-wrapper{left:2rem;position:absolute;top:50%;transform:translateY(-50%)}.help-modal-header .header-icon-wrapper .header-icon{animation:bookFlip 3s ease-in-out infinite;display:block;font-size:2.5rem}.help-modal-header .header-icon-wrapper .icon-sparkles{height:60px;position:absolute;right:-10px;top:-10px;width:60px}.help-modal-header .header-icon-wrapper .icon-sparkles .sparkle{animation:sparkleFloat 2s ease-in-out infinite;font-size:1rem;position:absolute}.help-modal-header .header-icon-wrapper .icon-sparkles .sparkle:first-child{animation-delay:0s;right:0;top:0}.help-modal-header .header-icon-wrapper .icon-sparkles .sparkle:nth-child(2){animation-delay:.7s;right:20px;top:10px}.help-modal-header .header-icon-wrapper .icon-sparkles .sparkle:nth-child(3){animation-delay:1.4s;right:5px;top:20px}.help-modal-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#673ab7,#3f51b5);-webkit-background-clip:text;background-clip:text;flex:1 1;font-size:1.75rem;font-weight:700;margin:0;padding:0 3rem;text-align:center}.App.dark .help-modal-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#9c88ff,#7c9aff);-webkit-background-clip:text;background-clip:text}.help-modal-header .close-btn{align-items:center;background:#f443361a;border:none;border-radius:50%;color:#d32f2f;cursor:pointer;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;transition:all .3s ease;width:40px}.App.dark .help-modal-header .close-btn{background:#ef444426;color:#ef4444}.help-modal-header .close-btn:hover{background:#f4433633;transform:rotate(90deg) scale(1.1)}.help-modal-header .close-btn:active{transform:rotate(90deg) scale(.95)}.help-modal-body{padding:2rem}.help-modal-body .help-section{animation:fadeInUp .6s ease backwards;background:#ffffff80;border:1px solid #0000000d;border-radius:12px;margin-bottom:2rem;padding:1.5rem;transition:all .3s ease}.App.dark .help-modal-body .help-section{background:#ffffff08;border-color:#ffffff0d}.help-modal-body .help-section:hover{box-shadow:0 8px 20px #0000001a;transform:translateY(-2px)}.help-modal-body .help-section:first-child{animation-delay:.1s}.help-modal-body .help-section:nth-child(2){animation-delay:.2s}.help-modal-body .help-section:nth-child(3){animation-delay:.3s}.help-modal-body .help-section:nth-child(4){animation-delay:.4s}.help-modal-body .help-section:nth-child(5){animation-delay:.5s}.help-modal-body .help-section:nth-child(6){animation-delay:.6s}.help-modal-body .help-section .section-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.help-modal-body .help-section .section-header .section-icon{animation:iconBounce 2s ease-in-out infinite;font-size:2rem}.help-modal-body .help-section .section-header h3{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0}.help-modal-body .help-section p{color:var(--text-secondary);line-height:1.7;margin-bottom:.75rem}.help-modal-body .help-section p:last-child{margin-bottom:0}.help-modal-body .help-section .help-highlight{background:linear-gradient(135deg,#4caf501a,#8bc34a1a);border-left:3px solid #4caf50;border-radius:8px;color:#2e7d32;font-weight:500;padding:.75rem 1rem}.App.dark .help-modal-body .help-section .help-highlight{color:#81c784}.help-modal-body .help-section .help-warning-box{animation:warningPulse 2s ease-in-out infinite;background:linear-gradient(135deg,#f4433614,#d32f2f14);border:2px solid #f443364d;border-radius:10px;display:flex;gap:1rem;margin-top:1rem;padding:1.25rem}.App.dark .help-modal-body .help-section .help-warning-box{background:linear-gradient(135deg,#f4433626,#d32f2f26);border-color:#f4433680}.help-modal-body .help-section .help-warning-box .warning-icon{animation:iconShake 3s ease-in-out infinite;flex-shrink:0;font-size:1.8rem}.help-modal-body .help-section .help-warning-box .warning-content{flex:1 1}.help-modal-body .help-section .help-warning-box .warning-content .warning-title{color:#c62828;display:block;font-size:1rem;font-weight:700;margin-bottom:.5rem}.App.dark .help-modal-body .help-section .help-warning-box .warning-content .warning-title{color:#ef5350}.help-modal-body .help-section .help-warning-box .warning-content p{color:#d32f2f;font-size:.9rem;line-height:1.6;margin-bottom:.5rem}.App.dark .help-modal-body .help-section .help-warning-box .warning-content p{color:#e57373}.help-modal-body .help-section .help-warning-box .warning-content p:last-child{margin-bottom:0}.help-modal-body .help-section .help-warning-box .warning-content .warning-emphasis{color:#b71c1c;font-weight:700}.App.dark .help-modal-body .help-section .help-warning-box .warning-content .warning-emphasis{color:#ff5252}.help-modal-body .help-section .help-warning-box .warning-content .warning-advice{font-style:italic;font-weight:600;margin-top:.75rem}@keyframes warningPulse{0%,to{box-shadow:0 0 0 0 #f4433666}50%{box-shadow:0 0 15px 3px #f4433633}}@keyframes iconShake{0%,to{transform:rotate(0deg)}10%,30%,50%,70%,90%{transform:rotate(-5deg)}20%,40%,60%,80%{transform:rotate(5deg)}}.help-modal-body .step-list{display:flex;flex-direction:column;gap:.75rem}.help-modal-body .step-list .step-item{align-items:center;background:#673ab70d;border-radius:8px;display:flex;gap:1rem;padding:.75rem 1rem;transition:all .2s ease}.App.dark .help-modal-body .step-list .step-item{background:#673ab71a}.help-modal-body .step-list .step-item:hover{background:#673ab71a;transform:translateX(4px)}.help-modal-body .step-list .step-item .step-number{align-items:center;background:linear-gradient(135deg,#673ab7,#3f51b5);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:28px;justify-content:center;width:28px}.help-modal-body .step-list .step-item span:last-child{color:var(--text-secondary);line-height:1.6}.help-modal-body .feature-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:1rem}.help-modal-body .feature-grid .feature-card{background:linear-gradient(135deg,#fffc,#fff9);border:1px solid #0000000d;border-radius:12px;padding:1.25rem;text-align:center;transition:all .3s ease}.App.dark .help-modal-body .feature-grid .feature-card{background:linear-gradient(135deg,#ffffff0d,#ffffff05);border-color:#ffffff1a}.help-modal-body .feature-grid .feature-card:hover{box-shadow:0 8px 16px #00000026;transform:translateY(-4px)}.help-modal-body .feature-grid .feature-card .feature-icon{animation:iconFloat 3s ease-in-out infinite;display:block;font-size:2rem;margin-bottom:.5rem}.help-modal-body .feature-grid .feature-card p{color:var(--text-secondary);font-size:.875rem;margin:0}.help-modal-body .encouragement-box{background:linear-gradient(135deg,#673ab71a,#3f51b51a);border:2px solid #673ab733;border-radius:12px;padding:1.5rem}.App.dark .help-modal-body .encouragement-box{background:linear-gradient(135deg,#673ab726,#3f51b526);border-color:#673ab74d}.help-modal-body .encouragement-box .encouragement-title{color:#673ab7;font-size:1.1rem;margin:0 0 1rem}.App.dark .help-modal-body .encouragement-box .encouragement-title{color:#9c88ff}.help-modal-body .encouragement-box .encouragement-items{display:flex;flex-direction:column;gap:.75rem}.help-modal-body .encouragement-box .encouragement-items .encouragement-item{align-items:center;color:var(--text-secondary);display:flex;gap:.75rem}.help-modal-body .encouragement-box .encouragement-items .encouragement-item .check-icon{align-items:center;animation:checkPulse 2s ease-in-out infinite;background:linear-gradient(135deg,#4caf50,#8bc34a);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:24px;justify-content:center;width:24px}.help-modal-body .help-code-block{align-items:center;background:linear-gradient(135deg,#2196f31a,#1565c01a);border-left:4px solid #1976d2;border-radius:10px;display:flex;gap:.75rem;margin:1rem 0;padding:1rem 1.25rem;position:relative}.App.dark .help-modal-body .help-code-block{background:linear-gradient(135deg,#2196f326,#1565c026)}.help-modal-body .help-code-block code{color:#1565c0;flex:1 1;font-family:Courier New,monospace;font-size:.9rem;font-weight:600;word-break:break-all}.App.dark .help-modal-body .help-code-block code{color:#42a5f5}.help-modal-body .help-code-block .copy-btn-mini{background:#1976d21a;border:none;border-radius:6px;cursor:pointer;flex-shrink:0;font-size:1.25rem;padding:.5rem;transition:all .2s ease}.help-modal-body .help-code-block .copy-btn-mini:hover{background:#1976d233;transform:scale(1.1)}.help-modal-body .help-code-block .copy-btn-mini:active{transform:scale(.95)}.help-modal-body .help-note{align-items:flex-start;animation:tipGlow 3s ease-in-out infinite;background:linear-gradient(135deg,#ffc10726,#ffa00026);border-left:4px solid #ffa000;border-radius:12px;display:flex;gap:1rem;margin-top:2rem;padding:1.25rem}.App.dark .help-modal-body .help-note{background:linear-gradient(135deg,#ffc10733,#ffa00033)}.help-modal-body .help-note .note-icon{animation:bulbGlow 2s ease-in-out infinite;flex-shrink:0;font-size:1.5rem}.help-modal-body .help-note div{color:var(--text-secondary);line-height:1.6}.help-modal-body .help-note strong{color:#f57c00;font-weight:700}.App.dark .help-modal-body .help-note strong{color:#ffb74d}.help-modal-footer{align-items:center;background:linear-gradient(0deg,#00000005 0,#0000);border-top:1px solid var(--border-color);display:flex;justify-content:center;padding:1.5rem 2rem}.App.dark .help-modal-footer{background:linear-gradient(0deg,#ffffff05 0,#0000)}.help-modal-footer .proceed-btn{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;box-shadow:0 4px 16px #10b9814d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;overflow:hidden;padding:.875rem 2.5rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.help-modal-footer .proceed-btn:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.help-modal-footer .proceed-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 24px #10b98166;transform:translateY(-2px)}.help-modal-footer .proceed-btn:hover:before{height:300px;width:300px}.help-modal-footer .proceed-btn:active{box-shadow:0 2px 8px #10b9814d;transform:translateY(0)}@media(max-width:768px){.help-modal-footer .proceed-btn{font-size:.95rem;padding:.75rem 2rem}}@media(max-width:480px){.help-modal-footer .proceed-btn{justify-content:center;width:100%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bookFlip{0%,to{transform:rotateY(0deg)}50%{transform:rotateY(15deg)}}@keyframes sparkleFloat{0%,to{opacity:0;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-10px) scale(1.2)}}@keyframes iconBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes checkPulse{0%,to{box-shadow:0 0 0 0 #4caf5066;transform:scale(1)}50%{box-shadow:0 0 0 4px #4caf5000;transform:scale(1.05)}}@keyframes tipGlow{0%,to{box-shadow:0 0 0 0 #ffa00000}50%{box-shadow:0 0 20px 0 #ffa00033}}@keyframes bulbGlow{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 8px rgba(255,193,7,.8))}}@keyframes slideUpBounce{0%{opacity:0;transform:translateY(30px) scale(.95)}60%{opacity:1;transform:translateY(-5px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(20px) scale(.95)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@media print{.alternative-family-tree{background:#fff}.alt-toolbar{display:none}.alt-tree-container{padding:0;transform:none!important}.tree-node .node-card{border:1px solid #ddd;box-shadow:none}.tree-node .node-card:hover{transform:none}}:root{--primary:#000;--secondary:#fff;--text:inherit;--scrollbar-track:#2d1950;--scrollbar-thumb:rgba(178,121,216,.959);--scrollbar-thumb-hover:rgba(222,130,235,.911)}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:#2d1950;background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:rgba(178,121,216,.959);background:var(--scrollbar-thumb);border-radius:12px}::-webkit-scrollbar-thumb:hover{background:rgba(222,130,235,.911);background:var(--scrollbar-thumb-hover);border-radius:12px}.App *{transition:background-color .3s ease,color .3s ease}.modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.modal-content{background:var(--bg-primary);color:var(--text-primary)}@media(max-width:768px){.modal-content{border-radius:8px;max-height:95vh;max-width:95%;width:95%}}@media(max-width:480px){.modal-content{border-radius:0;max-height:100vh;max-width:100%;width:100%}}@media(max-width:768px){.modal-content .modal-header{padding:1.25rem}}@media(max-width:480px){.modal-content .modal-header{padding:1rem}}.modal-content .modal-header h2{font-size:1.5rem;font-weight:500}@media(max-width:768px){.modal-content .modal-header h2{font-size:1.25rem}}@media(max-width:480px){.modal-content .modal-header h2{font-size:1.1rem}}.modal-content .modal-header .modal-close{height:36px;transition:all .2s;width:36px}.modal-content .modal-header .modal-close:hover{color:var(--danger-color);transform:scale(1.2)}.modal-content .modal-body .form-group{margin-bottom:1.25rem}.modal-content .modal-body .form-group label{color:var(--text-primary);display:block;font-size:.95rem;font-weight:500;margin-bottom:.5rem}.modal-content .modal-body .form-group .form-input,.modal-content .modal-body .form-group input,.modal-content .modal-body .form-group select,.modal-content .modal-body .form-group textarea{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:1rem;padding:.75rem;transition:all .2s;width:100%}.modal-content .modal-body .form-group .form-input:focus,.modal-content .modal-body .form-group input:focus,.modal-content .modal-body .form-group select:focus,.modal-content .modal-body .form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #1a73e81a;outline:none}.modal-content .modal-body .form-group .form-input::placeholder,.modal-content .modal-body .form-group input::placeholder,.modal-content .modal-body .form-group select::placeholder,.modal-content .modal-body .form-group textarea::placeholder{color:var(--text-tertiary)}.modal-content .modal-body .form-group textarea{min-height:80px;resize:vertical}.modal-content .modal-body .error-message{align-items:center;background:linear-gradient(135deg,#ffebee,#ffcdd2);border-left:4px solid #d32f2f;border-radius:8px;color:#c62828;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:16px;padding:12px 16px}.App.dark .modal-content .modal-body .error-message{background:linear-gradient(135deg,#4a0e0e,#6a1b1b);color:#ff5252}.modal-content .modal-body .success-message{align-items:center;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-left:4px solid #4caf50;border-radius:8px;color:#2e7d32;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:16px;padding:12px 16px}.App.dark .modal-content .modal-body .success-message{background:linear-gradient(135deg,#1b5e20,#2e7d32);color:#69f0ae}@media(max-width:768px){.modal-content .modal-footer{gap:.75rem;padding:1.25rem}}@media(max-width:480px){.modal-content .modal-footer{flex-direction:column-reverse;gap:.5rem;padding:1rem}}.modal-content .modal-footer .btn,.modal-content .modal-footer button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:.875rem 1.75rem;transition:all .25s cubic-bezier(.4,0,.2,1)}@media(max-width:768px){.modal-content .modal-footer .btn,.modal-content .modal-footer button{font-size:.95rem;padding:.75rem 1.5rem}}@media(max-width:480px){.modal-content .modal-footer .btn,.modal-content .modal-footer button{font-size:.9rem;min-height:44px;padding:.65rem 1.25rem;width:100%}}.modal-content .modal-footer .btn.btn-primary,.modal-content .modal-footer button.btn-primary{background:linear-gradient(135deg,#1a73e8,#1765cc);box-shadow:0 4px 12px #1a73e84d;color:#fff}.modal-content .modal-footer .btn.btn-primary:hover,.modal-content .modal-footer button.btn-primary:hover{background:linear-gradient(135deg,#1765cc,#1557b0);box-shadow:0 6px 20px #1a73e880;transform:translateY(-2px)}.modal-content .modal-footer .btn.btn-primary:disabled,.modal-content .modal-footer button.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.modal-content .modal-footer .btn.btn-secondary,.modal-content .modal-footer button.btn-secondary{background:linear-gradient(135deg,#f1f3f4,#e8eaed);box-shadow:0 2px 8px #0000001a;color:#5f6368}.App.dark .modal-content .modal-footer .btn.btn-secondary,.App.dark .modal-content .modal-footer button.btn-secondary{background:linear-gradient(135deg,#3c4043,#2d3033);color:#e8eaed}.modal-content .modal-footer .btn.btn-secondary:hover,.modal-content .modal-footer button.btn-secondary:hover{background:linear-gradient(135deg,#e8eaed,#dadce0);box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.App.dark .modal-content .modal-footer .btn.btn-secondary:hover,.App.dark .modal-content .modal-footer button.btn-secondary:hover{background:linear-gradient(135deg,#2d3033,#202124)}.modal-content .modal-footer .btn svg,.modal-content .modal-footer button svg{height:20px;width:20px}.modal{animation:slideUp .3s ease-out;background-color:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.App.dark .modal{background-color:#0006;box-shadow:0 20px 60px #ffffff1a}.modal .modal-header{align-items:center;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding:1.5rem}.App.dark .modal .modal-header{border-bottom-color:#333}.modal .modal-header .modal-title{font-size:1.5rem;font-weight:500}.modal .modal-header .modal-close{background:none;border:none;cursor:pointer;font-size:1.5rem;opacity:.7;transition:opacity .2s}.modal .modal-header .modal-close:hover{opacity:1}.modal .modal-body{padding:1.5rem}.modal .modal-footer{border-top:1px solid #ddd;display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem}.App.dark .modal .modal-footer{border-top-color:#333}.modal .modal-footer .btn,.modal .modal-footer button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;overflow:hidden;padding:.875rem 1.75rem;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.modal .modal-footer .btn:before,.modal .modal-footer button:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.modal .modal-footer .btn:hover:before,.modal .modal-footer button:hover:before{height:300px;width:300px}.modal .modal-footer .btn.btn-primary,.modal .modal-footer button.btn-primary{background:linear-gradient(135deg,#4caf50,#45a049)!important;border:none!important;box-shadow:0 4px 12px #4caf504d!important;color:#fff!important}.modal .modal-footer .btn.btn-primary:hover,.modal .modal-footer button.btn-primary:hover{background:linear-gradient(135deg,#45a049,#3d8b40)!important;box-shadow:0 6px 20px #4caf5080!important;transform:translateY(-3px)!important}.modal .modal-footer .btn.btn-primary:active,.modal .modal-footer button.btn-primary:active{box-shadow:0 3px 10px #4caf5066!important;transform:translateY(-1px)!important}.modal .modal-footer .btn.btn-primary:disabled,.modal .modal-footer button.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.modal .modal-footer .btn.btn-secondary,.modal .modal-footer button.btn-secondary{background:linear-gradient(135deg,#ff9800,#f57c00)!important;border:none!important;box-shadow:0 4px 12px #ff98004d!important;color:#fff!important}.modal .modal-footer .btn.btn-secondary:hover,.modal .modal-footer button.btn-secondary:hover{background:linear-gradient(135deg,#f57c00,#ef6c00)!important;box-shadow:0 6px 20px #ff980080!important;transform:translateY(-3px)!important}.modal .modal-footer .btn.btn-secondary:active,.modal .modal-footer button.btn-secondary:active{box-shadow:0 3px 10px #ff980066!important;transform:translateY(-1px)!important}.modal .modal-footer .btn.btn-secondary:disabled,.modal .modal-footer button.btn-secondary:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.image-slider{align-items:center;background-color:#0000001a;border-radius:8px;display:flex;justify-content:center;overflow:hidden;position:relative}.image-slider .slider-image{background-color:#0000000d;height:400px;object-fit:contain;width:100%}.image-slider .slider-navigation{align-items:center;bottom:1rem;display:flex;gap:.5rem;left:50%;position:absolute;transform:translateX(-50%)}.image-slider .slider-navigation button{background-color:#00000080;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s}.image-slider .slider-navigation button:hover{background-color:#000000b3}.image-slider .slider-navigation button:disabled{cursor:not-allowed;opacity:.5}.image-slider .slider-navigation .slider-counter{background-color:#00000080;border-radius:4px;color:#fff;font-size:.9rem;padding:.5rem 1rem}.image-form{display:flex;flex-direction:column;gap:1.5rem}.image-form .form-section{display:flex;flex-direction:column;gap:.75rem}.image-form .form-section .section-title{border-bottom:2px solid #00ffa4;font-size:1rem;font-weight:500;padding-bottom:.5rem}.image-form .form-section .section-description{font-size:.85rem;line-height:1.4;opacity:.7}.image-form .form-section .instructions{background-color:#00ffa40d;border-left:4px solid #00ffa4;border-radius:4px;font-size:.9rem;padding:1rem}.image-form .form-section .instructions ol,.image-form .form-section .instructions ul{margin:.5rem 0;padding-left:1.5rem}.image-form .form-section .instructions ol li,.image-form .form-section .instructions ul li{line-height:1.4;margin-bottom:.5rem}.image-form .form-section .form-group{display:flex;flex-direction:column;gap:.5rem}.image-form .form-section .form-group label{font-size:.95rem;font-weight:500}.image-form .form-section .form-group input,.image-form .form-section .form-group textarea{border:1px solid #ddd;border-radius:6px;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .2s}.App.dark .image-form .form-section .form-group input,.App.dark .image-form .form-section .form-group textarea{background-color:#ffffff0d;border-color:#333;color:#e0e0e0}.image-form .form-section .form-group input:focus,.image-form .form-section .form-group textarea:focus{border-color:#00ffa4;box-shadow:0 0 0 3px #00ffa41a;outline:none}.image-form .form-section .form-group .input-hint{font-size:.85rem;opacity:.7}.image-form .image-preview{background-color:#0000000d;border:2px dashed #ddd;border-radius:8px;padding:1rem;text-align:center}.App.dark .image-form .image-preview{background-color:#ffffff05;border-color:#333}.image-form .image-preview img{border-radius:4px;margin-bottom:.5rem;max-height:200px;max-width:100%}.image-form .image-preview .preview-actions{display:flex;gap:.5rem;justify-content:center}.image-form .image-preview .preview-actions button{background-color:#0000;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s}.App.dark .image-form .image-preview .preview-actions button{border-color:#333}.image-form .image-preview .preview-actions button:hover{background-color:#0000000d}.App.dark .image-form .image-preview .preview-actions button:hover{background-color:#ffffff0d}.edit-form{gap:1.5rem}.edit-form,.edit-form .form-group{display:flex;flex-direction:column}.edit-form .form-group{gap:.5rem}.edit-form .form-group label{font-size:.95rem;font-weight:500}.edit-form .form-group input,.edit-form .form-group select{border:1px solid #ddd;border-radius:6px;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .2s}.App.dark .edit-form .form-group input,.App.dark .edit-form .form-group select{background-color:#ffffff0d;border-color:#333;color:#e0e0e0}.edit-form .form-group input:focus,.edit-form .form-group select:focus{border-color:#00ffa4;box-shadow:0 0 0 3px #00ffa41a;outline:none}.edit-form .form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media(max-width:500px){.edit-form .form-row{grid-template-columns:1fr}}.modal-content{animation:slideUp .3s ease-out;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.App.dark .modal-content{box-shadow:0 20px 60px #ffffff1a}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-content .modal-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1.5rem}.modal-content .modal-header h2{color:var(--text-primary);font-size:1.3rem;font-weight:600;margin:0}.modal-content .modal-header .modal-close{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.modal-content .modal-header .modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-content .modal-body{padding:1.5rem}.modal-content .modal-footer{border-top:1px solid var(--border-color);display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem}.modal-content .modal-footer .btn-add,.modal-content .modal-footer .btn-cancel,.modal-content .modal-footer button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-weight:600;gap:8px;justify-content:center;overflow:hidden;padding:.875rem 1.75rem;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-content .modal-footer .btn-add:before,.modal-content .modal-footer .btn-cancel:before,.modal-content .modal-footer button:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.modal-content .modal-footer .btn-add:hover:before,.modal-content .modal-footer .btn-cancel:hover:before,.modal-content .modal-footer button:hover:before{height:300px;width:300px}.modal-content .modal-footer .btn-cancel{background:linear-gradient(135deg,#757575,#616161)!important;box-shadow:0 4px 12px #7575754d!important;color:#fff!important}.modal-content .modal-footer .btn-cancel:hover{background:linear-gradient(135deg,#616161,#424242)!important;box-shadow:0 6px 20px #75757580!important;transform:translateY(-3px)}.modal-content .modal-footer .btn-cancel:active{box-shadow:0 3px 10px #75757566!important;transform:translateY(-1px)}.modal-content .modal-footer .btn-add{background:linear-gradient(135deg,#4caf50,#45a049)!important;box-shadow:0 4px 12px #4caf504d!important;color:#fff!important}.modal-content .modal-footer .btn-add:hover{background:linear-gradient(135deg,#45a049,#3d8b40)!important;box-shadow:0 6px 20px #4caf5080!important;transform:translateY(-3px)}.modal-content .modal-footer .btn-add:active{box-shadow:0 3px 10px #4caf5066!important;transform:translateY(-1px);transform:scale(.95)}.add-member-modal .form-info{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-top:1rem;padding:1rem}.add-member-modal .form-info p{color:var(--text-primary);font-size:.95rem;margin:0}.add-member-modal .form-info p strong{color:var(--primary-color);font-weight:600}.image-upload-section{align-items:flex-start;display:flex;gap:.75rem}.image-upload-section input[type=url]{flex:1 1}.image-upload-section button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-weight:500;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.image-upload-section button:hover{box-shadow:0 4px 12px #667eea4d;transform:translateY(-2px)}.image-upload-section button:active{transform:translateY(0)}.btn-gallery-add-member{align-items:center;background:#ff9800;background:var(--accent-color,#ff9800);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:12px 20px;transition:all .2s ease;width:100%}.btn-gallery-add-member:hover{background:#fb8c00;box-shadow:0 4px 12px #ff98004d;transform:translateY(-2px)}.btn-gallery-add-member:active{transform:translateY(0)}.App.dark .btn-gallery-add-member{background:#fb8c00}.App.dark .btn-gallery-add-member:hover{background:#f57c00}.added-images-list{grid-gap:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));margin-top:1rem;padding:1rem}.added-images-list .added-image-item{aspect-ratio:1;border:2px solid var(--border-color);border-radius:8px;overflow:hidden;position:relative;transition:all .2s}.added-images-list .added-image-item:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #00000026}.added-images-list .added-image-item:hover .btn-remove-image{opacity:1}.added-images-list .added-image-item .image-preview{height:100%;object-fit:cover;width:100%}.added-images-list .added-image-item .btn-remove-image{align-items:center;background:#dc2626e6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;opacity:0;position:absolute;right:4px;top:4px;transition:all .2s;width:24px}.added-images-list .added-image-item .btn-remove-image:hover{background:#b91c1c;transform:scale(1.1)}.pinch-zoom-pan-container{background:#0000;border-radius:8px;box-shadow:none;cursor:grab;height:100%;overflow:hidden;position:relative;width:100%}.pinch-zoom-pan-container.dragging{cursor:grabbing}.pinch-zoom-pan-container.dark,.pinch-zoom-pan-container.dark .pzp-content{background:#0000}.pinch-zoom-pan-container .pzp-content{background:#0000;cursor:inherit;height:100%;scroll-behavior:smooth;touch-action:none;transition:background-color .2s ease;-webkit-user-select:none;user-select:none;width:100%}@supports(touch-action:manipulation){.pinch-zoom-pan-container{touch-action:manipulation}}.pinch-zoom-pan-container svg{transition:transform .3s ease-out}@media(max-width:768px){.pinch-zoom-pan-container{border-radius:4px;box-shadow:0 1px 4px #0000001a}}@media(prefers-reduced-motion:reduce){.pinch-zoom-pan-container .pzp-content,.pinch-zoom-pan-container svg{scroll-behavior:auto!important;transition:none!important}}@media(prefers-contrast:more){.pinch-zoom-pan-container{border:2px solid #000;border:2px solid var(--text-primary,#000)}}.react-family-tree-view{background:#0000;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;width:100%}.react-family-tree-view .tree-toolbar{align-items:center;background:#0000;border-bottom:1px solid #ffffff1a;display:flex;flex-shrink:0;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;padding:1rem 1.5rem}@media(max-width:1024px){.react-family-tree-view .tree-toolbar{gap:1rem;padding:.875rem 1rem}}@media(max-width:768px){.react-family-tree-view .tree-toolbar{gap:.75rem;padding:.75rem}}@media(max-width:480px){.react-family-tree-view .tree-toolbar{gap:.5rem;padding:.5rem}}.react-family-tree-view .tree-toolbar .page-meta{align-items:center;display:flex;flex:0 1 auto;max-width:100%;min-width:0;overflow:hidden}@media(max-width:768px){.react-family-tree-view .tree-toolbar .page-meta{width:100%}}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#ffffff26,#ffffff0d);border:1px solid #fff3;border-radius:8px;box-shadow:0 4px 12px #00000014;display:flex;gap:1.5rem;height:44px;margin-top:0;padding:.5rem .75rem}@media(max-width:1024px){.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info{gap:1rem;height:auto;min-height:40px;padding:.5rem}}@media(max-width:768px){.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info{align-items:flex-start;flex-direction:column;gap:.75rem;height:auto;max-width:100%;overflow:hidden;width:100%}}.App.dark .react-family-tree-view .tree-toolbar .page-meta .tree-meta-info{background:linear-gradient(135deg,#1e293b66,#1e293b33);border:1px solid #4755694d}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container,.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container{align-items:center;display:flex}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container{flex-shrink:0;gap:6px}@media(max-width:768px){.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container{max-width:100%;overflow:hidden;width:100%}}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container .slug-label{color:#757575;color:var(--text-secondary);font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}@media(max-width:480px){.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container .slug-label{font-size:.75rem}}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container .slug-value{background:#1976d21a;border:1px solid #1976d233;border-radius:6px;color:#1976d2;font-family:Courier New,monospace;font-size:.85rem;font-weight:600;padding:4px 10px}@media(max-width:480px){.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container .slug-value{font-size:.75rem;max-width:150px;overflow:hidden;padding:3px 8px;text-overflow:ellipsis;white-space:nowrap}}.App.dark .react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .slug-container .slug-value{background:#64b5f626;border-color:#64b5f64d;color:#64b5f6}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container{flex:1 1;gap:8px;min-width:0}@media(max-width:768px){.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container{max-width:100%;overflow:hidden;width:100%}}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-label{color:#757575;color:var(--text-secondary);flex-shrink:0;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}@media(max-width:480px){.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-label{display:none;font-size:.75rem}}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper{align-items:center;background:#ffffffe6;border:1px solid #0000001a;border-radius:6px;display:flex;flex:1 1;gap:6px;height:32px;padding:4px 10px;transition:all .2s ease}.App.dark .react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper{background:#1e293b99;border-color:#47556966}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper:hover{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-url{background:#0000;border:none;color:#1976d2;flex:1 1;font-family:Courier New,monospace;font-size:.8rem;font-weight:500;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.App.dark .react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-url{color:#64b5f6}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions{display:flex;flex-shrink:0;gap:4px}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions button{align-items:center;background:#0000000d;border:none;border-radius:4px;color:#212121;color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s ease}.App.dark .react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions button{background:#ffffff1a}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions button svg{display:block;height:16px;width:16px}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions button:hover{background:#0000001a;transform:translateY(-1px)}.App.dark .react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions button:hover{background:#ffffff26}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions button:active{transform:translateY(0)}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help{background:linear-gradient(135deg,#1976d2,#1565c0);color:#fff}.react-family-tree-view .tree-toolbar .page-meta .tree-meta-info .share-link-container .share-input-wrapper .share-actions .btn-help:hover{background:linear-gradient(135deg,#1565c0,#0d47a1);transform:translateY(-1px)}.react-family-tree-view .tree-toolbar .toolbar-section h3{color:#212121;color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0}.react-family-tree-view .tree-toolbar .toolbar-controls{align-items:center;display:flex;flex:1 1;gap:.75rem;justify-content:flex-end}@media(max-width:1024px){.react-family-tree-view .tree-toolbar .toolbar-controls{flex-wrap:wrap;gap:.5rem}}@media(max-width:768px){.react-family-tree-view .tree-toolbar .toolbar-controls{justify-content:stretch;width:100%}}.react-family-tree-view .tree-toolbar .toolbar-controls .toolbar-title{color:#fffffff2;font-size:1.1rem;font-weight:600;margin:0 auto 0 0}.App.dark .react-family-tree-view .tree-toolbar .toolbar-controls .toolbar-title{color:#fffffff2}.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;box-shadow:0 4px 12px #00000014;color:#ffffffe6;cursor:pointer;font-size:1rem;min-height:44px;padding:.5rem .75rem;transition:all .3s ease}@media(max-width:1024px){.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector{font-size:.95rem;min-height:40px;padding:.4rem .6rem}}@media(max-width:768px){.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector{flex:1 1;font-size:.9rem;min-height:38px}}@media(max-width:480px){.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector{font-size:.85rem;min-height:36px;padding:.35rem .5rem}}.App.light .react-family-tree-view .tree-toolbar .toolbar-controls .root-selector{background:#ffffff26;border-color:#ffffff4d;color:#ffffffe6}.App.dark .react-family-tree-view .tree-toolbar .toolbar-controls .root-selector{background:#1e293b4d;border-color:#47556966;color:#ffffffe6}.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector:focus,.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector:hover{border-color:#1a73e8;border-color:var(--primary-color,#1a73e8);box-shadow:0 4px 16px #1a73e833}.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector:focus{outline:none}.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector option{background:#fff;background:var(--node-bg-color);color:#212121;color:var(--text-primary)}.react-family-tree-view .tree-container{background:#0000;flex:1 1;min-height:0;overflow:auto;padding:2rem;position:relative}@media(max-width:1024px){.react-family-tree-view .tree-container{padding:1.5rem}}@media(max-width:768px){.react-family-tree-view .tree-container{padding:1rem}}@media(max-width:480px){.react-family-tree-view .tree-container{padding:.5rem}}.react-family-tree-view .tree-container .custom-tree{min-height:100%}.App.dark .react-family-tree-view .tree-container .custom-tree i,.App.light .react-family-tree-view .tree-container .custom-tree i{background:#fff!important;opacity:.9!important}.react-family-tree-view .empty-state{align-items:center;color:#757575;color:var(--text-secondary);display:flex;font-size:1.2rem;height:100%;justify-content:center;min-height:400px}.node-wrapper{align-items:center;display:inline-flex;height:200px;justify-content:center;position:absolute;width:220px}.family-node{cursor:pointer;position:relative;transition:all .2s ease;z-index:10}.family-node:hover{z-index:20}.family-node:hover .node-actions{opacity:1;pointer-events:all}.family-node:hover .hover-border{opacity:1}.family-node.selected .selection-border{border-color:#1a73e8;border-color:var(--primary-color,#1a73e8);opacity:1}.family-node.selected .node-bg{border-color:#1a73e8;border-color:var(--primary-color,#1a73e8);box-shadow:0 4px 12px #1a73e84d}.family-node.selected .node-card{border:3px solid #1a73e8!important;border:3px solid var(--primary-color,#1a73e8)!important;box-shadow:0 0 0 4px #1a73e833,0 16px 40px #1a73e84d,0 8px 16px #1a73e833!important;transform:scale(1.05)!important;z-index:100}.family-node.selected .node-card:before{opacity:1}.family-node .node-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fffffff2,#f8fafcf2);border:2px solid #0000;border-radius:16px;box-shadow:0 8px 24px #0000001f,0 2px 6px #00000014;display:flex;flex-direction:row;height:110px;overflow:hidden;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);width:180px}.family-node .node-card:before{background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);border-radius:16px;content:"";inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;padding:2px;position:absolute;transition:opacity .3s ease}.family-node .node-card:hover{box-shadow:0 16px 40px #667eea40,0 8px 16px #764ba226;transform:translateY(-6px) scale(1.02)}.family-node .node-card:hover:before{opacity:1}.App.dark .family-node .node-card{background:linear-gradient(135deg,#2d3748f2,#1e293bf2)}.family-node .node-bg{display:none}.family-node .node-image-container{align-items:center;animation:gradientShift 8s ease infinite;background:linear-gradient(135deg,#667eea,#764ba2 60%,#f093fb);background-size:200% 200%;border-radius:14px 0 0 14px;display:flex;flex-shrink:0;height:110px;justify-content:center;overflow:hidden;position:relative;width:60px}.family-node .node-image-container:after{animation:shine 3s infinite;background:linear-gradient(45deg,#0000,#ffffff4d,#0000);content:"";height:200%;left:-50%;position:absolute;top:-50%;transform:rotate(45deg);width:200%}.family-node .node-image-container .node-image{border-radius:14px 0 0 14px;height:100%;object-fit:cover;position:relative;width:100%;z-index:1}.family-node .node-image-container .node-avatar{align-items:center;display:flex;height:100%;justify-content:center;position:relative;width:100%;z-index:1}.family-node .node-image-container .node-avatar .avatar-placeholder{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:2rem;opacity:.95}.family-node .node-image-container .gender-icon{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff40;border:1.5px solid #fff6;border-radius:50%;bottom:8px;box-shadow:0 2px 8px #00000026;color:#fff;display:flex;font-size:14px;font-weight:700;height:26px;justify-content:center;left:8px;position:absolute;transition:all .3s ease;width:26px;z-index:2}.family-node .node-image-container .gender-icon:hover{background:#ffffff59;transform:scale(1.1)}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes shine{0%{transform:rotate(45deg) translateY(-100%)}to{transform:rotate(45deg) translateY(100%)}}.family-node .node-info{background:linear-gradient(90deg,#ffffff0d,#0000);display:flex;flex:1 1;flex-direction:column;gap:5px;justify-content:flex-start;min-width:0;padding:10px 12px;text-align:left}.family-node .node-info .node-name{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));font-size:.9rem;font-weight:700;letter-spacing:.3px;margin:0 0 4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.App.dark .family-node .node-info .node-name{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#a8b5ff,#c197d2);-webkit-background-clip:text;background-clip:text}.family-node .node-info .node-date{align-items:center;color:#757575;color:var(--text-secondary,#64748b);display:flex;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.72rem;font-weight:500;gap:4px;line-height:1.4;margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-node .node-info .node-date.birth-date{color:#10b981}.App.dark .family-node .node-info .node-date.birth-date{color:#6ee7b7}.family-node .node-info .node-date.death-date{color:#d32f2f;color:var(--danger-color,#d32f2f);font-weight:500}.family-node .node-info .node-date.age{color:#388e3c;color:var(--success-color,#388e3c)}.family-node .node-actions{bottom:6px;display:flex;gap:6px;opacity:0;position:absolute;right:6px;transition:opacity .3s ease;z-index:10}.family-node .node-actions .action-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;box-shadow:0 4px 12px #667eea66;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;padding:0;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:32px}.family-node .node-actions .action-btn:before{background:linear-gradient(135deg,#764ba2,#667eea);content:"";inset:0;opacity:0;position:absolute;transition:opacity .3s ease}.family-node .node-actions .action-btn .btn-icon{stroke-width:2.5;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));height:16px;position:relative;transition:transform .3s cubic-bezier(.34,1.56,.64,1);width:16px;z-index:1}.family-node .node-actions .action-btn:hover{box-shadow:0 8px 20px #667eea80;transform:translateY(-3px) scale(1.1)}.family-node .node-actions .action-btn:hover:before{opacity:1}.family-node .node-actions .action-btn:hover .btn-icon{transform:scale(1.15) rotate(5deg)}.family-node .node-actions .action-btn:active{box-shadow:0 4px 12px #667eea66;transform:translateY(-1px) scale(1.05)}.family-node .node-actions .action-btn.edit-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 12px #3b82f666}.family-node .node-actions .action-btn.edit-btn:hover{box-shadow:0 8px 20px #3b82f680}.family-node .node-actions .action-btn.gallery-btn{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 12px #f59e0b66}.family-node .node-actions .action-btn.gallery-btn:hover{box-shadow:0 8px 20px #f59e0b80}.family-node .node-actions .image-badge{align-items:center;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;background:linear-gradient(135deg,#ef4444,#dc2626);border:2px solid #fff;border-radius:11px;box-shadow:0 3px 8px #ef444466;color:#fff;display:inline-flex;font-size:.7rem;font-weight:700;height:22px;justify-content:center;min-width:22px;padding:2px 6px;position:absolute;right:-6px;top:-6px}.family-node .selection-border{border:3px solid #1a73e8;border:3px solid var(--primary-color,#1a73e8);border-radius:14px;bottom:-2px;box-shadow:0 0 0 4px #1a73e833;left:-2px;opacity:0;pointer-events:none;position:absolute;right:-2px;top:-2px;transition:opacity .2s ease;z-index:10}:root,:root[data-theme=light]{--node-bg-color:#fff;--node-border-color:#d0d0d0;--avatar-bg-color:#e8e8e8;--gender-icon-color:#666;--text-primary:#212121;--text-secondary:#757575;--primary-color:#1a73e8;--accent-color:#ff5722;--success-color:#388e3c;--danger-color:#d32f2f;--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#fafafa;--border-color:#e0e0e0;--connection-color:#fffc;--spouse-connection-color:#ffffffe6;--action-btn-bg:#f0f0f0;--action-btn-hover-bg:#e0e0e0;--action-btn-border:#999;--edit-btn-color:#4a90e2;--edit-btn-hover-color:#357abd;--gallery-btn-color:#7cb342;--gallery-btn-hover-color:#558b2f}:root[data-theme=dark]{--node-bg-color:#2d2d2d;--node-border-color:#444;--avatar-bg-color:#444;--gender-icon-color:#ccc;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--primary-color:#5a9fd4;--accent-color:#ff7043;--success-color:#8bc34a;--danger-color:#ef5350;--bg-primary:#2d2d2d;--bg-secondary:#1a1a1a;--bg-tertiary:#252525;--border-color:#404040;--connection-color:#fff9;--spouse-connection-color:#ffffffb3;--action-btn-bg:#3d3d3d;--action-btn-hover-bg:#4d4d4d;--action-btn-border:#666;--edit-btn-color:#5a9fd4;--edit-btn-hover-color:#3d7cb8;--gallery-btn-color:#8bc34a;--gallery-btn-hover-color:#7cb342}.subtree-nav-btn{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:2.5px solid #fff;border-radius:50%;box-shadow:0 6px 20px #10b98180;color:#fff;cursor:pointer;display:flex;font-size:18px;height:34px;justify-content:center;left:50%;line-height:1;opacity:1;pointer-events:all;position:absolute;top:45px;transform:translateX(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);width:34px;z-index:30}.App.dark .subtree-nav-btn{border-color:#1e293bcc}.subtree-nav-btn:before{animation:pulseRing 2s cubic-bezier(.4,0,.6,1) infinite;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;content:"";inset:-3px;opacity:.3;position:absolute}.subtree-nav-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 8px 30px #10b981b3;transform:translateX(-50%) scale(1.15)}.subtree-nav-btn:hover:after{background:#000000e6;border-radius:6px;bottom:calc(100% + 10px);box-shadow:0 4px 12px #0000004d;color:#fff;content:"View Subtree";font-size:.75rem;font-weight:600;left:50%;padding:6px 12px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:100}.App.dark .subtree-nav-btn:hover:after{background:#fffffff2;color:#1e293b}.subtree-nav-btn:active{box-shadow:0 4px 16px #10b98180;transform:translateX(-50%) scale(1.05)}.add-member-btn{align-items:center;border:3px solid #fff;bottom:60px;box-shadow:0 6px 20px #10b98166;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;left:50%;opacity:0;pointer-events:none;transform:translateX(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);width:40px;z-index:25}.add-member-btn,.add-member-btn:before{background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;position:absolute}.add-member-btn:before{animation:pulseRing 2s cubic-bezier(.4,0,.6,1) infinite;content:"";inset:-4px;opacity:.4}.add-member-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 8px 30px #10b98199;transform:translateX(-50%) scale(1.15)}.add-member-btn:active{box-shadow:0 4px 16px #10b98180;transform:translateX(-50%) scale(1.05)}.add-member-btn svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));height:22px;pointer-events:none;width:22px}@keyframes pulseRing{0%{opacity:.5;transform:scale(.95)}50%{opacity:.3;transform:scale(1.05)}to{opacity:.5;transform:scale(.95)}}.node-wrapper:hover .add-member-btn{opacity:1;pointer-events:all}@media(max-width:768px){.react-family-tree-view .tree-toolbar{flex-direction:column;gap:.75rem}.react-family-tree-view .tree-toolbar .toolbar-controls,.react-family-tree-view .tree-toolbar .toolbar-controls .root-selector{width:100%}.react-family-tree-view .tree-container{padding:1rem}.react-family-tree-view .family-node .node-card{width:160px}.react-family-tree-view .family-node .node-image-section{height:80px}.react-family-tree-view .family-node .node-info .node-name{font-size:.85rem}.react-family-tree-view .family-node .node-info .node-dates{font-size:.75rem}.react-family-tree-view .family-node .node-actions .btn-edit,.react-family-tree-view .family-node .node-actions .btn-gallery{height:32px;width:32px}.react-family-tree-view .family-node .node-actions .btn-edit svg,.react-family-tree-view .family-node .node-actions .btn-gallery svg{height:16px;width:16px}}:root[data-theme=light] .react-family-tree-view .tree-container{background:#f5f5f5}:root[data-theme=light] .react-family-tree-view .family-node .node-card{background:#fff;border-color:#e0e0e0}:root[data-theme=light] .error-message{align-items:center;animation:slideIn .3s ease;background:linear-gradient(135deg,#ffebee,#ffcdd2);border-left:4px solid #d32f2f;border-radius:8px;color:#c62828;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:16px;padding:12px 16px}:root[data-theme=light] .error-message:before{content:"⚠️";font-size:18px}:root[data-theme=light] .success-message{align-items:center;animation:slideIn .3s ease;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-left:4px solid #4caf50;border-radius:8px;color:#2e7d32;display:flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:16px;padding:12px 16px}:root[data-theme=light] .success-message:before{content:"✓";font-size:18px;font-weight:700}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=light] .spinner{animation:spin .8s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root[data-theme=light] .loading-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:999999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}:root[data-theme=light] .loading-spinner{align-items:center;background:#fafafa;background:var(--bg-tertiary,#fff);border-radius:16px;box-shadow:0 8px 32px #0000004d;display:flex;flex-direction:column;gap:16px;padding:32px 48px}:root[data-theme=light] .loading-spinner .spinner-large{animation:spin 1s linear infinite;border:4px solid #1a73e833;border-radius:50%;border-top-color:#1a73e8;height:48px;width:48px}:root[data-theme=light] .loading-spinner p{color:#212121;color:var(--text-primary);font-size:16px;font-weight:500;margin:0}:root[data-theme=dark] .react-family-tree-view .tree-container{background:#1a1a1a}:root[data-theme=dark] .react-family-tree-view .family-node .node-card{background:#2a2a2a;border-color:#404040}:root[data-theme=dark] .react-family-tree-view .family-node .node-actions{background:#1a1a1a;border-top-color:#404040}:root[data-theme=dark] .react-family-tree-view .error-message{background:linear-gradient(135deg,#4a0e0e,#6a1b1b);border-left-color:#d32f2f;color:#ff5252}:root[data-theme=dark] .react-family-tree-view .success-message{background:linear-gradient(135deg,#1b5e20,#2e7d32);border-left-color:#4caf50;color:#69f0ae}:root[data-theme=dark] .react-family-tree-view .loading-spinner{background:#2a2a2a}@media(max-width:1024px){.react-family-tree-view .family-node .node-card{transform:scale(.95)}.react-family-tree-view .family-node .node-actions .action-btn{height:32px;width:32px}.react-family-tree-view .family-node .node-actions .action-btn svg{height:14px;width:14px}}@media(max-width:768px){.react-family-tree-view .family-node .node-card{height:100px;transform:scale(.9);width:160px}.react-family-tree-view .family-node .node-image-container{height:100px;width:50px}.react-family-tree-view .family-node .node-image-container .gender-icon{font-size:12px;height:20px;width:20px}.react-family-tree-view .family-node .node-info{padding:6px 8px}.react-family-tree-view .family-node .node-info .node-name{font-size:.85rem;max-width:90px}.react-family-tree-view .family-node .node-info .node-date{font-size:.7rem}.react-family-tree-view .family-node .node-actions{gap:6px;padding:6px}.react-family-tree-view .family-node .node-actions .action-btn{height:28px;width:28px}.react-family-tree-view .family-node .node-actions .action-btn svg{height:12px;width:12px}}@media(max-width:480px){.react-family-tree-view .add-member-btn{bottom:50px;height:28px;width:28px}.react-family-tree-view .add-member-btn svg{height:16px;width:16px}.react-family-tree-view .family-node .node-card{height:90px;transform:scale(.85);width:140px}.react-family-tree-view .family-node .node-image-container{height:90px;width:45px}.react-family-tree-view .family-node .node-image-container .gender-icon{font-size:11px;height:18px;width:18px}.react-family-tree-view .family-node .node-image-container .node-avatar .avatar-placeholder{font-size:1.5rem}.react-family-tree-view .family-node .node-info{padding:5px 6px}.react-family-tree-view .family-node .node-info .node-name{font-size:.75rem;max-width:75px}.react-family-tree-view .family-node .node-info .node-date{font-size:.65rem}.react-family-tree-view .family-node .node-actions{bottom:4px;gap:4px;padding:4px;right:4px}.react-family-tree-view .family-node .node-actions .action-btn{border-radius:4px;height:24px;min-height:24px;min-width:24px;width:24px}.react-family-tree-view .family-node .node-actions .action-btn svg{height:10px;width:10px}}@media(hover:none)and (pointer:coarse){.react-family-tree-view .family-node .node-actions{opacity:1}.react-family-tree-view .family-node .node-card:active{transform:scale(.98)}.react-family-tree-view .node-wrapper .add-member-btn{opacity:1;pointer-events:all}.react-family-tree-view .toolbar-controls .root-selector{min-height:44px}}.not-found-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100%;overflow:hidden;padding:2rem;position:relative;width:100%}.App.dark .not-found-page{background:linear-gradient(135deg,#1a1a2e,#16213e)}.not-found-page .not-found-content{max-width:600px;position:relative;text-align:center;z-index:2}.not-found-page .tree-animation{animation:sway 3s ease-in-out infinite;margin-bottom:2rem}.not-found-page .tree-animation .tree-trunk{display:inline-block;position:relative}.not-found-page .tree-animation .tree-crown{animation:pulse 2s ease-in-out infinite;display:block;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));font-size:8rem;line-height:1}@media(max-width:768px){.not-found-page .tree-animation .tree-crown{font-size:6rem}}.not-found-page .tree-animation .tree-leaves{height:200px;left:50%;pointer-events:none;position:absolute;top:0;transform:translateX(-50%);width:200px}.not-found-page .tree-animation .leaf{animation:fall 4s ease-in-out infinite;font-size:2rem;opacity:0;position:absolute}.not-found-page .tree-animation .leaf:first-child{animation-delay:0s;left:20%}.not-found-page .tree-animation .leaf:nth-child(2){animation-delay:.8s;left:40%}.not-found-page .tree-animation .leaf:nth-child(3){animation-delay:1.6s;left:60%}.not-found-page .tree-animation .leaf:nth-child(4){animation-delay:2.4s;left:80%}.not-found-page .tree-animation .leaf:nth-child(5){animation-delay:3.2s;left:50%}.not-found-page .error-message{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:3rem 2rem}.App.dark .not-found-page .error-message{background:#1e293bf2;border-color:#47556980}.not-found-page .error-message .error-code{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:6rem;font-weight:900;line-height:1;margin:0 0 1rem}.App.dark .not-found-page .error-message .error-code{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;background-clip:text}@media(max-width:768px){.not-found-page .error-message .error-code{font-size:4rem}}.not-found-page .error-message .error-title{color:#2d3748;font-size:2rem;font-weight:700;margin:0 0 1rem}.App.dark .not-found-page .error-message .error-title{color:#e2e8f0}@media(max-width:768px){.not-found-page .error-message .error-title{font-size:1.5rem}}.not-found-page .error-message .error-description{color:#4a5568;font-size:1.1rem;line-height:1.6;margin:0 0 2rem}.App.dark .not-found-page .error-message .error-description{color:#cbd5e0}@media(max-width:768px){.not-found-page .error-message .error-description{font-size:1rem}}.not-found-page .error-message .error-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.not-found-page .error-message .error-actions button{border:none;border-radius:12px;box-shadow:0 4px 12px #00000026;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 2rem;transition:all .3s ease}.not-found-page .error-message .error-actions button:hover{box-shadow:0 6px 20px #0003;transform:translateY(-2px)}.not-found-page .error-message .error-actions button:active{transform:translateY(0)}.not-found-page .error-message .error-actions .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.App.dark .not-found-page .error-message .error-actions .btn-primary{background:linear-gradient(135deg,#f093fb,#f5576c)}.not-found-page .error-message .error-actions .btn-secondary{background:#ffffffe6;border:2px solid #667eea;color:#667eea}.App.dark .not-found-page .error-message .error-actions .btn-secondary{background:#1e293be6;border-color:#f093fb;color:#f093fb}.not-found-page .decorative-elements{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%}.not-found-page .decorative-elements .floating-leaf{animation:float 6s ease-in-out infinite;font-size:3rem;opacity:.3;position:absolute}.not-found-page .decorative-elements .floating-leaf:first-child{animation-delay:0s;left:10%;top:20%}.not-found-page .decorative-elements .floating-leaf:nth-child(2){animation-delay:2s;right:15%;top:60%}.not-found-page .decorative-elements .floating-leaf:nth-child(3){animation-delay:4s;bottom:20%;left:20%}@keyframes sway{0%,to{transform:rotate(0deg)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fall{0%{opacity:0;transform:translateY(0) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(150px) rotate(1turn)}}@keyframes float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(10deg)}}
/*# sourceMappingURL=main.46685424.css.map*/