:root{--bg:#f4f6fa;--surface:#fff;--surface-2:#f8fafc;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--accent:#1d4ed8;--accent-soft:#dbeafe;--sidebar:#0b1b33;--ok:#16a34a;--bad:#dc2626;--warn:#d97706;--g-bar:#4f81bd;--g-prog:#1f3b63;--g-summary:#1f2937;--g-link:#475569;--g-grid:#eef2f7;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,Tahoma,Noto Sans Arabic,sans-serif}:root[data-theme=dark]{--bg:#0b1120;--surface:#111827;--surface-2:#0f172a;--text:#e5e7eb;--muted:#94a3b8;--border:#1f2a3c;--accent:#60a5fa;--accent-soft:#1e3a5f;--sidebar:#020617;--g-bar:#5b8fd1;--g-prog:#bcd3f2;--g-summary:#cbd5e1;--g-link:#94a3b8;--g-grid:#172033}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent);text-decoration:none}h1{margin:0 0 1rem;font-size:1.45rem}h2{margin:0 0 .75rem;font-size:1.02rem}code,.mono{font-family:ui-monospace,Consolas,monospace;font-size:.85em}.muted{color:var(--muted)}.small{font-size:.85rem}.bad-text{color:var(--bad)}.ok-text{color:var(--ok)}.center{place-items:center;min-height:100vh;display:grid}.row{align-items:center;gap:.4rem;display:flex}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.wrap{flex-wrap:wrap}.gap{gap:.6rem}.grow,.spacer{flex:1}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pre{white-space:pre-wrap;margin:0}.print-only{display:none}.layout{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);color:#cbd5e1;flex-direction:column;flex-shrink:0;width:232px;padding:1rem;display:flex}.brand{color:#fff;justify-content:space-between;align-items:center;margin-bottom:1.5rem;font-size:1rem;font-weight:700;display:flex}.sidebar nav{flex-direction:column;gap:.2rem;display:flex}.sidebar a{color:inherit;border-radius:8px;align-items:center;gap:.6rem;padding:.6rem .75rem;display:flex}.sidebar a:hover{background:#ffffff12}.sidebar a.active{color:#fff;background:#1d4ed8}.sidebar-foot{gap:.4rem;margin-top:auto;display:grid}.link-btn{color:inherit;cursor:pointer;font:inherit;text-align:start;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;display:inline-flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.6rem;height:52px;padding:0 1rem;display:flex}.content{min-width:0;padding:1.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:1rem;padding:1rem}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;display:grid}.stats .card{gap:.35rem;margin-bottom:1rem;display:grid}.stat-value{font-size:1.5rem;font-weight:700}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.two-col{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.two-col>.card{margin-bottom:1rem}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem .95rem;font-size:.9rem;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:0 0}.btn.danger{color:var(--bad)}.btn.sm{padding:.38rem .65rem;font-size:.84rem}.btn.icon{padding:.38rem .45rem}.icon-btn{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.25rem;display:inline-flex}.icon-btn:hover{background:var(--surface-2)}.input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:.6rem .75rem;font-size:.92rem}.input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.input.sm{width:auto;padding:.35rem .5rem;font-size:.84rem}.input:disabled{opacity:.75}.content>.input{margin-bottom:1rem}textarea.input{resize:vertical}.field{color:var(--muted);gap:.3rem;font-size:.86rem;display:grid}.field>.input,.field>div{color:var(--text)}.form-grid{grid-template-columns:1fr 1fr;gap:.85rem 1rem;display:grid}.form-grid .wide,.form-grid h2{grid-column:1/-1}.form-grid.narrow{max-width:460px}.chips{flex-wrap:wrap;gap:.35rem;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;border-radius:999px;padding:.3rem .7rem;font-size:.82rem}.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.tag{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:.2rem;padding:.15rem .5rem;font-size:.75rem;display:inline-flex}.tag.accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.alert{border-radius:8px;margin-bottom:1rem;padding:.6rem .8rem;font-size:.9rem}.alert.bad{color:#991b1b;background:#fee2e2}.alert.warn{color:#92400e;background:#fef3c7}.list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.list li{flex-wrap:wrap}.toast{bottom:1.2rem;color:#fff;z-index:100;background:#0f172a;border-radius:10px;padding:.65rem 1rem;font-size:.9rem;position:fixed;inset-inline-start:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}[dir=rtl] .toast{transform:translate(50%)}.toast.bad{background:var(--bad)}.pbar{background:var(--g-grid);border-radius:99px;height:8px;margin:.25rem 0;position:relative;overflow:visible}.pbar-fill{background:var(--ok);border-radius:99px;height:100%}.pbar-fill.behind{background:var(--warn)}.pbar-plan{background:var(--text);opacity:.55;width:2px;height:14px;position:absolute;top:-3px}.stage-row{margin-bottom:.7rem}.table-wrap{overflow-x:auto}.card.table-wrap{padding:0}.tbl{border-collapse:collapse;width:100%;font-size:.9rem}.tbl th,.tbl td{text-align:start;border-bottom:1px solid var(--border);white-space:nowrap;padding:.55rem .75rem}.tbl th{color:var(--muted);background:var(--surface-2);font-size:.8rem;font-weight:600;position:sticky;top:0}.tbl.compact td{padding:.3rem .5rem}.pct-input{text-align:center;width:74px;padding:.3rem .4rem}.pct-input.full{color:#166534;background:#dcfce7}.pct-input.part{color:#854d0e;background:#fef9c3}.pct-input.changed{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.rows-line{margin-bottom:.45rem}.input.num{width:90px}.modal-bg{z-index:50;background:#02061780;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:90vh;margin:0;overflow:auto}.modal.wide{width:min(900px,100%)}.modal-head{margin-bottom:.75rem}.modal-head h2{margin:0}.login-wrap{background:linear-gradient(160deg,#0b1b33,#1d4ed8);place-items:center;min-height:100vh;padding:1rem;display:grid}.login{gap:1rem;width:min(400px,100%);padding:1.5rem;display:grid}.login h1{margin:0;font-size:1.2rem}.project-card{color:inherit;gap:.5rem;margin:0;transition:border-color .15s;display:grid}.project-card:hover{border-color:var(--accent)}.project-name{font-size:1.05rem}.project-head h1{margin:.25rem 0 .75rem}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1rem;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:.55rem .9rem;font-size:.92rem}.tabs a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.75rem;display:flex}.toolbar h2{margin:0}.toolbar .sep{background:var(--border);width:1px;height:22px}.sticky-bar{z-index:5;background:var(--bg);padding:.5rem 0;position:sticky;top:0}.seg{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border:0;padding:.38rem .6rem;font-size:.82rem}.seg button+button{border-inline-start:1px solid var(--border)}.seg button.on{background:var(--accent);color:#fff}.danger-zone{border-color:#fecaca}.tw{background:#9ca3af;border-radius:50%;flex-shrink:0;width:12px;height:12px;display:inline-block}.tw-none{background:#9ca3af}.tw-started{background:#f97316}.tw-excavation{background:#eab308}.tw-foundation{background:#a855f7}.tw-erection{background:#2563eb}.tw-stringing{background:#16a34a}.tower-strip{flex-wrap:wrap;gap:3px;margin-top:1rem;display:flex}.tower-strip .tw{border-radius:3px;width:14px;height:14px}.legend{color:var(--muted);flex-wrap:wrap;gap:.4rem 1rem;margin:.6rem 0;display:flex}.ramp{background:linear-gradient(90deg,#d42020,#d4c520,#22c55e);border-radius:4px;width:120px;height:10px;display:inline-block}[dir=rtl] .ramp{transform:scaleX(-1)}.gantt{background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:12.5px;overflow:hidden}.gantt-scroll{min-height:300px;max-height:calc(100vh - 230px);overflow:auto}.gantt-inner{display:flex;position:relative}.gantt-table{z-index:3;background:var(--surface);border-right:2px solid var(--border);flex-shrink:0;position:sticky;left:0}.gantt-head{z-index:4;background:var(--surface-2);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.gh-cell{color:var(--muted);border-right:1px solid var(--border);flex-shrink:0;align-items:flex-end;padding:0 6px 6px;font-size:11.5px;font-weight:600;display:flex}.g-row{border-bottom:1px solid var(--g-grid);cursor:default;display:flex}.g-row.summary{font-weight:700}.g-row.sel,.g-row.sel .g-cell{background:var(--accent-soft)}.g-cell{border-right:1px solid var(--g-grid);background:var(--surface);flex-shrink:0;align-items:center;padding:0 6px;display:flex;overflow:hidden}.g-cell.c-row{color:var(--muted);background:var(--surface-2);cursor:pointer;justify-content:center}.g-cell.c-duration,.g-cell.c-percent{justify-content:flex-end}.g-cell.editable:hover{box-shadow:inset 0 0 0 1px var(--border)}.g-name{align-items:center;gap:2px;width:100%;min-width:0;display:flex}.g-tog{width:16px;height:16px;color:inherit;cursor:pointer;background:0 0;border:0;flex-shrink:0;place-items:center;padding:0;display:inline-grid}.g-ms{color:var(--g-summary);flex-shrink:0}.g-link-badge{color:#166534;text-transform:uppercase;background:#dcfce7;border-radius:4px;margin-left:auto;padding:0 4px;font-size:9.5px;font-weight:600}.g-input{border:1px solid var(--accent);width:100%;height:24px;font:inherit;background:var(--surface);color:var(--text);border-radius:3px;padding:0 4px}.gantt-chart{flex-shrink:0;position:relative}.chart-head{display:block}.tier{position:absolute;left:0;right:0}.tier-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted);white-space:nowrap;align-items:center;padding:0 4px;font-size:11px;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.tier-cell.we{color:var(--bad)}.gantt-svg{background-image:linear-gradient(var(--g-grid) 1px, transparent 1px);background-size:100% 30px;display:block}.g-weekend{fill:var(--g-grid);opacity:.7}.g-selrow{fill:var(--accent-soft);opacity:.6}.g-today{stroke:var(--bad);stroke-width:1.5px;stroke-dasharray:4 3}.g-bar{fill:var(--g-bar);stroke:#3a6aa5;stroke-width:.5px}.g-bar.late{fill:#e06666;stroke:#b44}.g-bar.critical{fill:#dc2626;stroke:#991b1b}.crit-dot{background:#dc2626;border-radius:2px;width:10px;height:10px;display:inline-block}.g-bar.linked{stroke:#16a34a;stroke-width:1.5px}.g-prog{fill:var(--g-prog)}.g-summary{fill:var(--g-summary)}.g-summary-prog{fill:#16a34a}.g-milestone{fill:var(--g-summary)}.g-milestone.done{fill:var(--ok)}.g-baseline{fill:#a3a3a3}.g-linkline{fill:none;stroke:var(--g-link);stroke-width:1px}.g-arrow{fill:var(--g-link)}.g-label{fill:var(--muted);font-size:11px}.g-hit{cursor:pointer}.drawing-layout{grid-template-columns:1fr 280px;align-items:start;gap:1rem;display:grid}.drawing-main{padding:.5rem}.dxf-wrap{border:1px solid var(--border);border-radius:8px;height:calc(100vh - 290px);min-height:380px;position:relative;overflow:hidden}.dxf-canvas{width:100%;height:100%}.dxf-overlay{background:color-mix(in srgb, var(--surface) 70%, transparent);text-align:center;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.dxf-fit{top:.5rem;position:absolute;inset-inline-end:.5rem}.layer-list{gap:.3rem;max-height:240px;display:grid;overflow:auto}.swatch{border:1px solid var(--border);border-radius:2px;width:10px;height:10px}.tower-mini{flex-wrap:wrap;gap:.3rem;max-height:220px;display:flex;overflow:auto}.tower-chip{background:var(--surface);color:var(--text);cursor:pointer;border:2px solid;border-radius:6px;padding:.1rem .4rem;font-family:inherit;font-size:.78rem}.bulk{background:var(--surface-2);border-radius:8px;margin-bottom:.75rem;padding:.5rem}.print-page{color:#111;background:#e5e7eb;min-height:100vh;padding:1rem}.print-actions{justify-content:center;gap:.5rem;margin-bottom:1rem;display:flex}.sheet{background:#fff;width:210mm;min-height:297mm;margin:0 auto;padding:14mm;font-size:11pt;box-shadow:0 4px 20px #00000026}.sheet h3{color:#1d4ed8;border-bottom:2px solid #1d4ed8;margin:12px 0 6px;padding-bottom:3px;font-size:11pt}.sheet-head{border-bottom:3px solid #0b1b33;justify-content:space-between;gap:1rem;padding-bottom:8px;display:flex}.sheet-title{color:#0b1b33;font-size:18pt;font-weight:800}.sheet-meta th{text-align:start;color:#555;padding:1px 8px;font-weight:600}.sheet-meta td{padding:1px 8px}.sheet-kpis{grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0;display:grid}.sheet-kpis div{text-align:center;border:1px solid #ccd;border-radius:6px;padding:6px;display:grid}.sheet-kpis span{color:#555;font-size:9pt}.sheet-kpis b{font-size:14pt}.sheet-cols{grid-template-columns:1fr 1fr;gap:12px;display:grid}.sheet-tbl{border-collapse:collapse;width:100%;font-size:10pt}.sheet-tbl th,.sheet-tbl td{text-align:start;border:1px solid #bbb;padding:3px 6px}.sheet-tbl th{background:#eef2ff}.sheet-tbl tr.group td{background:#f3f4f6;font-weight:700}.sheet-sign{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;display:grid}.sheet-sign span{color:#555;font-size:9pt}.sign-line{border-bottom:1px solid #333;align-items:flex-end;height:34px;padding-bottom:2px;display:flex}.sheet.dr{font-family:Arial,Segoe UI,Tahoma,sans-serif;font-size:10.5pt}.dr-head{background:#f6f8fb;border:1px solid #cfd8e3;border-radius:4px;padding:10px 14px}.dr-head dl{grid-template-columns:1.4fr 1fr;gap:6px 24px;margin:0;display:grid}.dr-head dl>div{gap:6px;display:flex}.dr-head .span2{grid-column:1}.dr-head dt{color:#1f2937;min-width:80px;font-weight:700}.dr-head dd{margin:0}.dr-title{text-align:center;letter-spacing:.06em;color:#111;background:#f2c200;border:1px solid #c79f00;margin:14px 0 10px;padding:6px;font-size:14pt;font-weight:800}.dr-date{color:#1f2937;margin:6px 0 8px;font-weight:700}.dr-tbl{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:9.5pt}.dr-tbl th{color:#fff;background:#5a7088;border:1px solid #9fb0c2;padding:6px 4px;font-weight:700}.dr-tbl thead tr+tr th{color:#1f2937;background:#e8eef5}.dr-tbl td{vertical-align:top;border:1px solid #b9c6d4;height:24px;padding:5px 6px}.dr-tbl td.c{text-align:center}.dr-tbl td.desc{line-height:1.35}.dr-tbl .w-sn{width:28px}.dr-tbl .w-sm{width:52px}.dr-tbl .w-md{width:70px}.dr-two{grid-template-columns:1fr 1fr;gap:14px;margin-top:10px;display:grid}.dr-sign{text-align:center;grid-template-columns:1fr 1fr;margin-top:30px;display:grid}.dr-sign span{color:#1f2937;font-weight:700}.dr-sign .sig{min-height:40px;padding-top:6px;font-family:Times New Roman,serif;font-size:14pt}.dr-annex{page-break-before:always;margin-top:24px}.sheet.dr{position:relative}.dr-watermark{text-align:center;color:#dc26261f;pointer-events:none;font-size:60pt;font-weight:900;position:absolute;top:40%;left:0;right:0;transform:rotate(-20deg)}.dr-photos{page-break-inside:avoid;margin-top:18px}.dr-photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.dr-photo-grid figure{border:1px solid #ccd;margin:0}.dr-photo-grid img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.dr-photo-grid figcaption{padding:2px 4px;font-size:8pt}.dr-annex h3{border-bottom:2px solid #5a7088;padding-bottom:3px;font-size:11pt}.dr-kpis{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;display:grid}.dr-kpis div{text-align:center;border:1px solid #ccd;border-radius:6px;padding:6px;display:grid}.dr-kpis span{color:#555;font-size:8.5pt}.acts .desc{min-width:260px}.mat-tbl td.wrap-cell,.tbl td.wrap-cell{white-space:normal;min-width:180px}.mat-tbl .pbar{max-width:220px;margin-top:.35rem}.warn-text{color:var(--warn)}.mv-in{color:#166534;background:#dcfce7;border-color:#0000}.mv-out{color:#1e40af;background:#dbeafe;border-color:#0000}.mv-return{color:#92400e;background:#fef3c7;border-color:#0000}h2.pad{padding:1rem 1rem 0}.acts .num-sm{width:72px}.badge-st{white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600}.st-draft{color:#374151;background:#e5e7eb}.st-submitted{color:#1e40af;background:#dbeafe}.st-changes{color:#92400e;background:#fef3c7}.st-approved{color:#166534;background:#dcfce7}.alert.info{background:var(--accent-soft);color:var(--text)}.sig-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem;display:grid}.sig-box{border:1px dashed var(--border);border-radius:10px;gap:.2rem;padding:.6rem .75rem;display:grid}.sig-box.ok{border-style:solid;border-color:#86efac}.sig-box.old{border-style:solid;border-color:#fcd34d}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;margin-top:.6rem;display:grid}.photo{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;margin:0;position:relative;overflow:hidden}.photo img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.photo figcaption{gap:.1rem;padding:.4rem .5rem;font-size:.78rem;display:grid}.photo-del{top:4px;color:var(--bad);background:#ffffffe6;position:absolute;inset-inline-end:4px}.upload-queue{gap:.3rem;margin:.5rem 0;font-size:.82rem;display:grid}.uq{align-items:center;gap:.35rem;display:flex}.uq.err{color:var(--bad)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.big-touch{min-height:42px;padding-inline:1rem}h2.mt{margin-top:1.2rem}.levels-tbl td,.levels-tbl th{text-align:center}.levels-tbl td:first-child,.levels-tbl th:first-child{text-align:start}.home-today{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.today-btn{border-radius:14px;justify-content:center;align-items:center;gap:.5rem;min-height:64px;font-size:1.05rem;font-weight:700;display:flex}.demo-badge{color:#78350f;letter-spacing:.05em;background:#fde68a;border-radius:6px;padding:.1rem .45rem;font-size:.7rem;font-weight:800}.inbox li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.sheet .sig-cell{color:#444;font-size:8.5pt}.vault-card{max-width:640px}.recovery{letter-spacing:.06em;background:var(--surface-2);border:2px dashed var(--warn);word-break:break-all;border-radius:10px;margin:.8rem 0;padding:.9rem;font-family:ui-monospace,Consolas,monospace;font-size:1.15rem}.stat-btn{text-align:start;cursor:pointer;font:inherit;color:inherit;margin:0}.stat-btn.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.small-val{font-size:1.1rem}.vault-sum{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.danger-row td{background:color-mix(in srgb, var(--bad) 8%, transparent)}.audit-tbl td{vertical-align:top}.mt-s{margin-top:.75rem}.phase-card h2{margin:0}.boq-tbl td{vertical-align:top}.pct-cell{min-width:90px}.na-row td{opacity:.5}.bad-tag{color:#991b1b;background:#fee2e2;border-color:#0000}.asset-tbl th{white-space:normal;min-width:70px;font-size:.72rem}.asset-tbl td{text-align:center}.na-cell{color:var(--muted);background:var(--surface-2);font-size:.75rem}.done-cell{color:#166534;background:#dcfce7}.part-cell{color:#854d0e;background:#fef9c3}.co-item{border-bottom:1px solid var(--border);gap:.3rem;padding-bottom:.6rem;display:grid}.co-draft{color:#1e40af;background:#dbeafe}.co-approved{color:#166534;background:#dcfce7}.co-rejected{color:#991b1b;background:#fee2e2}.co-line{margin:.35rem 0}.type-input{width:70px;padding:.3rem .4rem}.member-row{gap:.35rem;display:grid}.sync-badge{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.8rem;display:inline-flex}.sync-badge.pending{color:#92400e;background:#fef3c7;border-color:#fcd34d}.doc-status{border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.dst-draft{color:#374151;background:#e5e7eb}.dst-approved{color:#166534;background:#dcfce7}.dst-superseded{color:#991b1b;background:#fee2e2}.pv{border:1px solid var(--border);border-radius:6px;padding:.1rem .45rem;font-size:.72rem}.pv-shared{color:#5b21b6;background:#ede9fe;border-color:#0000}.pv-site{color:#92400e;background:#fef3c7;border-color:#0000}.instr{border-bottom:1px solid var(--border);gap:.3rem;padding-bottom:.6rem;display:grid}.ok-tag{color:#166534;background:#dcfce7;border-color:#0000}.instr-panel{border-inline-start:3px solid var(--accent)}.a3-sheet{width:420mm;min-height:297mm;padding:10mm;position:relative}.a3-head{border-bottom:3px solid #0b1b33;justify-content:space-between;margin-bottom:8px;padding-bottom:6px;display:flex}.a3-meta{text-align:end;gap:2px;font-size:10pt;display:grid}.a3-body{grid-template-columns:1fr 70mm;gap:8mm;display:grid}.a3-drawing{border:1px solid #ccd;place-items:center;min-height:230mm;display:grid;overflow:hidden}.a3-drawing img{width:100%;height:auto;display:block}.a3-render{width:1500px;height:950px}.a3-render .dxf-wrap{height:950px}.a3-side h3{margin:8px 0 4px;font-size:10pt}.a3-mark{z-index:5;font-size:110pt}@media print{.a3-sheet{width:auto;min-height:auto;padding:0}.a3-drawing{min-height:0}}.pos-rel{position:relative}.cp-row{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.35rem;display:flex}.cp-row .input.sm{width:92px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin:.6rem 0;display:grid}.cal-head{color:var(--muted);text-align:center;font-size:.72rem}.cal-day{aspect-ratio:1.3;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;place-items:center;padding:0;display:grid;position:relative}.cal-day:hover{border-color:var(--accent)}.cal-n{font-size:.85rem;font-weight:600}.cal-ms{top:3px;color:var(--text);position:absolute;inset-inline-end:3px}.cal-crit{bottom:3px;background:#dc2626;border-radius:50%;width:6px;height:6px;position:absolute;inset-inline-start:3px}.cal-approved{background:#dcfce7;border-color:#86efac}.cal-submitted{background:#dbeafe;border-color:#93c5fd}.cal-changes{background:#fef3c7;border-color:#fcd34d}.cal-draft{background:#f3f4f6;border-color:#d1d5db}.cal-missing{background:#fee2e2;border-color:#fca5a5}.cal-off{background:var(--surface-2);color:var(--muted)}.cal-sw{border:1px solid var(--border);border-radius:3px;width:12px;height:12px;display:inline-block}.drill{cursor:pointer}.drill:hover{border-color:var(--accent)}.stage-row.drill:hover .pbar{outline:1px solid var(--accent)}.unverified-mark{pointer-events:none;color:#dc262626;z-index:2;place-items:center;font-size:3rem;font-weight:900;display:grid;position:absolute;inset:0;transform:rotate(-18deg)}.only-mobile,.backdrop{display:none}@media (width<=900px){.drawing-layout,.two-col{grid-template-columns:1fr}}@media (width<=768px){.only-mobile{display:inline-flex}.sidebar{z-index:30;transition:transform .2s;position:fixed;inset-block:0;inset-inline-start:0;transform:translate(-100%)}[dir=rtl] .sidebar{transform:translate(100%)}.sidebar.open,[dir=rtl] .sidebar.open{transform:none}.backdrop{z-index:20;background:#00000073;display:block;position:fixed;inset:0}.content{padding:.8rem}.form-grid{grid-template-columns:1fr}.gantt-scroll{max-height:calc(100vh - 250px)}.dxf-wrap{height:60vh}.sheet{width:100%;min-height:auto;padding:5mm}.sheet-kpis{grid-template-columns:1fr 1fr}}@media print{@page{size:A4;margin:10mm}.no-print,.sidebar,.topbar,.tabs,.toolbar,.backdrop,.toast{display:none!important}.print-only{display:block}.print-title{margin-bottom:8px;font-weight:700}body,.print-page{background:#fff;padding:0}.content{padding:0}.card{border:0;padding:0}.sheet{box-shadow:none;width:auto;min-height:auto;padding:0}.gantt{border:0}.gantt-scroll{max-height:none;overflow:visible}.gantt-table,.gantt-head{position:static}.g-row.sel,.g-row.sel .g-cell{background:0 0}.tbl th{position:static}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.stack{flex-direction:column;gap:1rem;display:flex}.link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:.25rem;padding:.25rem 0;display:inline-flex}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.75rem;margin-top:.75rem;display:grid}.lib-card{flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.lib-card.open{grid-column:1/-1}.lib-head{text-align:start;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:.25rem;padding:0;display:flex}.ptype{border:1px solid var(--border);border-inline-start:4px solid #64748b;border-radius:8px;flex-direction:column;gap:.45rem;margin-top:.6rem;padding:.6rem;display:flex}.code-in{text-align:center;width:4.2rem;font-weight:700}.stage-chain{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.stage-pill{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.8rem;display:inline-flex}.stage-pill b{color:var(--accent)}.stage-pill button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 .05rem;display:inline-flex}.kit{padding-inline-start:.5rem}.paste-box{flex-direction:column;gap:.4rem;margin:.5rem 0;display:flex}.seq-table{max-height:420px;overflow:auto}.warn-row td{background:#fef3c7}.na-cell{color:var(--muted);text-align:center;background:repeating-linear-gradient(45deg, transparent, transparent 4px, var(--surface-2) 4px, var(--surface-2) 8px)}.sticky-save{z-index:5;position:sticky;bottom:.5rem}.wizard{flex-direction:column;gap:1rem;min-width:min(980px,92vw);display:flex}.steps{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.steps li button{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;font:inherit;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .75rem;font-size:.82rem;display:inline-flex}.steps li.on button{background:var(--accent);color:#fff;border-color:var(--accent)}.steps li.done button{color:var(--accent);border-color:var(--accent)}.wizard-nav{background:var(--surface);padding-top:.5rem;position:sticky;bottom:0}.review-list{padding-inline-start:1.1rem;line-height:1.9}.log{background:var(--surface-2);white-space:pre-wrap;border-radius:6px;padding:.5rem}.file-pick{cursor:pointer;max-width:100%;overflow:hidden}.lib-card .tbl{table-layout:fixed;width:100%}.lib-card .tbl td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.lib-card .tbl td:first-child{width:38%}.modal.wide .wizard{width:min(980px,88vw);min-width:0}.gh-cell{position:relative}.gh-resize{cursor:col-resize;z-index:2;width:7px;height:100%;position:absolute;top:0;right:-3px}.gh-resize:hover{background:var(--accent-soft)}.g-bar.draggable,.g-hit.draggable{cursor:grab}.g-resize{fill:#0000;cursor:ew-resize}.g-resize:hover{fill:#2563eb59}.dropdown{position:relative}.dropdown-menu{top:110%;z-index:30;flex-direction:column;gap:.35rem;min-width:200px;padding:.6rem;display:flex;position:absolute;inset-inline-end:0}.btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}.lib-detail{flex-direction:column;gap:.6rem;display:flex}.lib-detail h3{margin:.4rem 0 0;font-size:.95rem}.media-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;display:grid}.media-item{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;margin:0;overflow:hidden}.media-item img,.media-item video{object-fit:cover;background:#000;width:100%;height:160px;display:block}.media-item figcaption{padding:.3rem .5rem}.media-file{height:160px;color:inherit;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;text-decoration:none;display:flex}.rel-chip{cursor:default;align-items:center;gap:.25rem;display:inline-flex}.extra-row td{background:var(--accent-soft)}.pre-wrap{white-space:pre-wrap}.gantt-printing .gantt-scroll{max-height:none;overflow:visible}@media print{.gantt{border-radius:0;overflow:visible}.gantt-printing,.gantt-printing .gantt-inner{break-inside:avoid}.gh-resize,.g-resize{display:none}}.bulk-bar{z-index:8;background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.6rem;padding:.5rem .7rem;display:flex;position:sticky;top:0}.g-row{-webkit-user-select:none;user-select:none}.g-row .c-row{cursor:pointer}.brand-mark{align-items:center;gap:.55rem}.brand-mark img{border-radius:8px;flex-shrink:0}.brand-mark>span{flex-direction:column;line-height:1.1;display:flex}.brand-mark small{opacity:.75;font-size:.68rem;font-weight:400}.share-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;display:grid}.share-card{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.share-logo{border-radius:18px}.qr{border:1px solid var(--border);background:#fff;border-radius:10px;width:min(240px,70vw);height:auto;padding:8px}.share-url{background:var(--surface-2);word-break:break-all;border-radius:6px;padding:.3rem .6rem}.btn.whatsapp{color:#fff;background:#25d366;border-color:#25d366}.steps-list{margin:.2rem 0 .6rem;padding-inline-start:1.2rem;line-height:1.8}.center{justify-content:center}
