/* 冰箱橱柜预留尺寸 · 装修蓝图（独立设计系统：蓝图蓝、网格、橙色标注线） */
.fr-page,.fr-modal,.fr-toast{
    --f-bg:#eaf1f8;--f-card:#fff;--f-card2:#f3f8fd;--f-ink:#1b3549;--f-ink2:#4c6b82;--f-ink3:#8aa2b5;
    --f-line:#d3e1ee;--f-soft:#e2edf7;--f-blue:#1e4f7a;--f-blue2:#dceaf7;--f-orange:#d9772f;--f-orange2:#fbecd8;
    --f-shadow:0 12px 32px rgba(24,64,98,.12);--f-shadow2:0 3px 12px rgba(24,64,98,.08);
    --f-r:6px;--f-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
    --f-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
    --f-xs:12px;--f-sm:13.5px;--f-base:15px;--f-md:17px;--f-lg:21px;--f-xl:25px;--f-hero:35px;--f-lh:1.76;
}
:root[data-theme="dark"] .fr-page,:root[data-theme="dark"] .fr-modal,:root[data-theme="dark"] .fr-toast{
    --f-bg:#101a24;--f-card:#172838;--f-card2:#1e3244;--f-ink:#e2edf6;--f-ink2:#aac3d6;--f-ink3:#7f9bae;
    --f-line:#2c465c;--f-soft:#23394d;--f-blue:#7fc0f0;--f-blue2:#1d3b52;--f-orange:#f0a05a;--f-orange2:#3c2e1d;
    --f-shadow:0 14px 36px rgba(0,0,0,.46);--f-shadow2:0 3px 14px rgba(0,0,0,.3);
}
.fr-page{min-height:60vh;padding:22px 16px 54px;color:var(--f-ink);font:var(--f-base)/var(--f-lh) var(--f-sans);
    background:var(--f-bg);background-image:linear-gradient(90deg,rgba(30,79,122,.055) 1px,transparent 1px),linear-gradient(0deg,rgba(30,79,122,.055) 1px,transparent 1px);background-size:24px 24px}
.fr-page *,.fr-modal *{box-sizing:border-box}
.fr-wrap{max-width:1160px;margin:0 auto}
.fr-page h1,.fr-page h2,.fr-page h3,.fr-modal h3{font-weight:800;line-height:1.32;letter-spacing:-.01em}
.fr-page b,.fr-page strong{color:var(--f-orange);font-weight:800}
.fr-page button,.fr-page input,.fr-page select,.fr-page textarea{font-family:inherit;font-size:inherit}
.fr-page .detail-breadcrumb{margin-bottom:16px}
/* 首屏 */
.fr-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.55fr);gap:26px;align-items:center;
    background:var(--f-card);border:1px solid var(--f-line);border-radius:var(--f-r);box-shadow:var(--f-shadow);padding:28px 32px;overflow:hidden;position:relative}
.fr-hero::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--f-orange)}
.fr-kicker{display:inline-block;font:var(--f-xs)/1.6 var(--f-mono);letter-spacing:.1em;color:var(--f-blue);border:1px solid var(--f-blue);border-radius:3px;padding:3px 10px;margin-bottom:13px}
.fr-hero h1{font-size:clamp(24px,2.9vw,var(--f-hero));margin:0 0 12px}
.fr-sub{margin:0 0 20px;font-size:var(--f-md);color:var(--f-ink2);max-width:700px}
.fr-hero-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--f-line)}
.fr-metric{background:var(--f-card2);border-right:1px solid var(--f-line);padding:9px 11px;text-align:center;min-width:0}
.fr-metric:last-child{border-right:0}
.fr-metric b{display:block;font:800 var(--f-xl)/1.2 var(--f-mono);color:var(--f-blue)}
.fr-metric:nth-child(2) b{color:var(--f-orange)}
.fr-metric span{font-size:var(--f-xs);color:var(--f-ink3)}
/* 蓝图剖面 */
.fr-blueprint{text-align:center}
.fr-bp-cabinet{position:relative;width:178px;height:142px;margin:0 auto;border:2px dashed var(--f-blue);background:repeating-linear-gradient(45deg,transparent 0 8px,rgba(30,79,122,.055) 8px 9px);border-radius:2px;display:flex;align-items:flex-end;justify-content:center}
.fr-bp-fridge{width:66%;height:88%;background:linear-gradient(160deg,var(--f-blue2),var(--f-blue));border:1px solid var(--f-blue);border-radius:2px 2px 0 0;transition:width .3s}
.fr-bp-gap{position:absolute;bottom:0;width:15%;height:88%;background:var(--f-orange2);border-left:1px dashed var(--f-orange);border-right:1px dashed var(--f-orange)}
.fr-bp-gap--l{left:2px}.fr-bp-gap--r{right:2px}
.fr-bp-dim{margin-top:8px;font:700 var(--f-sm)/1.5 var(--f-mono);color:var(--f-orange)}
.fr-bp-note{font:var(--f-xs)/1.5 var(--f-mono);color:var(--f-ink3)}
/* 口径 */
.fr-notice{display:flex;gap:12px;align-items:flex-start;background:var(--f-orange2);border:1px solid var(--f-line);border-left:4px solid var(--f-orange);border-radius:5px;padding:11px 15px;margin:14px 0 16px}
.fr-notice-tag{flex:none;font-size:var(--f-xs);color:#fff;background:var(--f-blue);border-radius:3px;padding:2px 8px;margin-top:3px}
.fr-notice p{margin:0;font-size:var(--f-sm);color:var(--f-ink2)}
/* 查询台 */
.fr-query{background:var(--f-card);border:1px solid var(--f-line);border-radius:var(--f-r);box-shadow:var(--f-shadow2);padding:19px 21px 16px;margin-bottom:16px}
.fr-query-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:12px}
.fr-query-head h2{margin:0;font-size:var(--f-lg)}
.fr-query-head span{font:var(--f-xs)/1.6 var(--f-mono);color:var(--f-ink3)}
.fr-models{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:7px;margin-bottom:14px}
.fr-model{border:1px solid var(--f-line);border-left:3px solid var(--f-blue);background:var(--f-card2);border-radius:4px;padding:8px 10px;cursor:pointer;text-align:left;min-width:0}
.fr-model:hover{border-color:var(--f-orange)}
.fr-model.is-on{background:var(--f-blue2);border-color:var(--f-orange)}
.fr-model b{display:block;font-size:var(--f-xs);color:var(--f-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-model span{display:block;font:11px/1.5 var(--f-mono);color:var(--f-ink3)}
.fr-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.fr-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.fr-field>span{font-size:var(--f-xs);font-weight:700;color:var(--f-ink2)}
.fr-field em{font-style:normal;color:var(--f-ink3);font-family:var(--f-mono)}
.fr-field input,.fr-field select,.fr-input{width:100%;height:42px;border:1px solid var(--f-line);background:var(--f-card2);color:var(--f-ink);border-radius:4px;padding:0 9px;outline:0;font-family:var(--f-mono);font-size:var(--f-sm)}
.fr-field input:focus,.fr-field select:focus{border-color:var(--f-orange);box-shadow:0 0 0 3px var(--f-orange2)}
.fr-btn{border:1px solid var(--f-line);background:var(--f-card2);color:var(--f-ink);border-radius:4px;padding:0 14px;min-height:38px;cursor:pointer;font-weight:700;font-size:var(--f-sm);white-space:nowrap;transition:.16s}
.fr-btn:hover{border-color:var(--f-orange);box-shadow:var(--f-shadow2)}
.fr-btn--main{background:var(--f-blue);border-color:var(--f-blue);color:#fff;min-height:42px;padding:0 22px}
.fr-btn--main:hover{background:#173f63}
.fr-quick{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:12px}
.fr-quick>span{font-size:var(--f-xs);color:var(--f-ink3)}
.fr-quick button{border:1px solid var(--f-line);background:var(--f-card2);color:var(--f-ink2);border-radius:3px;padding:4px 11px;font-size:var(--f-xs);cursor:pointer}
.fr-quick button:hover{border-color:var(--f-orange);background:var(--f-orange2)}
.fr-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--f-line)}
.fr-error{margin:12px 0 0;padding:9px 12px;border-radius:4px;background:var(--f-orange2);color:var(--f-ink2);font-size:var(--f-sm)}
/* 结果 */
.fr-result,.fr-gaps,.fr-panel{background:var(--f-card);border:1px solid var(--f-line);border-radius:var(--f-r);padding:19px 21px;margin-bottom:16px;box-shadow:var(--f-shadow2)}
.fr-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:13px}
.fr-section-head h2{margin:0;font-size:var(--f-lg)}
.fr-section-head p{margin:0;font-size:var(--f-sm);color:var(--f-ink3)}
.fr-result-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:14px}
.fr-big{background:linear-gradient(150deg,var(--f-blue),#153d5f);border-radius:5px;padding:18px 20px;color:#fff;min-width:0}
.fr-big-label{font:var(--f-xs)/1.5 var(--f-mono);letter-spacing:.08em;opacity:.85}
.fr-big-num{display:flex;align-items:baseline;gap:8px;margin:5px 0 3px}
.fr-big-num b{font:800 clamp(36px,5vw,54px)/1 var(--f-mono)}
.fr-big-num i{font-style:normal;font-size:var(--f-md)}
.fr-big-sub{font-size:var(--f-sm);opacity:.9}
.fr-big-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.25);overflow:hidden;margin-top:16px}
.fr-big-bar i{display:block;height:100%;background:var(--f-orange);transition:width .3s}
.fr-dims{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-content:start}
.fr-dim{background:var(--f-card2);border:1px solid var(--f-soft);border-bottom:3px solid var(--f-blue);border-radius:4px;padding:9px 12px;min-width:0}
.fr-dim span{display:block;font-size:var(--f-xs);color:var(--f-ink3)}
.fr-dim b{display:block;font:800 var(--f-md)/1.5 var(--f-mono);color:var(--f-ink);word-break:break-all}
.fr-dim em{display:block;font-style:normal;font-size:11px;color:var(--f-ink2)}
/* 边距 */
.fr-gap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px}
.fr-gap{background:var(--f-card2);border:1px solid var(--f-soft);border-left:3px solid var(--f-orange);border-radius:4px;padding:10px 13px;min-width:0}
.fr-gap span{display:block;font-size:var(--f-xs);color:var(--f-ink3)}
.fr-gap b{display:block;font:800 var(--f-lg)/1.4 var(--f-mono);color:var(--f-blue)}
.fr-gap p{margin:3px 0 0;font-size:11px;color:var(--f-ink2)}
/* 双栏 */
.fr-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fr-two-col>*{min-width:0}
.fr-panel h2{margin:0 0 6px;font-size:var(--f-lg)}
.fr-panel-hint{margin:0 0 12px;font-size:var(--f-sm);color:var(--f-ink3)}
.fr-panel textarea{width:100%;resize:vertical;border:1px solid var(--f-line);border-radius:4px;background:var(--f-card2);color:var(--f-ink);padding:10px 12px;font:var(--f-sm)/1.7 var(--f-mono);outline:0}
.fr-panel textarea:focus{border-color:var(--f-orange)}
.fr-panel-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fr-panel-actions .fr-btn{min-height:34px;padding:0 13px;font-size:var(--f-xs)}
.fr-batch-out,.fr-import-out{margin-top:12px;font-size:var(--f-sm)}
.fr-sum{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:9px}
.fr-chip{font:var(--f-xs)/1.6 var(--f-mono);border-radius:3px;padding:3px 10px;background:var(--f-blue2);color:var(--f-blue)}
.fr-chip--bad{background:var(--f-orange2);color:var(--f-ink2)}
.fr-small-list{display:flex;flex-wrap:wrap;gap:6px}
.fr-small-list span{border:1px solid var(--f-line);border-radius:3px;padding:3px 9px;font:var(--f-xs)/1.6 var(--f-mono);color:var(--f-ink2);word-break:break-all}
.fr-import-list{margin:8px 0 0;padding-left:18px;color:var(--f-ink2);font-size:var(--f-xs)}
.fr-page .tskb{color:var(--f-ink)}
.fr-page .tskb-card,.fr-page .tskb-panel,.fr-page .tskb-related{background:var(--f-card);border-color:var(--f-line);color:var(--f-ink)}
/* 浮层 */
.fr-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:18px}
.fr-modal[hidden],.fr-toast[hidden]{display:none!important}
.fr-modal-mask{position:absolute;inset:0;background:rgba(16,38,56,.62);backdrop-filter:blur(2px)}
.fr-modal-card{position:relative;width:min(520px,100%);max-height:86vh;overflow:auto;background:var(--f-card);border:1px solid var(--f-line);border-top:4px solid var(--f-orange);border-radius:5px;box-shadow:var(--f-shadow);padding:23px 25px;color:var(--f-ink)}
.fr-modal-x{position:absolute;right:12px;top:9px;border:0;background:transparent;color:var(--f-ink3);font-size:26px;cursor:pointer}
.fr-modal-kicker{font:var(--f-xs)/1.5 var(--f-mono);letter-spacing:.08em;color:var(--f-orange)}
.fr-modal-card h3{font-size:var(--f-xl);margin:4px 0 12px}
.fr-modal-card p{font-size:var(--f-sm);color:var(--f-ink2);margin:0 0 12px}
.fr-modal-card .fr-input{width:100%}
.fr-modal-foot{margin-top:16px;display:flex;justify-content:flex-end}
.fr-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);z-index:9500;background:var(--f-blue);color:#fff;border-radius:4px;padding:10px 18px;font-size:var(--f-sm);box-shadow:var(--f-shadow);max-width:min(90vw,520px)}
/* 响应式 */
@media(max-width:920px){.fr-hero{grid-template-columns:1fr}.fr-blueprint{max-width:250px}.fr-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.fr-result-grid{grid-template-columns:1fr}.fr-two-col{grid-template-columns:1fr}}
@media(max-width:620px){.fr-page{padding:14px 10px 40px}.fr-hero{padding:20px 17px}.fr-blueprint{display:none}.fr-hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.fr-query,.fr-result,.fr-gaps,.fr-panel{padding:15px 14px}.fr-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.fr-btn--main{width:100%}.fr-actions .fr-btn{flex:1}.fr-models{grid-template-columns:repeat(2,minmax(0,1fr))}.fr-notice{flex-direction:column;gap:6px}}
@media(max-width:640px){.tool-rec{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;box-sizing:border-box}.tool-rec-grid{grid-template-columns:minmax(0,1fr)!important}.tool-rec-item{min-width:0!important;width:100%!important;box-sizing:border-box}.tool-rec-body,.tool-rec-body b,.tool-rec-body small{min-width:0;max-width:100%;overflow-wrap:anywhere}.tskb-card{overflow-x:auto}.tskb-legend{min-width:0;width:100%;table-layout:fixed}.tskb-legend th,.tskb-legend td{overflow-wrap:anywhere;word-break:break-word;white-space:normal}.tskb-tabs{flex-wrap:wrap}}
@media print{.fr-query,.fr-quick,.fr-modal,.fr-toast{display:none!important}.fr-page{background:#fff}}
