/* 鲸库网「天蓝·墨海」设计规范：墨蓝承重、天蓝品牌、珊瑚点睛；正文 16/1.7，长文 17/1.92；四档圆角、两档阴影。 */
:root{--sky-50:#eaf5fe;--sky-100:#cfe9fb;--sky-200:#9ad4f7;--sky-300:#6fc0f0;--sky-400:#4fa8ee;--sky-500:#1e88e5;--sky-600:#1272c8;--sky-700:#0e5aa0;--sky-800:#0a2e4e;--sky-900:#072238;--ink:#0a2942;--ink-soft:#163a57;--body:#3a4e63;--muted:#6b8098;--faint:#9aabbe;--line:#dce9f4;--line-2:#c2d9ec;--bg:#f3f8fd;--surface:#fff;--surface-2:#f8fbfe;--deep:#0a2e4e;--deep-2:#0e3d63;--brand:#1e88e5;--brand-soft:#e4f1fd;--brand-line:#bcdff8;--accent:#ff6b35;--accent-soft:#ffede5;--danger:#c0392b;--r-xs:6px;--r-sm:8px;--r:12px;--r-lg:18px;--r-xl:28px;--sh-1:0 1px 2px rgba(10,41,66,.04),0 8px 24px rgba(10,41,66,.05);--sh-2:0 18px 48px rgba(10,41,66,.1),0 2px 6px rgba(10,41,66,.04);--wrap:1180px;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Inter,system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Consolas,monospace}
[data-theme=dark]{--ink:#e8f1fa;--ink-soft:#d5e4f0;--body:#a8bdd0;--muted:#7c93a8;--faint:#5f7488;--line:#1b3247;--line-2:#28455f;--bg:#071a2b;--surface:#0c2539;--surface-2:#0a1f31;--deep:#04121f;--deep-2:#0a2e4e;--brand:#4fa8ee;--brand-soft:#0c2e4a;--brand-line:#1c4c74;--accent:#ff8257;--accent-soft:#3a1e12;--sh-1:0 1px 2px rgba(0,0,0,.4);--sh-2:0 18px 48px rgba(0,0,0,.5)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--body);font:16px/1.7 var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}.wrap{width:min(var(--wrap),calc(100% - 40px));margin:auto}.skip-link{position:fixed;z-index:999;left:12px;top:-80px;background:var(--accent);color:#fff;padding:8px 14px;border-radius:var(--r-sm)}.skip-link:focus{top:12px}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.svg-symbols{position:absolute}.site-header{position:sticky;top:0;z-index:50;background:rgba(243,248,253,.88);border-bottom:1px solid var(--line);backdrop-filter:blur(16px) saturate(150%)}[data-theme=dark] .site-header{background:rgba(7,26,43,.88)}.header-row{height:70px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;font-size:20px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(160deg,#5fb6f0,#1272c8);color:#fff}.site-header nav{display:flex;align-items:center;gap:4px;flex:1}.site-header nav a{position:relative;padding:8px 10px;border-radius:var(--r-sm);font-size:14px;color:var(--ink-soft)}.site-header nav a:hover{background:var(--surface)}.site-header nav .on{color:var(--brand);font-weight:700}.site-header nav .on:after{content:"";position:absolute;left:10px;right:10px;bottom:1px;height:2px;background:var(--accent);border-radius:9px}.top-search,.search-large{display:flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.76);backdrop-filter:blur(8px)}.top-search input{width:180px;border:0;background:transparent;padding:8px 14px;outline:0}.top-search button,.search-large button{border:0;background:var(--sky-700);color:#fff;padding:9px 17px;cursor:pointer}.theme-toggle,.menu-btn{border:1px solid var(--line);background:var(--surface);border-radius:99px;width:38px;height:38px;cursor:pointer}.menu-btn{display:none;font-size:20px}
.hero{width:min(var(--wrap),calc(100% - 40px));min-height:474px;margin:24px auto 0;border-radius:var(--r-xl);position:relative;overflow:hidden;color:#fff;background:linear-gradient(180deg,#d5ecfc 0%,#a6d8f7 26%,#5fb2ef 56%,#1e88e5 80%,#1272c8 100%)}.hero-inner{min-height:474px;display:grid;grid-template-columns:1.1fr .9fr;align-items:start;padding:54px 60px 150px;position:relative;z-index:4}.hero .kicker{color:#0a2e4e}.hero h1{font-size:clamp(36px,4.3vw,54px);line-height:1.1;letter-spacing:-.045em;margin:14px 0 18px;color:#082b46}.hero p{font-size:18px;max-width:580px;color:#153b58}.hero .search-large{max-width:610px;margin-top:25px}.search-large input{flex:1;min-width:0;border:0;background:transparent;padding:14px 18px;outline:0}.whale-panel{justify-self:end;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.17);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;border:1px solid rgba(255,255,255,.3)}.whale-panel span{font-size:48px}.whale-panel b{font-size:70px;line-height:1}.whale-panel small{letter-spacing:.18em}.kicker,.eyebrow{font-size:11.5px;letter-spacing:.18em;font-weight:800;color:var(--brand);text-transform:uppercase}.channel-strip{padding:22px 0}.channel-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}.channel-grid a{padding:20px;border-right:1px solid var(--line);display:flex;flex-direction:column}.channel-grid a:last-child{border:0}.channel-grid a:hover b{color:var(--brand)}.channel-grid span{font-size:13px;color:var(--muted)}.home-section{padding:58px 0}.home-section:nth-of-type(even){background:var(--surface)}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.section-title h2{font-size:29px;line-height:1.25;letter-spacing:-.03em;margin:5px 0;color:var(--ink)}.section-title>a{color:var(--brand);font-weight:700}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface);transition:.2s}.card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--brand-line)}.card-cover{display:block;aspect-ratio:16/9;background:var(--surface-2);overflow:hidden}.card-cover img{width:100%;height:100%;object-fit:cover;transition:.25s}.card:hover .card-cover img{transform:scale(1.04)}.card-body{padding:19px}.card h3{font-size:18.5px;line-height:1.42;letter-spacing:-.02em;margin:7px 0;color:var(--ink)}.card:hover h3{color:var(--brand)}.card p{font-size:14px;color:var(--muted);margin:0 0 15px}.meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--faint)}.page-head{padding:44px 0;background:var(--surface);border-bottom:1px solid var(--line)}.page-head h1{font-size:clamp(30px,3.6vw,44px);letter-spacing:-.04em;line-height:1.2;color:var(--ink);margin:18px 0 6px}.page-head p{margin:0;color:var(--muted)}.breadcrumb{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.breadcrumb b{color:var(--ink);font-weight:500}.content-layout,.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:38px;padding-top:36px;padding-bottom:70px}.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:22px}.filters a{padding:6px 13px;background:var(--surface);border:1px solid var(--line);border-radius:99px;font-size:14px}.filters .on{background:var(--sky-600);border-color:var(--sky-600);color:#fff}.sidebar{display:flex;flex-direction:column;gap:18px}.side-box,.download-box,.ad{border:1px solid var(--line);border-radius:var(--r);padding:20px;background:var(--surface)}.side-box h3{margin-top:0;color:var(--ink)}.ad{border-style:dashed;text-align:center;color:var(--muted);margin-bottom:22px}.ad:before{content:"广告";display:block;font-size:11px;color:var(--faint)}.ad-mobile{display:none}
.article{min-width:0}.article-head{padding:26px 0 32px;border-bottom:1px solid var(--line);margin-bottom:30px}.article-head h1{font-size:clamp(30px,3.4vw,42px);line-height:1.24;letter-spacing:-.035em;color:var(--ink);margin:11px 0}.lead{font-size:18px;color:var(--muted)}.prose{max-width:760px;font-size:17px;line-height:1.92;color:var(--body)}.prose h2{font-size:27px;color:var(--ink);margin-top:1.9em}.prose h3{color:var(--ink)}.prose pre{overflow:auto;background:var(--deep);color:#c6e0f2;padding:16px;border-radius:var(--r)}.prose code{font-family:var(--mono);font-size:.9em;color:#b2301a;background:var(--surface);border:1px solid var(--line);padding:2px 5px;border-radius:4px}.prose pre code{background:none;border:0;color:inherit;padding:0}.prose table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.prose th,.prose td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.prose th{background:var(--surface-2)}.download-box{margin:32px 0;background:var(--brand-soft);border-color:var(--brand-line)}.btn{display:inline-block;border:0;border-radius:var(--r-sm);padding:10px 17px;background:var(--sky-600);color:#fff;cursor:pointer;font-weight:700}.btn.secondary{background:var(--surface);color:var(--sky-700);border:1px solid var(--brand-line)}.btn:active{transform:translateY(1px)}.tags{display:flex;gap:9px;flex-wrap:wrap;margin:27px 0}.tags a{background:var(--surface);border:1px solid var(--line);padding:5px 11px;border-radius:99px}.related{margin-top:48px;border-top:1px solid var(--line);padding-top:28px}.card-grid.compact{grid-template-columns:repeat(2,1fr)}.pagination{display:flex;gap:7px;margin-top:34px}.pagination a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm)}.pagination .current{background:var(--sky-600);color:#fff}.empty,.error-page{min-height:390px;display:grid;place-items:center;text-align:center;color:var(--muted)}.error-code{font-size:92px;font-weight:900;color:var(--deep);line-height:1}.error-whale{width:80px;fill:var(--ink);margin:auto}.result-count{color:var(--muted);margin:32px 0}.static-page{padding:55px 0;min-height:380px}.companion{padding:22px;border-radius:var(--r-lg);background:linear-gradient(160deg,var(--sky-500),var(--sky-700));color:#fff;margin-top:38px}.companion h2{color:#fff;margin-top:0}
footer{background:var(--deep);color:#dce9f4;padding:48px 0 18px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:40px}.footer-grid p{color:#96aec2}.footer-grid strong{display:block;margin-bottom:10px}.footer-grid>a,.footer-grid div>a{display:block;color:#a9bfd0;margin:5px 0;font-size:14px}.footer-bottom{width:min(var(--wrap),calc(100% - 40px));margin:32px auto 0;padding-top:17px;border-top:1px solid #28455f;color:#829bb0;font-size:13px;display:flex;justify-content:space-between;gap:20px}
.admin-body{background:var(--bg)}.admin-top{height:65px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 65px)}.admin-nav{background:var(--deep);padding:24px 14px}.admin-nav a{display:block;color:#d4e0e2;padding:10px 13px;border-radius:var(--r-sm)}.admin-nav a:hover{background:var(--deep-2)}.admin-main{padding:32px;min-width:0}.admin-main>h1{margin-top:0;color:var(--ink)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.stat,.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:21px}.stat strong{display:block;color:var(--ink);font-size:32px}.toolbar{display:flex;justify-content:space-between;align-items:center}.table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{text-align:left;padding:13px;border-bottom:1px solid var(--line);white-space:nowrap}td small,.manage-list small{display:block;color:var(--muted)}.status{padding:4px 8px;border-radius:var(--r-xs);font-size:13px}.published{background:#def5e9;color:#12613a}.draft{background:#fff1cf;color:#725000}.offline{background:#eceff0;color:#5e696e}.inline{display:inline}.link-danger{border:0;background:none;color:var(--danger);cursor:pointer}.admin-form{display:flex;flex-direction:column;gap:15px}.admin-form label{display:flex;flex-direction:column;gap:6px;font-weight:650}.admin-form input,.admin-form select,.admin-form textarea{width:100%;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface)}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.admin-form .check{flex-direction:row;align-items:center}.admin-form .check input{width:auto}.admin-form details{border:1px solid var(--line);padding:14px;border-radius:var(--r-sm)}.notice{background:#dff5e9;color:#145d3b;padding:12px 16px;border-radius:var(--r-sm);margin-bottom:17px}.alert{background:#fee4e2;color:#912018;padding:10px;border-radius:var(--r-sm)}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.manage-list{list-style:none;padding:0}.manage-list li{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:11px 0}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--sky-50),var(--surface))}.login-card{width:min(420px,calc(100% - 32px));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;box-shadow:var(--sh-2);display:flex;flex-direction:column;gap:17px}.login-card label{display:flex;flex-direction:column;gap:6px}.login-card input{padding:11px;border:1px solid var(--line-2);border-radius:var(--r-sm)}
@media(max-width:960px){.header-row{height:auto;min-height:64px;flex-wrap:wrap;padding:11px 0}.menu-btn{display:block;margin-left:auto}.site-header nav{display:none;order:4;width:100%;flex-direction:column;align-items:stretch;padding:8px 0}.site-header nav.open{display:flex}.top-search{display:none}.hero-inner{grid-template-columns:1fr;padding:50px 42px 145px}.whale-panel{position:absolute;right:-80px;bottom:20px;opacity:.25}.channel-grid{grid-template-columns:repeat(2,1fr)}.channel-grid a{border-bottom:1px solid var(--line)}.card-grid{grid-template-columns:repeat(2,1fr)}.content-layout,.detail-layout{grid-template-columns:1fr}.sidebar{display:none}.admin-shell{grid-template-columns:1fr}.admin-nav{display:flex;overflow:auto;padding:8px}.admin-nav a{white-space:nowrap}.stat-grid,.form-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.wrap,.hero{width:calc(100% - 28px)}.hero{margin-top:14px}.hero-inner{padding:38px 22px 118px;min-height:440px}.hero h1{font-size:29px}.hero p{font-size:16px}.search-large{width:100%}.search-large input{width:0}.search-large button{white-space:nowrap;padding:12px}.whale-panel{width:230px;height:230px}.channel-grid,.card-grid,.card-grid.compact,.footer-grid,.admin-columns,.stat-grid,.form-grid{grid-template-columns:1fr}.home-section{padding:44px 0}.article-head h1{font-size:30px}.footer-bottom{flex-direction:column}.admin-main{padding:18px 13px}.admin-top{padding:0 13px}.toolbar{align-items:flex-start;gap:10px;flex-direction:column}.ad-mobile{display:block;position:sticky;bottom:0;z-index:30;margin:0;border-radius:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.article-summary{margin:22px 0 16px;padding:18px 20px;border-left:4px solid var(--sky-500);border-radius:0 var(--r) var(--r) 0;background:var(--brand-soft);color:var(--ink-soft);font-size:17px;line-height:1.85}.ad img{max-width:100%;height:auto;margin:auto;border-radius:var(--r-sm)}.ad>small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.ad-frame{display:block;width:100%;min-height:100px;border:0;background:transparent}
.rewrite-preview{max-height:620px;overflow:auto;padding:16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);white-space:pre-wrap;line-height:1.85}.original-preview{background:#fffdf7}.editor-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.prose table{font-size:15px}
.prose th,.prose td{white-space:normal;overflow-wrap:break-word}
.article-tags{margin:27px 0}.tags-label{font-size:13px;color:var(--muted);align-self:center;margin-right:2px}
.card h3,.card h3 a{overflow:hidden}
.card h3 a{display:block;white-space:nowrap;text-overflow:ellipsis}
.card p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rewrite-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0 0;font-size:13px;color:var(--body)}
.rewrite-meta span{display:inline-flex;gap:6px;align-items:baseline}
.rewrite-meta b{color:var(--muted);font-weight:600}
.manage-list .row-actions{display:flex;align-items:center;gap:13px;white-space:nowrap}
.manage-list .tag-use{font-size:13px;color:var(--muted)}
.manage-list .tag-use.is-idle{color:var(--line-2)}

/* 网盘频道：文章顶部横幅 + 正文底部资源块（默认露一条，其余折叠） */
.netdisk-banner{display:block;max-width:760px;margin:22px 0 6px;border-radius:var(--r-lg);overflow:hidden;line-height:0;transition:.2s}
.netdisk-banner-pic{display:block}
.netdisk-banner-img{display:block;width:100%;height:auto;aspect-ratio:800/180}
.netdisk-banner:hover{opacity:.94}
.netdisk-box{max-width:760px;margin:36px 0 10px;padding:24px 24px 16px;border:1px solid var(--brand-line);border-radius:var(--r-lg);background:var(--brand-soft)}
.netdisk-box h2{margin:0 0 8px;font-size:21px;letter-spacing:-.02em;color:var(--ink)}
.netdisk-tip{margin:0 0 14px;font-size:14px;line-height:1.75;color:var(--body)}
.netdisk-box>p:last-child{margin:16px 0 0;color:var(--muted)}
.netdisk-item{padding:15px 17px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface)}
.netdisk-item.is-primary{border-color:var(--sky-300)}
.netdisk-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.netdisk-head b{font-size:16px;letter-spacing:-.01em;color:var(--ink);overflow-wrap:anywhere}
.netdisk-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--r-xs);background:var(--brand);color:#fff;font-size:12px;font-weight:600;white-space:nowrap}
.netdisk-note{margin:0 0 11px;font-size:14px;line-height:1.75;color:var(--body);overflow-wrap:anywhere}
.netdisk-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.netdisk-actions .btn{margin:0}
.netdisk-code{font-size:14px;color:var(--body)}
.netdisk-code code{padding:2px 8px;border-radius:var(--r-xs);background:var(--sky-50);color:var(--ink);font-family:var(--mono);font-size:14px}
.netdisk-list{display:grid;gap:12px;margin-top:14px}
.netdisk-more{margin-top:16px}
.netdisk-more>summary{cursor:pointer;list-style:none;padding:6px 0;font-size:14px;font-weight:600;color:var(--sky-600)}
.netdisk-more>summary::-webkit-details-marker{display:none}
.netdisk-more>summary::before{content:"+ "}
.netdisk-more[open]>summary::before{content:"\2212 "}
.netdisk-more>summary:hover{color:var(--sky-700)}
@media(max-width:620px){.netdisk-box{padding:18px 16px 12px}.netdisk-box h2{font-size:19px}.netdisk-banner{margin:16px 0 4px}.netdisk-banner-img{aspect-ratio:420/150}}

/* ===== 科技感动效（2026-09-18）===== */
.hero-grid{position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 70% 62% at 50% 32%,#000 32%,transparent 78%);mask-image:radial-gradient(ellipse 70% 62% at 50% 32%,#000 32%,transparent 78%)}
.hero-glow{position:absolute;z-index:1;width:560px;height:560px;left:10%;top:-20%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.34),rgba(159,212,247,.2) 44%,transparent 72%);filter:blur(2px);animation:glow-drift 11s ease-in-out infinite alternate;pointer-events:none}
@keyframes glow-drift{from{transform:translate(0,0) scale(1)}to{transform:translate(8%,6%) scale(1.12)}}
.hero-waves{position:absolute;left:0;right:0;bottom:0;height:120px;z-index:2;pointer-events:none}
.hero-waves .wave{position:absolute;left:0;bottom:0;width:100%;height:120px}
.hero-waves .wave-back{fill:rgba(255,255,255,.14);animation:wave-float 7s ease-in-out infinite}
.hero-waves .wave-front{fill:rgba(255,255,255,.24);animation:wave-float 4.5s ease-in-out .8s infinite}
@keyframes wave-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.hero .kicker,.hero h1,.hero p,.hero .search-large{animation:rise-in .7s cubic-bezier(.2,.7,.3,1) both}
.hero .kicker{animation-delay:.05s}.hero h1{animation-delay:.15s}.hero p{animation-delay:.28s}.hero .search-large{animation-delay:.4s}
.whale-panel{animation:rise-in .7s cubic-bezier(.2,.7,.3,1) .45s both,whale-float 6s ease-in-out .45s infinite}
@keyframes rise-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes whale-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.site-header nav a::after{content:'';position:absolute;left:10px;right:10px;bottom:2px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--sky-400),var(--sky-600));transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.site-header nav a:hover::after,.site-header nav a.on::after{transform:scaleX(1)}
.btn{position:relative;overflow:hidden}
.btn::after{content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .55s ease;pointer-events:none}
.btn:hover::after{left:135%}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(18,114,200,.25)}
.btn:active{transform:translateY(1px);box-shadow:none}
.card{position:relative}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--sky-400),var(--sky-600));opacity:0;transition:opacity .25s ease;z-index:2}
.card:hover::before{opacity:1}
.card:hover{box-shadow:0 16px 42px rgba(10,41,66,.13),0 0 0 1px var(--brand-line);border-color:var(--sky-300)}
.card.reveal{opacity:0}
.card.reveal.in{opacity:1;transition:opacity .5s ease}
.editor-status{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--r-sm);padding:10px 14px;margin:0 0 14px;color:var(--body);font-size:14px;line-height:1.7}
.editor-status b{color:var(--ink)}
.editor-actions{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}
/* 采集候选库：固定列宽，避免「文章」列被长标题+摘要撑爆，把后面几列挤到屏幕外 */
.collector-table{table-layout:fixed}
.collector-table td:first-child,.collector-table td:nth-child(2),.collector-table td:nth-child(6){white-space:normal;overflow-wrap:anywhere}
.collector-table td:first-child b{display:block;margin-bottom:2px}
.collector-table td:first-child small{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.collector-table td:nth-child(6){white-space:normal}
.collector-table td:nth-child(6) a{display:inline-block;margin:0 10px 4px 0}
.collector-table td:nth-child(6) form{display:block;margin-top:4px}
.collector-table td:nth-child(6) .btn,.collector-table td:nth-child(6) .link-danger{padding:5px 11px;font-size:13px;margin:0 6px 4px 0}

/* 内链增强：标签锚文本去 # 后由 CSS 补回井号，保持视觉不变、DOM 里的锚文本干净 */
.article-tags a::before{content:"#"}
/* 标签页底部的「相关标签」区块 */
.rel-tags{margin-top:44px;border-top:1px solid var(--line);padding-top:26px}
.rel-tags h2{color:var(--ink);margin:0}
.rel-tags .tags{margin:16px 0 0}

/* 正文内链可见化：全局 a{color:inherit;text-decoration:none} 让正文里的链接
   和普通文字长得一模一样 —— 没人点得到，也容易被搜索引擎判成隐藏链接。
   自动内链和手动内链都要靠这条才看得见。 */
.prose a{color:var(--brand);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose a:hover{color:var(--ink);text-decoration-thickness:2px}
