:root{--paper:#f4f1ec;--card:#fff;--ink:#1f2b33;--muted:#66707a;--line:#e4dfd7;--line-soft:#ece8e1;--row:#fbfaf8;--field:#d9d3ca;--ocean:#2f4858;--ocean-hover:#243a48;--ocean-soft:#e3eaef;--good:#2f5e42;--good-ink:#255238;--good-soft:#dcebe0;--warn-ink:#6e4f0c;--warn-soft:#f4e8cc;--bad-ink:#8f2e23;--bad-soft:#f6e1dd;--badge:#c7432f;--wood:#6e503e;--neu-soft:#eeeae3;--neu-ink:#5b646c;--r-card:12px;--r-el:10px;--shadow:0 1px 2px #1f2b330f;--t-fast:.12s ease}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans Arabic,system-ui,sans-serif;font-size:14px;line-height:1.55}:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}::selection{background:var(--ocean-soft)}a{color:var(--ocean);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{margin:0}input,select,textarea{font:inherit}.app{flex-direction:column;min-height:100%;display:flex}.appbar{height:60px;padding:0 16px;padding-top:env(safe-area-inset-top,0px);background:var(--ocean);color:#fff;z-index:10;flex:none;align-items:center;gap:12px;display:flex;position:sticky;top:0}.appbar img{width:auto;height:30px}.appbar .who{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.appbar .who b{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.appbar .who span{opacity:.8;font-size:11px}.appbar .ib{color:#fff;background:#ffffff14;border:1px solid #ffffff47;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.appbar .ib .n{top:-6px;background:var(--badge);color:#fff;text-align:center;border-radius:10px;min-width:18px;padding:0 5px;font-size:10px;font-weight:700;position:absolute;inset-inline-end:-6px}.appbar .back{color:#fff;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex}.appbar .lang{border:1px solid #ffffff59;border-radius:10px;display:flex;overflow:hidden}.appbar .lang button{color:#fff;opacity:.7;background:0 0;border:none;padding:6px 10px;font-size:12px;font-weight:600}.appbar .lang button.on{opacity:1;background:#fff3}.main{flex-direction:column;flex:1;gap:12px;width:100%;max-width:720px;margin:0 auto;padding:12px 16px 24px;display:flex}.frame{flex:1;min-height:0;display:flex}.snav{display:none}.nav{border-top:1px solid var(--line);background:var(--card);padding:6px 8px calc(10px + env(safe-area-inset-bottom,0px));z-index:10;display:flex;position:sticky;bottom:0}.nav a{color:var(--muted);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;min-height:44px;padding:6px 4px;font-size:11px;font-weight:500;display:flex}.nav a.on{color:var(--ocean);font-weight:600}.nav svg{width:22px;height:22px}@media (width>=900px){.nav{display:none}.snav{background:var(--card);border-inline-end:1px solid var(--line);flex-direction:column;flex:none;gap:2px;width:232px;height:calc(100vh - 60px);padding:14px 12px;display:flex;position:sticky;top:60px}.snav .brand{border-bottom:1px solid var(--line-soft);margin-bottom:8px;padding:4px 12px 14px}.snav .brand b{color:var(--ocean);letter-spacing:.01em;font-size:18px;font-weight:800;display:block}.snav .brand span{color:var(--muted);font-size:11.5px}.snav .who{border-top:1px solid var(--line-soft);padding:10px 12px;font-size:13px}.snav .who b{font-weight:600;display:block}.snav .who span{color:var(--muted);font-size:11.5px}.snav a{color:var(--neu-ink);transition:background var(--t-fast), color var(--t-fast);border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;display:flex}.snav a:hover{background:var(--row);color:var(--ink)}.snav a.on{background:var(--ocean-soft);color:var(--ocean);font-weight:600}.snav svg{width:20px;height:20px}.main{max-width:1100px;padding:16px 24px 32px}.main.split{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.main.split>.col{flex-direction:column;gap:16px;min-width:0;display:flex}.main.split>.col.aside{order:2}.main.split>.col:not(.aside){order:1}}.col{flex-direction:column;gap:12px;display:flex}svg.i{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.ph{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:2px 2px 4px;display:flex}.ph h1{font-size:20px;font-weight:700;line-height:1.3}.ph .sub{color:var(--muted);margin-top:2px;font-size:13px}.ph .act{align-items:center;gap:8px;margin-inline-start:auto;display:flex}@media (width<=899px){.ph h1{font-size:18px}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.card>.h{align-items:center;gap:8px;min-height:28px;margin:0;font-size:15px;font-weight:600;display:flex}.card>.h>svg.i{color:var(--muted)}.card>.h .cnt{color:var(--muted);align-items:center;gap:6px;margin-inline-start:auto;font-size:12px;font-weight:500;display:flex}.card.flat{box-shadow:none;background:0 0;border:none;padding:0}.mut{color:var(--muted);font-size:12px}.grp{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:2px 0;font-size:11px;font-weight:700}.chip{white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:11.5px;font-weight:600;line-height:1.3;display:inline-flex}.chip.bad{background:var(--bad-soft);color:var(--bad-ink)}.chip.warn{background:var(--warn-soft);color:var(--warn-ink)}.chip.good{background:var(--good-soft);color:var(--good-ink)}.chip.acc{background:var(--ocean-soft);color:var(--ocean)}.chip.neu{background:var(--neu-soft);color:var(--neu-ink)}.btn{border-radius:var(--r-el);border:1px solid var(--field);background:var(--card);min-height:44px;color:var(--ink);transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--row);border-color:#c9c2b7}.btn:active{transform:translateY(1px)}.btn.pri{background:var(--ocean);color:#fff;border-color:var(--ocean)}.btn.pri:hover{background:var(--ocean-hover);border-color:var(--ocean-hover)}.btn.dan{background:var(--card);color:var(--bad-ink);border-color:#e7c9c4}.btn.dan:hover{background:var(--bad-soft)}.btn.ghost{color:var(--ocean);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--ocean-soft)}.btn.dis,.btn:disabled{color:#8a9199;cursor:not-allowed;background:#edeae4;border-color:#0000;transform:none}.btn.sm{border-radius:8px;min-height:34px;padding:0 12px;font-size:13px}.btns{flex-wrap:wrap;gap:8px;display:flex}.btns>.btn{flex:1}.btns.tight>.btn{flex:none}.contact{flex-wrap:wrap;gap:8px;display:flex}.contact .btn{flex:1 1 0;min-height:40px;font-size:13px}.row{border:1px solid var(--line-soft);border-radius:var(--r-el);background:var(--card);min-height:50px;color:inherit;transition:background var(--t-fast), border-color var(--t-fast);align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative}a.row:hover,.row[role=button]:hover,button.row:hover{background:var(--row);border-color:var(--line)}.row.late{border-color:var(--line-soft);box-shadow:inset 3px 0 0 var(--bad-ink)}[dir=rtl] .row.late{box-shadow:inset -3px 0 0 var(--bad-ink)}.row.done{background:var(--neu-soft);color:var(--muted)}.row .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.row .id{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-family:ui-monospace,IBM Plex Sans Arabic,monospace;font-size:11.5px}.row .chev{color:var(--muted);opacity:.6}.list{flex-direction:column;display:flex}.list>.row{border-width:0 0 1px;border-radius:0;padding-inline:4px}.list>.row:last-child{border-bottom:none}.list>.row.late{box-shadow:inset 3px 0 0 var(--bad-ink);padding-inline-start:10px}[dir=rtl] .list>.row.late{box-shadow:inset -3px 0 0 var(--bad-ink)}.row.wrap{flex-wrap:wrap;row-gap:6px}.row .sub{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;display:flex}.row .sub:empty{display:none}.lbl{color:var(--neu-ink);flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;display:flex}.lbl .req{color:var(--bad-ink);margin-inline-start:2px}.in{border:1px solid var(--field);border-radius:var(--r-el);background:var(--card);min-height:44px;color:var(--ink);width:100%;transition:border-color var(--t-fast), box-shadow var(--t-fast);align-items:center;gap:8px;padding:0 12px;font-size:14px;display:flex}.in:hover{border-color:#c2bbb0}.in:focus-visible{border-color:var(--ocean);box-shadow:0 0 0 3px var(--ocean-soft);outline:none}.in[readonly],.in:disabled{background:var(--row);color:var(--neu-ink)}.in::placeholder{color:#9aa1a8}textarea.in{resize:vertical;min-height:80px;padding:10px 12px}.tabs{background:var(--neu-soft);border-radius:var(--r-el);gap:4px;padding:4px;display:flex}.tabs button{text-align:center;color:var(--muted);background:0 0;border:none;border-radius:9px;flex:1;padding:8px 6px;font-size:13px;font-weight:600}.tabs button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #1f2b3314}.kv{grid-template-columns:auto 1fr;align-items:center;gap:7px 16px;margin:0;font-size:13px;display:grid}.kv dt{color:var(--muted);font-weight:500}.kv dd{min-width:0;margin:0;font-weight:600}.bar{background:var(--neu-soft);border-radius:4px;height:8px;overflow:hidden}.bar i{background:var(--ocean);border-radius:4px;height:100%;display:block}.bar.bad i{background:var(--bad-ink)}.note{border-radius:var(--r-el);background:var(--ocean-soft);color:var(--ocean);align-items:flex-start;gap:10px;padding:10px 12px;font-size:12.5px;line-height:1.45;display:flex}.note.warn{background:var(--warn-soft);color:var(--warn-ink)}.note.bad{background:var(--bad-soft);color:var(--bad-ink)}.step{color:var(--neu-ink);align-items:center;gap:10px;padding:5px 0;font-size:13px;display:flex;position:relative}.step+.step:before{content:"";inset-inline-start:10px;border-inline-start:2px solid var(--line-soft);height:12px;position:absolute;top:-8px}.step.done+.step:before,.step.done+.step.done:before{border-color:var(--good-soft)}.step.now,.step.now .t{color:var(--ink)}.dot{border:2px solid var(--field);width:22px;height:22px;color:var(--muted);background:var(--card);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.step.done .dot{background:var(--good);border-color:var(--good);color:#fff}.step.now .dot{border-color:var(--ocean);color:var(--ocean);box-shadow:0 0 0 4px var(--ocean-soft)}.step.now{font-weight:600}.step .t{flex:1;justify-content:space-between;align-items:center;gap:8px;display:flex}.step small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px;font-weight:500}.seg{border:1px solid var(--field);background:var(--card);border-radius:10px;align-self:flex-start;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);background:0 0;border:none;min-height:36px;padding:8px 14px;font-size:13px;font-weight:600}.seg button.on{background:var(--ocean);color:#fff}.up{border-radius:var(--r-el);color:var(--neu-ink);text-align:center;aspect-ratio:1;background:#f7f8f8;border:1.5px dashed #bfc7cd;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:12px;display:flex;position:relative;overflow:hidden}.up img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.up.add{background:var(--ocean-soft);color:var(--ocean);border-color:var(--ocean);cursor:pointer}.up input{opacity:0;cursor:pointer;position:absolute;inset:0}.tiles{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}@media (width>=900px){.tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.pinned{bottom:calc(66px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));z-index:9;flex-direction:column;gap:8px;margin:0 -16px;display:flex;position:sticky}.pinned .cs{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.pinned .cs .mut{font-size:11.5px}@media (width>=900px){.pinned{border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);border-inline-start:4px solid var(--ocean);margin:0;position:static}}table.t{border-collapse:collapse;width:100%;font-size:13px}table.t th{text-align:start;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--card);padding:8px 10px;font-size:11px;font-weight:700;position:sticky;top:0}table.t td{border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums;vertical-align:middle;padding:10px}table.t tbody tr{transition:background var(--t-fast)}table.t tbody tr:hover{background:var(--row)}table.t tr:last-child td{border-bottom:none}table.t td.pri{font-weight:600}table.t td.mono{color:var(--neu-ink);letter-spacing:.02em;font-family:ui-monospace,monospace;font-size:12px}.tw{overflow-x:auto}.count{color:var(--ink);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;line-height:1}.count small{margin-inline-start:6px;font-size:14px;font-weight:600}.stat{background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--r-el);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.stat .card{box-shadow:none;border:none;border-radius:0;gap:2px;padding:12px 14px}.stat .n{color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.1}.stat .n.bad{color:var(--bad-ink)}.stat .l{color:var(--muted);font-size:11.5px}.login{flex-direction:column;gap:14px;width:min(380px,100%);margin:auto;padding:24px;display:flex}.login img{width:220px;margin:0 auto 8px}.err{color:var(--bad-ink);font-size:13px;font-weight:600}.modal-bg{z-index:50;background:#1f2b3373;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--card);padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;flex-direction:column;gap:12px;width:min(520px,100%);max-height:92vh;display:flex;overflow-y:auto;box-shadow:0 -8px 40px #1f2b3333}.modal>.h{background:var(--card);z-index:1;border-bottom:1px solid var(--line-soft);padding:2px 0 8px;font-size:16px;position:sticky;top:-16px}.modal .foot{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.modal .foot .btn{flex:none;min-width:120px}@media (width>=900px){.modal-bg{align-items:center;padding:24px}.modal{border-radius:16px;max-height:88vh;box-shadow:0 20px 60px #1f2b3340}}.filters{flex-wrap:wrap;gap:8px;display:flex}.filters .in{flex:1;width:auto;min-width:140px}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:22px 12px;font-size:13px;display:flex}.empty svg.i{color:#b9c0c6;width:26px;height:26px}.empty b{color:var(--neu-ink);font-size:13.5px;font-weight:600}.skel{flex-direction:column;gap:8px;display:flex}.skel i{background:linear-gradient(90deg, var(--neu-soft) 25%, #f5f2ed 50%, var(--neu-soft) 75%);background-size:200% 100%;border-radius:10px;height:46px;animation:1.2s ease-in-out infinite sk;display:block}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skel i{animation:none}*{transition:none!important}}.toast{bottom:90px;background:var(--ink);color:#fff;z-index:60;border-radius:10px;align-items:center;gap:10px;max-width:480px;margin:auto;padding:12px 16px;font-size:13px;animation:.16s ease-out toastin;display:flex;position:fixed;inset-inline:16px;box-shadow:0 8px 30px #00000040}@keyframes toastin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width>=900px){.toast{bottom:24px;inset-inline:auto 24px}}.toast.bad{background:var(--bad-ink)}.tl{flex-direction:column;display:flex}.tl .ev{grid-template-columns:18px 1fr;gap:10px;padding:6px 0;display:grid;position:relative}.tl .ev:before{content:"";inset-inline-start:8px;border-inline-start:1px solid var(--line);position:absolute;top:20px;bottom:-6px}.tl .ev:last-child:before{display:none}.tl .ev .d{background:var(--card);border:2px solid var(--field);border-radius:50%;width:10px;height:10px;margin:6px 4px}.tl .ev.hi .d{border-color:var(--ocean);background:var(--ocean)}.tl .ev.bad .d{border-color:var(--bad-ink);background:var(--bad-ink)}.tl .ev .tx{font-size:13px;line-height:1.45}.tl .ev .m{color:var(--muted);font-size:11.5px}@media (width<=899px){.stagebox .steps{display:none}.stagebox.open .steps{display:block}}.acct{flex-direction:column;gap:8px;display:flex}.acct .who b{font-size:16px}.acct .who span{color:var(--muted);font-size:12.5px;display:block}.only-desk{display:none!important}@media (width>=900px){.only-desk{display:block!important}.only-mob{display:none!important}}.pinned .cs b{font-size:16px}@media (width>=900px){.pinned .btn.pri{align-self:flex-start;min-width:260px}.pinned{flex-flow:wrap;align-items:center}.pinned .cs{flex:260px}.pinned .note{flex-basis:100%}}.vault{border-radius:var(--r-card);color:#fff;background:linear-gradient(135deg, var(--ocean) 0%, #243a48 70%, #3a2d24 140%);flex-wrap:wrap;gap:14px;padding:18px 20px;display:flex;box-shadow:0 6px 24px #1f2b332e}.vault .l{flex-direction:column;flex:260px;gap:4px;min-width:0;display:flex}.vault .k{opacity:.85;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.vault .l>b{letter-spacing:.01em;font-variant-numeric:tabular-nums;text-align:start;font-size:36px;font-weight:700;line-height:1.15}.vault .k2{opacity:.8;flex-wrap:wrap;gap:12px;min-height:16px;font-size:11.5px;display:flex}.vault .r{border-radius:var(--r-el);background:#ffffff1a;border:1px solid #ffffff2e;flex-direction:column;flex:0 240px;justify-content:center;gap:2px;padding:10px 14px;display:flex}.vault .r span{opacity:.85;font-size:11.5px}.vault .r b{font-variant-numeric:tabular-nums;font-size:20px}@media (width>=900px){.vault .l>b{font-size:44px}}.acts{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}@media (width>=600px){.acts{grid-template-columns:repeat(3,1fr)}}.btn.act{flex-direction:column;gap:4px;min-height:60px;font-size:13px}.btn.act svg.i{width:22px;height:22px}.btn.act.good{color:var(--good-ink);background:var(--good-soft);border-color:#bfd9c7}.btn.act.good:hover{background:#cfe5d6}.btn.act.bad{color:var(--bad-ink);background:var(--bad-soft);border-color:#e7c9c4}.btn.act.bad:hover{background:#f0d3ce}.wgrid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}@media (width>=700px){.wgrid{grid-template-columns:repeat(3,1fr)}}.wt{border:1px solid var(--line-soft);border-radius:var(--r-el);background:var(--row);color:inherit;transition:background var(--t-fast), border-color var(--t-fast);flex-direction:column;gap:3px;padding:12px 14px;display:flex}.wt:hover{background:var(--card);border-color:var(--line)}.wt .n{color:var(--muted);font-size:12.5px;font-weight:600}.wt>b{font-variant-numeric:tabular-nums;text-align:start;font-size:18px}.tic{background:var(--neu-soft);width:34px;height:34px;color:var(--neu-ink);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tic.good{background:var(--good-soft);color:var(--good-ink)}.tic.bad{background:var(--bad-soft);color:var(--bad-ink)}.tic.acc{background:var(--ocean-soft);color:var(--ocean)}.row b.amt{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14.5px}.row b.amt.good{color:var(--good-ink)}.row b.amt.bad{color:var(--bad-ink)}.row b.amt.gone{color:var(--muted);font-weight:500}.in.amt{font-variant-numeric:tabular-nums;min-height:54px;font-size:24px;font-weight:700}.row .nm{white-space:normal}
