/* first-line-indent · 排版印刷铅字风 · 作用域前缀 .fli- */
.fli-wrap{
  --fli-paper:#f3ead2; --fli-paper2:#e9dcbc; --fli-card:#fbf5e5;
  --fli-ink:#2f2b24; --fli-mut:#7c7159; --fli-line:#cfbe99;
  --fli-red:#a4402b; --fli-blue:#314a6b; --fli-lead:#4a4335;
  --fli-shadow:3px 3px 0 var(--fli-line);
  max-width:1100px; margin:0 auto; padding:26px 18px 64px;
  color:var(--fli-ink); font-family:"Songti SC","STSong","SimSun",serif;
  font-size:16px; line-height:1.75; box-sizing:border-box;
  background-color:var(--fli-paper);
  background-image:
    repeating-linear-gradient(0deg, rgba(90,74,44,.055) 0 1px, transparent 1px 24px),
    repeating-linear-gradient(90deg, rgba(90,74,44,.055) 0 1px, transparent 1px 24px);
}
html[data-theme="dark"] .fli-wrap{
  --fli-paper:#211e18; --fli-paper2:#2b271f; --fli-card:#2d2921;
  --fli-ink:#eee4cc; --fli-mut:#ada087; --fli-line:#4c4436;
  --fli-red:#e0775b; --fli-blue:#8fb0dc; --fli-lead:#cbc0a6;
  --fli-shadow:3px 3px 0 rgba(0,0,0,.45);
  background-color:var(--fli-paper);
  background-image:
    repeating-linear-gradient(0deg, rgba(240,224,184,.035) 0 1px, transparent 1px 24px),
    repeating-linear-gradient(90deg, rgba(240,224,184,.035) 0 1px, transparent 1px 24px);
}
.fli-wrap *{box-sizing:border-box;}
.fli-wrap b{font-weight:700;color:var(--fli-red);}
.fli-wrap h1,.fli-wrap h2,.fli-wrap h3{font-weight:700;letter-spacing:.05em;line-height:1.35;}
.fli-wrap a{color:inherit;}
.fli-mono, .fli-wrap input, .fli-wrap textarea, .fli-wrap code, .fli-wrap pre, .fli-wrap output{font-family:ui-monospace,"Courier New",Consolas,monospace;}

/* ---------- 首屏 ---------- */
.fli-hero{border:2px solid var(--fli-ink);background:var(--fli-card);padding:28px 30px 24px;box-shadow:var(--fli-shadow);position:relative;}
.fli-hero:after{content:"";position:absolute;right:10px;bottom:10px;width:34px;height:34px;background:var(--fli-blue);opacity:.14;}
.fli-plate{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.22em;color:var(--fli-mut);border-bottom:1px solid var(--fli-line);padding-bottom:10px;}
.fli-plate-dot{width:9px;height:9px;background:var(--fli-red);border-radius:50%;display:inline-block;}
.fli-plate-no{margin-left:auto;font-family:ui-monospace,"Courier New",monospace;letter-spacing:.08em;}
.fli-hero h1{margin:16px 0 10px;font-size:clamp(27px,4vw,40px);}
.fli-hero h1 em{display:block;font-style:normal;font-size:clamp(15px,1.8vw,19px);font-weight:400;color:var(--fli-blue);letter-spacing:.08em;margin-top:6px;}
.fli-sub{margin:0 0 18px;max-width:64ch;}
.fli-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;}
.fli-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 17px;border:2px solid var(--fli-ink);background:var(--fli-ink);color:var(--fli-card);font-family:inherit;font-size:15px;cursor:pointer;text-decoration:none;transition:.12s;}
.fli-btn:hover{transform:translate(-1px,-1px);box-shadow:2px 2px 0 var(--fli-red);}
.fli-btn.ghost{background:transparent;color:var(--fli-ink);}
.fli-btn.ghost:hover{background:var(--fli-paper2);}
.fli-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.fli-formula{display:flex;flex-wrap:wrap;gap:8px 0;border-top:1px dashed var(--fli-line);padding-top:14px;}
.fli-formula span{font-size:13.5px;padding:3px 16px;border-right:1px solid var(--fli-line);letter-spacing:.04em;}
.fli-formula span:last-child{border-right:0;color:var(--fli-blue);font-weight:700;}

/* ---------- 区块 ---------- */
.fli-sec{margin-top:32px;border:1px solid var(--fli-line);background:var(--fli-card);padding:22px 24px 26px;box-shadow:var(--fli-shadow);}
.fli-sec-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;border-bottom:3px double var(--fli-ink);padding-bottom:11px;margin-bottom:18px;}
.fli-sec-head h2{margin:0;font-size:22px;}
.fli-sec-head p{margin:0;font-size:13px;color:var(--fli-mut);letter-spacing:.1em;}
.fli-no{font-family:ui-monospace,"Courier New",monospace;font-size:14px;color:var(--fli-card);background:var(--fli-ink);padding:3px 9px;}
.fli-calc-grid,.fli-batch-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;}
.fli-panel{border:1px solid var(--fli-line);background:var(--fli-paper);padding:17px;min-width:0;}
.fli-label{display:block;font-size:14px;font-weight:700;margin:13px 0 7px;letter-spacing:.04em;}
.fli-label:first-child{margin-top:0;}
.fli-label small{font-weight:400;color:var(--fli-mut);font-size:12px;margin-left:6px;}
.fli-input-unit{display:flex;align-items:stretch;}
.fli-input-unit input{flex:1;min-width:0;font-size:19px;padding:9px 11px;border:1px solid var(--fli-line);background:var(--fli-card);color:var(--fli-ink);}
.fli-input-unit span{display:grid;place-items:center;padding:0 14px;background:var(--fli-ink);color:var(--fli-card);font-size:13px;letter-spacing:.1em;}
.fli-wrap textarea{width:100%;font-size:14px;line-height:1.7;padding:10px;border:1px solid var(--fli-line);background:var(--fli-card);color:var(--fli-ink);resize:vertical;}
.fli-btn-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px;}
.fli-err{margin:12px 0 0;color:var(--fli-red);font-size:14px;font-weight:700;}
.fli-hint{font-size:13.5px;color:var(--fli-mut);line-height:1.7;margin:14px 0 0;}
.fli-batch-sum{font-size:13.5px;color:var(--fli-blue);margin:12px 0 0;font-weight:700;}
.fli-out-head{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--fli-line);padding-bottom:10px;margin-bottom:14px;font-weight:700;}
.fli-out-head span{font-size:13px;color:var(--fli-blue);font-family:ui-monospace,"Courier New",monospace;font-weight:400;}
.fli-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.fli-disclaimer{margin-top:26px;font-size:13px;color:var(--fli-mut);border-left:4px solid var(--fli-ink);padding:8px 14px;line-height:1.7;}

/* ---------- 铅字结果块 ---------- */
.fli-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.fli-block{border:1px solid var(--fli-ink);background:var(--fli-card);padding:12px 14px;box-shadow:inset 0 0 0 3px var(--fli-paper);position:relative;}
.fli-block .fli-block-k{font-size:12px;letter-spacing:.16em;color:var(--fli-mut);}
.fli-block .fli-block-v{display:block;font-family:ui-monospace,"Courier New",monospace;font-size:clamp(22px,3.2vw,32px);font-weight:700;color:var(--fli-ink);line-height:1.3;word-break:break-all;}
.fli-block .fli-block-u{font-size:13px;color:var(--fli-red);font-weight:700;}
.fli-block.main{background:var(--fli-ink);border-color:var(--fli-ink);box-shadow:inset 0 0 0 3px var(--fli-card);}
.fli-block.main .fli-block-v{color:var(--fli-card);}
.fli-block.main .fli-block-k{color:var(--fli-paper2);}
.fli-block.main .fli-block-u{color:#e9b98f;}

/* ---------- 表格 ---------- */
.fli-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:620px;}
.fli-table th,.fli-table td{border:1px solid var(--fli-line);padding:8px 10px;text-align:left;white-space:nowrap;}
.fli-table thead th{background:var(--fli-paper2);font-size:13px;letter-spacing:.04em;}
.fli-table td{font-family:ui-monospace,"Courier New",monospace;}
.fli-table tr.fli-bad td{background:rgba(164,64,43,.12);color:var(--fli-red);}
.fli-table tr.fli-bad td:last-child{font-weight:700;}
.fli-table .fli-ok{color:var(--fli-blue);}
.fli-preset{min-width:600px;}
.fli-preset tr{cursor:pointer;}
.fli-preset tbody tr:hover td{background:var(--fli-paper2);}
.fli-use{border:1px solid var(--fli-ink);background:transparent;color:var(--fli-ink);font-family:inherit;font-size:12px;padding:3px 10px;cursor:pointer;}

/* ---------- 代码块 ---------- */
.fli-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.fli-code{border:1px solid var(--fli-line);background:var(--fli-paper);display:flex;flex-direction:column;min-width:0;}
.fli-code-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--fli-line);}
.fli-code-head b{font-size:14px;color:var(--fli-ink);}
.fli-code-head span{font-size:11.5px;color:var(--fli-mut);letter-spacing:.08em;}
.fli-code pre{margin:0;padding:12px;font-size:12.5px;line-height:1.65;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--fli-lead);flex:1;}
.fli-code-foot{padding:8px 12px;border-top:1px dashed var(--fli-line);}
.fli-copy{border:1px solid var(--fli-blue);background:transparent;color:var(--fli-blue);font-family:inherit;font-size:13px;padding:5px 14px;cursor:pointer;}
.fli-copy:hover{background:var(--fli-blue);color:var(--fli-card);}

.fli-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:var(--fli-ink);color:var(--fli-card);padding:10px 20px;font-size:14px;z-index:60;border:1px solid var(--fli-red);}

@media (max-width:760px){
  .fli-hero{padding:22px 18px;}
  .fli-sec{padding:18px 15px 22px;}
  .fli-calc-grid,.fli-batch-grid,.fli-code-grid,.fli-blocks{grid-template-columns:1fr;}
  .fli-formula span{border-right:0;padding:3px 10px 3px 0;}
}
