/* IBM Plex Sans Arabic - mandatory global typeface */
@font-face{font-family:"IBM Plex Sans Arabic";src:url("../fonts/ibm-plex-sans-arabic/IBMPlexSansArabic-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Arabic";src:url("../fonts/ibm-plex-sans-arabic/IBMPlexSansArabic-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Arabic";src:url("../fonts/ibm-plex-sans-arabic/IBMPlexSansArabic-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Arabic";src:url("../fonts/ibm-plex-sans-arabic/IBMPlexSansArabic-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
html,body,body *,input,textarea,select,button,table,th,td,.a4-document{font-family:"IBM Plex Sans Arabic",sans-serif!important}
:root{
  --brand:#b98a17;
  --brand-dark:#6b321f;
  --brand-soft:#fff7df;
  --bg:#f5f6f8;
  --panel:#ffffff;
  --text:#1e293b;
  --muted:#64748b;
  --border:#e2e8f0;
  --success:#15803d;
  --warning:#b45309;
  --danger:#b91c1c;
  --info:#0369a1;
  --shadow:0 12px 36px rgba(15,23,42,.08);
  --radius:16px;
}
*{box-sizing:border-box}
html{font-family:"IBM Plex Sans Arabic",sans-serif!important;background:var(--bg);color:var(--text)}
body{margin:0;min-height:100vh;background:var(--bg)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.mobile-only{display:none}
.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#fff7df,transparent 38%),linear-gradient(135deg,#f8fafc,#eef2f7);padding:24px}
.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow);padding:34px}
.login-brand{display:flex;align-items:center;gap:18px;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--border)}
.login-brand img{width:120px;height:auto;object-fit:contain}
.login-brand h1{margin:0;color:var(--brand-dark);font-size:28px}
.login-brand p{margin:6px 0 0;color:var(--muted)}
.login-hint{font-size:12px;color:var(--muted);text-align:center;margin:0}
.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}
.sidebar{background:#101827;color:#fff;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;z-index:40}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-brand img{width:84px;background:white;border-radius:10px;padding:5px}
.sidebar-brand strong{display:block;font-size:16px}.sidebar-brand span{display:block;color:#a8b3c6;font-size:12px;margin-top:4px}
.main-nav{display:flex;flex-direction:column;gap:6px;padding:18px 12px;flex:1}
.nav-item{border:0;background:transparent;color:#cbd5e1;display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:11px;text-align:right;transition:.2s}
.nav-item span{width:24px;text-align:center}.nav-item:hover,.nav-item.active{background:rgba(185,138,23,.18);color:#fff}.nav-item.active{box-shadow:inset -3px 0 var(--brand)}
.sidebar-footer{padding:14px;border-top:1px solid rgba(255,255,255,.08)}
.user-chip{display:flex;align-items:center;gap:10px;margin-bottom:10px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--brand);display:grid;place-items:center;font-weight:700}.user-chip strong,.user-chip span{display:block}.user-chip span{font-size:11px;color:#9ca3af;margin-top:3px}
.main-area{min-width:0}.topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:18px 28px}.topbar h2{margin:0;font-size:23px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.topbar-actions{margin-right:auto}.page-content{padding:26px;max-width:1600px;margin:auto}
.btn{border:1px solid transparent;border-radius:10px;padding:10px 16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s;text-decoration:none}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:#a77911}.btn-secondary{background:#273449;color:#fff}.btn-ghost{background:#fff;border-color:var(--border);color:var(--text)}.sidebar .btn-ghost{background:rgba(255,255,255,.04);color:#fff;border-color:rgba(255,255,255,.1)}.btn-danger{background:#fee2e2;color:var(--danger);border-color:#fecaca}.btn-sm{padding:7px 11px;font-size:12px}.btn-block{width:100%}.icon-btn{border:0;background:#fff;border-radius:10px;width:42px;height:42px;font-size:22px}
.stack-md{display:flex;flex-direction:column;gap:16px}.stack-lg{display:flex;flex-direction:column;gap:22px}
label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#334155}input,select,textarea{border:1px solid #cbd5e1;border-radius:9px;padding:10px 12px;background:#fff;color:var(--text);outline:none;transition:.18s}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(185,138,23,.12)}textarea{resize:vertical}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3{grid-column:span 3}
.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 16px rgba(15,23,42,.03)}.stat-icon{width:52px;height:52px;border-radius:14px;background:var(--brand-soft);color:var(--brand-dark);display:grid;place-items:center;font-weight:800}.stat-card small,.stat-card strong,.stat-card em{display:block}.stat-card small{color:var(--muted)}.stat-card strong{font-size:24px;margin:6px 0}.stat-card em{font-style:normal;font-size:11px;color:#94a3b8}
.content-grid{display:grid;gap:20px;margin-bottom:20px}.two-thirds{grid-template-columns:2fr 1fr}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 18px rgba(15,23,42,.03);padding:20px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-head h3{margin:0;font-size:17px}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.list-head{align-items:flex-end}.toolbar{display:flex;gap:10px;align-items:center}.search-input{width:230px}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px}table{border-collapse:collapse;width:100%;min-width:700px;background:#fff}th,td{padding:12px 14px;text-align:right;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}th{background:#f8fafc;color:#475569;font-size:12px;white-space:nowrap}tbody tr:hover{background:#fcfcfd}tbody tr:last-child td{border-bottom:0}.text-left{text-align:left}.number{font-variant-numeric:tabular-nums;direction:ltr;display:inline-block}.actions{display:flex;gap:6px;flex-wrap:wrap}.table-btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 9px;font-size:12px;color:#334155}.table-btn:hover{border-color:var(--brand);color:var(--brand-dark)}.table-btn.danger:hover{border-color:#ef4444;color:#b91c1c}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;white-space:nowrap}.badge.draft{background:#f1f5f9;color:#475569}.badge.review{background:#fff7ed;color:#c2410c}.badge.approved,.badge.accepted,.badge.active,.badge.completed{background:#dcfce7;color:#166534}.badge.sent{background:#e0f2fe;color:#075985}.badge.rejected,.badge.cancelled{background:#fee2e2;color:#991b1b}.badge.expired{background:#fef3c7;color:#92400e}.badge.converted{background:#ede9fe;color:#5b21b6}.badge.pending{background:#fef3c7;color:#92400e}
.status-summary{display:flex;flex-direction:column;gap:12px}.status-row{display:grid;grid-template-columns:100px 1fr 40px;gap:10px;align-items:center;font-size:12px}.status-bar{height:9px;background:#eef2f7;border-radius:99px;overflow:hidden}.status-bar span{display:block;height:100%;background:var(--brand);border-radius:99px}.status-row strong{text-align:left}.activity-list{display:flex;flex-direction:column;gap:10px}.activity-item{border:1px solid var(--border);border-radius:12px;padding:13px;display:flex;justify-content:space-between;gap:12px}.activity-item strong,.activity-item span{display:block}.activity-item span{font-size:12px;color:var(--muted);margin-top:5px}.activity-item em{font-style:normal;font-size:12px;color:var(--brand-dark)}
.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-action{background:#fff;border:1px solid var(--border);border-radius:13px;padding:16px;text-align:right}.quick-action:hover{border-color:var(--brand);background:var(--brand-soft)}.quick-action span,.quick-action strong,.quick-action small{display:block}.quick-action span{font-size:24px;color:var(--brand)}.quick-action strong{margin:10px 0 6px}.quick-action small{color:var(--muted);line-height:1.5}
.empty-state{text-align:center;padding:50px 20px;color:var(--muted)}.empty-state div{font-size:42px;color:#cbd5e1}.empty-state h3{color:#475569;margin:10px 0}.settings-grid{align-items:start}.inline-actions{display:flex;gap:10px;flex-wrap:wrap}.file-label{cursor:pointer}.danger-panel{border-color:#fecaca}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.58);z-index:100;display:flex;align-items:center;justify-content:center;padding:22px}.modal{width:min(760px,100%);max-height:92vh;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.25);display:flex;flex-direction:column;overflow:hidden}.modal.large{width:min(1100px,100%)}.modal.xlarge{width:min(1400px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0}.modal-close{border:0;background:#f1f5f9;width:36px;height:36px;border-radius:9px;font-size:22px}.modal-body{padding:22px;overflow:auto}.modal-foot{display:flex;justify-content:flex-start;gap:10px;padding:16px 22px;border-top:1px solid var(--border);background:#f8fafc}
.quote-builder{display:grid;grid-template-columns:1fr;gap:20px}.builder-section{border:1px solid var(--border);border-radius:14px;padding:18px}.builder-section h4{margin:0 0 15px;color:var(--brand-dark)}.items-editor{overflow:auto}.items-editor table{min-width:1000px}.items-editor input,.items-editor select,.items-editor textarea{width:100%;padding:8px;font-size:12px}.items-editor textarea{min-height:58px}.remove-line{border:0;background:#fee2e2;color:#b91c1c;width:32px;height:32px;border-radius:8px}.add-line{margin-top:12px}.totals-box{margin-right:auto;width:min(420px,100%);border:1px solid var(--border);border-radius:13px;overflow:hidden}.total-row{display:flex;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--border)}.total-row:last-child{border:0}.total-row.final{background:var(--brand-soft);font-size:17px;font-weight:800;color:var(--brand-dark)}.checkbox-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.check-card{display:flex;flex-direction:row;align-items:flex-start;gap:9px;border:1px solid var(--border);padding:11px;border-radius:10px;font-weight:400;line-height:1.6}.check-card input{margin-top:4px}.payment-preview{margin-top:12px;border:1px dashed #cbd5e1;border-radius:12px;padding:12px}.payment-preview-row{display:grid;grid-template-columns:90px 1fr 120px;gap:10px;padding:8px;border-bottom:1px solid var(--border);font-size:12px}.payment-preview-row:last-child{border:0}.muted{color:var(--muted)}.notice{border-radius:10px;padding:12px 14px;background:#eff6ff;color:#1e40af;font-size:12px;line-height:1.7}.warning{background:#fff7ed;color:#9a3412}.error-text{font-size:11px;color:var(--danger);margin-top:4px}
.document-modal .modal-body{background:#d8dee8;padding:30px}.document-actions{display:flex;gap:8px}.a4-document{width:210mm;min-height:297mm;background:#fff;margin:auto;box-shadow:0 12px 40px rgba(15,23,42,.18);padding:16mm 14mm 14mm;position:relative;color:#111;font-family:"IBM Plex Sans Arabic",sans-serif!important}.doc-header{display:grid;grid-template-columns:1fr 1fr;align-items:start;margin-bottom:12mm}.doc-logo{width:47mm}.doc-meta{text-align:left;font-size:12px;line-height:1.8;color:#5a271a}.doc-title{text-align:center;font-size:24px;color:#5a271a;margin:0 0 8mm}.doc-recipient{display:flex;justify-content:space-between;font-size:15px;font-weight:700;margin-bottom:6mm}.doc-intro{text-align:center;line-height:2;font-size:13px;margin-bottom:7mm}.doc-highlight{text-align:center;color:#5a271a;font-weight:800;margin:5mm 0 7mm}.doc-table{width:100%;min-width:0;border-collapse:collapse}.doc-table th{background:#f8b62b;color:#fff;font-size:12px}.doc-table th,.doc-table td{border:1px solid #e5b74f;padding:8px;text-align:center}.doc-table td.desc{text-align:right;line-height:1.7}.doc-total-row td{background:#fff4d6;font-weight:800}.doc-grand td{color:#b91c1c;font-size:17px}.doc-validity{margin:9mm 0;font-weight:700}.doc-validity span{color:#b91c1c}.doc-section{margin-top:9mm;page-break-inside:avoid}.doc-section h3{color:#5a271a;border-bottom:2px solid #b98a17;padding-bottom:5px}.doc-section ul{line-height:2;font-size:12px}.doc-payment-table{width:100%;border-collapse:collapse}.doc-payment-table th,.doc-payment-table td{border:1px solid #d7dce4;padding:8px;font-size:12px}.doc-signatures{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:22mm}.signature-box{border-top:1px solid #334155;padding-top:8px;text-align:center;min-height:35mm}.doc-footer{position:absolute;bottom:9mm;left:14mm;right:14mm;border-top:1px solid #d4b65e;color:#8a6c24;font-size:9px;padding-top:5px;display:flex;justify-content:space-between}.contract-doc .doc-title{margin-bottom:12mm}.contract-clause{line-height:2;font-size:13px;margin-bottom:7mm}.contract-clause h4{margin:0 0 3mm;color:#5a271a;text-decoration:underline}.contract-parties{border:1px solid #d7dce4;padding:12px;border-radius:8px;margin-bottom:8mm;line-height:2;font-size:13px}
.toast{position:fixed;top:20px;left:20px;z-index:300;background:#101827;color:white;border-radius:10px;padding:12px 16px;box-shadow:var(--shadow);opacity:0;transform:translateY(-10px);pointer-events:none;transition:.25s;max-width:360px}.toast.show{opacity:1;transform:none}.toast.success{background:#166534}.toast.error{background:#991b1b}.toast.warning{background:#92400e}
@media(max-width:1100px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.two-thirds,.two-columns{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr 1fr}.app-shell{grid-template-columns:230px 1fr}.sidebar-brand div{display:none}.sidebar-brand{justify-content:center}}
@media(max-width:820px){.mobile-only{display:inline-grid;place-items:center}.app-shell{display:block}.sidebar{position:fixed;right:0;top:0;width:270px;transform:translateX(105%);transition:.25s;box-shadow:-16px 0 40px rgba(0,0,0,.25)}.sidebar.open{transform:none}.sidebar-brand div{display:block}.topbar{padding:14px 16px}.topbar h2{font-size:18px}.topbar p{display:none}.topbar-actions{margin-right:auto}.topbar-actions .btn{font-size:0;padding:10px}.topbar-actions .btn::after{content:"＋";font-size:20px}.page-content{padding:16px}.dashboard-grid{grid-template-columns:1fr}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.checkbox-list{grid-template-columns:1fr}.toolbar{width:100%;align-items:stretch}.list-head{align-items:stretch;flex-direction:column}.search-input{width:100%}.quick-actions{grid-template-columns:1fr}.modal-backdrop{padding:8px}.modal{max-height:97vh;border-radius:13px}.modal-body{padding:16px}.document-modal .modal-body{padding:8px;overflow:auto}.a4-document{transform-origin:top right}.payment-preview-row{grid-template-columns:70px 1fr 90px}}
@media print{
  body *{visibility:hidden!important}
  .document-modal,.document-modal *{visibility:visible!important}
  .document-modal{position:absolute!important;inset:0!important;background:#fff!important;padding:0!important}
  .document-modal .modal{width:auto!important;max-height:none!important;box-shadow:none!important;border-radius:0!important}
  .document-modal .modal-head,.document-modal .modal-foot{display:none!important}
  .document-modal .modal-body{padding:0!important;background:#fff!important;overflow:visible!important}
  .a4-document{box-shadow:none!important;margin:0!important;width:210mm!important;min-height:297mm!important;page-break-after:always}
  @page{size:A4;margin:0}
}
/* Laravel server-rendered additions */
a{color:inherit}.app-shell.server{grid-template-columns:270px 1fr}.flash{padding:12px 15px;border-radius:10px;margin-bottom:16px}.flash.success{background:#dcfce7;color:#166534}.flash.error{background:#fee2e2;color:#991b1b}.validation-list{margin:0;padding-right:18px}.pagination{display:flex;gap:6px;justify-content:center;margin-top:18px;flex-wrap:wrap}.pagination a,.pagination span{border:1px solid var(--border);padding:7px 10px;border-radius:8px;text-decoration:none;background:#fff}.pagination .active{background:var(--brand);color:#fff}.form-actions{display:flex;gap:10px}.page-form{max-width:1100px}.quote-lines-table input,.quote-lines-table select,.quote-lines-table textarea{width:100%;font-size:12px}.quote-lines-table textarea{min-height:70px}.quote-lines-table{min-width:1100px}.link-button{background:none;border:0;color:inherit;padding:0}.doc-page-wrap{background:#d8dee8;padding:30px;overflow:auto}.print-toolbar{display:flex;gap:10px;margin-bottom:16px;justify-content:center}.a4-document.static{box-shadow:0 12px 40px rgba(15,23,42,.18)}
@media print{.sidebar,.topbar,.print-toolbar,.flash{display:none!important}.app-shell.server{display:block}.page-content{padding:0;max-width:none}.doc-page-wrap{padding:0;background:#fff}.a4-document.static{box-shadow:none;margin:0}.main-area{width:100%}}

.a4-document{display:flex;flex-direction:column}.doc-footer{position:static;left:auto;right:auto;bottom:auto;margin-top:auto;padding-top:5mm}.doc-code{direction:ltr;unicode-bidi:isolate;display:inline-block}

/* Quotation description wrapping fix (v1.0.1)
   Keeps the table within the A4 width and allows unlimited item text to wrap
   naturally, including long text with no spaces. */
.doc-table{
  table-layout:fixed;
  width:100%;
  max-width:100%;
}
.doc-table col.col-index{width:6%}
.doc-table col.col-description{width:49%}
.doc-table col.col-unit{width:10%}
.doc-table col.col-quantity{width:9%}
.doc-table col.col-price{width:13%}
.doc-table col.col-total{width:13%}
.doc-table th,
.doc-table td{
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-wrap:break-word;
  word-break:break-word;
}
.doc-table td.desc{
  direction:rtl;
  unicode-bidi:plaintext;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.8;
  text-align:right;
  vertical-align:top;
}
.doc-table th:nth-child(1),
.doc-table td:nth-child(1),
.doc-table th:nth-child(3),
.doc-table td:nth-child(3),
.doc-table th:nth-child(4),
.doc-table td:nth-child(4),
.doc-table th:nth-child(5),
.doc-table td:nth-child(5),
.doc-table th:nth-child(6),
.doc-table td:nth-child(6){
  white-space:nowrap;
}
.doc-table thead{display:table-header-group}
.doc-table tbody tr{break-inside:auto;page-break-inside:auto}
.doc-table .doc-total-row{break-inside:avoid;page-break-inside:avoid}

/* Fawasel identity and English numerals — v1.0.2 */
.a4-document{
  --doc-gold:#d39a1f;
  --doc-gold-soft:#fff7e5;
  --doc-blue:#69a6d1;
  --doc-blue-dark:#3277a8;
  --doc-ink:#111827;
  font-variant-numeric:lining-nums tabular-nums;
}
.doc-header{
  grid-template-columns:1.35fr .65fr;
  align-items:center;
  gap:8mm;
  padding-bottom:5mm;
  margin-bottom:8mm;
  border-bottom:2px solid var(--doc-gold);
  box-shadow:0 2px 0 var(--doc-blue);
}
.doc-logo.identity-logo{
  width:70mm;
  max-width:100%;
  max-height:29mm;
  object-fit:contain;
  object-position:right center;
}
.doc-meta{
  color:var(--doc-ink);
  border-right:3px solid var(--doc-blue);
  padding-right:4mm;
  font-weight:700;
}
.doc-title{
  color:var(--doc-ink);
  position:relative;
  padding-bottom:4mm;
}
.doc-title::after{
  content:"";
  position:absolute;
  right:50%;
  bottom:0;
  width:34mm;
  height:2px;
  transform:translateX(50%);
  background:linear-gradient(90deg,var(--doc-blue) 0 40%,var(--doc-gold) 40% 100%);
}
.doc-highlight{color:var(--doc-gold);}
.doc-table th{
  background:var(--doc-gold);
  color:#fff;
  border-color:var(--doc-gold);
}
.doc-table th,.doc-table td{border-color:#e4bd64;}
.doc-total-row td{background:var(--doc-gold-soft);}
.doc-grand td{color:var(--doc-blue-dark);}
.doc-validity span{color:var(--doc-blue-dark);}
.doc-section h3{
  color:var(--doc-ink);
  border-bottom-color:var(--doc-gold);
  box-shadow:0 2px 0 -1px var(--doc-blue);
}
.doc-payment-table th{
  background:var(--doc-blue-dark);
  color:#fff;
  border-color:var(--doc-blue-dark);
}
.doc-payment-table td{border-color:#b8d4e8;}
.signature-box{border-top-color:var(--doc-blue-dark);}
.contract-clause h4{color:var(--doc-blue-dark);text-decoration-color:var(--doc-gold);}
.contract-parties{
  border-color:var(--doc-blue);
  border-right:4px solid var(--doc-gold);
  background:linear-gradient(90deg,rgba(105,166,209,.08),rgba(211,154,31,.06));
}
.doc-footer{
  border-top-color:var(--doc-gold);
  color:var(--doc-blue-dark);
}
.doc-code,.number,.a4-document input[type="number"]{
  direction:ltr;
  unicode-bidi:isolate;
  font-variant-numeric:lining-nums tabular-nums;
}
@media print{
  .doc-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .doc-table th,.doc-payment-table th,.doc-total-row td,.contract-parties{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}


/* Official Saudi Riyal symbol */
.money-amount{
  display:inline-flex;
  align-items:center;
  flex-direction:row;
  gap:.28em;
  direction:ltr;
  unicode-bidi:isolate;
  white-space:nowrap;
  vertical-align:middle;
}
.sar-symbol{
  display:inline-block;
  width:.72em;
  height:.82em;
  object-fit:contain;
  flex:0 0 auto;
  vertical-align:-.08em;
}
.sar-symbol-lg{width:1.05em;height:1.18em;}
.stat-icon .sar-symbol{width:24px;height:28px;}
.a4-document .sar-symbol{width:.75em;height:.86em;}
.money-amount > .sar-symbol,
.money-amount > .currency-text{order:0;}
.money-amount > bdi{order:1;}
.currency-text{font-size:.92em;}
@media print{
  .sar-symbol{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}


/* Percentage direction fix — v1.0.5
   Keeps the percent sign permanently to the left of English digits in RTL pages. */
.percentage-amount{
  display:inline-flex;
  align-items:baseline;
  flex-direction:row;
  gap:.10em;
  direction:ltr;
  unicode-bidi:isolate;
  white-space:nowrap;
  vertical-align:baseline;
  font-variant-numeric:lining-nums tabular-nums;
}
.percentage-amount > .percentage-symbol{order:0;}
.percentage-amount > bdi{order:1;direction:ltr;unicode-bidi:isolate;}
.percentage-input{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:.45em;
  direction:ltr;
  unicode-bidi:isolate;
  border:1px solid #cbd5e1;
  border-radius:9px;
  padding-left:12px;
  background:#fff;
  transition:.18s;
}
.percentage-input:focus-within{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(185,138,23,.12);
}
.percentage-input .percentage-symbol{
  color:#475569;
  font-weight:800;
  line-height:1;
}
.percentage-input input{
  width:100%;
  min-width:0;
  border:0;
  border-radius:0;
  box-shadow:none!important;
  direction:ltr;
  unicode-bidi:isolate;
  padding-left:0;
}
.percentage-input input:focus{border:0;box-shadow:none!important;}
@media print{
  .percentage-amount{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* Workflow, approvals and client portal — v1.1.0 */
.badge.changes_requested{background:#fff1f2;color:#be123c}
.flash.warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.workflow-summary-card{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.workflow-summary-card>div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow-sm)}.workflow-summary-card span:first-child{display:block;color:#64748b;font-size:12px;margin-bottom:6px}.workflow-summary-card strong{font-size:14px}
.workflow-timeline{display:grid;gap:8px;max-height:420px;overflow:auto}.timeline-row{display:grid;grid-template-columns:145px 1fr;gap:12px;border-right:3px solid #d39a1f;padding:8px 10px;background:#fffdf7;border-radius:7px}.timeline-row>span{font-size:11px;color:#64748b;direction:ltr}.timeline-row strong{display:block;font-size:13px}.timeline-row p{margin:3px 0 0;font-size:12px;color:#475569;line-height:1.6}
.version-list{display:grid;gap:8px}.version-row{display:grid;grid-template-columns:52px 1fr;gap:6px 10px;border:1px solid #dbeafe;border-radius:9px;padding:9px;background:#f8fbff}.version-row strong{direction:ltr;color:#3277a8}.version-row span{font-size:12px}.version-row em{grid-column:1/-1;color:#64748b;font-size:11px;font-style:normal;direction:ltr}.response-card{border:1px solid #e2e8f0;border-radius:10px;padding:10px;background:#f8fafc}.response-card strong,.response-card span{display:block}.response-card span{color:#64748b;font-size:12px;margin-top:3px}.response-card p{margin:6px 0 0}.share-code{display:block;direction:ltr;text-align:left;white-space:normal;overflow-wrap:anywhere;background:#0f172a;color:#e2e8f0;padding:12px;border-radius:9px}
.client-portal-body{background:#eef2f6;color:#172033;min-height:100vh}.client-portal-shell{max-width:1180px;margin:0 auto;padding:22px}.client-portal-header{background:white;border-radius:16px;padding:15px 20px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:18px;box-shadow:var(--shadow);border-top:4px solid #d39a1f}.client-portal-header img{width:260px;max-height:82px;object-fit:contain;object-position:right}.client-portal-header div{text-align:left}.client-portal-header strong,.client-portal-header span{display:block}.client-portal-header span{color:#64748b;margin-top:5px;direction:ltr}.client-document-wrap{overflow:auto;padding:2px}.client-actions{background:white;border-radius:16px;padding:20px;margin:18px auto;max-width:1100px;box-shadow:var(--shadow)}.client-actions h2{margin:0 0 5px}.client-decision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.decision-card{border:1px solid #e2e8f0;border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:11px}.decision-card h3{margin:0}.client-result{max-width:920px;margin:0 auto 16px;border-radius:12px;padding:14px}.client-result.success{background:#dcfce7;color:#166534}.client-result.error{background:#fee2e2;color:#991b1b}.client-portal-footer{text-align:center;color:#64748b;padding:18px}
@media(max-width:900px){.workflow-summary-card{grid-template-columns:1fr 1fr}.client-decision-grid{grid-template-columns:1fr}.client-portal-shell{padding:8px}.client-portal-header{display:block}.client-portal-header img{width:100%;max-width:300px}.client-portal-header div{text-align:right;margin-top:10px}.timeline-row{grid-template-columns:1fr}}
@media print{.no-print,.client-actions,.client-portal-header,.client-portal-footer,.client-result{display:none!important}.client-portal-shell,.client-document-wrap{padding:0!important;margin:0!important;max-width:none!important}.client-portal-body{background:#fff!important}.doc-page-wrap{margin:0!important}}
@media print{
  .app-shell.server *,.client-portal-body *{visibility:visible!important}
  .no-print{display:none!important;visibility:hidden!important}
}

/* V1.1.0 management enhancements */
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.permission-grid .checkbox-card{align-items:flex-start}.permission-grid small{display:block;color:var(--muted,#6b7280);margin-top:3px}.contract-clause-editor{border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:#fff;display:grid;gap:12px}.clause-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.contract-clause-editor textarea{min-height:110px}.workflow-summary-card{grid-template-columns:repeat(6,minmax(0,1fr))}.share-code{overflow-wrap:anywhere;word-break:break-all}.inline-actions select{min-width:220px}
@media(max-width:1000px){.workflow-summary-card{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-grid{grid-template-columns:1fr}}

/* V1.2.0 document assets and dynamic libraries */
.document-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.document-options-grid .check-card{min-height:82px;align-items:flex-start}.document-options-grid .check-card strong,.document-options-grid .check-card small{display:block}.document-options-grid .check-card small{color:var(--muted);font-weight:400;margin-top:5px;line-height:1.6}
.asset-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.asset-card{border:1px solid var(--border);border-radius:14px;padding:16px;background:#fbfcfe;display:grid;gap:12px}.asset-preview{height:180px;border:1px dashed #cbd5e1;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:12px;color:var(--muted)}.asset-preview img{max-width:100%;max-height:155px;object-fit:contain}.check-card.compact{min-height:auto;padding:10px}
.field-group{display:flex;flex-direction:column;gap:7px}.inline-link-btn{border:0;background:transparent;color:#3277a8;font-weight:700;padding:0;text-align:right;width:max-content}.inline-link-btn:hover{text-decoration:underline}.quick-add-box{margin-top:8px;border:1px solid #dbeafe;background:#f8fbff;border-radius:12px;padding:14px;display:grid;gap:12px}.quick-library-add{margin-top:14px}.quick-add-status{font-size:12px;color:#475569;align-self:center}.library-type{display:inline-block;background:#e0f2fe;color:#075985;border-radius:999px;padding:2px 7px;margin-left:7px;font-size:10px}.checkbox-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.check-card{border:1px solid var(--border);border-radius:12px;padding:13px;background:#fff;display:flex;flex-direction:row;align-items:flex-start;gap:10px;line-height:1.7}.check-card input{margin-top:4px;flex:0 0 auto}.check-card span{font-weight:500}
.approval-assets{min-height:90px;display:flex;justify-content:center;align-items:center;gap:10px;margin-top:8px}.signature-image{max-width:170px;max-height:80px;object-fit:contain}.stamp-image{max-width:145px;max-height:105px;object-fit:contain}.signature-box.first-party{position:relative}
@media(max-width:900px){.document-options-grid,.asset-settings-grid,.checkbox-list{grid-template-columns:1fr}}
@media print{.approval-assets img{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Sidebar independent scrolling */
.sidebar{height:100vh;height:100dvh;min-height:0;overflow:hidden}.sidebar-brand,.sidebar-footer{flex:0 0 auto}.main-nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.32) transparent}.main-nav::-webkit-scrollbar{width:7px}.main-nav::-webkit-scrollbar-track{background:transparent}.main-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border-radius:20px}.main-nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.45)}

/* =========================================================
   V1.2.5 - Browser/PDF document layout parity
   Keep quotation + contract previews structurally identical
   to the mPDF document layout.
   ========================================================= */
.doc-page-wrap,
.client-document-wrap{
  width:100%;
  overflow:auto;
}

.a4-document.static{
  flex:0 0 auto;
  overflow:visible;
}

.a4-document .doc-header{
  display:block;
  width:100%;
  margin-bottom:7mm;
  padding-bottom:5mm;
  border-bottom:2px solid var(--doc-gold);
}

.doc-header-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  direction:ltr;
}
.doc-header-meta-cell{
  width:39%;
  vertical-align:top;
  padding:0 5mm 0 0;
  border-right:3px solid var(--doc-blue);
}
.doc-header-logo-cell{
  width:61%;
  vertical-align:top;
  text-align:right;
  padding:0;
}
.doc-header-logo-cell .doc-logo{
  width:70mm;
  max-width:100%;
  max-height:28mm;
  object-fit:contain;
}
.doc-meta{
  width:100%;
  padding-top:1.5mm;
  font-weight:700;
  line-height:1.8;
  direction:rtl;
  text-align:right;
}
.doc-meta-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  direction:rtl;
}
.doc-meta-table th,
.doc-meta-table td{
  border:0;
  padding:1mm 0;
  vertical-align:middle;
  white-space:nowrap;
  line-height:1.8;
}
.doc-meta-table th{
  width:24mm;
  text-align:right;
  font-weight:700;
  padding-left:3mm;
}
.doc-meta-table td{
  text-align:left;
  direction:ltr;
  unicode-bidi:isolate;
  font-variant-numeric:lining-nums tabular-nums;
}

.signature-section{
  page-break-inside:avoid;
  margin-top:10mm;
}
.doc-signatures-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  direction:ltr;
}
.doc-signatures-table .signature-cell{
  width:47%;
  vertical-align:top;
  text-align:center;
  border-top:1px solid var(--doc-blue-dark);
  padding:5mm 2mm 0;
  direction:rtl;
  min-height:0;
}
.doc-signatures-table .signature-spacer{
  width:6%;
  border:0;
  padding:0;
}
.signature-content-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  direction:rtl;
}
.signature-content-table td{
  border:0;
  text-align:center;
  vertical-align:middle;
  padding:0;
}
.signature-content-table .sig-title{
  font-size:14px;
  font-weight:700;
  line-height:1.9;
  padding-bottom:10px;
}
.signature-content-table .sig-text{
  font-size:13px;
  line-height:1.95;
  padding-bottom:10px;
}
.signature-content-table .sig-label{
  font-size:13px;
  line-height:1.9;
  padding-top:10px;
}
.signature-content-table .approval-assets{
  min-height:115px;
  height:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:12px 0 6px;
  white-space:nowrap;
}
.signature-content-table .signature-image{
  max-width:160px;
  max-height:76px;
  object-fit:contain;
}
.signature-content-table .stamp-image{
  max-width:145px;
  max-height:105px;
  object-fit:contain;
}
.signature-placeholder{
  min-height:48px;
  padding-top:16px;
}

.a4-document .doc-footer{
  position:static;
  left:auto;
  right:auto;
  bottom:auto;
  display:block;
  width:100%;
  margin-top:auto;
  padding-top:5mm;
  border-top:1px solid var(--doc-gold);
  color:var(--doc-blue-dark);
  font-size:10px;
  text-align:center;
}
.doc-footer-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  direction:rtl;
}
.doc-footer-table td{
  border:0;
  text-align:center;
  padding:3px 0;
  line-height:1.85;
  white-space:normal;
}

/* The public client portal uses the same A4 document partial. */
.client-document-wrap{
  display:flex;
  justify-content:center;
  align-items:flex-start;
}

@media(max-width:1000px){
  .doc-page-wrap,
  .client-document-wrap{
    justify-content:flex-start;
  }
}

/* =========================================================
   V1.2.6 - Browser document containment and A4 preview parity
   Prevent global application table rules from expanding the
   quotation/contract document beyond its A4 canvas.
   ========================================================= */
.doc-page-wrap,
.client-document-wrap{
  direction:ltr;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
}

.doc-page-wrap > .a4-document,
.client-document-wrap > .a4-document{
  direction:rtl;
  flex:0 0 210mm;
  width:210mm;
  min-width:210mm;
  max-width:210mm;
  margin:0 auto;
  overflow:hidden;
}

/* The application has a generic table min-width for admin lists.
   It must never leak into the A4 quotation/contract document. */
.a4-document table,
.a4-document .doc-header-table,
.a4-document .doc-meta-table,
.a4-document .doc-table,
.a4-document .doc-payment-table,
.a4-document .doc-signatures-table,
.a4-document .signature-content-table,
.a4-document .doc-footer-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}

.a4-document th,
.a4-document td{
  min-width:0;
  box-sizing:border-box;
}

.a4-document .doc-header-meta-cell,
.a4-document .doc-header-logo-cell,
.a4-document .signature-cell,
.a4-document .signature-spacer{
  min-width:0;
  max-width:100%;
}

.a4-document .doc-header-logo-cell,
.a4-document .doc-header-logo-cell .doc-logo,
.a4-document .approval-assets,
.a4-document .signature-image,
.a4-document .stamp-image{
  overflow:visible;
}

.a4-document .doc-recipient{
  gap:12px;
  flex-wrap:wrap;
}
.a4-document .doc-recipient > *{
  min-width:0;
  overflow-wrap:anywhere;
}

.a4-document .doc-intro,
.a4-document .doc-highlight,
.a4-document .doc-section,
.a4-document .contract-parties,
.a4-document .contract-clause,
.a4-document .signature-content-table td,
.a4-document .doc-footer-table td{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Keep the browser preview centered when there is enough room.
   On narrow screens the A4 sheet remains horizontally scrollable. */
@media(max-width:900px){
  .doc-page-wrap,
  .client-document-wrap{
    justify-content:flex-start;
  }
}

/* =========================================================
   V1.2.7 - SMTP diagnostics and email delivery tracking
   ========================================================= */
.mail-diagnostics-panel{margin-top:18px}
.mail-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mail-health-grid>div{border:1px solid #d7dce4;border-radius:10px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:5px;min-width:0}
.mail-health-grid span{font-size:12px;color:#64748b}
.mail-health-grid strong{font-size:13px;overflow-wrap:anywhere}
.mail-test-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.mail-test-form label{flex:1 1 320px}
.mail-status-chip{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}
.mail-status-chip.ok,.mail-status-chip.accepted{background:#ecfdf3;color:#166534;border:1px solid #bbf7d0}
.mail-status-chip.opened{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.mail-status-chip.clicked{background:#f0fdf4;color:#15803d;border:1px solid #86efac}
.mail-status-chip.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.email-delivery-list{display:flex;flex-direction:column;gap:10px}
.email-delivery-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);gap:16px;border:1px solid #e2e8f0;border-radius:12px;padding:13px;background:#fff}
.email-delivery-row>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.email-delivery-row span,.email-delivery-row small{overflow-wrap:anywhere}
.email-delivery-state{align-items:flex-start}
.mail-error-text{color:#b91c1c;line-height:1.7}
@media(max-width:900px){.mail-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.email-delivery-row{grid-template-columns:1fr}}
@media(max-width:560px){.mail-health-grid{grid-template-columns:1fr}}

/* V1.2.8 - reminder wrapping and internal acceptance audit */
.content-grid>*{min-width:0}
.response-card{min-width:0;max-width:100%;overflow:hidden}
.response-card p,.response-card span,.reminder-message{max-width:100%;overflow-wrap:anywhere;word-wrap:break-word;word-break:break-word}
.reminder-message{white-space:pre-wrap;line-height:1.9}
.response-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.response-card.internal-response{border-color:#f0c36b;background:#fffaf0}
.internal-accept-panel{border-color:#f3c56b;background:linear-gradient(180deg,#fff 0%,#fffaf0 100%)}
.internal-accept-confirm{align-items:flex-start}
.internal-accept-confirm small{display:block;color:var(--muted);line-height:1.7;margin-top:3px}

/* V1.2.9 - contract workflow */
.readonly-field{min-height:52px;border:1px solid #d7dce4;border-radius:10px;background:#f8fafc;padding:13px 14px;color:#64748b;display:flex;align-items:center}
.badge.warning{background:#fff7ed;color:#c2410c}
details.panel>summary{cursor:pointer;font-weight:800;color:#991b1b}
.contract-workflow-note{font-size:12px;color:#64748b;line-height:1.8}

/* =========================================================
   V1.3.0 - RBAC, assigned approvals, flexible payments,
   structured warranty and document typography/pagination
   ========================================================= */
.role-permissions{border-top:1px solid var(--border);padding-top:18px}
.permission-group{border:1px solid var(--border);border-radius:14px;padding:14px;background:#fafcff;margin-top:12px}
.permission-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.permission-group-head h4{margin:0;color:var(--brand-dark)}
.mini-check{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--muted)}
.permission-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.permission-chip{display:inline-flex;padding:6px 9px;border-radius:999px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-size:11px;font-weight:700}
.approval-assignment-panel{border-color:#d9c27a;background:linear-gradient(180deg,#fff 0%,#fffdf7 100%)}
.approval-assign-form{align-items:end}
.approval-submit-cell{display:flex;align-items:end;min-height:76px;padding-bottom:1px}
.approval-submit-cell .btn{width:100%}
.assigned-approver-panel{border-color:#bfdbfe;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}
.approval-task-card{border-color:#bfdbfe}
.approval-assignee-box{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid #dbeafe;background:#eff6ff;border-radius:12px;padding:12px 14px}
.custom-payment-table{width:100%;min-width:680px;border-collapse:collapse}
.custom-payment-table th,.custom-payment-table td{padding:9px;border:1px solid var(--border);vertical-align:middle}
.custom-payment-table th{background:#f8fafc;font-size:12px}
.custom-payment-table input{width:100%;min-width:0}
.invalid-total{color:#b91c1c!important}
.doc-basmala{text-align:center;font-size:17px;font-weight:800;line-height:2;margin:2mm 0 3mm;color:#172033}
.contract-introduction{text-align:center;line-height:2.15;font-size:13px;max-width:172mm;margin:0 auto 6mm}
.quotation-company-approval{width:64%;margin:0 auto;text-align:center;border-top:1px solid var(--doc-blue-dark,#3277a8);padding-top:4mm}
.quotation-company-approval .sig-title{font-size:14px;font-weight:800;line-height:2}
.quotation-company-approval .sig-text{font-size:13px;line-height:2}
.quotation-approval-section{page-break-inside:avoid;break-inside:avoid;margin-top:12mm}
.standalone-section{page-break-inside:avoid;break-inside:avoid}
.a4-document .doc-section h3,.a4-document .contract-clause h4{break-after:avoid-page;page-break-after:avoid}
.a4-document .doc-table tr,.a4-document .doc-payment-table tr{break-inside:avoid;page-break-inside:avoid}
.a4-document .contract-parties,.a4-document .contract-introduction{break-inside:avoid;page-break-inside:avoid}
.doc-page-wrap{padding-top:38px;padding-bottom:38px}
.client-document-wrap{padding:24px 0}
@media(max-width:900px){.approval-assignee-box{grid-template-columns:1fr}.quotation-company-approval{width:90%}.approval-submit-cell{min-height:0}.custom-payment-table{min-width:620px}}
@media print{.a4-document .doc-section,.a4-document .contract-clause{orphans:3;widows:3}.doc-page-wrap,.client-document-wrap{padding:0!important}}

/* =========================================================
   V1.3.1 - password recovery and self-service account profile
   ========================================================= */
.login-options{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.login-remember{margin:0;flex:1;min-width:170px}
.forgot-password-link,.login-back-link{color:var(--brand-dark);font-weight:700;text-decoration:none;font-size:13px}
.forgot-password-link:hover,.login-back-link:hover{text-decoration:underline;color:var(--brand)}
.login-back-link{text-align:center;display:block}
.sidebar-account-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sidebar-account-actions form,.sidebar-account-actions .btn{width:100%}
.account-settings-grid{align-items:start}
.account-role-box{border:1px solid var(--border);border-radius:12px;background:#f8fafc;padding:14px;display:flex;flex-direction:column;gap:5px}
.account-role-box strong{color:var(--brand-dark)}
.account-role-box span{font-weight:700}
.account-role-box small{color:var(--muted);line-height:1.7}
@media(max-width:620px){.login-options{align-items:stretch;flex-direction:column}.login-remember{width:100%}.forgot-password-link{text-align:center}.sidebar-account-actions{grid-template-columns:1fr}}

/* v1.3.2 - responsive mobile application shell */
.sidebar-backdrop{display:none}
.mobile-menu-toggle{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:11px;width:44px;height:44px;min-width:44px;align-items:center;justify-content:center;font-size:24px;line-height:1;box-shadow:0 2px 8px rgba(15,23,42,.06)}
.topbar-heading{min-width:0}

@media(max-width:820px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body.sidebar-open{overflow:hidden;touch-action:none}
  .app-shell,.app-shell.server{display:block!important;width:100%;max-width:100%;min-width:0;min-height:100dvh}
  .main-area{display:block;width:100%;max-width:100%;min-width:0;overflow-x:hidden}
  .sidebar{position:fixed!important;right:0!important;left:auto!important;top:0!important;bottom:0!important;width:min(86vw,320px)!important;max-width:320px;height:100dvh!important;min-height:0!important;transform:translateX(110%)!important;visibility:hidden;pointer-events:none;transition:transform .24s ease,visibility .24s ease;box-shadow:-18px 0 45px rgba(0,0,0,.28);z-index:1001}
  .sidebar.open{transform:translateX(0)!important;visibility:visible;pointer-events:auto}
  .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.52);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease;z-index:1000}
  .sidebar-backdrop.show{opacity:1;visibility:visible;pointer-events:auto}
  .sidebar-brand{justify-content:flex-start!important;padding:16px}
  .sidebar-brand div{display:block!important}
  .sidebar-brand img{width:92px}
  .main-nav{padding:12px 10px;gap:4px}
  .nav-item{padding:11px 12px;font-size:14px}
  .sidebar-footer{padding:12px}
  .mobile-only{display:grid!important}
  .topbar{position:sticky;top:0;width:100%;max-width:100%;min-width:0;padding:11px 12px;gap:10px;z-index:40}
  .topbar-heading{flex:1 1 auto;min-width:0;overflow:hidden}
  .topbar h2{font-size:18px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
  .topbar p{display:none}
  .topbar-actions{flex:0 0 auto;margin:0!important}
  .topbar-actions .btn{width:44px;height:44px;padding:0!important;border-radius:11px;font-size:0!important}
  .topbar-actions .btn::after{content:"＋";font-size:22px;line-height:1}
  .page-content{width:100%;max-width:100%;min-width:0;padding:12px;margin:0;overflow-x:hidden}
  .panel{width:100%;max-width:100%;min-width:0;padding:14px;border-radius:13px}
  .panel-head{width:100%;min-width:0;align-items:stretch;flex-direction:column;gap:12px}
  .panel-head>div{min-width:0}
  .panel-head h3,.panel-head p{overflow-wrap:anywhere}
  .inline-actions{width:100%;display:flex;flex-wrap:wrap;gap:8px}
  .inline-actions .btn{flex:1 1 150px;min-width:0}
  .table-wrap{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin}
  .table-wrap table{width:max-content;min-width:680px;max-width:none}
  th,td{padding:10px 11px;font-size:12px}
  .form-actions{width:100%;flex-direction:column;align-items:stretch}
  .form-actions .btn{width:100%}
  .page-form{width:100%;max-width:100%}
  .toolbar{max-width:100%;flex-wrap:wrap}
  .search-input{min-width:0}
  .flash{width:100%;max-width:100%;overflow-wrap:anywhere}
  .content-grid,.two-thirds,.two-columns,.dashboard-grid,.quick-actions{width:100%;max-width:100%;min-width:0}
  .stat-card,.activity-item,.quick-action{min-width:0}
  img,svg,video,canvas{max-width:100%}
}

@media(max-width:520px){
  .page-content{padding:10px}
  .panel{padding:12px}
  .topbar{padding:10px}
  .table-wrap table{min-width:640px}
  .inline-actions{display:grid;grid-template-columns:1fr;width:100%}
  .inline-actions .btn{width:100%}
  .sidebar-account-actions{grid-template-columns:1fr}
  .login-screen{padding:14px}
  .login-card{padding:24px 18px;border-radius:18px}
  .login-brand{gap:12px;align-items:center}
  .login-brand img{width:104px}
  .login-brand h1{font-size:24px}
}

/* =========================================================
   V1.3.7 - exact SAR/halala wording and conditional optional document sections
   V1.3.3 - quotation/contract document identity, typography,
   recipient salutation, bank accounts and unified footer
   ========================================================= */
.a4-document{
  font-size:16px;
  line-height:1.86;
}
.a4-document .doc-header{
  padding-bottom:2mm!important;
  margin-bottom:6mm!important;
}
.a4-document .doc-header-logo-cell .doc-logo,
.a4-document .doc-logo.identity-logo{
  width:55mm!important;
  max-width:55mm!important;
  max-height:22mm!important;
  object-fit:contain;
}
.a4-document .doc-meta,
.a4-document .doc-meta-table th,
.a4-document .doc-meta-table td{
  font-size:15px!important;
  line-height:1.85;
}
.a4-document .doc-meta-table th{width:27mm}
.a4-document .doc-basmala{font-size:20px!important}
.a4-document .doc-title{font-size:27px!important;margin-bottom:7mm}
.a4-document .doc-recipient-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  border-collapse:collapse;
  table-layout:fixed;
  direction:rtl;
  margin:0 0 6mm;
}
.a4-document .doc-recipient-table td{
  border:0!important;
  padding:0 3mm!important;
  font-size:18px!important;
  line-height:1.9;
  font-weight:700;
  vertical-align:middle;
}
.a4-document .doc-recipient-table .recipient-primary{text-align:right}
.a4-document .doc-recipient-table .recipient-respect{text-align:left}
.a4-document .doc-intro{font-size:16px!important;line-height:2.08}
.a4-document .doc-highlight{font-size:19px!important}
.a4-document .doc-table th{font-size:15px!important}
.a4-document .doc-table td{font-size:16px!important;line-height:1.82}
.a4-document .doc-grand td{font-size:20px!important}
.a4-document .doc-validity{font-size:16px!important}
.a4-document .doc-section{font-size:16px}
.a4-document .doc-section h3{font-size:19px!important}
.a4-document .doc-section p,
.a4-document .doc-section li{font-size:16px!important;line-height:2}
.a4-document .doc-payment-table th{font-size:15px!important}
.a4-document .doc-payment-table td{font-size:16px!important;line-height:1.8}
.a4-document .contract-introduction,
.a4-document .contract-parties,
.a4-document .contract-clause,
.a4-document .contract-clause p{font-size:16px!important;line-height:2.08}
.a4-document .contract-clause h4{font-size:17px!important;line-height:1.9}

.a4-document .bank-accounts-section{
  break-inside:avoid;
  page-break-inside:avoid;
}
.a4-document .bank-accounts-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  border-collapse:separate;
  border-spacing:0 10px;
  table-layout:fixed;
  direction:rtl;
}
.a4-document .bank-accounts-table td{
  min-width:0;
  border:1px solid #e4bd64!important;
  background:#fff8e8;
  padding:13px 16px!important;
  vertical-align:middle;
  font-size:16px!important;
  line-height:1.9;
}
.a4-document .bank-accounts-table .bank-logo-cell{
  width:27%;
  text-align:center;
  border-left:0!important;
  border-radius:0 13px 13px 0;
}
.a4-document .bank-accounts-table .bank-details-cell{
  width:73%;
  text-align:right;
  border-right:0!important;
  border-radius:13px 0 0 13px;
}
.a4-document .bank-logo{
  display:block;
  width:165px;
  height:auto;
  max-width:165px;
  max-height:none;
  margin:0 auto;
}
.a4-document .bank-name{display:block;font-size:18px;font-weight:800;color:var(--doc-ink,#172033);line-height:1.55;margin-bottom:2px}
.a4-document .bank-account-holder{display:block;font-size:16px;font-weight:700;color:#475569;line-height:1.55;margin-bottom:7px}
.a4-document .bank-number-line{white-space:nowrap;line-height:1.85}

.a4-document .quotation-approval-section{margin-top:9mm!important}
.a4-document .quotation-company-approval{padding-top:3mm!important}
.a4-document .quotation-company-approval .sig-title{font-size:17px!important}
.a4-document .quotation-company-approval .sig-text{font-size:16px!important}
.a4-document .signature-section{margin-top:8mm!important}
.a4-document .doc-signatures-table .signature-cell{padding-top:3.5mm!important}
.a4-document .signature-content-table .sig-title{font-size:17px!important;padding-bottom:7px!important}
.a4-document .signature-content-table .sig-text{font-size:16px!important;padding-bottom:7px!important}
.a4-document .signature-content-table .sig-label{font-size:16px!important;padding-top:7px!important}
.a4-document .approval-assets,
.a4-document .signature-content-table .approval-assets{
  min-height:90px!important;
  height:auto!important;
  padding:6px 0 0!important;
}
.a4-document .signature-placeholder{min-height:38px!important;padding-top:10px!important}

.a4-document .doc-footer{
  margin-top:12px!important;
  padding-top:10px!important;
  font-size:13px!important;
}
.a4-document .doc-footer-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  border-collapse:collapse;
  table-layout:fixed;
  direction:rtl;
}
.a4-document .doc-footer-table td{
  border:0!important;
  padding:3px 7px!important;
  vertical-align:top;
  font-size:13px!important;
  line-height:1.8!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.a4-document .doc-footer-table .footer-contact{width:26%;text-align:right}
.a4-document .doc-footer-table .footer-address{width:40%;text-align:center}
.a4-document .doc-footer-table .footer-registration{width:34%;text-align:left}
.a4-document .footer-registration-line{white-space:nowrap!important;display:block}
.a4-document .doc-footer a{color:var(--doc-blue-dark,#3277a8);text-decoration:none}
.a4-document .doc-footer div{white-space:nowrap}

@media(max-width:900px){
  .a4-document .bank-logo{width:150px;max-width:150px}
}
@media print{
  .a4-document .bank-accounts-table td{
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
}
