:root{--bg-page: #f4f6f1;--bg-surface: #ffffff;--bg-soft: #eef2ea;--bg-strong: #161814;--text-primary: #151814;--text-secondary: #4c5548;--text-muted: #7a8275;--border-color: #d9ded1;--accent-green: #1f7a4d;--accent-red: #b8323a;--accent-blue: #245c8f;--accent-gold: #b7791f;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-card: 0 8px 24px rgba(22, 24, 20, .06);--shadow-hover: 0 14px 34px rgba(22, 24, 20, .1)}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg-page)}body{min-height:100vh;background:linear-gradient(180deg,rgba(31,122,77,.08),transparent 320px),var(--bg-page);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.mobile-copy{display:none}.main-content{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:22px 0 48px;flex:1}.header{position:sticky;top:0;z-index:100;background:#f4f6f1e6;border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-top{width:min(1120px,calc(100% - 32px));min-height:78px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}.header-brand{min-width:240px;display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #1f7a4d;border-radius:50%;background:#e7f1e8;color:var(--accent-green);font-weight:800}.header-eyebrow{margin-bottom:-3px;color:var(--accent-green);font-size:.74rem;font-weight:700}.header-title{color:var(--text-primary);font-size:1.48rem;font-weight:800;line-height:1.15;letter-spacing:0}.header-date{color:var(--text-secondary);font-size:.84rem;white-space:nowrap}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:1}.search-box{width:min(360px,100%);height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color .18s ease,box-shadow .18s ease}.search-box:focus-within{border-color:var(--accent-green);box-shadow:0 0 0 3px #1f7a4d1f}.search-icon{color:var(--text-muted);flex:0 0 auto}.search-input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--text-primary);font-size:.92rem}.search-input::placeholder{color:var(--text-muted)}.search-clear{width:24px;height:24px;border:0;border-radius:50%;background:var(--bg-soft);color:var(--text-muted);cursor:pointer}.search-clear:hover{color:var(--text-primary)}.refresh-btn{height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;border:0;border-radius:var(--radius-lg);background:var(--bg-strong);color:#fff;cursor:pointer;font-size:.9rem;font-weight:700;white-space:nowrap;transition:transform .18s ease,background .18s ease,opacity .18s ease}.refresh-btn:hover:not(:disabled){background:#273021;transform:translateY(-1px)}.refresh-btn:disabled{cursor:not-allowed;opacity:.62}.refresh-icon{flex:0 0 auto;transition:transform .3s}.refresh-icon.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.refresh-bar{width:min(1120px,calc(100% - 32px));margin:12px auto 0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:#ffffffb8;color:var(--text-secondary);font-size:.84rem}.refresh-bar-error,.refresh-error{color:var(--accent-red)}.refresh-bar-right{display:flex;align-items:center;gap:8px;white-space:nowrap}.countdown-label{color:var(--text-muted)}.countdown-timer{min-width:48px;padding:2px 8px;border-radius:var(--radius-sm);background:var(--bg-strong);color:#fff;font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:.8rem;text-align:center}.free-notice{margin-bottom:16px;padding:10px 12px;border:1px solid rgba(31,122,77,.26);border-left:3px solid var(--accent-green);border-radius:var(--radius-lg);background:#e7f1e8d1;color:#1d5f3f;font-size:.88rem;font-weight:700}.edition-strip{margin-bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.edition-kicker{display:block;color:var(--accent-gold);font-size:.76rem;font-weight:800;text-transform:uppercase}.edition-strip h2{max-width:620px;font-size:1.6rem;line-height:1.25;letter-spacing:0}.edition-stats{min-width:118px;padding:10px 12px;border-left:3px solid var(--accent-green);background:#ffffffb3}.edition-stats span{display:block;font-size:1.5rem;font-weight:800;line-height:1.1}.edition-stats small{color:var(--text-muted);font-size:.78rem}.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.news-card{min-height:232px;overflow:hidden;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-card);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.news-card:hover{border-color:#1f7a4d6b;box-shadow:var(--shadow-hover);transform:translateY(-2px)}.news-card-body{min-height:232px;padding:18px;display:flex;flex-direction:column}.news-card-meta{margin-bottom:12px;display:flex;align-items:center;gap:9px;min-width:0}.news-source{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;padding:2px 9px;border:1px solid color-mix(in srgb,var(--source-color, #245c8f) 28%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--source-color, #245c8f) 10%,white);color:var(--source-color, #245c8f);font-size:.74rem;font-weight:800}.news-time{color:var(--text-muted);font-size:.78rem;white-space:nowrap}.news-title{margin-bottom:9px;font-size:1.04rem;font-weight:800;line-height:1.42}.news-title a:hover{color:var(--accent-green)}.news-summary{flex:1;display:-webkit-box;overflow:hidden;color:var(--text-secondary);font-size:.9rem;line-height:1.58;-webkit-box-orient:vertical;-webkit-line-clamp:3}.news-card-footer{margin-top:15px;padding-top:12px;border-top:1px solid var(--border-color)}.news-read-more{display:inline-flex;align-items:center;gap:6px;color:var(--accent-blue);font-size:.84rem;font-weight:800}.news-read-more:hover{color:var(--accent-green)}.news-list-state{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--text-secondary);text-align:center}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-green);border-radius:50%;animation:spin .8s linear infinite}.error-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--accent-red);color:#fff;font-size:1.3rem;font-weight:800}.empty-icon{color:var(--text-muted);font-family:SF Mono,Cascadia Code,monospace;font-size:2rem}.search-result-info{margin-bottom:14px;padding:10px 12px;border-left:3px solid var(--accent-blue);background:#ffffffb8;color:var(--text-secondary);font-size:.9rem}.footer{padding:24px 16px;border-top:1px solid var(--border-color);background:var(--bg-strong);text-align:center}.footer p{margin:4px 0;color:#b8c0b1;font-size:.78rem}.footer .footer-author{color:#fff;font-weight:800}@media (max-width: 760px){body{background:linear-gradient(180deg,rgba(31,122,77,.07),transparent 210px),var(--bg-page)}.desktop-copy{display:none}.mobile-copy{display:inline}.header{position:static}.header-top{min-height:0;padding:12px 0 10px;align-items:stretch;flex-direction:column;gap:10px}.header-brand{width:100%;min-width:0;display:grid;grid-template-columns:34px minmax(168px,1fr) auto;align-items:center;gap:10px}.brand-mark{width:34px;height:34px;font-size:.96rem}.header-eyebrow{margin-bottom:0;font-size:.68rem;line-height:1.1;white-space:nowrap}.header-title{font-size:1.32rem;line-height:1.08;white-space:nowrap}.header-date{align-self:center;margin-left:auto;padding-top:0;color:var(--text-muted);font-size:.72rem}.header-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:8px}.search-box{width:100%;height:44px;box-shadow:none}.refresh-btn{width:48px;height:44px;padding:0;border-radius:var(--radius-lg)}.refresh-label{display:none}.refresh-bar{width:min(100% - 32px,1120px);margin-top:6px;padding:7px 0;border:0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);border-radius:0;background:transparent;font-size:.76rem}.refresh-bar,.edition-strip{align-items:center;flex-direction:row}.refresh-bar-left{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.refresh-bar-right{gap:6px}.countdown-timer{min-width:44px;padding:1px 7px;font-size:.76rem}.main-content{width:100%;padding:16px 16px 36px}.free-notice{margin-bottom:13px;padding:8px 10px;font-size:.78rem;line-height:1.45}.edition-strip{margin-bottom:14px;align-items:end;gap:12px;padding-bottom:12px}.edition-kicker{font-size:.7rem}.edition-strip h2{font-size:1.08rem;line-height:1.3}.edition-stats{width:auto;min-width:86px;flex:0 0 auto;padding:7px 9px;background:#ffffffc7}.edition-stats span{font-size:1.16rem}.edition-stats small{display:block;max-width:4em;line-height:1.25;font-size:.7rem}.news-grid{grid-template-columns:1fr;gap:12px}.news-card{min-height:0}.news-card:hover{transform:none}.news-card-body{min-height:0;padding:15px}.news-card-meta{margin-bottom:9px}.news-source{max-width:126px;font-size:.7rem}.news-time{font-size:.74rem}.news-title{font-size:.98rem;line-height:1.5}.news-summary{font-size:.86rem;line-height:1.62;-webkit-line-clamp:2}.news-card-footer{margin-top:12px;padding-top:10px}.footer{padding:18px 16px}}@media (max-width: 420px){.main-content,.header-top,.refresh-bar{width:min(100% - 24px,1120px)}.header-date{width:auto;margin-left:auto}.header-brand{grid-template-columns:34px minmax(150px,1fr) auto;gap:8px}.header-eyebrow{font-size:.64rem}.search-input{font-size:.9rem}.edition-strip{align-items:stretch;flex-direction:column}.edition-stats{width:100%;display:flex;align-items:baseline;gap:8px}.edition-stats small{max-width:none}}
