/* 由 ies.css 自动生成：作用域限定到 .tools-wrap，已剔除与本站外框冲突的规则 */
.tools-wrap #iesApp * {margin:0;padding:0;box-sizing:border-box}
.tools-wrap #iesApp {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:linear-gradient(180deg,#f2faf5 0%,#e7f4ee 100%);background-attachment:fixed;color:#334155;line-height:1.6;padding-bottom:8px;border-radius:12px}
.tools-wrap #iesApp .container {max-width:none;margin:0 auto;padding:20px}
.tools-wrap #iesApp .section-title {font-size:18px;font-weight:700;color:#333;margin:24px 0 12px;padding-left:12px;border-left:4px solid #16a34a}
.tools-wrap #iesApp .ref-note {background:#fff;border-left:4px solid #22c55e;border-radius:0 8px 8px 0;padding:12px 16px;font-size:13px;color:#556;margin:12px 0;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.tools-wrap #iesApp .ref-note.amber {border-left-color:#fa8c16;background:#fff7e6}
.tools-wrap #iesApp .import-grid {display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:14px}
@media(max-width:700px) {
.tools-wrap #iesApp .import-grid {grid-template-columns:1fr}
}
.tools-wrap #iesApp .import-card {background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.tools-wrap #iesApp .import-card h3 {font-size:15px;color:#333;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.tools-wrap #iesApp .drop-zone {border:2px dashed #d9d9d9;border-radius:10px;padding:16px 16px;text-align:center;cursor:pointer;transition:all .3s}
.tools-wrap #iesApp .drop-zone:hover {border-color:#16a34a;background:#f0fdf4}
.tools-wrap #iesApp .drop-zone.loaded {border-color:#52c41a;background:#f6ffed}
.tools-wrap #iesApp .drop-zone .dz-icon {font-size:38px;margin-bottom:4px}
.tools-wrap #iesApp .drop-zone .dz-text {color:#999;font-size:14px}
.tools-wrap #iesApp .drop-zone .dz-hint {color:#bbb;font-size:12px;margin-top:4px}
.tools-wrap #iesApp .file-status {font-size:12px;margin-top:6px}
.tools-wrap #iesApp .file-status.gen {color:#16a34a}
.tools-wrap #iesApp .file-status.wind {color:#13c2c2}
.tools-wrap #iesApp .file-status.load {color:#1890ff}
.tools-wrap #iesApp .param-section {background:#fff;border-radius:12px;padding:18px 20px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:16px}
.tools-wrap #iesApp .param-section h3 {font-size:15px;margin-bottom:12px;color:#333}
.tools-wrap #iesApp .param-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 18px}
.tools-wrap #iesApp .param-grid label {font-size:13px;color:#555;display:flex;flex-direction:column;gap:4px}
.tools-wrap #iesApp .param-grid .hint {font-size:11px;color:#aaa}
.tools-wrap #iesApp .param-grid input[type="number"], .tools-wrap #iesApp .param-grid select {padding:7px 10px;border:1px solid var(--slate-200);border-radius:7px;font-size:13px;width:100%;background:#fff;color:var(--slate-800);border-bottom:2px solid var(--green-600);transition:border-color .15s,box-shadow .15s}
.tools-wrap #iesApp .param-grid input:focus, .tools-wrap #iesApp .param-grid select:focus {outline:none;border-color:var(--green-600);box-shadow:0 0 0 3px rgba(22,163,74,.15)}
/* 纯发电无负荷(genOnly)场景：⑦ 税费与电网费用 + 购电电价 自动置0并锁定(变暗) */
.tools-wrap #iesApp .param-grid input[type="number"]:disabled,
.tools-wrap #iesApp .param-grid input.locked {background:#f2f2f2;color:#aaa;border-color:#e3e3e3;cursor:not-allowed;opacity:.7}
.tools-wrap #iesApp .param-sub {font-size:12px;color:#16a34a;font-weight:600;margin:14px 0 6px;display:block}
/* 居中勾选项（三免三减半 / 更换电芯）：留在原 param-grid 单元格内，label 文字与 checkbox 居中 */
.tools-wrap #iesApp .param-grid label.chk-mid {text-align:center;align-items:center}
.tools-wrap #iesApp .param-grid label.chk-mid .hint {display:block;text-align:center}
.tools-wrap #iesCPV, .tools-wrap #iesCWind, .tools-wrap #iesCSto, .tools-wrap #iesOpex, .tools-wrap #iesI, .tools-wrap #iesN {width:90px;max-width:90px}
.tools-wrap #iesApp .econ-row {display:flex;flex-wrap:nowrap;gap:8px;align-items:flex-start;overflow-x:auto}
.tools-wrap #iesApp .econ-row>label {flex:1 1 0;min-width:0;font-size:12px}
.tools-wrap #iesApp .econ-row .hint {font-size:10.5px;line-height:1.35}
.tools-wrap #iesApp .econ-row > label .cap {display:block;min-height:2.8em;line-height:1.4;color:#555}
.tools-wrap #iesApp .action-row {display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0}
.tools-wrap #iesApp .action-row button {padding:10px 28px;background:#16a34a;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600}
.tools-wrap #iesApp .action-row button:hover {background:#15803d}
.tools-wrap #iesApp .action-row button:disabled {background:#d9d9d9;cursor:not-allowed}
.tools-wrap #iesApp .action-row .status {font-size:13px}
.tools-wrap #iesApp .action-row .status.ok {color:#52c41a}
.tools-wrap #iesApp .action-row .status.err {color:#ff4d4f}
.tools-wrap #iesApp .action-row .status.loading {color:#16a34a}
.tools-wrap #iesApp .action-row .status.warn {color:#ff4d4f;font-weight:600}
.tools-wrap #iesApp .action-row .status.warn::before {content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#ff4d4f;margin-right:6px;vertical-align:middle;animation:iesBlink 1.1s infinite}
@keyframes tw_iesBlink {0%,100%{opacity:1}50%{opacity:.25}}
.tools-wrap #iesApp .progress-wrap {flex:1;min-width:200px;height:10px;background:#eee;border-radius:6px;overflow:hidden;display:none}
.tools-wrap #iesApp .progress-wrap.show {display:block}
.tools-wrap #iesApp .progress-bar {height:100%;width:0;background:linear-gradient(90deg,#16a34a,#22c55e);transition:width .15s}
.tools-wrap #iesApp .stats-row {display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.tools-wrap #iesApp .stat-card {background:#fff;border-radius:10px;padding:14px 16px;box-shadow:0 1px 4px rgba(0,0,0,.06);text-align:center}
.tools-wrap #iesApp .stat-card .label {font-size:11px;color:#999;margin-bottom:3px}
.tools-wrap #iesApp .stat-card .value {font-size:21px;font-weight:700;white-space:nowrap}
.tools-wrap #iesApp .stat-card .sub {font-size:10px;color:#bbb;margin-top:1px}
.tools-wrap #iesApp .stat-card.gen .value {color:#16a34a}
.tools-wrap #iesApp .stat-card.wind .value {color:#13c2c2}
.tools-wrap #iesApp .stat-card.load .value {color:#1890ff}
.tools-wrap #iesApp .stat-card.bess .value {color:#52c41a}
.tools-wrap #iesApp .stat-card.waste .value {color:#ef4444}
.tools-wrap #iesApp .stat-card.highlight {background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:1px solid #86efac}
.tools-wrap #iesApp .stat-card.fail {background:#fff2f0;border:1px solid #ffccc7;box-shadow:0 1px 6px rgba(255,77,79,.18)}
.tools-wrap #iesApp .stat-card.fail .value {color:#ff4d4f!important}
.tools-wrap #iesApp .stat-card.fail .sub {color:#cf1322!important;font-weight:600}
.tools-wrap #iesApp .stat-card.fail::after {content:"";position:absolute}
.tools-wrap #iesApp .charts-grid {display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px) {
.tools-wrap #iesApp .charts-grid {grid-template-columns:1fr}
}
.tools-wrap #iesApp .chart-card {background:#fff;border-radius:12px;padding:18px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.tools-wrap #iesApp .chart-card.full-width {grid-column:1/-1}
.tools-wrap #iesApp .half-row {display:flex;gap:16px;grid-column:1/-1}
.tools-wrap #iesApp .half-row .chart-card.half {flex:1;min-width:0}
.tools-wrap #iesApp .chart-card h4 {font-size:15px;color:#333;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #f5f5f5}
.tools-wrap #iesApp .chart-card .chart-wrap {position:relative;width:100%;height:300px}
.tools-wrap #iesApp .chart-card .chart-wrap.heat-wrap {height:auto;min-height:280px}
.tools-wrap #iesApp .chart-card .chart-wrap.canvas {height:340px}
.tools-wrap #iesApp .heat-tip {display:none;position:absolute;background:rgba(0,0,0,.8);color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;pointer-events:none;z-index:10;white-space:nowrap}
.tools-wrap #iesApp .data-table {width:100%;border-collapse:collapse;font-size:13px}
.tools-wrap #iesApp .data-table th {background:#fafafa;padding:7px 8px;text-align:center;border-bottom:2px solid #f0f0f0;color:#666;font-weight:600}
.tools-wrap #iesApp .data-table td {padding:6px 8px;text-align:center;border-bottom:1px solid #f5f5f5}
.tools-wrap #iesApp .data-table tr:hover td {background:#f0fdf4}
.tools-wrap #iesApp .data-table .hl {font-weight:700;color:#16a34a}
.tools-wrap #iesApp .data-table .hl.fail {color:#ff4d4f}
.tools-wrap #iesApp .data-table td.fail {position:relative}
.tools-wrap #iesApp .data-table td.fail::after {content:"⚠";color:#ff4d4f;margin-left:4px;font-size:12px}
.tools-wrap #iesApp .data-table .pos {color:#16a34a}
.tools-wrap #iesApp .data-table .neg {color:#ff4d4f}
.tools-wrap #iesApp .error-msg {display:none;padding:10px 16px;background:#fff2f0;border:1px solid #ffccc7;border-radius:8px;color:#ff4d4f;font-size:13px;margin-top:8px}
.tools-wrap #iesApp .error-msg.show {display:block}
.tools-wrap #iesApp .sample-hint {margin-top:8px;font-size:12px;color:#999;text-align:center}
.tools-wrap #iesApp .sample-hint a {color:#16a34a;cursor:pointer;text-decoration:underline}
.tools-wrap #iesApp .load24-box {background:#fafdff;border:1px solid #e6f0ff;border-radius:8px;padding:12px;margin-top:8px}
.tools-wrap #iesApp .load24-box .load24-tip {font-size:12.5px;line-height:1.65;color:#556;margin-bottom:6px}
.tools-wrap #iesApp .load24-box .load24-row {display:flex;align-items:stretch;gap:12px}
.tools-wrap #iesApp .load24-box textarea {width:100%;flex:1 1 auto;min-width:0;min-height:52px;border:1px solid #d9d9d9;border-radius:6px;padding:8px;font-size:13px;font-family:inherit;resize:vertical}
.tools-wrap #iesApp .load24-box .load24-use {display:flex;align-items:center;gap:6px;font-size:12.5px;color:#166534;cursor:pointer;white-space:nowrap;padding:0 2px;user-select:none}
.tools-wrap #iesApp .load24-box .load24-use input {width:15px;height:15px;cursor:pointer}
.tools-wrap #iesApp .load24-box .load24-notes {display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:12px;line-height:1.6;color:#667}
.tools-wrap #iesApp .load24-box .load24-notes b {color:#166534}
.tools-wrap #iesApp .load24-box .row {display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:12px;color:#667}
.tools-wrap #iesApp .dz-clear, .tools-wrap #pv8760App .dz-clear {margin-left:auto;font-size:12px;padding:2px 9px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;color:#999;cursor:pointer;transition:all .2s}
.tools-wrap #iesApp .dz-clear:hover, .tools-wrap #pv8760App .dz-clear:hover {border-color:#ef4444;color:#ef4444;background:#fef2f2}
.tools-wrap #iesApp .nav-day-btn {padding:2px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;cursor:pointer;font-size:12px;color:#555;transition:all .2s}
.tools-wrap #iesApp .nav-day-btn:hover {border-color:#16a34a;color:#16a34a;background:#f0fdf4}
.tools-wrap #iesApp .nav-day-btn:disabled {cursor:default;opacity:.35}
.tools-wrap #iesApp .param-formula {background:#fff;border:1px solid #d8efe0;border-left:4px solid #16a34a;border-radius:0 8px 8px 0;padding:10px 16px;margin:10px 0 4px;font-size:12.5px;line-height:1.7;color:#4a5a52;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.tools-wrap #iesApp .param-formula ul {margin:6px 0 4px 18px;padding:0}
.tools-wrap #iesApp .param-formula li {margin:3px 0}
.tools-wrap #iesApp .param-formula b {color:#15803d}
.tools-wrap #iesApp .param-formula sub {font-size:10px}
.tools-wrap #iesApp .param-formula .formula-note {display:block;margin-top:6px;padding-top:6px;border-top:1px dashed #d8efe0;color:#667;font-size:12px}
/* 可折叠模块：热力图 / LCOE 公式核对 / 逐月明细 默认收起 */
.tools-wrap #iesApp .chart-card.ies-col {padding-bottom:0}
.tools-wrap #iesApp .ies-col-h {cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:8px}
.tools-wrap #iesApp .ies-col-h .ies-col-ico {flex:0 0 auto;transition:transform .18s;font-size:13px;color:#16a34a;font-weight:700}
.tools-wrap #iesApp .ies-col.open .ies-col-ico {transform:rotate(90deg)}
.tools-wrap #iesApp .ies-col-body {display:none}
.tools-wrap #iesApp .ies-col.open .ies-col-body {display:block}
/* 导出 Word 报告按钮 */
.tools-wrap #iesApp .action-row button.btn-export {background:#fff;color:#16a34a;border:1.5px solid #16a34a}
.tools-wrap #iesApp .action-row button.btn-export:hover:not(:disabled) {background:#f0fdf4}
.tools-wrap #iesApp .action-row button.btn-export:disabled {background:#f5f5f5;color:#bbb;border-color:#e0e0e0;cursor:not-allowed}
/* 接入公共电网容(需)量基准：寻优后自动回填(暗显)样式 */
.tools-wrap #iesApp #iesFeeCapConn.auto-filled {background:#f1f8f4;color:#0e7a52;border-color:#9fd9bf;font-style:italic}
.tools-wrap #iesApp .capconn-auto {display:none;margin-top:4px;font-size:12px;color:#16a34a;font-weight:600}
