  :root{
    --brand:#16233f; --brand-2:#22345c; --accent:#f0a43a; --accent-soft:#fdf1df;
    --surface:#f4f6f9; --line:#e3e7ee; --ink:#1d2433; --muted:#6b7385;
    --bs-primary:#16233f; --bs-primary-rgb:22,35,63; --bs-link-color:#22345c; --bs-link-color-rgb:34,52,92;
    --bs-border-radius:.6rem; --bs-border-color:var(--line);
  }
  html[lang=ar] body{font-family:'Cairo',system-ui,sans-serif}
  html[lang=en] body{font-family:'Inter',system-ui,sans-serif}
  body{background:var(--surface);color:var(--ink);font-size:.94rem}
  .num{font-variant-numeric:tabular-nums}
  span.num,div.num,b.num{direction:ltr;unicode-bidi:isolate;display:inline-block}

  /* buttons */
  .btn-brand{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--brand-2);--bs-btn-hover-border-color:var(--brand-2);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--brand-2);--bs-btn-active-color:#fff}
  .btn-accent{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-color:#1d2433;--bs-btn-hover-bg:#e2932a;--bs-btn-hover-border-color:#e2932a;--bs-btn-hover-color:#1d2433;--bs-btn-active-bg:#e2932a}
  .form-control:focus,.form-select:focus,.form-check-input:focus{border-color:#8fa0c4;box-shadow:0 0 0 .2rem rgba(22,35,63,.12)}
  .form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}

  /* login */
  #login-screen{min-height:100vh;background:linear-gradient(135deg,var(--brand) 0%,#2b416e 100%)}
  .login-card{max-width:420px;width:100%;border:0;border-radius:1rem}
  .brand-mark{width:42px;height:42px;border-radius:.7rem;background:var(--accent);color:var(--brand);display:grid;place-items:center;font-size:1.35rem}

  /* shell */
  .topbar{background:#fff;border-bottom:1px solid var(--line);height:60px;position:sticky;top:0;z-index:1030}
  .sidebar{background:var(--brand)!important;color:#c9d2e4;width:250px;flex:0 0 250px;min-height:calc(100vh - 60px)}
  .sidebar .nav-link{color:#c9d2e4;border-radius:.55rem;padding:.6rem .85rem;display:flex;align-items:center;gap:.7rem;margin-bottom:2px}
  .sidebar .nav-link i{font-size:1.05rem;opacity:.85}
  .sidebar .nav-link:hover{background:rgba(255,255,255,.07);color:#fff}
  .sidebar .nav-link.active{background:var(--accent);color:var(--brand);font-weight:600}
  .sidebar .nav-section{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:#7d8bab;padding:1rem .85rem .35rem}
  @media (min-width:992px){ .sidebar{position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto} }
  @media (max-width:991.98px){ .sidebar.offcanvas-lg{width:270px} }
  main{min-width:0}
  @media (min-width:992px){ #brand-link{min-width:226px} }
  .btn-check:checked+label .wbs-code{color:inherit;opacity:.85}
  .btn-outline-warning{--bs-btn-color:#a66412;--bs-btn-border-color:#e2b36f;--bs-btn-hover-bg:#e2932a;--bs-btn-hover-border-color:#e2932a;--bs-btn-hover-color:#fff}
  .page-head h1{font-size:1.35rem;font-weight:700;margin:0}
  .page-head .crumb{color:var(--muted);font-size:.82rem}

  /* cards */
  .card{border:1px solid var(--line);box-shadow:0 1px 2px rgba(16,24,40,.04)}
  .card-header{background:#fff;border-bottom:1px solid var(--line);font-weight:600}
  .stat .icon{width:44px;height:44px;border-radius:.7rem;display:grid;place-items:center;font-size:1.25rem}
  .stat .value{font-size:1.45rem;font-weight:700}
  .stat .label{color:var(--muted);font-size:.82rem}
  .ic-blue{background:#e7edf9;color:#2c4a8a}.ic-amber{background:var(--accent-soft);color:#b8741a}.ic-green{background:#e3f4ea;color:#21804a}.ic-red{background:#fbe8e8;color:#b43b3b}

  /* tables */
  .table{--bs-table-bg:transparent;margin:0}
  .table thead th{font-size:.78rem;color:var(--muted);font-weight:600;background:#f9fafc;border-bottom:1px solid var(--line);white-space:nowrap}
  .table td{vertical-align:middle}
  .progress{height:8px;background:#e9edf3}
  .progress-bar{background:var(--brand)}
  .planned-mark{position:relative}
  .planned-mark .tick{position:absolute;top:-3px;width:2px;height:14px;background:var(--accent)}

  /* badges */
  .badge-soft{font-weight:600;padding:.38em .65em;border-radius:.45rem;font-size:.78rem;white-space:nowrap;display:inline-block}
  td.num,.table td .num{white-space:nowrap}
  .nav-pills{--bs-nav-pills-link-active-bg:var(--brand);--bs-nav-link-color:var(--brand-2);--bs-nav-link-hover-color:var(--brand)}
  .nav-tabs{--bs-nav-link-color:var(--muted);--bs-nav-link-hover-color:var(--brand)}
  .nav-tabs .nav-link.active{color:var(--brand);font-weight:600}
  .bs-active{background:#e3f4ea;color:#1d7444}.bs-planned{background:#e7edf9;color:#2c4a8a}.bs-done{background:#eceef2;color:#4a5263}
  .bs-late{background:#fbe8e8;color:#a63434}.bs-over{background:var(--accent-soft);color:#a66412}.bs-pending{background:var(--accent-soft);color:#a66412}
  .bs-paid{background:#e3f4ea;color:#1d7444}.bs-upcoming{background:#e7edf9;color:#2c4a8a}.bs-approved{background:#e3f4ea;color:#1d7444}.bs-rejected{background:#fbe8e8;color:#a63434}.bs-received{background:#e7edf9;color:#2c4a8a}

  /* WBS tree */
  .wbs-phase td{background:#f6f8fb;font-weight:600}
  .wbs-phase .toggle{border:0;background:none;padding:0 .25rem;color:var(--muted)}
  .wbs-phase .toggle i{transition:transform .15s}
  .wbs-phase.collapsed .toggle i{transform:rotate(-90deg)}
  html[dir=rtl] .wbs-phase.collapsed .toggle i{transform:rotate(90deg)}
  .wbs-pkg td:nth-child(2){padding-inline-start:2.4rem}
  .wbs-code{font-family:ui-monospace,Menlo,monospace;font-size:.82rem;color:var(--muted)}
  .cost-over{color:#b43b3b;font-weight:600}

  /* cashflow chart */
  .cf-chart{display:flex;align-items:flex-end;gap:1rem;height:190px;padding-top:.5rem;border-bottom:1px solid var(--line)}
  .cf-month{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
  .cf-bars{display:flex;gap:4px;align-items:flex-end;height:100%;width:100%;justify-content:center}
  .cf-bar{width:40%;max-width:22px;border-radius:4px 4px 0 0}
  .cf-in{background:var(--brand)}.cf-out{background:var(--accent)}
  .cf-labels{display:flex;gap:1rem}.cf-labels span{flex:1;text-align:center;font-size:.75rem;color:var(--muted);padding-top:.35rem}
  .legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block;margin-inline-end:.35rem}

  /* attendance (mobile first) */
  .att-row{border-bottom:1px solid var(--line);padding:.75rem 1rem}
  .att-row:last-child{border-bottom:0}
  .avatar{width:38px;height:38px;border-radius:50%;background:#e7edf9;color:#2c4a8a;display:grid;place-items:center;font-weight:700;font-size:.85rem;flex:none}
  .btn-check:checked+.btn-outline-success{background:#21804a;border-color:#21804a}
  .btn-check:checked+.btn-outline-warning{background:#e2932a;border-color:#e2932a;color:#fff}
  .btn-check:checked+.btn-outline-danger{background:#b43b3b;border-color:#b43b3b}
  .ot-input{width:70px}

  .photo-thumb{width:84px;height:84px;object-fit:cover;border-radius:.5rem;border:1px solid var(--line)}
  .dropzone{border:2px dashed #c9d1de;border-radius:.75rem;padding:1.25rem;text-align:center;color:var(--muted);cursor:pointer;background:#fbfcfe}
  .dropzone:hover{border-color:var(--brand-2);color:var(--brand-2)}
  .lang-btn{min-width:44px;font-weight:700}
  .toast-container{z-index:1090}
  .bs-overdue{background:#fbe8e8;color:#a63434}.bs-due{background:var(--accent-soft);color:#a66412}.bs-partial{background:#e7f1fb;color:#2c5f8a}
  .bs-in{background:#e3f4ea;color:#1d7444}.bs-out{background:#fbe8e8;color:#a63434}.bs-po{background:#eceef2;color:#4a5263}
  .dir-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:.9rem}
  .dir-in{background:#e3f4ea;color:#1d7444}.dir-out{background:#fbe8e8;color:#a63434}
  .sched-row td{background:#fafbfd}
  .sched-row .inner{border-inline-start:3px solid var(--accent);margin:.25rem 0 .5rem}
  .plan-sum{background:#f6f8fb;border-radius:.6rem;padding:.75rem 1rem}
  .seg .btn{flex:1}
  #fin-chart .cf-bar{max-width:28px}
  .bs-client{background:#e7edf9;color:#2c4a8a}.bs-consultant{background:#efe7f9;color:#5b3a8f}.bs-executor{background:var(--accent-soft);color:#a66412}
  .party-card .avatar.t-client{background:#e7edf9;color:#2c4a8a}.party-card .avatar.t-consultant{background:#efe7f9;color:#5b3a8f}.party-card .avatar.t-executor{background:var(--accent-soft);color:#a66412}
  .link-chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);border-radius:2rem;padding:.2rem .65rem;font-size:.78rem;background:#fff;margin:0 .25rem .35rem 0}
  .link-chip .val{color:var(--muted)}
  .type-pick .btn{flex:1}
  .proj-link-row{border:1px solid var(--line);border-radius:.6rem;padding:.55rem .75rem}
  .proj-link-row.on{border-color:#8fa0c4;background:#f7f9fd}

  /* Laravel additions */
  .inbox{height:calc(100vh - 170px);min-height:520px}
  .inbox .conv-list{overflow-y:auto;border-inline-end:1px solid var(--line)}
  .conv-item{display:flex;gap:.75rem;padding:.8rem 1rem;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
  .conv-item:hover{background:#f7f9fc}.conv-item.active{background:#eef2fa}
  .conv-item .snippet{color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .conv-item.unread .title{font-weight:700}
  .thread{display:flex;flex-direction:column;min-width:0}
  .thread-body{flex:1;overflow-y:auto;padding:1rem 1.25rem;background:#fafbfd}
  .msg{max-width:78%;margin-bottom:.9rem}
  .msg .bubble{background:#fff;border:1px solid var(--line);border-radius:.85rem;padding:.6rem .85rem;white-space:pre-wrap;word-wrap:break-word}
  .msg.mine{margin-inline-start:auto}
  .msg.mine .bubble{background:var(--brand);color:#fff;border-color:var(--brand)}
  .msg .meta{font-size:.72rem;color:var(--muted);margin:.2rem .3rem}
  .msg .att{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;background:#f1f3f7;border-radius:.5rem;padding:.25rem .55rem;margin:.3rem .3rem 0 0;color:var(--ink);text-decoration:none}
  .msg.mine .att{background:rgba(255,255,255,.15);color:#fff}
  .msg .att-img{max-width:220px;max-height:160px;border-radius:.5rem;display:block;margin-top:.35rem}
  .day-sep{text-align:center;font-size:.72rem;color:var(--muted);margin:.5rem 0 1rem}
  .composer{border-top:1px solid var(--line);padding:.75rem 1rem;background:#fff}
  .prio-urgent{border-inline-start:3px solid #b43b3b}.prio-important{border-inline-start:3px solid var(--accent)}
  .bs-admin{background:#16233f;color:#fff}.bs-project_manager{background:#e7edf9;color:#2c4a8a}.bs-site_engineer{background:#e3f4ea;color:#1d7444}.bs-accountant{background:#efe7f9;color:#5b3a8f}.bs-storekeeper{background:var(--accent-soft);color:#a66412}
  .bs-supplier{background:#eceef2;color:#4a5263}.bs-on_hold{background:#eceef2;color:#4a5263}
  .bs-direct{background:#eceef2;color:#4a5263}.bs-group{background:#e7edf9;color:#2c4a8a}.bs-project{background:#e3f4ea;color:#1d7444}.bs-broadcast{background:#fbe8e8;color:#a63434}
  .matrix th.rot{writing-mode:horizontal-tb;min-width:110px;text-align:center}
  .matrix td.c{text-align:center}
  .matrix tr.grp td{background:#f6f8fb;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
  @media (max-width:991.98px){ .inbox{height:auto} .inbox .conv-list{max-height:320px;border-inline-end:0;border-bottom:1px solid var(--line)} .thread-body{max-height:60vh} }

  @media print { .topbar,.sidebar,.d-print-none,.alert-dismissible .btn-close{display:none!important} main{padding:0!important} body{background:#fff} .card{box-shadow:none} }
  .sidebar{overflow-y:auto}
