*,:before,:after{box-sizing:border-box}body{color:#e2e8f0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a1a;height:100vh;margin:0;overflow:hidden}html{height:100vh}::selection{color:#f8fafc;background:#6366f14d}*{box-sizing:border-box}.app{color:#e2e8f0;background-color:#0a0a1a;background-image:radial-gradient(at 20%,#3b82f60f 0%,#0000 50%),radial-gradient(at 80% 20%,#a855f70f 0%,#0000 50%),radial-gradient(at 50% 80%,#ec48990a 0%,#0000 50%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;flex-direction:column;height:100vh;padding:1rem 1.5rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif;display:flex;overflow:hidden}.app-header{text-align:center;margin-bottom:1.5rem}.header-content{justify-content:center;align-items:center;gap:1.5rem;display:flex}.app-header h1{letter-spacing:.1em;background:linear-gradient(135deg,#fbbf24,#f59e0b,#d97706);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2rem}.header-stats{gap:1rem;display:flex}.stat{color:#94a3b8;background:#ffffff0d;border:1px solid #ffffff14;border-radius:20px;padding:.3rem .8rem;font-size:.8rem}.app-hint{color:#94a3b880;margin:.6rem 0 0;font-size:.78rem}.org-chart-container{background:#ffffff04;border:1px solid #ffffff0f;border-radius:20px;flex-direction:column;flex:1;padding:1rem 1.5rem;display:flex;overflow:hidden}.org-chart-wrapper{flex-direction:column;align-items:center;gap:3rem;width:fit-content;min-width:max-content;margin:0 auto;padding:2rem 4rem;display:flex}.empty-state{text-align:center;padding:5rem 2rem}.empty-icon{margin-bottom:1rem;font-size:3rem}.empty-state h3{color:#f1f5f9;margin:0 0 .5rem;font-size:1.3rem}.empty-state p{color:#64748b;margin-bottom:1.5rem}.chart-footer{text-align:center;border-top:1px solid #ffffff0d;margin-top:2rem;padding-top:1.5rem}.btn-primary,.btn-add-root{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:10px;padding:.65rem 1.5rem;font-size:.9rem;font-weight:500;transition:all .2s}.btn-primary:hover,.btn-add-root:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f659}.org-card{text-align:center;cursor:default;border-radius:14px;min-width:180px;max-width:260px;padding:1rem 1.3rem .8rem;transition:box-shadow .2s,border-color .2s;display:inline-block;position:relative}.male-card{background:linear-gradient(160deg,#0f172a 0%,#1e3a5f 50%,#1e40af22 100%);border:1px solid #3b82f633;box-shadow:0 4px 16px #0006,inset 0 1px #ffffff0d}.male-card:hover{border-color:#3b82f680;box-shadow:0 8px 32px #3b82f633,0 0 0 1px #3b82f626}.female-card{background:linear-gradient(160deg,#1a0a2e 0%,#3b1261 50%,#ec489922 100%);border:1px solid #a855f733;box-shadow:0 4px 16px #0006,inset 0 1px #ffffff0d}.female-card:hover{border-color:#a855f780;box-shadow:0 8px 32px #a855f733,0 0 0 1px #a855f726}.org-card-tags{flex-wrap:wrap;justify-content:center;gap:.3rem;margin-bottom:.3rem;display:flex}.generation-badge{color:#fbbf24;background:#fbbf2426;border:1px solid #fbbf2459;border-radius:6px;padding:.12rem .45rem;font-size:.62rem;font-weight:600}.branch-badge{white-space:nowrap;letter-spacing:.02em;border:1.5px solid;border-radius:6px;padding:.12rem .5rem;font-size:.62rem;font-weight:700}.org-card-avatar{margin-bottom:.15rem;font-size:1.5rem;line-height:1}.org-card-name{color:#f8fafc;letter-spacing:.03em;margin-bottom:.25rem;font-size:1rem;font-weight:700}.org-card-spouse{color:#fbbf24;margin-bottom:.2rem;font-size:.8rem}.org-card-location{color:#34d399;margin-bottom:.15rem;font-size:.72rem}.org-card-remark{color:#94a3b8b3;text-overflow:ellipsis;max-height:2.8em;font-size:.72rem;line-height:1.4;overflow:hidden}.children-count{color:#64748b;margin-top:.3rem;font-size:.6rem}.org-card-toolbar{opacity:.5;justify-content:center;gap:.3rem;margin-top:.5rem;transition:opacity .15s;display:flex}.org-card:hover .org-card-toolbar{opacity:1}.toolbar-btn{cursor:pointer;color:#94a3b8;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:.2rem;padding:.25rem .5rem;font-size:.7rem;transition:all .15s;display:flex}.toolbar-btn:hover{color:#f1f5f9;background:#ffffff1f;border-color:#fff3}.btn-icon{font-size:.8rem}.btn-label{font-size:.65rem}.btn-add-child{color:#34d399!important;border-color:#34d39933!important}.btn-add-child:hover{box-shadow:0 0 8px #34d39933;background:#34d3991f!important;border-color:#34d39966!important}.btn-del:hover{color:#ef4444!important;background:#ef44441f!important;border-color:#ef44444d!important}.toggle-children{color:#94a3b8;cursor:pointer;white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;margin:.5rem auto 0;padding:.2rem .6rem;font-size:.65rem;transition:background .15s,color .15s;display:block}.toggle-children:hover{color:#f1f5f9;background:#ffffff1f;border-color:#ffffff40}.org-card-editing{flex-direction:column;gap:.4rem;min-width:130px;display:flex}.org-card-editing input{color:#f1f5f9;background:#0006;border:1px solid #ffffff26;border-radius:8px;width:100%;padding:.4rem .6rem;font-size:.8rem;transition:border-color .15s}.org-card-editing input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 2px #667eea26}.edit-name{font-weight:600;font-size:.9rem!important}.edit-actions{justify-content:center;gap:.3rem;margin-top:.2rem;display:flex}.btn-save{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;padding:.35rem .8rem;font-size:.75rem;font-weight:600;transition:all .15s}.btn-save:hover{transform:translateY(-1px);box-shadow:0 3px 10px #10b9814d}.btn-cancel-sm{color:#94a3b8;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;padding:.35rem .7rem;font-size:.75rem}.btn-cancel-sm:hover{color:#f1f5f9;background:#ffffff1a}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #ffffff1a;border-radius:20px;width:90%;max-width:400px;padding:1.8rem;animation:.2s slideUp;box-shadow:0 24px 80px #0009,inset 0 1px #ffffff0d}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.modal-header h3{color:#f8fafc;margin:0;font-size:1.15rem}.modal-subtitle{color:#64748b;margin-top:.2rem;font-size:.78rem;display:block}.modal-close{color:#64748b;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;padding:.3rem .6rem;font-size:1rem;transition:all .15s}.modal-close:hover{color:#f1f5f9;background:#ffffff1a}.modal-field{margin-bottom:1rem}.modal-field label{color:#64748b;margin-bottom:.4rem;font-size:.78rem;font-weight:500;display:block}.modal-field input,.modal-field select{color:#f1f5f9;background:#0000004d;border:1px solid #ffffff1a;border-radius:10px;width:100%;padding:.65rem .9rem;font-size:.9rem;transition:all .15s}.modal-field input:focus,.modal-field select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f626}.modal-field input::placeholder{color:#475569}.modal-row{gap:.8rem;display:flex}.modal-row .modal-field{flex:1}.gender-selector{gap:.4rem;display:flex}.gender-btn{color:#94a3b8;cursor:pointer;background:#0003;border:1px solid #ffffff1a;border-radius:8px;flex:1;padding:.5rem;font-size:.85rem;transition:all .15s}.gender-btn:hover{background:#ffffff0d;border-color:#fff3}.gender-btn.active.male{color:#60a5fa;background:#3b82f626;border-color:#3b82f666}.gender-btn.active.female{color:#c084fc;background:#a855f726;border-color:#a855f766}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1.5rem;display:flex}.btn-cancel{color:#94a3b8;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;padding:.6rem 1.2rem;font-size:.85rem;transition:all .15s}.btn-cancel:hover{color:#f1f5f9;background:#ffffff14}.btn-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:10px;padding:.6rem 1.5rem;font-size:.85rem;font-weight:600;transition:all .2s}.btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #3b82f666}.btn-submit:disabled{opacity:.4;cursor:not-allowed}.confirm-modal{text-align:center;max-width:340px}.confirm-icon{margin-bottom:.8rem;font-size:2.5rem}.confirm-title{color:#f8fafc;margin:0 0 .5rem;font-size:1.1rem}.confirm-message{color:#94a3b8;margin:0 0 1.5rem;font-size:.85rem;line-height:1.5}.confirm-modal .modal-actions{justify-content:center}.btn-confirm{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:10px;padding:.6rem 1.5rem;font-size:.85rem;font-weight:600;transition:all .2s}.btn-confirm:hover{transform:translateY(-1px);box-shadow:0 4px 16px #3b82f666}.btn-confirm.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.btn-confirm.btn-danger:hover{box-shadow:0 4px 16px #ef444466}.org-chart-container::-webkit-scrollbar{height:8px}.org-chart-container::-webkit-scrollbar-track{background:#ffffff05;border-radius:4px}.org-chart-container::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.org-chart-container::-webkit-scrollbar-thumb:hover{background:#fff3}@media (width<=768px){.app{padding:.75rem}.app-header h1{letter-spacing:.05em;font-size:1.3rem}.header-content{flex-direction:column;gap:.4rem}.header-stats{flex-wrap:wrap;justify-content:center;gap:.3rem}.stat{padding:.2rem .6rem;font-size:.7rem}.app-hint{font-size:.65rem}.search-input{font-size:.85rem}.view-toggle button{padding:.3rem .7rem;font-size:.72rem}.org-chart-container{border-radius:12px;padding:.75rem .5rem}.chart-toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.zoom-controls{justify-content:center}.filter-row{flex-wrap:wrap}.filter-row select{flex:1;min-width:80px;font-size:.72rem}.org-card{border-radius:10px;min-width:100px;max-width:150px;padding:.5rem .6rem .4rem}.org-card-avatar{font-size:1.1rem}.org-card-name{font-size:.8rem}.org-card-spouse{font-size:.65rem}.org-card-location{font-size:.6rem}.org-card-remark{font-size:.58rem}.org-card-tags{gap:.2rem}.branch-badge,.generation-badge{padding:.08rem .35rem;font-size:.5rem}.org-card-toolbar{opacity:1}.toolbar-btn{padding:.3rem .4rem}.btn-label{display:none}.toggle-children{padding:.2rem .5rem;font-size:.6rem}.modal-content{border-radius:14px;width:95%;max-width:none;max-height:90vh;padding:1.2rem;overflow-y:auto}.modal-header h3{font-size:1rem}.modal-row{flex-direction:column;gap:.5rem}.detail-panel{width:100%;max-width:100%}.stats-panel{padding:1rem}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-value{font-size:1.2rem}.relationship-row{flex-direction:column;gap:.4rem}.relationship-row select{width:100%}.relationship-arrow{display:none}.timeline-cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.timeline-gen-body{padding-left:1.2rem}.import-export{gap:.2rem}.ie-btn{height:30px;padding:0 .5rem;font-size:.7rem}.export-btn{height:30px;padding:0 .6rem;font-size:.7rem}.admin-panel{max-width:none}.admin-add-row{flex-direction:column;gap:.4rem}}@media (width<=400px){.app-header h1{font-size:1.1rem}.header-stats{gap:.2rem}.stat{padding:.15rem .4rem;font-size:.62rem}.org-card{min-width:85px;max-width:120px;padding:.4rem .5rem}.org-card-avatar{font-size:.9rem}.org-card-name{font-size:.72rem}.org-card-spouse,.org-card-location,.org-card-remark{font-size:.55rem}.org-card-tags{display:none}.toolbar-btn{min-width:28px;min-height:28px}.tl-card{padding:.4rem .5rem}.tl-name{font-size:.75rem}}@media (width<=320px){.app{padding:.5rem}.app-header h1{letter-spacing:0;font-size:1rem}.app-hint{display:none}.header-stats{gap:.15rem}.stat{padding:.12rem .3rem;font-size:.58rem}.search-bar{margin-top:.4rem}.search-input{padding:.45rem .7rem;font-size:.8rem}.view-toggle{margin-top:.4rem}.view-toggle button{padding:.25rem .5rem;font-size:.65rem}.org-chart-container{border-radius:8px;padding:.4rem .3rem}.chart-toolbar{gap:.3rem;margin-bottom:.4rem}.filter-row select{padding:.3rem .4rem;font-size:.68rem}.zoom-controls{gap:.2rem}.zoom-controls button{width:26px;height:26px;font-size:.8rem}.zoom-controls span{min-width:28px;font-size:.6rem}.export-btn{height:26px;padding:0 .4rem;font-size:.6rem}.import-export{display:none}.org-card{border-radius:8px;min-width:80px;max-width:110px;padding:.4rem .45rem}.org-card-avatar{margin-bottom:0;font-size:.85rem}.org-card-name{margin-bottom:.1rem;font-size:.68rem}.org-card-spouse{font-size:.52rem}.org-card-location{font-size:.5rem}.org-card-remark,.org-card-tags{display:none}.org-card-toolbar{gap:.15rem;margin-top:.25rem}.toolbar-btn{min-width:24px;min-height:24px;padding:.12rem}.btn-icon{font-size:.6rem}.toggle-children{padding:.12rem .35rem;font-size:.52rem}.children-count{font-size:.5rem}.modal-content{width:98%;padding:.9rem}.modal-header h3{font-size:.9rem}.modal-field input,.modal-field select,.modal-field textarea{padding:.5rem .6rem;font-size:.82rem}.detail-panel{width:100%}.detail-header{padding:1.2rem 1rem .8rem}.detail-avatar{font-size:2rem}.detail-header h2{font-size:1rem}.detail-row{padding:.4rem 0;font-size:.75rem}.detail-body{padding:.8rem 1rem}.stats-panel{padding:.8rem}.stats-grid{gap:.3rem}.stat-value{font-size:1rem}.stat-label{font-size:.58rem}.timeline-cards{grid-template-columns:1fr 1fr;gap:.3rem}.tl-card{padding:.3rem .4rem}.tl-name{font-size:.65rem}.tl-info,.tl-branch,.tl-location{font-size:.5rem}.gen-label{font-size:.8rem}.timeline-gen-body{padding-left:.6rem}.timeline-header h3{font-size:.95rem}.lang-switcher button{padding:.15rem .3rem;font-size:.6rem}}@media (pointer:coarse){.toolbar-btn{justify-content:center;align-items:center;min-width:28px;min-height:28px;padding:.2rem .4rem;display:flex}.toggle-children{min-height:28px;padding:.2rem .6rem}.org-card-toolbar{opacity:1;gap:.3rem;margin-top:.4rem}.modal-field input,.modal-field select,.modal-field textarea{padding:.65rem .8rem;font-size:.95rem}.gender-btn{padding:.55rem;font-size:.85rem}.btn-cancel,.btn-submit,.btn-confirm{padding:.6rem 1.2rem;font-size:.85rem}.detail-edit-btn{padding:.65rem;font-size:.85rem}}.search-bar{max-width:400px;margin:.8rem auto 0;position:relative}.search-input{color:#f1f5f9;background:#0000004d;border:1px solid #ffffff1a;border-radius:12px;width:100%;padding:.6rem 1rem;font-size:.9rem;transition:all .15s}.search-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f626}.search-input::placeholder{color:#64748b}.search-results{z-index:100;background:#1e293b;border:1px solid #ffffff1a;border-radius:12px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 40px #00000080}.search-result-item{color:#e2e8f0;cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #ffffff0d;align-items:center;gap:.5rem;width:100%;padding:.6rem 1rem;font-size:.85rem;transition:background .1s;display:flex}.search-result-item:hover{background:#ffffff0d}.search-result-item:last-child{border-bottom:none}.result-name{font-weight:600}.result-spouse{color:#fbbf24;font-size:.75rem}.result-branch{color:#94a3b8;margin-left:auto;font-size:.7rem}.search-empty{text-align:center;color:#64748b;padding:1rem;font-size:.85rem}.org-card.highlighted{animation:.5s 3 pulse-highlight;border-color:#fbbf24!important;box-shadow:0 0 20px #fbbf2480,0 0 40px #fbbf2433!important}@keyframes pulse-highlight{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.zoom-controls{align-items:center;gap:.4rem;display:flex}.zoom-controls button{color:#e2e8f0;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1rem;transition:all .15s;display:flex}.zoom-controls button:hover{background:#ffffff1f;border-color:#ffffff40}.zoom-controls span{color:#94a3b8;text-align:center;min-width:42px;font-size:.78rem}.org-chart-scroll{cursor:grab;-webkit-user-select:none;user-select:none;min-height:400px;position:relative;overflow:hidden}.org-chart-scroll:active{cursor:grabbing}.org-chart-canvas{cursor:default;-webkit-overflow-scrolling:touch;flex:1;position:relative;overflow:auto}.org-chart-canvas::-webkit-scrollbar{width:6px;height:6px}.org-chart-canvas::-webkit-scrollbar-track{background:0 0}.org-chart-canvas::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.org-chart-canvas::-webkit-scrollbar-thumb:hover{background:#fff3}.stats-modal{max-width:520px;max-height:80vh;overflow-y:auto}.stats-panel{padding:0}.stats-panel h3{color:#f8fafc;margin:0 0 1rem;font-size:1.1rem}.stats-panel h4{color:#94a3b8;margin:1rem 0 .5rem;font-size:.85rem}.stats-grid{grid-template-columns:repeat(4,1fr);gap:.8rem;display:grid}.stat-card{text-align:center;background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;padding:.8rem}.stat-value{color:#f8fafc;font-size:1.5rem;font-weight:700}.stat-label{color:#64748b;margin-top:.2rem;font-size:.72rem}.branch-stat{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.branch-name{color:#94a3b8;min-width:90px;font-size:.78rem}.branch-bar{background:#ffffff0d;border-radius:3px;flex:1;height:6px;overflow:hidden}.branch-fill{background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:3px;height:100%;transition:width .3s}.branch-count{color:#64748b;text-align:right;min-width:24px;font-size:.72rem}.location-tags{flex-wrap:wrap;gap:.4rem;display:flex}.location-tag{color:#34d399;background:#34d3991a;border:1px solid #34d39933;border-radius:12px;padding:.2rem .6rem;font-size:.72rem}.stat-btn{cursor:pointer;transition:all .15s;border:1px solid #ffffff14!important}.stat-btn:hover{background:#ffffff1a!important;border-color:#fff3!important}.detail-panel{z-index:500;background:linear-gradient(#1e293b,#0f172a);border-left:1px solid #ffffff14;width:320px;animation:.2s slideIn;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-8px 0 30px #0006}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-header{text-align:center;border-bottom:1px solid #ffffff0f;padding:2rem 1.5rem 1rem;position:relative}.detail-close{color:#94a3b8;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;padding:.3rem .6rem;font-size:1rem;position:absolute;top:1rem;right:1rem}.detail-close:hover{color:#f1f5f9;background:#ffffff1a}.detail-avatar{margin-bottom:.5rem;font-size:3rem}.detail-header h2{color:#f8fafc;margin:0;font-size:1.3rem}.detail-branch{color:#a5b4fc;background:#6366f126;border:1px solid #6366f14d;border-radius:12px;margin-top:.4rem;padding:.15rem .6rem;font-size:.75rem;display:inline-block}.detail-body{padding:1.2rem 1.5rem}.detail-row{border-bottom:1px solid #ffffff0a;justify-content:space-between;padding:.6rem 0;font-size:.85rem;display:flex}.detail-label{color:#64748b}.detail-row span:last-child{color:#e2e8f0;text-align:right;max-width:60%}.view-toggle{justify-content:center;gap:.3rem;margin-top:.8rem;display:flex}.view-toggle button{color:#94a3b8;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;padding:.4rem 1rem;font-size:.82rem;transition:all .15s}.view-toggle button.active{color:#60a5fa;background:#3b82f626;border-color:#3b82f666}.view-toggle button:hover:not(.active){background:#ffffff0f}.chart-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:1rem;display:flex}.chart-toolbar>:last-child{margin-left:auto}.filter-panel{align-items:center;display:flex}.filter-row{flex-wrap:wrap;gap:.4rem;display:flex}.filter-row select{color:#e2e8f0;cursor:pointer;background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;padding:.4rem .6rem;font-size:.78rem}.filter-row select:focus{border-color:#3b82f6;outline:none}.filter-clear{color:#ef4444;cursor:pointer;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;padding:.4rem .6rem;font-size:.75rem}.export-btn{color:#34d399;cursor:pointer;white-space:nowrap;background:#34d3991a;border:1px solid #34d39940;border-radius:8px;height:34px;padding:0 .9rem;font-size:.78rem;font-weight:500;transition:all .15s}.export-btn:hover{background:#34d39933;border-color:#34d39966}.relationship-finder{padding:0}.relationship-finder h4{color:#f8fafc;margin:0 0 .8rem;font-size:1rem}.relationship-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.relationship-row select{color:#e2e8f0;background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;flex:1;min-width:140px;padding:.5rem .7rem;font-size:.82rem}.relationship-arrow{color:#64748b;font-size:1.2rem}.btn-find{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:8px;padding:.5rem 1rem;font-size:.82rem;font-weight:600}.relationship-result{color:#93c5fd;background:#3b82f614;border:1px solid #3b82f633;border-radius:8px;margin-top:.8rem;padding:.8rem;font-size:.85rem;line-height:1.4}.timeline-view{background:#ffffff04;border:1px solid #ffffff0f;border-radius:20px;flex:1;padding:2rem 1.5rem;overflow-y:auto}.timeline-view::-webkit-scrollbar{width:6px}.timeline-view::-webkit-scrollbar-track{background:0 0}.timeline-view::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.timeline-view::-webkit-scrollbar-thumb:hover{background:#fff3}.timeline-header{text-align:center;margin-bottom:2rem}.timeline-header h3{color:#f8fafc;margin:0;font-size:1.2rem}.timeline-subtitle{color:#64748b;margin:.3rem 0 0;font-size:.8rem}.timeline-container{padding-left:1rem}.timeline-gen{margin-bottom:1.5rem}.timeline-gen-header{align-items:flex-start;gap:.8rem;margin-bottom:.8rem;display:flex}.timeline-gen-marker{flex-direction:column;align-items:center;min-width:16px;display:flex}.marker-dot{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:50%;flex-shrink:0;width:12px;height:12px;box-shadow:0 0 8px #fbbf2466}.marker-line{background:#fbbf2433;flex:1;width:2px;min-height:20px;margin-top:4px}.timeline-gen-title{align-items:baseline;gap:.6rem;display:flex}.gen-label{color:#fbbf24;font-size:1rem;font-weight:700}.gen-count{color:#64748b;background:#ffffff0a;border-radius:10px;padding:.1rem .5rem;font-size:.75rem}.timeline-gen-body{padding-left:2rem}.timeline-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem;display:grid}.tl-card{cursor:pointer;text-align:left;border:none;border-radius:10px;flex-direction:column;gap:.25rem;padding:.7rem .9rem;transition:all .2s;display:flex}.tl-male{background:#3b82f614;border:1px solid #3b82f626}.tl-female{background:#a855f714;border:1px solid #a855f726}.tl-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.tl-male:hover{background:#3b82f61f;border-color:#3b82f666}.tl-female:hover{background:#a855f71f;border-color:#a855f766}.tl-card-top{align-items:center;gap:.4rem;display:flex}.tl-avatar{font-size:1rem}.tl-name{color:#f1f5f9;font-size:.88rem;font-weight:700}.tl-info{color:#fbbf24;font-size:.72rem}.tl-branch{color:#94a3b8;font-size:.65rem}.tl-location{color:#34d399;font-size:.68rem}.tl-remark{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:.65rem;overflow:hidden}.timeline-count{text-align:right;color:#64748b;min-width:35px;font-size:.72rem}.detail-edit-btn{color:#60a5fa;cursor:pointer;background:#3b82f61a;border:1px solid #3b82f640;border-radius:10px;width:100%;margin-top:1.5rem;padding:.65rem;font-size:.85rem;transition:all .15s}.detail-edit-btn:hover{background:#3b82f633;border-color:#3b82f666}.detail-edit-name{color:#f8fafc;text-align:center;background:#0000004d;border:1px solid #ffffff26;border-radius:8px;width:80%;margin-top:.5rem;padding:.5rem .8rem;font-size:1.2rem;font-weight:700}.detail-edit-name:focus{border-color:#3b82f6;outline:none}.detail-edit-form{flex-direction:column;gap:1rem;display:flex}.detail-edit-form label{flex-direction:column;gap:.3rem;display:flex}.detail-edit-form label>span{color:#64748b;font-size:.75rem;font-weight:500}.detail-edit-form input,.detail-edit-form textarea,.detail-edit-form select{color:#f1f5f9;background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;padding:.55rem .8rem;font-size:.85rem;transition:border-color .15s}.detail-edit-form input:focus,.detail-edit-form textarea:focus,.detail-edit-form select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f626}.detail-edit-form textarea{resize:vertical;min-height:80px}.detail-edit-actions{gap:.5rem;margin-top:.5rem;display:flex}.detail-edit-actions .btn-save{flex:1;padding:.6rem;font-size:.85rem}.detail-edit-actions .btn-cancel-sm{text-align:center;flex:1;padding:.6rem;font-size:.85rem}.import-export{gap:.3rem;display:flex}.ie-btn{color:#94a3b8;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;align-items:center;gap:.3rem;height:34px;padding:0 .8rem;font-size:.75rem;transition:all .15s;display:flex}.ie-btn:hover{color:#f1f5f9;background:#ffffff1a;border-color:#fff3}.stat-btn:disabled{opacity:.3;cursor:not-allowed}.login-page{background-color:#0a0a1a;background-image:radial-gradient(at 30%,#3b82f614 0%,#0000 50%),radial-gradient(at 70% 30%,#a855f714 0%,#0000 50%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;justify-content:center;align-items:center;height:100vh;display:flex}.login-card{text-align:center;background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #ffffff14;border-radius:20px;width:90%;max-width:360px;padding:2.5rem;box-shadow:0 20px 60px #00000080}.login-card h1{background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 .3rem;font-size:1.8rem}.login-subtitle{color:#64748b;margin:0 0 1.5rem;font-size:.85rem}.login-field{margin-bottom:.8rem}.login-field input{color:#f1f5f9;background:#0000004d;border:1px solid #ffffff1a;border-radius:10px;width:100%;padding:.7rem 1rem;font-size:.9rem}.login-field input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f626}.login-error{color:#ef4444;margin-bottom:.8rem;font-size:.8rem}.login-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:10px;width:100%;margin-top:.5rem;padding:.7rem;font-size:.9rem;font-weight:600;transition:all .2s}.login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #3b82f666}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-toggle{color:#60a5fa;cursor:pointer;background:0 0;border:none;margin-top:1rem;margin-left:auto;margin-right:auto;font-size:.8rem;display:block}.login-toggle:hover{text-decoration:underline}.user-badge{color:#60a5fa!important}.admin-panel{max-width:520px}.admin-add-btn{color:#34d399;cursor:pointer;background:#34d39914;border:1px dashed #34d3994d;border-radius:10px;width:100%;margin-bottom:1rem;padding:.6rem;font-size:.82rem;transition:all .15s}.admin-add-btn:hover{background:#34d39926;border-color:#34d39980}.admin-add-form{background:#0003;border:1px solid #ffffff0f;border-radius:10px;margin-bottom:1rem;padding:.8rem}.admin-add-row{gap:.5rem;margin-bottom:.5rem;display:flex}.admin-add-row input,.admin-add-row select{color:#f1f5f9;background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;flex:1;padding:.5rem .7rem;font-size:.8rem}.admin-add-row input:focus,.admin-add-row select:focus{border-color:#3b82f6;outline:none}.admin-add-actions{justify-content:flex-end;gap:.4rem;display:flex}.admin-error{color:#ef4444;margin-bottom:.5rem;font-size:.75rem}.admin-edit-name{align-items:center;gap:.3rem;display:flex}.admin-edit-name input{color:#f1f5f9;background:#0000004d;border:1px solid #3b82f666;border-radius:6px;width:100px;padding:.2rem .5rem;font-size:.82rem}.admin-edit-name button{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.75rem}.admin-pw-form{background:#3b82f60d;border:1px solid #3b82f626;border-radius:8px;align-items:center;gap:.4rem;margin-top:-.2rem;margin-bottom:.3rem;padding:.5rem .8rem;display:flex}.admin-pw-form input{color:#f1f5f9;background:#0000004d;border:1px solid #ffffff26;border-radius:6px;flex:1;padding:.35rem .6rem;font-size:.8rem}.admin-pw-form input:focus{border-color:#3b82f6;outline:none}.admin-pw-error{color:#ef4444;font-size:.7rem}.admin-user-list{flex-direction:column;gap:.5rem;max-height:300px;display:flex;overflow-y:auto}.admin-user-row{background:#0003;border:1px solid #ffffff0f;border-radius:10px;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.admin-user-info{flex-direction:column;flex:1;display:flex}.admin-user-name{color:#f1f5f9;font-size:.85rem;font-weight:600}.admin-user-username{color:#64748b;font-size:.7rem}.admin-role-select{color:#e2e8f0;background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;padding:.3rem .5rem;font-size:.75rem}.admin-user-actions{gap:.3rem;display:flex}.admin-user-actions button{color:#94a3b8;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:.25rem .4rem;font-size:.75rem;transition:all .15s}.admin-user-actions button:hover{color:#f1f5f9;background:#ffffff1a}.admin-user-actions .btn-del:hover{color:#ef4444;border-color:#ef44444d}.admin-legend{border-top:1px solid #ffffff0f;margin-top:1rem;padding-top:.8rem}.admin-legend p{color:#64748b;margin:.3rem 0;font-size:.72rem}.lang-switcher{background:#ffffff0a;border-radius:8px;gap:.2rem;padding:.15rem;display:flex}.lang-switcher button{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem .5rem;font-size:.75rem;font-weight:500;transition:all .15s}.lang-switcher button.active{color:#60a5fa;background:#3b82f633}.lang-switcher button:hover:not(.active){color:#e2e8f0}.login-lang{position:absolute;top:1rem;right:1rem}.login-card{position:relative}
