:root{--bg:#f5f7f8;--ink:#0b1720;--muted:#667783;--line:#dfe6ea;--brand:#0877b9;--cyan:#4bc3e8;--navy:#071b2a;--card:#fff;--danger:#a72d2d;--success:#247047;--shadow:0 24px 60px rgba(4,26,40,.13)}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;background:var(--bg);color:var(--ink)}body.no-scroll{overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.shell{max-width:1180px;margin:auto;padding:0 28px}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.logo{text-decoration:none;font-weight:900;font-size:22px;letter-spacing:-1px}.logo span{color:var(--brand)}.nav-links{display:flex;align-items:center;gap:26px;font-size:14px;color:#50616d}.nav-links>a{text-decoration:none}.admin-link,.mobile-admin{border-radius:999px;background:#e6f3fa;color:#075e91!important;padding:10px 15px;font-weight:800}.mobile-admin{display:none;text-decoration:none}
.hero{background:linear-gradient(125deg,#061925,#073b5d 60%,#0a82bc);border-radius:30px;color:#fff;padding:58px 62px;min-height:480px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero:after{content:"";position:absolute;width:480px;height:480px;border-radius:50%;border:1px solid rgba(255,255,255,.14);right:-100px;top:-130px;box-shadow:0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018)}.eyebrow{font-size:12px;font-weight:900;letter-spacing:2.2px;color:#7fddfa;margin-bottom:24px;position:relative;z-index:1}.hero h1{font-size:54px;line-height:1.08;letter-spacing:-2px;max-width:750px;margin:0 0 18px;position:relative;z-index:1}.hero p{max-width:650px;color:#d9e8ef;line-height:1.8;position:relative;z-index:1}.hero-actions{display:flex;gap:12px;margin-top:28px;position:relative;z-index:2}.button{border:0;border-radius:999px;padding:13px 18px;font-weight:900}.button-light{background:#fff;color:#071b2a}.button-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25)}.hero-issue{position:absolute;right:56px;bottom:44px;text-align:right;z-index:2}.hero-issue b{display:block;font-size:76px;line-height:.85}.hero-issue small{letter-spacing:2px;color:#b9dbe9}
.section{padding:72px 0 0}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.section-head small,.about small{color:var(--brand);font-weight:900;letter-spacing:2px}.section-head h2,.about h2{font-size:34px;margin:6px 0 0}.section-head p{margin:0;color:var(--muted)}.episode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.episode-card{background:#fff;border:1px solid #e8edf0;border-radius:22px;overflow:hidden;transition:.2s}.episode-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(15,23,42,.08)}.cover{height:190px;background:linear-gradient(135deg,#075f96,#39bfe6);padding:24px;color:#fff;position:relative;overflow:hidden}.cover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(5,36,55,.15),rgba(5,36,55,.22));z-index:1}.cover:after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(255,255,255,.24);border-radius:50%;right:-50px;top:-55px;z-index:2}.cover b{font-size:12px;letter-spacing:2px;position:relative;z-index:3}.cover strong{position:absolute;right:20px;bottom:10px;font-size:68px;opacity:.18;z-index:2}.card-body{padding:22px}.meta{font-size:11px;color:#7b8a93;letter-spacing:.5px}.card-body h3{font-size:20px;line-height:1.4;margin:10px 0}.card-body p{color:var(--muted);font-size:13px;line-height:1.75;min-height:68px}.card-actions{display:flex;gap:8px;margin-top:16px}.card-actions button,.card-actions a{border:0;border-radius:999px;padding:9px 12px;font-weight:800;font-size:12px;text-decoration:none}.listen{background:#071b2a;color:#fff}.read{background:#e9f5fb;color:#0877b9}.empty{grid-column:1/-1;background:#fff;border:1px dashed #cbd6dc;border-radius:20px;padding:35px;text-align:center;color:#71838e}.about{margin-top:72px;padding:48px;background:#fff;border-radius:24px;border:1px solid #e8edf0}.about p{max-width:740px;color:var(--muted);line-height:1.9}footer{padding:52px 0;color:#92a0a8;font-size:12px;display:flex;justify-content:space-between}
.article-overlay{position:fixed;inset:0;background:rgba(3,12,18,.72);z-index:30;overflow:auto;padding:28px}.article-overlay[hidden]{display:none}.article-panel{max-width:900px;margin:20px auto;background:#fff;border-radius:26px;position:relative;padding:52px 62px;min-height:480px}.round-close{position:absolute;right:20px;top:18px;width:40px;height:40px;border-radius:50%;border:0;background:#eef3f5;font-size:20px}.kicker{font-size:12px;color:var(--brand);font-weight:900;letter-spacing:2px}.article-panel h1{font-size:38px;line-height:1.25;margin:12px 50px 10px 0}.byline{color:#778893;font-size:13px;margin-bottom:24px}.player{background:var(--navy);color:#fff;border-radius:20px;padding:20px 22px;margin:24px 0 30px;display:flex;align-items:center;gap:14px}.play-button{flex:0 0 auto;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:#071b2a;font-size:19px}.progress-block{flex:1}.progress-block input{width:100%;accent-color:#4bc3e8}.time{display:flex;justify-content:space-between;color:#b9ccd6;font-size:11px}.speed-button{border:1px solid #315064;background:transparent;color:#fff;border-radius:999px;padding:8px 10px}.read-kicker{margin-top:36px}.article-content{font-size:16px;line-height:1.95;color:#344650}.article-content h2{color:var(--ink);font-size:26px;margin-top:34px}.article-content h3{color:var(--ink);margin-top:28px}.article-content blockquote{border-left:4px solid var(--cyan);margin:24px 0;padding:2px 0 2px 20px;color:#526875}.article-content a{color:var(--brand)}
.sticky-player{position:fixed;left:12px;right:12px;bottom:12px;z-index:25;background:#071b2a;color:#fff;border-radius:18px;padding:11px 14px;box-shadow:0 16px 45px rgba(0,0,0,.24);align-items:center;gap:12px}.sticky-player:not([hidden]){display:flex}.sticky-player>button:first-child{width:38px;height:38px;border:0;border-radius:50%;background:#fff}.sticky-player>div{min-width:0;flex:1}.sticky-player b,.sticky-player small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sticky-player small{color:#a9c0cc}.sticky-open{border:1px solid #315064;background:transparent;color:#fff;border-radius:999px;padding:7px 10px}.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#071b2a;color:#fff;border-radius:12px;padding:11px 16px;z-index:60;box-shadow:0 10px 32px rgba(0,0,0,.25)}
/* Admin */
.admin-page{min-height:100vh;background:#eef3f5}.admin-shell{max-width:1180px;margin:auto;padding:28px}.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-topbar .logo{font-size:21px}.admin-user{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.text-button{border:0;background:transparent;color:var(--brand);font-weight:800}.login-card{max-width:440px;margin:10vh auto;background:#fff;border-radius:24px;padding:38px;box-shadow:var(--shadow)}.login-card h1{margin:0 0 8px}.login-card p{color:var(--muted);line-height:1.6}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field label{font-size:12px;font-weight:900;color:#536671}.field input,.field textarea,.field select,.editor{border:1px solid #d9e2e7;border-radius:12px;padding:12px 13px;outline:none;background:#fbfcfd}.field input:focus,.field textarea:focus,.field select:focus,.editor:focus{border-color:#48a9d6;box-shadow:0 0 0 3px rgba(72,169,214,.12)}.primary-action{border:0;border-radius:999px;background:#0a79b6;color:#fff;padding:12px 17px;font-weight:900}.login-card .primary-action{width:100%;margin-top:8px}.form-error{color:var(--danger);font-size:13px;min-height:20px}.dashboard{background:#fff;border-radius:24px;padding:30px}.dashboard-head{display:flex;align-items:end;justify-content:space-between;gap:18px}.dashboard h1{margin:0 0 6px}.dashboard-head p{margin:0;color:var(--muted)}.toolbar{display:flex;gap:10px;margin:24px 0;flex-wrap:wrap}.secondary-action,.danger-action{border:0;border-radius:999px;background:#eaf0f3;color:#304550;padding:10px 14px;font-weight:800}.danger-action{background:#fff0f0;color:var(--danger)}.work-row{display:grid;grid-template-columns:72px 1fr auto;gap:16px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.issue-badge{width:64px;height:64px;border-radius:16px;background:#e9f5fb;color:#0877b9;display:grid;place-items:center;font-weight:900;text-align:center}.work-row h3{margin:0 0 5px;font-size:17px}.work-row p{margin:0;color:var(--muted);font-size:12px}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.row-actions button{border:0;border-radius:999px;padding:8px 11px;font-weight:800;font-size:12px}.status{display:inline-block;font-size:10px;font-weight:900;letter-spacing:1px;border-radius:999px;padding:4px 8px;margin-left:8px;background:#edf2f4;color:#60727d}.status.published{background:#e5f6ed;color:var(--success)}.status.archived{background:#fff2d9;color:#805d12}.editor-overlay{position:fixed;inset:0;background:rgba(3,12,18,.72);z-index:40;overflow:auto;padding:28px}.editor-overlay[hidden]{display:none}.editor-panel{max-width:1000px;margin:20px auto;background:#fff;border-radius:26px;padding:38px;position:relative}.editor-panel h2{margin:0 0 6px}.editor-lead{margin:0 0 26px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field.full{grid-column:1/-1}.field textarea{min-height:100px;resize:vertical}.editor-toolbar{display:flex;gap:6px;margin-bottom:7px}.editor-toolbar button{border:0;border-radius:8px;padding:7px 10px;background:#eaf0f3;font-weight:800}.editor{min-height:300px;line-height:1.8}.upload-note{font-size:12px;color:var(--muted);margin-top:5px}.editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.note{background:#fff8df;border:1px solid #f0df9b;border-radius:14px;padding:13px 15px;color:#6b5a1e;font-size:13px;margin-top:18px}.busy{opacity:.55;pointer-events:none}
@media(max-width:760px){body{padding-bottom:76px}.shell{padding:0 14px}.nav{height:62px}.logo{font-size:19px}.nav-links{display:none}.mobile-admin{display:block}.hero{min-height:500px;border-radius:22px;padding:34px 22px 118px}.hero h1{font-size:36px;line-height:1.12;letter-spacing:-1.2px}.hero p{font-size:14px;line-height:1.7}.hero-actions{flex-direction:column}.hero-actions button{width:100%}.hero-issue{left:22px;right:auto;bottom:27px;text-align:left}.hero-issue b{font-size:58px}.section{padding-top:48px}.section-head h2,.about h2{font-size:28px}.section-head p{display:none}.episode-grid{grid-template-columns:1fr}.cover{height:210px}.card-body p{min-height:auto}.about{margin-top:48px;padding:28px 22px}footer{flex-direction:column;gap:10px}.article-overlay{padding:0;background:#fff}.article-panel{margin:0;min-height:100vh;border-radius:0;padding:66px 18px 100px}.round-close{position:fixed;z-index:45;right:14px;top:12px}.article-panel h1{font-size:31px}.player{padding:18px 14px;display:grid;grid-template-columns:48px 1fr auto;gap:10px}.article-content{font-size:16px;line-height:1.9}.admin-shell{padding:14px}.admin-topbar{margin:6px 0 18px}.login-card{margin:5vh auto;padding:28px 22px}.dashboard{padding:24px 16px}.dashboard-head{align-items:flex-start;flex-direction:column}.work-row{grid-template-columns:56px 1fr}.issue-badge{width:54px;height:54px}.row-actions{grid-column:1/-1}.row-actions button{flex:1}.editor-overlay{padding:0;background:#fff}.editor-panel{margin:0;min-height:100vh;border-radius:0;padding:62px 16px 90px}.form-grid{display:block}.field.full{grid-column:auto}.editor-actions{position:sticky;bottom:0;background:rgba(255,255,255,.96);padding:12px 0;display:grid;grid-template-columns:1fr 1fr}.editor-actions button:last-child{grid-column:1/-1}.editor{min-height:360px}.toast{bottom:90px;max-width:90%;text-align:center}}
@media(max-width:380px){.hero h1{font-size:31px}.hero-issue b{font-size:50px}}

/* Season grouping */
.season-groups{display:grid;gap:42px}
.season-block{min-width:0}
.season-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.season-head small{color:var(--brand);font-size:11px;font-weight:900;letter-spacing:2px}
.season-head h3{font-size:25px;margin:3px 0 0}
.season-head span{color:var(--muted);font-size:12px}
.issue-badge{display:flex;flex-direction:column;align-items:center;justify-content:center}
.issue-badge span{font-size:16px}
.issue-badge small{font-size:9px;max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.season-groups{gap:34px}.season-head h3{font-size:22px}}
