/* The app font (IBM Plex Sans Arabic) is loaded by theme.css. */
:root{font-family:'IBM Plex Sans Arabic',Tahoma,sans-serif;color:#202c38;background:#f5f6fa;font-size:14px;--green:#1b346e;--muted:#7a8695}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;background:var(--green);color:white;border-radius:9px;padding:11px 19px;font-weight:600}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}.ghost{background:#edf2f4;color:#425466}aside{position:fixed;right:0;top:0;bottom:0;width:235px;background:#fff;border-left:1px solid #e5e9ef;padding:30px 18px}.brand{font-size:32px;font-weight:800;color:var(--green);padding:0 15px 24px}.brand span{display:block;font-size:11px;font-weight:500;color:var(--muted)}nav button{display:block;width:100%;text-align:right;background:transparent;color:#6d7888;margin:7px 0;padding:12px 18px}nav button.active{background:#e8ebf1;color:#193065}nav b{display:inline-block;width:29px;font-size:18px}.side-bottom{position:absolute;bottom:25px;font-size:12px;color:#617080;padding:12px}.side-bottom button{display:block;margin-top:15px}.dot{display:inline-block;width:7px;height:7px;background:#385393;border-radius:50%;margin-left:6px}main{margin-right:235px;padding:30px 38px;max-width:1800px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}h1{font-size:26px;margin:5px 0}small,header small{color:var(--muted)}.header-actions{display:flex;gap:20px;align-items:center}.header-actions span{font-size:12px;color:#738191}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0 25px}.card{background:white;border:1px solid #e8ebf0;border-radius:12px;padding:20px}.card small{display:block}.card strong{font-size:24px;display:block;margin:8px 0 0}.card em{font-size:12px;font-style:normal;color:#8a95a2}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.toolbar h2{font-size:18px;margin:0}.toolbar input{max-width:300px}.panel{background:#fff;border:1px solid #e7ebef;border-radius:13px;padding:22px;margin-bottom:22px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:right}th{font-size:11px;color:#7b8794;background:#f7f9fb;font-weight:600}td,th{padding:14px 12px;border-bottom:1px solid #edf0f4}td{font-size:13px}td button{font-size:11px;padding:6px 11px}.badge{display:inline-block;background:#eef0f5;color:#224086;border-radius:20px;padding:3px 10px;font-size:11px}.badge.debt{background:#fff3df;color:#ac7a27}.empty{text-align:center;padding:45px 10px;color:#8993a0}.empty strong{display:block;color:#4e5e6d;font-size:18px;margin-bottom:6px}footer{color:#99a2ad;font-size:11px;margin-top:35px;text-align:center}input,select,textarea{border:1px solid #dce3e9;border-radius:8px;padding:10px;background:white;color:#253441;width:100%;min-width:0}input:focus,select:focus{outline:2px solid #96a5c9}label{display:block;font-size:12px;color:#526172}label input,label select,label textarea{margin-top:5px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}dialog{width:min(800px,95vw);max-height:92vh;border:0;border-radius:16px;padding:25px;color:#253441}dialog::backdrop{background:#122c3b80;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.modal-head h2{margin:0;font-size:20px}.line{display:grid;grid-template-columns:3fr 1fr 1.3fr auto;gap:8px;margin:10px 0}.line button{padding:8px}.total{background:#eef0f5;padding:15px;border-radius:9px;margin-top:15px;font-weight:700}.hint{font-size:12px;color:#798797;line-height:1.8}.error{color:#b84343;font-size:13px}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(at 20% 30%,#d3d8e5,transparent 60%),#f4f5f7}.login[hidden],#shell[hidden]{display:none}.login-card{width:min(400px,92vw);background:white;padding:38px;border-radius:22px;box-shadow:0 20px 70px #162a5a12}.login-card .brand{padding-right:0}.login-card p{color:#818790}.login-card button{width:100%;margin-top:20px}#toast{position:fixed;bottom:25px;left:25px;background:#173c39;color:#fff;border-radius:10px;padding:14px 22px;display:none;z-index:20}.receipt{padding:20px}.receipt h2{text-align:center}.receipt .meta{display:flex;justify-content:space-between;margin:20px 0}.receipt p{line-height:2}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:1000px){aside{width:185px}main{margin-right:185px;padding:22px}.cards{grid-template-columns:1fr 1fr}.header-actions span{display:none}}@media(max-width:800px){aside{position:relative;width:100%;padding:12px;border:0}.brand{font-size:24px;padding:0 8px 10px}nav{display:flex;overflow:auto;gap:5px}nav button{width:auto;white-space:nowrap;font-size:12px;padding:8px 10px;margin:0}nav b{width:22px}.side-bottom{display:none}main{margin:0;padding:17px}header{align-items:center}h1{font-size:21px}header small{font-size:10px}.header-actions button{padding:10px;font-size:12px}.cards{gap:10px}.card{padding:14px}.card strong{font-size:20px}.panel{padding:14px}.grid,.report-grid{grid-template-columns:1fr}.line{grid-template-columns:2fr 1fr 1fr auto}.line input,.line select{padding:8px 3px;font-size:12px}.toolbar{flex-wrap:wrap}.toolbar input{max-width:none}.full{grid-column:auto}}@media print{body>*{display:none!important}body>dialog[open]{display:block!important;position:static;width:100%;max-width:none;max-height:none;border:0}dialog .modal-head,dialog .form-actions{display:none}dialog::backdrop{display:none}.receipt{color:#000}table{white-space:normal}}
@media(min-width:801px){aside{display:flex;flex-direction:column;overflow:hidden;padding-top:22px;padding-bottom:16px}aside>.brand{flex-shrink:0;padding-bottom:18px}aside>nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}nav button{padding:10px 12px;margin:4px 0;line-height:1.65}.side-bottom{position:static;flex:0 0 auto;margin-top:12px;padding:12px 8px 0;border-top:1px solid #e7ebef;line-height:1.8}.side-bottom small{display:block;unicode-bidi:plaintext}.side-bottom button{width:100%;margin-top:10px}nav .mobile-logout{display:none}}
/* Shared layout constraints keep tables and long Arabic labels inside their panels. */
main,.panel,.card,.toolbar,.grid,.grid>*,.report-grid,.report-grid>*,.line,.line>*{min-width:0}
.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.table-wrap{max-width:100%;overscroll-behavior-x:contain}
td{max-width:300px;white-space:normal;overflow-wrap:anywhere;min-width:90px}
th{white-space:nowrap}
.toolbar{flex-wrap:wrap}.toolbar h2{flex:1 1 180px;overflow-wrap:anywhere}.toolbar input{flex:1 1 180px}.toolbar button{flex-shrink:0}
header{gap:16px}header>div{min-width:0}.header-actions{flex-shrink:0}h1,h2,p,.total{overflow-wrap:anywhere}
.card strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.line{grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1.5fr) auto;align-items:end;padding:12px;border:1px solid #e1e4e8;border-radius:10px;background:#f8f9fa}
.line label{min-width:0}.line-remove{align-self:end;min-height:44px}.line select,.line input{min-height:44px}
.modal-head{gap:12px;align-items:flex-start}.modal-head h2{min-width:0}.modal-head button{flex-shrink:0}
.form-actions{flex-wrap:wrap}.receipt .meta{gap:12px;flex-wrap:wrap}.receipt{padding:12px;overflow-wrap:anywhere}
body:has(dialog[open]){overflow:hidden}
#toast{max-width:calc(100vw - 32px);overflow-wrap:anywhere}
@media(max-width:800px){
.report-grid{grid-template-columns:minmax(0,1fr)}
header{align-items:stretch;flex-direction:column;gap:12px}.header-actions{justify-content:flex-start}.header-actions button{font-size:14px;min-height:44px}h1{line-height:1.7}
nav button{flex-shrink:0;min-height:44px}
input,select,textarea,.line input,.line select{font-size:16px;min-height:44px;padding:10px}
dialog{width:calc(100vw - 24px);max-width:640px;max-height:calc(100dvh - 24px);padding:16px;margin:auto}
.line{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.line-product{grid-column:1/-1}.line-remove{grid-column:1/-1;justify-self:end;padding:8px 16px}
.modal-head button{min-width:44px;min-height:44px}.modal-head h2{font-size:18px;line-height:1.7}
.card strong{font-size:clamp(16px,4.6vw,23px)}.receipt{padding:0}
.form-actions button{min-height:44px}.table-wrap td button{min-height:40px;margin:3px 0}
.toolbar h2{flex-basis:100%}.toolbar input{max-width:none;flex-basis:100%}.toolbar button{min-height:44px}
}
@media print{.table-wrap{overflow:visible}table{table-layout:fixed}td,th{min-width:0;white-space:normal;overflow-wrap:anywhere}.receipt .meta{flex-wrap:wrap}body:has(dialog[open]){overflow:visible}}
@media(max-width:380px){.line{grid-template-columns:minmax(0,1fr)}.line-product,.line-remove{grid-column:auto}.cards{grid-template-columns:minmax(0,1fr)}.card strong{font-size:24px}}
/* Boot screen until the first state request settles (no login flash). */
.boot{min-height:100vh;min-height:100dvh;display:grid;place-items:center;background:#f5f7fb;color:#334155}.boot[hidden]{display:none}.boot-card{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:14px}.boot-card b{font:800 30px Tahoma,Arial,sans-serif;color:#1246be}.boot-card p{margin:0}.boot-spinner{width:34px;height:34px;border:3px solid #d5ddf1;border-top-color:#1246be;border-radius:50%;animation:boot-spin .8s linear infinite}@keyframes boot-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.boot-spinner{animation:none}}