/* ساختمانی.com — Construction Project OS / FIXED 19 */
:root{--os-yellow:#f7bd00;--os-dark:#11110f;--os-panel:#181815;--os-border:rgba(247,189,0,.16);--os-muted:#aaa79e;--os-good:#30c983;--os-bad:#ff6b6b;--os-info:#64a9ff}
.os-shell{display:grid;gap:18px}.os-project-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:16px 18px;border:1px solid var(--os-border);border-radius:18px;background:linear-gradient(135deg,rgba(247,189,0,.08),rgba(255,255,255,.025))}.os-project-bar>div:first-child{display:flex;gap:10px;align-items:center;flex:1}.os-project-select{min-width:280px}.os-summary{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:10px}.os-metric{padding:14px;border:1px solid rgba(255,255,255,.07);border-radius:16px;background:rgba(255,255,255,.025)}.os-metric b{font-size:21px;color:var(--os-yellow);display:block}.os-metric span{font-size:12px;color:var(--os-muted)}
.os-tabs{display:flex;gap:8px;overflow:auto;padding:5px 2px}.os-tab{white-space:nowrap;border:1px solid rgba(255,255,255,.09);background:#161614;color:#dcd8ce;border-radius:12px;padding:10px 14px;cursor:pointer}.os-tab.active{background:var(--os-yellow);color:#111;border-color:var(--os-yellow);font-weight:800}.os-panel{display:none}.os-panel.active{display:block}.os-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.os-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.os-card{border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(16,16,14,.82);padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.15)}.os-card h3{margin:0 0 6px}.os-card .muted{color:var(--os-muted);font-size:13px}.os-form{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.os-form .wide{grid-column:1/-1}.os-list{display:grid;gap:10px}.os-row{border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02);border-radius:14px;padding:13px}.os-row-head{display:flex;gap:10px;align-items:center;justify-content:space-between}.os-row h4{margin:0}.os-row p{margin:7px 0;color:#c9c6bd}.os-row small{color:#929087}.os-badge{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:5px 9px;font-size:11px;background:rgba(247,189,0,.12);color:#f7cf4d;border:1px solid rgba(247,189,0,.18)}.os-badge.good{background:rgba(48,201,131,.12);color:#67e5ad;border-color:rgba(48,201,131,.2)}.os-badge.bad{background:rgba(255,107,107,.12);color:#ff9a9a;border-color:rgba(255,107,107,.2)}
.os-kanban{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;overflow:auto}.os-kanban-col{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);border-radius:15px;padding:10px;min-height:160px}.os-kanban-col>h4{font-size:13px;color:#b7b4aa;display:flex;justify-content:space-between}.os-task{background:#1e1e1a;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:11px;margin:8px 0}.os-task b{font-size:13px}.os-task-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.os-mini-btn{border:1px solid rgba(255,255,255,.1);background:#111;color:#ddd;padding:5px 8px;border-radius:8px;font-size:11px;cursor:pointer}.os-mini-btn.primary{background:var(--os-yellow);color:#111;border-color:var(--os-yellow)}
.os-chat{display:grid;grid-template-columns:220px 1fr;gap:12px;min-height:540px}.os-channels{border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:10px;background:#121210}.os-channel{display:block;width:100%;text-align:right;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:#bbb;cursor:pointer}.os-channel.active{background:rgba(247,189,0,.11);color:#ffd654}.os-chat-main{display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.06);border-radius:14px;overflow:hidden}.os-messages{flex:1;padding:14px;overflow:auto;max-height:460px}.os-message{max-width:78%;margin:8px 0;padding:10px 12px;border-radius:14px;background:#252520}.os-message.mine{margin-right:auto;background:rgba(247,189,0,.12);border:1px solid rgba(247,189,0,.16)}.os-message .meta{display:flex;gap:8px;font-size:11px;color:#969389}.os-message p{margin:6px 0 0;white-space:pre-wrap}.os-composer{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:10px;background:#10100e;border-top:1px solid rgba(255,255,255,.06)}
.os-table-wrap{overflow:auto;border:1px solid rgba(255,255,255,.06);border-radius:14px}.os-table{width:100%;border-collapse:collapse;min-width:760px}.os-table th,.os-table td{padding:11px 10px;text-align:right;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px}.os-table th{color:#a9a69d;background:#141412;position:sticky;top:0}.os-table td b{font-size:13px}.os-money{font-family:JetBrains Mono,system-ui,-apple-system,'Segoe UI',Tahoma,Arial,sans-serif;color:#ffd451}.os-progress{height:8px;border-radius:99px;background:#282822;overflow:hidden}.os-progress i{display:block;height:100%;background:var(--os-yellow);border-radius:inherit}.os-empty{padding:36px;text-align:center;color:#8e8b83;border:1px dashed rgba(255,255,255,.09);border-radius:14px}.os-vendors{display:flex;gap:8px;flex-wrap:wrap;max-height:150px;overflow:auto}.os-vendor-check{display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:10px;background:#171714;border:1px solid rgba(255,255,255,.06);font-size:12px}.os-quote{border:1px solid rgba(255,255,255,.08);border-radius:15px;padding:14px}.os-quote.best{border-color:rgba(48,201,131,.35);box-shadow:0 0 0 1px rgba(48,201,131,.08)}.os-quote-price{font-size:22px;color:#ffd451}.os-po-timeline{display:flex;gap:4px;overflow:auto;margin-top:10px}.os-po-timeline span{padding:5px 8px;border-radius:8px;background:#1e1e1a;font-size:10px;white-space:nowrap}.os-po-timeline span.current{background:var(--os-yellow);color:#111}.os-notice{padding:12px 14px;border-radius:12px;background:rgba(100,169,255,.08);border:1px solid rgba(100,169,255,.14);color:#c6dcff;font-size:12px}.os-file-link{display:inline-flex;gap:5px;margin:4px 3px;padding:5px 8px;border-radius:8px;background:#111;color:#f5cf4e;font-size:11px}.os-modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:99999;padding:18px}.os-modal.show{display:flex}.os-modal-card{width:min(920px,96vw);max-height:90vh;overflow:auto;background:#171715;border:1px solid rgba(247,189,0,.2);border-radius:22px;padding:20px}.os-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.os-modal-close{background:#2a2a26;border:0;color:white;border-radius:9px;padding:7px 10px;cursor:pointer}
/* Vendor OS */.vendor-auth-gate{margin-bottom:16px}.vendor-auth-gate.logged{display:none}.vendor-status-card{display:flex;gap:10px;align-items:center}.vendor-score{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.vendor-score>div{padding:13px;border-radius:13px;background:#141412;border:1px solid rgba(255,255,255,.06)}.vendor-score b{display:block;color:#ffd451;font-size:18px}.vendor-rfq-card{border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:15px;background:#151512}.vendor-rfq-card.open{border-color:rgba(247,189,0,.2)}
/* Admin OS */.admin-os-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.admin-os-stat{background:#fff;border:1px solid #e8e8e8;border-radius:14px;padding:14px}.admin-os-stat b{display:block;font-size:22px;color:#111}.admin-os-stat span{font-size:11px;color:#777}.admin-os-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.admin-os-tab{border:1px solid #ddd;background:#fff;border-radius:9px;padding:8px 11px;cursor:pointer}.admin-os-tab.active{background:#111;color:#fff}.admin-os-pane{display:none}.admin-os-pane.active{display:block}.admin-os-project{display:grid;grid-template-columns:280px 1fr;gap:14px}.admin-os-list{max-height:600px;overflow:auto}.admin-os-row{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:12px;margin-bottom:8px}.admin-os-row button{cursor:pointer}.admin-os-vendor-status{display:flex;gap:5px;flex-wrap:wrap}
@media(max-width:1100px){.os-summary{grid-template-columns:repeat(4,1fr)}.os-grid-3{grid-template-columns:1fr 1fr}.admin-os-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.os-project-bar{align-items:stretch;flex-direction:column}.os-project-bar>div:first-child{flex-direction:column;align-items:stretch}.os-project-select{min-width:0;width:100%}.os-summary{grid-template-columns:repeat(2,1fr)}.os-grid-2,.os-grid-3,.os-form{grid-template-columns:1fr}.os-chat{grid-template-columns:1fr;min-height:0}.os-channels{display:flex;overflow:auto}.os-channel{white-space:nowrap;width:auto}.os-messages{max-height:420px}.os-composer{grid-template-columns:1fr auto}.os-composer button{grid-column:1/-1}.os-kanban{grid-template-columns:repeat(4,80vw)}.vendor-score{grid-template-columns:1fr 1fr}.admin-os-stats{grid-template-columns:1fr 1fr}.admin-os-project{grid-template-columns:1fr}.os-modal{padding:8px}.os-modal-card{padding:14px;border-radius:16px}}

/* V19 — quote comparison matrix */
.quote-compare-modal{max-width:min(1320px,96vw)!important}
.quote-matrix{margin:14px 0 18px;border:1px solid rgba(247,189,0,.16);border-radius:18px;overflow:auto}
.quote-matrix .os-table{min-width:900px;margin:0}
.quote-matrix th,.quote-matrix td{vertical-align:top;white-space:normal;min-width:150px}
.quote-matrix th:first-child{position:sticky;right:0;z-index:2;background:#171614;min-width:220px}
.quote-matrix td small,.quote-matrix th small{display:block;margin-top:5px;color:#aaa;font-weight:500}
.quote-matrix .quote-grand-row th,.quote-matrix .quote-grand-row td{background:rgba(247,189,0,.08);color:#f7bd00}
.quote-summary-cards{margin-top:12px}
@media(max-width:760px){.quote-compare-modal{padding:16px!important}.quote-matrix .os-table{min-width:720px}.quote-matrix th:first-child{min-width:170px}}

/* V19+ site inspection / punch list / schedule */
.os-row.issue-critical{border-inline-start:3px solid #d63c3c}.os-row.issue-high{border-inline-start:3px solid #f39b16}.os-row.issue-normal{border-inline-start:3px solid var(--yellow,#f7bd00)}.os-row.issue-low{border-inline-start:3px solid #5f9f72}.issue-comment-box{margin-top:10px}.os-progress{height:7px;border-radius:99px;background:rgba(127,127,127,.16);overflow:hidden;margin:10px 0}.os-progress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--yellow,#f7bd00),#ffd85e)}
/* V21 collaborative chat: replies, reactions, pinned decisions */
.os-reply-context{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;margin:8px 0;border-inline-start:3px solid var(--yellow,#f7bd00);border-radius:12px;background:rgba(247,189,0,.08)}.os-reply-context.hidden{display:none}.os-reply-context>div{display:grid;gap:2px;min-width:0}.os-reply-context small{opacity:.68}.os-reply-context b{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.os-reply-context button{border:0;background:transparent;color:inherit;font-size:1.25rem;cursor:pointer}.message-reply-preview{display:grid;gap:2px;padding:7px 9px;margin:7px 0;border-radius:10px;background:rgba(127,127,127,.09);border-inline-start:2px solid rgba(247,189,0,.5)}.message-reply-preview small{opacity:.65}.message-reply-preview span{font-size:.82rem;opacity:.86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-actions{display:flex;gap:7px;margin-top:7px}.message-actions button{border:0;background:transparent;color:inherit;opacity:.65;font:inherit;font-size:.78rem;cursor:pointer;padding:2px 0}.message-actions button:hover{opacity:1;color:var(--yellow,#f7bd00)}.message-reactions{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.reaction-chip{border:1px solid rgba(127,127,127,.18);background:rgba(127,127,127,.06);color:inherit;border-radius:999px;padding:3px 7px;cursor:pointer;font:inherit;font-size:.78rem}.reaction-chip.active{border-color:rgba(247,189,0,.45);background:rgba(247,189,0,.1)}.reaction-chip span{font-size:.7rem;opacity:.8}.os-message.pinned,.os-msg.pinned{box-shadow:inset -3px 0 0 rgba(247,189,0,.75);background:linear-gradient(90deg,rgba(247,189,0,.045),transparent)}.message-pin-badge{font-size:.72rem;color:var(--yellow,#f7bd00);margin-bottom:5px}@media(max-width:620px){.message-reactions{gap:4px}.reaction-chip{padding:3px 6px}.message-actions{margin-top:5px}}
