.tool-intro{max-width:800px}
.tool-intro .lede{margin-bottom:.65rem}
.privacy-inline{display:flex;align-items:center;gap:.45rem;color:#566474;font-size:.9rem}
.privacy-inline::before{content:"";width:8px;height:8px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 4px rgba(34,160,107,.12)}
.workbench{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.35fr);gap:1.25rem;align-items:start;margin:1.4rem 0 2.5rem}
.input-panel,.result-panel{border:1px solid #d7e0e8;border-radius:18px;overflow:hidden;box-shadow:0 16px 42px rgba(32,45,58,.08)}
.input-panel{background:#fff;padding:1.25rem}
.result-panel{background:#f7f9fb}
.panel-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}
.panel-heading h2,.result-head h2{margin:0;font-size:1.15rem}
.panel-heading p{margin:.25rem 0 0;color:#5d6a78;font-size:.9rem}
.result-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;background:#15212b;color:#edf4fa}
.result-head small{color:#aebdca}
.tool-fields{display:grid;gap:1rem}
.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.tool-field{display:grid;gap:.42rem}
.tool-field label,.tool-field legend{font-size:.9rem;font-weight:750;color:#283746}
.tool-field input,.tool-field select,.tool-field textarea{width:100%;border:1px solid #c7d2dc;border-radius:10px;background:#fff;color:#15202b;font:inherit;font-size:1rem}
.tool-field input,.tool-field select{min-height:46px;padding:.65rem .72rem}
.tool-field textarea{min-height:255px;padding:.78rem;resize:vertical;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.88rem;tab-size:2}
.tool-field textarea.short{min-height:100px}
.tool-field input:focus,.tool-field select:focus,.tool-field textarea:focus{outline:3px solid rgba(38,126,219,.17);border-color:#267edb}
.field-help{color:#667484;font-size:.8rem;line-height:1.45}
.tool-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.tool-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.55rem .82rem;border:1px solid #bfcbd6;border-radius:9px;background:#fff;color:#263746;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer}
.tool-button:hover{background:#eef5fb;border-color:#78a9d4}
.tool-button.primary{background:#156ec2;border-color:#156ec2;color:#fff}
.tool-button.primary:hover{background:#0e5ea9}
.tool-button.subtle{background:#f5f7f9}
.tool-button:disabled{opacity:.5;cursor:not-allowed}
.sample-row{display:flex;flex-wrap:wrap;gap:.45rem}
.sample-row .tool-button{min-height:36px;padding:.4rem .65rem;font-size:.82rem}
.check-row{display:flex;align-items:flex-start;gap:.6rem;font-size:.9rem;line-height:1.45}
.check-row input{width:18px;height:18px;margin:.15rem 0 0}
.result-body{padding:1.05rem;min-height:420px}
.empty-state{display:grid;place-items:center;min-height:340px;padding:2rem;text-align:center;color:#657382}
.empty-state strong{display:block;margin-bottom:.35rem;color:#263746;font-size:1.05rem}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;margin-bottom:1rem}
.stat{padding:.75rem;border:1px solid #dbe3ea;border-radius:10px;background:#fff}
.stat span{display:block;color:#697685;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}
.stat strong{display:block;margin-top:.18rem;color:#172432;font-size:1.25rem}
.notice{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.8rem;padding:.72rem .8rem;border-radius:9px;background:#eaf4ff;color:#264b6d;font-size:.87rem;line-height:1.45}
.notice.warn{background:#fff3d7;color:#684d12}.notice.error{background:#fee9e7;color:#7c2922}.notice.ok{background:#e6f7ed;color:#155d38}
.table-scroll{overflow:auto;border:1px solid #dbe3ea;border-radius:10px;background:#fff}
.tool-table{width:100%;border-collapse:collapse;font-size:.84rem}
.tool-table th,.tool-table td{padding:.67rem .7rem;border-bottom:1px solid #e4eaf0;text-align:left;vertical-align:top;white-space:nowrap}
.tool-table th{position:sticky;top:0;background:#edf2f6;color:#405161;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.tool-table tr:last-child td{border-bottom:0}.tool-table code{font-size:.8rem}
.badge{display:inline-flex;align-items:center;min-height:24px;padding:.15rem .48rem;border-radius:999px;background:#e8eef4;color:#3e5264;font-size:.75rem;font-weight:750}
.badge.ok{background:#daf4e5;color:#17623b}.badge.warn{background:#ffedc0;color:#6e4c00}.badge.error{background:#fde0dd;color:#862b23}.badge.info{background:#dceeff;color:#1b568a}
.finding-list,.mapping-list,.explain-list{display:grid;gap:.75rem}
.finding,.mapping-card,.explain-card{padding:.85rem;border:1px solid #dbe3ea;border-radius:10px;background:#fff}
.finding{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start}
.finding h3,.mapping-card h3,.explain-card h3{margin:0 0 .25rem;font-size:.98rem}
.finding p,.mapping-card p,.explain-card p{margin:0;color:#576675;font-size:.87rem;line-height:1.5}
.finding code,.mapping-card code,.explain-card code{font-size:.82rem}
.mapping-route{display:grid;grid-template-columns:1fr auto 1fr;gap:.7rem;align-items:center;margin:.65rem 0}
.mapping-node{padding:.62rem;border-radius:8px;background:#f0f4f7}.mapping-node span{display:block;color:#6b7886;font-size:.73rem}.mapping-node strong{font-size:.92rem}
.mapping-arrow{color:#637789;font-size:1.25rem}
.origin-strip{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:.4rem;align-items:center;margin-bottom:1rem;padding:.8rem;border:1px solid #dbe3ea;border-radius:10px;background:#fff;font-size:.85rem}
.origin-part{padding:.45rem .55rem;border-radius:7px;background:#edf4fa;overflow-wrap:anywhere}.origin-part span{display:block;color:#687787;font-size:.7rem;text-transform:uppercase}
.origin-separator{color:#738292;font-weight:800}
.code-output{position:relative;margin:0;padding:1rem;border-radius:10px;background:#101820;color:#76dc9c;overflow:auto;font-size:.85rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.result-toolbar{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:space-between;align-items:center;margin-bottom:.85rem}
.filter-input{min-height:40px;max-width:220px;padding:.45rem .65rem;border:1px solid #c7d2dc;border-radius:8px;font:inherit}
.tools-directory{margin:2rem 0}.tools-directory .card small{color:#54687a}
.tool-toast{position:fixed;right:1.2rem;bottom:1.2rem;z-index:30;padding:.7rem .95rem;border-radius:9px;background:#15212b;color:#fff;box-shadow:0 10px 28px rgba(0,0,0,.24);opacity:0;transform:translateY(16px);pointer-events:none;transition:.18s}.tool-toast.show{opacity:1;transform:none}
@media(max-width:900px){.workbench{grid-template-columns:1fr}.result-body{min-height:auto}.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.two-fields{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.origin-strip{grid-template-columns:1fr}.origin-separator{display:none}.mapping-route{grid-template-columns:1fr}.mapping-arrow{transform:rotate(90deg);justify-self:center}.result-head{align-items:flex-start}.tool-table th,.tool-table td{padding:.58rem}}
@media(prefers-reduced-motion:reduce){.tool-toast{transition:none}}
