*{margin:0;padding:0;box-sizing:border-box}
.mr-4{margin-right:4px!important}.mr-6{margin-right:6px!important}.ml-8{margin-left:8px!important}.ml-auto{margin-left:auto}.mt-8{margin-top:8px!important}.mt-12{margin-top:12px!important}.mt-20{margin-top:20px!important}.mb-6{margin-bottom:6px!important}.mb-16{margin-bottom:16px!important}.mb-20{margin-bottom:20px!important}.ta-c{text-align:center}.fs-12{font-size:12px}.fs-14{font-size:14px}.fs-15{font-size:15px}.lh-18{line-height:1.8}.fw-600{font-weight:600}.c-warn{color:var(--el-color-warning)}.c-primary{color:var(--el-color-primary)}.c-info{color:var(--el-color-info)}.c-regular{color:var(--el-text-color-regular)}.c-primary-txt{color:var(--el-text-color-primary)}.wb-bw{word-break:break-word}.pad-4-16{padding:4px 16px}.pad-8-20{padding:8px 20px}.pad-20y{padding:20px 0}
body{font-family:var(--el-font-family,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif);min-height:100vh;background:var(--el-bg-color-page,#f5f7fa)}
#app{min-height:100vh;opacity:0;transform:translateY(6px)}
.header{background:var(--el-bg-color);border-bottom:1px solid var(--el-border-color-lighter);position:sticky;top:0;z-index:1000;padding:12px 16px;box-shadow:var(--el-box-shadow-light)}
.header-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}
.logo-area{display:flex;align-items:center;gap:12px}
.logo{width:44px;height:44px;border-radius:50%;border:2px solid var(--el-color-primary-light-7);box-shadow:var(--el-box-shadow-light)}
.site-title{font-size:20px;font-weight:600;color:var(--el-text-color-primary)}
.main-content{max-width:1200px;margin:0 auto;padding:20px 16px}
.card{margin-bottom:16px;border-radius:var(--el-border-radius-base,8px)}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;cursor:pointer;transition:background var(--el-transition-duration-fast) ease;user-select:none}
.card-header:hover{background:var(--el-fill-color-lighter)}
.card-title{display:flex;align-items:center;gap:12px}
.card-title .el-icon{color:var(--el-color-primary);font-size:24px}
.card-title-text{font-size:17px;font-weight:600;color:var(--el-text-color-primary)}
.hitokoto-area{display:flex;align-items:center;gap:12px;padding:16px 20px}
.hitokoto-quote{color:var(--el-color-primary)}
.hitokoto-text{flex:1;font-size:15px;color:var(--el-text-color-regular);line-height:1.6}
.gonggao-content{padding:0 24px 20px}
.gaokao-text{padding:16px 24px;font-size:15px;line-height:1.8;color:var(--el-text-color-regular)}
.gaokao-text strong{color:var(--el-color-primary);font-weight:700}
.resource-section{padding:20px 24px 16px;min-height:200px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.section-title{font-size:19px;font-weight:600;color:var(--el-text-color-primary);display:flex;align-items:center;gap:8px}
.section-title .el-icon{color:var(--el-color-primary);font-size:22px}
.search-input{width:100%;max-width:320px}
.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--el-spacing-md,16px)}
@media (max-width:900px){.resource-grid{grid-template-columns:1fr}}
.resource-item{padding:16px;transition:transform var(--el-transition-duration,.3s) ease,box-shadow var(--el-transition-duration,.3s) ease,background var(--el-transition-duration-fast) ease;will-change:transform}
.resource-item:hover{transform:translateY(-4px);box-shadow:var(--el-box-shadow,0 12px 32px 4px rgba(0,0,0,.08),0 8px 20px rgba(0,0,0,.06))!important}
.resource-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.resource-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;color:var(--el-color-primary)}
.resource-icon svg,.resource-icon img{width:100%;height:100%;display:block}
.resource-name{font-size:17px;font-weight:600;color:var(--el-text-color-primary)}
.resource-info{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:15px;transition:opacity var(--el-transition-duration-fast) ease}
.resource-info>.el-icon:first-child{flex-shrink:0}
.resource-info-text{flex:1;color:var(--el-text-color-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.resource-info-text strong{color:var(--el-text-color-primary)}
.resource-desc{display:flex;gap:12px;padding:10px 0;font-size:15px;color:var(--el-text-color-secondary);word-break:break-all;align-items:flex-start;opacity:1;transition:opacity var(--el-transition-duration-fast) ease}
.resource-desc>.el-icon{flex-shrink:0;margin-top:3px}
.resource-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.footer{padding:24px;text-align:center;font-size:15px;color:var(--el-text-color-secondary)}
.footer a{color:var(--el-color-primary);text-decoration:none;transition:color var(--el-transition-duration-fast) ease}
.footer a:hover{text-decoration:underline;color:var(--el-color-primary-light-3)}
.empty-state{text-align:center;padding:48px 24px;color:var(--el-text-color-secondary)}
.empty-state .empty-icon{font-size:64px;opacity:.5;margin-bottom:12px;color:var(--el-color-primary-light-5)}
.chevron-icon{transition:transform var(--el-transition-duration,.3s) cubic-bezier(0.4,0,0.2,1);color:var(--el-text-color-secondary);font-size:20px}
.chevron-icon.is-expanded{transform:rotate(180deg)}
.info-btn-circle{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;max-width:36px!important;max-height:36px!important;aspect-ratio:1/1!important;box-sizing:border-box!important;border-radius:50%!important;padding:0!important;overflow:hidden!important;flex-shrink:0;line-height:0;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.search-result-tag .el-icon{margin-right:4px}
.theme-switch-btn{background:var(--el-bg-color);border:1px solid var(--el-border-color-lighter);transition:all var(--el-transition-duration-fast) ease}
.theme-switch-btn:hover,.theme-switch-btn.theme-switch-active{color:var(--el-color-primary);border-color:var(--el-color-primary-light-5);box-shadow:0 0 0 3px var(--el-color-primary-light-9)}
html.dark{color-scheme:dark}
html.dark .resource-item:hover{background:var(--el-bg-color-overlay)}
html.dark .logo{opacity:.95}
html.dark .card-header:hover{background:var(--el-fill-color-dark)}
html.dark .timeline-edit-form,html.dark .empty-state,html.dark .gonggao-content,html.dark .gaokao-text{color:var(--el-text-color-regular)}
html.dark #hitokoto{color:var(--el-text-color-regular)}
html.dark .el-card__body{background:var(--el-bg-color)}
html.dark .theme-switch-btn{background:var(--el-bg-color);border-color:var(--el-border-color-darker);color:var(--el-text-color-regular)}
html.dark .theme-switch-btn:hover,html.dark .theme-switch-btn.theme-switch-active{color:var(--el-color-primary-light-5);border-color:var(--el-color-primary-light-3);box-shadow:0 0 0 3px var(--el-color-primary-light-2)}
.expand-enter-active,.expand-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0.22,1,0.36,1),opacity .35s ease,padding .35s ease,margin .35s ease;box-sizing:border-box;max-height:3000px}
.expand-enter-from,.expand-leave-to{opacity:0!important;max-height:0!important;padding-top:0!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important}
.el-button{transition:transform var(--el-transition-duration-fast) cubic-bezier(0.4,0,0.2,1),box-shadow var(--el-transition-duration-fast) ease,background var(--el-transition-duration-fast) ease,border-color var(--el-transition-duration-fast) ease,color var(--el-transition-duration-fast) ease!important}
.el-button:active:not(.is-disabled){transform:scale(.96)}
.el-button--primary:hover{box-shadow:0 6px 16px rgba(64,158,255,.35)}
.el-button--default:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.search-result-tag{animation:searchTagSlideIn .35s cubic-bezier(0.22,1,0.36,1) both}
@keyframes searchTagSlideIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.el-timeline-item__node{transition:transform var(--el-transition-duration,.3s) ease,box-shadow var(--el-transition-duration,.3s) ease}
.el-timeline-item:hover .el-timeline-item__node{transform:scale(1.15);box-shadow:0 0 0 6px var(--el-color-primary-light-9)}
@keyframes siteLoaderSpin{to{transform:rotate(360deg)}}
.sl-container{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:var(--el-bg-color);transition:opacity .6s ease,visibility .6s ease}
.sl-progress{position:absolute;top:0;left:0;height:3px;width:20%;background:linear-gradient(90deg,#409EFF 0%,#67C23A 33%,#E6A23C 66%,#F56C6C 100%);box-shadow:0 0 10px rgba(64,158,255,.7);transition:width .4s ease}
.sl-center{text-align:center}
.sl-ring{width:46px;height:46px;box-sizing:border-box;border:3px solid var(--el-border-color-lighter);border-top-color:var(--el-color-primary);border-radius:50%;animation:siteLoaderSpin 1s linear infinite;margin:0 auto 16px}
.sl-msg{font-size:15px;color:var(--el-text-color-primary);letter-spacing:1px;margin-bottom:6px}
.sl-pct{font-size:12px;color:var(--el-text-color-secondary)}
#app.loaded{animation:siteAppFadeIn .6s ease forwards}
@keyframes siteAppFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.resource-grid .resource-item{animation:itemFadeInUp .55s cubic-bezier(0.22,1,0.36,1) both;animation-delay:calc(var(--i,0)*40ms)}
@keyframes itemFadeInUp{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
