/* ==================== NewWord 暖阳书房主题 v2 ==================== */
/* 模板A：温暖如午后阳光照在旧书页上，奶白底色配赤陶橙强调 */

:root {
    --bg-primary: #faf6f0;
    --bg-secondary: #f2ebe0;
    --bg-tertiary: #e8ddca;
    --bg-card: #fffdf8;
    --bg-hover: #e8ddca;
    --bg-active: #f0e0c8;
    
    --text-primary: #4a3c2e;
    --text-secondary: #6b5b4e;
    --text-muted: #8a7560;
    --text-accent: #c87f4a;
    
    --accent-primary: #c87f4a;
    --accent-secondary: #a86638;
    --accent-success: #7a9b3a;
    --accent-warning: #c4880f;
    --accent-danger: #b44a3a;
    
    --border-subtle: #e0d5c5;
    --border-medium: #d4c4a8;
    --border-accent: #c4b89c;
    
    --shadow-sm: 0 1px 4px rgba(74, 60, 46, 0.08);
    --shadow-md: 0 3px 12px rgba(74, 60, 46, 0.12);
    --shadow-lg: 0 8px 30px rgba(74, 60, 46, 0.16);
    
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 20px;
    
    --font-ui: 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', Georgia, serif;
    --font-body: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
    --font-mono: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}

/* ===== 基础覆盖 ===== */
* { font-family: var(--font-body); }

body {
    background-color: var(--bg-primary) !important;
    color: var(--text-primary) !important;
}

/* ===== 登录界面 ===== */
.auth-mask {
    background: linear-gradient(160deg, #faf6f0 0%, #f2ebe0 40%, #e8ddca 100%) !important;
}

.auth-box {
    background: var(--bg-card) !important;
    border: 1px solid var(--border-subtle) !important;
    box-shadow: var(--shadow-lg) !important;
    border-radius: var(--radius-lg) !important;
}

.auth-title {
    color: var(--text-primary) !important;
    font-family: var(--font-ui) !important;
    font-size: 22px !important;
}

.auth-subtitle {
    color: var(--text-secondary) !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
}

.auth-tab {
    background: var(--bg-primary) !important;
    border-color: var(--border-medium) !important;
    color: var(--text-secondary) !important;
    font-family: var(--font-ui) !important;
}

.auth-tab.active {
    background: var(--accent-primary) !important;
    color: #fff !important;
    border-color: var(--accent-primary) !important;
}

.auth-submit {
    background: var(--accent-primary) !important;
    color: #fff !important;
    font-weight: 600 !important;
    border-radius: var(--radius-sm) !important;
    letter-spacing: 1px;
}

.auth-submit:hover {
    background: var(--accent-secondary) !important;
}

.auth-input {
    background: var(--bg-primary) !important;
    border-color: var(--border-medium) !important;
    color: var(--text-primary) !important;
    border-radius: var(--radius-sm) !important;
}

.auth-input:focus {
    border-color: var(--accent-primary) !important;
    box-shadow: 0 0 0 2px rgba(200, 127, 74, 0.15) !important;
}

.auth-input::placeholder {
    color: var(--text-muted) !important;
}

.auth-error {
    color: var(--accent-danger) !important;
}

/* ===== 用户栏 ===== */
.user-bar {
    background: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    color: var(--text-secondary) !important;
}

.user-link {
    color: var(--accent-primary) !important;
}

/* ===== 左侧边栏 ===== */
.sidebar-left {
    width: 220px;
    background-color: var(--bg-secondary) !important;
    border-right: 1px solid var(--border-subtle) !important;
}

.header-title {
    background-color: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-ui) !important;
    font-size: 14px !important;
    letter-spacing: 0.5px;
}

.nav-list li {
    color: var(--text-secondary) !important;
    font-size: 13px !important;
    padding: 10px 20px !important;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    margin: 2px 8px 2px 0;
    transition: all 0.2s ease;
}

.nav-list li:hover {
    background-color: var(--bg-hover) !important;
    color: var(--text-primary) !important;
}

.nav-list li.active {
    background-color: var(--bg-active) !important;
    color: var(--accent-primary) !important;
    border-right: 3px solid var(--accent-primary) !important;
    font-weight: 600 !important;
}

/* 子菜单 */
.submenu {
    background-color: var(--bg-tertiary) !important;
    border-bottom: 1px solid var(--border-subtle) !important;
}

.submenu li {
    color: var(--text-secondary) !important;
}

.submenu li:hover {
    background-color: var(--bg-hover) !important;
    border-left-color: var(--accent-primary) !important;
    color: var(--text-primary) !important;
}

.submenu li.active-character {
    background-color: var(--bg-active) !important;
    border-left-color: var(--accent-primary) !important;
    color: var(--accent-primary) !important;
}

/* ===== 系统日志卡片 ===== */
.card-fixed {
    background-color: #2a2520 !important;
    border: 1px solid #3d352c !important;
    border-radius: var(--radius-md) !important;
    font-family: var(--font-mono) !important;
    color: var(--text-secondary) !important;
    box-shadow: inset 0 2px 8px rgba(0,0,0,0.2) !important;
}

.card-fixed .log-header {
    color: var(--text-muted) !important;
}

.card-fixed .log-header .log-clear-btn {
    border-color: #4a4035 !important;
    color: var(--text-muted) !important;
}

.card-fixed .log-header .log-clear-btn:hover {
    color: #e8dcc8 !important;
    border-color: #6a5f50 !important;
}

.card-fixed .log-entry.log-info { color: #81c995 !important; }
.card-fixed .log-entry.log-warn { color: #fdd663 !important; }
.card-fixed .log-entry.log-error { color: #f28b82 !important; }
.card-fixed .log-entry.log-summary { color: #8ab4f8 !important; }
.card-fixed .log-entry.log-fact { color: #c58af9 !important; }
.card-fixed .log-entry.log-mem0 { color: #ff8a80 !important; }
.card-fixed .log-entry.log-kg { color: #ffd54f !important; }
.card-fixed .log-time { color: #6a5f50 !important; }

/* ===== 主内容区 ===== */
.main-content {
    background-color: var(--bg-primary) !important;
}

.content-header {
    background-color: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-ui) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

.editor-area {
    background-color: var(--bg-primary) !important;
}

/* ===== 输入栏 ===== */
.input-bar {
    background-color: var(--bg-secondary) !important;
    border-top: 1px solid var(--border-subtle) !important;
    padding: 14px 20px !important;
}

.prompt-shell {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-medium) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-sm) !important;
    padding: 14px 20px 12px !important;
}

.prompt-shell:focus-within {
    border-color: var(--accent-primary) !important;
    box-shadow: 0 0 0 2px rgba(200, 127, 74, 0.12), var(--shadow-md) !important;
}

.input-box {
    color: var(--text-primary) !important;
    font-size: 15px !important;
    line-height: 1.7 !important;
}

.input-box::placeholder {
    color: var(--text-muted) !important;
}

/* 工具栏 */
.prompt-plus {
    color: var(--text-muted) !important;
}

.prompt-divider {
    background-color: var(--border-medium) !important;
}

.model-label {
    color: var(--text-secondary) !important;
    font-family: var(--font-ui) !important;
}

.chat-model-select {
    color: var(--text-primary) !important;
    background-color: var(--bg-hover) !important;
    border-radius: var(--radius-sm) !important;
    padding: 6px 10px !important;
    border: 1px solid var(--border-subtle) !important;
}

.chat-model-select:hover, .chat-model-select:focus {
    background-color: var(--bg-active) !important;
}

.chat-model-hint {
    color: var(--text-muted) !important;
}

/* AI 模式切换 */
.ai-mode-toggle {
    background-color: var(--bg-tertiary) !important;
    border-radius: var(--radius-sm) !important;
}

.ai-mode-option {
    color: var(--text-muted) !important;
}

.ai-mode-option.active {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
    box-shadow: var(--shadow-sm) !important;
}

/* 余额 */
.openrouter-balance {
    color: var(--accent-success) !important;
    font-family: var(--font-mono) !important;
    font-size: 11px !important;
}

.openrouter-refresh-btn {
    color: var(--accent-primary) !important;
}

/* 发送按钮 */
.send-btn {
    background-color: var(--accent-primary) !important;
    color: #fff !important;
    border-radius: var(--radius-lg) !important;
    font-weight: 600 !important;
    transition: all 0.2s ease;
}

.send-btn:hover:not(:disabled) {
    background-color: var(--accent-secondary) !important;
    box-shadow: 0 2px 8px rgba(200, 127, 74, 0.25);
}

.send-btn:disabled {
    background-color: var(--border-medium) !important;
    color: var(--text-muted) !important;
    opacity: 0.7;
}

.clear-chat-btn {
    color: var(--text-muted) !important;
}

.clear-chat-btn:hover {
    color: var(--accent-danger) !important;
}

/* ===== 右侧边栏 ===== */
.sidebar-right {
    background-color: var(--bg-secondary) !important;
    border-left: 1px solid var(--border-subtle) !important;
}

.btn-card {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--radius-md) !important;
    color: var(--text-primary) !important;
    transition: all 0.2s ease;
}

.btn-card:hover {
    background-color: var(--bg-hover) !important;
    border-color: var(--border-accent) !important;
    box-shadow: var(--shadow-sm);
}

.btn-primary {
    background-color: rgba(200, 127, 74, 0.1) !important;
    border-color: var(--accent-primary) !important;
    color: var(--accent-primary) !important;
}

.btn-primary:hover {
    background-color: rgba(200, 127, 74, 0.18) !important;
}

.btn-title {
    color: var(--text-primary) !important;
    font-family: var(--font-ui) !important;
}

.btn-desc {
    color: var(--text-secondary) !important;
}

/* ===== 时间线面板 ===== */
.timeline-split {
    gap: 12px;
}

.timeline-panel {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-sm) !important;
}

.timeline-panel-header {
    background-color: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--border-subtle) !important;
}

.timeline-panel-header h3 {
    color: var(--text-primary) !important;
    font-family: var(--font-ui) !important;
}

.timeline-panel-header p {
    color: var(--text-secondary) !important;
}

.timeline-entry {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--radius-sm) !important;
}

.timeline-entry-completed {
    background-color: rgba(122, 155, 58, 0.08) !important;
    border-color: rgba(122, 155, 58, 0.25) !important;
}

.timeline-input, .timeline-textarea {
    background-color: var(--bg-primary) !important;
    border: 1px solid var(--border-medium) !important;
    color: var(--text-primary) !important;
    border-radius: var(--radius-sm) !important;
}

.timeline-input:focus, .timeline-textarea:focus {
    border-color: var(--accent-primary) !important;
    outline: none;
}

.timeline-entry-remove {
    background-color: rgba(180, 74, 58, 0.08) !important;
    border-color: rgba(180, 74, 58, 0.25) !important;
    color: var(--accent-danger) !important;
}

.timeline-actions {
    background-color: var(--bg-secondary) !important;
    border-top: 1px solid var(--border-subtle) !important;
}

.timeline-btn {
    background-color: var(--accent-primary) !important;
    color: #fff !important;
    border-radius: var(--radius-sm) !important;
    font-weight: 600 !important;
}

.timeline-btn.secondary {
    background-color: var(--bg-hover) !important;
    color: var(--accent-primary) !important;
    border: 1px solid var(--border-medium) !important;
}

.timeline-status {
    color: var(--accent-success) !important;
}

/* ===== 摘要页面 ===== */
.summary-page {
    gap: 10px;
}

.summary-toolbar {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--radius-md) !important;
}

.summary-toolbar h3 {
    color: var(--text-primary) !important;
    font-family: var(--font-ui) !important;
}

.summary-toolbar p {
    color: var(--text-secondary) !important;
}

.summary-card {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--radius-sm) !important;
}

.summary-card:hover {
    border-color: var(--accent-primary) !important;
    background-color: var(--bg-hover) !important;
}

.summary-card-time {
    color: var(--accent-primary) !important;
    font-family: var(--font-mono) !important;
}

.summary-card-count {
    color: var(--text-muted) !important;
}

.summary-card-brief {
    color: var(--text-primary) !important;
}

.summary-marker {
    background-color: rgba(200, 127, 74, 0.1) !important;
    border-color: rgba(200, 127, 74, 0.25) !important;
    color: var(--accent-primary) !important;
}

.summary-marker:hover {
    background-color: rgba(200, 127, 74, 0.18) !important;
}

/* ===== 角色面板 ===== */
.character-profile-panel {
    background: 
        radial-gradient(circle at 8% 0%, rgba(200, 127, 74, 0.06), transparent 30%),
        radial-gradient(circle at 92% 8%, rgba(168, 102, 56, 0.06), transparent 28%),
        linear-gradient(135deg, var(--bg-card) 0%, var(--bg-secondary) 48%, var(--bg-tertiary) 100%) !important;
    border: 1px solid var(--border-subtle) !important;
    box-shadow: var(--shadow-md) !important;
}

.character-path {
    color: var(--accent-secondary) !important;
}

/* ===== 模态框 ===== */
.modal-mask {
    background: rgba(74, 60, 46, 0.35) !important;
}

.modal-box {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-medium) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-lg) !important;
}

.modal-title {
    color: var(--text-primary) !important;
    font-family: var(--font-ui) !important;
}

.modal-input {
    background-color: var(--bg-primary) !important;
    border: 1px solid var(--border-medium) !important;
    color: var(--text-primary) !important;
    border-radius: var(--radius-sm) !important;
}

.modal-input:focus {
    border-color: var(--accent-primary) !important;
}

.modal-btn {
    background-color: var(--bg-hover) !important;
    border-color: var(--border-medium) !important;
    color: var(--text-primary) !important;
}

.modal-btn.primary {
    background-color: var(--accent-primary) !important;
    border-color: var(--accent-primary) !important;
    color: #fff !important;
}

/* ===== 分割线 ===== */
.divider-line {
    background-color: var(--border-subtle) !important;
}

.section-label, .section-label-bottom {
    color: var(--text-muted) !important;
    font-family: var(--font-ui) !important;
    font-size: 11px !important;
    letter-spacing: 0.5px;
}

/* ===== 滚动条 ===== */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background-color: var(--border-medium);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background-color: var(--border-accent);
}

/* ===== 消息气泡 ===== */
.message {
    border-radius: var(--radius-md) !important;
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-subtle) !important;
    color: var(--text-primary) !important;
    box-shadow: var(--shadow-sm) !important;
}

.message.user {
    background-color: rgba(200, 127, 74, 0.08) !important;
    border-color: rgba(200, 127, 74, 0.2) !important;
}

.message.assistant {
    background-color: var(--bg-card) !important;
}

/* ===== 响应式 ===== */
@media (max-width: 1180px) {
    .prompt-shell {
        width: 100% !important;
    }
}

@media (max-width: 720px) {
    .chat-model-hint { display: none !important; }
}

/* ===== 加载动画 ===== */
@keyframes pulse-glow {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

.loading-indicator {
    animation: pulse-glow 1.5s ease-in-out infinite;
    color: var(--accent-primary) !important;
}

/* ===== 选中高亮 ===== */
::selection {
    background-color: rgba(200, 127, 74, 0.2);
    color: var(--text-primary);
}

/* ===== 思考过程折叠块 ===== */
.think-block {
    background: rgba(200, 127, 74, 0.06) !important;
    border: 1px solid rgba(200, 127, 74, 0.15) !important;
    border-radius: 8px !important;
}

.think-summary {
    color: #b09070 !important;
    font-size: 12px !important;
}

.think-content {
    color: #8a7560 !important;
    font-size: 12px !important;
    line-height: 1.6 !important;
}

/* ===== 世界观卡片 ===== */
.world-card {
    background-color: var(--bg-card) !important;
    border: 2px solid var(--accent-primary) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-sm) !important;
}

.world-card h3 {
    color: var(--accent-primary) !important;
    border-bottom: 1px solid var(--border-subtle) !important;
}

/* ===== 加载更多按钮 ===== */
.load-more-btn {
    background: rgba(200, 127, 74, 0.08) !important;
    border: 1px solid rgba(200, 127, 74, 0.2) !important;
    color: var(--accent-primary) !important;
}

.load-more-btn:hover {
    background: rgba(200, 127, 74, 0.15) !important;
}
