@font-face{font-family:'Vazirmatn';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/vazirmatn.woff2') format('woff2-variations'),url('../fonts/vazirmatn.woff2') format('woff2')}
:root{
  --bg:#f8f4ef;--paper:#fff;--paper2:#f7f2ec;--ink:#1f1a15;--ink-2:#3d352d;--muted:#8b8076;
  --accent:#ec5a24;--accent-ink:#c2410c;--accent-soft:#fdeee5;--line:#efe7de;--line-2:#e3d8cc;
  --green:#15803d;--green-soft:#eaf7ef;--red:#dc2626;--red-soft:#fdeded;
  --r-sm:.75rem;--r:1rem;--r-lg:1.5rem;
  --gutter:clamp(.75rem,2.4vw,1.5rem);--gap:clamp(.625rem,1.5vw,1rem);
  --fs-xs:clamp(.6875rem,.66rem + .12vw,.75rem);--fs-sm:clamp(.75rem,.72rem + .15vw,.8125rem);
  --fs-md:clamp(.8125rem,.78rem + .2vw,.9375rem);--fs-lg:clamp(.9375rem,.88rem + .3vw,1.125rem);
  --fs-xl:clamp(1.125rem,1rem + .6vw,1.5rem);--fs-2xl:clamp(1.25rem,1rem + 1vw,1.875rem);
  --shadow:0 1px 2px rgba(20,21,24,.04),0 6px 20px rgba(20,21,24,.06);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:'Vazirmatn',Tahoma,system-ui,sans-serif;font-size:var(--fs-md);line-height:1.7;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4,b,strong,th{font-weight:600}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
.ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.floating{background:var(--paper);border:1px solid var(--line)}

/* ===== Shell ===== */
.panel-shell{display:grid;grid-template-columns:clamp(13rem,18vw,15.5rem) minmax(0,1fr);min-height:100vh;min-height:100dvh}
.panel-sidebar{position:sticky;top:.75rem;margin:.75rem;margin-inline-end:0;height:calc(100vh - 1.5rem);height:calc(100dvh - 1.5rem);border-width:1px;border-radius:var(--r-lg);box-shadow:var(--shadow);padding:1rem .75rem;display:flex;flex-direction:column;overflow-y:auto}
.panel-brand{display:flex;gap:.625rem;align-items:center;padding:.25rem .5rem 1rem;border-bottom:1px solid var(--line)}
.panel-logo{width:2.375rem;height:2.375rem;border-radius:var(--r);background:var(--ink);color:#fff;display:grid;place-items:center;flex-shrink:0}
.panel-logo .ic{width:1.25rem;height:1.25rem}
.panel-brand b,.panel-brand small{display:block;line-height:1.35}
.panel-brand b{font-size:var(--fs-lg);font-weight:600}
.panel-brand small{font-size:var(--fs-xs);color:var(--muted)}
.panel-sidebar nav{display:flex;flex-direction:column;gap:.125rem;padding-top:.75rem}
.panel-sidebar nav a,.sidebar-bottom a,.sidebar-bottom button{display:flex;align-items:center;gap:.625rem;width:100%;border:0;background:transparent;text-align:start;padding:.625rem .75rem;border-radius:var(--r);color:var(--ink-2);font-weight:500;font-size:var(--fs-md);cursor:pointer;transition:background .15s,color .15s}
.panel-sidebar nav a .ic,.sidebar-bottom .ic{width:1.15rem;height:1.15rem;color:var(--muted)}
.panel-sidebar nav a:hover,.sidebar-bottom a:hover,.sidebar-bottom button:hover{background:var(--paper2)}
.panel-sidebar nav a.active{background:var(--ink);color:#fff;font-weight:500}
.panel-sidebar nav a.active .ic{color:#fff}
.sidebar-bottom{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.125rem}
.sidebar-bottom form{margin:0}
.sidebar-bottom button:hover{color:var(--red);background:var(--red-soft)}
.sidebar-bottom button:hover .ic{color:var(--red)}
.panel-main{min-width:0;padding:clamp(.75rem,2.5vw,2rem) var(--gutter) 2.5rem;max-width:84rem;width:100%}

/* ===== Headers & basics ===== */
.panel-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:clamp(.75rem,2vw,1.25rem)}
.panel-header h1{margin:.125rem 0;font-size:var(--fs-2xl);font-weight:600;line-height:1.35}
.panel-header p{margin:0;color:var(--muted);font-size:var(--fs-sm)}
.eyebrow{font-size:var(--fs-xs);letter-spacing:.06em;font-weight:600;color:var(--accent-ink)}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:.375rem;min-height:2.625rem;padding-inline:1rem;border:1px solid transparent;border-radius:var(--r);font-size:var(--fs-md);font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.btn .ic{width:1.1rem;height:1.1rem;stroke-width:2.2}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-ink)}
.btn.secondary{background:var(--paper);border-color:var(--line-2);color:var(--ink)}
.btn.secondary:hover{background:var(--paper2)}
.btn.big{width:100%;min-height:2.875rem}

/* ===== Stats ===== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:var(--gap);margin-bottom:var(--gap)}
.stat-card{border-radius:var(--r-lg);padding:clamp(.875rem,2vw,1.25rem)}
.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:var(--fs-xs)}
.stat-card span{font-weight:500}
.stat-card strong{display:block;font-size:var(--fs-xl);font-weight:600;margin:.25rem 0 .125rem;line-height:1.3;word-break:break-word}
.owner-stat-grid .stat-card{background:var(--paper2)}

/* ===== Cards & tables ===== */
.panel-card,.form-panel{border-radius:var(--r-lg);padding:clamp(.875rem,2.2vw,1.375rem);margin-bottom:var(--gap)}
.card-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center;margin-bottom:1rem}
.card-head h2{margin:.125rem 0 0;font-size:var(--fs-lg);font-weight:600}
.text-link,.table-link,.icon-link{color:var(--accent-ink);font-weight:500;font-size:var(--fs-sm)}
.text-link:hover,.table-link:hover,.icon-link:hover{text-decoration:underline}
.table-wrap{overflow-x:auto;margin-inline:calc(clamp(.875rem,2.2vw,1.375rem) * -1);padding-inline:clamp(.875rem,2.2vw,1.375rem)}
.table-wrap table{width:100%;border-collapse:collapse;min-width:40rem}
.table-wrap th,.table-wrap td{text-align:start;padding:.75rem .625rem;border-bottom:1px solid var(--line);font-size:var(--fs-sm);vertical-align:middle;white-space:nowrap}
.table-wrap th{color:var(--muted);font-weight:500;font-size:var(--fs-xs);background:var(--paper2)}
.table-wrap th:first-child{border-start-start-radius:var(--r-sm);border-end-start-radius:var(--r-sm)}
.table-wrap th:last-child{border-start-end-radius:var(--r-sm);border-end-end-radius:var(--r-sm)}
.table-wrap th{border-bottom:0}
.table-wrap tbody tr:hover td{background:#fbfbfa}
.table-wrap tr:last-child td{border-bottom:0}
.table-empty{padding:1.75rem;color:var(--muted);text-align:center;font-size:var(--fs-sm);white-space:normal}
.status{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:999px;background:var(--paper2);color:var(--muted);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}
.status-pending{background:#fff4e0;color:#a15c07}
.status-confirmed{background:#e6f0ff;color:#1d4ed8}
.status-preparing{background:#f1ebff;color:#6d28d9}
.status-out_for_delivery{background:#e5f6fb;color:#0e7490}
.status-delivered{background:var(--green-soft);color:var(--green)}
.status-cancelled{background:var(--red-soft);color:var(--red)}
.status-breakdown{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.875rem}

/* ===== Forms ===== */
.filter-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,14rem) auto;gap:.5rem;margin-bottom:1rem}
.filter-row:has(> :nth-child(2):last-child){grid-template-columns:minmax(0,1fr) auto}
.filter-row input,.filter-row select,.stack-form input:not([type=checkbox]):not([type=radio]),.stack-form textarea,.stack-form select,.admin-form input:not([type=checkbox]):not([type=radio]),.admin-form select,.admin-form textarea,.status-editor select{width:100%;min-height:2.625rem;border:1px solid var(--line);border-radius:var(--r);padding:.5rem .75rem;background:var(--paper2);outline:none;font-size:1rem;transition:border-color .15s,background .15s,box-shadow .15s}
.filter-row input:focus,.filter-row select:focus,.stack-form input:focus,.stack-form textarea:focus,.stack-form select:focus,.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.status-editor select:focus{border-color:var(--accent);background:var(--paper);box-shadow:0 0 0 3px var(--accent-soft)}
.admin-form input[type=file]{padding:.4375rem .5rem;font-size:var(--fs-sm)}
input[type=checkbox]{accent-color:var(--accent);width:1.125rem;height:1.125rem}
.stack-form{display:flex;flex-direction:column;gap:.875rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field>span{font-size:var(--fs-sm);font-weight:500}
.field.full{grid-column:1/-1}
.error{color:var(--red);font-size:var(--fs-xs)}
.admin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.875rem}
.admin-form .field.full,.form-actions{grid-column:1/-1}
.form-actions{display:flex;justify-content:flex-start;gap:.5rem;border-top:1px solid var(--line);padding-top:.875rem;margin-top:.25rem}
.form-panel{max-width:56rem}
.form-panel.narrow{max-width:38rem}
.mini-note{color:var(--muted);font-size:var(--fs-xs);margin-top:.625rem}
.pagination{display:flex;justify-content:center;align-items:center;gap:.75rem;padding-top:1rem;color:var(--muted);font-size:var(--fs-sm)}
.pagination a{background:var(--paper);border:1px solid var(--line-2);padding:.375rem .875rem;border-radius:var(--r);color:var(--ink);font-weight:500}

/* ===== Products (admin) ===== */
.admin-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:var(--gap)}
.admin-product{border-radius:var(--r);overflow:hidden;display:grid;grid-template-columns:clamp(4.5rem,18vw,6.5rem) minmax(0,1fr);gap:.75rem;padding:.5rem;align-items:center}
.admin-product-media{position:relative;aspect-ratio:1;border-radius:calc(var(--r) - .1875rem);overflow:hidden;background:var(--paper2);display:grid;place-items:center;color:var(--line-2)}
.admin-product-media img{width:100%;height:100%;object-fit:cover}
.admin-product-media>.ic{width:45%;height:45%;stroke-width:1.4}
.availability{position:absolute;bottom:.25rem;inset-inline-start:.25rem;background:var(--green);color:#fff;padding:.0625rem .4375rem;border-radius:999px;font-size:.625rem;font-weight:600}
.availability.off{background:var(--red)}
.admin-product-body{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:.375rem;padding-inline-end:.375rem}
.admin-product-body h3{margin:0;font-size:var(--fs-md);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-product-body p{margin:0;color:var(--muted);font-size:var(--fs-xs);line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-product-meta{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
.admin-product-meta strong{font-size:var(--fs-sm);font-weight:600}
.danger-link{border:0;background:transparent;padding:0;color:var(--red);font-size:var(--fs-sm);cursor:pointer;font-weight:500;margin-inline-start:.75rem}

/* ===== Categories ===== */
.split-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:var(--gap);align-items:start}
.category-admin-list{display:flex;flex-direction:column}
.category-row{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.75rem .125rem;border-bottom:1px solid var(--line)}
.category-row:last-child{border-bottom:0}
.category-row strong,.category-row small{display:block}
.category-row strong{font-size:var(--fs-md)}
.category-row small{font-size:var(--fs-xs);color:var(--muted)}

/* ===== Order detail ===== */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:var(--gap)}
.detail-grid .panel-card{margin-bottom:0}
.detail-grid .full-span{grid-column:1/-1}
.status-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}
.customer-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.625rem}
.customer-details div{padding:.75rem;background:var(--paper2);border-radius:var(--r)}
.customer-details small,.customer-details strong{display:block}
.customer-details small{color:var(--muted);font-size:var(--fs-xs);margin-bottom:.125rem}
.customer-details strong{font-size:var(--fs-sm);line-height:1.8;font-weight:500}
.customer-details .full{grid-column:1/-1}
.cod-tag{background:var(--green-soft);color:var(--green);padding:.25rem .625rem;border-radius:999px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap}
.invoice-total{display:flex;justify-content:flex-end;gap:.5rem;align-items:stretch;padding-top:1rem;flex-wrap:wrap}
.invoice-total div{padding:.625rem .875rem;border-radius:var(--r);background:var(--paper2);flex:0 1 auto;min-width:min(100%,9rem)}
.invoice-total span,.invoice-total strong{display:block}
.invoice-total span{font-size:var(--fs-xs);color:var(--muted)}
.invoice-total strong{font-size:var(--fs-sm);font-weight:600}
.invoice-total .grand{background:var(--ink);color:#fff}
.invoice-total .grand span{color:rgba(255,255,255,.7)}
.soft-icon{width:2.5rem;height:2.5rem;border-radius:var(--r);background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;flex-shrink:0}
.soft-icon .ic{width:1.25rem;height:1.25rem}

/* ===== Settings ===== */
.setting-hero{display:flex;align-items:center;gap:.75rem;margin-bottom:1.125rem}
.setting-hero h2{margin:.125rem 0;font-size:var(--fs-lg)}
.setting-hero p{margin:0;color:var(--muted);font-size:var(--fs-xs);line-height:1.8}
.setting-current{padding:.75rem;background:var(--paper2);border-radius:var(--r);color:var(--muted);font-size:var(--fs-sm)}
.setting-current strong{color:var(--accent-ink)}

/* ===== Toasts ===== */
.panel-messages{position:fixed;z-index:60;top:.75rem;inset-inline:var(--gutter);display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:none}
.panel-toast{padding:.625rem 1rem;border-radius:var(--r);font-size:var(--fs-sm);pointer-events:auto;background:var(--ink)!important;color:#fff;border:0!important;box-shadow:0 12px 32px rgba(20,21,24,.18);animation:toast .25s ease-out,toast-out .3s ease-in 3.2s forwards}
.panel-toast.error{background:var(--red)!important}
@keyframes toast{from{opacity:0;transform:translateY(-.5rem)}}
@keyframes toast-out{to{opacity:0;visibility:hidden}}

/* ===== Login ===== */
.login-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:var(--gutter);background:radial-gradient(80% 60% at 100% 0%,rgba(232,84,30,.10),transparent 60%),var(--bg)}
.login-card{width:min(26rem,100%);border-radius:var(--r-lg);padding:clamp(1.25rem,4vw,2rem);box-shadow:var(--shadow)}
.login-logo{width:3rem;height:3rem;border-radius:var(--r);background:var(--ink);color:#fff;display:grid;place-items:center;margin-bottom:1rem}
.login-logo .ic{width:1.5rem;height:1.5rem}
.login-card h1{margin:.125rem 0 .25rem;font-size:var(--fs-xl);font-weight:600}
.login-card p{color:var(--muted);font-size:var(--fs-sm);line-height:1.9;margin:0 0 1.125rem}
.login-card code{background:var(--paper2);border:1px solid var(--line);padding:.0625rem .375rem;border-radius:.375rem;font-size:.85em}
.back-site{display:block;text-align:center;color:var(--accent-ink);font-weight:500;font-size:var(--fs-sm);margin-top:.875rem}
.form-error{background:var(--red-soft);color:var(--red);border-radius:var(--r);padding:.625rem .75rem;font-size:var(--fs-sm);margin-bottom:.875rem}

/* ===== Small screens: sidebar becomes a top bar, full width ===== */
@media (max-width:52rem){
  .panel-shell{display:block}
  .panel-sidebar{position:sticky;top:0;z-index:40;height:auto;margin:0;border-radius:0 0 var(--r-lg) var(--r-lg);border-width:0 0 1px;padding:.5rem var(--gutter) 0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand bottom" "nav nav";align-items:center;overflow:visible;padding-top:calc(env(safe-area-inset-top) + .5rem)}
  .panel-brand{grid-area:brand;border:0;padding:0}
  .panel-logo{width:2.125rem;height:2.125rem}
  .sidebar-bottom{grid-area:bottom;margin:0;padding:0;border:0;flex-direction:row;gap:.25rem}
  .sidebar-bottom a,.sidebar-bottom button{width:auto;padding:.5rem;background:var(--paper2)}
  .sidebar-bottom span{display:none}
  .panel-sidebar nav{grid-area:nav;flex-direction:row;gap:.25rem;overflow-x:auto;padding:.5rem 0;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scrollbar-width:none}
  .panel-sidebar nav::-webkit-scrollbar{display:none}
  .panel-sidebar nav a{width:auto;flex-shrink:0;padding:.4375rem .75rem;font-size:var(--fs-sm);white-space:nowrap;background:var(--paper2)}
  .panel-main{padding-top:1rem}
}
@media (max-width:36rem){
  .filter-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .filter-row input{grid-column:1/-1}
  .filter-row:has(> :nth-child(2):last-child){grid-template-columns:minmax(0,1fr) auto}
  .filter-row:has(> :nth-child(2):last-child) input{grid-column:auto}
  .stat-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .status-editor{grid-template-columns:minmax(0,1fr)}
  .panel-header .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
