/* ===================== 基础与背景 ===================== */
* {margin:0; padding:0; box-sizing:border-box;}
body {font-family:'Segoe UI','Microsoft YaHei',system-ui,sans-serif; background:radial-gradient(circle at 20% 20%, #122033 0%, #060b14 55%, #03060b 100%); color:#e6f1ff; min-height:100vh; line-height:1.6; overflow-x:hidden;}
body.effects-off #starfield, body.effects-off .fx-overlay, body.effects-off .scanlines {display:none;}

#starfield {position:fixed; inset:0; width:100%; height:100%; z-index:-3; background:transparent;}
.fx-overlay::before,.fx-overlay::after {content:''; position:fixed; inset:0; pointer-events:none; z-index:-2;}
.fx-overlay::before {background:repeating-radial-gradient(circle at 10% 10%, rgba(255,255,255,0.05) 0 2px, transparent 2px 6px); mix-blend-mode:overlay; opacity:.15; animation:drift 40s linear infinite;}
.fx-overlay::after {background:radial-gradient(circle at 70% 30%, rgba(0,140,255,0.18), transparent 60%), radial-gradient(circle at 30% 70%, rgba(140,0,255,0.15), transparent 65%); filter:blur(40px); opacity:.4; animation:pulse 22s ease-in-out infinite;}
.scanlines {position:fixed; inset:0; pointer-events:none; z-index:-1; background:repeating-linear-gradient(to bottom, rgba(255,255,255,0.06) 0px, rgba(255,255,255,0.06) 1px, transparent 1px, transparent 3px); mix-blend-mode:overlay; opacity:.14; animation:scanmove 6s linear infinite;}
@keyframes scanmove {0%{background-position:0 0;}100%{background-position:0 200px;}}
@keyframes drift {0%{transform:translate3d(0,0,0);}100%{transform:translate3d(150px,120px,0);}}
@keyframes pulse {0%,100%{opacity:.35;}50%{opacity:.55;}}

.container {max-width:1260px; margin:0 auto; padding:26px 26px 60px; position:relative;}

/* ===================== 头部 ===================== */
.header {position:relative; text-align:center; margin-bottom:34px; background:linear-gradient(145deg, rgba(20,40,70,.55), rgba(10,18,32,.55)); padding:32px 28px 30px; border-radius:18px; backdrop-filter:blur(18px) saturate(160%); box-shadow:0 4px 14px -2px rgba(0,0,0,.6), 0 0 0 1px rgba(120,180,255,.15), inset 0 0 32px -6px rgba(120,170,255,.35); overflow:hidden;}
.header::before,.header::after {content:''; position:absolute; inset:0; pointer-events:none;}
.header::before {background:radial-gradient(circle at 50% 0%, rgba(80,180,255,.3), transparent 60%);} 
.header::after {background:linear-gradient(120deg, rgba(0,200,255,.15), rgba(255,0,200,.08)); mix-blend-mode:overlay;}
.header h1 {font-size:clamp(1.9em,4vw,2.6em); margin-bottom:6px; letter-spacing:.5px; font-weight:600; background:linear-gradient(92deg,#c9e5ff 10%,#ffe5ad 45%,#9acbff 70%,#ffe5ad 92%); -webkit-background-clip:text; color:transparent; position:relative; text-shadow:0 0 14px rgba(140,210,255,.35), 0 0 34px rgba(140,210,255,.25);}
.glitch {position:relative;}
.glitch::before,.glitch::after {content:attr(data-text); position:absolute; left:0; top:0; width:100%; height:100%; mix-blend-mode:screen; opacity:.15; filter:blur(.7px);} 
.glitch::before {transform:translate(2px,0); color:#3ff2ff;} .glitch::after {transform:translate(-2px,0); color:#ff64f9;}
.subtitle {font-size:.95em; opacity:.85; letter-spacing:.5px;}
.subtitle a {color:#4d8dff; text-decoration:none; font-weight:500;} .subtitle a:hover {text-decoration:underline;}
.header-actions {position:absolute; top:10px; right:12px; display:flex; gap:8px;}

/* ===================== 主布局 ===================== */
.main-content {display:grid; grid-template-columns:380px 1fr; gap:30px; margin-bottom:34px;}
@media (max-width: 1080px){.main-content{grid-template-columns:1fr;}}

/* ===================== 左侧面板 ===================== */
.left-panel {background:linear-gradient(145deg, rgba(25,42,68,.55), rgba(12,22,36,.6)); padding:26px 24px 30px; border-radius:16px; backdrop-filter:blur(14px) saturate(160%); position:relative; box-shadow:0 0 0 1px rgba(120,190,255,.12), 0 10px 26px -10px rgba(0,0,0,.7), inset 0 0 22px -6px rgba(120,160,255,.3);} 
.left-panel::before {content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(255,255,255,.06), transparent 35%, transparent 70%, rgba(255,255,255,.05));}
.section {margin-bottom:25px;}
.section h3 {font-size:1.05em; margin-bottom:10px; font-weight:600; letter-spacing:.5px; color:#b6d9ff; position:relative;}
.section h3::after {content:''; position:absolute; left:0; bottom:-4px; width:42px; height:2px; background:linear-gradient(90deg,#4d8dff,#9acbff,#ffe5ad); border-radius:2px;}

/* ===================== 输入与表单 ===================== */
.file-input-row {display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.file-input {display:none;}
.file-label {display:inline-flex; align-items:center; gap:6px; padding:10px 18px; background:linear-gradient(140deg,#1d3e66,#3269a8); border:1px solid rgba(120,190,255,.25); color:#eef7ff; border-radius:8px; cursor:pointer; transition:.35s; font-size:.82em; letter-spacing:.5px; position:relative; overflow:hidden;}
.file-label::before {content:''; position:absolute; inset:0; background:linear-gradient(120deg,rgba(140,210,255,.15),rgba(255,215,160,.08)); mix-blend-mode:overlay; opacity:0; transition:.5s;}
.file-label:hover {background:linear-gradient(140deg,#26527f,#3d7ec1); box-shadow:0 0 0 1px rgba(140,210,255,.3),0 4px 10px -4px rgba(0,0,0,.6);} 
.file-label:hover::before {opacity:1;}
.file-name {color:#a9bed2; font-size:.72em; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; letter-spacing:.5px;}
.hint {font-size:.68em; color:#8fa2b4; margin-top:5px; font-style:italic; letter-spacing:.5px;}
.text-input {width:100%; padding:12px 14px; background:rgba(18,32,48,.5); border:1px solid rgba(120,190,255,.25); border-radius:10px; color:#e6f1ff; font-size:.92em; letter-spacing:.5px; outline:none; transition:.35s; box-shadow: inset 0 0 0 1px rgba(120,190,255,.08);}
.text-input:focus {border-color:#4d8dff; background:rgba(32,56,90,.65); box-shadow:0 0 0 1px #4d8dff, 0 0 0 4px rgba(77,141,255,.25);}
.checkbox-label {display:flex; align-items:center; cursor:pointer; font-size:.85em; letter-spacing:.5px; color:#c7def3; gap:6px;}
.checkbox-label input[type="checkbox"] {margin-right:4px; transform:scale(1.15); accent-color:#4d8dff;}

/* ===================== 单选按钮和生成模式 ===================== */
.generation-mode {display:flex; flex-direction:column; gap:8px;}
.radio-label {display:flex; align-items:center; cursor:pointer; font-size:.85em; letter-spacing:.5px; color:#c7def3; gap:8px; padding:8px 12px; border-radius:8px; transition:.3s; border:1px solid rgba(120,190,255,.15);}
.radio-label:hover {background:rgba(120,190,255,.08); border-color:rgba(120,190,255,.25);}
.radio-label input[type="radio"] {margin-right:4px; transform:scale(1.15); accent-color:#4d8dff;}
.radio-label input[type="radio"]:checked + * {color:#4d8dff;}

/* ===================== 手动输入引导 ===================== */
.collapsible-header {display:flex; align-items:center; cursor:pointer; padding:8px 0; transition:.3s; user-select:none;}
.collapsible-header:hover {color:#4d8dff;}
.header-icon {margin-right:8px; font-size:1.1em;}
.collapse-icon {margin-left:auto; transition:transform .3s ease; font-size:.8em; color:#8fa2b4;}
.collapsible-header.expanded .collapse-icon {transform:rotate(180deg);}
.collapsible-content {max-height:0; overflow:hidden; opacity:0; transition:max-height .4s ease-out, opacity .3s ease;}
.collapsible-content.expanded {max-height:none; opacity:1; overflow:visible;}

.input-guide {background:linear-gradient(145deg, rgba(18,32,48,.4), rgba(25,42,68,.35)); padding:16px 18px; border-radius:12px; border:1px solid rgba(120,190,255,.2); margin-top:10px; max-height:500px; overflow-y:auto; position:relative;}
.input-guide::-webkit-scrollbar {width:8px;}
.input-guide::-webkit-scrollbar-track {background:rgba(18,32,48,.3); border-radius:4px;}
.input-guide::-webkit-scrollbar-thumb {background:linear-gradient(180deg,#4d8dff,#9acbff); border-radius:4px;}
.input-guide::-webkit-scrollbar-thumb:hover {background:linear-gradient(180deg,#5e9eff,#abdbff);}
.guide-hint {font-size:.82em; color:#8fa2b4; font-style:italic; letter-spacing:.5px; margin:0;}
.input-item {margin-bottom:15px; padding:12px 14px; background:rgba(18,32,48,.3); border-radius:8px; border-left:3px solid #4d8dff; transition:.3s;}
.input-item:hover {background:rgba(25,42,68,.4);}
.input-item-title {font-size:.9em; font-weight:600; color:#b6d9ff; margin-bottom:6px; letter-spacing:.5px;}
.input-item-desc {font-size:.78em; color:#8fa2b4; margin-bottom:8px; letter-spacing:.3px;}
.input-item input {width:100%; padding:8px 12px; background:rgba(32,56,90,.4); border:1px solid rgba(120,190,255,.25); border-radius:6px; color:#e6f1ff; font-size:.85em; outline:none; transition:.3s;}
.input-item input:focus {border-color:#4d8dff; background:rgba(32,56,90,.65); box-shadow:0 0 0 2px rgba(77,141,255,.25);}
.input-complete {opacity:.8; border-left-color:#7fe5a1; background:rgba(25,68,35,.3);}
.input-required {border-left-color:#ffc981; background:rgba(68,52,25,.3);}

/* ===================== 输入汇总和进度 ===================== */
.input-summary {margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid rgba(120,190,255,.15);}
.progress-indicator {display:flex; justify-content:space-between; align-items:center; margin-top:8px; font-size:.75em; color:#8fa2b4;}
.completed-count {color:#7fe5a1; font-weight:500;}
.total-count {color:#b6d9ff; font-weight:500;}
.scroll-hint {animation:fadeInPulse 2s ease-in-out infinite alternate;}
@keyframes fadeInPulse {
    0% { opacity: 0.7; }
    100% { opacity: 1; }
}

/* ===================== 结果标签页 ===================== */
.result-tabs {display:flex; gap:4px; margin-bottom:16px; background:rgba(18,32,48,.3); padding:4px; border-radius:10px; border:1px solid rgba(120,190,255,.15);}
.tab-btn {flex:1; padding:10px 16px; background:transparent; border:none; color:#8fa2b4; cursor:pointer; border-radius:6px; font-size:.85em; letter-spacing:.5px; transition:.3s; display:flex; align-items:center; justify-content:center; gap:6px;}
.tab-btn:hover {color:#b6d9ff; background:rgba(120,190,255,.08);}
.tab-btn.active {color:#e6f1ff; background:linear-gradient(140deg,rgba(77,141,255,.25),rgba(140,210,255,.15)); box-shadow:0 2px 8px -2px rgba(77,141,255,.3);}

.tab-content {display:none;}
.tab-content.active {display:block; animation:fadeIn .3s ease;}

/* ===================== 时间轴可视化 ===================== */
.timeline-container {background:linear-gradient(145deg, rgba(12,20,32,.75), rgba(8,14,24,.65)); padding:24px 20px; border-radius:14px; border:1px solid rgba(120,190,255,.2); max-height:500px; overflow-y:auto; position:relative;}

.timeline-event {position:relative; margin:20px 0; padding:16px 20px; background:linear-gradient(140deg,rgba(25,42,68,.4),rgba(18,32,50,.5)); border-radius:12px; border:1px solid rgba(120,190,255,.15); transition:.3s; display:flex; align-items:flex-start; gap:16px;}
.timeline-event:hover {border-color:rgba(140,210,255,.3); background:linear-gradient(140deg,rgba(30,50,80,.5),rgba(22,38,60,.6)); transform:translateX(4px);}

.timeline-icon {width:40px; height:40px; background:linear-gradient(135deg,#4d8dff,#9acbff); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.2em; box-shadow:0 0 12px rgba(77,141,255,.4); flex-shrink:0;}

.timeline-content {flex:1;}
.timeline-date {font-size:.75em; color:#ffe5ad; font-weight:600; letter-spacing:1px; margin-bottom:6px; text-transform:uppercase;}
.timeline-title {font-size:.95em; color:#e6f1ff; font-weight:600; margin-bottom:8px; letter-spacing:.3px;}
.timeline-desc {font-size:.82em; color:#b6d9ff; line-height:1.5; letter-spacing:.2px;}

.timeline-event.milestone {border-left:4px solid #ffe5ad;}
.timeline-event.milestone .timeline-icon {background:linear-gradient(135deg,#ffc981,#ffe5ad);}
.timeline-event.crisis {border-left:4px solid #ff8db1;}
.timeline-event.crisis .timeline-icon {background:linear-gradient(135deg,#ff6b9d,#ff8db1);}
.timeline-event.empire {border-left:4px solid #7fe5a1;}
.timeline-event.empire .timeline-icon {background:linear-gradient(135deg,#5fd897,#7fe5a1);}

/* ===================== 按钮 ===================== */
.button-row {display:flex; gap:10px; flex-wrap:wrap;}
.btn {position:relative; padding:12px 20px; border:none; border-radius:12px; font-size:.9em; cursor:pointer; transition:.4s; font-weight:500; letter-spacing:.5px; display:inline-flex; align-items:center; gap:6px; backdrop-filter:blur(4px); overflow:hidden;}
.btn:before {content:''; position:absolute; inset:0; background:linear-gradient(140deg,rgba(140,210,255,.15),rgba(255,200,160,.1)); opacity:0; transition:.45s;}
.btn-primary {background:linear-gradient(145deg,#2161d1,#3484ff); color:#eef7ff; box-shadow:0 4px 14px -6px rgba(0,0,0,.7), 0 0 0 1px rgba(140,210,255,.25);} 
.btn-primary:hover:not(:disabled) {transform:translateY(-3px); box-shadow:0 6px 18px -6px rgba(0,0,0,.75), 0 0 0 1px rgba(160,230,255,.4);} 
.btn-primary:hover:not(:disabled):before {opacity:1;}
.btn-primary:disabled {background:linear-gradient(145deg,#2d3d55,#2a405f); color:#7f93aa; box-shadow:none; cursor:not-allowed;}
.btn-secondary {background:linear-gradient(145deg,#384b63,#455a76); color:#d8e8ff; box-shadow:0 3px 10px -4px rgba(0,0,0,.55), 0 0 0 1px rgba(140,210,255,.2);} 
.btn-secondary:hover:not(:disabled) {transform:translateY(-3px); box-shadow:0 6px 14px -5px rgba(0,0,0,.65),0 0 0 1px rgba(160,230,255,.35);} 
.btn-secondary:disabled {background:linear-gradient(145deg,#2b3746,#2c3c4f); color:#6d8299;}
.btn-ghost {background:linear-gradient(145deg,rgba(40,60,85,.4),rgba(22,32,48,.5)); border:1px solid rgba(140,210,255,.3); color:#b7d9ff; box-shadow:0 0 0 1px rgba(120,190,255,.15);} .btn-ghost:hover {color:#fff; box-shadow:0 0 0 1px rgba(160,230,255,.55), 0 4px 14px -6px rgba(0,0,0,.65);} 
[data-glow]{position:relative;} [data-glow]::after {content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(120deg,#3d82f7,#ffcf5a,#4d8dff); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; filter:blur(3px); opacity:.6; animation:rotateGlow 8s linear infinite;}
@keyframes rotateGlow {0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}

/* ===================== 状态与进度 ===================== */
.status {padding:10px; background:rgba(0,0,0,0.2); border-radius:8px; font-size:.74em; letter-spacing:.5px; color:#b6d9ff;}
#statusText {font-weight:500;}
.progress-section {display:flex; align-items:center; gap:15px; margin-bottom:20px;}
.progress-bar {flex:1; height:10px; background:rgba(255,255,255,0.15); border-radius:6px; overflow:hidden; position:relative;}
.spectral {position:relative; overflow:hidden;}
.progress-fill {height:100%; width:0%; transition: width .55s cubic-bezier(.4,.12,.15,.9); position:relative; background:linear-gradient(90deg,#3d82f7,#4d8dff,#ffcf5a,#4d8dff,#3d82f7); background-size:300% 100%; animation:spectralFlow 8s linear infinite, pulseBar 2.6s ease-in-out infinite; box-shadow:0 0 12px -2px rgba(77,141,255,.65), 0 0 28px -8px rgba(255,207,90,.55);} 
.progress-fill::after {content:''; position:absolute; top:0; bottom:0; right:0; width:46px; background:linear-gradient(120deg, rgba(255,255,255,.45), rgba(255,255,255,0)); filter:blur(6px); opacity:.35; mix-blend-mode:screen;}
#progressText {font-size:.7em; color:#ffe5ad; font-weight:500; white-space:nowrap; letter-spacing:1px;}
@keyframes spectralFlow {0%{background-position:0% 50%;}100%{background-position:200% 50%;}} @keyframes pulseBar {0%,100%{filter:brightness(1);}50%{filter:brightness(1.35);} }

/* ===================== 右侧面板与日志 ===================== */
.right-panel {background:linear-gradient(145deg, rgba(20,35,58,.53), rgba(15,25,42,.55)); padding:28px 26px 34px; border-radius:18px; backdrop-filter:blur(14px) saturate(160%); box-shadow:0 0 0 1px rgba(120,190,255,.12), 0 10px 26px -10px rgba(0,0,0,.7), inset 0 0 22px -6px rgba(120,160,255,.3); display:flex; flex-direction:column; position:relative; overflow:hidden;}
.right-panel::before {content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(255,255,255,.05), transparent 30%, transparent 70%, rgba(255,255,255,.05));}
.log-section {flex:1; display:flex; flex-direction:column; margin-bottom:22px;}
.log-header {display:flex; justify-content:space-between; align-items:center; margin-bottom:15px; gap:15px;}
.log-header h3 {color:#b6d9ff; font-size:1.05em; font-weight:600; letter-spacing:.8px;}
.search-input {width:220px; padding:8px 12px; background:rgba(18,32,48,.5); border:1px solid rgba(120,190,255,.25); border-radius:8px; color:#e6f1ff; font-size:.72em; letter-spacing:.5px; outline:none; transition:.3s;}
.search-input:focus {border-color:#4d8dff; background:rgba(32,56,90,.65); box-shadow:0 0 0 1px #4d8dff, 0 0 0 4px rgba(77,141,255,.25);}
.log-output {flex:1; min-height:300px; max-height:520px; background:linear-gradient(160deg, rgba(6,12,20,.65), rgba(10,18,32,.55)); padding:18px 18px 28px; border-radius:14px; font-family:'Consolas','JetBrains Mono','Monaco',monospace; font-size:.78em; line-height:1.55; overflow-y:auto; position:relative; backdrop-filter:blur(10px);}
.log-output::before {content:''; position:absolute; inset:0; background:linear-gradient(120deg, rgba(140,210,255,.08), rgba(255,200,140,.05)); mix-blend-mode:overlay; pointer-events:none;}
.log-output::after {content:''; position:absolute; inset:0; background:repeating-linear-gradient(0deg, rgba(255,255,255,.07) 0 1px, transparent 1px 2px); mix-blend-mode:overlay; opacity:.12; pointer-events:none;}
.log-message {margin:0 0 6px; padding:3px 6px 3px 0; position:relative; letter-spacing:.3px; display:flex; gap:8px; align-items:flex-start;}
.log-message::before {content:attr(data-time); font-size:.7em; opacity:.45; letter-spacing:.5px; font-family:'JetBrains Mono','Consolas'; min-width:56px; text-align:right;}
.log-message.info {color:#7fccff;} .log-message.success {color:#7fe5a1;} .log-message.warning {color:#ffc981;} .log-message.error {color:#ff8db1;} .log-message.highlight {background:linear-gradient(90deg, rgba(255,215,0,.25), transparent); border-left:3px solid #ffd700; padding-left:10px; border-radius:4px;}
.mono {font-family:'JetBrains Mono','Consolas','Monaco',monospace; letter-spacing:.5px;}

/* ===================== 结果区域 ===================== */
.result-section {background:linear-gradient(160deg, rgba(8,14,24,.6), rgba(14,24,38,.55)); padding:24px 22px 28px; border-radius:16px; box-shadow:0 0 0 1px rgba(140,210,255,.15), 0 6px 18px -8px rgba(0,0,0,.7); position:relative;}
.result-section h3 {color:#cde6ff; margin-bottom:14px; letter-spacing:.8px; font-weight:600;}
.chronicle-output {background:linear-gradient(145deg, rgba(12,20,32,.75), rgba(8,14,24,.65)); padding:20px 18px 26px; border-radius:14px; font-family:'Microsoft YaHei','Segoe UI',sans-serif; font-size:.85em; line-height:1.75; white-space:pre-wrap; max-height:460px; overflow-y:auto; position:relative; border:1px solid rgba(120,190,255,.2); box-shadow: inset 0 0 14px -6px rgba(120,180,255,.25);} 
.chronicle-output::before {content:''; position:absolute; inset:0; background:linear-gradient(120deg, rgba(140,210,255,.06), rgba(255,220,160,.05)); mix-blend-mode:overlay; pointer-events:none;}

/* ===================== 底部 ===================== */
.footer {text-align:center; background:linear-gradient(145deg, rgba(20,35,58,.55), rgba(15,25,42,.55)); padding:28px 20px 32px; border-radius:16px; backdrop-filter:blur(16px) saturate(180%); box-shadow:0 4px 14px -4px rgba(0,0,0,.6), 0 0 0 1px rgba(120,190,255,.15), inset 0 0 28px -8px rgba(130,170,255,.35);} 
.footer p {margin-bottom:10px; font-size:.72em; letter-spacing:.5px;} .footer a {color:#4d8dff; text-decoration:none;} .footer a:hover {text-decoration:underline;} .footer-hint {color:#8fa2b4; font-size:.62em; font-style:italic; letter-spacing:.5px;}

/* ===================== 响应式 ===================== */
@media (max-width: 780px){ .container{padding:14px 14px 40px;} .header h1{font-size:1.9em;} .left-panel,.right-panel{padding:22px 20px; border-radius:16px;} .button-row{flex-direction:column;} .btn{width:100%;} .progress-section{flex-direction:column; align-items:stretch; gap:10px;} .log-header{flex-direction:column; align-items:stretch;} .search-input{width:100%;} }

/* ===================== 动画与特效 ===================== */
@keyframes fadeIn {from{opacity:0; transform:translateY(20px);} to {opacity:1; transform:translateY(0);}}
.section,.log-section,.result-section {animation:fadeIn .6s ease-out;}
.spinner {display:inline-block; width:16px; height:16px; border:2px solid rgba(255,255,255,0.3); border-radius:50%; border-top-color:#ffffff; animation: spin 1s ease-in-out infinite;}
@keyframes spin {to {transform:rotate(360deg);}}

/* 主题切换（浅色） */
body.light-theme {background:radial-gradient(circle at 60% 35%, #f2f7ff 0%, #dfe9f7 55%, #c2d6ec 100%); color:#1c2733;}
body.light-theme .header,body.light-theme .left-panel,body.light-theme .right-panel,body.light-theme .footer {background:linear-gradient(140deg, rgba(255,255,255,.9), rgba(250,253,255,.85)); box-shadow:0 4px 14px -4px rgba(0,40,90,.15), 0 0 0 1px rgba(110,150,200,.28);} 
body.light-theme .header h1 {text-shadow:none;}
body.light-theme .subtitle a {color:#1654b8;}
body.light-theme .file-label {background:linear-gradient(140deg,#d7e8f8,#bcd8f1); color:#1c2733;} 
body.light-theme .file-label:hover {background:linear-gradient(140deg,#c8def3,#b2d0eb);} 
body.light-theme .radio-label {color:#1c2733; border-color:rgba(60,110,170,.25);} 
body.light-theme .radio-label:hover {background:rgba(60,110,170,.08);} 
body.light-theme .input-guide {background:linear-gradient(145deg, rgba(240,246,255,.9), rgba(230,240,252,.85)); border-color:rgba(60,110,170,.3);} 
body.light-theme .input-guide::-webkit-scrollbar-track {background:rgba(220,230,245,.5);}
body.light-theme .input-guide::-webkit-scrollbar-thumb {background:linear-gradient(180deg,#1654b8,#28a745);}
body.light-theme .input-guide::-webkit-scrollbar-thumb:hover {background:linear-gradient(180deg,#0d47a1,#1b5e20);}
body.light-theme .input-item {background:rgba(240,246,255,.6);} 
body.light-theme .input-item input {background:rgba(255,255,255,.9); color:#1c2733; border-color:rgba(60,110,170,.35);}
body.light-theme .collapsible-header {color:#1c2733;}
body.light-theme .collapsible-header:hover {color:#1654b8;}
body.light-theme .collapse-icon {color:#666;}
body.light-theme .result-tabs {background:rgba(230,240,252,.5);}
body.light-theme .tab-btn {color:#666;}
body.light-theme .tab-btn:hover {color:#1c2733; background:rgba(60,110,170,.08);}
body.light-theme .tab-btn.active {color:#1c2733; background:linear-gradient(140deg,rgba(60,110,170,.15),rgba(100,150,220,.1));}
body.light-theme .timeline-container {background:linear-gradient(145deg, rgba(245,248,255,.9), rgba(232,240,252,.88)); border-color:rgba(60,110,170,.3);}
body.light-theme .timeline-event {background:linear-gradient(140deg,rgba(240,246,255,.6),rgba(230,240,252,.7)); border-color:rgba(60,110,170,.2);}
body.light-theme .timeline-event:hover {border-color:rgba(60,110,170,.4); background:linear-gradient(140deg,rgba(235,242,252,.7),rgba(225,235,248,.8));}
body.light-theme .timeline-date {color:#8b4513;}
body.light-theme .timeline-title, body.light-theme .timeline-desc {color:#1c2733;}
body.light-theme .timeline-icon {box-shadow:0 0 8px rgba(60,110,170,.3);} 
body.light-theme .text-input {background:rgba(240,246,255,.9); color:#1c2733; border-color:rgba(60,110,170,.35);} 
body.light-theme .btn-primary {background:linear-gradient(140deg,#1d5ac9,#3a80ff);} 
body.light-theme .btn-secondary {background:linear-gradient(140deg,#5d6e82,#6e7f94);} 
body.light-theme .log-output {background:linear-gradient(140deg, rgba(245,248,255,.9), rgba(232,240,252,.88));}
body.light-theme .chronicle-output {background:linear-gradient(140deg, rgba(245,248,255,.9), rgba(232,240,252,.88)); color:#1c2733;}
body.light-theme .result-section {background:linear-gradient(140deg, rgba(255,255,255,.88), rgba(240,247,255,.85));}
body.light-theme .section h3 {color:#1d3d66;}
body.light-theme .progress-bar {background:rgba(0,40,90,.15);} 
body.light-theme .progress-fill {box-shadow:none;}