:root{--ink:#1b2340;--mut:#69708a;--brand:#4560b0;--brand-d:#33498f;--orange:#f58533;--bg:#f4f5f9;--card:#fff;--line:#e2e5ee;--ok:#1f8a4c;--warn:#b7791f;--bad:#c0392b;--we:#eceef4}
@media (prefers-color-scheme:dark){:root{--ink:#e8eaf3;--mut:#9aa1bb;--bg:#12162a;--card:#1b2038;--line:#2c3354;--we:#23294a;--brand:#7a93e0;--brand-d:#98abea}}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Tahoma,"Noto Sans Arabic",Arial,sans-serif;line-height:1.55}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;gap:16px;min-height:64px;flex-wrap:nowrap}.bar.wide{max-width:1320px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none!important}
.mark{width:46px;height:auto;border-radius:9px;background:#fff;padding:3px;display:block;box-shadow:0 0 0 1px var(--line)}
.bn{display:flex;flex-direction:column;line-height:1.15}.bn small{color:var(--mut);font-size:.78rem}
.nav{display:flex;gap:2px;flex:1;flex-wrap:nowrap;align-items:center;justify-content:center}
.nav a{padding:8px 11px;border-radius:8px;color:var(--ink);font-size:.92rem;white-space:nowrap}
.nav a:hover{background:var(--bg);text-decoration:none}.nav a.on{background:var(--brand);color:#fff}
.tools{display:flex;gap:6px;align-items:center;margin-inline-start:auto}
.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:6px 11px;border-radius:8px;font-size:.88rem;cursor:pointer;font-family:inherit;display:inline-block}
.chip:hover{background:var(--bg);text-decoration:none}.menu{display:none}
main{padding:22px 16px 40px}main.wrap{padding-top:24px;padding-bottom:40px}h1{font-size:1.5rem;margin:.2em 0 .6em}h2{font-size:1.1rem;margin:.1em 0 .6em}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:16px}
.card.narrow{max-width:440px;margin:40px auto}.card.tile{display:block;color:var(--ink);text-decoration:none}.card.tile:hover{border-color:var(--brand);text-decoration:none}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.cards .card{margin:0}
.mut{color:var(--mut)}
label{display:block;margin:0 0 12px;font-size:.92rem;font-weight:600}
input,select,textarea{display:block;width:100%;margin-top:5px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:1px}
input[type=checkbox]{display:inline-block;width:auto;margin:0 0 0 6px}input.hrs{width:80px}
label.chk{font-weight:400}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn{display:inline-block;padding:9px 16px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.btn:hover{text-decoration:none;background:var(--bg)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-d)}
.btn.danger{border-color:var(--bad);color:var(--bad)}.link{background:none;border:0;color:var(--brand);cursor:pointer;font:inherit;padding:0 8px}
.inline{display:inline}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;align-items:center}
.flash{padding:11px 14px;border-radius:10px;margin-bottom:14px;border:1px solid var(--line)}
.flash.ok{background:#e6f5ec;border-color:#b6e2c6;color:#145c32}.flash.bad{background:#fdeceb;border-color:#f2c0bb;color:#8e281d}
table.t{width:100%;border-collapse:collapse}.t th,.t td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:start;vertical-align:top}.t th{font-size:.82rem;color:var(--mut)}
.t.kv th{width:170px;text-align:start;color:var(--mut);font-weight:600}.t.tight th,.t.tight td{padding:4px 5px;font-size:.82rem;text-align:center}.t.tight td.nm{text-align:start;white-space:nowrap}
.scroll{overflow-x:auto}tr.we td{background:var(--we)}tr.lvok td{background:#fdeadb}td.we,th.we{background:var(--we)}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78rem;font-weight:700}
.badge.ok{background:#e6f5ec;color:var(--ok)}.badge.warn{background:#fdf3dd;color:var(--warn)}.badge.bad{background:#fdeceb;color:var(--bad)}.badge.mute{background:var(--we);color:var(--mut)}
.req{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px}.ann{border-bottom:1px solid var(--line);padding:8px 0}.ann.pin b::before{content:"\1F4CC  "}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.tabs a{padding:7px 12px;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:.88rem}.tabs a.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
details.emp{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px}details.emp summary{cursor:pointer}
.hint{display:none;background:var(--bg);border-radius:9px;padding:8px 11px;margin:-4px 0 12px;font-size:.86rem;color:var(--mut)}
/* calendar */
.cal{margin:8px 0 12px}.calh{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.cal .grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.dn{font-size:.7rem;color:var(--mut);text-align:center}
.d{min-height:46px;border:1px solid var(--line);border-radius:8px;padding:3px 5px;font-size:.82rem;position:relative;background:var(--card)}.d.empty{border:0;background:none}
.d em{display:block;font-style:normal;font-size:.62rem;color:var(--mut);line-height:1.1;overflow:hidden}
.pick .d[data-date]{cursor:pointer}.pick .d[data-date]:hover{border-color:var(--brand)}
.d.we{background:var(--we)}.d.hol{background:#e2f1e8}.d.lvok{background:#fdeadb;border-color:var(--orange)}.d.lvpend{background:#fff6dc;border-color:#e3c35a}
.d.today{box-shadow:inset 0 0 0 2px var(--brand)}.d.sel{background:#dbe4fb}.d.selend{background:var(--brand);color:#fff}.d.selend em{color:#fff}
.legend{font-size:.78rem;color:var(--mut);margin-bottom:12px}.lg{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--line);vertical-align:middle;margin-inline:6px 3px}
.lg.lvok{background:#fdeadb}.lg.lvpend{background:#fff6dc}.lg.hol{background:#e2f1e8}.lg.we{background:var(--we)}
.td.lvok,td.lvok{background:#fdeadb}td.lvpend{background:#fff6dc}
.foot{color:var(--mut);font-size:.8rem;padding-bottom:30px}
@media (max-width:780px){.cols,.two{grid-template-columns:1fr}}
@media (max-width:1000px){.bar{flex-wrap:wrap;gap:8px 12px;padding-top:8px;padding-bottom:8px}.tools{margin-inline-start:auto}.menu{display:inline-block}.nav{display:none;order:5;flex:0 0 100%;width:100%;flex-direction:column;align-items:stretch;gap:2px;padding-bottom:6px}.nav.open{display:flex}.nav a,.dd summary{padding:10px 12px}.nav .ddm{position:static;box-shadow:none;border:0;background:transparent;padding:0 14px;min-width:0}}
/* admin dropdown */
.dd{position:relative}.dd summary{list-style:none;cursor:pointer;padding:8px 11px;border-radius:8px;font-size:.92rem;white-space:nowrap;display:flex;align-items:center;gap:4px}.dd summary::-webkit-details-marker{display:none}.dd summary::after{content:"\25BE";font-size:.72rem;opacity:.7}
.dd summary:hover,.dd[open] summary{background:var(--bg)}.dd.on summary{background:var(--brand);color:#fff}
.ddm{position:absolute;top:calc(100% + 8px);inset-inline-start:0;min-width:210px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 12px 32px rgba(0,0,0,.22);z-index:20;display:flex;flex-direction:column}
.ddm a{display:block;padding:9px 12px}.cnt{background:var(--orange);color:#fff;border-radius:99px;padding:0 7px;font-size:.74rem;font-weight:700;line-height:1.5}
/* home */
.hello{margin:0 0 16px}.hello h1{margin:0 0 4px}.hello p{margin:0}.quick{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}.quick .btn{padding:9px 14px}
.cols{align-items:stretch}.cols>.card{margin-bottom:0}.cols{margin-bottom:16px}
.bal{padding:10px 0;border-bottom:1px solid var(--line)}.bal:last-of-type{border-bottom:0}.bal .bl{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
progress{display:block;width:100%;height:8px;border:0;border-radius:99px;overflow:hidden;background:var(--we);accent-color:var(--brand)}progress::-webkit-progress-bar{background:var(--we)}progress::-webkit-progress-value{background:var(--brand);border-radius:99px}progress::-moz-progress-bar{background:var(--brand)}
.stats{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}.stat{flex:1;min-width:180px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.stat b{display:block;font-size:1.7rem;line-height:1.2;color:var(--brand)}.stat span{color:var(--mut);font-size:.88rem}.stats .btn{align-self:center}
.empty{color:var(--mut);padding:18px 0;text-align:center}

/* timesheet page */
.wrap.wide{max-width:1320px}
.tsbar{margin:2px 0 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tsbar h1{margin:.1em 0 .3em}
.tsnav{display:flex;align-items:center;gap:8px}.sm{font-size:.84rem}
.tstop{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:12px;align-items:start;margin-bottom:12px}
.tstop .card{margin:0;padding:12px 14px}.tstop h2{margin-bottom:.3em}
.tscal .cal{margin:0 0 4px}.tscal .d{min-height:30px;padding:1px 4px;font-size:.76rem}.tscal .d em{font-size:.56rem}.tscal .legend{margin:4px 0 0}
.tsreq form{display:grid;grid-template-columns:repeat(3,1fr);gap:0 10px;align-items:end}.tsreq .hint,.tsreq .fnote{grid-column:1/-1}.tsreq .subm{margin-bottom:8px}.tsreq .subm .btn{width:100%}.tsreq .fnote{margin-top:2px}
.tsreq label{margin-bottom:8px}.tsreq input,.tsreq select{padding:6px 9px}.tsreq .hint{margin:-2px 0 8px;padding:5px 9px}.tsreq p{margin:0 0 6px}
.tsc{padding:10px 12px}.tshead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}.tshead .projl{display:flex;align-items:center;gap:8px;margin:0;flex:1;min-width:200px;max-width:380px}.tshead .projl input{margin:0;padding:5px 9px}
.tsw{overflow-x:visible}
table.tsg{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.74rem}
.tsg col.c0{width:132px}.tsg col.c9{width:46px}
.tsg th{font-size:.72rem;color:var(--ink);text-align:start;padding:3px 6px;background:#d9e1f2;border:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsg td{border:1px solid var(--line);text-align:center;padding:0;height:23px;overflow:hidden}
.tsg td.we{background:var(--we)}.tsg td.lvok{background:#fdeadb;font-weight:700}.tsg td.lvpend{background:repeating-linear-gradient(45deg,#fff6dc,#fff6dc 4px,#fdeeb8 4px,#fdeeb8 8px);font-weight:700}.tsg td.na{background:var(--we)}
.tsg td.tt{background:#fff9c4;font-weight:700;color:#3a3a1a}
.tsg tr.r-dow td,.tsg tr.r-n td{background:#eef2fb;font-weight:600}.tsg tr.r-dow td{font-size:.62rem}.tsg tr.r-dow td.we,.tsg tr.r-n td.we{background:var(--we)}
.tsg input.hrs{width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;text-align:center;font-size:.74rem;-moz-appearance:textfield}
.tsg input.hrs::-webkit-outer-spin-button,.tsg input.hrs::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tsg input.hrs:focus{outline:2px solid var(--brand);outline-offset:-2px;background:#fff}
.tsnote{margin:8px 0 0}
@media (prefers-color-scheme:dark){.tsg th,.tsg tr.r-dow td,.tsg tr.r-n td{background:#242b4d;color:var(--ink)}.tsg td.tt{background:#4a4520;color:#fff}.tsg td.lvok{background:#5a3a22}.tsg td.lvpend{background:#4d4420}}
@media (max-width:780px){.tsreq form{grid-template-columns:minmax(0,1fr)}.tsreq .subm .btn{width:100%}}
@media (max-width:1000px){.tstop{grid-template-columns:minmax(0,1fr)}.tstop>*{min-width:0}.tsw{overflow-x:auto}table.tsg{min-width:900px}}
/* seals page */
.sealprev{min-height:110px;border:1px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;background:#fff}.sealprev img{max-width:100%;max-height:150px}
/* official documents */
body.docbody{background:#e9ebf2;color:#1b2340}
.docbar{max-width:794px;margin:12px auto;display:flex;gap:8px}
.sheet{position:relative;width:794px;max-width:100%;min-height:1050px;margin:0 auto 24px;background:#fff;padding:36px 56px 110px;box-shadow:0 2px 16px #0002;overflow:hidden;font-size:15px;line-height:1.8}
.lh{display:grid;grid-template-columns:1fr 130px 1fr;align-items:center;gap:8px;direction:ltr}.lh-en{text-align:left}.lh-ar{text-align:right;direction:rtl}
.lh b{display:block;color:#4860b5;font-size:19px;line-height:1.3}.lh span{display:block;font-size:11.5px;color:#4a5068;line-height:1.5}
.lh-logo{text-align:center}.lh-logo img{width:92px;height:auto}
.lh-rule{height:3px;background:#4860b5;margin:10px 0 0;box-shadow:0 5px 0 -0px #f08533}
.wm{position:absolute;left:50%;top:48%;width:420px;transform:translate(-50%,-50%);opacity:.07;pointer-events:none}
.docmeta{display:flex;justify-content:space-between;margin:26px 0 6px;font-size:13px;color:#4a5068}
.dtitle{text-align:center;font-size:24px;margin:14px 0 18px;color:#1b2340}
.dbody{position:relative}.dbody .letter{white-space:normal}
table.dkv{margin-bottom:12px}table.dkv th{width:34%;background:#f1f4fb;font-size:14px;color:#1b2340}table.dkv td,table.dkv th{border:1px solid #d6dbea;padding:7px 11px}
.dsign{display:flex;justify-content:flex-end;margin-top:34px}.sigbox{width:250px;text-align:center;position:relative}
.sg-t{font-size:13px;color:#4a5068}.sg-i{height:100px;position:relative}.sg-i img{max-height:90px;max-width:210px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.sg-i img.stamp{max-height:110px;max-width:130px;opacity:.85;transform:translate(-8%,-50%) rotate(-6deg)}
.sg-n{font-size:14px}.sg-d{font-size:11px;color:#69708a;margin-top:6px}
.lf{position:absolute;left:56px;right:56px;bottom:26px;text-align:center;font-size:11.5px;color:#4a5068;border-top:2px solid #f08533;padding-top:8px;direction:ltr}.lf .lfl{color:#4860b5;font-weight:700}
@media print{body.docbody{background:#fff}.noprint{display:none!important}.sheet{box-shadow:none;margin:0;width:auto;min-height:0;height:1000px;padding:0 10px;page-break-after:avoid;page-break-inside:avoid}@page{size:A4;margin:10mm}html,body{margin:0}}
main.wide{padding-top:8px;padding-bottom:4px}.foot{padding-bottom:12px}.tsbar h1{font-size:1.3rem}.tscal .calh{margin-bottom:3px}.tsreq p.sm{display:none}

@media (max-width:480px){.chip{padding:5px 8px;font-size:.8rem}.bn small{display:none}.bar{gap:6px 8px}}
