:root{--ink: #1F3D34;--ink-2: #2B5446;--ink-soft: #E6EDE8;--saffron: #C8812A;--saffron-text: #8F5A14;--paper: #F7F4EC;--card: #FFFFFF;--line: #E3DED1;--line-2: #D6D0C1;--text: #1C2521;--muted: #5B6B62;--red: #B42318;--red-bg: #FDECEA;--amber: #8A5A00;--amber-bg: #FFF3D6;--green: #1E6B47;--green-bg: #E3F2EA;--blue: #26406A;--radius: 12px;--shadow: 0 1px 2px rgba(31, 61, 52, .06), 0 4px 16px rgba(31, 61, 52, .06);--font: "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", sans-serif;--display: "Reem Kufi", "IBM Plex Sans Arabic", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--paper);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--ink-2)}h1,h2,h3{margin:0;line-height:1.3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:10px;border:1px solid var(--line-2);background:var(--card);color:var(--text);font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s}.btn:hover{background:#fbfaf6;border-color:#c9c2b0}.btn:focus-visible,.input:focus-visible,.pill:focus-visible,.row-btn:focus-visible{outline:3px solid rgba(200,129,42,.45);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-primary:hover{background:var(--ink-2);border-color:var(--ink-2)}.btn-danger{color:var(--red);border-color:#f1c2bd}.btn-danger:hover{background:var(--red-bg);border-color:#e8a39b}.btn-danger-solid{background:var(--red);border-color:var(--red);color:#fff}.btn-danger-solid:hover{background:#962016}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--ink-soft);border-color:transparent}.btn-sm{min-height:34px;padding:0 12px;font-size:14px;border-radius:8px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label,.label{font-size:13.5px;font-weight:600;color:var(--muted)}.input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line-2);border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}.input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #1f3d341f}.input[readonly]{background:#f3f1ea;color:var(--muted)}textarea.input{min-height:90px;resize:vertical}.hint{font-size:13px;color:var(--muted)}.error-box{background:var(--red-bg);color:var(--red);border:1px solid #F1C2BD;padding:10px 14px;border-radius:10px;font-size:14px}.info-box{background:var(--ink-soft);color:var(--ink);border:1px solid #CFDDD4;padding:10px 14px;border-radius:10px;font-size:14px}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.check input{width:18px;height:18px;accent-color:var(--ink);cursor:pointer}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.brand-word{font-family:var(--display);font-weight:700;font-size:26px;line-height:1}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-side{background:var(--ink);color:var(--paper);padding:48px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;position:relative;overflow:hidden}.auth-side:after{content:"";position:absolute;inset-inline-end:-120px;bottom:-120px;width:360px;height:360px;border-radius:48px;border:2px solid rgba(247,244,236,.08);transform:rotate(12deg)}.auth-side h1{font-family:var(--display);font-size:44px;font-weight:700}.auth-side p{color:#c9d3cc;font-size:18px;max-width:420px;margin:12px 0 0}.auth-main{display:flex;align-items:center;justify-content:center;padding:32px 16px}.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:18px}.auth-card h2{font-size:26px;font-weight:700}.company-badge{display:flex;align-items:center;gap:14px}.company-badge img{width:56px;height:56px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--line)}.company-badge .cname{font-size:20px;font-weight:700}.company-badge .cname-en{font-size:14px;color:var(--muted)}.link-btn{background:none;border:none;padding:0;color:var(--ink-2);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.powered{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}@media (max-width: 860px){.auth-wrap{grid-template-columns:1fr}.auth-side{padding:28px 20px;min-height:auto}.auth-side h1{font-size:32px}.auth-side .auth-side-foot{display:none}}.topbar{position:sticky;top:0;z-index:20;background:#f7f4eceb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1280px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.topbar .company{display:flex;align-items:center;gap:10px;min-width:0}.topbar .company img{width:36px;height:36px;object-fit:contain;border-radius:8px;background:#fff;border:1px solid var(--line)}.topbar .company .cname{font-weight:700;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav{display:flex;gap:4px;margin-inline-start:8px}.nav button{border:none;background:none;padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:600;color:var(--muted);min-height:40px}.nav button:hover{background:var(--ink-soft);color:var(--ink)}.nav button[aria-current=page]{background:var(--ink);color:#fff}.topbar .spacer{flex:1}.user-chip{font-size:14px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:1280px;margin:0 auto;padding:24px 20px 64px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.page-head h1{font-family:var(--display);font-size:30px;color:var(--ink)}.page-head p{margin:4px 0 0;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 720px){.topbar-inner{padding:10px 14px;gap:10px}.nav{order:3;width:100%;margin:0;overflow-x:auto}.user-chip{display:none}.page{padding:18px 14px 56px}.page-head h1{font-size:24px}}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:2px;text-align:start;cursor:pointer}.stat:hover{border-color:#c9c2b0}.stat .n{font-size:28px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}.stat .l{font-size:14px;color:var(--muted);font-weight:500}.stat.warn .n{color:var(--saffron-text)}@media (max-width: 720px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar .input{max-width:340px;flex:1 1 220px}.toolbar select.input{max-width:200px;flex:0 1 180px}.pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.pill{border:1px solid var(--line-2);background:var(--card);border-radius:999px;padding:6px 14px;min-height:36px;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:var(--text)}.pill .count{background:var(--ink-soft);color:var(--ink);border-radius:999px;padding:0 8px;font-size:12.5px}.pill[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.pill[aria-pressed=true] .count{background:#ffffff2e;color:#fff}.pill.amber{border-color:#ebcb8b;background:var(--amber-bg);color:var(--amber)}.pill.amber .count{background:#f7e0ae;color:var(--amber)}.pill.amber[aria-pressed=true]{background:var(--saffron);border-color:var(--saffron);color:#fff}.table-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}table.data{width:100%;border-collapse:collapse}table.data th{text-align:start;font-size:13px;font-weight:600;color:var(--muted);padding:12px 16px;background:#fbfaf6;border-bottom:1px solid var(--line);white-space:nowrap}table.data td{padding:12px 16px;border-bottom:1px solid #EFEBE1;vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr{cursor:pointer}table.data tbody tr:hover td{background:#fbfaf6}.num{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}.emp-name{font-weight:600}.emp-name-en{font-size:13px;color:var(--muted)}.row-btn{all:unset;cursor:pointer;display:block}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600;white-space:nowrap}.badge.active{background:var(--green-bg);color:var(--green)}.badge.ended{background:#eeece6;color:#5e5a50}.badge.unpaid_leave{background:#e7ecf5;color:var(--blue)}.exp{display:flex;flex-direction:column;gap:2px;font-size:13px}.exp .chip{align-self:flex-start}.chip{display:inline-flex;border-radius:6px;padding:1px 8px;font-weight:600;font-size:12.5px}.chip.expired{background:var(--red-bg);color:var(--red)}.chip.soon{background:var(--amber-bg);color:var(--amber)}.chip.ok{background:var(--green-bg);color:var(--green)}.exp .what{color:var(--muted)}@media (max-width: 720px){table.data thead{display:none}table.data,table.data tbody,table.data tr,table.data td{display:block;width:100%}table.data tr{padding:12px 14px;border-bottom:1px solid #EFEBE1;display:grid;grid-template-columns:1fr auto;gap:4px 12px}table.data td{padding:0;border:none}table.data td.c-no,table.data td.c-dept{display:none}table.data td.c-name{grid-column:1}table.data td.c-status{grid-column:2;grid-row:1}table.data td.c-job{grid-column:1;font-size:14px;color:var(--muted)}table.data td.c-exp{grid-column:2;grid-row:2}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#141e1a73;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto}.modal{width:100%;max-width:760px;background:var(--paper);border-radius:16px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column}.modal.sm{max-width:460px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:20px;font-weight:700;color:var(--ink)}.modal-head .sub{font-size:13px;color:var(--muted)}.modal-body{padding:20px 22px;display:flex;flex-direction:column;gap:20px}.modal-foot{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;padding:14px 22px;border-top:1px solid var(--line);background:#f1eee5;border-radius:0 0 16px 16px}.modal-foot .end{display:flex;gap:8px;margin-inline-start:auto}.section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.section h3{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:14px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.span2{grid-column:span 2}@media (max-width: 720px){.overlay{padding:0}.modal{border-radius:0;min-height:100vh}.modal-foot{border-radius:0;position:sticky;bottom:0}.grid2,.grid3{grid-template-columns:1fr}.span2{grid-column:auto}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:none;background:transparent;cursor:pointer;color:var(--muted)}.icon-btn:hover{background:var(--ink-soft);color:var(--ink)}.docs-list{display:flex;flex-direction:column;gap:8px}.doc-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fdfcf9}.doc-row .meta{flex:1;min-width:0}.doc-row .meta .t{font-weight:600;font-size:14px}.doc-row .meta .f{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-top:12px}.upload-row .field{flex:0 1 220px}.list-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.list-row{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid #EFEBE1;flex-wrap:wrap}.list-row:last-child{border-bottom:none}.list-row .who{flex:1 1 220px;min-width:0}.list-row .who .n{font-weight:600}.list-row .who .e{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.perms{display:flex;gap:14px;flex-wrap:wrap}.tag{font-size:12px;font-weight:600;padding:1px 8px;border-radius:6px;background:var(--ink-soft);color:var(--ink)}.company-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.company-card.off{opacity:.75;background:#faf8f2}.company-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.company-card .top{display:flex;gap:12px;align-items:center}.logo-box{width:52px;height:52px;border-radius:12px;border:1px dashed var(--line-2);background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.logo-box img{width:100%;height:100%;object-fit:contain}.company-card .counts{display:flex;gap:14px;font-size:14px;color:var(--muted)}.company-card .counts b{color:var(--ink);font-variant-numeric:tabular-nums}.link-line{display:flex;align-items:center;gap:8px;background:#f3f1ea;border-radius:8px;padding:6px 6px 6px 10px;font-size:13px;direction:ltr}.link-line code{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.toast{position:fixed;inset-inline-start:50%;bottom:24px;transform:translate(-50%);z-index:90;background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);font-weight:600;max-width:calc(100vw - 32px)}[dir=rtl] .toast{transform:translate(50%)}.toast.error{background:var(--red)}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--ink-soft);border-top-color:var(--ink);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th,.preview-table td{border:1px solid var(--line);padding:6px 8px;text-align:start}.preview-table th{background:#fbfaf6}.scroll-x{overflow-x:auto}.scan-row{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:18px}.scan-row .icon-static{color:var(--muted);flex-shrink:0}.scan-row .input{border:none;padding:0;min-height:32px}.scan-row .input:focus{box-shadow:none}.currency-badge{display:inline-flex;align-items:center;font-size:12.5px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--ink-soft);color:var(--ink);white-space:nowrap}.branch-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}#print-area{display:none}@media print{body *{visibility:hidden}#print-area,#print-area *{visibility:visible}#print-area{display:block;position:absolute;top:0;right:0;bottom:0;left:0;padding:24px}}
