.kim-info-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem;font-family:var(--font-body, "IBM Plex Sans", system-ui, -apple-system, sans-serif)}.kim-info-card{background:var(--surface, #ffffff);border:1px solid var(--border, #e2e8f0);border-radius:var(--radius-lg, 12px);box-shadow:0 12px 30px #0003;padding:1.5rem;max-width:560px;width:100%;max-height:calc(100vh - 2rem);overflow-y:auto;color:var(--ink, #1a1a1a)}.kim-info-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.kim-info-title{margin:0;font-family:var(--font-display, "Instrument Serif", Georgia, serif);font-size:1.75rem;font-weight:400;line-height:1.2;color:var(--ink, #1a1a1a)}.kim-info-close{background:transparent;border:1px solid var(--border, #e2e8f0);color:var(--ink-soft, #475569);width:32px;height:32px;border-radius:var(--radius, 8px);font-size:1.4rem;line-height:1;cursor:pointer;flex-shrink:0;transition:background .15s ease,color .15s ease}.kim-info-close:hover{background:var(--surface-soft, #f8fafc);color:var(--ink, #1a1a1a)}.kim-info-close:focus-visible{outline:2px solid var(--cyan, #06b6d4);outline-offset:2px}.kim-info-section{margin-top:1rem}.kim-info-section:first-of-type{margin-top:0}.kim-info-section-title{margin:0 0 .5rem;font-family:var(--font-body, "IBM Plex Sans", system-ui, sans-serif);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--cyan-light, #1ca5bd)}.kim-info-list{margin:0;padding-left:1.25rem;font-size:.95rem;line-height:1.55;color:var(--ink, #1a1a1a)}.kim-info-list li{margin-bottom:.4rem}.kim-info-list li:last-child{margin-bottom:0}.kim-info-list strong{font-weight:600}.kim-info-bubble{position:absolute;top:calc(100% + 10px);right:0;z-index:9000;background:var(--ink, #1a1a1a);color:#fff;font-family:var(--font-body, "IBM Plex Sans", system-ui, -apple-system, sans-serif);font-size:.85rem;line-height:1.35;padding:.55rem .8rem;border-radius:var(--radius, 8px);box-shadow:0 6px 18px #0000002e;max-width:240px;cursor:pointer;animation:kim-info-bubble-in .22s ease-out}.kim-info-bubble-caret{position:absolute;top:-5px;right:10px;width:10px;height:10px;background:var(--ink, #1a1a1a);transform:rotate(45deg);border-radius:1px}@keyframes kim-info-bubble-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.kim-home-link{position:fixed;top:max(1rem,env(safe-area-inset-top));left:max(1rem,env(safe-area-inset-left));z-index:1000;display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.5rem .9rem;background:#fff;color:#1ca5bd;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-size:.95rem;font-weight:600;line-height:1;text-decoration:none;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 2px 8px #00000014;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.kim-home-link:hover,.kim-home-link:focus-visible{background:#1ca5bd;color:#fff;border-color:#1ca5bd;transform:scale(1.03)}.kim-home-link:focus-visible{outline:2px solid #06b6d4;outline-offset:2px}.kim-home-link-arrow{font-size:1.05rem;line-height:1}.kim-home-link-label-long{display:none}.kim-home-link-label-short{display:inline}@media (min-width: 600px){.kim-home-link-label-long{display:inline}.kim-home-link-label-short{display:none}}.eb-info-wrapper{position:fixed;top:1rem;right:1rem;z-index:1000}.eb-info-trigger{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-color, #e2e8f0);background:var(--card-bg, #ffffff);color:var(--cyan-light, #1ca5bd);font-family:"Instrument Serif",Georgia,serif;font-size:1.2rem;font-weight:400;font-style:italic;line-height:1;cursor:pointer;box-shadow:0 2px 8px #00000014;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.eb-info-trigger:hover{background:var(--cyan-light, #1ca5bd);color:#fff;border-color:var(--cyan-light, #1ca5bd);transform:scale(1.05)}.eb-info-trigger:focus-visible{outline:2px solid var(--cyan, #06b6d4);outline-offset:2px}:root{--kim-navy: #1E4D8C;--kim-teal: #2DA4A8;--kim-plum: #6B3FA0;--kim-bg: #F4F6F9;--kim-surface: #FFFFFF;--kim-text: #1A2233;--kim-text-muted: #5A6478;--kim-border: #D8DEE8;--kim-danger: #E04848;--kim-warn: #E8A23A;--kim-success: #3CA864;--block: #FFD93D;--block-edge: #C9A800;--block-shadow: #E8C200;--plate: #3F8F4F;--plate-hole: #1F4F2F;--symbol: #1A1A1A;--label-color: #1A1A1A}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--kim-bg);color:var(--kim-text);overscroll-behavior:none}button{font:inherit;cursor:pointer}.app{display:grid;grid-template-rows:auto 1fr auto;height:100vh;height:100dvh}.legal-footer{text-align:center;padding:6px 12px;font-size:11px;color:var(--kim-text-muted);border-top:1px solid var(--kim-border);background:var(--kim-surface)}.legal-footer a{color:var(--kim-text-muted);text-decoration:none;margin:0 .6rem}.legal-footer a:hover{color:var(--kim-navy);text-decoration:underline}.topbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--kim-surface);border-bottom:1px solid var(--kim-border);z-index:10;flex-wrap:wrap}.topbar h1{font-size:18px;margin:0;color:var(--kim-navy);flex-shrink:0}.topbar .spacer{flex:1}.topbar select,.topbar button{padding:6px 12px;border:1px solid var(--kim-border);border-radius:6px;background:#fff;font-size:14px;min-height:36px}.topbar button.primary{background:var(--kim-navy);color:#fff;border-color:var(--kim-navy)}.topbar button.danger{background:var(--kim-danger);color:#fff;border-color:var(--kim-danger)}.workspace{display:grid;grid-template-columns:220px 1fr;overflow:hidden;min-height:0}.palette{background:var(--kim-surface);border-right:1px solid var(--kim-border);overflow-y:auto;padding:12px}.palette h2{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--kim-text-muted);margin:12px 0 6px}.palette-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.palette-item{background:var(--kim-bg);border:1px solid var(--kim-border);border-radius:8px;padding:6px;cursor:grab;display:flex;flex-direction:column;align-items:center;gap:4px;-webkit-user-select:none;user-select:none;touch-action:none}.palette-item:active{cursor:grabbing}.palette-item:hover{border-color:var(--kim-navy)}.palette-item .name{font-size:11px;text-align:center;color:var(--kim-text-muted);line-height:1.1}.canvas-wrap{position:relative;overflow:hidden;min-width:0;min-height:0}.canvas{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#ddd;touch-action:none}.canvas svg{display:block}.measurement-panel{position:absolute;bottom:12px;left:12px;background:#fffffff2;border:1px solid var(--kim-border);border-radius:8px;padding:10px 14px;font-size:13px;max-width:320px;box-shadow:0 2px 8px #0000001a}.measurement-panel h3{margin:0 0 6px;font-size:12px;text-transform:uppercase;color:var(--kim-text-muted)}.measurement-panel .row{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.measurement-panel .err{color:var(--kim-danger);font-weight:600}.measurement-panel .warning-banner{background:var(--kim-danger);color:#fff;padding:8px 10px;border-radius:6px;font-size:12.5px;font-weight:600;margin:-2px -4px 10px;line-height:1.3;box-shadow:0 0 0 2px #e0484840}.zoom-controls{position:absolute;bottom:12px;right:12px;display:flex;flex-direction:column;gap:4px;background:#fff;padding:6px;border-radius:8px;box-shadow:0 2px 8px #00000026;border:1px solid var(--kim-border)}.zoom-controls button{width:36px;height:36px;border:1px solid var(--kim-border);background:#fff;border-radius:6px;font-size:18px;font-weight:700}.zoom-percent select{width:76px;padding:4px 6px;border:1px solid var(--kim-border);border-radius:6px;font-size:13px;text-align:center;font-variant-numeric:tabular-nums;background:var(--kim-bg)}.zoom-hint{position:absolute;bottom:12px;right:70px;background:#ffffffd9;font-size:11px;color:var(--kim-text-muted);padding:4px 8px;border-radius:4px;pointer-events:none;white-space:nowrap}.instrument{position:absolute;background:linear-gradient(180deg,#fff,#e8ecf2);border:1.5px solid var(--kim-navy);border-radius:10px;box-shadow:0 4px 10px #0000002e;-webkit-user-select:none;user-select:none;z-index:5;overflow:hidden}.instrument-drag{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--kim-navy);color:#fff;cursor:grab;touch-action:none}.instrument-drag:active{cursor:grabbing}.instrument-grip{font-size:12px;letter-spacing:-2px;opacity:.7}.instrument-title{font-size:13px;font-weight:700;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instrument-display,.instrument-sockets{margin:6px 10px}.instrument-sockets{margin-bottom:8px}.instrument-display{display:flex;align-items:baseline;gap:6px;background:#1a1a1a;color:#6fe5c9;padding:4px 8px;border-radius:4px;font-family:SF Mono,Menlo,monospace;margin-bottom:6px}.instrument-symbol{font-size:13px;font-weight:700;opacity:.7}.instrument-value{font-size:14px;font-weight:600;flex:1;text-align:right;font-variant-numeric:tabular-nums}.instrument-sockets{display:flex;justify-content:space-around;padding:0 6px}.instrument-socket-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;border-radius:8px;cursor:crosshair;touch-action:none}.instrument-socket-wrap:hover{background:#2864c81f}.instrument-socket-wrap:hover .instrument-socket{transform:scale(1.15)}.instrument-socket-label{font-size:13px;font-weight:800;color:var(--kim-text)}.instrument-socket{width:18px;height:18px;border-radius:50%;border:2px solid #222;box-shadow:inset 0 0 0 2px #fff,0 1px 2px #0000004d;pointer-events:none}.confirm-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000040;display:flex;align-items:center;justify-content:center;z-index:100}.confirm-card{background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000040;padding:20px 22px;max-width:360px;border:1px solid var(--kim-border)}.confirm-text{margin:0 0 16px;font-size:15px;color:var(--kim-text)}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-actions button{padding:8px 14px;border:1px solid var(--kim-border);background:#fff;border-radius:6px;font-size:14px;cursor:pointer}.confirm-actions button.danger{background:var(--kim-danger);color:#fff;border-color:var(--kim-danger)}.instrument-drag{position:relative}.instrument-close{margin-left:auto;background:#ffffff2e;color:#fff;border:none;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.instrument-close:hover{background:#ffffff59}.cable-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);background:var(--kim-navy);color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;box-shadow:0 2px 8px #0003;z-index:6;pointer-events:none}.buchse-hit{cursor:crosshair}.buchse-hit:hover circle.buchse-hit-ring{fill:#2864c866}@media (max-width: 768px){.topbar{padding:6px 10px;gap:6px}.topbar h1{font-size:15px}.topbar select,.topbar button{padding:5px 8px;font-size:12px;min-height:34px}.workspace{grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"canvas" "palette"}.canvas-wrap{grid-area:canvas}.palette{grid-area:palette;border-right:none;border-top:1px solid var(--kim-border);display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:8px;padding:8px 10px;align-items:stretch;-webkit-overflow-scrolling:touch}.palette-hint{display:none}.palette>div:not(.palette-hint){display:contents}.palette h2{display:none}.palette-grid{display:contents}.palette-item{flex:0 0 auto;width:76px;padding:4px;touch-action:pan-x}.palette-item .name{font-size:10px}.measurement-panel{bottom:8px;left:8px;right:60px;max-width:none;padding:8px 10px;font-size:12px}.zoom-controls{bottom:8px;right:8px;padding:4px}.zoom-controls button{width:32px;height:32px;font-size:16px}.zoom-percent select{width:56px;font-size:12px}.zoom-hint{display:none}.cable-hint{top:8px;font-size:12px;padding:6px 10px;max-width:90vw;text-align:center}.instrument-drag{padding:3px 6px;gap:4px}.instrument-title{font-size:11px}.instrument-grip{font-size:10px}.instrument-close{width:16px;height:16px;font-size:10px}.instrument-display{margin:4px 6px;padding:3px 6px}.instrument-symbol{font-size:11px}.instrument-value{font-size:12px}.instrument-sockets{margin:4px 6px 6px}.instrument-socket-wrap{padding:4px 8px;gap:1px}.instrument-socket-label{font-size:11px}.instrument-socket{width:14px;height:14px;border-width:1.5px}}
