@font-face{font-family:'Plex';font-weight:400;font-display:swap;src:url(/fonts/plex-arabic-arabic-400.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+200C-200E,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:'Plex';font-weight:600;font-display:swap;src:url(/fonts/plex-arabic-arabic-600.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+200C-200E,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:'Plex';font-weight:700;font-display:swap;src:url(/fonts/plex-arabic-arabic-700.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+200C-200E,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:'Plex';font-weight:400;font-display:swap;src:url(/fonts/plex-arabic-latin-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Plex';font-weight:700;font-display:swap;src:url(/fonts/plex-arabic-latin-700.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
:root{--navy:#012756;--navy2:#071d3f;--gold:#02adc1;--gold-soft:#e0f6f9;--bg:#f3f5f9;--paper:#fff;--ink:#14213d;--muted:#64748b;--line:#e2e8f0;--ok:#15803d;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--bad:#b91c1c;--bad-soft:#fee2e2;--radius:14px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Plex,'Segoe UI',Tahoma,Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.boot{display:grid;place-items:center;min-height:100vh;color:var(--muted)}
.hidden{display:none!important}
.muted{color:var(--muted)}.small{font-size:13px}
/* header */
.top{position:sticky;top:0;z-index:30;background:var(--navy);color:#fff;padding:10px 14px calc(10px) ;display:flex;align-items:center;gap:10px;box-shadow:0 2px 12px #0002}
.top .brand{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.top .brand img{width:36px;height:36px;border-radius:10px;background:#fff1;object-fit:contain}
.top .brand strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .brand small{display:block;font-size:11px;color:#cbd5e1;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icon-btn{position:relative;background:#ffffff1a;border:0;border-radius:12px;width:42px;height:42px;display:grid;place-items:center;color:#fff}
.icon-btn svg{width:22px;height:22px}
.badge{position:absolute;top:-4px;left:-4px;min-width:20px;height:20px;border-radius:10px;background:var(--gold);color:var(--navy2);font-size:12px;font-weight:700;display:grid;place-items:center;padding:0 5px}
/* layout */
main{max-width:980px;margin:0 auto;padding:14px 14px calc(96px + env(safe-area-inset-bottom))}
h1{font-size:22px;margin:4px 0 12px}h2{font-size:18px;margin:0 0 10px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px}
.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}
/* bottom tabs */
.tabs{position:fixed;inset:auto 0 0 0;z-index:40;background:var(--paper);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px #0001}
.tabs button{flex:1;max-width:120px;background:none;border:0;border-radius:12px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--muted);position:relative}
.tabs button svg{width:24px;height:24px}
.tabs button.active{color:var(--navy);font-weight:700;background:#0127560d}
.tabs .badge{top:0;left:calc(50% - 22px)}
/* forms */
label{display:block;font-size:14px;font-weight:600;margin:10px 0 4px}
input,select,textarea{width:100%;min-height:48px;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;background:#fff;font-size:16px}
textarea{min-height:80px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid #01275633;border-color:var(--navy)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 18px;border-radius:12px;border:1px solid var(--line);background:var(--paper);font-weight:700;font-size:15px;text-decoration:none;color:var(--ink)}
.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy2)}
.btn.danger{color:var(--bad);border-color:#fecaca}
.btn.block{width:100%}.btn.small{min-height:38px;padding:6px 12px;font-size:13px}
.btn:disabled{opacity:.55;cursor:not-allowed}
.check{display:flex;align-items:center;gap:8px;font-weight:400;font-size:14px}.check input{width:20px;min-height:0;height:20px}
.error{background:var(--bad-soft);color:var(--bad);border-radius:10px;padding:10px 12px;margin:10px 0;font-size:14px}
.ok-box{background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:12px;margin:10px 0}
/* auth */
.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,var(--navy) 0 45%,var(--bg) 45%)}
.auth .box{width:100%;max-width:420px;background:var(--paper);border-radius:20px;padding:24px;box-shadow:0 20px 60px #0003}
.auth .logo{display:flex;align-items:center;gap:12px;margin-bottom:12px}.auth .logo img{width:56px;height:56px;border-radius:14px}
.auth .logo strong{font-size:22px;color:var(--navy)}.auth .switch{text-align:center;margin-top:14px;font-size:14px}
.linkish{background:none;border:0;color:var(--navy);font-weight:700;text-decoration:underline;padding:0}
/* catalog */
.search{position:sticky;top:62px;z-index:20;background:var(--bg);padding:6px 0 8px}
.search input{padding-inline-start:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Ccircle cx='9' cy='9' r='6'/%3E%3Cpath d='m14 14 4 4'/%3E%3C/svg%3E") no-repeat right 12px center}
.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chips button{flex:none;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:6px 14px;font-size:13px;white-space:nowrap}
.chips button.active{background:var(--navy);border-color:var(--navy);color:#fff}
.item{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center}
.item .name{font-weight:700;line-height:1.4}.item .code{font-size:12px;color:var(--muted);direction:ltr;text-align:right}
.item .price{font-weight:700;color:var(--navy)}.item .price.none{font-weight:400;color:var(--muted);font-size:13px}
.qty{grid-column:1/-1;display:flex;gap:8px;align-items:stretch}
.stepper{flex:1;display:flex;align-items:center;border:1px solid #cbd5e1;border-radius:12px;overflow:hidden;background:#fff}
.stepper button{width:44px;height:46px;border:0;background:#f1f5f9;font-size:20px;font-weight:700;color:var(--navy)}
.stepper input{border:0;min-height:46px;text-align:center;padding:0;border-radius:0;font-weight:700}
.stepper span{font-size:11px;color:var(--muted);padding:0 6px;white-space:nowrap}
.in-cart{outline:2px solid var(--gold);background:var(--gold-soft)}
/* cart bar */
.cartbar{position:fixed;inset:auto 10px calc(72px + env(safe-area-inset-bottom)) 10px;z-index:35;max-width:960px;margin:0 auto;background:var(--navy);color:#fff;border-radius:16px;padding:10px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 30px #0004}
.cartbar .btn{min-height:42px}
/* orders */
.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:700;white-space:nowrap}
.st-submitted{background:#e0e7ff;color:#3730a3}.st-sent{background:#dbeafe;color:#1d4ed8}.st-prepared{background:var(--gold-soft);color:#92400e}.st-pickup{background:#fef08a;color:#713f12}.st-delivered{background:var(--ok-soft);color:var(--ok)}.st-cancelled,.st-rejected{background:var(--bad-soft);color:var(--bad)}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:10px 0 4px}
.timeline div{text-align:center;font-size:11px;color:var(--muted);position:relative;padding-top:30px;line-height:1.35}
.timeline div::before{content:'';position:absolute;top:4px;right:calc(50% - 11px);width:22px;height:22px;border-radius:50%;background:#e2e8f0;border:3px solid #fff;box-shadow:0 0 0 1px #cbd5e1}
.timeline div::after{content:'';position:absolute;top:14px;right:calc(50% + 11px);width:calc(100% - 22px);height:3px;background:#e2e8f0}
.timeline div:last-child::after{display:none}
.timeline div.done{color:var(--navy);font-weight:700}.timeline div.done::before{background:var(--navy);box-shadow:0 0 0 1px var(--navy)}.timeline div.done::after{background:var(--navy)}
.timeline div.now::before{background:var(--gold);box-shadow:0 0 0 4px #02adc155}
.lines{width:100%;border-collapse:collapse;font-size:14px}.lines th{text-align:right;font-size:12px;color:var(--muted);font-weight:600;padding:6px 4px;border-bottom:1px solid var(--line)}.lines td{padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.miss{display:block;font-size:12px;color:var(--warn)}.cancelled-line{color:var(--bad);text-decoration:line-through}
.total{display:flex;justify-content:space-between;align-items:center;background:var(--navy);color:#fff;border-radius:12px;padding:12px 14px;margin-top:10px;font-weight:700}
.events{list-style:none;margin:0;padding:0;font-size:13px}.events li{padding:6px 0;border-bottom:1px dashed var(--line)}.events time{color:var(--muted);font-size:12px;margin-inline-start:6px}
/* notifications */
.notes{list-style:none;padding:0;margin:0}.notes li{padding:10px 4px;border-bottom:1px solid var(--line);font-size:14px}.notes li.unread{font-weight:700}.notes time{display:block;font-size:12px;color:var(--muted);font-weight:400}
/* admin */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:12px;text-align:center}.kpi strong{display:block;font-size:26px;color:var(--navy)}.kpi span{font-size:13px;color:var(--muted)}
.kpi.attn{border-color:var(--gold);background:var(--gold-soft)}
.admin-line{border-bottom:1px solid var(--line);padding:10px 0}.admin-line .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.admin-line .grid label{margin:0;font-size:12px;font-weight:400;color:var(--muted)}.admin-line input{min-height:42px}
.stock{font-size:12px;color:var(--muted)}.stock b{color:var(--ink)}
.pubrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.pubrow input{width:22px;height:22px;min-height:0}
/* dialog & toast */
dialog{border:0;border-radius:18px;padding:0;width:min(520px,calc(100vw - 20px));max-height:calc(100vh - 30px)}
dialog::backdrop{background:#0b1b2e88}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0}
.modal-body{padding:14px 16px}.modal-foot{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
#toast{position:fixed;inset:auto 16px calc(150px + env(safe-area-inset-bottom)) 16px;z-index:100;max-width:460px;margin:0 auto;text-align:center;pointer-events:none}
#toast div{display:inline-block;background:#0f172a;color:#fff;border-radius:12px;padding:10px 16px;font-size:14px;box-shadow:0 10px 30px #0005;animation:pop .2s ease-out}
#toast div.bad{background:var(--bad)}
@keyframes pop{from{opacity:0;transform:translateY(8px)}}
.empty{text-align:center;color:var(--muted);padding:30px 10px}
@media (min-width:900px){main{padding-top:20px}.tabs{max-width:620px;margin:0 auto 12px;border:1px solid var(--line);border-radius:18px;inset:auto 0 0 0}}
.top{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 2px 10px #01275612}
.top .brand{gap:12px}.top .brand .logo-img{height:34px;width:auto;max-width:58vw;background:none;border-radius:0;object-fit:contain}
.top .brand small{color:var(--muted);font-size:12px;border-inline-start:1px solid var(--line);padding-inline-start:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .icon-btn{background:#0127560f;color:var(--navy)}
.auth .logo{flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:14px}.auth .logo img{width:min(260px,80%);height:auto;border-radius:0}
.search{top:58px}