/*
 * WP Family Tree - Core & Form Styles
 */

/* --- WP Family Tree: Form Styles --- */
.wpft-form-container { margin-bottom: 20px; padding: 15px; border: 1px solid #e0e0e0; background-color: #fdfdfd; border-radius: 4px; }
.wpft-required-fields-group { background-color: #e6f7ff; padding: 15px; border: 1px solid #b3e0ff; margin-bottom: 20px; border-radius: 4px; }
.wpft-form-group { margin-bottom: 12px; }
.wpft-form-group label { display: block; margin-bottom: 6px; font-weight: bold; font-size: 0.9em; color: #555; }
.wpft-form-group input[type="text"],
.wpft-form-group input[type="date"],
.wpft-form-group input[type="search"],
.wpft-form-group select,
.wpft-form-group textarea { width: 100%; padding: 8px 10px; border: 1px solid #ccc; border-radius: 3px; box-sizing: border-box; font-size: 0.95em; background-color: #fff; box-shadow: inset 0 1px 2px rgba(0,0,0,.07); line-height: normal; }
.wpft-form-group input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; }
.wpft-form-group textarea { min-height: 80px; }
.select2-container--default .select2-selection--single{ min-height: 36px; border: 1px solid #ccc; border-radius: 3px; display: flex; align-items: center; background-color: #fff; box-shadow: inset 0 1px 2px rgba(0,0,0,.07); }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding-left: 10px; padding-right: 30px; line-height: normal; color: #555; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 34px; top: 1px; right: 5px; }
.wpft-form-group select.wpft-select2 { width: 100% !important; padding: 0; border: 0; height: auto; box-shadow: none; }
.select2-container .select2-search--inline .select2-search__field { padding: 0 10px; min-height: 34px; }
.select2-dropdown { border: 1px solid #ccc; border-radius: 3px; box-shadow: 0 2px 5px rgba(0,0,0,.15); }
.wpft-form-group input[type="radio"], .wpft-form-group input[type="checkbox"] { margin-right: 5px; vertical-align: middle; margin-top: -2px; }
.wpft-form-group label input[type="radio"] + span, .wpft-form-group label input[type="checkbox"] + span { vertical-align: middle; margin-left: 3px; }
.wpft-form-group label input[type="radio"], .wpft-form-group label input[type="checkbox"] { margin-right: 8px;width: auto;}
.wpft-spouse-group > label { font-size: 1.1em; color: #333; border-bottom: 1px solid #eee; padding-bottom: 5px; margin-bottom: 15px; display: block; }
.wpft-spouse-inputs { margin-left: 0; margin-bottom: 10px; padding-left: 0; }
.wpft-spouse-input { margin-bottom: 20px; padding: 15px 15px 20px 15px; border: 1px solid #e9e9e9; border-radius: 3px; background-color: #fcfcfc; position: relative; clear: both; }
.wpft-spouse-input:last-child { margin-bottom: 10px; }
.wpft-spouse-input .wpft-form-group { margin-bottom: 10px; }
.wpft-spouse-input .wpft-form-group label { display: inline-block; width: 90px; vertical-align: top; padding-top: 9px; font-size: 0.85em; color: #666; font-weight: normal; margin-right: 10px; }
.wpft-spouse-input .wpft-form-group input, .wpft-spouse-input .wpft-form-group select, .wpft-spouse-input .wpft-form-group textarea { display: inline-block; width: calc(100% - 110px); box-sizing: border-box; margin-bottom: 0; }
.wpft-spouse-input .wpft-form-group textarea { min-height: 60px; }
.wpft-spouse-input .wpft-form-group input[type="file"] { width: auto; }
.wpft-add-spouse { margin-left: 10px; vertical-align: middle; font-size: 18px; background-color: #5cb85c; }
.wpft-remove-spouse { background-color: #d9534f; color: white; border: 1px solid #d43f3a; padding: 3px 8px; border-radius: 3px; cursor: pointer; font-size: 0.8em; line-height: 1; text-decoration: none; position: absolute; top: 10px; right: 10px; transition: background-color 0.2s ease; }
.wpft-remove-spouse:hover { background-color: #c9302c; border-color: #ac2925; }
.wpft-message, .wpft-success { color: #3c763d; background-color: #dff0d8; border: 1px solid #d6e9c6; padding: 15px; margin-bottom: 20px; border-radius: 3px; }
.wpft-error { color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 15px; margin-bottom: 20px; border-radius: 3px; }
.wpft-spouse-input--newly-added { background-color: #e9f7ef; border-color: #c3e6cb; }

/* --- Form Dynamic Fields (Legacy styles, kept for compatibility if needed, but overridden by .wpft-toggle-section) --- */
.wpft-death-date-group, .wpft-in-zongci-group,
.wpft-spouse-death-date-group, .wpft-spouse-in-zongci-group {
    /* display: none;  <-- Removed to allow CSS transition control */
    overflow: hidden;
}

/* --- Basic Button Styles --- */
input[type="submit"].button, button[type="submit"].button, .button { padding: 8px 15px; font-size: 0.95em; cursor: pointer; width:auto!important;}
.button.button-xsmall { padding: 3px 8px; font-size: 0.8em; line-height: 1.2; }

/* --- Utility Classes --- */
.wpft-hidden { display: none !important; }
/* --- Global Floating Actions (for Homepage Login/User Button) --- */
.wpft-global-floating-actions {
    position: fixed;
    top: 50%; /* 与宗祠外景按钮区域对齐 */
    right: 15px; /* 与宗祠外景按钮区域对齐 */
    transform: translateY(-50%);
    z-index: 10004; /* 比宗祠/纪念堂内容高，但可能低于弹窗 */
    display: flex;
    flex-direction: column;
    gap: 10px; /* 按钮之间的间距 */
}

/* 如果 wpft-floating-action-button 样式已在 style-scenes.css 中定义，则无需重复 */
/* 以下是确保其存在的最小样式，如果未定义 */
.wpft-floating-action-button {
    background-color: #fff;
    color: #555;
    border: 1px solid #ccc;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    cursor: pointer;
    transition: all 0.2s ease;
    text-decoration: none;
    font-size: 0.7em; /* 调整文字大小以适应按钮 */
    line-height: 1.2;
    text-align: center; /* 确保文字居中 */
}
.wpft-floating-action-button:hover {
    background-color: #f0f0f0;
    color: #333;
    box-shadow: 0 4px 8px rgba(0,0,0,0.25);
}
.wpft-floating-action-button .wpft-fab-icon {
    font-size: 1.4em; /* 图标大小 */
    margin-bottom: 2px;
    display: flex; /* 用于头像居中 */
    align-items: center;
    justify-content: center;
    width: 100%; /* 确保头像容器占满图标区域 */
    height: 60%; /* 调整图标/头像区域高度 */
}
.wpft-floating-action-button .wpft-fab-icon i {
    vertical-align: middle;
}
.wpft-floating-action-button .wpft-fab-icon img { /* 用户头像样式 */
    width: 28px; /* 头像大小 */
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}
.wpft-floating-action-button .wpft-fab-text {
    display: block; /* 确保文字换行 */
    font-size: 0.9em; /* 调整文字大小 */
    line-height: 1;
    margin-top: 1px;
}

/* 响应式调整 (与 style-scenes.css 中的保持一致) */
@media screen and (max-width: 768px) {
    .wpft-global-floating-actions {
        right: 10px;
    }
    .wpft-floating-action-button {
        width: 45px;
        height: 45px;
    }
    .wpft-floating-action-button .wpft-fab-icon {
        font-size: 1.2em;
    }
     .wpft-floating-action-button .wpft-fab-icon img {
        width: 24px;
        height: 24px;
    }
    .wpft-floating-action-button .wpft-fab-text {
        font-size: 0.85em;
    }
}

@media screen and (max-width: 480px) {
    .wpft-floating-action-button {
        width: 40px;
        height: 40px;
    }
    .wpft-floating-action-button .wpft-fab-icon {
        font-size: 1.1em;
    }
    .wpft-floating-action-button .wpft-fab-icon img {
        width: 20px;
        height: 20px;
    }
    .wpft-floating-action-button .wpft-fab-text {
        font-size: 0.75em;
    }
}

/* --- Form Toggle Animation (Replacement for jQuery slideDown/Up) --- */
.wpft-toggle-section {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out, opacity 0.3s ease-out, margin 0.3s ease;
    margin-top: 0;
    margin-bottom: 0;
    display: block; /* Ensure it's block level for height transition */
}

.wpft-toggle-section.is-open {
    max-height: 1000px; /* Arbitrary large value, enough for content */
    opacity: 1;
    margin-bottom: 15px; /* Restore margin */
}
/* --- WPFT Person Management Styles (Frontend Beautification) --- */

.wpft-person-management-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.wpft-page-title {
    font-size: 24px;
    border-bottom: 2px solid #eee;
    padding-bottom: 15px;
    margin-bottom: 20px;
    color: #333;
}

/* 工具栏样式 */
.wpft-mgmt-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    background-color: #f8f9fa;
    padding: 15px;
    border-radius: 6px;
    border: 1px solid #e9ecef;
    margin-bottom: 20px;
    align-items: center;
    justify-content: space-between;
}

.wpft-mgmt-tool-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.wpft-mgmt-tool-item label {
    font-weight: 600;
    color: #555;
    margin-bottom: 0; /* 覆盖某些主题的默认 margin */
}

/* 修复 Select2 在前台的显示问题 */
.wpft-person-management-container .select2-container .select2-selection--single {
    height: 38px !important;
    border: 1px solid #ccc !important;
    display: flex;
    align-items: center;
}
.wpft-person-management-container .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 38px !important;
    color: #333 !important;
}
.wpft-person-management-container .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 36px !important;
}

/* 普通下拉框样式 */
.wpft-normal-select {
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    height: 38px;
    background-color: #fff;
}

/* 按钮样式 */
.wpft-btn-locate, .wpft-btn-apply {
    background-color: #007bff !important;
    color: #fff !important;
    border: none !important;
    padding: 8px 20px !important;
    border-radius: 4px !important;
    cursor: pointer;
    font-size: 14px !important;
    line-height: 1.5 !important;
    height: 38px;
    transition: background-color 0.2s;
}
.wpft-btn-locate:hover, .wpft-btn-apply:hover {
    background-color: #0056b3 !important;
}

/* 表格样式 */
.wpft-management-table-wrapper {
    overflow-x: auto; /* 允许横向滚动 */
}

.wpft-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    color: #333;
}

.wpft-data-table thead th {
    background-color: #f1f3f5;
    color: #495057;
    font-weight: bold;
    padding: 12px 10px;
    text-align: left;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.wpft-data-table tbody td {
    padding: 12px 10px;
    border-bottom: 1px solid #e9ecef;
    vertical-align: middle;
}

.wpft-data-table tbody tr:hover {
    background-color: #f8f9fa;
}

/* 高亮行样式 */
.wpft-highlight-row {
    background-color: #fff3cd !important; /* 浅黄色高亮 */
    transition: background-color 1s ease;
}

/* 操作链接样式 */
.wpft-btn-edit {
    color: #007bff;
    text-decoration: none;
    font-weight: 500;
}
.wpft-btn-edit:hover {
    text-decoration: underline;
}

/* 消息提示样式 */
.wpft-msg {
    padding: 10px 15px;
    margin-bottom: 20px;
    border-radius: 4px;
    border-left: 4px solid;
}
.wpft-msg.success { background-color: #d4edda; color: #155724; border-color: #28a745; }
.wpft-msg.error { background-color: #f8d7da; color: #721c24; border-color: #dc3545; }
.wpft-msg.warning { background-color: #fff3cd; color: #856404; border-color: #ffc107; }

/* 响应式调整 */
@media (max-width: 768px) {
    .wpft-mgmt-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }
    .wpft-mgmt-tool-item {
        width: 100%;
    }
    .wpft-management-search-select {
        width: 100% !important;
    }
}