/* BIM Explorer 1.4 - Models, Views, BCF, Checks panels, measure, language menu, plans dialog. */
.bimx-section{padding:12px 14px;border-bottom:1px solid var(--border)}
.bimx-section h3{font-size:12.5px;font-weight:700;margin:0 0 6px;color:var(--text-primary);display:flex;align-items:center;gap:6px}
.bimx-hint{font-size:11.5px;line-height:1.45;color:var(--text-secondary);margin:4px 0 8px}
.bimx-muted{font-size:11px;color:var(--text-secondary)}
.bimx-warn{font-size:11.5px;color:var(--danger);margin:4px 0}
.bimx-input{width:100%;font:inherit;font-size:12px;padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--bg-secondary);color:var(--text-primary);margin:3px 0}
.bimx-input:focus{outline:2px solid var(--accent-dim);border-color:var(--accent)}
.bimx-small{width:auto;padding:3px 6px;font-size:11px}
.bimx-num{width:80px}
textarea.bimx-input{resize:vertical}
.bimx-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center;margin:4px 0}
.bimx-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.bimx-row-between{display:flex;justify-content:space-between;align-items:center;gap:8px}
.bimx-form label,.bimx-row2 label,.bimx-row3 label{display:block;font-size:11px;color:var(--text-secondary)}
.bimx-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}
.bimx-check{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-secondary);margin:6px 0;cursor:pointer}
.bimx-inline{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);margin:8px 0 0}
.bimx-inline .bimx-input{margin:0}
.bimx-mini{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);border-radius:6px;font-size:10.5px;padding:2px 7px;cursor:pointer;white-space:nowrap}
.bimx-mini:hover{color:var(--text-primary);border-color:var(--accent)}
.bimx-link{background:none;border:0;padding:0;color:var(--accent);font:inherit;font-size:12px;cursor:pointer;text-align:left}
.bimx-link:hover{text-decoration:underline}
.bimx-eye{background:none;border:0;cursor:pointer;color:var(--accent);font-size:12px;width:18px;padding:0}
.bimx-pro-tag{display:inline-block;font-size:8.5px;font-weight:800;letter-spacing:.07em;padding:1px 5px;border-radius:3px;background:linear-gradient(135deg,#f6d365,#fda085);color:#3a2306;line-height:1.45}
.bimx-list{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.bimx-list-row{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:12px}
.bimx-list-row .bimx-link{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* legend */
.bimx-legend-tools{margin-top:6px}
.bimx-legend-actions{display:flex;gap:6px;margin:4px 0 6px}
.bimx-legend{display:flex;flex-direction:column;max-height:46vh;overflow:auto;border:1px solid var(--border);border-radius:8px}
.bimx-legend-row{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:11.5px;border-bottom:1px solid var(--border)}
.bimx-legend-row:last-child{border-bottom:0}
.bimx-legend-row.is-hidden{opacity:.45}
.bimx-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.15)}
.bimx-legend-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}
.bimx-legend-count{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--text-secondary);min-width:28px;text-align:right}
/* models */
.bimx-model-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid var(--border)}
.bimx-model-row.is-hidden{opacity:.5}
.bimx-model-main{flex:1;min-width:0}
.bimx-model-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}
/* BCF */
.bimx-issues{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.bimx-issue{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:9px;padding:8px;background:var(--bg-secondary)}
.bimx-issue-snap{width:74px;height:48px;object-fit:cover;border-radius:6px;cursor:pointer;flex-shrink:0;background:var(--bg-tertiary)}
.bimx-issue-main{flex:1;min-width:0}
.bimx-issue-main .bimx-link{font-weight:600}
.bimx-issue-body p{font-size:12px;margin:6px 0;white-space:pre-wrap}
.bimx-badges{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0}
.bimx-badge{font-size:10px;padding:1px 6px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary)}
.bimx-badge.s-open{background:#fee2e2;color:#991b1b}.bimx-badge.s-in-progress{background:#fef3c7;color:#92400e}
.bimx-badge.s-resolved,.bimx-badge.s-closed{background:#dcfce7;color:#166534}
.bimx-comments{margin:6px 0}
.bimx-comment{font-size:11.5px;border-left:2px solid var(--border);padding:2px 0 2px 8px;margin:4px 0}
/* checks */
.bimx-summary{font-size:12px;font-weight:600;padding:7px 9px;border-radius:8px;margin:8px 0}
.bimx-summary.ok{background:rgba(22,163,74,.12);color:var(--success)}
.bimx-summary.bad{background:rgba(220,38,38,.1);color:var(--danger)}
.bimx-specs{display:flex;flex-direction:column;gap:4px}
.bimx-spec{border:1px solid var(--border);border-radius:8px;overflow:hidden}
.bimx-spec-head{display:flex;width:100%;gap:8px;align-items:center;background:none;border:0;padding:7px 8px;cursor:pointer;font:inherit;font-size:12px;text-align:left;color:var(--text-primary)}
.bimx-spec-icon{width:16px;font-weight:800}
.bimx-spec.pass .bimx-spec-icon{color:var(--success)}.bimx-spec.fail .bimx-spec-icon{color:var(--danger)}.bimx-spec.skipped .bimx-spec-icon{color:var(--text-dim)}
.bimx-spec-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bimx-spec-body{padding:4px 8px 8px;display:flex;flex-direction:column;gap:4px}
.bimx-fail,.bimx-clash{display:block;width:100%;text-align:left;background:var(--bg-secondary);border:1px solid var(--border);border-radius:7px;padding:5px 7px;font:inherit;font-size:11.5px;color:var(--text-primary);cursor:pointer}
.bimx-fail:hover,.bimx-clash:hover{border-color:var(--accent)}
.bimx-fail div{color:var(--text-secondary);font-size:11px;margin-top:2px}
.bimx-sets{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bimx-set-name{font-size:11px;font-weight:700;color:var(--text-secondary)}
.bimx-clashes{display:flex;flex-direction:column;gap:4px;max-height:44vh;overflow:auto}
.bimx-clash{display:flex;gap:8px;align-items:center}
.bimx-clash-n{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--text-secondary);min-width:22px}
.bimx-clash-pair{flex:1;min-width:0;line-height:1.4}
.bimx-clash-d{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--danger);text-align:right}
/* measure */
body.bimx-measuring #viewport canvas{cursor:crosshair}
.bimx-measure-readout{position:fixed;left:50%;transform:translateX(-50%);bottom:52px;z-index:70;background:var(--bg-panel);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:10px;padding:8px 12px;min-width:220px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:12px;color:var(--text-primary)}
.bimx-measure-title{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}
.bimx-measure-main{font-size:20px;font-weight:700;margin:4px 0}
.bimx-measure-parts{display:flex;gap:10px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-secondary)}
.bimx-measure-hint{font-size:11px;color:var(--text-secondary);margin-top:4px}
.bimx-measure-dot{position:fixed;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#ff3b6b;border:2px solid #fff;z-index:65;pointer-events:none}
.bimx-measure-label{position:fixed;transform:translate(-50%,-140%);background:#ff3b6b;color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;z-index:66;pointer-events:none;white-space:nowrap}
/* language menu */
.bimx-lang{position:relative;margin-right:6px}
#bimxLangBtn{display:flex;align-items:center;gap:4px;width:auto;padding:0 8px}
.bimx-lang-code{font-size:10.5px;font-weight:700}
.bimx-lang-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.2);padding:6px;min-width:230px;z-index:400}
.bimx-lang-menu[hidden]{display:none}
.bimx-lang-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:4px 8px}
.bimx-lang-menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:6px 8px;border-radius:6px;font:inherit;font-size:12.5px;color:var(--text-primary);cursor:pointer}
.bimx-lang-menu button:hover{background:var(--bg-tertiary)}
.bimx-lang-note{font-size:10.5px;color:var(--text-secondary);padding:6px 8px 2px;border-top:1px solid var(--border);margin-top:4px}
/* modal (plans) */
.bimx-modal-overlay{position:fixed;inset:0;background:rgba(10,14,20,.45);z-index:500;display:flex;align-items:center;justify-content:center}
.bimx-modal{background:var(--bg-secondary);color:var(--text-primary);border-radius:14px;border:1px solid var(--border);padding:16px 18px;width:min(460px,92vw);max-height:86vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.bimx-modal-head{display:flex;justify-content:space-between;align-items:center}
.bimx-modal-head h2{font-size:16px;margin:0}
