*{box-sizing:border-box}body{margin:0;background:#edf2f6;color:#203748;font:14px/1.5 Arial,sans-serif}header{padding:22px 28px;background:#fff;border-bottom:1px solid #d3dfe7;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.brand{font-size:11px;letter-spacing:2px;color:#376d89}h1{margin:6px 0;font-size:27px}header p{margin:0;color:#587080}.badge{background:#ecf2f6;padding:8px 12px;border-radius:5px;font-size:11px;color:#506777}main{display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:680px}#view{height:calc(100vh - 180px);min-height:610px;position:relative;min-width:0}canvas{display:block;width:100%;height:100%;touch-action:none}.hint{position:absolute;bottom:18px;left:22px;right:22px;color:#4b6576;pointer-events:none;font-size:12px}#loading{position:absolute;top:45%;left:15%;right:15%;padding:15px;text-align:center;z-index:3;background:#fff;border-radius:6px}aside{background:#fff;border-left:1px solid #d3dfe7;padding:22px}h2{font-size:17px;margin:0 0 20px}h3{font-size:15px;margin:0 0 8px}select,button{font:inherit;border:1px solid #bccedb;background:white;color:#23455b;border-radius:5px;padding:9px}select{width:100%;margin:7px 0 14px}.actions{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}button{cursor:pointer}button[aria-pressed=true]{background:#245e80;color:white}button:focus-visible,select:focus-visible{outline:3px solid #78badc;outline-offset:3px}.check{display:flex;gap:8px;margin:17px 0}.info{border-top:1px solid #dce5ec;padding-top:18px;margin-top:22px}#part-info{overflow-wrap:anywhere}dl{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:12px;margin-top:22px}dt{color:#5b7282}dd{margin:0}.note{font-size:12px;color:#647987;margin-top:24px}footer{padding:12px 28px;border-top:1px solid #d3dfe7;font-size:12px;color:#647987}@media(max-width:800px){main{grid-template-columns:1fr}#view{height:65vh;min-height:420px}aside{border-left:0;border-top:1px solid #d3dfe7}header{padding:16px}footer{padding:12px 16px}}

.container-toggle{width:100%;background:#245e80;color:#fff;border-color:#245e80;font-weight:600;padding:13px 10px}.container-toggle:disabled{opacity:.6;cursor:wait}.state-info{font-size:12px;color:#526d7e;margin:9px 0 24px}

#view{overflow:hidden}aside{max-height:calc(100vh - 150px);overflow:auto}#part-search{width:100%;padding:10px;border:1px solid #bccedb;border-radius:5px;margin:6px 0}#part-buttons{max-height:320px;overflow:auto;margin-bottom:16px}.part-group h3{font-size:12px;color:#587080;margin:12px 0 5px}.part-group button{display:block;width:100%;text-align:left;font-size:12px;margin:4px 0}.callouts{position:absolute;inset:0;pointer-events:none;z-index:2}.callouts svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.callout{position:absolute;width:174px;min-height:32px;padding:6px 8px;font-size:11px;line-height:1.25;text-align:left;pointer-events:auto;background:#fffffff2;box-shadow:0 2px 6px #20374820;border-color:#769db5}.callout[hidden]{display:none}#labels-toggle{width:100%;margin-bottom:8px}@media(max-width:800px){aside{max-height:none}.callout{width:120px;font-size:10px;padding:5px}#part-buttons{max-height:260px}}
.part-group button[hidden],.part-group[hidden]{display:none}

/* Compact technical callouts with fine leaders. */
.callout{min-height:30px;padding:6px 8px;border:1px solid #85b3c480;border-left:2px solid #46a9c5;border-radius:2px;background:#f7fcfff0;color:#244b60;font:10px/1.35 Arial,sans-serif;letter-spacing:.15px;box-shadow:0 2px 8px #163c5012;backdrop-filter:blur(4px)}
.callout:hover{background:#e7f6fc;border-color:#399dbc}.callout[aria-pressed=true]{background:#17485beF;color:#e8fbff;border-color:#5dc8df}

.callout{background:rgba(242,250,255,.62);border-color:rgba(85,150,177,.45);backdrop-filter:blur(2px);box-shadow:0 2px 8px #163c500a}.callout:hover{background:rgba(230,247,255,.85)}.callout[aria-pressed=true]{background:rgba(23,72,91,.72)}

.tag-row{display:flex;align-items:center;gap:9px}.tag-row[hidden]{display:none}.tag-row input{width:17px;height:17px;flex:0 0 17px;accent-color:#287e9b;cursor:pointer}.tag-row input:focus-visible{outline:2px solid #287e9b;outline-offset:3px}.part-group .tag-row button{flex:1;min-width:0;width:auto}.tag-actions{margin-top:8px}.tag-actions button{font-size:12px;flex:1}#tag-count{margin:4px 0;font-size:11px}.tag-help{font-size:11px;color:#587080;margin:6px 0 10px}
