@charset "UTF-8";
/* ---------- 设计令牌（参考 newapi.ai：暖灰中性色 + 蓝色主色 + 胶囊按钮） ---------- */
:root{
 --background:#ffffff;--foreground:#2a2a25;
 --card:#ffffff;--secondary:#f4f4f1;--muted-foreground:#77776f;
 --border:#e9e9e4;--input:#e3e3dd;--ring:#3b82f6;
 --primary:#2563eb;--primary-hover:#1d4ed8;--primary-foreground:#fff;
 --primary-soft:#eff4ff;--primary-soft-fg:#1d4ed8;
 --success:#059669;--success-hover:#047857;
 --info:#0891b2;--info-hover:#0e7490;
 --warning:#f59e0b;--warning-hover:#d97706;--warning-soft:#fffbeb;--warning-soft-fg:#b45309;
 --danger:#e11d48;--danger-hover:#be123c;--danger-soft:#fff1f3;--danger-soft-fg:#be123c;
 --radius:20px;
 --card-glow:inset 0 -20px 80px -20px rgb(42 42 37 / .09);
 --shadow-sm:0 1px 2px 0 rgb(42 42 37 / .05);
 --shadow-float:inset 0 1px 0 rgb(255 255 255 / .5),0 8px 30px -10px rgb(42 42 37 / .22);
 --glass:rgb(255 255 255 / .62);--glass-border:rgb(42 42 37 / .08);
 --bg:#fafaf8
}
body.dark{
 color-scheme:dark;
 --background:#0a0a0b;--foreground:#ececea;
 --card:#121214;--secondary:#1c1c1f;--muted-foreground:#9d9d97;
 --border:#26262a;--input:#2e2e33;--ring:#60a5fa;
 --primary:#3b82f6;--primary-hover:#2563eb;
 --primary-soft:#14213d;--primary-soft-fg:#93c5fd;
 --success:#10b981;--success-hover:#059669;
 --info:#06b6d4;--info-hover:#0891b2;
 --warning-soft:#2d2008;--warning-soft-fg:#fcd34d;
 --danger:#f43f5e;--danger-hover:#e11d48;--danger-soft:#2c1118;--danger-soft-fg:#fda4af;
 --card-glow:inset 0 -20px 80px -20px rgb(255 255 255 / .05);
 --shadow-float:inset 0 1px 0 rgb(255 255 255 / .06),0 8px 30px -10px rgb(0 0 0 / .7);
 --glass:rgb(24 24 27 / .62);--glass-border:rgb(255 255 255 / .09);
 --bg:#141416
}
body{--muted:var(--muted-foreground);--paper:var(--card);--text:var(--foreground);--accent:var(--primary);--soft:var(--primary-soft)}

/* ---------- 基础 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;overflow-x:clip;background:var(--background);color:var(--foreground);font:15px/1.7 "Plus Jakarta Sans","Noto Sans SC","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{color:var(--primary)}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:#3b82f633}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
svg.icon{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 按钮（胶囊形） ---------- */
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 18px;border:1px solid var(--input);border-radius:999px;background:var(--card);color:var(--foreground);font-size:14px;font-weight:500;line-height:1.4;white-space:nowrap;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,box-shadow .2s,transform .15s}
button:hover,.button:hover{background:var(--secondary);color:var(--foreground)}
button:active,.button:active{transform:scale(.97)}
button:disabled,.button[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}
.button,.primary,.btn-primary,button:where([type=submit]){background:var(--primary);border-color:transparent;color:#fff;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--primary) 80%,transparent)}
.button:hover,.primary:hover,.btn-primary:hover,button:where([type=submit]):hover{background:var(--primary-hover);color:#fff}
.btn-success{background:var(--success);border-color:transparent;color:#fff;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--success) 80%,transparent)}
.btn-success:hover{background:var(--success-hover);color:#fff}
.btn-info{background:var(--info);border-color:transparent;color:#fff;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--info) 80%,transparent)}
.btn-info:hover{background:var(--info-hover);color:#fff}
.btn-warning{background:var(--warning);border-color:transparent;color:#1c1917;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--warning) 80%,transparent)}
.btn-warning:hover{background:var(--warning-hover);color:#1c1917}
.btn-danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 22%,transparent);color:var(--danger-soft-fg)}
.btn-danger:hover{background:var(--danger);border-color:transparent;color:#fff}
.btn-ghost{background:transparent;border-color:transparent;box-shadow:none}
.btn-ghost:hover{background:color-mix(in srgb,currentColor 10%,transparent);color:inherit}
.btn-light{background:#fff;border-color:transparent;color:#0a0a0a;box-shadow:0 8px 24px -10px rgb(255 255 255 / .5)}
.btn-light:hover{background:#e9e9e6;color:#0a0a0a}

/* ---------- 悬浮胶囊导航 ---------- */
header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;height:76px;margin-bottom:-76px;padding:0 max(20px,calc((100vw - 1200px)/2));pointer-events:none}
header>*{pointer-events:auto}
header .brand,header nav,header .header-tools{display:flex;align-items:center;height:46px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass);box-shadow:var(--shadow-float);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);transition:background-color .3s,border-color .3s,color .3s}
header .brand{gap:9px;padding:0 18px 0 8px;font-size:15px;font-weight:700;white-space:nowrap}
header .brand:hover{color:inherit}
.brandmark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:conic-gradient(from 200deg,#60a5fa,#a78bfa,#f472b6,#60a5fa);color:#fff}
.brandmark svg.icon{width:15px;height:15px}
header nav{gap:2px;margin:0 auto;padding:4px;font-size:14px}
header nav a{padding:6px 16px;border-radius:999px;font-weight:500;color:color-mix(in srgb,currentColor 70%,transparent);transition:color .15s,background-color .15s}
header nav a:hover{color:inherit}
header nav a.active{background:color-mix(in srgb,currentColor 9%,transparent);color:inherit}
.header-tools{gap:2px;padding:4px}
.header-search{position:relative;display:flex;align-items:center}
.header-search svg.icon{position:absolute;left:12px;opacity:.6;pointer-events:none}
.header-search input{width:190px;height:36px;padding:0 38px 0 34px;border:0;border-radius:999px;background:color-mix(in srgb,currentColor 6%,transparent);font-size:13px;box-shadow:none}
.header-search input::placeholder{color:inherit;opacity:.55}
.header-search input:focus{box-shadow:0 0 0 2px var(--ring)}
.header-search kbd{position:absolute;right:10px;padding:0 6px;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:6px;font:500 11px ui-monospace,Consolas,monospace;opacity:.6;pointer-events:none}
#theme{width:36px;min-height:36px;padding:0;color:inherit}
#theme .moon{display:none}
body.dark #theme .sun{display:none}
body.dark #theme .moon{display:block}

/* ---------- 主体 ---------- */
main{max-width:1200px;min-height:75vh;margin:auto;padding:104px 20px 80px}
main:has(>.hero){padding-top:0}
h1{font-size:30px;line-height:1.3;letter-spacing:-.02em;font-weight:650;margin:12px 0}
h2{font-size:19px;letter-spacing:-.01em;font-weight:650;margin:8px 0}
p{margin:10px 0}
.muted{color:var(--muted-foreground)}
.section-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 14px;border-radius:999px;background:var(--primary);color:#fff;font-size:13px;font-weight:500}
.count{display:inline-flex;align-items:center;padding:0 10px;margin-left:6px;border-radius:999px;background:var(--primary-soft);color:var(--primary-soft-fg);font-size:14px;font-weight:600;vertical-align:middle;letter-spacing:0}

/* ---------- 首页 Hero（深色星空 + 光环） ---------- */
.hero{position:relative;isolation:isolate;margin:0 calc(50% - 50vw);padding:150px max(24px,calc((100vw - 1200px)/2 + 20px)) 150px;min-height:640px;overflow:hidden;color:#f5f5f4;background:#050506}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(1px 1px at 12% 22%,#fff9,transparent),radial-gradient(1px 1px at 28% 68%,#fff7,transparent),radial-gradient(1.5px 1.5px at 42% 14%,#fffb,transparent),radial-gradient(1px 1px at 55% 82%,#fff6,transparent),radial-gradient(1px 1px at 68% 30%,#fff8,transparent),radial-gradient(1.5px 1.5px at 83% 74%,#fff9,transparent),radial-gradient(1px 1px at 91% 12%,#fff7,transparent),radial-gradient(1px 1px at 6% 88%,#fff6,transparent),radial-gradient(1px 1px at 36% 42%,#fff5,transparent),radial-gradient(1px 1px at 76% 52%,#fff5,transparent),radial-gradient(60% 50% at 80% 45%,#4c1d9533,transparent 70%),radial-gradient(40% 40% at 10% 0%,#1e3a8a33,transparent 70%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:140px;z-index:-1;background:linear-gradient(to bottom,transparent,var(--background))}
.hero-orb{position:absolute;z-index:-1;right:max(-120px,calc((100vw - 1200px)/2 - 120px));top:46%;width:min(620px,60vw);aspect-ratio:1;transform:translateY(-50%);pointer-events:none}
.hero-orb::before{content:"";position:absolute;inset:6%;border-radius:50%;background:conic-gradient(from 210deg,#f0abfc,#c084fc 18%,#818cf8 30%,#67e8f9 45%,#e0f2fe 52%,#f0abfc 68%,#f9a8d4 85%,#f0abfc);-webkit-mask:radial-gradient(circle,transparent 54%,#000 57%,#000 59%,transparent 67%);mask:radial-gradient(circle,transparent 54%,#000 57%,#000 59%,transparent 67%);filter:blur(9px);opacity:.75;animation:orb-spin 40s linear infinite}
.hero-orb::after{content:"";position:absolute;left:-30%;right:-30%;top:46.5%;height:7%;border-radius:50%;background:radial-gradient(ellipse at center,#e0f2fe 0%,#a5f3fcaa 18%,#c4b5fd66 38%,#f0abfc22 58%,transparent 72%);filter:blur(6px)}
.hero-orb span{position:absolute;inset:25%;border-radius:50%;background:#000;box-shadow:0 0 0 1px #a5f3fc55,0 0 50px 6px #a78bfa40,inset 0 0 40px #000}
@keyframes orb-spin{to{transform:rotate(1turn)}}
@media(prefers-reduced-motion:reduce){.hero-orb::before{animation:none}}
.hero-inner{position:relative;max-width:640px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 14px;border:1px solid rgb(255 255 255 / .14);border-radius:999px;background:rgb(255 255 255 / .05);font-size:13px;color:#d6d3d1}
.hero-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#c4b5fd;box-shadow:0 0 8px #c4b5fd}
.hero h1{margin:26px 0 22px;font-size:clamp(40px,6vw,66px);line-height:1.12;letter-spacing:-.03em;font-weight:650;background:linear-gradient(#fff 0,#fff 50%,rgb(255 255 255 / .55) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{max-width:520px;margin:0;font-size:17px;line-height:1.75;color:#a8a29e}
.hero p strong{color:#e7e5e4;font-weight:500}
.search{display:flex;align-items:center;gap:6px;max-width:560px;margin-top:34px;padding:5px 5px 5px 18px;border:1px solid rgb(255 255 255 / .16);border-radius:999px;background:rgb(255 255 255 / .06);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .2s,background-color .2s}
.search:focus-within{border-color:rgb(255 255 255 / .4);background:rgb(255 255 255 / .09)}
.search>svg.icon{width:18px;height:18px;opacity:.6}
.search input{flex:1;min-width:0;border:0;background:transparent;padding:9px 4px;color:#fff;box-shadow:none}
.search input::placeholder{color:#a8a29e}
.search input:focus{box-shadow:none}
.search button{min-height:42px;padding:0 22px}
.quick-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;font-size:13px;color:#a8a29e}
.quick-links a{display:inline-flex;align-items:center;gap:7px;padding:5px 14px;border:1px solid rgb(255 255 255 / .14);border-radius:999px;background:rgb(255 255 255 / .04);color:#e7e5e4;transition:border-color .15s,background-color .15s}
.quick-links a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c,#93c5fd)}
.quick-links a:hover{border-color:rgb(255 255 255 / .35);background:rgb(255 255 255 / .09);color:#fff}
.hero-stats{display:flex;gap:0;margin-top:52px}
.hero-stats div{padding:0 32px;border-left:1px solid rgb(255 255 255 / .12)}
.hero-stats div:first-child{padding-left:0;border-left:0}
.hero-stats strong{display:block;font-size:30px;font-weight:650;line-height:1.2;color:#fff;letter-spacing:-.02em}
.hero-stats span{font-size:12px;letter-spacing:.08em;color:#a8a29e}

/* ---------- 工具目录 ---------- */
.catalog-head{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:24px}
.catalog-head h2{margin:18px 0 10px;font-size:clamp(28px,4vw,42px);line-height:1.2;letter-spacing:-.025em;font-weight:650}
.catalog-head p{margin:0;font-size:16px}
.catalog-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin:32px 0 28px}
#favorites{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 30%,transparent);color:var(--warning-soft-fg)}
#favorites:hover,#favorites[aria-pressed=true]{background:var(--warning);border-color:transparent;color:#1c1917}
.categories{display:flex;flex-wrap:wrap;gap:2px;width:fit-content;max-width:100%;margin:20px 0;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--bg)}
.catalog-bar .categories{margin:0}
.categories a{display:inline-flex;align-items:center;gap:7px;padding:6px 16px;border-radius:999px;color:var(--muted-foreground);font-size:13px;font-weight:500;white-space:nowrap;transition:color .15s,background-color .15s,box-shadow .15s}
.categories a:hover{color:var(--foreground)}
.categories a.active{background:var(--card);color:var(--foreground);box-shadow:0 1px 3px rgb(42 42 37 / .12),0 0 0 1px var(--border)}
.categories a[data-c]::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.cat-webmaster{--c:#7c3aed}.cat-calculate{--c:#2563eb}.cat-live{--c:#ea580c}.cat-health{--c:#e11d48}.cat-study{--c:#059669}.cat-recreation{--c:#db2777}
body.dark .cat-webmaster{--c:#a78bfa}body.dark .cat-calculate{--c:#60a5fa}body.dark .cat-live{--c:#fb923c}body.dark .cat-health{--c:#fb7185}body.dark .cat-study{--c:#34d399}body.dark .cat-recreation{--c:#f472b6}

/* ---------- 页脚 ---------- */
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:32px max(20px,calc((100vw - 1200px)/2));border-top:1px solid var(--border);font-size:13px;color:var(--muted-foreground)}
footer strong{color:var(--foreground);font-size:14px}
footer p{margin:4px 0 0}
footer a{margin-left:20px}

/* ---------- 工具页 ---------- */
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 20px;font-size:13px;color:var(--muted-foreground)}
.breadcrumb .sep{opacity:.5}
.breadcrumb span:last-child{color:var(--foreground);font-weight:500}
.tool-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.panel{padding:32px;margin-bottom:20px}
.panel h1{font-size:28px;margin:16px 0 8px}
.panel h2{font-size:16px}
.tool-layout>aside{position:sticky;top:96px}
.tool-layout>aside .panel{padding:22px}
.tool-layout>aside .panel h2{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.tool-layout>aside .panel h2 svg.icon{color:var(--primary)}
.tool-layout>aside p{font-size:13px;color:var(--muted-foreground)}
.aside-link{display:flex;align-items:center;justify-content:space-between;margin:2px -12px;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:500}
.aside-link:hover{background:var(--primary-soft);color:var(--primary-soft-fg)}

/* ---------- 表单 ---------- */
textarea,input,select{max-width:100%;padding:9px 14px;border:1px solid var(--input);border-radius:12px;background:var(--card);color:var(--foreground);transition:border-color .15s,box-shadow .15s}
textarea:focus,input:focus,select:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 20%,transparent);outline:none}
input[type=color]{padding:3px;height:40px}
input[type=checkbox],input[type=radio]{accent-color:var(--primary)}
textarea{display:block;width:100%;min-height:160px;resize:vertical;background:var(--bg);font:14px/1.7 ui-monospace,"Cascadia Code",Consolas,monospace}
label{display:block;margin:18px 0 7px;font-size:13px;font-weight:500;color:var(--foreground)}
label input,label select{display:block;width:100%;margin-top:7px;font-weight:400}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.output{min-height:120px;padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--bg);white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,Consolas,monospace}
#status,.message{color:var(--success);font-size:14px;font-weight:500;white-space:pre-wrap}
#status:not(:empty)::before{content:"✓ "}
#status.error::before{content:"⚠ "}
.error{color:var(--danger)!important}
.empty{grid-column:1/-1;padding:48px;text-align:center}
.article{white-space:pre-wrap}

/* ---------- 后台 ---------- */
.admin-shell{max-width:1100px;margin:50px auto;padding:20px}
.admin-bar{display:flex;align-items:center;gap:12px;justify-content:space-between}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.admin-list{max-height:650px;overflow:auto}
.admin-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:12px 0}
.admin-row span{flex:1}
.badge{font-size:11px;color:var(--muted-foreground)}
[hidden]{display:none!important}
#login{max-width:430px;margin:80px auto}
#timer-display{font-size:50px;text-align:center;font-variant-numeric:tabular-nums;padding:20px}
.file-input{width:100%}
canvas{max-width:100%}

/* ---------- 响应式 ---------- */
@media(max-width:1100px){.header-search input{width:150px}.hero-orb{opacity:.55}}
@media(max-width:1000px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.header-search{display:none}.tool-layout{grid-template-columns:minmax(0,1fr)}.tool-layout>aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:16px}}
@media(max-width:760px){header{position:relative;height:auto;margin-bottom:0;flex-wrap:wrap;gap:8px;padding:10px 12px}body:has(.hero) header{margin-bottom:-122px}header nav{order:3;width:100%;margin:0;overflow-x:auto}header nav a{padding:5px 12px;white-space:nowrap}.header-tools{margin-left:auto}main{padding:24px 15px 50px}.hero{padding:150px 20px 110px;min-height:0}.hero-orb{width:420px;right:-200px;top:30%;opacity:.4}.hero-stats div{padding:0 18px}.hero-stats strong{font-size:22px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tool-card{padding:16px}.panel{padding:20px}.admin-grid{grid-template-columns:1fr}.tool-layout>aside{grid-template-columns:1fr}footer{display:block;padding:24px 20px}footer a{margin:0 15px 0 0}.categories{width:100%;flex-wrap:nowrap;overflow-x:auto}.search button{padding:0 14px}}
@media(max-width:420px){.grid{grid-template-columns:1fr}}


.module-frame{width:100%;height:640px;border:1px solid var(--border);border-radius:8px;background:#fff}

.dictionary-search{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.dictionary-search label:first-child{flex:1;min-width:180px}.dictionary-search button{margin-bottom:7px}.dictionary-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dictionary-card{border:1px solid var(--border);padding:15px;border-radius:8px}.dictionary-card h2{font-size:25px}.dictionary-card small{font-size:14px;color:var(--muted)}.dictionary-summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px}.dictionary-character{font-size:64px!important}.dictionary-meta{display:grid;grid-template-columns:110px 1fr;gap:8px}.dictionary-meta dt{color:var(--muted)}.dictionary-meta dd{margin:0}.definition{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:2}.dictionary-source{font-size:12px;border-top:1px solid var(--border);padding-top:15px}.dictionary-detail summary{cursor:pointer;margin:20px 0}@media(max-width:600px){.dictionary-results{grid-template-columns:1fr}}

.sentence-results{padding-left:24px}.sentence-results li{padding:12px 16px;margin-bottom:12px}.sentence-results p{margin:0 0 8px}.sentence-results small{font-size:12px}

.dictionary-character.english-word{font-size:36px!important;overflow-wrap:anywhere}

.content-portrait{width:140px;height:180px;object-fit:cover;float:right;margin:0 0 16px 24px;border-radius:8px}.content-article::after{content:"";display:block;clear:both}@media(max-width:420px){.content-portrait{width:100px;height:130px;margin-left:12px}}

.reference-section{padding:20px 0;border-top:1px solid var(--border);scroll-margin-top:24px}.reference-image{display:block;max-width:100%;height:auto;margin:16px 0}.reference-top{display:inline-block;margin-top:12px;font-size:13px}.reference-page .categories{flex-wrap:wrap}

.table-scroll{max-width:100%;overflow-x:auto;margin:16px 0;border:1px solid var(--border);border-radius:8px}.reference-table{width:100%;border-collapse:collapse;min-width:640px;text-align:left;font-size:14px}.reference-table caption{padding:12px;font-weight:700;text-align:left}.reference-table th,.reference-table td{padding:11px 14px;vertical-align:top;border-top:1px solid var(--border)}.reference-table th{background:var(--soft);color:var(--accent);white-space:nowrap}.reference-table tr:nth-child(even){background:var(--bg)}.reference-filter{margin:16px 0}.reference-query{max-width:440px}

.periodic-scroll{max-width:100%;overflow-x:auto;margin:20px 0;border:1px solid var(--border);border-radius:8px;padding:10px}.periodic-grid{display:grid;grid-template-columns:30px repeat(18,minmax(44px,1fr));grid-template-rows:24px repeat(7,minmax(66px,auto)) 15px repeat(2,minmax(66px,auto));min-width:950px;gap:4px}.element-cell{display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid var(--border);border-radius:5px;padding:4px 1px;color:#182333;font-size:13px;min-width:0}.element-cell:hover{outline:2px solid var(--accent);outline-offset:0}.element-cell small{font-size:10px;align-self:flex-start;margin-left:4px}.element-cell strong{font-size:20px;line-height:1.2}.periodic-group,.periodic-period,.series-label,.series-placeholder{display:grid;place-items:center;font-size:12px}.series-label{grid-column:1 / span 3}.lanth-label{grid-row:10}.act-label{grid-row:11}.lanth-placeholder{grid-row:7;grid-column:4}.act-placeholder{grid-row:8;grid-column:4}.element-legend{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.element-legend span{padding:3px 9px;border-radius:4px;font-size:12px;color:#182333}.kind-alkali{background:#f8d8d4}.kind-alkaline{background:#f6e8bf}.kind-transition{background:#f8dec8}.kind-post{background:#e4e6c8}.kind-metalloid{background:#d1e8ca}.kind-nonmetal{background:#c9e9dd}.kind-halogen{background:#cae6ed}.kind-noble{background:#d8dff4}.kind-lanthanide{background:#e4d8f0}.kind-actinide{background:#f0d7e3}.element-properties{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2fr);margin:20px 0}.element-properties dt,.element-properties dd{margin:0;padding:11px 12px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.element-properties dt{color:var(--muted);background:var(--bg)}#element-detail{scroll-margin-top:24px}
.position-1{grid-row:2;grid-column:2}.position-2{grid-row:2;grid-column:19}.position-3{grid-row:3;grid-column:2}.position-4{grid-row:3;grid-column:3}.position-5{grid-row:3;grid-column:14}.position-6{grid-row:3;grid-column:15}.position-7{grid-row:3;grid-column:16}.position-8{grid-row:3;grid-column:17}.position-9{grid-row:3;grid-column:18}.position-10{grid-row:3;grid-column:19}.position-11{grid-row:4;grid-column:2}.position-12{grid-row:4;grid-column:3}.position-13{grid-row:4;grid-column:14}.position-14{grid-row:4;grid-column:15}.position-15{grid-row:4;grid-column:16}.position-16{grid-row:4;grid-column:17}.position-17{grid-row:4;grid-column:18}.position-18{grid-row:4;grid-column:19}.position-19{grid-row:5;grid-column:2}.position-20{grid-row:5;grid-column:3}.position-21{grid-row:5;grid-column:4}.position-22{grid-row:5;grid-column:5}.position-23{grid-row:5;grid-column:6}.position-24{grid-row:5;grid-column:7}.position-25{grid-row:5;grid-column:8}.position-26{grid-row:5;grid-column:9}.position-27{grid-row:5;grid-column:10}.position-28{grid-row:5;grid-column:11}.position-29{grid-row:5;grid-column:12}.position-30{grid-row:5;grid-column:13}.position-31{grid-row:5;grid-column:14}.position-32{grid-row:5;grid-column:15}.position-33{grid-row:5;grid-column:16}.position-34{grid-row:5;grid-column:17}.position-35{grid-row:5;grid-column:18}.position-36{grid-row:5;grid-column:19}.position-37{grid-row:6;grid-column:2}.position-38{grid-row:6;grid-column:3}.position-39{grid-row:6;grid-column:4}.position-40{grid-row:6;grid-column:5}.position-41{grid-row:6;grid-column:6}.position-42{grid-row:6;grid-column:7}.position-43{grid-row:6;grid-column:8}.position-44{grid-row:6;grid-column:9}.position-45{grid-row:6;grid-column:10}.position-46{grid-row:6;grid-column:11}.position-47{grid-row:6;grid-column:12}.position-48{grid-row:6;grid-column:13}.position-49{grid-row:6;grid-column:14}.position-50{grid-row:6;grid-column:15}.position-51{grid-row:6;grid-column:16}.position-52{grid-row:6;grid-column:17}.position-53{grid-row:6;grid-column:18}.position-54{grid-row:6;grid-column:19}.position-55{grid-row:7;grid-column:2}.position-56{grid-row:7;grid-column:3}.position-57{grid-row:10;grid-column:4}.position-58{grid-row:10;grid-column:5}.position-59{grid-row:10;grid-column:6}.position-60{grid-row:10;grid-column:7}.position-61{grid-row:10;grid-column:8}.position-62{grid-row:10;grid-column:9}.position-63{grid-row:10;grid-column:10}.position-64{grid-row:10;grid-column:11}.position-65{grid-row:10;grid-column:12}.position-66{grid-row:10;grid-column:13}.position-67{grid-row:10;grid-column:14}.position-68{grid-row:10;grid-column:15}.position-69{grid-row:10;grid-column:16}.position-70{grid-row:10;grid-column:17}.position-71{grid-row:10;grid-column:18}.position-72{grid-row:7;grid-column:5}.position-73{grid-row:7;grid-column:6}.position-74{grid-row:7;grid-column:7}.position-75{grid-row:7;grid-column:8}.position-76{grid-row:7;grid-column:9}.position-77{grid-row:7;grid-column:10}.position-78{grid-row:7;grid-column:11}.position-79{grid-row:7;grid-column:12}.position-80{grid-row:7;grid-column:13}.position-81{grid-row:7;grid-column:14}.position-82{grid-row:7;grid-column:15}.position-83{grid-row:7;grid-column:16}.position-84{grid-row:7;grid-column:17}.position-85{grid-row:7;grid-column:18}.position-86{grid-row:7;grid-column:19}.position-87{grid-row:8;grid-column:2}.position-88{grid-row:8;grid-column:3}.position-89{grid-row:11;grid-column:4}.position-90{grid-row:11;grid-column:5}.position-91{grid-row:11;grid-column:6}.position-92{grid-row:11;grid-column:7}.position-93{grid-row:11;grid-column:8}.position-94{grid-row:11;grid-column:9}.position-95{grid-row:11;grid-column:10}.position-96{grid-row:11;grid-column:11}.position-97{grid-row:11;grid-column:12}.position-98{grid-row:11;grid-column:13}.position-99{grid-row:11;grid-column:14}.position-100{grid-row:11;grid-column:15}.position-101{grid-row:11;grid-column:16}.position-102{grid-row:11;grid-column:17}.position-103{grid-row:11;grid-column:18}.position-104{grid-row:8;grid-column:5}.position-105{grid-row:8;grid-column:6}.position-106{grid-row:8;grid-column:7}.position-107{grid-row:8;grid-column:8}.position-108{grid-row:8;grid-column:9}.position-109{grid-row:8;grid-column:10}.position-110{grid-row:8;grid-column:11}.position-111{grid-row:8;grid-column:12}.position-112{grid-row:8;grid-column:13}.position-113{grid-row:8;grid-column:14}.position-114{grid-row:8;grid-column:15}.position-115{grid-row:8;grid-column:16}.position-116{grid-row:8;grid-column:17}.position-117{grid-row:8;grid-column:18}.position-118{grid-row:8;grid-column:19}.pg-1{grid-row:1;grid-column:2}.pg-2{grid-row:1;grid-column:3}.pg-3{grid-row:1;grid-column:4}.pg-4{grid-row:1;grid-column:5}.pg-5{grid-row:1;grid-column:6}.pg-6{grid-row:1;grid-column:7}.pg-7{grid-row:1;grid-column:8}.pg-8{grid-row:1;grid-column:9}.pg-9{grid-row:1;grid-column:10}.pg-10{grid-row:1;grid-column:11}.pg-11{grid-row:1;grid-column:12}.pg-12{grid-row:1;grid-column:13}.pg-13{grid-row:1;grid-column:14}.pg-14{grid-row:1;grid-column:15}.pg-15{grid-row:1;grid-column:16}.pg-16{grid-row:1;grid-column:17}.pg-17{grid-row:1;grid-column:18}.pg-18{grid-row:1;grid-column:19}.pp-1{grid-row:2;grid-column:1}.pp-2{grid-row:3;grid-column:1}.pp-3{grid-row:4;grid-column:1}.pp-4{grid-row:5;grid-column:1}.pp-5{grid-row:6;grid-column:1}.pp-6{grid-row:7;grid-column:1}.pp-7{grid-row:8;grid-column:1}

.tool-layout-wide{grid-template-columns:minmax(0,1fr)}.tool-layout-wide>aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.element-result{display:flex;flex-direction:column;gap:7px}.element-result span{font-size:13px;color:var(--muted)}@media(max-width:700px){.tool-layout-wide>aside{grid-template-columns:minmax(0,1fr)}}

.content-illustration{display:block;max-width:100%;height:auto;margin:12px auto 22px;border-radius:8px}
.content-totem{width:150px;height:150px;object-fit:contain;float:right;margin:0 0 16px 24px;border-radius:8px;background:#faf7f0}@media(max-width:420px){.content-totem{width:96px;height:96px;margin-left:12px}}

.content-table th,.content-table td{white-space:pre-line;overflow-wrap:anywhere;min-width:7rem;max-width:22rem}.content-table caption{caption-side:top}

.content-jumps{display:flex;flex-wrap:wrap;gap:8px 14px;max-width:100%;margin:20px 0;padding:12px 14px;background:var(--soft);border-radius:8px;font-size:14px}.content-jumps a{color:var(--accent)}[id^="content-"]{scroll-margin-top:24px}

.reading-mode{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.reading-mode-label{display:inline-block;padding:.55rem 1.2rem;margin:.3rem .3rem .8rem 0;border:1px solid var(--border);border-radius:9px;cursor:pointer}.reading-mode:checked+.reading-mode-label{background:var(--accent);color:var(--paper);border-color:var(--accent)}.reading-mode:focus-visible+.reading-mode-label{outline:2px solid var(--accent);outline-offset:3px}.reading-lines{list-style:none;padding:0;margin:0}.reading-line{padding:1rem 0;border-bottom:1px solid var(--border);break-inside:avoid}.reading-text{font-size:clamp(1.05rem,3vw,1.4rem);line-height:2.8;margin:.2rem 0;letter-spacing:.1em}.reading-text ruby{margin-right:.08em}.reading-text rt{display:none;font-size:.56em;letter-spacing:0;font-weight:400;color:var(--muted)}.reading-translation{display:none;white-space:pre-line;line-height:1.9;margin:.4rem 0;color:var(--muted)}#reading-pinyin:checked~.reference-section .reading-text rt,#reading-translation:checked~.reference-section .reading-text rt{display:ruby-text}#reading-translation:checked~.reference-section .reading-translation{display:block}

.content-navigation .button{white-space:normal;max-width:100%;min-width:0;overflow-wrap:anywhere}

.content-facts{display:grid;grid-template-columns:minmax(105px,150px) minmax(0,1fr);margin:22px 0}.content-facts dt,.content-facts dd{margin:0;padding:12px 10px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.content-facts dt{color:var(--muted)}.content-facts dd a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}@media(max-width:480px){.content-facts{grid-template-columns:105px minmax(0,1fr)}.content-facts dt,.content-facts dd{padding:10px 6px}}

.feedback-panel{max-width:760px;margin:auto}.feedback-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.feedback-record{padding:20px 0;border-top:1px solid var(--border)}.feedback-record>a{color:var(--accent);overflow-wrap:anywhere}.feedback-record .definition{margin:15px 0}

.content-search-panel{margin:20px 0}.content-search-panel>summary{cursor:pointer;color:var(--accent);font-weight:600;padding:10px 0}.content-search-panel[open]{padding-bottom:8px;border-bottom:1px solid var(--border)}
#selected-port-list,#port-lookup-list{max-height:25rem;overflow:auto}#port-routes .admin-row{gap:1rem}#port-routes .admin-row span{overflow-wrap:anywhere;min-width:0}

/* 黄历 */
.hl-nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.hl-nav .button{padding:7px 14px}
.hl-nav .button[aria-disabled=true]{opacity:.4;pointer-events:none}
.hl-picker{display:flex;gap:8px;align-items:flex-end;margin-left:auto}
.hl-picker label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.hl-picker input{border:1px solid var(--border);border-radius:8px;padding:7px 10px;background:var(--paper);color:var(--text)}
.hl-hero{background:var(--soft);border-radius:12px;padding:18px 20px;margin:0 0 16px}
.hl-solar{margin:0;font-size:26px;font-weight:750;letter-spacing:.5px}
.hl-solar span{font-size:15px;font-weight:500;color:var(--muted);margin-left:8px}
.hl-lunar{margin:6px 0 0;font-size:19px}
.hl-term{font-style:normal;background:var(--accent);color:#fff;border-radius:999px;padding:2px 10px;font-size:13px;margin-left:8px;vertical-align:2px}
.hl-meta{margin:6px 0 0;color:var(--muted);font-size:14px}
.hl-fest{margin:6px 0 0;font-size:14px}
.hl-yiji{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}
.hl-yi,.hl-ji{border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--paper)}
.hl-yi h2,.hl-ji h2{margin:0 0 10px;font-size:17px;display:flex;align-items:center;gap:8px}
.hl-yi h2{color:#c0392b}
.hl-ji h2{color:#1f7a4d}
.hl-yi ul,.hl-ji ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.hl-yi li,.hl-ji li{border-radius:999px;padding:4px 12px;font-size:14px;background:var(--bg)}
.hl-yi li{background:#fdecea;color:#a5281b}
.hl-ji li{background:#e8f6ee;color:#166b45}
body.dark .hl-yi li{background:#3a2320;color:#f0a79c}
body.dark .hl-ji li{background:#1e3329;color:#8fd6b4}
.content-table td,.content-table th{min-width:200px}.hl-table th[scope=row]{white-space:nowrap;background:var(--bg)}
.hl-table caption{text-align:left}
.hl-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.hl-grid2>*,.hl-yiji>*{min-width:0}
.hl-card{padding:16px 18px}
.hl-card h2{margin:0 0 10px;font-size:17px}
.hl-card p{margin:6px 0}
.hl-note{font-size:13px;margin:10px 0 0}
.hl-hours td,.hl-hours th{font-size:13px;white-space:nowrap}.hl-hours td:nth-last-child(-n+2){white-space:normal;min-width:150px;max-width:240px}
.hl-hours th[scope=row]{position:sticky;left:0;background:var(--paper);z-index:1}
.hl-luck-吉{color:#c0392b;font-weight:700}
.hl-luck-凶{color:#1f7a4d}
.hl-calendar td{vertical-align:top;padding:6px 8px;height:74px;min-width:88px}
.hl-day a{display:flex;flex-direction:column;gap:2px;height:100%}
.hl-day strong{font-size:16px}
.hl-day span{font-size:12px;color:var(--muted)}
.hl-day em{font-size:12px;font-style:normal;color:var(--accent)}
.hl-out{opacity:.42}
.hl-today{background:var(--soft);border-radius:8px}
.hl-today strong{color:var(--accent)}
@media(max-width:760px){.hl-yiji{grid-template-columns:1fr}.hl-grid2{grid-template-columns:1fr}.hl-solar{font-size:21px}.hl-picker{margin-left:0;width:100%}}
@media(max-width:760px){.hl-calendar{min-width:0}.hl-calendar th,.hl-calendar td{padding:4px 2px;min-width:0;height:auto;font-size:12px}.hl-calendar .hl-day strong{font-size:14px}.hl-calendar .hl-day span,.hl-calendar .hl-day em{font-size:10px;line-height:1.35;white-space:normal}.hl-calendar caption{font-size:13px}}

.hl-warn{margin:6px 0;padding:10px 14px;border-radius:8px;background:#fdecea;color:#a5281b}
body.dark .hl-warn{background:#3a2320;color:#f0a79c}

.ocr-box{display:flex;flex-direction:column;gap:12px}
.ocr-drop{border:2px dashed var(--border);border-radius:12px;padding:28px 16px;text-align:center;cursor:pointer;background:var(--paper)}
.ocr-drop.over{border-color:var(--accent);background:var(--soft)}
.ocr-drop p{margin:4px 0}
.ocr-label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.ocr-label textarea{width:100%;font:14px/1.7 ui-monospace,Menlo,Consolas,monospace;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--paper);color:var(--text);resize:vertical}
#ocr-preview{max-width:100%;max-height:280px;border:1px solid var(--border);border-radius:8px}
.calc-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0 0 16px}
.calc-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.calc-form input,.calc-form select{border:1px solid var(--border);border-radius:8px;padding:9px 11px;background:var(--paper);color:var(--text);font-size:15px}
.calc-actions{grid-column:1/-1;display:flex;gap:10px}
.calc-unit{color:var(--muted);font-weight:400}
.calc-notes{margin:0;padding-left:20px;line-height:1.9}
.texttool-form{display:flex;flex-direction:column;gap:12px;margin:0 0 16px}
.texttool-label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.texttool-label textarea{width:100%;font:14px/1.7 ui-monospace,Menlo,Consolas,monospace;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--paper);color:var(--text);resize:vertical}
.texttool-out{margin:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--paper);overflow:auto;font:13px/1.7 ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-all}
.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin:12px 0}
.app-grid button{padding:22px 8px;border-radius:10px;border:1px solid var(--border);font-weight:600}
.st-full{position:fixed;inset:0;z-index:9999;display:flex;align-items:flex-end;justify-content:center}
.st-full[hidden]{display:none}
.st-full p{margin:0 0 24px;padding:6px 14px;border-radius:999px;background:#00000066;color:#fff;font-size:13px}
.led-stage{overflow:hidden;background:#000;border-radius:10px;padding:18px 0;margin:12px 0;white-space:nowrap}
.led-track{display:inline-block;padding-left:100%;font:700 42px/1.3 ui-monospace,Menlo,Consolas,monospace;color:#ff3b30;animation:led-scroll 12s linear infinite}
@keyframes led-scroll{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.tw-wrap{display:flex;flex-direction:column;gap:10px}
.tw-sample{padding:14px;border-radius:10px;background:var(--soft);font-size:17px;line-height:1.9}
.tw-wrap textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--paper);color:var(--text);font-size:16px;line-height:1.8}
.tw-stats{display:flex;flex-wrap:wrap;gap:18px;font-size:14px;color:var(--muted)}
.jg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin:12px 0}
.jg-item{margin:0;display:flex;flex-direction:column;gap:6px;align-items:center;font-size:13px}
.jg-item canvas{border:1px solid var(--border);border-radius:6px}
#ra-player{width:100%;margin:10px 0}
pre.code{padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--paper);overflow:auto;font:13px/1.7 ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.hl-kw{color:#0b7285;font-weight:600}
.hl-str{color:#b45309}
.hl-com{color:#697586;font-style:italic}
.hl-num{color:#7c3aed}
body.dark .hl-kw{color:#66d2b5}
body.dark .hl-str{color:#f0b37e}
body.dark .hl-com{color:#93a1b1}
body.dark .hl-num{color:#c4a7ff}
.ua-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.ua-list li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--paper)}
.ua-list code{flex:1 1 260px;font-size:12px;word-break:break-all}
.ua-list button{padding:4px 10px;font-size:12px}
.barcode-img{max-width:100%;background:#fff;padding:8px;border-radius:8px}
#ico-download{display:inline-flex;margin:16px;background:var(--info);border-color:transparent;color:#fff}#ico-download[hidden]{display:none}

#timer-display{font-size:clamp(24px,7vw,44px);font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere;padding:20px 0}#timer-laps{max-height:360px;overflow:auto;padding-left:26px;font-variant-numeric:tabular-nums}#timer-laps li{margin:8px 0;overflow-wrap:anywhere}.calc-form textarea{min-height:180px}.reference-table td{overflow-wrap:anywhere}

.mole-chart{max-width:576px;margin:20px auto}.mole-map{width:100%;height:auto;display:block}.mole-map rect{fill:transparent;stroke:transparent}.mole-map a:hover rect,.mole-map a:focus rect{fill:#8b5cf633;stroke:var(--accent);stroke-width:2}.mole-detail{border:1px solid var(--border);border-radius:8px;margin:10px 0;padding:12px;scroll-margin-top:20px}.mole-detail summary{cursor:pointer;font-weight:600}.mole-detail blockquote{margin:10px 0;padding:0 14px;border-left:3px solid var(--border)}

.mole-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:16px 0}.mole-controls label{min-width:160px;margin:0}

.nick-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.nick-controls select{flex:1 1 220px;min-width:0}.nick-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px;list-style:none;padding:0}.nick-list li{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--border);border-radius:8px;min-width:0}.nick-text{overflow-wrap:anywhere;white-space:pre-wrap}.nick-copy{flex:none;padding:5px 10px}#nick-fallback{width:100%;min-height:120px}

.palette-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;margin:20px 0}.palette-card{min-width:0;border:1px solid var(--border);border-radius:10px;padding:12px;overflow-wrap:anywhere}.palette-swatch{height:105px;border:1px solid #8885;border-radius:8px}.palette-detail{max-width:680px;margin:20px auto}.palette-detail .palette-swatch{height:200px}.palette-values{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:13px}.palette-values dt{font-weight:600}.palette-values dd{margin:0;overflow-wrap:anywhere}.palette-copy-actions{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.palette-copy-actions button{padding:6px;font-size:12px}#palette-fallback{width:100%}

.lookup-barcode svg{max-width:100%;height:auto}.lookup-barcode{overflow-wrap:anywhere}

.work-form label{display:block;margin:16px 0}.work-form textarea{width:100%;font-family:ui-monospace,Consolas,monospace}.work-form input,.work-form select{max-width:100%}#work-output{width:100%;font-family:ui-monospace,Consolas,monospace}#work-stage{max-width:100%;overflow-wrap:anywhere}#work-stage canvas,#work-stage img,#work-stage svg{max-width:100%;height:auto}#work-result td{white-space:pre-wrap;overflow-wrap:anywhere}

#work-stage input[type=radio]{width:auto;margin:0 8px 0 0}#work-stage fieldset{border:1px solid var(--border);border-radius:8px;margin:14px 0;padding:14px}#work-stage fieldset label{display:flex;align-items:baseline;gap:6px;margin:10px 0}

#muscle-view{max-width:600px;margin:auto}#muscle-view svg{display:block;width:100%;height:auto}.muscle-region{fill:transparent;stroke:transparent;cursor:pointer}.muscle-region:focus,.muscle-region.selected{stroke:#e99a27;stroke-width:2;fill:#e99a2722;outline:none}


/* ---------- 新 UI 对旧组件的补充覆盖 ---------- */
.hl-nav .button{background:var(--card);border-color:var(--input);color:var(--foreground);box-shadow:none}
.hl-nav .button:hover{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary-soft-fg)}
.hl-term{background:var(--primary)}
.hl-hero{border-radius:16px}
.hl-yi,.hl-ji,.hl-card{border-radius:16px}
.reading-mode-label{border-radius:999px;font-size:14px;font-weight:500;transition:background-color .15s}
.reading-mode-label:hover{background:var(--secondary)}
.reference-table th{background:var(--secondary);color:var(--foreground);font-weight:600}
.table-scroll{border-radius:14px}
.content-jumps{border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 18%,transparent)}
.ua-list button,.palette-copy-actions button,.nick-copy{min-height:28px;padding:3px 12px;font-size:12px}
.app-grid button{min-height:72px;border-radius:16px;white-space:normal}
.dictionary-card,.nick-list li,.palette-card,.mole-detail,.ua-list li{border-radius:14px;transition:border-color .15s,box-shadow .15s}
.dictionary-card:hover,.nick-list li:hover,.palette-card:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--card-glow)}
.calc-form input,.calc-form select,.hl-picker input,.ocr-label textarea,.texttool-label textarea,.tw-wrap textarea{border-radius:12px}
.texttool-out,pre.code,.ocr-drop{border-radius:14px}
.module-frame{border-radius:16px}

/* ---------- 工具卡片（紧凑横排 + 首字彩色图标） ---------- */
.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--card-glow)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:12px}
.tool-card{--t:#2563eb;position:relative;display:flex;align-items:flex-start;gap:14px;padding:16px 16px 16px 16px;border:1px solid var(--border);border-radius:16px;background:var(--card);transition:border-color .2s,box-shadow .2s,transform .2s,background-color .2s}
.tool-card:hover{border-color:color-mix(in srgb,var(--t) 40%,var(--border));background:color-mix(in srgb,var(--t) 3%,var(--card));box-shadow:0 12px 28px -16px color-mix(in srgb,var(--t) 55%,transparent);transform:translateY(-2px)}
.tool-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--t) 12%,transparent);color:var(--t);font-size:19px;font-weight:700;line-height:1;transition:background-color .2s,color .2s,transform .2s}
.tool-card:hover .tool-icon{background:var(--t);color:#fff;transform:scale(1.05) rotate(-4deg)}
.card-body{flex:1;min-width:0;padding-right:18px}
.card-title{display:block;overflow:hidden;font-size:15px;font-weight:650;line-height:1.5;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis}
.card-title::after{content:"";position:absolute;inset:0;border-radius:inherit}
.card-title:hover{color:inherit}
.tool-card:hover .card-title{color:var(--t)}
.tool-card p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:3px 0 0;font-size:13px;line-height:1.6;color:var(--muted-foreground)}
.favorite{position:absolute;z-index:1;top:8px;right:8px;width:28px;height:28px;min-height:0;padding:0;border:0;border-radius:8px;background:transparent;box-shadow:none;font-size:16px;line-height:1;color:var(--muted-foreground);opacity:0;transition:opacity .15s,background-color .15s,color .15s}
.tool-card:hover .favorite,.favorite:focus-visible,.favorite[aria-pressed=true]{opacity:1}
.favorite:hover{background:var(--warning-soft);color:var(--warning)}
.favorite[aria-pressed=true]{color:var(--warning)}
@media(hover:none){.favorite{opacity:1}}
.tone-0{--t:#7c3aed}.tone-1{--t:#2563eb}.tone-2{--t:#0891b2}.tone-3{--t:#059669}.tone-4{--t:#d97706}.tone-5{--t:#ea580c}.tone-6{--t:#e11d48}.tone-7{--t:#db2777}
body.dark .tone-0{--t:#a78bfa}body.dark .tone-1{--t:#60a5fa}body.dark .tone-2{--t:#22d3ee}body.dark .tone-3{--t:#34d399}body.dark .tone-4{--t:#fbbf24}body.dark .tone-5{--t:#fb923c}body.dark .tone-6{--t:#fb7185}body.dark .tone-7{--t:#f472b6}
@media(max-width:1000px){.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}
@media(max-width:760px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tool-card{flex-direction:column;gap:10px;padding:14px}.card-body{padding-right:0}.tool-icon{width:40px;height:40px;font-size:17px}}
@media(max-width:420px){.grid{grid-template-columns:1fr}.tool-card{flex-direction:row}}
/* 屏幕测试色块（不用内联 style，以符合 CSP） */
#st-grid button[data-color="#ffffff"]{background:#fff;color:#111}#st-grid button[data-color="#000000"]{background:#000;color:#fff}#st-grid button[data-color="#ff0000"]{background:#f00;color:#fff}#st-grid button[data-color="#00ff00"]{background:#0f0;color:#111}#st-grid button[data-color="#0000ff"]{background:#00f;color:#fff}#st-grid button[data-color="#ffff00"]{background:#ff0;color:#111}#st-grid button[data-color="#00ffff"]{background:#0ff;color:#111}#st-grid button[data-color="#ff00ff"]{background:#f0f;color:#fff}#st-grid button[data-color="#808080"]{background:#808080;color:#fff}#st-grid button:hover{filter:brightness(.92)}

/* ---------- 全站排查修正（2026-11） ---------- */
/* 页面内目录：多行时不用胶囊形 */
.categories{border-radius:16px}
.catalog-bar .categories{border-radius:999px}
/* 计算器：单位与标签同行 */
.calc-form label{display:block}
.calc-form label input,.calc-form label select,.calc-form label textarea{display:block;width:100%;margin-top:6px}
/* 颜色选择器不拉满整行 */
input[type=color],label input[type=color],.calc-form label input[type=color]{display:block;width:64px;height:40px;padding:3px;cursor:pointer}
/* 同组中的次要提交按钮：中性描边（覆盖 button[type=submit] 的主色） */
button.btn-secondary{background:var(--card);border-color:var(--input);color:var(--foreground);box-shadow:none}
button.btn-secondary:hover{background:var(--secondary);color:var(--foreground)}
/* 字典类卡片：长代码/长单词不撑破网格 */
.dictionary-results>*{min-width:0}
.dictionary-card{overflow-wrap:anywhere}
/* ---------- 全站对齐统一（2026-11 第二轮排查） ---------- */
/* 1. 控件统一 40px 高：输入框、下拉框、按钮同一基线 */
input:where(:not([type=checkbox],[type=radio],[type=color],[type=file],[type=range],[type=submit],[type=button])),select{height:40px;padding-top:0;padding-bottom:0;font-size:14px;line-height:38px}
.calc-form input,.calc-form select,.hl-picker input,.work-form input,.work-form select{height:40px;padding:0 14px;font-size:14px;border-radius:12px;background:var(--card)}
button,.button{min-height:40px}
.search input{height:auto;line-height:normal}
.header-search input{height:36px;line-height:36px}
.favorite,#theme,.ua-list button,.palette-copy-actions button,.nick-copy{min-height:0}
/* 2. 查询栏：输入框与按钮底边对齐（去掉旧版 7px 补偿） */
.dictionary-search{align-items:flex-end;gap:10px}
.dictionary-search>label{margin:0}
.dictionary-search>label input,.dictionary-search>label select{margin-top:7px}
.dictionary-search>button,.dictionary-search>.button{margin:0}
.hl-picker{align-items:flex-end}
.hl-picker label{margin:0}
.calc-form{align-items:end}
.calc-form label{margin:0}
.calc-actions,.nick-controls{align-items:center}
.mole-controls{align-items:flex-end}.mole-controls label{margin:0}
/* 3. 工具卡片内的分区块：浅底、无边框，避免卡片套卡片 */
.panel .panel{margin:20px 0 0;padding:20px 22px;border:0;border-radius:14px;background:var(--bg);box-shadow:none}
.panel .panel h2{margin-top:0}
/* 4. 旧组件圆角对齐新风格 */
.work-game,.media-canvas,.media-preview,.work-network-log,.work-preview-frame,.output,.texttool-out,pre.code,.dictionary-card,.nick-list li,.palette-card,.mole-detail,.ua-list li,#work-stage fieldset,.periodic-scroll{border-radius:14px}
.work-game-card{border-radius:12px}
/* ---------- 目录页布局（Hero 仅首页；分类/搜索页用紧凑标题栏） ---------- */
.hero{min-height:560px;padding-top:128px;padding-bottom:120px}
.hero h1{margin:22px 0 18px}
.search{margin-top:28px}
.hero-stats{margin-top:40px}
.page-head{padding:4px 0 0}
.page-head .breadcrumb{margin:0 0 14px}
.page-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px 32px;flex-wrap:wrap}
.page-head-text{min-width:0}
.page-head h1{display:flex;align-items:center;gap:12px;margin:0;font-size:clamp(26px,3.4vw,34px);line-height:1.2;letter-spacing:-.02em}
.page-head h1 .count{font-size:13px;margin-left:2px}
.page-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 5px color-mix(in srgb,var(--c) 18%,transparent)}
.page-head p{margin:8px 0 0;font-size:15px}
.page-search{display:flex;align-items:center;gap:6px;width:min(400px,100%);padding:4px 4px 4px 14px;border:1px solid var(--border);border-radius:999px;background:var(--card);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.page-search>svg.icon{color:var(--muted-foreground)}
.page-search input{flex:1;min-width:0;height:36px;padding:0 4px;border:0;background:transparent;box-shadow:none;line-height:36px}
.page-search input:focus{box-shadow:none}
.page-search:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 18%,transparent)}
.page-search button{min-height:36px;padding:0 18px}
.catalog-bar-left{justify-content:space-between;margin:24px 0 22px;padding-bottom:20px;border-bottom:1px solid var(--border)}
/* 首页分类分组标题 */
.grid-heading{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin:30px 0 0;font-size:18px;font-weight:650;letter-spacing:-.01em;scroll-margin-top:96px}
.grid-heading:first-child{margin-top:0}
.grid-heading::before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 18%,transparent)}
.grid-count{padding:1px 9px;border-radius:999px;background:var(--secondary);color:var(--muted-foreground);font-size:12px;font-weight:600}
.grid-count:empty{display:none}
.grid-heading a{margin-left:auto;font-size:13px;font-weight:500;color:var(--muted-foreground)}
.grid-heading a:hover{color:var(--c)}
.header-search input{height:36px;line-height:36px;padding-top:0;padding-bottom:0}
@media(max-width:760px){.page-head-row{align-items:stretch}.page-search{width:100%}.catalog-bar-left{margin:18px 0 16px;padding-bottom:14px}.catalog-bar-left .categories{flex:1 1 100%}.grid-heading{margin-top:22px;font-size:16px}.hero{min-height:0;padding-top:140px;padding-bottom:96px}}
/* 分类标签横向滑动时隐藏滚动条 */
.categories{scrollbar-width:none}
.categories::-webkit-scrollbar{display:none}
/* ---------- 按钮组里的链接与导航按钮（第三轮排查） ---------- */
.actions,.calc-actions,.work-actions,.content-navigation{align-items:center}
.actions>a:not(.button),.calc-actions>a:not(.button),.work-actions>a:not(.button),.content-navigation>a:not(.button),.button.btn-secondary,button.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:7px 18px;border:1px solid var(--input);border-radius:999px;background:var(--card);color:var(--foreground);font-size:14px;font-weight:500;line-height:1.4;white-space:nowrap;box-shadow:none;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s}
.actions>a:not(.button):hover,.calc-actions>a:not(.button):hover,.work-actions>a:not(.button):hover,.content-navigation>a:not(.button):hover,.button.btn-secondary:hover,button.btn-secondary:hover{background:var(--secondary);border-color:color-mix(in srgb,var(--primary) 30%,var(--input));color:var(--foreground)}
.actions>span{padding:0 6px;color:var(--muted-foreground);font-size:14px;font-variant-numeric:tabular-nums}
.content-navigation .button.btn-secondary,.actions>a:not(.button){white-space:normal;text-align:center}
.reference-top{display:inline-flex;align-items:center;gap:4px;margin-top:14px;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted-foreground);font-size:12px;font-weight:500;transition:border-color .15s,color .15s}
.reference-top:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));color:var(--primary)}

/* ---------- 首屏改为淡灰色（不再使用黑色背景） ---------- */
.hero{--hero-bg:#f3f3f0;color:var(--foreground);background:radial-gradient(55% 60% at 78% 42%,rgb(167 139 250 / .16),transparent 70%),radial-gradient(45% 50% at 8% 0%,rgb(96 165 250 / .12),transparent 70%),linear-gradient(180deg,#f6f6f3 0%,var(--hero-bg) 100%)}
body.dark .hero{--hero-bg:#151518;background:radial-gradient(55% 60% at 78% 42%,rgb(139 92 246 / .14),transparent 70%),radial-gradient(45% 50% at 8% 0%,rgb(59 130 246 / .1),transparent 70%),linear-gradient(180deg,#18181b 0%,var(--hero-bg) 100%)}
.hero::before{background:radial-gradient(color-mix(in srgb,var(--foreground) 10%,transparent) 1px,transparent 1.2px) 0 0/22px 22px;-webkit-mask-image:radial-gradient(70% 80% at 30% 30%,#000 20%,transparent 75%);mask-image:radial-gradient(70% 80% at 30% 30%,#000 20%,transparent 75%)}
.hero-badge{border-color:var(--border);background:color-mix(in srgb,var(--card) 75%,transparent);color:var(--muted-foreground)}
.hero-badge::before{background:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}
.hero h1{background:linear-gradient(var(--foreground) 0,var(--foreground) 55%,color-mix(in srgb,var(--foreground) 55%,transparent) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted-foreground)}
.hero p strong{color:var(--foreground)}
.search{border-color:var(--border);background:var(--card);box-shadow:0 10px 30px -14px rgb(42 42 37 / .25);backdrop-filter:none;-webkit-backdrop-filter:none}
.search:focus-within{border-color:var(--ring);background:var(--card);box-shadow:0 0 0 4px color-mix(in srgb,var(--ring) 18%,transparent),0 10px 30px -14px rgb(42 42 37 / .25)}
.search>svg.icon{color:var(--muted-foreground);opacity:1}
.search input{color:var(--foreground)}
.search input::placeholder{color:var(--muted-foreground)}
.quick-links{color:var(--muted-foreground)}
.quick-links a{border-color:var(--border);background:var(--card);color:var(--foreground)}
.quick-links a:hover{border-color:var(--c,var(--primary));background:var(--card);color:var(--c,var(--primary))}
.hero-stats div{border-left-color:var(--border)}
.hero-stats strong{color:var(--foreground)}
.hero-stats span{color:var(--muted-foreground)}
/* 光环：浅底上降低饱和度，中心改为背景色 */
.hero-orb::before{opacity:.6;filter:blur(10px)}
.hero-orb::after{background:radial-gradient(ellipse at center,rgb(255 255 255 / .95) 0%,rgb(165 243 252 / .55) 20%,rgb(196 181 253 / .35) 40%,transparent 72%);filter:blur(7px)}
body.dark .hero-orb::after{background:radial-gradient(ellipse at center,rgb(224 242 254 / .7) 0%,rgb(165 243 252 / .4) 20%,rgb(196 181 253 / .25) 40%,transparent 72%)}
.hero-orb span{background:var(--hero-bg);box-shadow:0 0 0 1px rgb(124 58 237 / .14),0 0 60px 8px rgb(167 139 250 / .22),inset 0 0 40px rgb(124 58 237 / .06)}