/* HypeCores System — one stylesheet. Brand colours come from Settings → Brand (--brand, --dark). Works left-to-right and right-to-left. */
@font-face{font-family:Cairo;font-weight:400;font-display:swap;src:url(fonts/cairo-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:Cairo;font-weight:700;font-display:swap;src:url(fonts/cairo-arabic-700-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:Cairo;font-weight:400;font-display:swap;src:url(fonts/cairo-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+20AC,U+2122,U+2190-21FF,U+2212}
@font-face{font-family:Cairo;font-weight:700;font-display:swap;src:url(fonts/cairo-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+20AC,U+2122,U+2190-21FF,U+2212}
:root{--brand:#E8462B;--dark:#141414;--bg:#f4f3f1;--card:#fff;--ink:#1d1d1d;--muted:#6f6f6f;--line:#e6e3df;--good:#1e8e5a;--warn:#c27c0e;--bad:#c62f2f;--blue:#2563c9;--violet:#7a4fd0;--r:12px;--side:232px}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-size:15px}
body{margin:0;font-family:Cairo,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.5rem;margin:0 0 .25rem}h2{font-size:1.1rem;margin:0 0 .75rem}h3{font-size:1rem;margin:1.2rem 0 .5rem}
main{padding:20px;max-width:1200px;margin:0 auto}
body.wide main{max-width:1500px}
body.has-side main{margin-inline-start:var(--side)}
body.has-side.wide main,body.has-side main{max-width:none}
.muted{color:var(--muted)}.sub{font-size:.82rem;color:var(--muted)}.strong{font-weight:700}.center{text-align:center}.nowrap{white-space:nowrap}
.pre{white-space:pre-wrap}.hint{color:var(--muted);font-size:.87rem;margin:.3rem 0 .8rem}.hint-inline{display:block;font-size:.78rem;color:var(--muted)}
.late,.late a{color:var(--bad);font-weight:700}.soon{color:var(--warn);font-weight:700}.good-text{color:var(--good);font-weight:700}.warn-text{color:var(--warn)}
.dim{opacity:.55}.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}.tile-v{direction:ltr;unicode-bidi:isolate}[dir=rtl] .tile-v{text-align:right}.num{text-align:end;font-variant-numeric:tabular-nums}
/* side navigation */
.side{position:fixed;inset-block:0;inset-inline-start:0;width:var(--side);background:var(--dark);color:#fff;display:flex;flex-direction:column;z-index:20;overflow-y:auto}
.side .brand{display:flex;align-items:center;justify-content:center;background:#fff;margin:14px;border-radius:10px;padding:10px;min-height:58px}
.side .brand img{max-width:100%;max-height:52px}
.logo-text{font-weight:700;font-size:1.25rem;color:var(--dark);letter-spacing:.5px}.logo-text.big{font-size:1.8rem}
.side nav{display:flex;flex-direction:column;padding:4px 10px 20px;gap:2px}
.side nav a{display:flex;align-items:center;gap:10px;color:#d8d6d3;padding:9px 12px;border-radius:8px;font-weight:600}
.side nav a:hover{background:#ffffff14;text-decoration:none;color:#fff}
.side nav a.on{background:var(--brand);color:#fff}
.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;background:#fff;border-bottom:1px solid var(--line);padding:8px 20px;margin-inline-start:var(--side)}
.top-title{font-weight:700;flex:1}
.menu-btn{display:none;background:none;border:0;font-size:1.4rem;cursor:pointer}
.bell{position:relative;color:var(--ink);padding:6px;display:flex}.bell .dot{position:absolute;top:0;inset-inline-end:-4px;background:var(--brand);color:#fff;border-radius:10px;font-size:.7rem;padding:0 5px;font-style:normal}
.me{position:relative}.me summary{cursor:pointer;list-style:none;font-weight:600;padding:6px 10px;border-radius:8px}.me summary::-webkit-details-marker{display:none}.me summary:hover{background:var(--bg)}
.me .menu{position:absolute;inset-inline-end:0;top:110%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;min-width:190px;display:flex;flex-direction:column;gap:8px;box-shadow:0 8px 24px #0002}
/* page */
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumb{margin:0 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:16px}
.card.narrow{max-width:520px;margin-inline:auto}
.link-card{display:block;color:var(--ink)}.link-card:hover{border-color:var(--brand);text-decoration:none}
.warn-card{border-color:#f0c36d;background:#fffaf0}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;align-items:end}
.span2{grid-column:span 2}.span3{grid-column:span 3}.span4{grid-column:1/-1}
.task-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
/* forms */
label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.9rem}
.label{display:block;font-weight:600;font-size:.9rem;margin-bottom:4px}
label.check{flex-direction:row;align-items:center;gap:8px;font-weight:400}label.check.inline{display:inline-flex;margin-inline-end:14px}
.inline-label{flex-direction:row;align-items:center;gap:6px;font-weight:400}
input,select,textarea{font:inherit;border:1px solid #d6d2cc;border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink);width:100%;min-width:0}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--brand)}
input[type=color]{padding:2px;height:40px}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 40%,transparent);border-color:var(--brand)}
input.short{width:90px}input.num.short{width:80px}
input[disabled]{background:#f3f2f0;color:var(--muted)}
fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:10px 0}legend{font-weight:700;padding:0 6px}
.form-actions{display:flex;gap:10px;margin-top:16px}
.row-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row-form input{width:auto;flex:1;min-width:180px}
form.inline{display:inline}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;border:1px solid #d6d2cc;background:#fff;color:var(--ink);border-radius:9px;padding:8px 14px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--ink);text-decoration:none}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{filter:brightness(.93)}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:#0000000a}
.btn.sm{padding:5px 10px;font-size:.87rem}.btn.block{width:100%;margin-top:6px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
button.link{background:none;border:0;color:var(--brand);font:inherit;cursor:pointer;padding:0}
.flash{padding:10px 14px;border-radius:10px;margin-bottom:14px;background:#eaf7ef;border:1px solid #bfe5cd}
.flash.err{background:#fdecec;border-color:#f3c0c0}.flash.info{background:#eef4fd;border-color:#c7d9f5}.flash ul{margin:4px 0 0;padding-inline-start:20px}
/* tables */
.table-wrap{overflow-x:auto}
table.list{width:100%;border-collapse:collapse;background:#fff}
.list th,.list td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:start;vertical-align:top}
.list thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);background:#faf9f7;position:sticky;top:0}
.list tbody tr:hover{background:#fbfaf8}.list tfoot td{font-weight:600;background:#faf9f7}
.list .sel{width:34px}.w20{width:12%}.w30{width:18%}.w40{width:26%}
.list td.num,.list th.num{text-align:end}
.badge{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:20px;background:#eee;color:#444;white-space:nowrap}
.b-green{background:#e3f4ea;color:var(--good)}.b-red{background:#fde6e6;color:var(--bad)}.b-amber{background:#fdf1dc;color:#9a6208}.b-blue{background:#e5eefc;color:var(--blue)}.b-violet{background:#efe8fb;color:var(--violet)}.b-grey{background:#efedea;color:#666}
.count{display:inline-block;background:#efedea;border-radius:10px;padding:0 7px;font-size:.78rem;font-weight:700;color:#555}.count.bad{background:var(--bad);color:#fff}
/* tabs and filters */
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:12px;flex-wrap:wrap}
.tabs.scroll{flex-wrap:nowrap;overflow-x:auto}
.tab{padding:8px 12px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap}
.tab.on{color:var(--ink);border-color:var(--brand)}.tab:hover{text-decoration:none;color:var(--ink)}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filters input,.filters select{width:auto}.filters input[type=search]{min-width:220px;flex:1;max-width:340px}
.filters .quick{display:flex;gap:10px;font-size:.87rem}
/* tiles and bars */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.tiles.small{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;color:var(--ink);display:block;border-inline-start:4px solid #d6d2cc}
a.tile:hover{text-decoration:none;border-color:var(--ink)}
.tile-v{font-size:1.5rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.tile-l{color:var(--muted);font-size:.85rem}.tile-s{font-size:.8rem;color:var(--muted)}
.tile.bad{border-inline-start-color:var(--bad)}.tile.bad .tile-v{color:var(--bad)}.tile.warn{border-inline-start-color:var(--warn)}.tile.good{border-inline-start-color:var(--good)}
.bar{height:8px;background:#efedea;border-radius:6px;overflow:hidden;min-width:60px;margin-top:6px}
.bar span{display:block;height:100%;background:var(--brand);border-radius:6px}.bar.ok span{background:var(--good)}.bar.plain span{background:var(--dark)}
.w0{width:0}.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w35{width:35%}.w40{width:40%}.w45{width:45%}.w50{width:50%}.w55{width:55%}.w60{width:60%}.w65{width:65%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}.w90{width:90%}.w95{width:95%}.w100{width:100%}
th.w20,th.w30,th.w40{width:auto}
/* my tasks */
.mysec{margin-bottom:18px}.mysec h2{display:flex;align-items:center;gap:8px}.mysec.bad h2{color:var(--bad)}.mysec.warn h2{color:var(--warn)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;color:var(--ink);display:flex;flex-direction:column;gap:4px}
.tcard:hover{border-color:var(--brand);text-decoration:none}.tcard.is-late{border-inline-start:4px solid var(--bad)}
.tcard-title{font-weight:700}.tcard-due{font-size:.87rem}
.empty{padding:24px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #d6d2cc;border-radius:var(--r)}.empty.big{padding:48px;font-size:1.1rem}
/* task page */
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}dl.facts dt{color:var(--muted);font-weight:600}dl.facts dd{margin:0}
dl.facts.big dd{font-size:1.1rem}
.links{display:flex;gap:10px;flex-wrap:wrap}
.links-list{padding-inline-start:18px;margin:0 0 8px;overflow-wrap:anywhere}
.submit-card{border:2px solid var(--brand)}.review-card form+form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.timeline{list-style:none;padding:0;margin:10px 0 0}.timeline li{padding:8px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.danger-zone{border-color:#f3c0c0}.danger-zone summary{cursor:pointer;color:var(--bad);font-weight:600}
.danger-form{margin-top:10px;display:flex;flex-direction:column;gap:8px;max-width:420px}
.typed-inline{display:flex;gap:4px}.typed-inline input{width:80px;padding:4px 6px}
/* bulk bar + people picker */
.bulkbar{position:sticky;top:56px;z-index:5;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--dark);color:#fff;border-radius:var(--r);padding:8px 12px;margin-bottom:10px}
.bulkbar select,.bulkbar input{width:auto}.bulkbar [data-op]{display:none}.bulkbar [data-op].show{display:inline-flex;gap:6px;align-items:center}
.bulkbar .inline-label{color:#fff}.selcount{font-weight:700;min-width:90px}
.picker{position:relative;display:inline-block}.picker summary{cursor:pointer;background:#fff;color:var(--ink);border:1px solid #d6d2cc;border-radius:8px;padding:7px 12px;list-style:none}
.picker[open] .picker-list{position:absolute;z-index:30;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 12px;max-height:320px;overflow:auto;min-width:280px;box-shadow:0 8px 24px #0003}
.card .picker{display:block}.card .picker[open] .picker-list{position:static;box-shadow:none}
.picker-list label{padding:3px 0}
/* clients */
.kind-switch{display:flex;gap:12px;flex-wrap:wrap}
.kind-opt{flex-direction:row;align-items:center;gap:8px;border:2px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:400}
.kind-opt:has(input:checked){border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,#fff)}
.phone-msg{font-size:.87rem;margin-top:6px}.phone-msg.err{color:var(--bad)}.phone-msg.ok{color:var(--good)}.phone-msg.warn{color:var(--warn)}
.activity-form{background:#faf9f7;border-radius:10px;padding:12px;margin-bottom:12px}
/* packages */
.plines td{vertical-align:top}.plines select,.plines input{margin-bottom:4px}
.pl-total{font-weight:700;padding-top:14px}
.totals{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;margin:14px 0}.totals label{width:150px}
.totals dl{display:grid;grid-template-columns:auto auto;gap:2px 16px;margin:0;min-width:240px}.totals dd{margin:0;text-align:end;font-variant-numeric:tabular-nums}
.grid-plan th,.grid-plan td{min-width:92px}.grid-plan input.cell{width:76px;padding:4px 6px}.grid-plan input.hrs{margin-top:3px}
/* notifications */
.notes{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.notes li{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}.notes li.new{background:#fff7f4;font-weight:600}
/* calendar */
.cal{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-head div{padding:6px 8px;font-weight:700;font-size:.82rem;color:var(--muted);background:#faf9f7;border-bottom:1px solid var(--line)}
.cal-day{min-height:112px;border-inline-end:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 6px;display:flex;flex-direction:column;gap:2px}
.cal-day.out{background:#faf9f7;color:#aaa}.cal-day.is-today{background:color-mix(in srgb,var(--brand) 7%,#fff)}
.cal-n{font-weight:700;font-size:.85rem}
.cal-item{font-size:.75rem;background:#e5eefc;color:#173f80;border-radius:5px;padding:1px 5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cal-item.s-approved{background:#e3f4ea;color:#16603e}.cal-item.s-unassigned{background:#efedea;color:#555}.cal-item.s-submitted{background:#fdf1dc;color:#7a4e06}.cal-item.s-changes{background:#fde6e6;color:#8f1f1f}
.cal-more{font-size:.75rem;color:var(--muted)}
/* reports */
.cap td{text-align:center}.cap td:first-child,.cap td:nth-child(2){text-align:start}
.cap-low{background:#f3f2f0}.cap-ok{background:#e3f4ea}.cap-full{background:#fdf1dc}.cap-over{background:#fde0e0}
.cap-over a{color:var(--bad);font-weight:700}
.legend{display:flex;gap:8px;margin-bottom:10px;font-size:.85rem}.legend span{padding:2px 10px;border-radius:6px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.chip{background:#fff;border:1px solid var(--line);border-radius:20px;padding:3px 12px;font-size:.87rem}
details.msg{margin:10px 0}details.msg summary{cursor:pointer;font-weight:600}
.perm-matrix th{min-width:150px}.perm-matrix .grp th{background:#faf9f7;text-transform:none;font-size:.9rem;color:var(--ink)}
.role-name{margin-bottom:4px}
.perm-box{margin-top:12px}.perm-box summary{cursor:pointer;font-weight:600}
.perm-table td,.perm-table th{padding:4px 8px}
.logo-preview{background:#fff;border:1px dashed #ccc;border-radius:10px;padding:12px;min-height:80px;display:flex;align-items:center;justify-content:center}.logo-preview img{max-height:70px;max-width:100%}
code{background:#f3f2f0;border-radius:5px;padding:1px 6px;font-size:.88em;overflow-wrap:anywhere}code.big{font-size:1.1rem;padding:4px 10px}
code.clip{display:block;max-width:600px;white-space:pre-wrap;font-size:.78rem}
/* login */
.login-wrap{min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.login{width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px}
.login-brand{display:flex;justify-content:center;padding:8px}.login-brand img{max-height:80px;max-width:240px}
/* printable report */
.report{max-width:900px;margin:0 auto;background:#fff;padding:28px;border-radius:var(--r)}
.report-head{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:4px solid var(--brand);padding-bottom:12px;margin-bottom:16px}
.rlogo{max-height:60px}
.rtable{width:100%;border-collapse:collapse;margin-bottom:20px}.rtable th,.rtable td{border:1px solid #333;padding:7px 10px;text-align:center}
.rtable thead tr:first-child th{background:#dfe9f5}.rtable thead tr:nth-child(2) th{background:#fbe5d6}.rtable td:first-child{text-align:start;background:#dfe9f5;font-weight:600}
/* mobile */
@media (max-width:900px){
  .side{transform:translateX(-100%);transition:transform .2s}[dir=rtl] .side{transform:translateX(100%)}
  .side.open{transform:none;box-shadow:0 0 40px #0005}
  body.has-side main,.top{margin-inline-start:0}.menu-btn{display:block}
  .grid2,.grid3,.grid4,.task-grid{grid-template-columns:1fr}.span2,.span3{grid-column:auto}
  main{padding:12px}.cal-day{min-height:80px}.cal-item{font-size:.68rem}
  .bulkbar{top:52px}
}
@media print{
  .side,.top,.no-print,.actions,.filters,.bulkbar,.tabs,.pager,form button{display:none!important}
  body.has-side main{margin:0}body{background:#fff}.card{border:0;padding:0}
  .report{padding:0}
}
