:root{--fg: #1c2330;--muted: #6b7686;--line: #d9dee6;--accent: #1f5fbf;--bg: #f6f7f9;--err: #b3261e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,sans-serif;font-size:14px}.app{max-width:480px;margin:40px auto;padding:0 16px}.app.wide{max-width:1400px;margin:0 auto}.top{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#fff;border-bottom:1px solid var(--line)}.app:not(.wide) .top{background:none;border:0;padding:0}.top h1{font-size:18px;margin:0 12px 0 0}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;margin:16px}.app:not(.wide) .card{margin:16px 0}.stack{display:block;margin:8px 0}.stack input{display:block;width:100%}button{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 12px;font:inherit}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.danger{color:var(--err)}button.icon{padding:0 7px;border:0;background:none;color:var(--muted);font-size:16px}input,select{font:inherit;padding:4px 6px;border:1px solid var(--line);border-radius:4px;background:#fff}input:disabled,select:disabled{background:#f0f2f5;color:var(--fg);opacity:1}input.narrow{width:64px}.mainnav button,.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:6px 10px}.mainnav button.on,.tabs button.on{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.tabs{padding:0 16px;border-bottom:1px solid var(--line);background:#fff}.err{color:var(--err);margin:8px 16px}.muted{color:var(--muted)}.split{display:grid;grid-template-columns:minmax(320px,1fr) minmax(480px,2fr);gap:16px;padding:16px;align-items:start}.list,.detail{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;min-width:0}.detail:empty{display:none}.toolbar{display:flex;gap:8px;margin-bottom:8px}.toolbar input{flex:1}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:600;color:var(--muted);font-size:12px}th,td{padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.list tbody tr{cursor:pointer}.list tbody tr:hover,tr.active{background:#eef3fb}.badge{font-size:11px;background:#e8edf5;border-radius:10px;padding:1px 8px;margin-left:6px;color:var(--muted)}.badge.ecu{background:#fdecc8;color:#7a5200}.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 12px;margin:8px 0}.form label{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted)}.form label.inline{flex-direction:row;align-items:center;gap:6px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.connector{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:14px 0}.connhead{display:flex;align-items:baseline;gap:12px}.connhead h4{margin:4px 0}.scroll{overflow-x:auto}.pins td input:not([type=checkbox]),.pins td select{width:100%;min-width:70px}.pins td input.narrow{min-width:54px}.addconn{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.addconn h4{width:100%;margin:0}.usage{margin:8px 0}.usages{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px}.toolbar.wrap{flex-wrap:wrap;align-items:center}.small{font-size:12px}.form label.wide{grid-column:1 / -1}textarea{font:inherit;padding:4px 6px;border:1px solid var(--line);border-radius:4px;width:100%}a{color:var(--accent)}.split.single{grid-template-columns:1fr}.editor{padding:0 16px 24px}.docbar{display:flex;align-items:center;gap:12px;padding:12px 0;flex-wrap:wrap}.docbar h3{margin:0}.spacer{flex:1}.grid2{display:grid;grid-template-columns:minmax(360px,1.4fr) minmax(280px,1fr);gap:16px;align-items:start}@media (max-width: 900px){.grid2{grid-template-columns:1fr}}.card.compact{margin:0 0 16px;padding:12px}.devcard{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0}.row{display:flex;align-items:center;gap:8px;margin:4px 0}.row.sub{margin-left:18px}.addconn.sub{margin:6px 0 0 18px}input.ref{width:80px;font-weight:600}.titleblock{display:flex;flex-wrap:wrap;gap:6px 20px;border:1px solid var(--line);padding:8px 10px;margin-bottom:12px}.tblock{margin:10px 0;page-break-inside:avoid}.tblhead{margin:4px 0}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%;font-size:11px}.noprint{display:none!important}.print-area table{font-size:11px}}.thumb{width:36px;height:36px;object-fit:contain;border:1px solid var(--line);border-radius:4px;background:#fff;flex:none}.thumb.sm{width:28px;height:28px}.detailimg{float:right;width:160px;max-height:160px;object-fit:contain;border:1px solid var(--line);border-radius:6px;background:#fff;margin:0 0 8px 12px}td.withthumb{display:table-cell}td.withthumb>*{vertical-align:middle}td.withthumb>img{margin-right:8px;display:inline-block}td.withthumb>div{display:inline-block;vertical-align:middle}.warnbox{border:1px solid #e2b64a;background:#fff8e5;border-radius:6px;padding:6px 12px;margin:8px 0}.warnbox ul{margin:4px 0 0 18px;padding:0}tr.noodoo td{background:#fff8f2}.badge.warn{background:#fde7d6;color:#8a4b00}.layoutsvg{width:100%;max-height:360px;background:#fff;border:1px solid var(--line);border-radius:8px;margin:8px 0;color:#44566e}.svgnode{fill:var(--accent);stroke:#fff;stroke-width:2}.svglabel{font-size:11px;fill:#44566e}.svglabel.strong{font-weight:600;fill:#1c2330}h5{margin:12px 0 4px;font-size:13px}.fbpreview{width:100%;max-height:520px;background:#fff;border:1px solid var(--line);border-radius:8px}.fbtitle{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:end;margin:8px 0}.fbtitle label{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted)}#fb-print-root{display:none}.fbpage{box-sizing:border-box;background:#fff;overflow:hidden}.fbtable{margin:8mm 10mm;break-inside:avoid}@media print{body.print-fb>#root{display:none!important}body.print-fb #fb-print-root{display:block!important;position:static!important}body.print-fb #fb-print-root,body.print-fb #fb-print-root *{visibility:visible!important}.fbpage{break-after:page;page-break-after:always}}.svgconn{fill:#fff;stroke:#1c2330;stroke-width:1.2;vector-effect:non-scaling-stroke}.svgnode{fill:#8a4b00;stroke:#fff;stroke-width:1}.layoutsvg{touch-action:none;-webkit-user-select:none;user-select:none}.schemawrap{overflow:auto;border:1px solid var(--border, #d0d5dd);border-radius:6px;background:#fff;max-height:75vh}.schemasvg{display:block;-webkit-user-select:none;user-select:none;touch-action:none}.schemablock{fill:#fff;stroke:#1c2330;stroke-width:1.2}.schemablock.ecu{stroke:#1f5fbf;stroke-width:1.8}.schemahead{fill:#e8edf5}.schemablock.ecu+.schemahead{fill:#dbe7fb}.schemasub{fill:#555}.schemarule{stroke:#e3e6eb;stroke-width:.8}.schemapin{fill:#fff;stroke:#1c2330;stroke-width:1}.schemapin.used{fill:#1c2330}.schemapin:hover{fill:#1f5fbf;r:5}.schemasplice{fill:#1c2330}.schemalabel{fill:#1c2330;paint-order:stroke;stroke:#fff;stroke-width:3px}.schemasig{fill:#8a4b00;paint-order:stroke;stroke:#fff;stroke-width:2.5px}.colorchip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.colorchip i{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid #555;print-color-adjust:exact;-webkit-print-color-adjust:exact}.colorpick{display:inline-flex;align-items:center;gap:5px}
