.tool__app {   --accent:#0047AB; --ok:#1a7f37; --warn:#b3801a; --bad:#b3261e; --border:#ddd; --radius:8px;  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.tool__app .panel { background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:24px; margin-bottom:24px; }
.tool__app .panel h2 { font-size:18px; font-weight:800; margin:0 0 16px; }
.tool__app textarea { width:100%; min-height:130px; padding:12px; border:1px solid #ccc; border-radius:6px; font-family:var(--mono); font-size:13px; resize:vertical; }
.tool__app .row { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-top:14px; }
.tool__app .btn { background:var(--accent); color:#fff; border:none; padding:11px 22px; border-radius:6px; font-weight:700; font-size:14px; cursor:pointer; }
.tool__app .btn.sec { background:#fff; color:var(--accent); border:1px solid var(--accent); }
.tool__app .btn.small { padding:7px 14px; font-size:12px; }
.tool__app label.file { display:inline-block; }
.tool__app .file input { display:none; }
.tool__app .muted { font-size:12.5px; color: #666; }
.tool__app .map-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:14px; }
.tool__app .map-grid label { display:block; font-size:11px; font-weight:700; text-transform:uppercase; color:#666; margin-bottom:4px; letter-spacing:.5px; }
.tool__app select { width:100%; padding:9px; border:1px solid #ccc; border-radius:6px; font-size:14px; background:#fff; }
.tool__app .controls { display:flex; flex-wrap:wrap; gap:18px; align-items:center; margin:6px 0 4px; }
.tool__app .seg { display:inline-flex; border:1px solid var(--accent); border-radius:6px; overflow:hidden; }
.tool__app .seg button { background:#fff; color:var(--accent); border:none; padding:8px 16px; font-weight:700; font-size:13px; cursor:pointer; }
.tool__app .seg button.active { background:var(--accent); color:#fff; }
.tool__app .chk { display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; cursor:pointer; }
.tool__app .stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px; margin-bottom:18px; }
.tool__app .stat { border:1px solid var(--border); border-radius:8px; padding:14px; background:#fff; }
.tool__app .stat .lbl { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color: #5c5c5c; font-weight:700; }
.tool__app .stat .v { font-size:22px; font-weight:800; margin-top:3px; }
.tool__app .stat.bad .v { color:var(--bad); }
.tool__app th, .tool__app td { border-bottom:1px solid #eee; padding:9px 10px; text-align:right; }
.tool__app th:first-child, .tool__app td:first-child { text-align:left; }
.tool__app th { background:#f4f4f4; cursor:pointer; user-select:none; white-space:nowrap; position:sticky; top:0; }
.tool__app th.first2 { text-align:left; }
.tool__app tr.wasted td { background:#fdf3f2; }
.tool__app .tbl-wrap { max-height:560px; overflow:auto; border:1px solid var(--border); border-radius:8px; }
.tool__app .minus-box { margin-top:16px; }
.tool__app .steps { counter-reset:s; list-style:none; padding:0; }
.tool__app .steps li { position:relative; padding:4px 0 18px 44px; }
.tool__app .steps li::before { counter-increment:s; content:counter(s); position:absolute; left:0; top:2px; width:30px; height:30px; background:#000; color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; }
.tool__app .hidden { display:none; }