/* ==========================================================================
   腌菜泡菜盐比例计算器 · 独立设计「盐卤工作台」
   浅色 = 陶坛酱紫 + 姜黄 + 蒜绿；深色 = 夜坛琥珀金
   所有样式限定在 .psr 作用域内，不污染全站；深浅双主题由 html[data-theme] 驱动
   ========================================================================== */
.psr{
  --bg:#f6f1e6; --bg2:#efe6d4;
  --card:#fffdf8; --card2:#f8f2e6;
  --ink:#2a1d24; --sub:#6b5560; --faint:#9c8995;
  --line:#e4d9c8; --line2:#efe7d9; --line-strong:#cdbda6;
  --pri:#8c2f4a; --pri-2:#b04566; --pri-soft:#f8e7eb; --pri-ink:#6d2137;
  --gold:#b8791f; --gold-2:#d79a34; --gold-soft:#fbf0da; --gold-line:#ecd6a9;
  --green:#3f6b4f; --green-2:#5a8d6b; --green-soft:#e6f0e8;
  --ok:#3f6b4f; --ok-soft:#e6f0e8;
  --warn:#a86a12; --warn-soft:#fbf0da;
  --bad:#a32b23; --bad-soft:#fae7e4;
  --r:14px; --r-sm:9px; --r-lg:22px;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --num:"DIN Alternate","Bahnschrift","Segoe UI Variable Text",ui-sans-serif,system-ui,sans-serif;
  --shadow-sm:0 1px 2px rgba(42,29,36,.05),0 6px 18px rgba(42,29,36,.05);
  --shadow:0 2px 6px rgba(42,29,36,.07),0 18px 44px rgba(42,29,36,.10);
  color:var(--ink);
  font-family:-apple-system,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  font-size:15px; line-height:1.8;
  background:
    radial-gradient(760px 380px at 92% -150px, rgba(140,47,74,.09), transparent 62%),
    radial-gradient(700px 360px at -6% 260px, rgba(184,121,31,.08), transparent 60%),
    repeating-linear-gradient(0deg, transparent 0 36px, rgba(42,29,36,.025) 36px 37px),
    var(--bg);
  padding:0 16px 64px;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
:root[data-theme="dark"] .psr{
  --bg:#17110f; --bg2:#1d1512;
  --card:#1f1714; --card2:#271d19;
  --ink:#f4e9de; --sub:#c6afa0; --faint:#9b8478;
  --line:#3a2c25; --line2:#30241e; --line-strong:#5c4538;
  --pri:#e0829f; --pri-2:#f2a5ba; --pri-soft:rgba(224,130,159,.13); --pri-ink:#f2a5ba;
  --gold:#e2b661; --gold-2:#f4d289; --gold-soft:rgba(226,182,97,.13); --gold-line:rgba(226,182,97,.32);
  --green:#7fc094; --green-2:#9ad4ab; --green-soft:rgba(127,192,148,.13);
  --ok:#7fc094; --ok-soft:rgba(127,192,148,.13);
  --warn:#e2b661; --warn-soft:rgba(226,182,97,.13);
  --bad:#ef8a80; --bad-soft:rgba(239,138,128,.13);
  --shadow-sm:0 1px 2px rgba(0,0,0,.34),0 8px 20px rgba(0,0,0,.24);
  --shadow:0 2px 6px rgba(0,0,0,.36),0 20px 48px rgba(0,0,0,.40);
}
.psr *{box-sizing:border-box;}
.psr b,.psr strong{font-weight:700;color:var(--ink);}
.psr p{margin:0;}
.psr ul,.psr ol{margin:0;padding:0;}
.psr-wrap{max-width:1200px;margin:0 auto;}

/* ---------------- 面包屑 ---------------- */
.psr-crumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px;padding:13px 0 11px;font-size:12.6px;color:var(--faint);border-bottom:1px solid var(--line);}
.psr-crumb a{color:var(--sub);text-decoration:none;font-weight:600;}
.psr-crumb a:hover{color:var(--pri);}
.psr-crumb i{font-style:normal;opacity:.5;}
.psr-crumb span{color:var(--ink);font-weight:700;}

/* ---------------- 首屏 ---------------- */
.psr-hero{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:30px;align-items:start;
  padding:32px 34px 30px;
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:
    radial-gradient(520px 260px at 6% -40%, rgba(140,47,74,.12), transparent 66%),
    radial-gradient(460px 240px at 96% -10%, rgba(184,121,31,.12), transparent 62%),
    linear-gradient(168deg,var(--card) 0%,var(--card2) 100%);
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .psr-hero{
  background:
    radial-gradient(520px 260px at 6% -40%, rgba(224,130,159,.14), transparent 66%),
    radial-gradient(460px 240px at 96% -10%, rgba(226,182,97,.10), transparent 62%),
    linear-gradient(168deg,#241a17 0%,#1c1411 100%);
}
.psr-hero::after{
  content:"";position:absolute;right:-130px;top:-150px;width:330px;height:330px;border-radius:50%;
  border:1px dashed var(--line-strong);pointer-events:none;
}
.psr-hero-l{position:relative;z-index:1;align-self:center;}
.psr-kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;font-weight:800;letter-spacing:.05em;
  color:var(--pri-ink);background:var(--pri-soft);
  border:1px solid var(--line);border-radius:999px;padding:5px 14px;
}
:root[data-theme="dark"] .psr-kicker{color:var(--pri);}
.psr-kicker::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pri-2);}
.psr-hero h1{
  margin:14px 0 12px;font-family:var(--serif);
  font-size:clamp(26px,3.6vw,40px);font-weight:800;line-height:1.3;letter-spacing:.01em;
}
.psr-hero h1 em{
  font-style:normal;color:var(--pri);
  background:linear-gradient(transparent 68%,rgba(140,47,74,.2) 68%,rgba(140,47,74,.2) 93%,transparent 93%);
  padding:0 2px;
}
:root[data-theme="dark"] .psr-hero h1 em{background:linear-gradient(transparent 68%,rgba(224,130,159,.22) 68%,rgba(224,130,159,.22) 93%,transparent 93%);}
.psr-sub{margin:0 0 16px;max-width:36em;color:var(--sub);font-size:15.5px;line-height:1.9;}
.psr-sub b{color:var(--ink);}
.psr-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;}
.psr-tags li{font-size:12.6px;font-weight:600;color:var(--sub);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 12px;}
.psr-tags li::before{content:"◆";margin-right:6px;color:var(--gold);font-size:9px;vertical-align:2px;}
.psr-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 0;padding:0;list-style:none;}
.psr-steps li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow-sm);}
.psr-steps b{display:block;font-size:13.2px;font-weight:800;margin-bottom:3px;color:var(--ink);}
.psr-steps span{display:block;font-size:12.2px;color:var(--faint);line-height:1.6;}
@media (max-width:600px){.psr-steps{grid-template-columns:1fr;gap:8px;}.psr-steps li{padding:9px 12px;}}

/* ---------------- 首屏操作卡（配方笺） ---------------- */
.psr-sheet{
  position:relative;z-index:1;
  background:var(--card);border:1px solid var(--line-strong);border-radius:18px;
  padding:18px 20px 16px;box-shadow:0 14px 34px rgba(42,29,36,.12);
}
:root[data-theme="dark"] .psr-sheet{box-shadow:0 14px 36px rgba(0,0,0,.45);}
.psr-sheet-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px dashed var(--line-strong);}
.psr-sheet-title{font-family:var(--serif);font-size:16px;font-weight:800;color:var(--ink);letter-spacing:.02em;}
.psr-sheet-code{font:700 11px/1 var(--num);letter-spacing:.14em;color:var(--faint);}
.psr-sheet-body{display:grid;gap:12px;padding-top:14px;}
.psr-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.psr-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.psr-sheet-foot{margin:12px 0 0;padding-top:9px;border-top:1px dashed var(--line-strong);font-size:11.8px;color:var(--faint);text-align:center;}

/* ---------------- 表单件 ---------------- */
.psr-field{display:grid;gap:6px;min-width:0;}
.psr-field>label,.psr-label{font-size:12.8px;font-weight:700;color:var(--sub);display:flex;align-items:baseline;gap:6px;}
.psr-field>label small,.psr-label small{font-weight:600;font-size:11.4px;color:var(--faint);}
.psr-input,.psr-select{
  width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:10px;
  background:var(--card2);color:var(--ink);padding:8px 11px;font:inherit;font-size:14.4px;font-weight:600;line-height:1.5;
  transition:border-color .18s,box-shadow .18s,background .18s;appearance:none;-webkit-appearance:none;
}
.psr-input:hover,.psr-select:hover{border-color:var(--pri-2);}
.psr-input:focus,.psr-select:focus{outline:none;border-color:var(--pri);background:var(--card);box-shadow:0 0 0 3px var(--pri-soft);}
.psr-input::placeholder{color:var(--faint);font-weight:500;}
.psr-input[type="number"]{font-family:var(--num);font-variant-numeric:tabular-nums;}
select.psr-select{
  cursor:pointer;padding-right:30px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%239c8995' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
}
.psr-field.has-err .psr-input,.psr-field.has-err .psr-select{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft);}
.psr-err{display:none;font-size:11.8px;font-weight:600;color:var(--bad);line-height:1.5;}
.psr-field.has-err .psr-err{display:block;}
.psr-hint{font-size:12.2px;color:var(--faint);line-height:1.7;}
.psr-hint b{color:var(--sub);}

/* 分段选择 */
.psr-seg{display:inline-flex;padding:2px;gap:2px;border:1px solid var(--line-strong);border-radius:10px;background:var(--card2);width:100%;}
.psr-seg button{
  appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;
  font-size:12.4px;font-weight:700;line-height:1.3;color:var(--sub);
  padding:8px 6px;border-radius:8px;transition:.16s;white-space:nowrap;flex:1 1 0;min-width:0;
}
.psr-seg button:hover{color:var(--pri);}
.psr-seg button.on{background:linear-gradient(135deg,var(--pri),var(--pri-2));color:#fff;box-shadow:var(--shadow-sm);}
:root[data-theme="dark"] .psr-seg button.on{color:#2a1018;}

/* 开关 */
.psr-switch{display:flex;align-items:flex-start;gap:10px;cursor:pointer;user-select:none;font-size:13.2px;font-weight:600;color:var(--sub);line-height:1.5;}
.psr-switch input{position:absolute;opacity:0;pointer-events:none;}
.psr-switch .psr-track{position:relative;flex:none;width:36px;height:20px;border-radius:999px;background:var(--line-strong);transition:background .16s ease;margin-top:2px;}
.psr-switch .psr-track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--card);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .16s ease;}
.psr-switch input:checked+.psr-track{background:var(--pri);}
.psr-switch input:checked+.psr-track::after{transform:translateX(16px);}
.psr-switch input:focus-visible+.psr-track{outline:2px solid var(--pri);outline-offset:2px;}
.psr-switch small{display:block;font-size:11.5px;font-weight:500;color:var(--faint);}

/* 按钮 */
.psr-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:1px solid transparent;border-radius:11px;padding:10px 16px;
  font:inherit;font-weight:700;font-size:14px;cursor:pointer;text-align:center;line-height:1.4;
  transition:transform .16s,box-shadow .18s,background .18s,border-color .18s,color .18s;
}
.psr-btn:focus-visible{outline:2px solid var(--pri);outline-offset:2px;}
.psr-btn--primary{background:linear-gradient(135deg,var(--pri),var(--pri-2));color:#fff;box-shadow:0 8px 20px rgba(140,47,74,.22);}
:root[data-theme="dark"] .psr-btn--primary{color:#2a1018;}
.psr-btn--primary:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(140,47,74,.28);}
.psr-btn--gold{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#fff;box-shadow:0 8px 18px rgba(184,121,31,.22);}
.psr-btn--gold:hover{transform:translateY(-1px);}
.psr-btn--ghost{background:var(--card);border-color:var(--line-strong);color:var(--ink);}
.psr-btn--ghost:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);}
.psr-btn--sm{padding:7px 12px;font-size:12.8px;border-radius:9px;}
.psr-btn--block{width:100%;}
.psr-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none;}

/* ---------------- KPI 条 ---------------- */
.psr-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;}
.psr-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px 11px;box-shadow:var(--shadow-sm);}
.psr-kpi span{display:block;font-size:11.8px;font-weight:700;color:var(--faint);margin-bottom:2px;}
.psr-kpi b{display:flex;align-items:baseline;gap:5px;font:800 25px/1.15 var(--num);letter-spacing:-.02em;color:var(--ink);}
.psr-kpi b small{font-size:11.5px;color:var(--faint);font-weight:700;}
.psr-kpi.is-pri b{color:var(--pri);}
.psr-kpi.is-gold b{color:var(--gold);}
.psr-kpi.is-green b{color:var(--green);}
:root[data-theme="dark"] .psr-kpi.is-pri b{color:var(--pri-2);}
:root[data-theme="dark"] .psr-kpi.is-gold b{color:var(--gold-2);}
:root[data-theme="dark"] .psr-kpi.is-green b{color:var(--green-2);}
@media (max-width:880px){.psr-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ---------------- 主栅格 ---------------- */
.psr-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start;margin-top:20px;}
@media (max-width:1040px){.psr-grid{grid-template-columns:minmax(0,1fr);}}
.psr-side{position:sticky;top:78px;display:grid;gap:14px;align-content:start;}
@media (max-width:1040px){.psr-side{position:static;}}

/* ---------------- 卡片 ---------------- */
.psr-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px 20px;box-shadow:var(--shadow-sm);margin-bottom:16px;}
.psr-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:5px;}
.psr-no{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;border:1px dashed var(--line-strong);background:var(--gold-soft);color:var(--gold);font:800 12.5px/1 var(--num);}
.psr-head h2{margin:0;font-family:var(--serif);font-size:18.5px;font-weight:800;line-height:1.5;}
.psr-head .psr-tag{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--faint);white-space:nowrap;padding-top:6px;}
.psr-lead{margin:0 0 16px;color:var(--sub);font-size:13.6px;line-height:1.85;max-width:48em;}
.psr-lead b{color:var(--ink);}
.psr-row{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));}
.psr-row.c3{grid-template-columns:repeat(3,minmax(0,1fr));}
.psr-row+.psr-row{margin-top:14px;}
@media (max-width:720px){.psr-row,.psr-row.c3{grid-template-columns:1fr;}}

/* ---------------- 盐度表盘 ---------------- */
.psr-gauge-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 20px 16px;box-shadow:var(--shadow-sm);}
.psr-gauge-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px;}
.psr-gauge-head h3{margin:0;font-family:var(--serif);font-size:15.5px;font-weight:800;}
.psr-gauge-head span{font-size:11.5px;color:var(--faint);}
.psr-gauge svg{width:100%;height:auto;display:block;}
.psr-gauge text{font-family:var(--num);fill:var(--faint);}
.psr-gauge-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:8px;font-size:11.8px;color:var(--sub);}
.psr-gauge-legend span{display:inline-flex;align-items:center;gap:6px;}
.psr-gauge-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;}
.psr-gauge-note{margin:10px 0 0;font-size:12.2px;line-height:1.75;color:var(--sub);}
.psr-gauge-note b{color:var(--ink);}

/* ---------------- 结果配方表 ---------------- */
.psr-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--card);-webkit-overflow-scrolling:touch;}
.psr-table{width:100%;border-collapse:collapse;font-size:13.3px;min-width:520px;}
.psr-table th{background:var(--card2);text-align:left;padding:9px 12px;font-size:11.8px;font-weight:800;color:var(--sub);border-bottom:1px solid var(--line);white-space:nowrap;}
.psr-table td{padding:10px 12px;border-bottom:1px dashed var(--line);vertical-align:top;line-height:1.75;}
.psr-table tbody tr:last-child td{border-bottom:0;}
.psr-table td.num{font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.psr-table td b{font-weight:700;}
.psr-table .psr-note{color:var(--faint);font-size:12.2px;}
.psr-badge{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap;}
.psr-badge--ok{color:var(--ok);background:var(--ok-soft);}
.psr-badge--warn{color:var(--warn);background:var(--warn-soft);}
.psr-badge--bad{color:var(--bad);background:var(--bad-soft);}
.psr-badge--pri{color:var(--pri-ink);background:var(--pri-soft);}
:root[data-theme="dark"] .psr-badge--pri{color:var(--pri);}

/* ---------------- 提示条 ---------------- */
.psr-alerts{display:grid;gap:8px;}
.psr-alert{display:flex;gap:9px;align-items:flex-start;padding:10px 13px;border-radius:11px;font-size:12.9px;line-height:1.75;border:1px solid var(--line);background:var(--card2);color:var(--sub);}
.psr-alert i{font-style:normal;flex:none;font-weight:800;}
.psr-alert b{color:var(--ink);}
.psr-alert.is-ok{background:var(--ok-soft);border-color:transparent;color:var(--sub);}
.psr-alert.is-ok i{color:var(--ok);}
.psr-alert.is-warn{background:var(--warn-soft);border-color:transparent;}
.psr-alert.is-warn i{color:var(--warn);}
.psr-alert.is-bad{background:var(--bad-soft);border-color:transparent;}
.psr-alert.is-bad i{color:var(--bad);}

/* ---------------- 批量表 ---------------- */
.psr-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px;}
.psr-preset{border:1px solid var(--line-strong);background:var(--card2);color:var(--ink);border-radius:999px;padding:5px 13px;font:inherit;font-size:12.8px;font-weight:600;cursor:pointer;transition:.16s;}
.psr-preset:hover{border-color:var(--gold);background:var(--gold-soft);color:var(--gold);transform:translateY(-1px);}
.psr-preset::before{content:"◍";margin-right:5px;color:var(--pri);}
.psr-btable{width:100%;border-collapse:collapse;font-size:13px;min-width:760px;}
.psr-btable th{background:var(--card2);text-align:left;padding:8px 9px;font-size:11.5px;font-weight:800;color:var(--sub);border-bottom:1px solid var(--line);white-space:nowrap;}
.psr-btable td{padding:5px 6px;border-bottom:1px dashed var(--line);}
.psr-btable .psr-input,.psr-btable .psr-select{padding:6px 9px;font-size:13px;border-radius:8px;}
.psr-btable .psr-select{padding-right:26px;background-position:right 8px center;}
.psr-btable td.num{font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.psr-btable tr.has-err td{background:var(--bad-soft);}
.psr-del{border:1px solid var(--line);background:var(--card);color:var(--faint);width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center;transition:.16s;}
.psr-del:hover{border-color:var(--bad);color:var(--bad);background:var(--bad-soft);}
.psr-import{margin-top:14px;border:1px dashed var(--line-strong);border-radius:12px;padding:14px 16px;background:var(--card2);}
.psr-import[hidden]{display:none;}
.psr-import textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);color:var(--ink);padding:10px 12px;font:13px/1.85 var(--num);tab-size:4;}
.psr-import textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft);}
.psr-import-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center;}
.psr-import-hint{margin-top:8px;font-size:12px;color:var(--faint);line-height:1.75;}
.psr-import-hint code{font-family:var(--num);font-size:11.5px;padding:1px 5px;border-radius:4px;background:var(--card);border:1px solid var(--line);color:var(--sub);}

/* ---------------- 换算器 ---------------- */
.psr-conv{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:end;}
@media (max-width:760px){.psr-conv{grid-template-columns:1fr;}}
.psr-conv-arrow{display:grid;place-items:center;font-size:20px;color:var(--gold);padding-bottom:8px;}
.psr-conv-out{display:grid;gap:8px;}
.psr-conv-item{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:9px 13px;background:var(--card2);border:1px solid var(--line);border-radius:10px;}
.psr-conv-item span{font-size:12.4px;color:var(--sub);font-weight:600;}
.psr-conv-item b{font:800 17px/1.2 var(--num);color:var(--pri);}
.psr-conv-item small{font-size:11px;color:var(--faint);font-weight:600;}

/* ---------------- 速查表 ---------------- */
.psr-quick{width:100%;border-collapse:collapse;font-size:13.2px;margin-top:12px;}
.psr-quick th,.psr-quick td{padding:8px 11px;border-bottom:1px solid var(--line);text-align:left;}
.psr-quick th{background:var(--card2);font-size:12px;font-weight:800;color:var(--sub);white-space:nowrap;}
.psr-quick td.num{font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.psr-quick tr:last-child td{border-bottom:0;}
.psr-quick tr.is-hl td{background:var(--gold-soft);}

/* ---------------- 正文区 ---------------- */
.psr-sec{padding:34px 0 0;}
.psr-sec>h2{font-family:var(--serif);font-size:22px;font-weight:800;margin-bottom:6px;}
.psr-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:14px;}
.psr-mini{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow-sm);}
.psr-mini h3{font-size:15px;font-weight:800;margin-bottom:6px;font-family:var(--serif);}
.psr-mini p{font-size:13.5px;line-height:1.85;color:var(--sub);}
.psr-mini ul{margin:8px 0 0;padding-left:18px;font-size:13.4px;line-height:1.9;color:var(--sub);}
.psr-mini li+li{margin-top:3px;}
.psr-formula{font-family:var(--num);font-size:12.6px;line-height:2;background:var(--card2);border:1px solid var(--line);border-left:2px solid var(--pri);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:10px 14px;margin-top:12px;overflow-x:auto;color:var(--sub);white-space:pre;}
.psr-faq{margin-top:14px;border-top:1px solid var(--line);}
.psr-faq details{border-bottom:1px solid var(--line);}
.psr-faq summary{cursor:pointer;list-style:none;padding:13px 26px 13px 0;position:relative;font-weight:700;font-size:15px;color:var(--ink);line-height:1.6;}
.psr-faq summary::-webkit-details-marker{display:none;}
.psr-faq summary::after{content:"+";position:absolute;right:4px;top:11px;font-family:var(--num);font-size:17px;color:var(--pri);transition:transform .18s;}
.psr-faq details[open] summary::after{content:"−";}
.psr-faq .a{padding:0 0 14px;font-size:14px;line-height:1.9;color:var(--sub);max-width:48em;}
.psr-faq .a b{color:var(--ink);}
.psr-rel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px;}
.psr-rel a{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,transform .15s;}
.psr-rel a:hover{border-color:var(--pri);text-decoration:none;transform:translateY(-1px);}
.psr-rel a span{font-size:11px;color:var(--faint);margin-left:auto;}

/* ---------------- toast ---------------- */
.psr-toast{
  position:fixed;left:50%;bottom:34px;transform:translate(-50%,14px);
  background:rgba(42,29,36,.95);color:#fff;font-size:13.5px;font-weight:600;
  padding:10px 18px;border-radius:11px;box-shadow:0 12px 30px rgba(0,0,0,.25);
  opacity:0;visibility:hidden;transition:.22s;z-index:9999;max-width:86vw;text-align:center;
}
:root[data-theme="dark"] .psr-toast{background:rgba(244,233,222,.95);color:#2a1d24;}
.psr-toast.on{opacity:1;visibility:visible;transform:translate(-50%,0);}

/* ---------------- 响应式 ---------------- */
@media (max-width:940px){
  .psr-hero{grid-template-columns:1fr;padding:26px 22px 22px;gap:20px;}
  .psr-hero::after{display:none;}
  .psr-row3{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .psr{padding:0 12px 48px;font-size:14.5px;}
  .psr-card{padding:18px 16px 16px;}
  .psr-hero{padding:20px 17px 18px;margin:0 0 14px;}
  .psr-hero h1{font-size:24px;line-height:1.36;margin:10px 0 8px;}
  .psr-sub{font-size:14px;line-height:1.8;}
  .psr-row3,.psr-row2{grid-template-columns:1fr;}
  .psr-tags li:nth-child(n+4){display:none;}
  .psr-sec{padding-top:26px;}
}
@media (prefers-reduced-motion:reduce){
  .psr *,.psr *::before,.psr *::after{animation-duration:.001s!important;transition-duration:.001s!important;}
}
