[hidden]{display:none !important}
:root{--navy:#1F3864;--ink:#1d2433;--muted:#667085;--line:#e4e7ec;--bg:#f6f7f9;--ok:#0a7d33;--warn:#b54708;--bad:#b00020;--yellow:#FFF2CC}
*{box-sizing:border-box}
body{margin:0;font-family:Tajawal,Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.6}
.center{text-align:center}.pad{padding:60px 16px}.muted{color:var(--muted)}
header.top{background:var(--navy);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
header.top h1{font-size:18px;margin:0;flex:1}
header.top .who{font-size:14px;opacity:.9}
button,.btn{font-family:inherit;font-size:15px;padding:8px 16px;border-radius:8px;border:1px solid #98a2b3;background:#fff;color:var(--ink);cursor:pointer}
button:hover{background:#f2f4f7}
button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
button.primary:hover{background:#2a4a85}
button.danger{color:var(--bad);border-color:#f0b4bd}
button:disabled{opacity:.5;cursor:not-allowed}
header.top button{background:transparent;color:#fff;border-color:#ffffff66}
main{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;flex-wrap:wrap}
.tab{padding:10px 18px;border:none;background:none;border-radius:8px 8px 0 0;font-size:16px;color:var(--muted)}
.tab.on{color:var(--navy);font-weight:700;border-bottom:3px solid var(--navy)}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:14px}
.card h3{margin:0 0 8px;font-size:17px}
.badge{display:inline-block;padding:2px 12px;border-radius:99px;font-size:14px;background:#eef2f6}
.b-draft{background:#eef2f6}.b-submitted,.b-finance_review,.b-exec_review{background:#fff4d6;color:var(--warn)}
.b-approved{background:#d9f5e1;color:var(--ok)}.b-returned{background:#fde2e4;color:var(--bad)}
.stages{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.stage{flex:1;min-width:150px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px}
.stage.approved{border-color:#7ed19a;background:#f1fbf4}.stage.needs_changes{border-color:#f0b4bd;background:#fff5f6}
.note{background:#fff4d6;border:1px solid #f3dc9a;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:15px}
.note.lock{background:#eef2f6;border-color:var(--line)}
label{display:block;font-size:14px;color:var(--muted);margin-bottom:2px}
input,select,textarea{font-family:inherit;font-size:15px;width:100%;padding:8px 10px;border:1px solid #cfd4dc;border-radius:8px;background:var(--yellow)}
input:disabled,select:disabled,textarea:disabled{background:#f2f4f7}
textarea{min-height:60px;resize:vertical}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.row-actions{display:flex;gap:8px;margin-top:12px}
table{width:100%;border-collapse:collapse;background:#fff;font-size:15px}
th{background:var(--navy);color:#fff;padding:8px 10px;text-align:right;font-weight:500}
td{padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
td input{min-width:90px}
td.num,th.num{text-align:left;direction:ltr;white-space:nowrap}
tr.sub td{background:#f2f4f7;font-weight:700}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.empty{padding:28px;text-align:center;color:var(--muted)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#101828;color:#fff;padding:10px 20px;border-radius:10px;z-index:60;font-size:15px}
.toast.err{background:var(--bad)}
.modal{position:fixed;inset:0;background:#10182899;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal-box{background:#fff;border-radius:14px;padding:22px;max-width:460px;width:100%}
.login{max-width:420px;margin:12vh auto;text-align:center}
.login h1{color:var(--navy)}
@media(max-width:640px){main{padding:12px 10px 50px}.tab{padding:8px 10px;font-size:15px}}

.rovalue{padding:8px 10px;background:#f2f4f7;border-radius:8px;min-height:38px;white-space:pre-wrap}
.badge.samp{background:#fde9c8;font-size:12px;padding:0 8px}
td select{min-width:110px}
.sm{font-size:13px}
.tablewrap table td input,.tablewrap table td select{padding:5px 7px}
.adminbar{position:sticky;top:0;z-index:50;background:#fff4d6;border-bottom:1px solid #f3dc9a;padding:8px 20px;display:flex;align-items:center;gap:10px}
.adminbar label{display:inline;margin:0;color:var(--ink);font-weight:700}
.adminbar select{width:auto;min-width:200px;background:#fff}
