:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--ink:#1d1d1f;--muted:#6e6e73;--blue:#0071e3;--blue-hover:#0077ed;--surface:#f5f5f7;--line:#dedee3;--ok:#176840;--ok-bg:#f4fbf7;--warn:#725b1e;--warn-bg:#fffaf0;--danger:#8f2929;--danger-bg:#fff6f6}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,summary,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:650;letter-spacing:-.045em;line-height:1.1}.page-shell{width:min(1080px,calc(100% - 80px));margin:auto}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #00000009}.brand{display:flex;align-items:center;gap:22px;font-size:16px;font-weight:600;letter-spacing:-.025em}.brand img{display:block;width:76px;height:auto}.brand>span{border-left:1px solid var(--line);padding-left:22px}.top-actions{display:flex;align-items:center;gap:20px}.home-link{font-size:12px;display:inline-flex;align-items:center;min-height:44px}.home-link:hover,footer a:hover,.text-link:hover{color:var(--blue)}.skip-link{position:fixed;top:8px;left:8px;z-index:50;padding:12px 20px;background:#fff;transform:translateY(-160%)}.skip-link:focus{transform:none}
main.tool-main{max-width:650px;margin:auto;padding:42px 0 54px}.page-intro{text-align:center;margin-bottom:34px}.page-intro h1{font-size:clamp(34px,7vw,48px)}.page-intro p{font-size:17px;color:var(--muted);margin:17px auto 0;max-width:570px}.privacy-pill{display:inline-flex;gap:.45rem;align-items:center;margin-top:16px;padding:8px 12px;border:1px solid #d8e8df;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-weight:700;font-size:.78rem}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:600;color:var(--muted);margin-bottom:12px}.step-card{background:var(--surface);border-radius:24px;padding:36px 40px}.step-card+.step-card{margin-top:18px}.step-card h2{font-size:30px}.intro{margin-top:13px;color:var(--muted);font-size:15px}.progress{display:flex;align-items:center;justify-content:center;gap:22px;list-style:none;margin:0;padding:0 16px 22px;font-size:12px;color:var(--muted)}.progress li{display:flex;align-items:center;gap:8px}.progress li>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ededf0;font-size:11px}.progress .active{color:var(--ink);font-weight:600}.progress .active>span{background:var(--ink);color:#fff}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label,.field .label{font-size:13px;font-weight:650}.field small,.help-text{font-size:11px;color:var(--muted);line-height:1.45}.input,.select,.textarea{width:100%;min-height:48px;border:1px solid #d2d2d7;border-radius:13px;background:#fff;color:var(--ink);padding:12px 13px}.textarea{min-height:180px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55}.input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.input-row .input{border-radius:13px 0 0 13px}.unit{display:grid;place-items:center;min-width:58px;border:1px solid #d2d2d7;border-left:0;border-radius:0 13px 13px 0;background:#fafafa;color:var(--muted);font-size:12px;padding:0 10px}.check-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.check-row:first-child{border-top:0}.check-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--blue);flex:0 0 auto}.check-row strong{display:block;font-size:14px}.check-row small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.range-row{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:12px;align-items:center}.range-row input[type=range]{width:100%;accent-color:var(--blue)}.range-value{text-align:center;font-size:12px;font-weight:700;padding:7px 8px;border-radius:9px;background:#fff;border:1px solid #d2d2d7}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border:0;border-radius:26px;padding:13px 22px;background:var(--blue);color:#fff;font-size:16px;font-weight:600}.button:hover:not(:disabled){background:var(--blue-hover)}.button:disabled{background:#e2e2e7;color:var(--muted)}.button.full{width:100%;margin-top:24px}.button.secondary{background:#fff;color:var(--ink);border:1px solid #d2d2d7}.button.secondary:hover{background:#fff;border-color:#a8a8ad}.button.dark{background:#1d1d1f}.button.dark:hover{background:#323235}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.text-link{color:var(--blue);font-size:13px}.quiet{text-align:center;color:var(--muted);font-size:11px;margin-top:18px}
.result-card{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.result-card h3{font-size:19px;letter-spacing:-.025em}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.result-item{padding:14px;border-radius:13px;background:#fafafa}.result-item span{display:block;color:var(--muted);font-size:11px}.result-item strong{display:block;margin-top:4px;font-size:20px;letter-spacing:-.03em}.result-item.primary{background:#eef6ff}.result-item.primary strong{color:#005bb5}.summary-list{display:grid;gap:0;margin-top:14px}.summary-row{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-top:1px solid #ececef;font-size:13px}.summary-row:first-child{border-top:0}.summary-row span{color:var(--muted)}.summary-row strong{text-align:right}.notice{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;font-size:12px;line-height:1.55}.notice.ok{background:var(--ok-bg);border-color:#d8e8df;color:var(--ok)}.notice.warn{background:var(--warn-bg);border-color:#eadfbd;color:var(--warn)}.notice.danger{background:var(--danger-bg);border-color:#f0caca;color:var(--danger)}.notice strong{color:inherit}.advanced{border-top:1px solid var(--line);margin-top:24px}.advanced summary{padding:17px 0 0;cursor:pointer;color:var(--muted);font-size:12px}.advanced[open] summary{padding-bottom:16px}.code-box{position:relative;margin-top:18px}.code-box pre{margin:0;padding:18px;background:#111;color:#f5f5f7;border-radius:15px;overflow:auto;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre}.copy-mini{position:absolute;top:9px;right:9px;border:0;border-radius:999px;background:#fff;color:#111;padding:7px 10px;font-size:10px;font-weight:700}.canvas-shell{margin-top:20px;border-radius:16px;overflow:hidden;background:#fff;border:1px solid var(--line);min-height:220px;display:grid;place-items:center}.canvas-shell canvas,.canvas-shell svg{max-width:100%;height:auto;display:block}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.preview-panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.preview-panel header{padding:11px 13px;border-bottom:1px solid var(--line);font-size:11px;font-weight:700;color:var(--muted)}.preview-panel>div{min-height:220px;display:grid;place-items:center;padding:12px;background-image:linear-gradient(45deg,#f2f2f2 25%,transparent 25%),linear-gradient(-45deg,#f2f2f2 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f2f2f2 75%),linear-gradient(-45deg,transparent 75%,#f2f2f2 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.preview-panel img,.preview-panel svg,.preview-panel canvas{max-width:100%;max-height:360px}.status-line{margin-top:12px;color:var(--muted);font-size:11px;text-align:center}
.drop-zone{position:relative;min-height:240px;margin-top:24px;border:2px dashed #cfd4d1;border-radius:19px;display:grid;place-items:center;text-align:center;padding:30px;background:linear-gradient(180deg,#fff,#f8f9f8);transition:border-color .18s ease,background .18s ease,transform .18s ease;cursor:pointer;overflow:hidden}.drop-zone:hover,.drop-zone.dragging{border-color:var(--blue);background:#f2f8ff;transform:translateY(-1px)}.drop-zone.has-file{min-height:150px}.drop-zone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.drop-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:18px;display:grid;place-items:center;background:#111;color:#fff;font-size:1.8rem}.drop-zone h3{margin:0 0 8px;font-size:1.2rem;letter-spacing:-.025em}.drop-zone p{margin:0 auto;max-width:430px;color:var(--muted);font-size:13px;line-height:1.5}.drop-zone .button{margin-top:18px;pointer-events:none}.drop-file-name{display:none;margin-top:12px;font-size:12px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}.drop-zone.has-file .drop-file-name{display:block}.drop-zone.has-file .drop-icon{background:var(--ok);font-size:1.4rem}.drop-zone.has-file h3{font-size:1.05rem}.drop-zone.has-file .button{background:#fff;color:var(--ink);border:1px solid #d2d2d7}
.choice-list{display:grid;gap:10px;margin-top:24px}.choice{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;border:1px solid #d2d2d7;background:#fff;border-radius:14px;padding:17px 18px;color:var(--ink)}.choice:hover{border-color:var(--blue);background:#fafdff}.choice strong{font-size:16px;display:block;font-weight:600;letter-spacing:-.02em}.choice small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.choice>span:last-child{font-size:22px;color:var(--blue)}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}.tool-card{display:flex;min-height:150px;flex-direction:column;justify-content:space-between;border:1px solid #d2d2d7;border-radius:18px;padding:20px;background:#fff}.tool-card:hover{border-color:var(--blue);background:#fafdff}.tool-icon{font-size:25px}.tool-card h2{font-size:20px;letter-spacing:-.03em;margin-top:22px}.tool-card p{color:var(--muted);font-size:12px;margin-top:8px}.tool-card .arrow{color:var(--blue);font-size:22px;align-self:flex-end;margin-top:15px}.part-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.part-option{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #d8d8dc;border-radius:13px;padding:12px}.part-option input{margin-top:2px;accent-color:var(--blue)}.part-option strong{display:block;font-size:12px}.part-option small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.table-wrap{overflow:auto;margin-top:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.wiring-table{width:100%;border-collapse:collapse;font-size:11px}.wiring-table th,.wiring-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #ececef;white-space:nowrap}.wiring-table th{color:var(--muted);font-weight:600;background:#fafafa}.wiring-table tr:last-child td{border-bottom:0}.color-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#777;margin-right:7px}
footer{border-top:1px solid #e5e5e9;padding:24px 0 30px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}
@media(max-width:700px){.page-shell{width:calc(100% - 36px)}.topbar{height:64px;gap:12px}.brand{gap:10px;font-size:14px}.brand img{width:58px}.brand>span{padding-left:10px}.top-actions{gap:10px}.home-link{font-size:10px;max-width:84px}main.tool-main{padding:36px 0 45px}.page-intro{margin-bottom:28px}.page-intro p{font-size:15px;max-width:300px}.progress{gap:9px;padding-inline:0;font-size:10px}.progress li{gap:5px}.progress li>span{width:22px;height:22px}.step-card{padding:28px 22px;border-radius:20px}.step-card h2{font-size:27px}.form-grid,.result-grid,.preview-grid,.tool-grid,.part-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.button-row{display:grid}.button-row .button{width:100%}.result-item strong{font-size:18px}.preview-panel>div{min-height:190px}.drop-zone{min-height:220px;padding:22px}footer{font-size:10px;flex-wrap:wrap;gap:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}
