@import url('https://fonts.googleapis.com/css2?family=Noto+Nastaliq+Urdu&display=swap');
:root{--pri:#1f4e8c;--pri2:#163a69;--bg:#f3f5f9;--line:#dfe3eb;--dan:#c0392b;--ok:#1e8449}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:#1c2430;font-size:15px}
a{color:var(--pri)}
.ur{display:block;font-family:'Jameel Noori Nastaleeq','Noto Nastaliq Urdu',serif;font-size:.78em;font-weight:normal;color:#5b6575;direction:rtl;text-align:left;line-height:1.9}
.topbar{display:flex;align-items:center;gap:10px;background:var(--pri);color:#fff;padding:8px 14px;position:sticky;top:0;z-index:10}
.topbar .grow{flex:1}.topbar .btn{background:#fff;color:var(--pri)}
.burger{display:none;background:none;border:0;color:#fff;font-size:22px}
.layout{display:flex;min-height:calc(100vh - 50px)}
.side{width:210px;background:var(--pri2);padding:8px 0;flex-shrink:0}
.side a{display:block;color:#fff;text-decoration:none;padding:7px 16px;border-left:3px solid transparent}
.side a .ur{color:#b9c8e0;font-size:.72em;line-height:1.6}
.side a.on,.side a:hover{background:rgba(255,255,255,.12);border-left-color:#ffd166}
main{flex:1;padding:16px;min-width:0}
main.solo{max-width:980px;margin:0 auto}
.ptitle{margin:6px 0 12px;font-size:1.4em}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px}
.tile{text-decoration:none;color:inherit}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:14px}
.tw{overflow-x:auto;padding:0}
table{border-collapse:collapse;width:100%}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#eef2f8;font-size:.85em;white-space:nowrap}
tr.tot td{background:#f6f8fc;font-weight:600}
.nowrap{white-space:nowrap}
.btn{display:inline-block;border:1px solid #b8c1d1;background:#fff;color:#1c2430;border-radius:7px;padding:7px 13px;cursor:pointer;text-decoration:none;font-size:.95em}
.btn.pri{background:var(--pri);border-color:var(--pri);color:#fff}
.btn.dan{background:#fff;border-color:var(--dan);color:var(--dan)}
.btn.sm{padding:3px 9px;font-size:.85em}
.inl{display:inline-block;margin:0}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #b8c1d1;border-radius:7px;max-width:100%}
.form label{display:block;margin-bottom:10px;font-weight:600;font-size:.9em}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:4px;font-weight:normal}
.form{max-width:640px}
.form .chk{font-weight:normal}.form .chk input{display:inline;width:auto}
.inlform{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.flash{background:#e6f4ea;border:1px solid #b7dfc2;color:#14532d;padding:9px 12px;border-radius:8px;margin-bottom:12px}
.flash.err{background:#fdecea;border-color:#f3b8b2;color:#7f1d1d}
.muted{color:#7a8496}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;text-decoration:none;color:inherit;display:block}
.stat span{display:block;font-size:.8em;color:#5b6575}.stat b{font-size:1.35em}
.hero{background:linear-gradient(135deg,#163a69,#2d6cb5);color:#fff;border-radius:14px;padding:34px 20px;text-align:center;margin-bottom:16px}
.hero h1{margin:0 0 6px}.hero .btn{margin:4px}
.price{color:var(--ok);font-weight:700}
.chip{display:inline-block;background:#eef2f8;border-radius:20px;padding:3px 10px;margin:2px;font-size:.85em}
.hp{position:absolute;left:-9999px}
.center{text-align:center}
.login{max-width:380px;margin:40px auto}
.mon{min-width:140px;text-align:center;display:inline-block}
table.cal td{height:96px;width:14.28%;border:1px solid var(--line);padding:3px;font-size:.78em;vertical-align:top}
table.cal td.empty{background:#f7f8fb}table.cal td.today{background:#fff8e1}
table.cal .dn{font-weight:700;text-decoration:none;display:block;margin-bottom:2px}
.ev{display:block;border-radius:5px;padding:2px 5px;margin-bottom:2px;text-decoration:none;color:#fff;font-size:.9em;background:#777}
.s-inquiry{background:#8e44ad}.s-tentative{background:#e67e22}.s-confirmed{background:#1e8449}.s-completed{background:#2c3e50}.s-cancelled{background:#999}
span.ev{display:inline-block}
.task{padding:6px 0;border-bottom:1px solid var(--line)}.task.done span{text-decoration:line-through;color:#8a93a3}
.sig{text-align:center;margin-top:26px;padding-top:10px;border-top:1px solid var(--line)}
.sig .l1{font-size:.95em;white-space:nowrap}.sig .l2{font-size:1.1em;white-space:nowrap}
.print-head{display:none}
/* invoice */
.inv-head{text-align:center;border-bottom:2px solid #000;margin-bottom:10px;padding-bottom:6px}
.inv-head h2{margin:0}.inv-head h3{margin:6px 0 0}
table.bt{margin-bottom:12px;border:1px solid #444}table.bt td,table.bt th{border:1px solid #444;padding:5px 8px}
table.bt .ur{text-align:left}
.signs{display:flex;justify-content:space-between;margin-top:50px}.signs span{border-top:1px solid #000;padding-top:4px;min-width:150px;text-align:center}
@media(max-width:800px){.burger{display:block}.side{display:none;position:fixed;top:46px;bottom:0;left:0;z-index:20;overflow:auto}body.nav-open .side{display:block}main{padding:10px}.who{display:none}table.cal td{height:70px}}
@media print{.no-print,.topbar,.side{display:none!important}body{background:#fff}.layout{display:block}main{padding:0}.card{border:0;padding:0}.print-head{display:block;font-size:1.1em;margin-bottom:8px}table,th,td{border:1px solid #777}.sig{page-break-inside:avoid}}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 12px;margin-bottom:12px}
.checks .chk{font-weight:normal;margin:2px 0}.checks .chk input{display:inline;width:auto;margin-right:6px}
.netb{background:#c0392b;color:#fff;text-align:center;padding:6px;font-size:.9em;position:sticky;top:0;z-index:30}
.slogo{height:22px;width:22px;vertical-align:middle}
.sig .l1{font-size:.85em;white-space:nowrap;overflow:hidden}
main{position:relative}
.layout main::before{content:"";position:fixed;inset:0;background:url(../assets/logo.svg) center/320px no-repeat;opacity:.03;pointer-events:none;z-index:0}
.layout main>*{position:relative;z-index:1}
@media(max-width:800px){.sig .l1{font-size:.62em}}
.inv-head .ur{text-align:center}
.thumb{max-height:54px;max-width:90px;border-radius:6px;display:block;margin:4px 0}
/* hotel */
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.room{background:#fff;border:1px solid var(--line);border-top:5px solid #aaa;border-radius:10px;padding:10px;min-height:130px}
.room .rn{font-size:1.5em;font-weight:700}.room .rt{font-size:.8em;color:#5b6575}.room .rsb{font-size:.8em;font-weight:600;margin:3px 0}
.room .rg{font-size:.85em;margin:4px 0}.room .ra{margin-top:6px}.room .ra .btn{margin:1px 0}
.rs-available{border-top-color:#1e8449}.rs-occupied{border-top-color:#c0392b}.rs-cleaning{border-top-color:#e6a100}.rs-maintenance{border-top-color:#777;background:#f2f2f2}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:800px){.cols{grid-template-columns:1fr}}
table.chart th,table.chart td{padding:0;text-align:center;min-width:46px;font-size:.78em}
table.chart th{padding:4px}table.chart th.today{background:#ffe9a8}
table.chart td:first-child{padding:4px 8px;text-align:left;min-width:80px}
table.chart td.occ a,table.chart td.free a{display:block;padding:9px 2px;text-decoration:none;color:#fff;min-height:34px}
table.chart td.free a:hover{background:#d8e8ff}
table.chart td.s-reserved{background:#e67e22}table.chart td.s-checked_in{background:#c0392b}table.chart td.s-checked_out{background:#7f8c8d}
.chip.s-reserved{background:#e67e22;color:#fff}.chip.s-checked_in{background:#c0392b;color:#fff}.chip.s-checked_out{background:#7f8c8d;color:#fff}
.chip.st-inquiry{background:#8e44ad;color:#fff}.chip.st-reserved{background:#e67e22;color:#fff}.chip.st-checked_in{background:#c0392b;color:#fff}.chip.st-checked_out{background:#7f8c8d;color:#fff}.chip.st-cancelled{background:#999;color:#fff}
.chip.st-new{background:#c0392b;color:#fff}.chip.st-preparing{background:#e67e22;color:#fff}.chip.st-ready{background:#2980b9;color:#fff}.chip.st-served{background:#16a085;color:#fff}.chip.st-completed{background:#1e8449;color:#fff}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.toast{position:fixed;right:14px;bottom:14px;background:#c0392b;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.3);z-index:99;text-decoration:none}
.badge{background:#c0392b;color:#fff;border-radius:10px;padding:0 7px;font-size:.8em;margin-left:4px}
.pos{display:grid;grid-template-columns:1fr 340px;gap:14px;align-items:start}@media(max-width:900px){.pos{grid-template-columns:1fr}}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.tab{border:1px solid #b8c1d1;background:#fff;border-radius:20px;padding:5px 14px;cursor:pointer;font:inherit}.tab.on{background:var(--pri);color:#fff;border-color:var(--pri)}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.itm{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font:inherit;text-align:center;min-height:96px}
.itm:hover{border-color:var(--pri);box-shadow:0 2px 8px rgba(0,0,0,.1)}.itm .ii{font-size:1.6em}.itm small{color:var(--ok);font-weight:700}.itm[hidden]{display:none}
.pos-cart{position:sticky;top:60px}.cl{display:flex;justify-content:space-between;gap:6px;padding:5px 0;border-bottom:1px dashed var(--line);align-items:center}
.cl .qb button{width:24px;height:24px;border-radius:50%;border:1px solid #b8c1d1;background:#fff;cursor:pointer}
.ctot{margin:8px 0;font-size:1.05em}.cartlines{margin:8px 0;max-height:300px;overflow:auto}
[hidden]{display:none!important}
.pos-cart{max-width:none}.pos-cart .t-cust label{display:block}
.sheet th{background:none!important}

.side a{display:flex;align-items:center;gap:10px}.side a .ni{font-style:normal;font-size:1.25em;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.side a.on .ni,.side a:hover .ni{background:#ffd166}.side a span{line-height:1.25}

/* landscape forms (not the POS cart) */
form.card.form:not(.pos-cart){max-width:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px 18px;align-items:start;border-top:4px solid #1f4e8c;font-size:1.05em}
form.card.form:not(.pos-cart) label{margin-bottom:0;font-size:.95em;color:#33405a}
form.card.form:not(.pos-cart) input,form.card.form:not(.pos-cart) select,form.card.form:not(.pos-cart) textarea{padding:10px 12px;font-size:1em;border-radius:9px}
form.card.form:not(.pos-cart) label:has(textarea),form.card.form:not(.pos-cart) .actions,form.card.form:not(.pos-cart) .stat,form.card.form:not(.pos-cart) h3,form.card.form:not(.pos-cart) .chk,form.card.form:not(.pos-cart) p{grid-column:1/-1}
form.card.form:not(.pos-cart) .actions{display:flex;gap:10px;padding-top:4px}form.card.form:not(.pos-cart) .actions .btn{padding:10px 22px;font-size:1.02em}
form.card.form:not(.pos-cart)>.btn{justify-self:start;padding:10px 22px}
main{font-size:1.02em}th,td{padding:10px 12px}
.demobar{background:#fff3cd;border:1px solid #f0d98a;color:#6b4e00;border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:.92em}
.pill{display:inline-block;border-radius:12px;padding:1px 8px;color:#fff;font-size:.75em}
.gs{position:relative;flex:1;max-width:460px;margin-left:14px}
.gs input{width:100%;padding:8px 14px;border-radius:22px;border:0;background:rgba(255,255,255,.95);color:#1c2430;font-size:.95em}
.gsr{display:none;position:absolute;top:110%;left:0;right:0;background:#fff;color:#1c2430;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.28);max-height:70vh;overflow:auto;z-index:50}
.gsr .gh{background:#f3f5f9;font-size:.72em;font-weight:700;color:#6a1b4d;text-transform:uppercase;padding:5px 12px;letter-spacing:.04em}
.gsr a{display:flex;gap:10px;align-items:center;padding:8px 12px;text-decoration:none;color:#1c2430;border-bottom:1px solid #f0f2f6}
.gsr a em{font-style:normal;font-size:1.3em;width:28px;text-align:center}.gsr a span{display:block;min-width:0}.gsr a small{display:block;color:#6b7587;font-size:.8em}
.gsr a:hover,.gsr a.on{background:#fdf0f7}.gsr mark{background:#ffe08a;border-radius:3px;padding:0 1px}
@media(max-width:800px){.gs{margin-left:6px}.tname{display:none}}
@media(max-width:800px){.sig .l1{white-space:normal;font-size:.72em}.sig .l2{white-space:normal}}

/* picture tiles for POS + dashboard quick sale */
.itm{padding:0 0 8px;overflow:hidden;min-height:150px;gap:4px}
.itm .ph{display:block;width:100%;height:86px;overflow:hidden}.itm .ph img{width:100%;height:100%;object-fit:cover;display:block}
.itm .ph.e{display:flex;align-items:center;justify-content:center;font-size:2.6em}
.itm b{font-size:.92em;padding:0 6px;line-height:1.25}.itm small{font-size:.95em}
.ph.t0{background:linear-gradient(135deg,#ffe0b2,#ffb74d)}.ph.t1{background:linear-gradient(135deg,#ffcdd2,#ef9a9a)}.ph.t2{background:linear-gradient(135deg,#c8e6c9,#81c784)}
.ph.t3{background:linear-gradient(135deg,#bbdefb,#64b5f6)}.ph.t4{background:linear-gradient(135deg,#e1bee7,#ba68c8)}.ph.t5{background:linear-gradient(135deg,#fff9c4,#fff176)}
.items{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.posdash{margin-bottom:18px}.posh{margin:0 0 8px;font-size:1.25em}.posdash .pos{grid-template-columns:1fr 320px}@media(max-width:900px){.posdash .pos{grid-template-columns:1fr}}
.posdash .items{max-height:430px;overflow:auto;padding:2px}.posdash .pos-cart{top:56px}
@media(max-width:600px){.items{grid-template-columns:repeat(2,1fr)}.itm .ph{height:72px}}

/* grouped quick sale + full-screen sale mode */
.posbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.posbar input{flex:1;min-width:180px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;font-size:1em}
.postitle{font-size:1.15em;margin-right:auto}.posbar .exit{background:#fff;border:1px solid #c62828;color:#c62828}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cat{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;font:inherit;text-align:center;padding:0 0 10px;display:flex;flex-direction:column;gap:3px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.cat:hover{border-color:var(--pri);box-shadow:0 6px 16px rgba(0,0,0,.14)}
.cat .ph{display:flex;align-items:center;justify-content:center;height:110px;font-size:3.2em;overflow:hidden}.cat .ph img{width:100%;height:100%;object-fit:cover}
.cat b{font-size:1.05em;padding:0 6px}.cat small{color:#6b7488}
.items[hidden],.cats[hidden],.itm[hidden]{display:none}
body.salemode main>*:not(.posroot):not(.posdash):not(.flash){display:none!important}
body.salemode .posdash>.posh{display:none}
body.salemode .side{display:none;position:fixed;top:46px;bottom:0;left:0;z-index:30;overflow:auto;box-shadow:6px 0 18px rgba(0,0,0,.3)}
body.salemode.nav-open .side{display:block}
body.salemode .burger{display:block}
body.salemode main{padding:10px 14px}
body.salemode .pos{grid-template-columns:1fr 360px}@media(max-width:900px){body.salemode .pos{grid-template-columns:1fr}}
body.salemode .items{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}body.salemode .itm .ph{height:110px}
body.salemode .posdash .items{max-height:none;overflow:visible}
body.salemode .itm b{font-size:1.02em}

/* 3D buttons */
.cat,.itm{border-bottom:5px solid #b9c4d8;box-shadow:0 6px 12px rgba(20,40,80,.14);transition:transform .12s,box-shadow .12s}
.cat:hover,.itm:hover{transform:translateY(-3px);box-shadow:0 12px 20px rgba(20,40,80,.22)}
.cat:active,.itm:active{transform:translateY(3px);border-bottom-width:2px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.pos-menu .btn,.pos-cart .btn,.posbar .btn{border-bottom:4px solid rgba(0,0,0,.28);border-radius:10px;padding:9px 16px;font-weight:600;box-shadow:0 4px 8px rgba(0,0,0,.15)}
.pos-menu .btn:active,.pos-cart .btn:active{transform:translateY(2px);border-bottom-width:2px;box-shadow:none}
.pbtns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.pbtns .btn{text-align:center;display:block;width:100%}
.pbtns .big{grid-column:1/-1;font-size:1.05em;padding:12px}.btn.th{background:#2e7d32;color:#fff}.btn.a4{background:#6a1b9a;color:#fff}
.billbtns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.billbtns .btn{border-bottom:4px solid rgba(0,0,0,.28);border-radius:10px;font-weight:600;padding:10px 18px}
.cat{margin:2px}
