/* 独立白板弹窗：沿用无人机工作台色彩，不覆盖其他模块。 */
.m3m-cal-layer { position:fixed; inset:0; z-index:22000; background:rgba(15,23,42,.5); display:flex; align-items:center; justify-content:center; padding:20px; box-sizing:border-box; }
.m3m-cal-dialog { width:980px; max-width:100%; max-height:92dvh; background:var(--uav-surface,#fff); color:var(--uav-ink,#172033); border-radius:16px; display:flex; flex-direction:column; overflow:hidden; font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif; font-size:16px; line-height:1.65; box-shadow:0 20px 60px #0003; }
.m3m-cal-dialog * { box-sizing:border-box; }
.m3m-cal-dialog header { display:flex; align-items:center; justify-content:space-between; padding:14px 22px; border-bottom:1px solid var(--uav-border,#dce5f0); }
.m3m-cal-dialog h3 { margin:0; font-size:21px; }
.m3m-cal-dialog h4 { margin:22px 0 8px; font-size:18px; }
.m3m-cal-body { overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; padding:4px 22px 24px; }
.m3m-cal-dialog p { margin:12px 0; }
.m3m-cal-warning { padding:12px; border:1px solid #f4d499; border-radius:8px; background:#fff8ea; color:#854d0e; }
.m3m-cal-dialog button { font:inherit; border:1px solid var(--uav-border,#dce5f0); border-radius:8px; padding:8px 14px; background:var(--uav-canvas,#f3f7fb); color:var(--uav-primary,#2563eb); cursor:pointer; min-height:44px; }
.m3m-cal-dialog button:disabled, .m3m-cal-dialog input:disabled { opacity:.55; cursor:wait; }
.m3m-cal-dialog input { font:inherit; min-width:0; max-width:100%; border:1px solid var(--uav-border,#dce5f0); border-radius:6px; padding:7px; }
.m3m-cal-dialog input:focus, .m3m-cal-dialog button:focus-visible { outline:2px solid var(--uav-primary,#2563eb); outline-offset:2px; }
.m3m-cal-field { display:grid; max-width:480px; gap:5px; }
.m3m-cal-dialog small { display:block; color:var(--uav-muted,#64748b); font-size:14px; overflow-wrap:anywhere; }
.m3m-cal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.m3m-cal-band { min-width:0; padding:12px; border:1px solid var(--uav-border,#dce5f0); border-radius:10px; }
.m3m-cal-tools { display:flex; gap:14px; flex-wrap:wrap; margin:8px 0; }
.m3m-cal-tools select { font:inherit; padding:6px; margin-left:6px; border:1px solid var(--uav-border,#dce5f0); border-radius:6px; }
.m3m-cal-viewport { overflow:auto; max-height:340px; overscroll-behavior:contain; }
.m3m-cal-image { position:relative; overflow:hidden; touch-action:none; cursor:crosshair; user-select:none; }
.m3m-cal-image img { width:100%; display:block; }
.m3m-cal-roi { position:absolute; border:2px solid #16a34a; background:#16a34a22; pointer-events:none; }
.m3m-cal-coordinates { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.m3m-cal-coordinates input { width:100%; padding:5px; }
.m3m-cal-consent { display:flex; align-items:flex-start; gap:10px; }
.m3m-cal-consent input { flex:none; width:20px; height:20px; margin-top:4px; }
.m3m-cal-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.m3m-cal-table { overflow-x:auto; }
.m3m-cal-table table { width:100%; border-collapse:collapse; font-size:15px; white-space:nowrap; }
.m3m-cal-table td, .m3m-cal-table th { border-bottom:1px solid var(--uav-border,#dce5f0); padding:8px; text-align:left; }
@media(max-width:620px) { .m3m-cal-layer { padding:8px; } .m3m-cal-dialog { max-height:96dvh; } .m3m-cal-body { padding:0 14px 20px; } .m3m-cal-grid { grid-template-columns:minmax(0,1fr); } .m3m-cal-dialog header { padding:12px 14px; } }
.m3m-cal-dialog header { flex:none; }
.m3m-cal-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid var(--uav-border,#dce5f0); flex:none; }
.m3m-cal-steps span { padding:12px 8px; text-align:center; font-size:14px; color:var(--uav-muted,#64748b); border-bottom:3px solid transparent; }
.m3m-cal-steps span.is-active { color:var(--uav-primary,#2563eb); border-bottom-color:var(--uav-primary,#2563eb); font-weight:600; }
.m3m-cal-reference { border:1px solid var(--uav-border,#dce5f0); border-radius:8px; padding:10px 12px; margin-bottom:16px; }
.m3m-cal-reference summary { cursor:pointer; color:var(--uav-muted,#64748b); }
.m3m-cal-empty { grid-column:1/-1; border:1px dashed var(--uav-border,#dce5f0); background:var(--uav-canvas,#f3f7fb); border-radius:10px; padding:24px; text-align:center; color:var(--uav-muted,#64748b); }
.m3m-cal-band-title { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.m3m-cal-band-title button { font-size:14px; padding:5px 10px; }
.m3m-cal-progress { font-size:15px; color:var(--uav-muted,#64748b); }
#m3mPanelFiles { display:block; width:100%; background:var(--uav-canvas,#f3f7fb); }
#m3mPanelFiles::file-selector-button { font:inherit; padding:8px 12px; margin-right:10px; border:1px solid var(--uav-border,#dce5f0); border-radius:6px; color:var(--uav-primary,#2563eb); background:#fff; cursor:pointer; }
@media(max-width:620px) { .m3m-cal-steps span { font-size:12px; } .m3m-cal-dialog h3 { font-size:19px; } .m3m-cal-band { padding:10px; } }
