.intro-tool { min-width:0; border:1px solid var(--line); border-radius:12px; background:var(--paper); padding:clamp(14px,3vw,28px); }
.intro-tool header h2 { margin-top:0; }
.intro-tool fieldset { min-width:0; border:1px solid var(--line); border-radius:10px; padding:14px; margin:14px 0; }
.intro-tool legend { padding:0 5px; font-weight:700; }
.intro-tool-field { display:flex; flex-direction:column; gap:6px; min-width:0; margin:12px 0; }
.intro-tool-field>span { font-weight:650; }
.intro-tool-field input,.intro-tool-field select,.intro-tool-field textarea { width:100%; min-width:0; max-width:100%; box-sizing:border-box; }
.intro-tool-field small { color:var(--muted); line-height:1.5; }
.intro-tool-fields,.intro-budget-rows { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:14px; }
.intro-budget-rows fieldset { margin:0; }
.intro-tool-check { display:flex; align-items:center; gap:10px; min-height:44px; margin:12px 0; }
.intro-tool-check input { flex:0 0 auto; width:20px; height:20px; }
.intro-tool-actions { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.intro-tool-actions button { min-height:44px; white-space:normal; }
.intro-tool-result { margin:24px 0; padding-top:12px; border-top:1px solid var(--line); }
.intro-tool-result h3 { margin-top:0; }
.intro-tool-total { font-size:1.1em; font-weight:700; }
.intro-tool-table { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.intro-tool-table table { width:100%; font-size:.92em; }
.intro-tool-table th,.intro-tool-table td { overflow-wrap:anywhere; }
.intro-tool-table caption { text-align:left; font-weight:650; margin-bottom:8px; }
.intro-budget-bars { display:grid; gap:10px; margin-top:18px; }
.intro-budget-bars>div { display:grid; gap:3px; }
.intro-budget-bar { height:10px; width:var(--intro-bar); background:var(--accent); border-radius:3px; }
.intro-bit-buttons { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:18px 0; }
.intro-bit-buttons button { display:grid; gap:6px; padding:10px 4px; text-align:center; min-height:72px; }
.intro-bit-buttons span { font-size:.85em; }
.intro-bit-buttons strong { font-size:1.4em; }
.intro-bit-buttons button[aria-pressed=true] { background:var(--soft); border:2px solid var(--accent); }
.intro-hardware-steps { padding-left:24px; }
.intro-hardware-steps li { padding:6px; }
.intro-hardware-steps [aria-current=step] { background:var(--soft); border-left:4px solid var(--accent); font-weight:700; }
.intro-tool-code { white-space:pre-wrap; overflow-wrap:anywhere; }
.intro-tool [data-state=warning] { border-left:3px solid #b5690b; padding:8px 12px; background:color-mix(in srgb,#e6ad37 12%,transparent); }
.intro-tool [data-intro-save] { font-size:.9em; }
.intro-tool details { margin-top:14px; }
.intro-tool button:focus-visible,.intro-tool input:focus-visible,.intro-tool select:focus-visible,.intro-tool textarea:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:480px){.intro-bit-buttons{gap:5px}.intro-bit-buttons span{font-size:.72em}.intro-tool-actions button{flex:1 1 130px}.intro-tool-table table{font-size:.82em}}
@media print{.intro-tool-actions,.intro-tool [data-intro-save]{display:none}.intro-tool{break-inside:auto;border:0}.intro-tool-result{break-inside:avoid}.intro-tool-table{overflow:visible}}

@media(max-width:600px){
 .intro-tool-table table,.intro-tool-table tbody,.intro-tool-table tr{display:block;width:100%}
 .intro-tool-table table{font-size:1em}
 .intro-tool-table caption{display:block;width:100%;margin-bottom:10px}
 .intro-tool-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .intro-tool-table tr{border:1px solid var(--line);border-radius:8px;padding:10px;margin:10px 0}
 .intro-tool-table th[scope=row]{display:block;border:0;padding:0 0 8px;font-size:1.05em}
 .intro-tool-table td{display:block;border:0;padding:7px 0}
 .intro-tool-table td::before{content:attr(data-label);display:block;font-size:.82em;font-weight:650;color:var(--muted)}
}

