/* SteelCtrl — BBS Editor, Drawing Upload & Reconciliation
   Source: SteelCtrl_v5_EBEESCORP.html L276–331
   Sections: BBS Editor Grid, Drag Zone, Drawing Card, Reconciliation
   Depends on: tokens.css
   ─────────────────────────────────────────── */

/* ── BBS EDITOR ── */
.bbs-toolbar{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0;background:var(--raised)}
.bbs-container{flex:1;overflow:auto;position:relative}
.bbs-table{border-collapse:collapse;width:100%;min-width:1100px;font-size:11px}
.bbs-table th{position:sticky;top:0;background:var(--base);z-index:5;padding:8px 10px;text-align:left;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--txt3);border-bottom:1px solid var(--line2);border-right:1px solid var(--line);white-space:nowrap;font-weight:500;cursor:pointer}
.bbs-table th:hover{color:var(--txt2)}
.bbs-table td{padding:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:middle;position:relative}
.member-header-row td{background:rgba(245,158,11,0.06);padding:8px 12px;font-size:11px;font-weight:600;color:var(--gold);letter-spacing:.5px;cursor:default}
.cell-input{background:transparent;border:none;color:var(--txt);font-family:var(--mono);font-size:11px;width:100%;padding:7px 8px;transition:background .1s}
.cell-input:focus{background:rgba(245,158,11,0.06);outline:2px solid var(--gold);outline-offset:-2px}
.cell-input:hover:not(:focus){background:rgba(255,255,255,0.03)}
.cell-computed{padding:7px 10px;font-family:var(--mono);font-size:11px;color:var(--txt2);background:rgba(255,255,255,0.015);white-space:nowrap}
.cell-computed.highlight{color:var(--gold);font-weight:500}
.cell-select{background:transparent;border:none;color:var(--txt);font-family:var(--mono);font-size:11px;width:100%;padding:7px 8px;cursor:pointer}
.cell-select:focus{background:rgba(245,158,11,0.06);outline:2px solid var(--gold);outline-offset:-2px}
.bbs-total-row td{background:var(--float);padding:8px 10px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--gold);border-top:2px solid var(--gold-dim)}
.bbs-summary-row td{background:rgba(16,185,129,0.04);padding:6px 10px;font-family:var(--mono);font-size:10px;color:var(--mint)}
.row-actions{display:flex;gap:3px;padding:4px 6px;opacity:0;transition:opacity .15s}
tr:hover .row-actions{opacity:1}
.row-action-btn{width:22px;height:22px;border-radius:3px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;transition:all .12s;border:none;background:transparent;color:var(--txt3)}
.row-action-btn:hover{background:rgba(255,255,255,0.08);color:var(--txt)}
.row-action-btn.del:hover{background:var(--rose-dim);color:var(--rose)}

/* ── DRAG ZONE ── */
.drop-zone{border:2px dashed var(--line2);border-radius:10px;padding:36px;text-align:center;cursor:pointer;transition:all .2s;position:relative}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--gold);background:var(--gold-dim)}
.drop-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.drop-zone i{font-size:36px;color:var(--txt3);margin-bottom:12px;display:block}
.drop-zone:hover i{color:var(--gold)}

/* ── DRAWING CARD ── */
.drawing-card{background:var(--raised);border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:all .2s;cursor:pointer}
.drawing-card:hover{border-color:var(--gold-glow);transform:translateY(-1px)}
.drawing-preview{height:120px;background:var(--float);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.drawing-preview-icon{font-size:40px;color:var(--txt3)}
.drawing-card-info{padding:12px}
.drawing-name{font-size:12px;font-weight:500;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drawing-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--txt3)}
.extract-progress{padding:0 12px 12px}
.extract-step{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:11px;color:var(--txt2)}
.extract-step i{font-size:14px;flex-shrink:0}
.step-done i{color:var(--mint)}
.step-running i{color:var(--gold);animation:spin .8s linear infinite}
.step-wait i{color:var(--txt3)}
@keyframes spin{to{transform:rotate(360deg)}}
.extract-bar{height:3px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:4px}
.extract-fill{height:100%;background:var(--gold);border-radius:99px;transition:width .4s}

/* ── RECONCILIATION ── */
.recon-bar{display:flex;gap:4px;margin-bottom:3px}
.recon-seg{height:20px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#000;transition:flex .4s}
.deviation-cell{padding:6px 10px;display:flex;align-items:center;gap:6px}
.dev-bar{height:6px;flex:1;background:var(--line);border-radius:99px;overflow:hidden;max-width:80px}
.dev-fill{height:100%;border-radius:99px}
.lock-icon{font-size:14px}

