@font-face{font-family:Cairo;src:url('/fonts/Cairo[slnt,wght].ttf') format('truetype');font-weight:200 1000;font-display:swap}
@font-face{font-family:Brand;src:url('/fonts/Rakkas-Regular.ttf') format('truetype');font-display:swap}
:root{--bg:#F4F0DE;--card:#FFFDF6;--ink:#2E241D;--ink2:#6B5A4C;--muted:#9A8A7B;--line:#E6DEC6;--line2:#D9CFB2;--green:#07583B;--green2:#0B6E4A;--greenSoft:#E3EEE6;--clay:#9B5435;--claySoft:#F5E7DD;--red:#B3261E;--redSoft:#FBE6E3;--amber:#A86A00;--amberSoft:#FFF1D6;--blue:#1E5B8A;--blueSoft:#E2EEF8;--r:14px;--sh:0 1px 2px rgba(46,36,29,.06),0 8px 24px rgba(46,36,29,.06);--side:260px}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font-family:Cairo,system-ui,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}a{color:inherit}
:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:6px}
h1,h2,h3,h4,p{margin:0}
.booting{display:grid;place-items:center;height:100vh}.boot-logo img{animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{50%{opacity:.5}}
/* Login */
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login-art{background:var(--green);color:#F1EDD5;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-art:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(241,237,213,.18);transform:rotate(45deg);inset:auto -160px -220px auto}
.login-art h1{font-family:Brand,serif;font-weight:400;font-size:64px;line-height:1.3}.login-art p{max-width:380px;opacity:.85}
.login-form{display:grid;place-items:center;padding:32px}.login-card{width:min(400px,100%)}
.login-card img{width:120px;margin-bottom:18px}.login-card h2{font-size:26px;font-weight:800;margin-bottom:6px}.login-card>p{color:var(--ink2);margin-bottom:24px}
@media(max-width:820px){.login{grid-template-columns:1fr}.login-art{display:none}}
/* Layout */
.shell{display:grid;grid-template-columns:var(--side) 1fr;min-height:100vh}
.side{background:#073F2C;color:#E9F1EC;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:18px 14px;overflow:auto}
.side-brand{display:flex;align-items:center;gap:12px;padding:6px 8px 18px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:12px}
.side-brand img{width:46px;height:46px;object-fit:contain;background:#F1EDD5;border-radius:12px;padding:4px}.side-brand b{display:block;font-size:16px}.side-brand small{opacity:.7;font-size:12px}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:600;font-size:14.5px;color:rgba(233,241,236,.82);margin-bottom:2px;position:relative}
.nav a svg{width:20px;height:20px;flex:none;opacity:.9}.nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.nav a.on{background:#F1EDD5;color:var(--green)}.nav .badge{margin-inline-start:auto}
.nav-sep{font-size:11px;letter-spacing:.5px;opacity:.5;margin:14px 12px 6px}
.side-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:13px}
.side-foot button{color:#F1EDD5;opacity:.85;text-decoration:underline;text-underline-offset:4px}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;background:rgba(244,240,222,.9);backdrop-filter:blur(10px);display:flex;align-items:center;gap:14px;padding:14px 28px;border-bottom:1px solid var(--line)}
.top h1{font-size:22px;font-weight:800;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.content{padding:24px 28px 110px;max-width:1280px;width:100%}
.open-toggle{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 14px;font-weight:700;font-size:13px}
.open-toggle .dot{width:10px;height:10px;border-radius:50%;background:var(--red)}.open-toggle.on .dot{background:#18A058;box-shadow:0 0 0 4px rgba(24,160,88,.18)}
.tabbar{display:none}
@media(max-width:900px){
 .shell{grid-template-columns:1fr}.side{display:none}
 .top{padding:12px 16px}.top h1{font-size:19px}.content{padding:16px 14px 120px}
 .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset:auto 0 0 0;background:var(--card);border-top:1px solid var(--line);z-index:30;padding-bottom:env(safe-area-inset-bottom)}
 .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 2px 8px;font-size:11px;font-weight:700;color:var(--muted);text-decoration:none;position:relative}
 .tabbar a svg{width:23px;height:23px}.tabbar a.on{color:var(--green)}.tabbar .badge{position:absolute;top:4px;inset-inline-start:calc(50% + 6px)}
 .open-toggle span.txt{display:none}
}
.kitchen .shell{grid-template-columns:1fr}.kitchen .side,.kitchen .tabbar{display:none}.kitchen .content{max-width:none}
/* Components */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:20px}
.card+.card{margin-top:16px}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-h h2{font-size:17px;font-weight:800}.card-h p{color:var(--ink2);font-size:13px}
.grid{display:grid;gap:16px}.grid>*,.card,.main,.content{min-width:0}.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))}
@media(max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.g2,.g3{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{padding:16px}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:2px;min-width:0}
.stat small{color:var(--ink2);font-weight:700;font-size:12.5px}.stat b{font-size:28px;font-weight:800;line-height:1.3;color:var(--ink)}.stat span{font-size:12px;color:var(--muted)}
.stat.green{background:var(--green);border-color:var(--green)}.stat.green small,.stat.green span{color:#CFE3D7}.stat.green b{color:#fff}
@media(max-width:700px){.stat b{font-size:22px}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green);color:#fff;border-radius:10px;padding:10px 18px;font-weight:700;min-height:44px;white-space:nowrap;text-decoration:none;border:1px solid var(--green);transition:filter .15s,transform .05s}
.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line2)}.btn.ghost:hover{background:rgba(0,0,0,.03)}
.btn.soft{background:var(--greenSoft);color:var(--green);border-color:transparent}
.btn.danger{background:var(--red);border-color:var(--red)}.btn.danger-ghost{background:transparent;color:var(--red);border-color:#E8B9B4}
.btn.clay{background:var(--clay);border-color:var(--clay)}
.btn.sm{min-height:36px;padding:6px 12px;font-size:13px;border-radius:8px}.btn.lg{min-height:56px;font-size:17px;padding:12px 22px}
.btn.block{width:100%}.btn svg{width:18px;height:18px}
.btn.busy{opacity:.6;pointer-events:none}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;font-size:18px;color:var(--ink2)}.icon-btn:hover{background:rgba(0,0,0,.05)}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row-end{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:16px}.spacer{flex:1}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--red);color:#fff;font-size:12px;font-weight:800}
.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#EEE8D6;color:var(--ink2);white-space:nowrap}
.pill.green{background:var(--greenSoft);color:var(--green)}.pill.red{background:var(--redSoft);color:var(--red)}.pill.amber{background:var(--amberSoft);color:var(--amber)}.pill.blue{background:var(--blueSoft);color:var(--blue)}.pill.clay{background:var(--claySoft);color:var(--clay)}
.muted{color:var(--muted)}.small{font-size:13px}.ink2{color:var(--ink2)}
/* Forms */
.fld{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0}.fld>span{font-size:13px;font-weight:700;color:var(--ink2)}.fld small{font-size:12px;color:var(--muted)}
.fld input,.fld select,.fld textarea,.input{width:100%;background:#fff;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;min-height:44px;font-size:15px}
.fld textarea{min-height:84px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus,.input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(7,88,59,.15)}
.input-group{display:flex;align-items:stretch}.input-group input{border-start-end-radius:0;border-end-end-radius:0}.input-group>span{display:grid;place-items:center;padding:0 12px;background:#F2ECDA;border:1px solid var(--line2);border-inline-start:0;border-radius:0 10px 10px 0;font-weight:700;color:var(--ink2);font-size:13px}
html[dir=rtl] .input-group>span{border-radius:10px 0 0 10px}
.switch{display:flex;align-items:center;gap:12px;cursor:pointer;padding:8px 0}.switch input{position:absolute;opacity:0;pointer-events:none}
.switch .track{width:46px;height:26px;border-radius:999px;background:#D7CEB6;position:relative;flex:none;transition:.2s}.switch .track i{position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.2s}
.switch input:checked+.track{background:var(--green)}.switch input:checked+.track i{inset-inline-start:23px}
.switch input:focus-visible+.track{outline:3px solid var(--green);outline-offset:2px}
.switch-text b{display:block;font-size:14.5px}.switch-text small{display:block;color:var(--muted);font-size:12.5px;font-weight:400}
.seg{display:inline-flex;background:#ECE5D0;border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}.seg button,.seg label{padding:7px 14px;border-radius:8px;font-weight:700;font-size:13px;color:var(--ink2);cursor:pointer}.seg button.on,.seg label:has(input:checked){background:#fff;color:var(--green);box-shadow:0 1px 3px rgba(0,0,0,.08)}.seg input{display:none}
.search{position:relative}.search input{padding-inline-start:38px}.search:before{content:"⌕";position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-55%);font-size:20px;color:var(--muted)}
/* Tables / lists */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
table.t{width:100%;border-collapse:collapse;font-size:14px}.t th{background:#F7F2E2;text-align:start;font-size:12.5px;color:var(--ink2);font-weight:800;padding:10px 12px;white-space:nowrap;position:sticky;top:0}.t td{padding:11px 12px;border-top:1px solid var(--line);vertical-align:middle}.t tr.click{cursor:pointer}.t tr.click:hover td{background:#FBF8EE}
.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.list-row:first-child{border-top:0}
/* Drawer + confirm */
dialog{color:var(--ink)}
.drawer{position:fixed;inset:0 auto 0 0;margin:0;height:100dvh;max-height:100dvh;width:min(540px,100vw);max-width:100vw;border:0;padding:0;background:var(--bg);box-shadow:0 0 60px rgba(0,0,0,.2)}
html[dir=rtl] .drawer{inset:0 0 0 auto}
.drawer.wide{width:min(760px,100vw)}
.drawer::backdrop,.confirm::backdrop{background:rgba(20,30,24,.45)}
.drawer[open]{animation:slidein .22s ease}@keyframes slidein{from{transform:translateX(-30px);opacity:0}}
html[dir=rtl] .drawer[open]{animation-name:slidein-rtl}@keyframes slidein-rtl{from{transform:translateX(30px);opacity:0}}
.drawer-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;background:var(--card);border-bottom:1px solid var(--line)}.drawer-head h2{font-size:18px;font-weight:800}
.drawer-body{padding:20px}
@media(max-width:700px){.drawer,.drawer.wide{inset:auto 0 0 0!important;width:100vw;height:auto;max-height:94dvh;border-radius:18px 18px 0 0}.drawer[open]{animation:sheetup .24s ease}@keyframes sheetup{from{transform:translateY(40px);opacity:0}}}
.confirm{border:0;border-radius:16px;padding:22px;width:min(420px,92vw);box-shadow:var(--sh)}.confirm p{font-size:16px;font-weight:600}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:12px;font-weight:700;font-size:14px;opacity:0;pointer-events:none;transition:.2s;z-index:1000;max-width:92vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}.toast.err{background:var(--red)}
@media(max-width:900px){.toast{bottom:90px}}
/* Empty */
.empty{text-align:center;padding:40px 16px}.empty-icon{font-size:42px;margin-bottom:6px}.empty h3{font-size:18px;font-weight:800}.empty p{color:var(--ink2);max-width:420px;margin:6px auto 16px}
/* Orders */
.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.lane{background:#EDE7D3;border-radius:16px;padding:10px;min-height:120px}.lane h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;padding:4px 6px 10px}
.ocard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;box-shadow:var(--sh);cursor:pointer;position:relative}
.ocard.new{border:2px solid var(--red);animation:glow 1.2s infinite}@keyframes glow{50%{box-shadow:0 0 0 6px rgba(179,38,30,.15)}}
.ocard.late{background:var(--redSoft)}
.ocard .code{font-weight:900;font-size:18px;direction:ltr;display:inline-block}.ocard .meta{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.ocard ul{list-style:none;padding:0;margin:6px 0 0;font-size:13.5px}.ocard li b{color:var(--green)}
.ocard .acts{display:flex;gap:6px;margin-top:10px}.ocard .acts .btn{flex:1}
@media(max-width:1100px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.board{display:block}.lane{margin-bottom:12px}}
.kitchen .ocard .code{font-size:24px}.kitchen .ocard ul{font-size:17px}.kitchen .ocard .acts .btn{min-height:56px;font-size:17px}
.copy-box{white-space:pre-wrap;background:#fff;border:1px dashed var(--line2);border-radius:10px;padding:12px;font-size:14px;line-height:1.8}
.timeline{list-style:none;padding:0;margin:0}.timeline li{display:flex;gap:10px;font-size:13px;padding:4px 0}.timeline li b{min-width:92px;color:var(--ink2)}
/* Menu manager */
.cat-block{margin-bottom:18px}.cat-head{display:flex;align-items:center;gap:10px;padding:10px 4px}.cat-head h3{font-size:17px;font-weight:800}
.item-row{display:grid;grid-template-columns:28px 64px 1fr auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.item-row img,.item-row .noimg{width:64px;height:64px;border-radius:10px;object-fit:cover;background:#EDE6D2;display:grid;place-items:center;color:var(--muted);font-size:22px}
.item-row .nm{font-weight:800;line-height:1.4}.item-row .sub{font-size:12.5px;color:var(--muted)}
.item-row.dragging{opacity:.5}.item-row.hidden-item{opacity:.6}
.handle{cursor:grab;color:var(--muted);font-size:18px;user-select:none;touch-action:none;text-align:center}
.price-input{width:96px!important;min-height:38px!important;text-align:center;font-weight:800}
.status-seg button{padding:6px 10px;font-size:12px}
@media(max-width:700px){.item-row{grid-template-columns:22px 52px 1fr;}.item-row img,.item-row .noimg{width:52px;height:52px}.item-row .ctrls{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center}}
.img-drop{border:2px dashed var(--line2);border-radius:12px;padding:12px;display:flex;align-items:center;gap:14px;cursor:pointer;background:#fff}.img-drop img{width:96px;height:96px;object-fit:cover;border-radius:10px}.img-drop:hover{border-color:var(--green)}
.addon-row{display:grid;grid-template-columns:1fr 1fr 100px 40px;gap:8px;margin-bottom:8px}@media(max-width:700px){.addon-row{grid-template-columns:1fr 90px 40px}.addon-row .en{display:none}}
/* Charts */
.chart{position:relative;overflow-x:auto;padding-top:8px}.chart svg{width:100%;height:var(--h);display:block}
.chart .bar path,.chart .bar rect:not(.hit){fill:#8FB8A2}.chart .bar.hl path,.chart .bar.hl rect:not(.hit){fill:var(--green)}.chart .bar:hover path,.chart .bar:focus path,.chart .bar:hover rect:not(.hit){fill:var(--green2)}
.chart .base{stroke:var(--line2);stroke-width:1}.chart .tick{font-size:10px;fill:var(--muted);font-family:Cairo}.chart .peak{font-size:11px;font-weight:800;fill:var(--ink);font-family:Cairo}
.chart .bar{outline:none;cursor:default}
.chart .tip{position:absolute;top:0;background:var(--ink);color:#fff;font-size:12.5px;font-weight:700;padding:5px 10px;border-radius:8px;pointer-events:none;white-space:nowrap;z-index:2}
.insight{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:12px;background:#fff;border:1px solid var(--line)}.insight .ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--greenSoft);color:var(--green);font-size:20px;flex:none}.insight b{display:block;font-size:17px;line-height:1.4}.insight small{color:var(--ink2);font-size:12.5px}
.rank{list-style:none;padding:0;margin:0}.rank li{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:14px}.rank li:first-child{border-top:0}.rank .meter{height:6px;border-radius:4px;background:var(--greenSoft);margin-top:4px;overflow:hidden}.rank .meter i{display:block;height:100%;background:var(--green);border-radius:4px}
/* Alert overlay */
#alert-layer{position:fixed;inset:0;z-index:900;background:rgba(10,20,15,.6);display:grid;place-items:center;padding:16px}
.alert-card{background:var(--card);border-radius:22px;width:min(460px,100%);padding:26px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.35);animation:pop .25s ease}@keyframes pop{from{transform:scale(.9);opacity:0}}
.alert-card .ring{width:84px;height:84px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;font-size:40px;background:var(--greenSoft);animation:shake .6s infinite}.alert-card.esc .ring{background:var(--redSoft)}
@keyframes shake{25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
.alert-card h2{font-size:24px;font-weight:900}.alert-card .codes{font-size:30px;font-weight:900;direction:ltr;margin:8px 0;color:var(--green)}.alert-card.esc .codes{color:var(--red)}
.alert-card .btn{margin-top:10px}
.sound-hint{background:var(--amberSoft);color:var(--amber);border:1px solid #F0D9A8;border-radius:12px;padding:10px 14px;font-weight:700;font-size:13px;display:flex;align-items:center;gap:10px;margin-bottom:14px}
/* QR */
.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.qr-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}.qr-card .qr svg,.qr-card .qr img{width:150px;height:150px;margin:6px auto}.qr-card h3{font-weight:900;font-size:18px}
.guide{counter-reset:s;list-style:none;padding:0;margin:0}.guide li{position:relative;padding:0 44px 14px 0;font-size:14px}.guide li:before{counter-increment:s;content:counter(s);position:absolute;inset-inline-start:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px}
html[dir=rtl] .guide li{padding:0 44px 14px 0}
.map{height:340px;border-radius:12px;border:1px solid var(--line);overflow:hidden;z-index:0}
.content-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.content-row:first-of-type{border-top:0}.content-row .lbl{grid-column:1/-1;font-weight:800;font-size:13.5px;color:var(--ink2)}
@media(max-width:700px){.content-row{grid-template-columns:1fr}}
.hide-sm{}@media(max-width:700px){.hide-sm{display:none!important}}
.only-sm{display:none}@media(max-width:700px){.only-sm{display:initial}}
@media print{body{background:#fff}.shell .side,.top,.tabbar,.no-print{display:none!important}.content{padding:0}.qr-grid{grid-template-columns:repeat(3,1fr)}.qr-card{break-inside:avoid;border:1px solid #999}}
.insight>div{min-width:0;overflow-wrap:anywhere}.cat-head{flex-wrap:wrap}.item-row>*{min-width:0}.list-row>*{min-width:0;overflow-wrap:anywhere}
