:root{--ink: #101a2c;--paper: #f2f4f7;--surface: #ffffff;--surface-2: #f8fafc;--line: #dfe4ea;--text: #16202e;--text-soft: #5d6b7d;--accent: #1f6f6b;--accent-soft: #e2f1ef;--signal: #b3720f;--signal-soft: #fbf0dc;--danger: #a92a22;--danger-soft: #fbe6e4;--ok: #2c6f4b;--ok-soft: #e2f1e8;--info: #26557f;--info-soft: #e3edf6;--purple: #5b4a86;--purple-soft: #ece8f5;--radius: 10px;--shadow: 0 1px 2px rgba(16, 26, 44, .06), 0 8px 24px -16px rgba(16, 26, 44, .3);--display: "Readex Pro", "IBM Plex Sans Arabic", system-ui, sans-serif;--body: "IBM Plex Sans Arabic", system-ui, sans-serif}[data-theme=dark]{--ink: #0a1018;--paper: #0e1520;--surface: #16202e;--surface-2: #1c2839;--line: #2a394d;--text: #e8edf3;--text-soft: #9aabbf;--accent: #4fb3ac;--accent-soft: #16332f;--signal: #e0a44a;--signal-soft: #33260f;--danger: #e8776c;--danger-soft: #3a1a17;--ok: #63b98b;--ok-soft: #12301f;--info: #7fb2e0;--info-soft: #12283c;--purple: #a496d6;--purple-soft: #241f36;--shadow: 0 1px 2px rgba(0, 0, 0, .4)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--display);font-weight:600;margin:0;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}.num{font-variant-numeric:tabular-nums;direction:ltr;display:inline-block}.shell{display:flex;min-height:100vh}.sidebar{width:236px;flex:none;background:var(--ink);color:#cfd8e4;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{padding:20px 18px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.brand b{font-family:var(--display);color:#fff;font-size:15px;display:block}.brand span{font-size:11.5px;color:#8fa0b5}.nav{padding:10px 8px;display:flex;flex-direction:column;gap:1px}.nav-group{font-size:10.5px;letter-spacing:.06em;color:#6b7d94;padding:14px 12px 5px}.nav a{padding:8px 12px;border-radius:8px;display:flex;align-items:center;gap:9px;color:#cfd8e4;font-size:13.5px;transition:background .12s}.nav a:hover{background:#ffffff12}.nav a.active{background:var(--accent);color:#fff}.nav .ico{width:16px;text-align:center;opacity:.85}.sidebar-foot{margin-top:auto;padding:12px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#8fa0b5}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:58px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 18px;position:sticky;top:0;z-index:30}.content{padding:20px;max-width:1400px;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}.page-head h1{font-size:21px}.page-head p{margin:2px 0 0;color:var(--text-soft);font-size:13px}.search-wrap{position:relative;flex:1;max-width:460px}.search-wrap input{width:100%;padding:8px 34px 8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text)}.search-wrap .glass{position:absolute;inset-inline-start:11px;top:8px;color:var(--text-soft)}.search-results{position:absolute;top:42px;inset-inline-start:0;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;z-index:40}.search-results a{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line)}.search-results a:last-child{border-bottom:0}.search-results a:hover{background:var(--surface-2)}.search-results small{color:var(--text-soft)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{padding:13px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.card-head h3{font-size:14.5px}.card-body{padding:16px}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px}.stat .label{font-size:12px;color:var(--text-soft)}.stat .value{font-family:var(--display);font-size:25px;line-height:1.25;margin-top:2px}.stat.warn{border-inline-start:3px solid var(--signal)}.stat.bad{border-inline-start:3px solid var(--danger)}.stat.good{border-inline-start:3px solid var(--ok)}table{width:100%;border-collapse:collapse}th{text-align:right;font-size:11.5px;color:var(--text-soft);font-weight:500;padding:9px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-2)}.table-wrap{overflow-x:auto}.row-link{cursor:pointer}.empty{padding:34px 16px;text-align:center;color:var(--text-soft)}.empty b{display:block;font-family:var(--display);color:var(--text);margin-bottom:4px}.badge{display:inline-block;padding:2.5px 9px;border-radius:999px;font-size:11.5px;white-space:nowrap}.badge.slate{background:var(--surface-2);color:var(--text-soft);border:1px solid var(--line)}.badge.blue{background:var(--info-soft);color:var(--info)}.badge.amber{background:var(--signal-soft);color:var(--signal)}.badge.teal{background:var(--accent-soft);color:var(--accent)}.badge.green{background:var(--ok-soft);color:var(--ok)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.purple{background:var(--purple-soft);color:var(--purple)}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;transition:.12s}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{padding:4px 10px;font-size:12.5px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.toolbar input,.toolbar select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:12.5px;color:var(--text-soft)}.field input,.field select,.field textarea{padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.field .err{color:var(--danger);font-size:12px}.field.bad input,.field.bad select{border-color:var(--danger)}.req:after{content:" *";color:var(--danger)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#101a2c73;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:60;overflow-y:auto}.modal{background:var(--surface);border-radius:12px;width:100%;max-width:620px;box-shadow:0 24px 60px -20px #00000080}.modal-head{padding:15px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:18px}.modal-foot{padding:13px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-start;gap:8px}.toast-area{position:fixed;bottom:18px;inset-inline-start:18px;display:flex;flex-direction:column;gap:8px;z-index:80}.toast{background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;box-shadow:var(--shadow);font-size:13px}.toast.err{background:var(--danger)}.toast.ok{background:var(--ok)}.rail{display:flex;gap:3px;overflow-x:auto;padding:4px 0 10px}.rail-step{flex:1;min-width:26px}.rail-bar{height:6px;border-radius:3px;background:var(--line)}.rail-step.done .rail-bar{background:var(--accent)}.rail-step.current .rail-bar{background:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}.rail-step.term .rail-bar{background:var(--danger)}.rail-step .cap{font-size:9.5px;color:var(--text-soft);margin-top:5px;display:block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-step.current .cap{color:var(--signal);font-weight:600}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline:before{content:"";position:absolute;inset-inline-start:6px;top:6px;bottom:6px;width:2px;background:var(--line)}.timeline li{position:relative;padding:0 24px 16px 0}.timeline li:before{content:"";position:absolute;inset-inline-start:1px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.timeline .when{font-size:11.5px;color:var(--text-soft)}.kanban{display:flex;gap:10px;overflow-x:auto;padding-bottom:12px}.kcol{flex:none;width:232px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column}.kcol-head{padding:9px 12px;border-bottom:1px solid var(--line);font-size:12.5px;display:flex;justify-content:space-between;align-items:center}.kcol-body{padding:8px;display:flex;flex-direction:column;gap:7px;min-height:70px}.kcol.over{outline:2px dashed var(--accent);outline-offset:-2px}.kcard{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px;cursor:grab;font-size:12.5px}.kcard b{display:block;font-family:var(--display);font-size:12.5px}.kcard .meta{color:var(--text-soft);font-size:11.5px}.bar-row{display:grid;grid-template-columns:118px 1fr 46px;align-items:center;gap:10px;margin-bottom:7px;font-size:12.5px}.bar-track{background:var(--surface-2);border-radius:4px;height:15px;overflow:hidden;border:1px solid var(--line)}.bar-fill{height:100%;background:var(--accent)}.spark{display:flex;align-items:flex-end;gap:6px;height:96px}.spark div{flex:1;background:var(--accent);border-radius:3px 3px 0 0;min-height:3px;position:relative}.spark span{position:absolute;bottom:-19px;inset-inline-start:0;width:100%;text-align:center;font-size:10px;color:var(--text-soft)}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{background:var(--ink);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:center;gap:14px}.login-art h1{font-size:32px;line-height:1.35;max-width:420px}.login-art p{color:#93a5bb;max-width:400px}.login-art .rail{max-width:420px}.login-art .rail-bar{background:#ffffff29}.login-art .rail-step.done .rail-bar{background:#4fb3ac}.login-art .cap{color:#7d90a8}.login-form{display:flex;align-items:center;justify-content:center;padding:32px;background:var(--surface)}.login-form .inner{width:100%;max-width:330px}.hint{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--text-soft)}.muted{color:var(--text-soft)}.right{text-align:left}.flex{display:flex;align-items:center;gap:8px}.between{display:flex;align-items:center;justify-content:space-between;gap:10px}.wrap{flex-wrap:wrap}.mt{margin-top:14px}.dl{display:grid;grid-template-columns:132px 1fr;gap:7px 12px;font-size:13px}.dl dt{color:var(--text-soft)}.dl dd{margin:0}@media (max-width: 980px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3,.g2,.login{grid-template-columns:1fr}.login-art{display:none}}@media (max-width: 760px){.sidebar{position:fixed;inset-inline-start:-240px;z-index:70;transition:inset-inline-start .2s}.sidebar.open{inset-inline-start:0}.content{padding:14px}.dl{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media print{.sidebar,.topbar,.btn,.toolbar{display:none!important}.content{padding:0}.card{box-shadow:none;border:1px solid #ccc}}#burger{display:none}@media (max-width: 760px){#burger{display:inline-flex!important}}.combo,.combo-input{position:relative}.combo-input input{width:100%;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}.combo-clear{position:absolute;inset-inline-end:8px;top:7px;border:0;background:transparent;color:var(--text-soft);cursor:pointer}.combo-list{position:absolute;top:100%;inset-inline-start:0;width:100%;max-height:240px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);z-index:50;margin-top:3px}.combo-item{display:block;width:100%;text-align:start;padding:7px 11px;border:0;background:transparent;color:var(--text);cursor:pointer;font-size:13px}.combo-item:hover{background:var(--surface-2)}.combo-item.add{color:var(--accent);border-top:1px solid var(--line);font-weight:500}.attachments .chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:2px 4px 2px 10px;font-size:12px}.attachments .chip-name{border:0;background:transparent;color:var(--text);cursor:pointer;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachments .chip-name:hover{color:var(--accent);text-decoration:underline}.attachments .chip-x{border:0;background:transparent;color:var(--text-soft);cursor:pointer;padding:0 4px}.attachments .chip-x:hover{color:var(--danger)}.stage-note{width:100%;margin-top:6px}.receipt{font-size:13px}.receipt-head{text-align:center;padding-bottom:12px;margin-bottom:12px;border-bottom:2px solid var(--ink)}.receipt-head b{font-family:var(--display);font-size:15px;display:block}.receipt-void{color:var(--danger);font-weight:600;text-align:center;border:2px solid var(--danger);border-radius:8px;padding:6px;margin-top:12px}.receipt-foot{border-top:1px solid var(--line);padding-top:8px;margin-top:14px;font-size:11.5px}@media print{.modal-back{position:static;padding:0;background:none;overflow:visible}.modal{box-shadow:none;max-width:100%}.modal-head,.modal-foot{display:none}}
