:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-md);transition:transform .2s ease,box-shadow .2s ease}.card-hoverable{cursor:pointer}.card-hoverable:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card-hoverable:active{transform:translateY(0)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:var(--button-min-size);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-normal{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md)}.btn-large{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg);min-height:56px}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-light)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-accent);color:var(--color-primary-dark)}.btn-secondary:hover:not(:disabled){background-color:var(--color-accent-light)}.btn-outline{background-color:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background-color:#c53030}.btn-full{width:100%}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.modal-content{background-color:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--color-border)}.modal-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-primary);margin:0}.modal-close{width:var(--button-min-size);height:var(--button-min-size);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-light);transition:background-color .2s ease}.modal-close:hover{background-color:var(--color-bg)}.modal-body{padding:var(--spacing-md)}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.input-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text)}.input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);background-color:var(--color-bg-card);color:var(--color-text);transition:border-color .2s ease,box-shadow .2s ease}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1a365d1a}.input::placeholder{color:var(--color-text-light)}.input-error{border-color:var(--color-error)}.input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #e53e3e1a}.input-error-text{font-size:var(--font-size-xs);color:var(--color-error)}.textarea{min-height:100px;resize:vertical}.select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23718096' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center}.empty-icon{margin-bottom:var(--spacing-md);color:var(--color-text-light)}.empty-icon svg{width:64px;height:64px}.empty-title{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--spacing-sm)}.empty-description{font-size:var(--font-size-sm);color:var(--color-text-light);margin-bottom:var(--spacing-md);max-width:280px}.empty-action{margin-top:var(--spacing-md)}.home-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,#e8e4da 100%);padding-bottom:70px}.home-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse)}.home-logo{flex-shrink:0}.home-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-accent);margin:0}.home-content{flex:1;padding:var(--spacing-md)}.genealogy-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.genealogy-card{background:linear-gradient(145deg,var(--color-bg-card) 0%,#fdfbf7 100%);border-left:4px solid var(--color-accent)}.genealogy-card-content{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.genealogy-info{flex:1;min-width:0}.genealogy-name{font-size:var(--font-size-lg);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.genealogy-surname{font-size:var(--font-size-md);color:var(--color-text);margin-bottom:var(--spacing-xs)}.genealogy-founder{font-size:var(--font-size-sm);color:var(--color-text-light)}.genealogy-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.add-card{display:flex;align-items:center;justify-content:center;min-height:140px;border:2px dashed var(--color-border-dark);background-color:transparent}.add-card:hover{border-color:var(--color-primary)}.add-card-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);color:var(--color-text-light)}.add-card:hover .add-card-content{color:var(--color-primary)}.form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.profile-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,#e8e4da 100%);padding-bottom:70px}.profile-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--color-primary);color:var(--color-text-inverse)}.profile-avatar{width:64px;height:64px;border-radius:50%;background-color:var(--color-accent);display:flex;align-items:center;justify-content:center;color:var(--color-primary-dark)}.profile-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-accent);margin:0}.profile-content{flex:1;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-card,.data-card,.about-card{background:var(--color-bg-card)}.section-title{font-size:var(--font-size-lg);color:var(--color-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.setting-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.setting-label{font-size:var(--font-size-md);color:var(--color-text)}.setting-item .input-wrapper{width:150px}.data-actions{display:flex;flex-direction:column;gap:var(--spacing-md)}.data-action{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) 0}.data-action-info{flex:1}.data-action-info h3{font-size:var(--font-size-md);color:var(--color-text);margin-bottom:var(--spacing-xs)}.data-action-info p{font-size:var(--font-size-sm);color:var(--color-text-light)}.about-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.about-info p{font-size:var(--font-size-md);color:var(--color-text)}.about-desc{color:var(--color-text-light)!important;margin-top:var(--spacing-sm)}.genealogy-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,#e8e4da 100%);padding-bottom:80px}.genealogy-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-inverse)}.genealogy-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-accent);margin:0}.genealogy-meta{font-size:var(--font-size-sm);color:#fffc;margin:0}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-bg-card);border-bottom:1px solid var(--color-border)}.content-tabs{display:flex;background-color:var(--color-bg-card)}.tab{flex:1;padding:var(--spacing-md);font-size:var(--font-size-md);color:var(--color-text-light);border-bottom:2px solid transparent;transition:all .2s ease}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.genealogy-content{flex:1;padding:var(--spacing-md)}.member-list,.article-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.member-card,.article-card{background:var(--color-bg-card)}.member-info{display:flex;gap:var(--spacing-md);align-items:center}.member-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));display:flex;align-items:center;justify-content:center;color:var(--color-text-inverse);font-size:var(--font-size-xl);font-weight:600;flex-shrink:0;overflow:hidden}.member-avatar img{width:100%;height:100%;object-fit:cover}.member-details{flex:1;min-width:0}.member-name{font-size:var(--font-size-lg);color:var(--color-primary);margin:0 0 var(--spacing-xs) 0}.courtesy-name{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:400}.member-generation{font-size:var(--font-size-sm);color:var(--color-accent);margin:0 0 var(--spacing-xs) 0}.member-achievements{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-member-card,.add-article-card{display:flex;align-items:center;justify-content:center;min-height:80px;border:2px dashed var(--color-border-dark);background-color:transparent}.add-member-content,.add-article-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);color:var(--color-text-light)}.article-title{font-size:var(--font-size-lg);color:var(--color-primary);margin:0 0 var(--spacing-xs) 0}.article-type{font-size:var(--font-size-xs);color:var(--color-accent);margin:0 0 var(--spacing-sm) 0;text-transform:uppercase}.article-preview{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.fab{position:fixed;bottom:80px;right:var(--spacing-lg);width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dark));color:var(--color-primary-dark);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);cursor:pointer;transition:transform .2s ease}.fab:hover{transform:scale(1.1)}.tree-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,#e8e4da 100%);overflow:hidden}.tree-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-inverse);z-index:100}.tree-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-accent);margin:0}.tree-subtitle{font-size:var(--font-size-sm);color:#fffc;margin:0}.action-button{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-accent);background-color:#ffffff1a;border-radius:var(--radius-md)}.action-button:hover{background-color:#fff3}.zoom-controls{position:fixed;bottom:100px;right:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-bg-card);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100}.zoom-controls button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-lg);cursor:pointer}.zoom-controls button:hover{background:var(--color-primary-dark)}.zoom-controls span{min-width:48px;text-align:center;font-size:var(--font-size-sm);color:var(--color-text)}.tree-content{flex:1;overflow:hidden;cursor:grab;position:relative;width:100vw;height:100vh}.tree-content:active{cursor:grabbing}.tree-canvas{position:absolute;top:50%;left:50%;transform-origin:center center;transition:transform .05s ease-out;margin-top:-50%;margin-left:-50%;min-width:200vw;min-height:200vh}.tree-container{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl)}.tree-node-wrapper{display:flex;flex-direction:column;align-items:center}.tree-node-row{display:flex;align-items:center;position:relative}.tree-node-main,.tree-node-spouse{display:flex;align-items:center}.spouse-line{display:flex;align-items:center;height:2px}.spouse-line .line-h{width:8px;height:2px;background:var(--color-primary)}.tree-card{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;width:70px}.tree-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.tree-card:not(.spouse-card){border:2px solid #333}.tree-card.member-male .tree-avatar{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light))}.tree-card.member-female .tree-avatar{background:linear-gradient(135deg,#e91e63,#f48fb1)}.spouse-card{border:none;background:#fffdf0b3}.spouse-card .tree-avatar{background:linear-gradient(135deg,#d4a574,#e8d5b7)}.tree-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));display:flex;align-items:center;justify-content:center;color:var(--color-text-inverse);font-size:var(--font-size-md);font-weight:600;overflow:hidden}.tree-avatar img{width:100%;height:100%;object-fit:cover}.tree-card-info{text-align:center;margin-top:2px}.tree-card-name{font-size:10px;font-weight:600;color:var(--color-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}.tree-card-generation{font-size:8px;color:var(--color-accent);margin:0}.tree-vertical-line{display:flex;flex-direction:column;align-items:center;position:relative;height:16px}.vertical-line{width:2px;height:100%;background:var(--color-primary)}.tree-toggle-btn{position:absolute;bottom:-10px;width:20px;height:20px;border-radius:50%;background:var(--color-primary);color:var(--color-text-inverse);border:2px solid var(--color-bg-card);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease;z-index:10}.tree-toggle-btn:hover{transform:scale(1.1);background:var(--color-primary-dark)}.tree-toggle-btn.expanded{top:5px;bottom:auto}.tree-children{display:flex;gap:var(--spacing-lg);justify-content:center;position:relative;padding-top:30px}.tree-children:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:calc(100% - 70px);height:2px;background:linear-gradient(90deg,transparent,var(--color-primary),transparent)}.empty-tree{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:var(--spacing-md)}.member-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.member-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,#e8e4da 100%)}.member-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-inverse)}.member-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-accent);margin:0}.member-subtitle{font-size:var(--font-size-sm);color:#fffc;margin:0}.edit-button{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-inverse)}.edit-button:hover{background-color:#ffffff1a}.member-content{flex:1;padding:var(--spacing-md);padding-bottom:100px}.member-detail{display:flex;flex-direction:column;gap:var(--spacing-md)}.member-avatar-section{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg) 0}.member-avatar-large{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));display:flex;align-items:center;justify-content:center;color:var(--color-text-inverse);font-size:var(--font-size-3xl);font-weight:600;margin-bottom:var(--spacing-md);overflow:hidden;box-shadow:var(--shadow-lg)}.member-avatar-large img{width:100%;height:100%;object-fit:cover}.member-name-large{font-size:var(--font-size-2xl);color:var(--color-primary);margin:0 0 var(--spacing-xs) 0}.member-name-large .courtesy{font-size:var(--font-size-lg);font-weight:400;color:var(--color-text-light)}.member-title-large{font-size:var(--font-size-md);color:var(--color-accent);margin:0}.info-card{background:var(--color-bg-card)}.card-title{font-size:var(--font-size-md);color:var(--color-primary);margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.info-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.info-item{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.info-label{color:var(--color-text-light)}.info-value{color:var(--color-text);font-weight:500}.biography{color:var(--color-text);line-height:1.6;margin:0}.relation-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.relation-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s ease}.relation-item:hover{background-color:var(--color-bg)}.relation-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));display:flex;align-items:center;justify-content:center;color:var(--color-text-inverse);font-size:var(--font-size-md);font-weight:600;flex-shrink:0}.relation-info{display:flex;flex-direction:column}.relation-name{color:var(--color-text);font-weight:500}.relation-meta{font-size:var(--font-size-xs);color:var(--color-text-light)}.detail-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.member-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.section-title{font-size:var(--font-size-md);color:var(--color-primary);margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--spacing-md)}.lineage-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,#e8e4da 100%)}.lineage-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-inverse)}.lineage-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-accent);margin:0}.lineage-subtitle{font-size:var(--font-size-sm);color:#fffc;margin:0}.format-selector{padding:var(--spacing-md);background-color:var(--color-bg-card);border-bottom:1px solid var(--color-border)}.format-selector .input-wrapper{margin:0}.lineage-content{flex:1;padding:var(--spacing-md);overflow-x:auto}.empty-lineage{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--color-text-light)}.lineage-ou{font-family:Songti SC,SimSun,serif}.ou-header{text-align:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-primary)}.ou-header h2{font-size:var(--font-size-2xl);color:var(--color-primary);margin:0 0 var(--spacing-xs) 0}.ou-header p{color:var(--color-text-light);margin:0}.ou-table{display:flex;flex-direction:column}.ou-row{display:flex;border-bottom:1px solid var(--color-border);min-height:40px}.ou-generation{width:80px;padding:var(--spacing-sm);background-color:var(--color-primary);color:var(--color-accent);font-weight:600;display:flex;align-items:center;flex-shrink:0}.ou-members{flex:1;padding:var(--spacing-sm);display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.ou-member{display:flex;align-items:baseline;gap:var(--spacing-xs)}.ou-name{font-weight:600;color:var(--color-primary)}.ou-courtesy,.ou-achievements,.ou-dates,.ou-spouse{font-size:var(--font-size-sm);color:var(--color-text-light)}.lineage-su{font-family:Songti SC,SimSun,serif}.su-header{text-align:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-primary)}.su-header h2{font-size:var(--font-size-2xl);color:var(--color-primary);margin:0 0 var(--spacing-xs) 0}.su-header p{color:var(--color-text-light);margin:0}.su-tree{padding-left:var(--spacing-lg)}.su-node{position:relative}.su-node:before{content:"";position:absolute;left:-20px;top:0;width:20px;height:2px;background-color:var(--color-border-dark)}.su-node:first-child:before{display:none}.su-member{padding:var(--spacing-sm) var(--spacing-md);margin:var(--spacing-xs) 0;background-color:var(--color-bg-card);border-left:3px solid var(--color-primary);display:inline-block}.su-name{font-weight:600;color:var(--color-primary)}.su-courtesy,.su-achievements{font-size:var(--font-size-sm);color:var(--color-text-light)}.su-children{margin-left:var(--spacing-lg);padding-left:var(--spacing-md);border-left:2px dashed var(--color-border-dark)}.lineage-pagoda{font-family:Songti SC,SimSun,serif}.pagoda-header{text-align:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-primary)}.pagoda-header h2{font-size:var(--font-size-2xl);color:var(--color-primary);margin:0 0 var(--spacing-xs) 0}.pagoda-header p{color:var(--color-text-light);margin:0}.pagoda{display:flex;flex-direction:column;align-items:center}.pagoda-row{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.pagoda-member{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:var(--color-accent);border-radius:var(--radius-sm);white-space:nowrap}.lineage-dianji{font-family:Songti SC,SimSun,serif}.print-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.pdf-viewer{width:100%;max-width:850px;height:650px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0 auto}.dianji-actions{display:flex;justify-content:center;gap:var(--spacing-md);margin-top:var(--spacing-md)}.dianji-controls{display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center;width:100%}.pagination{display:flex;align-items:center;gap:var(--spacing-sm)}.page-info{padding:0 var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-light)}.a4-page{width:210mm;min-height:297mm;background:#fff;padding:20mm;box-sizing:border-box;box-shadow:0 2px 10px #0000001a}.dianji-a4{padding:8mm 10mm;writing-mode:vertical-rl;text-orientation:upright;font-size:12px}.dianji-header{text-align:center;margin-bottom:6mm;padding-bottom:6mm;border-bottom:2px solid var(--color-primary);writing-mode:horizontal-tb}.dianji-header h2{font-size:22px;color:var(--color-primary);margin:0 0 var(--spacing-xs) 0}.dianji-header p{color:var(--color-text-light);margin:0}.page-number{font-size:var(--font-size-sm);color:var(--color-text-light);margin-top:var(--spacing-xs)}.dianji-columns{display:flex;flex-direction:row;gap:6mm;height:100%}.dianji-column{display:flex;flex-direction:column;gap:4mm;min-width:22mm;max-width:26mm}.dianji-member{padding:2mm;border-right:1px solid #ddd;border-bottom:none;writing-mode:vertical-rl;text-orientation:upright;break-inside:avoid}.dianji-member p{margin:1px 0;line-height:1.3;font-size:11px;color:#333;writing-mode:vertical-rl;text-orientation:upright}.dianji-gen-label{font-size:9px;color:#666;font-weight:400}.dianji-name{font-size:12px}.dianji-name strong{color:var(--color-primary);font-weight:700}.dianji-name span{margin:0 1px}@media print{.no-print,.lineage-header,.format-selector,.lineage-page>*:not(.print-container){display:none!important}.print-container{display:block;width:100%}.a4-page{width:100%;min-height:297mm;height:297mm;padding:8mm 10mm;box-shadow:none;page-break-after:always;box-sizing:border-box;margin:0}.a4-page:last-child{page-break-after:auto}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;margin:0;padding:0}.dianji-a4,.dianji-member,.dianji-member p{writing-mode:vertical-rl!important;text-orientation:upright!important}}.article-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,#e8e4da 100%)}.article-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-inverse)}.back-button{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-inverse);flex-shrink:0}.back-button:hover{background-color:#ffffff1a}.header-content{flex:1;min-width:0}.article-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-accent);margin:0}.article-subtitle{font-size:var(--font-size-sm);color:#fffc;margin:0}.article-content{flex:1;padding:var(--spacing-md)}.loading{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--color-text-light)}.article-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-card{background:var(--color-bg-card)}.form-fields{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md);position:sticky;bottom:0;padding:var(--spacing-md);background:var(--color-bg)}.article-detail{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.article-header-section{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.article-title-large{font-size:var(--font-size-2xl);color:var(--color-primary);margin:0 0 var(--spacing-sm) 0}.article-type-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-accent);color:var(--color-primary-dark);font-size:var(--font-size-xs);border-radius:var(--radius-sm);text-transform:uppercase}.article-body{font-family:Songti SC,SimSun,serif;font-size:var(--font-size-md);line-height:1.8;color:var(--color-text)}.article-body p{margin:0 0 var(--spacing-md) 0;text-indent:2em}.article-body p:last-child{margin-bottom:0}.article-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}:root{--color-primary: #1a365d;--color-primary-light: #2c5282;--color-primary-dark: #0f2440;--color-accent: #d69e2e;--color-accent-light: #ecc94b;--color-accent-dark: #b7791f;--color-bg: #f7f5f0;--color-bg-card: #ffffff;--color-bg-dark: #1a202c;--color-text: #2d3748;--color-text-light: #718096;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-dark: #cbd5e0;--color-success: #38a169;--color-error: #e53e3e;--color-warning: #dd6b20;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--button-min-size: 44px}.font-large{--font-size-xs: 14px;--font-size-sm: 16px;--font-size-md: 18px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 28px;--font-size-3xl: 36px}.font-xlarge{--font-size-xs: 16px;--font-size-sm: 18px;--font-size-md: 20px;--font-size-lg: 24px;--font-size-xl: 28px;--font-size-2xl: 32px;--font-size-3xl: 42px}*{box-sizing:border-box;margin:0;padding:0}html,body{font-size:16px;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}#root{min-height:100vh;display:flex;flex-direction:column;width:100%;height:100%}h1,h2,h3,h4,h5,h6{font-weight:600;color:var(--color-primary)}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-light)}button{border:none;background:none;cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}img{max-width:100%;height:auto}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}.text-center{text-align:center}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-light{color:var(--color-text-light)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;background-color:var(--color-bg-card);border-top:1px solid var(--color-border);box-shadow:0 -2px 10px #0000000d;z-index:100}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm) 0;color:var(--color-text-light);text-decoration:none;transition:color .2s ease;min-height:56px}.tab-item.active{color:var(--color-primary)}.tab-item:active{background-color:var(--color-bg)}.tab-item span{font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}
