/* التخطيط: شريط علوي ثابت، شبكة مربعات القطع على اليمين، سلة الفاتورة على اليسار، وتتكدس في الجوال */
:root{
  --bg:#eef6fc; --surface:#ffffff; --ink:#14224d; --muted:#566486; --line:#cfe2f2;
  --water:#1b2b5a; --water-soft:#dcecf9; --on-water:#ffffff;
  --accent:#1f7fc4; --accent-soft:#e0f0fb; --on-accent:#ffffff; --sky:#8cc8ee; --danger:#b3382c;
  --rush:#fde1b8; --on-rush:#6b3300; --hot:#cdeee8; --on-hot:#0b4f48; --font-body:"IBM Plex Sans Arabic",system-ui,sans-serif; --font-display:"Reem Kufi","IBM Plex Sans Arabic",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c1530; --surface:#14203f; --ink:#e6eefb; --muted:#98a8c8; --line:#263558;
  --water:#8cc8ee; --water-soft:#1d3350; --on-water:#0b1a3a;
  --accent:#8cc8ee; --accent-soft:#1d3350; --on-accent:#0b1a3a; --sky:#8cc8ee; --danger:#ef7d70; --rush:#5a3708; --on-rush:#ffd9a0; --hot:#14433f; --on-hot:#a6ebe0; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0c1530; --surface:#14203f; --ink:#e6eefb; --muted:#98a8c8; --line:#263558;
  --water:#8cc8ee; --water-soft:#1d3350; --on-water:#0b1a3a;
  --accent:#8cc8ee; --accent-soft:#1d3350; --on-accent:#0b1a3a; --sky:#8cc8ee; --danger:#ef7d70; --rush:#5a3708; --on-rush:#ffd9a0; --hot:#14433f; --on-hot:#a6ebe0; color-scheme:dark}
*{box-sizing:border-box}
body{direction:rtl;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;
  padding-block:0 24px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-block:14px}
.brand{display:flex;align-items:center;gap:10px;margin-inline-end:auto;min-width:0}
.brand img{width:52px;height:52px;flex:none}
.brand b{display:block;font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--water);line-height:1.2}
.brand small{display:block;font-size:.74rem;color:var(--muted);line-height:1.35}
.brand .ph{font-weight:600;color:var(--accent)}
nav{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:4px}
nav button{border:0;background:none;padding:8px 16px;border-radius:7px;font-weight:600;color:var(--muted)}
nav button[aria-selected="true"]{background:var(--water);color:var(--on-water)}
.user{font-size:.85rem;color:var(--muted)}
.user button{border:0;background:none;color:var(--water);font-weight:600;padding:4px}
.sample{background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:600;margin-bottom:12px}
main{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:16px;align-items:start}
@media(max-width:820px){main{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px}
h2{font-size:1rem;margin:0 0 12px;font-weight:700}
.search{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);margin-bottom:12px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}
.tile{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--bg);text-align:center}
.tile>b{font-size:.95rem;line-height:1.3;min-height:2.5em;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere}
.halves{display:grid;grid-template-columns:1fr 1fr;gap:6px}.halves.one{grid-template-columns:1fr}
.half{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:56px;padding:6px 4px;border:1px solid transparent;border-radius:8px;font-weight:600}
.half small{font-size:.74rem;opacity:.9}.half span{font-size:.95rem;font-weight:700}
.half:active{transform:scale(.96)}
.half.n{background:var(--accent-soft);color:var(--water)}
.half.r{background:var(--rush);color:var(--on-rush)}
.half.h{background:var(--hot);color:var(--on-hot)}
.half:hover{border-color:currentColor}
.half.unset{background:transparent;border:1px dashed var(--line);color:var(--muted);cursor:not-allowed}.half.unset:hover{border-color:var(--line)}.half.unset span{font-size:.7rem;font-weight:600;white-space:nowrap}.half.unset{padding-inline:2px}.half.unset:active{transform:none}
.half i{position:absolute;top:-8px;inset-inline-start:-4px;box-shadow:0 0 0 2px var(--surface);min-width:20px;height:20px;border-radius:10px;background:var(--water);color:var(--on-water);
  font-style:normal;font-size:.72rem;font-weight:700;display:grid;place-items:center;padding:0 5px}
.cattabs{display:flex;gap:6px;margin-bottom:12px}
.cattabs button{flex:1;min-height:42px;border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:10px;font-weight:700}
.cattabs button[aria-selected="true"]{background:var(--water);border-color:var(--water);color:var(--on-water)}
.cath,.hotelh{grid-column:1/-1;margin:6px 0 0;font-size:.9rem;color:var(--water)}
#hotelsec{margin-top:18px;padding-top:14px;border-top:2px dashed var(--line)}
#hotelsec .hotelh{margin:0 0 10px;font-size:1rem}
.tag{display:inline-block;font-size:.7rem;font-weight:700;padding:1px 8px;border-radius:999px;vertical-align:middle}
.tag.n{background:var(--accent-soft);color:var(--water)}.tag.r{background:var(--rush);color:var(--on-rush)}.tag.h{background:var(--hot);color:var(--on-hot)}
.tag.f{background:var(--water);color:var(--on-water)}
.line.free .sum{font-weight:700;color:var(--water)}
.qin{width:56px;text-align:center;padding:6px 2px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
tr.grp th{background:var(--accent-soft);color:var(--water);font-size:.85rem}
dialog select{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}
.cust{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
@media(max-width:420px){.cust{grid-template-columns:1fr}}
.cust label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted)}
.cust .wide{grid-column:1/-1}
.cust textarea{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);resize:vertical;font:inherit}
.cust input{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.line .name{font-weight:600}.line .unit{font-size:.78rem;color:var(--muted)}
.qty{display:flex;align-items:center;gap:2px}
.qty button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--bg);font-size:1.1rem;font-weight:700}
.qty output{min-width:28px;text-align:center;font-weight:700}
.sum{min-width:64px;text-align:end;font-weight:600}
.empty{padding:20px 0;text-align:center;color:var(--muted)}
.totals{border-top:2px solid var(--ink);margin-top:6px;padding-top:10px;display:grid;gap:6px}
.totals div{display:flex;justify-content:space-between}
.totals .grand{font-size:1.25rem;font-weight:700;color:var(--water);padding-top:6px;border-top:1px dashed var(--line)}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.btn{padding:12px;border-radius:9px;border:1px solid var(--water);background:var(--surface);color:var(--water);font-weight:700}
.btn.primary{background:var(--water);color:var(--on-water);grid-column:1/-1}
.invno{font-size:.78rem;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:8px}
table{width:100%;border-collapse:collapse}
th,td{padding:9px 6px;text-align:start;border-top:1px solid var(--line)}
th{font-size:.78rem;color:var(--muted);font-weight:600;border-top:0}
.scroll{overflow-x:auto}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px}
.stat{background:var(--bg);border-radius:10px;padding:12px}
.stat small{color:var(--muted);display:block;font-size:.78rem}.stat b{font-size:1.3rem}
.bars{display:flex;align-items:flex-end;gap:6px;height:120px;border-bottom:1px solid var(--line);padding-top:8px}
.bars div{flex:1;background:var(--water);border-radius:4px 4px 0 0;min-width:0}
.bars-l{display:flex;gap:6px;font-size:.7rem;color:var(--muted)}.bars-l span{flex:1;text-align:center}
.view[hidden]{display:none}
.row-edit{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.row-edit input{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);min-width:0;width:100%}
.del{border:1px solid var(--danger);color:var(--danger);background:none;border-radius:8px;padding:8px 10px;font-weight:600}
.add{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;margin-top:12px}
.add input{padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);min-width:0;width:100%}
.login{max-width:380px;margin:6vh auto 0;display:grid;gap:12px}
.hero{display:grid;justify-items:center;gap:4px;text-align:center;margin-bottom:8px}
.hero img{width:min(220px,60vw);height:auto}
.hero h1{font-family:var(--font-display);font-size:1.7rem;color:var(--water);margin:8px 0 0;line-height:1.2}
.hero .en{font-size:.95rem;color:var(--muted);letter-spacing:.04em}
.hero .phone{font-size:1.05rem;font-weight:600;color:var(--accent);letter-spacing:.03em}
.login label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}
.login input{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.err{color:var(--danger);font-size:.88rem;min-height:1.3em}
.ok{color:var(--water);font-weight:600}
.done{display:grid;gap:8px;margin-top:14px}.done a.btn,.done button.btn{display:block;text-align:center;text-decoration:none}
.row-edit{grid-template-columns:minmax(0,1fr) 90px auto auto}
.add{grid-template-columns:minmax(0,1fr) 90px auto}
.shop{display:grid;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.shop label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted)}
.shop input{padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.btn.small{padding:8px 12px}.btn.danger{border-color:var(--danger);color:var(--danger)}
.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.filters label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted)}
.filters input{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.void{color:var(--danger);text-decoration:line-through}

.hint{margin:-4px 0 12px;font-size:.82rem;color:var(--muted)}
table.items{min-width:560px}
table.items input{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);min-width:0;width:100%}
table.items:not(.users) td:nth-child(2),table.items:not(.users) td:nth-child(3){width:96px}table.items:not(.users) td:nth-child(4){width:84px;font-size:.8rem}table.items:not(.users) td:nth-child(5){width:96px;text-align:end}
table.items td{padding:6px}
.bad{color:var(--danger)}

.warn{background:var(--accent-soft);border:1px solid var(--danger);color:var(--ink);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:.9rem}
.warn b{color:var(--danger)}
.link{border:0;background:none;color:var(--water);font-weight:700;text-decoration:underline;padding:0}

.phead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.phead h2{margin:0}
dialog{width:min(92vw,360px);border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:18px;font-family:var(--font-body)}
dialog::backdrop{background:rgba(10,20,50,.5)}
dialog form{display:grid;gap:12px}
dialog h2{margin:0}
dialog label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted)}
dialog input{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.dact{display:flex;gap:8px;justify-content:flex-start}
.btn.fill{background:var(--water);color:var(--on-water)}

table.items.users{min-width:560px}
table.items.users td:nth-child(2),table.items.users td:nth-child(3),table.items.users td:nth-child(4){width:auto;font-size:.85rem}
table.items.users td.uact{width:auto;white-space:nowrap}
table.items.users select,.shop select{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
tr.off td{opacity:.55}
[hidden]{display:none!important}
