/* Modal / HUD / overlay fragments, in original source order — Design & Estimate (extracted verbatim from construction_cost_calculator.php; behaviour frozen) */

    #ccWalkHud{ position:absolute; inset:0; z-index:9; display:none; pointer-events:none; }
    .ed.v3d #ccWalkHud.on{ display:block; }
    #ccWalkHud .wk-bar{ position:absolute; top:16px; left:50%; transform:translateX(-50%); display:flex; gap:8px; pointer-events:auto;
        background:rgba(16,32,46,.86); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); padding:7px; border-radius:11px; box-shadow:0 8px 26px rgba(8,15,25,.28); }
    #ccWalkHud .wk-bar button{ font:inherit; font-size:12.5px; font-weight:700; color:#fff; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16);
        padding:8px 13px; border-radius:8px; cursor:pointer; display:flex; align-items:center; gap:7px; white-space:nowrap; }
    #ccWalkHud .wk-bar button:hover{ background:rgba(255,255,255,.2); }
    #ccWalkHud .wk-bar button.exit{ background:#00B53F; border-color:#00B53F; }
    #ccWalkHud .wk-lvl{ display:flex; align-items:center; gap:4px; color:#fff; font-size:12px; font-weight:700; padding:0 4px; }
    #ccWalkHud .wk-tip{ position:absolute; bottom:18px; left:50%; transform:translateX(-50%); color:#fff; font-size:12px; font-weight:600;
        background:rgba(16,32,46,.74); padding:7px 14px; border-radius:9px; pointer-events:none; text-align:center; line-height:1.5; }
    #ccWalkPad{ position:absolute; left:20px; bottom:20px; width:124px; height:124px; border-radius:50%; pointer-events:auto; display:none;
        background:rgba(16,32,46,.30); border:1.5px solid rgba(255,255,255,.34); touch-action:none; }
    #ccWalkPad .knob{ position:absolute; left:50%; top:50%; width:52px; height:52px; margin:-26px 0 0 -26px; border-radius:50%;
        background:rgba(255,255,255,.86); box-shadow:0 3px 10px rgba(8,15,25,.3); }
    #ccWalkHud.touch #ccWalkPad{ display:block; }
    #ccWalkHud .wk-map{ position:absolute; right:18px; bottom:18px; width:168px; pointer-events:auto;
        background:rgba(16,32,46,.82); border-radius:10px; padding:8px; box-shadow:0 8px 24px rgba(8,15,25,.26); }
    #ccWalkHud .wk-map canvas{ width:100%; height:auto; display:block; border-radius:6px; background:rgba(255,255,255,.06); cursor:crosshair; }
    #ccWalkHud .wk-map-lbl{ color:#fff; font-size:11px; font-weight:700; text-align:center; padding-top:6px; }
    #ccWalkHud .wk-map-hint{ color:rgba(255,255,255,.62); font-size:9.5px; text-align:center; padding-top:2px; }
    #ccWalkHud .wk-side{ position:absolute; right:18px; top:96px; display:flex; flex-direction:column; gap:6px; pointer-events:auto; }
    #ccWalkHud .wk-side button{ width:38px; height:38px; border-radius:9px; cursor:pointer; color:#fff; font-size:13px;
        background:rgba(16,32,46,.82); border:1px solid rgba(255,255,255,.16); }
    #ccWalkHud .wk-side button:hover{ background:rgba(16,32,46,.95); }
    #ccWalkHud .wk-eye{ color:#fff; font-size:10.5px; font-weight:700; text-align:center; background:rgba(16,32,46,.82); border-radius:7px; padding:4px 2px; }
    #ed3d.cc-walking{ cursor:crosshair; }
    .ed.v3d.cc-walk .ed3d-nav{ display:none; }

    #ccBusy{ display:none; position:fixed; inset:0; z-index:13000; flex-direction:column; align-items:center; justify-content:center; gap:13px; background:rgba(15,23,42,.42); backdrop-filter:blur(2px); }
    #ccBusy.show{ display:flex; }
    #ccBusy .cc-busy-card{ background:var(--panel,#fff); border-radius:14px; padding:26px 34px; display:flex; flex-direction:column; align-items:center; gap:13px; box-shadow:0 18px 50px rgba(15,23,42,.3); min-width:230px; }
    #ccBusy .ed3d-spin-ring{ border-color:rgba(0,181,63,.25); border-top-color:#00B53F; }
    #ccBusy .cc-busy-txt{ font-size:12.5px; font-weight:700; letter-spacing:.02em; color:var(--ink,#111); text-align:center; }
    #ccBusy .cc-busy-sub{ font-size:11px; color:var(--muted,#6b7280); text-align:center; margin-top:-6px; }

    #ccUlModal .cc-modal-card{ max-width:680px; }
    #ccPdfGrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; max-height:52vh; overflow:auto; padding:2px; }
    .cc-pdf-cell{ border:2px solid transparent; border-radius:10px; padding:6px; cursor:pointer; background:var(--panel2,rgba(127,127,127,.06)); }
    .cc-pdf-cell:hover{ background:rgba(0,181,63,.10); }
    .cc-pdf-cell.on{ border-color:#00B53F; background:rgba(0,181,63,.14); }
    .cc-pdf-thumb{ height:150px; display:flex; align-items:center; justify-content:center; background:#fff; border-radius:6px; overflow:hidden; text-align:center; }
    .cc-pdf-wait{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; }
    .cc-pdf-wait .ed3d-spin-ring{ margin:0 auto; }
    .cc-pdf-thumb canvas{ max-width:100%; max-height:100%; display:block; box-shadow:0 2px 8px rgba(15,23,42,.16); }
    .cc-pdf-wait{ font-size:11px; color:var(--muted); }
    .cc-pdf-lbl{ text-align:center; font-size:11.5px; font-weight:700; padding-top:6px; }

    #ccDxfModal .cc-modal-card,#ccUlModal .cc-modal-card{ max-width:600px; }
    #ccDxfLayers{ display:grid; grid-template-columns:1fr 1fr; gap:1px 14px; }
    #ccUlLayerList{ max-height:190px; overflow:auto; display:flex; flex-direction:column; gap:1px; padding-right:4px; }
    .cc-ul-note{ font-size:11px; color:var(--muted); line-height:1.6; margin-top:6px; }

    #ccBtyModal .cc-modal-card{ max-width:560px; }
    #ccBtyModal .bty-presets{ display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
    #ccBtyModal .bty-presets button{ font:inherit; font-size:12px; font-weight:700; padding:6px 11px; border-radius:7px; cursor:pointer; border-width:1px; border-style:solid; background:transparent; color:inherit; }

    #ccBoqModal .cc-modal-card{ max-width:640px; }
    #ccBoqLvls{ display:flex; flex-direction:column; gap:2px; }
    #ccBoqPv{ display:none; position:fixed; inset:0; z-index:12000; flex-direction:column; background:var(--bg,#eef1f4); }
    #ccBoqPv.show{ display:flex; }
    #ccBoqPv .cc-lb-bar{ background:var(--panel,#fff); }
    #ccBoqPvStage{ flex:1; overflow:auto; padding:22px 16px 40px; }
    #ccBoqPvStage .pv-wrap{ margin:0 auto 8px; box-shadow:0 6px 24px rgba(15,23,42,.18); background:#fff; }
    #ccBoqPvStage .pv-cap{ text-align:center; font-size:12px; color:var(--muted,#6b7280); font-weight:600; margin:6px 0 20px; }

    #ccSnapModal .cc-modal-card{ max-width:620px; }
    #ccSnapViews{ display:grid; grid-template-columns:1fr 1fr; gap:1px 14px; }
    #ccSnapPv{ display:none; position:fixed; inset:0; z-index:12000; flex-direction:column; background:var(--bg,#eef1f4); }
    #ccSnapPv.show{ display:flex; }
    #ccSnapPv .cc-lb-bar{ background:var(--panel,#fff); }
    #ccSnapPvStage{ flex:1; overflow:auto; padding:22px 16px 40px; }
    #ccSnapPvStage .pv-wrap{ margin:0 auto 6px; box-shadow:0 6px 24px rgba(15,23,42,.18); background:#fff; }
    #ccSnapPvStage .pv-cap{ text-align:center; font-size:12px; color:var(--muted,#6b7280); font-weight:600; margin:8px 0 22px; }
    #ccSnapPvStage .snap-imgs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:20px; max-width:1400px; margin:0 auto; }
    #ccSnapPvStage .snap-fig{ margin:0; background:#fff; padding:10px; border-radius:10px; box-shadow:0 4px 18px rgba(15,23,42,.14); }
    #ccSnapPvStage .snap-fig img{ width:100%; height:auto; display:block; border-radius:6px; }
    #ccSnapPvStage .snap-fig figcaption{ text-align:center; font-size:12px; font-weight:700; color:#111; padding-top:8px; text-transform:uppercase; letter-spacing:.05em; }

    #ccPlanModal .cc-modal-card{ max-width:620px; }
    #ccPlanPv{ display:none; position:fixed; inset:0; z-index:12000; flex-direction:column; background:var(--bg,#eef1f4); }
    #ccPlanPv.show{ display:flex; }
    #ccPlanPv .cc-lb-bar{ background:var(--panel,#fff); }
    #ccPlanPvStage{ flex:1; overflow:auto; padding:22px 16px 40px; }
    #ccPlanPvStage .pv-wrap{ margin:0 auto 6px; box-shadow:0 6px 24px rgba(15,23,42,.18); }
    #ccPlanPvStage .pv-cap{ text-align:center; font-size:12px; color:var(--muted,#6b7280); font-weight:600; margin:8px 0 22px; }
    #ccPlanPvStage .pv-boq{ background:#fff; color:#111; margin:0 auto 30px; padding:26px 30px; box-shadow:0 6px 24px rgba(15,23,42,.18); font-size:12px; font-family:Arial,Helvetica,sans-serif; }
    #ccPlanPvStage .pv-boq h1{ font-size:18px; margin:0 0 2px } #ccPlanPvStage .pv-boq h2{ font-size:13px; margin:22px 0 6px }
    #ccPlanPvStage .pv-boq table{ width:100%; border-collapse:collapse; margin-bottom:8px }
    #ccPlanPvStage .pv-boq td,#ccPlanPvStage .pv-boq th{ padding:5px 8px; border-bottom:1px solid #d5d9de; text-align:left }
    #ccPlanPvStage .pv-boq .r{ text-align:right; white-space:nowrap }
    #ccPlanPvStage .pv-boq .sec td{ font-weight:bold; text-transform:uppercase; font-size:10px }
    #ccPlanPvStage .pv-boq .ss td,#ccPlanPvStage .pv-boq .tot td{ font-weight:bold }
    #ccPlanPvStage .pv-boq .grand td{ font-weight:bold; font-size:14px }
    #ccPlanPvStage .pv-boq thead th{ border-bottom:2px solid #111; font-size:10px; text-transform:uppercase }
    #ccPlanPvStage .pv-boq .doc-metaline{ font-size:11px; margin:2px 0 14px }
