@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css";:root{--color-primary-1: #E8F3FF;--color-primary-2: #BEDAFF;--color-primary-3: #94BFFF;--color-primary-4: #6AA1FF;--color-primary-5: #4080FF;--color-primary-6: #165DFF;--color-primary-7: #0E42D2;--color-primary-8: #072CA6;--color-primary-9: #031C7A;--color-primary-10: #000D4D;--color-primary: #165DFF;--color-primary-hover: #4080FF;--color-primary-active: #0E42D2;--color-success: #00B42A;--color-warning: #FF7D00;--color-error: #F53F3F;--color-info: #165DFF;--color-success-bg: #E8FFEA;--color-warning-bg: #FFF7E8;--color-error-bg: #FFECE8;--color-info-bg: #E8F3FF;--color-neutral-1: #ffffff;--color-neutral-2: #fafafa;--color-neutral-3: #f5f5f5;--color-neutral-4: #e8e8e8;--color-neutral-5: #d9d9d9;--color-neutral-6: #bfbfbf;--color-neutral-7: #8c8c8c;--color-neutral-8: #595959;--color-neutral-9: #333333;--color-neutral-10: #1d2129;--color-bg-base: #ffffff;--color-bg-container: #ffffff;--color-bg-elevated: #fafafa;--color-bg-layout: #f5f5f5;--color-text-base: #1d2129;--color-text-secondary: #595959;--color-text-tertiary: #8c8c8c;--color-text-disabled: #bfbfbf;--color-border: #e8e8e8;--color-border-secondary: #f5f5f5;--color-fill: #f5f5f5;--color-fill-secondary: #fafafa;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-xxl: 24px;--font-size-h2: 30px;--font-size-h1: 38px;--font-size-display: 46px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-base: 1.5;--line-height-relaxed: 1.75;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 20px;--spacing-xl: 24px;--spacing-xxl: 32px;--spacing-xxxl: 40px;--spacing-huge: 48px;--spacing-massive: 64px;--radius-xs: 4px;--radius-sm: 6px;--radius-base: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-hover: 0 2px 8px rgba(0, 0, 0, .08);--shadow-card: 0 4px 12px rgba(0, 0, 0, .1);--shadow-dropdown: 0 6px 16px rgba(0, 0, 0, .12);--shadow-modal: 0 12px 32px rgba(0, 0, 0, .16);--shadow-popover: 0 2px 4px rgba(0, 0, 0, .06);--motion-duration-fast: .1s;--motion-duration-mid: .2s;--motion-duration-slow: .3s;--motion-easing: cubic-bezier(.4, 0, .2, 1);--motion-easing-in-out: cubic-bezier(.4, 0, .2, 1);--motion-easing-out: cubic-bezier(0, 0, .2, 1);--motion-easing-in: cubic-bezier(.4, 0, 1, 1)}[data-theme=dark]{--color-bg-base: #1a1a2e;--color-bg-container: #1a1a2e;--color-bg-elevated: #1f1f3a;--color-bg-layout: #1a1a2e;--color-text-base: #e8e8e8;--color-text-secondary: #babaca;--color-text-tertiary: #9a9aba;--color-text-disabled: #4a4a7a;--color-border: #3a3a6a;--color-border-secondary: #2a2a5a;--color-fill: #25254a;--color-fill-secondary: #1f1f3a;--color-primary-hover: #6AA1FF;--color-primary-active: #94BFFF;--shadow-hover: 0 2px 8px rgba(0, 0, 0, .3);--shadow-card: 0 4px 12px rgba(0, 0, 0, .35);--shadow-dropdown: 0 6px 16px rgba(0, 0, 0, .4);--shadow-modal: 0 12px 32px rgba(0, 0, 0, .5);--shadow-popover: 0 2px 4px rgba(0, 0, 0, .25)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--color-fill-secondary);border-radius:var(--radius-sm)}*::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm);transition:background var(--motion-duration-fast) var(--motion-easing)}*::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-fill-secondary)}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-xs)}[disabled],[aria-disabled=true]{opacity:.5;cursor:not-allowed;-webkit-user-select:none;user-select:none}*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa;color:#2c3e50}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2;color:inherit}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}a{color:inherit;text-decoration:none;background-color:transparent}img{border-style:none;max-width:100%;height:auto}button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none;-webkit-appearance:button}input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col{flex-basis:0;flex-grow:1;max-width:100%}@media(min-width:576px){.container{max-width:540px}}@media(min-width:768px){.container{max-width:720px}}@media(min-width:992px){.container{max-width:960px}}@media(min-width:1200px){.container{max-width:1140px}}.text-primary{color:#667eea}.text-secondary{color:#495057}.text-success{color:#28a745}.text-danger{color:#dc3545}.text-warning{color:#ffc107}.text-info{color:#17a2b8}.text-muted{color:#6c757d}.flex-column{flex-direction:column}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.align-items-center{align-items:center}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}.loading{display:flex;justify-content:center;align-items:center;height:100%;width:100%}.loading-spinner{display:inline-block;width:50px;height:50px;border:3px solid rgba(102,126,234,.3);border-radius:50%;border-top-color:#667eea;animation:spin 1s ease-in-out infinite}.fade-in{animation:fadeIn .3s ease-in-out}.slide-in{animation:slideIn .3s ease-in-out}@keyframes slideIn{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}:root,[data-theme=light]{--primary-color: #165DFF;--primary-hover: #4080FF;--primary-active: #0037B3;--primary-gradient: linear-gradient(135deg, #165DFF 0%, #0052D9 100%);--success-color: #00B42A;--success-hover: #36D399;--warning-color: #FF7D00;--warning-hover: #FFA940;--error-color: #F53F3F;--error-hover: #FF7875;--info-color: #86909C;--info-hover: #B7BDC7;--white: #FFFFFF;--gray-50: #F5F7FA;--gray-100: #F2F3F5;--gray-200: #E5E6EB;--gray-300: #C9CDD4;--gray-400: #86909C;--gray-500: #4E5969;--gray-600: #272E3B;--gray-700: #1D2129;--gray-800: #0A0C10;--black: #000000;--text-primary: #1D2129;--text-secondary: #4E5969;--text-tertiary: #86909C;--text-disabled: #C9CDD4;--text-inverse: #FFFFFF;--border-color: #E5E6EB;--border-hover: #C9CDD4;--border-active: #4080FF;--bg-primary: #FFFFFF;--bg-secondary: #F5F7FA;--bg-tertiary: #F2F3F5;--bg-hover: #F2F3F5;--bg-active: #E6F0FF;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 16px rgba(0, 0, 0, .14);--shadow-2xl: 0 16px 32px rgba(0, 0, 0, .16)}[data-theme=dark]{--primary-color: #165DFF;--primary-hover: #4080FF;--primary-active: #0037B3;--primary-gradient: linear-gradient(135deg, #165DFF 0%, #0052D9 100%);--success-color: #00B42A;--success-hover: #36D399;--warning-color: #FF7D00;--warning-hover: #FFA940;--error-color: #F53F3F;--error-hover: #FF7875;--info-color: #86909C;--info-hover: #B7BDC7;--white: #1a1a2e;--gray-50: #1a1a2e;--gray-100: #16213e;--gray-200: #2a2a4e;--gray-300: #3a3a5e;--gray-400: #4a4a6e;--gray-500: #808080;--gray-600: #b0b0b0;--gray-700: #e8e8e8;--gray-800: #f0f0f0;--black: #e8e8e8;--text-primary: #e8e8e8;--text-secondary: #b0b0b0;--text-tertiary: #808080;--text-disabled: #505050;--text-inverse: #1a1a2e;--border-color: #3a3a5e;--border-hover: #4a4a6e;--border-active: #165DFF;--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-tertiary: #0f3460;--bg-hover: #1a1a3e;--bg-active: #2a2a4e;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 6px 10px rgba(0, 0, 0, .45);--shadow-xl: 0 10px 16px rgba(0, 0, 0, .5);--shadow-2xl: 0 16px 32px rgba(0, 0, 0, .55)}:root{--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 50%;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--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;--font-size-4xl: 36px;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-xs: 1.2;--line-height-sm: 1.4;--line-height-md: 1.5;--line-height-lg: 1.6;--line-height-xl: 1.8;--transition-fast: .15s;--transition-normal: .3s;--transition-slow: .5s;--transition-easing: ease-in-out}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-md);color:var(--text-primary);background-color:var(--bg-secondary);margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-family);font-weight:var(--font-weight-semibold);line-height:var(--line-height-xs);margin:0;color:var(--text-primary)}h1{font-size:var(--font-size-4xl);line-height:var(--line-height-lg)}h2{font-size:var(--font-size-3xl);line-height:var(--line-height-lg)}h3{font-size:var(--font-size-2xl);line-height:var(--line-height-lg)}h4{font-size:var(--font-size-xl);line-height:var(--line-height-md)}h5{font-size:var(--font-size-lg);line-height:var(--line-height-md)}h6{font-size:var(--font-size-md);line-height:var(--line-height-md)}p{margin:0;color:var(--text-primary)}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-normal) var(--transition-easing)}a:hover{color:var(--primary-hover);text-decoration:underline}a:focus{outline:2px solid var(--primary-active);outline-offset:2px;border-radius:var(--radius-sm)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.container-fluid{width:100%;padding:0 var(--spacing-md)}.row{display:flex;flex-wrap:wrap;margin:0 -var(--spacing-sm)}.col{flex:1;padding:0 var(--spacing-sm)}.card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:all var(--transition-normal) var(--transition-easing);overflow:hidden}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-hover)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);background-color:var(--bg-tertiary)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);background-color:var(--bg-tertiary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-sm);text-align:center;text-decoration:none;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal) var(--transition-easing);-webkit-user-select:none;user-select:none;outline:none}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus{outline:2px solid var(--primary-active);outline-offset:2px}.btn-primary{background-color:var(--primary-color);color:var(--text-inverse);border-color:var(--primary-color)}.btn-primary:hover{background-color:var(--primary-hover);border-color:var(--primary-hover);box-shadow:var(--shadow-md)}.btn-primary:active{background-color:var(--primary-active);border-color:var(--primary-active)}.btn-secondary{background-color:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{background-color:var(--bg-hover);border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.btn-success{background-color:var(--success-color);color:var(--text-inverse);border-color:var(--success-color)}.btn-success:hover{background-color:var(--success-hover);border-color:var(--success-hover);box-shadow:var(--shadow-md)}.btn-warning{background-color:var(--warning-color);color:var(--text-inverse);border-color:var(--warning-color)}.btn-warning:hover{background-color:var(--warning-hover);border-color:var(--warning-hover);box-shadow:var(--shadow-md)}.btn-error{background-color:var(--error-color);color:var(--text-inverse);border-color:var(--error-color)}.btn-error:hover{background-color:var(--error-hover);border-color:var(--error-hover);box-shadow:var(--shadow-md)}.btn-info{background-color:var(--info-color);color:var(--text-inverse);border-color:var(--info-color)}.btn-info:hover{background-color:var(--info-hover);border-color:var(--info-hover);box-shadow:var(--shadow-md)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn-md{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md)}.btn-outline{background-color:transparent;border-color:var(--border-color);color:var(--text-primary)}.btn-outline:hover{background-color:var(--bg-hover);border-color:var(--border-hover)}.btn-text{background-color:transparent;border-color:transparent;color:var(--primary-color)}.btn-text:hover{background-color:var(--bg-hover);color:var(--primary-hover)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn:disabled:hover{background-color:inherit;border-color:inherit;color:inherit}.input{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-md);color:var(--text-primary);background-color:var(--bg-primary);background-clip:padding-box;border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-normal) var(--transition-easing);outline:none}.input:hover{border-color:var(--border-hover)}.input:focus{border-color:var(--border-active);box-shadow:0 0 0 2px #4080ff33}.input:disabled{background-color:var(--bg-tertiary);color:var(--text-disabled);cursor:not-allowed}.input::placeholder{color:var(--text-tertiary)}.input-group{display:flex;align-items:stretch;width:100%}.input-group>.input{position:relative;flex:1 1 auto;width:1%;min-width:0;border-radius:0}.input-group>.input:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.input-group>.input:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.input-group-addon{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-md);color:var(--text-secondary);text-align:center;white-space:nowrap;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.input-group>.input-group-addon:first-child{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.input-group>.input-group-addon:last-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.table{width:100%;border-collapse:collapse;border-spacing:0}.table th,.table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;vertical-align:middle;border-bottom:1px solid var(--border-color)}.table th{font-weight:var(--font-weight-semibold);color:var(--text-secondary);background-color:var(--bg-tertiary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px}.table td{color:var(--text-primary);font-size:var(--font-size-sm)}.table tbody tr{transition:background-color var(--transition-normal) var(--transition-easing)}.table tbody tr:hover{background-color:var(--bg-hover)}.table tbody tr:active{background-color:var(--bg-active)}.table-striped tbody tr:nth-of-type(odd){background-color:var(--bg-secondary)}.table-striped tbody tr:nth-of-type(odd):hover{background-color:var(--bg-hover)}.table-sm th,.table-sm td{padding:var(--spacing-xs) var(--spacing-sm)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-sm);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.badge-primary{background-color:var(--primary-color);color:var(--text-inverse)}.badge-secondary{background-color:var(--text-tertiary);color:var(--text-inverse)}.icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.icon-sm{font-size:16px;width:24px;height:24px}.icon-md{font-size:20px;width:32px;height:32px}.icon-lg{font-size:24px;width:40px;height:40px}.loading{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.loading:after{content:"";display:inline-block;width:16px;height:16px;border:2px solid var(--border-color);border-radius:var(--radius-full);border-top-color:var(--primary-color);animation:spin var(--transition-normal) linear infinite;margin-left:var(--spacing-sm)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:fadeIn var(--transition-normal) var(--transition-easing)}.slide-in{animation:slideIn var(--transition-normal) var(--transition-easing)}.scale-in{animation:scaleIn var(--transition-normal) var(--transition-easing)}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-disabled{color:var(--text-disabled)}.text-inverse{color:var(--text-inverse)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.bg-hover{background-color:var(--bg-hover)}.bg-active{background-color:var(--bg-active)}.border{border:1px solid var(--border-color)}.border-top{border-top:1px solid var(--border-color)}.border-right{border-right:1px solid var(--border-color)}.border-bottom{border-bottom:1px solid var(--border-color)}.border-left{border-left:1px solid var(--border-color)}.border-none{border:none}.rounded{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.rounded-none{border-radius:0}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.shadow-none{box-shadow:none}.m-0{margin:0}.m-1{margin:var(--spacing-xs)}.m-2{margin:var(--spacing-sm)}.m-3{margin:var(--spacing-md)}.m-4{margin:var(--spacing-lg)}.m-5{margin:var(--spacing-xl)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mt-5{margin-top:var(--spacing-xl)}.mr-0{margin-right:0}.mr-1{margin-right:var(--spacing-xs)}.mr-2{margin-right:var(--spacing-sm)}.mr-3{margin-right:var(--spacing-md)}.mr-4{margin-right:var(--spacing-lg)}.mr-5{margin-right:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-5{margin-bottom:var(--spacing-xl)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing-xs)}.ml-2{margin-left:var(--spacing-sm)}.ml-3{margin-left:var(--spacing-md)}.ml-4{margin-left:var(--spacing-lg)}.ml-5{margin-left:var(--spacing-xl)}.p-0{padding:0}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:var(--spacing-md)}.p-4{padding:var(--spacing-lg)}.p-5{padding:var(--spacing-xl)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing-xs)}.pt-2{padding-top:var(--spacing-sm)}.pt-3{padding-top:var(--spacing-md)}.pt-4{padding-top:var(--spacing-lg)}.pt-5{padding-top:var(--spacing-xl)}.pr-0{padding-right:0}.pr-1{padding-right:var(--spacing-xs)}.pr-2{padding-right:var(--spacing-sm)}.pr-3{padding-right:var(--spacing-md)}.pr-4{padding-right:var(--spacing-lg)}.pr-5{padding-right:var(--spacing-xl)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing-xs)}.pb-2{padding-bottom:var(--spacing-sm)}.pb-3{padding-bottom:var(--spacing-md)}.pb-4{padding-bottom:var(--spacing-lg)}.pb-5{padding-bottom:var(--spacing-xl)}.pl-0{padding-left:0}.pl-1{padding-left:var(--spacing-xs)}.pl-2{padding-left:var(--spacing-sm)}.pl-3{padding-left:var(--spacing-md)}.pl-4{padding-left:var(--spacing-lg)}.pl-5{padding-left:var(--spacing-xl)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.d-none{display:none}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.visible{visibility:visible}.invisible{visibility:hidden}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.rotate-0{transform:rotate(0)}.rotate-90{transform:rotate(90deg)}.rotate-180{transform:rotate(180deg)}.rotate-270{transform:rotate(270deg)}.scale-0{transform:scale(0)}.scale-50{transform:scale(.5)}.scale-75{transform:scale(.75)}.scale-100{transform:scale(1)}.scale-125{transform:scale(1.25)}.scale-150{transform:scale(1.5)}.translate-x-0{transform:translate(0)}.translate-x-1-half{transform:translate(50%)}.translate-x-full{transform:translate(100%)}.translate-y-0{transform:translateY(0)}.translate-y-1-half{transform:translateY(50%)}.translate-y-full{transform:translateY(100%)}.transition-none{transition:none}.transition{transition:all var(--transition-normal) var(--transition-easing)}.transition-fast{transition:all var(--transition-fast) var(--transition-easing)}.transition-slow{transition:all var(--transition-slow) var(--transition-easing)}.member-info-container{padding:24px;min-height:calc(100vh - 160px);background-color:var(--bg-secondary)}.member-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.member-info-title{font-size:28px;font-weight:600;color:var(--text-primary);margin:0}.member-info-title .spouse-label{font-size:16px;font-weight:400;color:var(--text-secondary);margin-left:8px;vertical-align:middle}.member-info-actions{display:flex;gap:12px}.action-button{border-radius:6px;transition:all .3s ease}.action-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.member-info-card{border-radius:8px;overflow:hidden}.member-basic-info{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;align-items:center}.member-details{flex:1;min-width:300px}.member-descriptions{border-radius:6px;overflow:hidden}.description-item{font-weight:500}.description-item .ant-descriptions-item-label{background-color:var(--bg-secondary);font-weight:600;color:var(--text-secondary)}.description-item .ant-descriptions-item-content{font-weight:500;color:var(--text-primary)}.description-value{font-weight:500}.name-value{font-size:18px;font-weight:600;color:var(--primary-color)}.member-avatar-container{display:flex;justify-content:center;align-items:center}.member-main-avatar{transition:transform .3s ease,box-shadow .3s ease}.member-main-avatar:hover{transform:scale(1.05);box-shadow:0 8px 24px #0003}.status-tag{font-weight:500}.family-group-section{margin-bottom:32px;padding:16px;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.section-title{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--primary-color);display:inline-block}.family-member-card{border-radius:8px;transition:all .3s ease;border:1px solid var(--border-color);width:180px}.family-member-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000026;border-color:var(--primary-color)}.family-member-card.parent-selected-card{border-color:#52c41a;box-shadow:0 0 0 2px #52c41a33}.member-card-content{text-align:center;padding:12px}.member-avatar{margin-bottom:12px;transition:transform .3s ease}.family-member-card:hover .member-avatar{transform:scale(1.1)}.member-name{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.member-name a{color:var(--primary-color);text-decoration:none;transition:color .3s ease}.member-name a:hover{color:var(--primary-hover);text-decoration:underline}.member-gender,.member-birthdate{font-size:14px;color:var(--text-secondary);margin:4px 0}.member-status-tag{margin-top:8px;font-size:12px}.member-info-tabs{margin-top:24px}.tab-item{font-weight:500}.detailed-descriptions{border-radius:6px;overflow:hidden}.description-with-icon{display:flex;align-items:flex-start;gap:8px}.info-icon{color:var(--primary-color);margin-top:2px;flex-shrink:0}.bio-value{line-height:1.6;white-space:pre-wrap}.loading-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 160px)}.loading-content{text-align:center;padding:32px;background-color:#fff;border-radius:8px;box-shadow:0 4px 16px #0000001a}.loading-text{margin-top:16px;color:var(--text-secondary);font-size:16px}.error-alert{margin-bottom:24px;border-radius:6px}@media(max-width:575.98px){:root{--font-size-4xl: 2rem;--font-size-3xl: 1.75rem;--font-size-2xl: 1.5rem;--font-size-xl: 1.25rem;--font-size-lg: 1.125rem;--font-size-md: 1rem}.container,.container-fluid{padding:0 var(--spacing-sm)}.card-header,.card-body,.card-footer{padding:var(--spacing-md)}.btn{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--font-size-xs)}}@media(min-width:576px)and (max-width:767.98px){.container,.container-fluid{padding:0 var(--spacing-md)}}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.add-member-card{display:flex;align-items:center;justify-content:center;min-height:220px;cursor:pointer;border:2px dashed var(--border-color);background-color:var(--bg-tertiary);transition:all var(--transition-normal) var(--transition-easing);width:180px}.add-member-card:hover{border-color:var(--primary-color);background-color:#165dff0d;transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.add-member-card-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:24px}.add-member-icon{font-size:48px;color:var(--primary-color);margin-bottom:8px;transition:transform var(--transition-normal) var(--transition-easing)}.add-member-card:hover .add-member-icon{transform:scale(1.2)}.add-member-text{font-size:14px;color:var(--primary-color);font-weight:500;margin:0}.family-group-section .ant-row .ant-col{display:flex;justify-content:flex-start;margin-bottom:16px}.family-member-card.dragging{opacity:.5;transform:rotate(5deg);box-shadow:0 8px 20px #0003;transition:all .2s ease}.family-member-card.drag-over{border:2px dashed var(--primary-color);box-shadow:0 0 0 2px #165dff33;transition:all .2s ease}.drop-indicator{height:2px;background-color:var(--primary-color);margin:4px 0;opacity:.8;animation:pulse .5s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.5;transform:scaleX(.8)}to{opacity:1;transform:scaleX(1)}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;font-family:var(--font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-md);color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;width:100%}.app-container{display:flex;height:100vh;overflow:hidden;background-color:var(--bg-secondary)}.sidebar{width:240px;height:100vh;background-color:var(--bg-primary);box-shadow:var(--shadow-md);display:flex;flex-direction:column;transition:all var(--transition-normal) var(--transition-easing);z-index:100}.sidebar.collapsed{width:80px}.sidebar.collapsed .sidebar-header{justify-content:center;padding:var(--spacing-lg) var(--spacing-sm)}.sidebar.collapsed .collapse-btn{margin-top:8px}.sidebar.collapsed .sidebar-menu .ant-menu{width:100%}.sidebar.collapsed .sidebar-footer{padding:var(--spacing-sm)}.sidebar-header{padding:var(--spacing-lg) var(--spacing-md);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);background-color:var(--bg-primary);position:sticky;top:0;z-index:10}.sidebar-header .logo h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--primary-color);margin:0;display:flex;align-items:center;justify-content:center}.sidebar.collapsed .logo h2{font-size:var(--font-size-xl)}.collapse-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--transition-easing)}.collapse-btn:hover{background-color:var(--bg-hover)}.ant-drawer-body:has(.sidebar){padding:0!important;height:100%}.ant-drawer-body .sidebar{width:100%;height:100%;position:static;box-shadow:none;overflow-y:auto}.ant-drawer-body .sidebar-header{position:static;border-bottom:1px solid var(--border-color)}.ant-drawer-body .sidebar-menu{flex:1;overflow-y:auto}.ant-drawer-body .sidebar-footer{border-top:1px solid var(--border-color)}.sidebar-menu{flex:1;padding:var(--spacing-md) 0}.sidebar-menu .ant-menu{background-color:transparent;border-right:none}.sidebar-menu .ant-menu-item{padding:0 12px;height:48px;line-height:48px;border-radius:var(--radius-md);margin:4px;transition:all var(--transition-fast) var(--transition-easing)}.sidebar-menu .ant-menu-item:hover{background-color:var(--bg-hover)!important;color:var(--primary-color)!important}.sidebar-menu .ant-menu-item.ant-menu-item-selected{background-color:var(--bg-active)!important;color:var(--primary-color)!important}.sidebar-menu .ant-menu-item .anticon{font-size:18px}.sidebar-menu .ant-menu-item span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.sidebar-menu .ant-menu-submenu-title{height:48px;line-height:48px;padding:0 12px;margin:4px;border-radius:var(--radius-md);transition:all var(--transition-fast) var(--transition-easing)}.sidebar-menu .ant-menu-submenu-title:hover{background-color:var(--bg-hover)!important;color:var(--primary-color)!important}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--border-color);background-color:var(--bg-primary);position:sticky;bottom:0}.user-info{display:flex;align-items:center;padding:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast) var(--transition-easing)}.user-info:hover{background-color:var(--bg-hover)}.user-avatar{width:36px;height:36px;border:2px solid var(--primary-color);transition:all var(--transition-fast) var(--transition-easing)}.user-details{margin-left:var(--spacing-sm);flex:1}.user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0}.user-role{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0}.logout-btn{width:100%;justify-content:flex-start!important;color:var(--error-color)!important;transition:all var(--transition-fast) var(--transition-easing)}.logout-btn:hover{background-color:var(--bg-hover)!important}.main-content-wrapper{flex:1;display:flex;flex-direction:column;height:100vh;transition:all var(--transition-normal) var(--transition-easing);overflow:hidden}.main-content-wrapper.collapsed{margin-left:0}.top-header{height:64px;background-color:var(--bg-primary);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-xl);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border-color)}.header-left{display:flex;align-items:center}.mobile-menu-btn{display:none;margin-right:var(--spacing-md)}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.header-right{display:flex;align-items:center}.main-content{flex:1;overflow-y:auto;padding:var(--spacing-xl);background-color:var(--bg-secondary)}.page-section{margin-bottom:var(--spacing-xl)}.container-fluid{padding:var(--spacing-xl)}.stats-section{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.stat-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:all var(--transition-normal) var(--transition-easing)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon{width:60px;height:60px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--text-inverse)}.bg-primary-gradient{background:var(--primary-gradient)}.bg-success-gradient{background:linear-gradient(135deg,var(--success-color) 0%,#36D399 100%)}.bg-warning-gradient{background:linear-gradient(135deg,var(--warning-color) 0%,#FFA940 100%)}.bg-info-gradient{background:linear-gradient(135deg,var(--info-color) 0%,#B7BDC7 100%)}.stats-content{flex:1}.stats-content h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.stats-content p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--spacing-xs) 0}.stats-content small{font-size:var(--font-size-xs);display:flex;align-items:center;gap:var(--spacing-xs)}.chart-section{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.chart-section .card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;border:1px solid var(--border-color)}.chart-section .card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);background-color:var(--bg-primary)}.chart-section .card-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.chart-section .card-body{padding:var(--spacing-lg)}.chart-container{height:300px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-secondary);border-radius:var(--radius-md)}.quick-actions{display:flex;flex-direction:column;gap:var(--spacing-md)}.quick-actions button{width:100%}@media(max-width:575.98px){.sidebar{display:none}.main-content-wrapper{margin-left:0}.top-header{padding:0 var(--spacing-md)}.mobile-menu-btn{display:flex!important}.page-title{font-size:var(--font-size-lg)}.main-content,.container-fluid{padding:var(--spacing-md)}.stats-section,.chart-section{grid-template-columns:1fr;gap:var(--spacing-md)}}@media(min-width:576px)and (max-width:767.98px){.sidebar{display:none}.main-content-wrapper{margin-left:0}.mobile-menu-btn{display:flex!important}.stats-section{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.chart-section{grid-template-columns:1fr;gap:var(--spacing-md)}}@media(min-width:768px)and (max-width:991.98px){.sidebar{display:none}.main-content-wrapper{margin-left:0}.mobile-menu-btn{display:flex!important}.stats-section{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}}@media(min-width:992px)and (max-width:1199.98px){.stats-section{grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}}@media(min-width:1200px){.stats-section{grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.slide-in{animation:slideIn .3s ease-out}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background-color:var(--bg-secondary);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-tertiary)}.btn-primary{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--text-inverse)}.btn-primary:hover{background-color:var(--primary-active);border-color:var(--primary-active)}.card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.form-item{margin-bottom:var(--spacing-lg)}.table-wrapper{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden}.pagination-wrapper{display:flex;justify-content:center;margin-top:var(--spacing-xl)}.modal-header{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color)}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.modal-body{background-color:var(--bg-secondary)}.modal-footer{background-color:var(--bg-primary);border-top:1px solid var(--border-color)}.search-box{width:300px}.badge-success{background-color:var(--success-color);color:var(--text-inverse)}.badge-warning{background-color:var(--warning-color);color:var(--text-inverse)}.badge-error{background-color:var(--error-color);color:var(--text-inverse)}.badge-info{background-color:var(--info-color);color:var(--text-inverse)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center}.empty-state-icon{font-size:48px;color:var(--text-tertiary);margin-bottom:var(--spacing-lg)}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.empty-state-description{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-lg)}.loading-state{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl)}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center}.error-state-icon{font-size:48px;color:var(--error-color);margin-bottom:var(--spacing-lg)}.error-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--error-color);margin-bottom:var(--spacing-sm)}.error-state-description{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-lg)}.notification{position:fixed;top:80px;right:var(--spacing-lg);z-index:1000}.tooltip{font-size:var(--font-size-sm)}@media print{.sidebar{display:none}.main-content-wrapper{margin-left:0}.top-header{display:none}.main-content,.container-fluid{padding:0}}@media(prefers-contrast:high){:root{--border-color: #000000;--text-primary: #000000;--text-secondary: #333333;--text-tertiary: #666666;--bg-primary: #ffffff;--bg-secondary: #f0f0f0;--bg-hover: #e0e0e0;--bg-active: #d0d0d0;--primary-color: #0066cc;--success-color: #008800;--warning-color: #cc6600;--error-color: #cc0000;--info-color: #666666}}.mobile-only{display:none}.desktop-only{display:block}.touch-target{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}img[loading=lazy]{background:#f0f2f5}.smooth-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overscroll-behavior:contain}.safe-area-inset-top{padding-top:env(safe-area-inset-top)}.safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-inset-left{padding-left:env(safe-area-inset-left)}.safe-area-inset-right{padding-right:env(safe-area-inset-right)}.mobile-input,.mobile-input input,.mobile-input textarea,.mobile-input select,input.mobile-input,textarea.mobile-input,select.mobile-input{font-size:16px}.mobile-btn{min-height:44px;min-width:44px;padding:10px 16px;font-size:16px;line-height:1.4;touch-action:manipulation}.mobile-container{width:100%;max-width:100%;box-sizing:border-box}@media(max-width:768px){.mobile-only{display:block}.desktop-only{display:none}.table-card-mobile,.table-card-mobile tbody,.table-card-mobile tr,.table-card-mobile td{display:block;width:100%}.table-card-mobile thead{display:none}.table-card-mobile tr{margin-bottom:var(--spacing-md, 12px);border:1px solid var(--border-color, #e8e8e8);border-radius:var(--radius-md, 8px);background-color:var(--bg-primary, #ffffff);padding:var(--spacing-sm, 8px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .06))}.table-card-mobile td{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:none;text-align:right;border-bottom:1px solid var(--border-color, #f0f0f0)}.table-card-mobile td:last-child{border-bottom:none}.table-card-mobile td:before{content:attr(data-label);font-weight:var(--font-weight-semibold, 600);color:var(--text-secondary, #666666);text-align:left;padding-right:var(--spacing-md, 12px);white-space:nowrap}input[type=text],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=url],input[type=date],input[type=datetime-local],input[type=time],textarea,select{font-size:16px}button,.ant-btn,a.btn{min-height:40px}.no-mobile-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.family-tree-touch-container{touch-action:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}}.member-table{width:100%}.member-table .name-cell{font-weight:700;display:block}.member-table .parent-id-cell{font-weight:700}.member-table .expanded-row{padding:10px 0 0 80px;display:flex;align-items:flex-start;gap:8px}.member-table .expanded-row-label{font-weight:700;margin-top:2px}.member-table .expanded-row-separator{color:var(--text-primary);min-width:8px;margin-top:2px}.member-table .expanded-row-content{display:flex;flex-direction:column;gap:8px;flex:1}.member-table .spouse-item{display:flex;flex-direction:row;align-items:center;gap:16px;padding-top:4px}.member-table .spouse-item:first-child{padding-top:0}.member-table .spouse-id{display:inline-block}.member-table .spouse-name{display:inline-block;min-width:60px}.member-card-list{width:100%;margin-top:8px}.member-card{transition:all .2s ease;border-radius:8px}.member-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.member-card .ant-card-head{min-height:40px;padding:8px 12px}.member-card .ant-card-body{padding:12px}.member-card-title{display:flex;align-items:center;gap:8px}.member-card-name{font-weight:600;font-size:14px;color:var(--text-primary, #1d2129)}.member-card-body{display:flex;flex-direction:column;gap:6px}.member-card-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;line-height:1.5}.member-card-label{color:var(--text-secondary, #86909c);flex-shrink:0;margin-right:8px}.member-card-value{color:var(--text-primary, #1d2129);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.member-card-actions{display:flex;justify-content:flex-end;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color, #f0f0f0)}.member-card-actions .ant-btn-link{padding:0 4px;height:24px}.family-tree-container{width:100%;min-height:600px;height:calc(100vh - 160px);overflow:hidden;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid var(--border-color);border-radius:8px;margin:0;display:flex;flex-direction:column;position:relative;padding:0;box-shadow:var(--shadow-md);resize:none}.container-fluid{padding:0}.family-tree-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);border-top-left-radius:8px;border-top-right-radius:8px}.family-tree-header h2{margin:0;font-size:18px;color:var(--text-primary)}.zoom-controls{display:flex;flex-direction:column;gap:8px;background-color:#f0f0f080;padding:8px;border-radius:6px;position:absolute;top:10px;right:10px;z-index:1000;box-shadow:0 2px 8px #00000026}.zoom-button{padding:10px;background-color:#1890ff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:700;transition:all .2s;width:40px;height:40px;display:flex;justify-content:center;align-items:center;line-height:1}.zoom-button:hover{background-color:#40a9ff}.zoom-button:active{transform:scale(.95)}.zoom-button.active{background-color:#165dff;box-shadow:0 0 0 2px #165dff33}.zoom-button.active:hover{background-color:#0e4dcb}.path-highlight-panel{position:absolute;top:16px;right:16px;width:280px;background:#fff;border:1px solid var(--border-color, #e5e6eb);border-radius:8px;box-shadow:var(--shadow-md, 0 4px 10px rgba(0, 0, 0, .08));z-index:20;padding:12px 14px;font-size:13px}.path-highlight-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.path-highlight-title{font-weight:600;color:#1d2129}.path-highlight-body{min-height:56px;display:flex;flex-direction:column;justify-content:center}.path-step,.path-result-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:6px}.path-result-row:last-child{margin-bottom:0}.path-highlight-footer{margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end}.node.path-highlight rect{stroke:#165dff;stroke-width:2.5px;filter:drop-shadow(0 0 6px rgba(22,93,255,.6))}.link.path-highlight-link{stroke:var(--path-highlight-color, #165DFF)!important;stroke-width:3px!important;filter:drop-shadow(0 0 4px rgba(22,93,255,.5))}.log-button{padding:8px 12px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;margin-left:10px;transition:all .2s}.log-button:hover{background-color:#45a049}.log-button:active{transform:scale(.95)}.zoom-percentage{font-size:12px;color:var(--text-secondary);text-align:center;margin-top:5px}.family-tree-wrapper{width:100%;height:auto;min-height:600px;position:relative;display:flex;flex-direction:column}.family-tree-tooltip{position:absolute;display:none;background-color:#ffffffe6;border:1px solid var(--border-color);padding:10px;border-radius:4px;pointer-events:none;box-shadow:2px 2px 10px #0003;max-width:200px;z-index:1000;font-size:12px;color:var(--text-primary)}.family-tree-tooltip div{margin:3px 0}.family-tree-svg{background:var(--bg-secondary)}.node-rect{rx:6;ry:6;cursor:pointer;filter:drop-shadow(0 2px 2px rgba(0,0,0,.1));fill:#fff;stroke:#07f;stroke-width:1;transition:all .15s ease}.node-rect.male{fill:#cff}.node-rect.female{fill:#fce}.node-rect.spouse.female{fill:#fee;stroke-width:1}.node-rect.alive{opacity:1}.node-rect.deceased,.node-rect.spouse.deceased{stroke:#ccc;fill:#f0f0f0}.node-rect.selected{stroke:#ff6b6b!important;stroke-width:1!important;filter:drop-shadow(0 3px 6px rgba(255,107,107,.3))}.node-name{font-weight:700;text-anchor:middle;cursor:pointer;font-size:14px;line-height:1.2}.node-name.alive{fill:#000}.node-name.deceased{fill:#999}.node-generation{font-size:12px;fill:#333;text-anchor:middle;cursor:pointer;font-weight:400;line-height:1.2}.links-layer .child-link{fill:none;stroke:#07f;stroke-width:1;stroke-opacity:.5}.links-layer .spouse-link{fill:none;stroke:#ac4444;stroke-width:1;z-index:1}.cursor-coordinates{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background-color:#fffffff2;border:1px solid var(--border-color);border-radius:6px;padding:8px 16px;font-size:14px;font-family:Courier New,monospace;color:var(--text-primary);box-shadow:0 2px 8px #00000026;z-index:1000;pointer-events:none;white-space:nowrap}.cursor-coordinates:hover{background-color:#fff}.family-tree-svg{cursor:grab}.family-tree-svg:active{cursor:grabbing}.node{cursor:pointer;z-index:10}.action-menu{pointer-events:none}.action-menu .action-btn{pointer-events:auto;cursor:pointer}.action-menu .action-btn rect{transition:all .2s ease;filter:brightness(1)}.action-menu .action-btn rect:hover{filter:brightness(1.1);stroke:#fff;stroke-width:1}.action-menu .action-btn text{font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3)}.action-menu .action-btn:first-child rect:hover{fill:#40a9ff}.action-menu .action-btn:nth-child(2) rect:hover{fill:#73d13d}.action-menu .action-btn:last-child rect:hover{fill:#ffc53d}.family-tree-svg[data-color-theme=modern] .node-rect.male{fill:#e6f4ff;stroke:#1677ff}.family-tree-svg[data-color-theme=modern] .node-rect.female{fill:#fff0f6;stroke:#eb2f96}.family-tree-svg[data-color-theme=modern] .node-rect.spouse.female{fill:#fff7e6;stroke:#fa8c16}.family-tree-svg[data-color-theme=modern] .node-rect.deceased{fill:#f5f5f5;stroke:#bfbfbf}.family-tree-svg[data-color-theme=modern] .links-layer .child-link{stroke:#1677ff;stroke-opacity:.6}.family-tree-svg[data-color-theme=modern] .links-layer .spouse-link{stroke:#eb2f96;stroke-opacity:.6}.family-tree-svg[data-gender-palette=soft] .node-rect.male{fill:#d6eaf8;stroke:#85c1e9}.family-tree-svg[data-gender-palette=soft] .node-rect.female{fill:#fadbd8;stroke:#f1948a}.family-tree-svg[data-gender-palette=soft] .node-rect.spouse.female{fill:#fdebd0;stroke:#f8c471}.family-tree-svg[data-gender-palette=soft] .node-rect.deceased{fill:#f4f6f6;stroke:#d5dbdb}.family-tree-svg[data-gender-palette=highContrast] .node-rect.male{fill:#5dade2;stroke:#2e86c1;stroke-width:2}.family-tree-svg[data-gender-palette=highContrast] .node-rect.male+.node-name{fill:#fff}.family-tree-svg[data-gender-palette=highContrast] .node-rect.female{fill:#ec7063;stroke:#cb4335;stroke-width:2}.family-tree-svg[data-gender-palette=highContrast] .node-rect.female+.node-name{fill:#fff}.family-tree-svg[data-gender-palette=highContrast] .node-rect.spouse.female{fill:#f5b041;stroke:#d68910;stroke-width:2}.family-tree-svg[data-gender-palette=highContrast] .node-rect.deceased{fill:#d5d8dc;stroke:#979a9a;stroke-width:2}.bands-layer,.bands-layer .generation-band{pointer-events:none}.link.path-highlight-link{stroke:var(--path-highlight-color, #165DFF)!important}.family-tree-svg[data-color-theme=minimal] .node-rect.male,.family-tree-svg[data-color-theme=minimal] .node-rect.female,.family-tree-svg[data-color-theme=minimal] .node-rect.spouse.female{fill:#fff;stroke:#1d2129;stroke-width:1.2}.family-tree-svg[data-color-theme=minimal] .node-rect.deceased{fill:#f5f5f5;stroke:#c9cdd4;stroke-dasharray:3 2}.family-tree-svg[data-color-theme=minimal] .links-layer .child-link,.family-tree-svg[data-color-theme=minimal] .links-layer .spouse-link{stroke:#4e5969;stroke-opacity:.5}.family-tree-svg[data-color-theme=minimal] .node-name.alive{fill:#1d2129}.family-tree-svg[data-color-theme=minimal] .node-name.deceased{fill:#86909c}.login-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{border-radius:12px;box-shadow:0 10px 30px #0000001a;overflow:hidden;background:var(--bg-primary);animation:slideIn .5s ease-out}.login-title{text-align:center;margin-bottom:20px}.login-title h2{margin-bottom:8px;color:#1890ff;font-weight:600}.login-subtitle{font-size:16px;color:var(--text-secondary);margin:0}.login-form-button{border-radius:6px;padding:12px;font-size:16px;background:linear-gradient(135deg,#1890ff,#096dd9);border:none;transition:all .3s ease}.login-form-button:hover{transform:translateY(-1px);box-shadow:0 5px 15px #1890ff66}.login-form-button:active{transform:translateY(0)}.login-form-forgot{color:#1890ff;transition:color .3s}.login-form-forgot:hover{color:#40a9ff;text-decoration:underline}.login-form-footer{text-align:center;margin-top:20px;font-size:14px;color:var(--text-secondary)}.login-form-footer a{color:#1890ff;font-weight:500;transition:color .3s}.login-form-footer a:hover{color:#40a9ff;text-decoration:underline}@media(max-width:768px){.login-card{margin:20px;box-shadow:0 5px 15px #0000001a}.login-title h2{font-size:24px}}.register-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;display:flex;align-items:center;justify-content:center}.register-card{border-radius:12px;box-shadow:0 10px 30px #0000001a;overflow:hidden;background:var(--bg-primary);animation:slideIn .5s ease-out}.register-title{text-align:center;margin-bottom:20px}.register-title h2{margin-bottom:8px;color:#1890ff;font-weight:600}.register-subtitle{font-size:16px;color:var(--text-secondary);margin:0}.register-form-button{border-radius:6px;padding:12px;font-size:16px;background:linear-gradient(135deg,#1890ff,#096dd9);border:none;transition:all .3s ease}.register-form-button:hover{transform:translateY(-1px);box-shadow:0 5px 15px #1890ff66}.register-form-button:active{transform:translateY(0)}.register-form-footer{text-align:center;margin-top:20px;font-size:14px;color:var(--text-secondary)}.register-form-footer a{color:#1890ff;font-weight:500;transition:color .3s}.register-form-footer a:hover{color:#40a9ff;text-decoration:underline}.ant-form-item-label>label{font-weight:500;color:var(--text-primary)}.ant-input,.ant-select-selector{border-radius:6px!important;transition:all .3s ease}.ant-input:focus,.ant-select-focused .ant-select-selector{box-shadow:0 0 0 2px #1890ff33!important}@media(max-width:768px){.register-card{margin:20px;box-shadow:0 5px 15px #0000001a}.register-title h2{font-size:24px}.ant-form-item{margin-bottom:16px}}@media(max-width:576px){.register-card{margin:10px;padding:10px}.ant-card-head{padding:0 16px}.ant-card-body{padding:16px}}.forgot-password-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;display:flex;align-items:center;justify-content:center}.forgot-password-card{border-radius:12px;box-shadow:0 10px 30px #0000001a;overflow:hidden;background:var(--bg-primary);animation:slideIn .5s ease-out}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.forgot-password-title{text-align:center;margin-bottom:20px}.forgot-password-title h2{margin-bottom:8px;color:#1890ff;font-weight:600}.forgot-password-subtitle{font-size:16px;color:var(--text-secondary);margin:0}.site-form-item-icon{color:#00000040}.forgot-password-form-button{border-radius:6px;padding:12px;font-size:16px;background:linear-gradient(135deg,#1890ff,#096dd9);border:none;transition:all .3s ease}.forgot-password-form-button:hover{transform:translateY(-1px);box-shadow:0 5px 15px #1890ff66}.forgot-password-form-button:active{transform:translateY(0)}.forgot-password-form-forgot{color:#1890ff;transition:color .3s}.forgot-password-form-forgot:hover{color:#40a9ff;text-decoration:underline}.forgot-password-form-footer{text-align:center;margin-top:20px;font-size:14px;color:var(--text-secondary)}.forgot-password-form-footer a{color:#1890ff;font-weight:500;transition:color .3s}.forgot-password-form-footer a:hover{color:#40a9ff;text-decoration:underline}@media(max-width:768px){.forgot-password-card{margin:20px;box-shadow:0 5px 15px #0000001a}.forgot-password-title h2{font-size:24px}}.analytics-container{padding:20px;background-color:var(--bg-secondary);min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-title{font-size:28px;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center}.title-icon{margin-right:12px;color:#1890ff}.header-actions{display:flex;gap:12px}.alerts-section{margin-bottom:24px}.alert-item{margin-bottom:16px;height:100%;min-height:120px;display:flex;flex-direction:column}.alert-item .ant-alert-message{font-weight:500;margin-bottom:4px}.alert-item .ant-alert-description{flex:1}.alert-item .ant-alert-action{margin-top:8px}.alert-time{color:var(--text-tertiary);font-size:12px}.filters-card{margin-bottom:24px;background-color:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow-md);padding:16px}.filter-item{margin-bottom:16px}.filter-label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-secondary);font-size:14px}.filter-actions{display:flex;justify-content:flex-end;align-items:flex-end;padding-bottom:8px}.metrics-section{margin-bottom:24px;display:flex;flex-wrap:wrap}.metrics-section .ant-row{width:100%;margin:0}.metrics-section .ant-col{display:flex;padding:0 8px;margin-bottom:16px}.metric-card{border-radius:8px;box-shadow:var(--shadow-md);transition:all .3s ease;width:100%;height:100%;min-height:160px;display:flex;flex-direction:column;justify-content:center}.metric-card .ant-statistic{width:100%;text-align:center}.metric-card .ant-statistic-title{font-size:14px;margin-bottom:8px}.metric-card .ant-statistic-content{font-size:28px}.metric-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.metric-change{font-size:12px;font-weight:500}.metric-change.positive{color:#52c41a}.metric-change.negative{color:#ff4d4f}.charts-tabs{background-color:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow-md);overflow:hidden}.ant-tabs-tab{padding:16px 24px;font-weight:500}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff;font-weight:600}.ant-tabs-ink-bar{background-color:#1890ff;height:3px}.chart-card{margin-bottom:16px;border-radius:8px;box-shadow:var(--shadow-md);transition:all .3s ease}.chart-card:hover{box-shadow:0 4px 16px #0000001f}.chart-card .ant-card-head{border-bottom:1px solid #f0f0f0}.chart-card .ant-card-head-title{padding:16px 0;font-weight:600;color:var(--text-primary)}.chart-card .ant-card-body{padding:24px}.data-table-card{border-radius:8px;box-shadow:var(--shadow-md)}.data-table-card .ant-card-body{padding:0}.ant-table-wrapper .ant-table-thead>tr>th{background-color:var(--bg-tertiary);font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-color)}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background-color:var(--bg-secondary)}.export-options{padding:8px 0}.export-options .option-item{margin-bottom:16px}.export-options .option-label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-secondary)}@media(max-width:768px){.analytics-container{padding:12px}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.page-title{font-size:24px}.header-actions{width:100%;justify-content:flex-end}.metric-card{margin-bottom:16px}.chart-card .ant-card-body{padding:16px}}@media(max-width:576px){.analytics-container{padding:8px}.page-title{font-size:20px}.ant-tabs-tab{padding:12px 16px}}.analytics-container ::-webkit-scrollbar{width:6px;height:6px}.analytics-container ::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.analytics-container ::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.analytics-container ::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.ant-spin-container{min-height:300px}@media(max-width:1200px){.chart-card .ant-card-body{padding:20px}}@media(max-width:992px){.chart-card .ant-card-body{padding:16px}}@media(max-width:768px){.filters-card{padding:12px}.filter-item{margin-bottom:12px}.filter-actions{flex-direction:column;gap:8px}.filter-actions .ant-btn{width:100%}}
