:root{
  /* Brand — pulled directly from the DineX logo */
  --orange:#FF8A00; --yellow:#FFB800; --blue:#0066FF; --purple:#9333EA;
  --blue-2:#2563EB; --purple-2:#A855F7;

  --primary:var(--blue);
  --success:#22D38B; --success-bg:rgba(34,211,139,.10);
  --danger:#FB4267;  --danger-bg:rgba(251,66,103,.10);
  --warn:#FFB020;    --warn-bg:rgba(255,176,32,.10);

  /* Surfaces — deep navy black, layered glass */
  --bg-0:#05070F;
  --bg-1:#080B16;
  --panel:rgba(17,24,42,.55);
  --panel-2:rgba(13,19,34,.78);
  --line:rgba(255,255,255,.07);
  --line-2:rgba(255,255,255,.04);

  --white:#FFFFFF; --t1:#EAF0FB; --t2:#9FB0CC; --t3:#64748B;

  --grad-brand:linear-gradient(120deg,var(--orange) 0%,var(--blue) 48%,var(--purple) 100%);
  --grad-bp:linear-gradient(135deg,var(--blue) 0%,var(--purple) 100%);
  --grad-ob:linear-gradient(135deg,var(--yellow) 0%,var(--orange) 100%);

  --r-sm:10px; --r-md:14px; --r-lg:20px; --r-xl:26px;
  --display:'Sora',sans-serif;
  --body:'Plus Jakarta Sans','Hind Siliguri',sans-serif;
}
html[lang="bn"] body{font-family:'Hind Siliguri',sans-serif;}
html[lang="bn"] .display{font-family:'Hind Siliguri',sans-serif;}

*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:var(--body);
  background:var(--bg-0);
  color:var(--t1);
  -webkit-font-smoothing:antialiased;
  overflow:hidden;
}
.display{font-family:var(--display);letter-spacing:-.02em;}
.num{font-variant-numeric:tabular-nums;}

/* ---------- Ambient backdrop ---------- */
.ambient{position:fixed;inset:0;z-index:-2;background:var(--bg-0);}
.ambient::before,.ambient::after{content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;}
.ambient::before{width:60vw;height:60vw;left:-15vw;top:-25vw;background:radial-gradient(circle,rgba(0,102,255,.16),transparent 60%);}
.ambient::after{width:55vw;height:55vw;right:-18vw;bottom:-22vw;background:radial-gradient(circle,rgba(147,51,234,.16),transparent 60%);}
.grid-overlay{position:fixed;inset:0;z-index:-1;opacity:.35;
  background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 75%);
          mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 75%);}

/* ---------- Layout ---------- */
.app{display:flex;height:100vh;}
.glass{background:var(--panel);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 22px 50px -28px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.05);}

/* ---------- Sidebar ---------- */
.sidebar{width:262px;flex-shrink:0;height:100vh;overflow-y:auto;padding:18px 14px;
  background:rgba(6,9,18,.72);backdrop-filter:blur(28px);border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:relative;z-index:20;}
.brand{display:flex;align-items:center;justify-content:center;height:72px;margin-bottom:6px;}
.brand img{width:205px;height:auto;mix-blend-mode:lighten;filter:drop-shadow(0 0 16px rgba(0,102,255,.30));}
.nav-label{color:var(--t3);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:18px 12px 8px;}
.nav-item{display:flex;align-items:center;gap:11px;width:100%;border:none;background:transparent;
  color:var(--t2);font-family:var(--body);font-size:.84rem;font-weight:500;text-align:left;
  padding:.62rem .8rem;border-radius:var(--r-sm);cursor:pointer;margin-bottom:2px;
  border-left:2.5px solid transparent;transition:.25s cubic-bezier(.4,0,.2,1);position:relative;}
.nav-item i{font-size:1.15rem;flex-shrink:0;transition:.25s;}
.nav-item:hover{background:rgba(255,255,255,.04);color:var(--t1);transform:translateX(3px);}
.nav-item.active{background:linear-gradient(90deg,rgba(0,102,255,.16),rgba(147,51,234,.04) 70%,transparent);
  color:#fff;border-left-color:var(--blue);}
.nav-item.active i{color:var(--blue);filter:drop-shadow(0 0 8px rgba(0,102,255,.7));}
.nav-item .dot{margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--danger);box-shadow:0 0 8px var(--danger);}
.nav-item.ai i{color:var(--purple-2);filter:drop-shadow(0 0 8px rgba(168,85,247,.7));}
.side-foot{margin-top:auto;padding:14px 10px 4px;border-top:1px solid var(--line);}
.plan-card{background:linear-gradient(135deg,rgba(0,102,255,.14),rgba(147,51,234,.12));border:1px solid var(--line);
  border-radius:var(--r-md);padding:12px;font-size:.74rem;color:var(--t2);}
.plan-card b{color:#fff;font-family:var(--display);}

/* ---------- Main ---------- */
.main{flex:1;height:100vh;overflow-y:auto;padding:18px 26px 40px;position:relative;z-index:5;}

/* Topbar */
.topbar{display:flex;align-items:center;gap:16px;padding:12px 18px;margin-bottom:16px;}
.branch{display:flex;align-items:center;gap:8px;}
.branch i{color:var(--blue);font-size:1.2rem;}
select{font-family:var(--body);background:rgba(0,0,0,.25);color:var(--t1);border:1px solid var(--line);
  padding:.5rem .8rem;border-radius:var(--r-sm);font-size:.82rem;outline:none;cursor:pointer;}
select option{background:var(--bg-1);}
.search{flex:1;max-width:340px;display:flex;align-items:center;gap:9px;background:rgba(0,0,0,.28);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:.5rem .9rem;color:var(--t3);transition:.25s;}
.search:focus-within{border-color:rgba(0,102,255,.5);box-shadow:0 0 0 3px rgba(0,102,255,.12);}
.search input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-family:var(--body);font-size:.84rem;}
.spacer{flex:1;}
.icon-btn{position:relative;width:40px;height:40px;border-radius:var(--r-sm);border:1px solid var(--line);
  background:rgba(0,0,0,.25);color:var(--t2);font-size:1.2rem;cursor:pointer;display:grid;place-items:center;transition:.25s;}
.icon-btn:hover{color:#fff;border-color:rgba(255,255,255,.2);}
.icon-btn .badge-dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;
  background:var(--danger);box-shadow:0 0 8px var(--danger);border:2px solid var(--bg-1);}
.lang{display:flex;align-items:center;gap:9px;padding-right:14px;border-right:1px solid var(--line);}
.lang span{font-size:.8rem;font-weight:700;color:var(--t3);transition:.3s;}
.lang span.on{color:var(--blue);}
.switch{position:relative;width:46px;height:25px;}
.switch input{opacity:0;width:0;height:0;}
.slider{position:absolute;inset:0;background:rgba(255,255,255,.1);border:1px solid var(--line);border-radius:25px;cursor:pointer;transition:.4s;}
.slider:before{content:"";position:absolute;height:17px;width:17px;left:3px;bottom:3px;background:var(--t1);border-radius:50%;transition:.4s cubic-bezier(.4,0,.2,1);}
input:checked+.slider{background:var(--grad-bp);border-color:transparent;}
input:checked+.slider:before{transform:translateX(21px);background:#fff;}
.btn-ai{display:flex;align-items:center;gap:7px;padding:.55rem 1rem;border-radius:22px;font-family:var(--body);
  font-weight:600;font-size:.82rem;cursor:pointer;color:#E9D5FF;border:1px solid rgba(147,51,234,.35);
  background:rgba(147,51,234,.12);transition:.3s;}
.btn-ai:hover{background:var(--grad-bp);color:#fff;border-color:transparent;box-shadow:0 0 18px rgba(147,51,234,.45);}
.profile{display:flex;align-items:center;gap:9px;}
.avatar{width:38px;height:38px;border-radius:11px;background:var(--grad-ob);display:grid;place-items:center;
  font-weight:700;box-shadow:0 0 16px rgba(255,138,0,.35);color:#1a1206;}
.profile .meta{line-height:1.2;}
.profile .meta b{font-size:.82rem;font-family:var(--display);}
.profile .meta span{font-size:.7rem;color:var(--t3);}

/* Greeting row */
.greet{display:flex;align-items:flex-end;justify-content:space-between;margin:6px 4px 18px;flex-wrap:wrap;gap:12px;}
.greet h1{font-size:1.7rem;font-weight:700;}
.greet h1 .accent{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.greet p{color:var(--t2);font-size:.9rem;margin-top:3px;}
.live-pill{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--t2);background:rgba(0,0,0,.25);
  border:1px solid var(--line);padding:.5rem .9rem;border-radius:30px;}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 0 rgba(34,211,139,.6);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,211,139,.55)}70%{box-shadow:0 0 0 9px rgba(34,211,139,0)}100%{box-shadow:0 0 0 0 rgba(34,211,139,0)}}

/* ---------- Alert strip ---------- */
.alert-strip{display:flex;align-items:center;gap:14px;overflow:hidden;padding:11px 16px;margin-bottom:20px;
  border-radius:var(--r-md);border:1px solid rgba(251,66,103,.22);
  background:linear-gradient(90deg,rgba(251,66,103,.10),rgba(255,176,32,.06));position:relative;}
.alert-strip>.tag{flex-shrink:0;display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--danger);padding:.32rem .7rem;border-radius:7px;
  box-shadow:0 0 14px rgba(251,66,103,.5);}
.alert-track{display:flex;gap:30px;white-space:nowrap;animation:marquee 26s linear infinite;}
.alert-strip:hover .alert-track{animation-play-state:paused;}
.alert-track .a{display:inline-flex;align-items:center;gap:8px;font-size:.83rem;color:var(--t1);}
.alert-track .a i{font-size:1rem;}
.a.warn i{color:var(--warn);} .a.danger i{color:var(--danger);} .a.info i{color:var(--blue);}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ---------- Sections ---------- */
.section-head{display:flex;align-items:center;justify-content:space-between;margin:26px 4px 14px;}
.section-head h2{font-size:1.05rem;font-weight:700;display:flex;align-items:center;gap:9px;}
.section-head h2 i{font-size:1.2rem;}
.section-head .link{font-size:.78rem;color:var(--t2);cursor:pointer;display:flex;align-items:center;gap:5px;}
.section-head .link:hover{color:var(--blue);}

/* KPI grid */
.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.kpi{padding:18px;position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s;}
.kpi:hover{transform:translateY(-5px);box-shadow:0 30px 60px -30px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.06);}
.kpi .top{display:flex;justify-content:space-between;align-items:flex-start;}
.kpi .label{font-size:.74rem;font-weight:600;color:var(--t2);letter-spacing:.03em;text-transform:uppercase;}
.kpi .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:1.05rem;flex-shrink:0;}
.kpi .val{font-family:var(--display);font-size:1.85rem;font-weight:800;margin:10px 0 2px;}
.kpi .foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;}
.trend{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:700;padding:.18rem .5rem;border-radius:20px;}
.trend.up{color:var(--success);background:var(--success-bg);}
.trend.down{color:var(--danger);background:var(--danger-bg);}
.trend.flat{color:var(--warn);background:var(--warn-bg);}
.spark{width:88px;height:34px;flex-shrink:0;}
.kpi .glow{position:absolute;width:120px;height:120px;border-radius:50%;filter:blur(40px);opacity:.16;top:-30px;right:-20px;pointer-events:none;}

/* Performance charts */
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.chart-card{padding:18px;}
.chart-card .ch-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.chart-card .ch-head .t{font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:8px;}
.chart-card .ch-head .v{font-family:var(--display);font-size:1.15rem;font-weight:700;}
.chart-card svg{width:100%;height:120px;display:block;}
.chart-legend{display:flex;gap:14px;font-size:.72rem;color:var(--t3);margin-top:6px;}

/* Branch cards */
.branch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.branch-card{padding:16px;position:relative;transition:transform .3s,border-color .3s;border:1px solid var(--line);}
.branch-card:hover{transform:translateY(-4px);}
.branch-card.best{border-color:rgba(34,211,139,.4);background:linear-gradient(160deg,rgba(34,211,139,.07),var(--panel));}
.branch-card .bn{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.branch-card .bn b{font-size:.92rem;font-family:var(--display);}
.crown{font-size:.66rem;font-weight:700;color:#08110c;background:var(--success);padding:.2rem .5rem;border-radius:20px;display:inline-flex;gap:4px;align-items:center;}
.branch-row{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:6px;color:var(--t2);}
.branch-row b{color:var(--t1);}
.score-bar{height:6px;border-radius:6px;background:rgba(255,255,255,.07);margin-top:10px;overflow:hidden;}
.score-bar i{display:block;height:100%;border-radius:6px;background:var(--grad-bp);width:0;transition:width 1.2s cubic-bezier(.16,1,.3,1);}

/* Menu intelligence */
.menu-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.menu-card{padding:18px;}
.menu-card h3{font-size:.85rem;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:7px;}
.menu-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--r-md);margin-bottom:8px;
  background:rgba(255,255,255,.02);border:1px solid var(--line-2);transition:.25s;}
.menu-item:hover{background:rgba(255,255,255,.045);}
.menu-item .thumb{width:46px;height:46px;border-radius:11px;background-size:cover;background-position:center;flex-shrink:0;border:1px solid var(--line);}
.menu-item .info{flex:1;min-width:0;}
.menu-item .info b{font-size:.84rem;display:block;}
.menu-item .info span{font-size:.72rem;color:var(--t3);}
.menu-item .margin{text-align:right;}
.menu-item .margin b{font-size:1rem;font-family:var(--display);}
.menu-item .margin span{font-size:.68rem;color:var(--t3);display:block;}
.mg-bar{height:5px;border-radius:5px;background:rgba(255,255,255,.07);margin-top:5px;overflow:hidden;width:70px;margin-left:auto;}
.mg-bar i{display:block;height:100%;}

/* Inventory + waste row */
.io-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;}
.gauge-wrap{display:flex;gap:24px;align-items:center;}
.gauge{position:relative;width:140px;height:140px;flex-shrink:0;}
.gauge .center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.gauge .center b{font-family:var(--display);font-size:1.9rem;font-weight:800;}
.gauge .center span{font-size:.66rem;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;}
.inv-stats{flex:1;display:flex;flex-direction:column;gap:12px;}
.inv-stat{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;padding-bottom:9px;border-bottom:1px solid var(--line-2);}
.inv-stat span{color:var(--t2);display:flex;align-items:center;gap:7px;}
.inv-stat b{font-family:var(--display);}

/* Waste heatmap */
.heat{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:8px;}
.heat .cell{aspect-ratio:1;border-radius:5px;background:rgba(255,255,255,.04);transition:.25s;cursor:pointer;}
.heat .cell:hover{transform:scale(1.18);}
.heat-legend{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--t3);margin-top:12px;}
.heat-legend i{width:13px;height:13px;border-radius:4px;display:inline-block;}
.wk{display:flex;justify-content:space-between;font-size:.62rem;color:var(--t3);margin-bottom:5px;}

/* AI hero */
.ai-hero{position:relative;padding:24px;margin-top:8px;border-radius:var(--r-xl);overflow:hidden;
  background:linear-gradient(150deg,rgba(13,19,34,.92),rgba(13,19,34,.92)) padding-box,var(--grad-brand) border-box;
  border:1.5px solid transparent;box-shadow:0 30px 70px -34px rgba(147,51,234,.5);}
.ai-hero::before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;filter:blur(80px);
  background:radial-gradient(circle,rgba(147,51,234,.3),transparent 70%);top:-120px;right:-60px;pointer-events:none;}
.ai-hero .ai-top{display:flex;align-items:center;gap:12px;margin-bottom:18px;position:relative;}
.ai-orb{width:46px;height:46px;border-radius:14px;background:var(--grad-bp);display:grid;place-items:center;font-size:1.4rem;color:#fff;
  box-shadow:0 0 24px rgba(147,51,234,.6);animation:float 4s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.ai-top .tt b{font-family:var(--display);font-size:1.1rem;display:block;}
.ai-top .tt span{font-size:.76rem;color:var(--t2);}
.ai-top .status{margin-left:auto;font-size:.72rem;color:var(--success);display:flex;align-items:center;gap:6px;}
.ai-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;position:relative;}
.ai-card{background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:var(--r-md);padding:15px;transition:.3s;cursor:default;}
.ai-card:hover{border-color:rgba(147,51,234,.4);transform:translateY(-3px);box-shadow:0 14px 30px -16px rgba(147,51,234,.5);}
.ai-card .h{display:flex;align-items:center;gap:8px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.ai-card p{font-size:.84rem;line-height:1.55;color:var(--t1);}
.ai-card.profit .h{color:var(--success);} .ai-card.risk .h{color:var(--danger);}
.ai-card.growth .h{color:var(--blue);} .ai-card.inv .h{color:var(--warn);} .ai-card.demand .h{color:var(--purple-2);}
.ai-card .cta{margin-top:11px;font-size:.74rem;font-weight:600;color:var(--purple-2);display:inline-flex;align-items:center;gap:5px;cursor:pointer;}

/* Bottom row: quick actions + activity */
.bottom-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;margin-top:8px;}
.qa-card{padding:18px;}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px;}
.qa{display:flex;align-items:center;gap:11px;padding:13px;border-radius:var(--r-md);cursor:pointer;
  background:rgba(255,255,255,.025);border:1px solid var(--line);transition:.25s;font-size:.84rem;font-weight:600;}
.qa:hover{transform:translateY(-3px);border-color:rgba(0,102,255,.4);background:rgba(0,102,255,.08);}
.qa .qi{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:1.1rem;flex-shrink:0;}
.feed-card{padding:18px;}
.feed{margin-top:8px;position:relative;}
.feed:before{content:"";position:absolute;left:17px;top:6px;bottom:6px;width:1.5px;background:var(--line);}
.fi{display:flex;gap:14px;padding:9px 0;position:relative;}
.fi .fdot{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;z-index:1;
  background:var(--bg-1);border:1px solid var(--line);font-size:1rem;}
.fi .ft{flex:1;}
.fi .ft b{font-size:.84rem;font-weight:600;}
.fi .ft p{font-size:.76rem;color:var(--t3);margin-top:2px;}
.fi .time{font-size:.72rem;color:var(--t3);white-space:nowrap;}

/* Coming soon */
.coming{height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--t2);text-align:center;}
.coming i{font-size:4.5rem;color:var(--blue);margin-bottom:18px;filter:drop-shadow(0 0 20px rgba(0,102,255,.5));}
.coming h2{font-family:var(--display);color:#fff;letter-spacing:1px;margin-bottom:8px;}
.coming .chip{margin-top:22px;padding:.5rem 1rem;border-radius:22px;background:rgba(0,102,255,.1);
  border:1px solid rgba(0,102,255,.3);color:var(--blue);font-size:.82rem;font-weight:600;display:inline-flex;gap:7px;align-items:center;}

@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.reveal{animation:fadeUp .5s cubic-bezier(.16,1,.3,1) both;}

/* Scrollbar */
::-webkit-scrollbar{width:7px;height:7px;}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:10px;}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2);}

@media(max-width:1180px){
  .kpi-grid,.ai-cards{grid-template-columns:repeat(2,1fr);}
  .branch-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:860px){
  .sidebar{display:none;}
  .chart-grid,.menu-cols,.io-grid,.bottom-grid,.kpi-grid,.ai-cards{grid-template-columns:1fr;}
  .branch-grid{grid-template-columns:1fr;}
  .main{padding:14px;}
}
/* ============================================================
   MODULE SYSTEM — All non-dashboard views
   ============================================================ */

.mod-wrap{padding:4px 0 24px}
.mod-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}
.mod-title{font-size:1.3rem;font-weight:700;display:flex;align-items:center;gap:10px;font-family:var(--display)}
.mod-loading{height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--t3)}
.spin-icon{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Data table */
.data-table{width:100%;border-collapse:collapse;font-size:.84rem}
.data-table thead th{text-align:left;font-size:.71rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--t3);padding:9px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.data-table tbody td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr:hover td{background:rgba(255,255,255,.025)}

/* Form fields */
.field-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.field-label{font-size:.76rem;font-weight:600;color:var(--t2)}
.field-input,.field-select,.field-textarea{font-family:var(--body);background:rgba(0,0,0,.28);color:var(--t1);border:1px solid var(--line);padding:.6rem .9rem;border-radius:var(--r-sm);font-size:.84rem;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:rgba(0,102,255,.5);box-shadow:0 0 0 3px rgba(0,102,255,.10)}
.field-select option{background:var(--bg-1)}
.field-textarea{resize:vertical;min-height:82px;line-height:1.5}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* Buttons */
.btn-primary{padding:.68rem 1.4rem;background:var(--blue);color:#fff;border:none;border-radius:var(--r-sm);font-family:var(--body);font-size:.88rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:.22s}
.btn-primary:hover:not(:disabled){background:var(--blue-2);transform:translateY(-2px)}
.btn-primary:disabled{opacity:.45;cursor:not-allowed}
.btn-secondary{padding:.62rem 1.1rem;background:rgba(255,255,255,.06);color:var(--t1);border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--body);font-size:.84rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:.2s}
.btn-secondary:hover{background:rgba(255,255,255,.1)}
.btn-danger-soft{padding:.42rem .82rem;background:rgba(251,66,103,.12);color:var(--danger);border:1px solid rgba(251,66,103,.22);border-radius:var(--r-sm);font-size:.78rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:.2s}
.btn-danger-soft:hover{background:rgba(251,66,103,.25)}
.btn-success-soft{padding:.42rem .82rem;background:rgba(34,211,139,.12);color:var(--success);border:1px solid rgba(34,211,139,.22);border-radius:var(--r-sm);font-size:.78rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:.2s}
.btn-success-soft:hover{background:rgba(34,211,139,.25)}

/* Status badges */
.sbadge{display:inline-flex;align-items:center;gap:5px;font-size:.71rem;font-weight:700;padding:.22rem .6rem;border-radius:20px}
.sbadge-pending{background:var(--warn-bg);color:var(--warn)}
.sbadge-approved{background:var(--success-bg);color:var(--success)}
.sbadge-rejected{background:var(--danger-bg);color:var(--danger)}

/* Toast */
#toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column-reverse;gap:10px;pointer-events:none}
.toast{padding:13px 18px;border-radius:var(--r-md);font-size:.84rem;font-weight:500;color:#fff;min-width:270px;display:flex;align-items:center;gap:10px;animation:toastIn .4s cubic-bezier(.16,1,.3,1) both;pointer-events:auto;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.toast-success{background:rgba(34,211,139,.92);border:1px solid rgba(34,211,139,.5)}
.toast-error{background:rgba(251,66,103,.92);border:1px solid rgba(251,66,103,.5)}
.toast-info{background:rgba(0,102,255,.92);border:1px solid rgba(0,102,255,.5)}
.toast-warn{background:rgba(255,176,32,.92);border:1px solid rgba(255,176,32,.5);color:#1a1206}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ===== POS MODULE ===== */
.pos-layout{display:grid;grid-template-columns:1fr 385px;gap:14px;height:calc(100vh - 110px);overflow:hidden}
.pos-menu-wrap{display:flex;flex-direction:column;gap:10px;overflow:hidden}
.pos-topbar{padding:13px 18px;display:flex;align-items:center;gap:14px;flex-shrink:0}
.pos-topbar h3{font-size:.95rem;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:8px}
.pos-cats{display:flex;gap:8px;overflow-x:auto;flex:1}
.pos-cats::-webkit-scrollbar{height:0}
.pos-cat{padding:.32rem .75rem;border-radius:20px;font-size:.76rem;font-weight:600;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--t2);white-space:nowrap;transition:.2s;flex-shrink:0}
.pos-cat.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 0 12px rgba(0,102,255,.4)}
.pos-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;overflow-y:auto;padding:2px 2px 10px;flex:1}
.pos-item-card{padding:14px;cursor:pointer;border-radius:var(--r-md);transition:.22s;border:1px solid var(--line);background:var(--panel);position:relative;display:flex;flex-direction:column;gap:4px}
.pos-item-card:hover{transform:translateY(-4px);border-color:var(--blue);background:rgba(0,102,255,.08)}
.pos-item-card.hidden{display:none}
.pic-cat{font-size:.66rem;color:var(--t3);text-transform:uppercase;letter-spacing:.04em}
.pic-name{font-size:.85rem;font-weight:600;line-height:1.3}
.pic-price{font-size:1.05rem;font-weight:800;color:var(--blue);font-family:var(--display);margin-top:4px}
.pic-add-btn{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;background:rgba(0,102,255,.12);color:var(--blue);border:none;cursor:pointer;font-size:.9rem;display:grid;place-items:center;transition:.2s;pointer-events:none}
.pos-item-card:hover .pic-add-btn{background:var(--blue);color:#fff}

/* Cart panel */
.pos-cart-wrap{height:100%;overflow:hidden}
.pos-cart-panel{height:100%;display:flex;flex-direction:column;padding:18px;gap:12px}
.cart-hd{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.cart-hd h3{font-size:.9rem;font-weight:700;display:flex;align-items:center;gap:8px}
.cart-clear-btn{font-size:.76rem;color:var(--t3);background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:5px;transition:.2s}
.cart-clear-btn:hover{color:var(--danger)}
.cart-items-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.cart-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--t3)}
.cart-empty-state i{font-size:2.5rem}
.cart-empty-state p{font-size:.84rem}
.cart-item-entry{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);background:rgba(255,255,255,.03);border:1px solid var(--line-2)}
.cie-name{font-size:.80rem;font-weight:500;line-height:1.3}
.cie-qty{display:flex;align-items:center;gap:5px}
.cie-qty-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--t1);cursor:pointer;display:grid;place-items:center;font-size:.7rem;transition:.18s}
.cie-qty-btn:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.cie-qty-num{font-size:.8rem;font-weight:700;min-width:16px;text-align:center}
.cie-price{font-size:.82rem;font-weight:700;color:var(--blue);font-family:var(--display);white-space:nowrap}
.cie-del{background:transparent;border:none;color:var(--t3);cursor:pointer;font-size:.85rem;display:grid;place-items:center;transition:.2s;width:22px;height:22px}
.cie-del:hover{color:var(--danger)}
.cart-footer{flex-shrink:0;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.cart-line{display:flex;justify-content:space-between;align-items:center;font-size:.84rem;color:var(--t2)}
.cart-line b{font-family:var(--display);color:var(--t1)}
.cart-line.grand{font-size:1rem;font-weight:700;color:var(--t1)}
.cart-line.grand b{color:var(--blue);font-size:1.15rem}
.cart-disc-input{width:100px;background:rgba(0,0,0,.3);border:1px solid var(--line);color:var(--t1);padding:.3rem .5rem;border-radius:var(--r-sm);font-size:.82rem;outline:none;text-align:right}
.cart-disc-input:focus{border-color:rgba(0,102,255,.5)}
.pay-method-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.pay-method-btn{padding:.45rem .3rem;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;color:var(--t2);font-size:.76rem;font-weight:600;cursor:pointer;transition:.2s;text-align:center}
.pay-method-btn.active{background:rgba(0,102,255,.14);border-color:var(--blue);color:var(--blue)}
.cart-checkout-btn{padding:.78rem;background:var(--grad-bp);color:#fff;border:none;border-radius:var(--r-md);font-size:.9rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:.22s;box-shadow:0 4px 18px rgba(0,102,255,.35)}
.cart-checkout-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,102,255,.5)}
.cart-checkout-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* ===== WASTE CONTROL ===== */
.waste-layout{display:grid;grid-template-columns:360px 1fr;gap:14px;align-items:start}
.waste-form-card,.waste-history-card{padding:20px}
.waste-form-card h3,.waste-history-card h3{font-size:.9rem;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:18px}
.calc-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:rgba(251,66,103,.07);border-radius:var(--r-sm);border:1px solid rgba(251,66,103,.18);font-size:.84rem;margin-bottom:14px}

/* ===== PURCHASE CONTROL ===== */
.po-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.po-form-card,.po-list-card{padding:20px}
.po-form-card h3,.po-list-card h3{font-size:.9rem;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:18px}
.po-lines-header{display:grid;grid-template-columns:1fr 80px 110px 36px;gap:8px;font-size:.71rem;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;padding:6px 10px;margin-bottom:4px}
.po-line-row{display:grid;grid-template-columns:1fr 80px 110px 36px;gap:8px;align-items:center;padding:9px 10px;border-radius:var(--r-sm);background:rgba(255,255,255,.03);border:1px solid var(--line-2);margin-bottom:6px}
.po-line-name{font-size:.82rem;font-weight:500}
.po-line-unit{font-size:.7rem;color:var(--t3)}
.po-line-input{background:rgba(0,0,0,.3);border:1px solid var(--line);color:var(--t1);padding:.3rem .5rem;border-radius:var(--r-sm);font-size:.82rem;outline:none;text-align:right;width:100%}
.po-line-input:focus{border-color:rgba(0,102,255,.5)}
.po-add-line-btn{width:100%;padding:.55rem;background:rgba(0,102,255,.08);color:var(--blue);border:1px dashed rgba(0,102,255,.3);border-radius:var(--r-sm);font-size:.82rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:.2s;margin:10px 0}
.po-add-line-btn:hover{background:rgba(0,102,255,.16)}
.po-total-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-size:.9rem;margin-top:8px}
.po-total-row b{font-family:var(--display);font-size:1.1rem;color:var(--blue)}

/* ===== FOOD COST ===== */
.fc-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
.fc-sum-card{padding:16px;text-align:center}
.fc-sum-val{font-size:1.8rem;font-weight:800;font-family:var(--display);margin-bottom:4px}
.fc-sum-label{font-size:.74rem;color:var(--t3);text-transform:uppercase;letter-spacing:.05em}
.fc-header-row{display:grid;grid-template-columns:1fr 110px 110px 110px 130px;padding:8px 16px;font-size:.71rem;color:var(--t3);text-transform:uppercase;letter-spacing:.06em}
.fc-item-row{display:grid;grid-template-columns:1fr 110px 110px 110px 130px;align-items:center;gap:10px;padding:13px 16px;border-radius:var(--r-md);border:1px solid var(--line-2);margin-bottom:8px;transition:.2s}
.fc-item-row:hover{background:rgba(255,255,255,.03)}
.fc-item-name{font-size:.88rem;font-weight:600}
.fc-item-cat{font-size:.71rem;color:var(--t3);margin-top:2px}
.fc-val{font-size:.9rem;font-weight:700;font-family:var(--display);text-align:right}
.fc-bar-track{height:5px;background:rgba(255,255,255,.08);border-radius:5px;overflow:hidden;margin-top:5px}
.fc-bar{height:100%;border-radius:5px;transition:width 1s cubic-bezier(.16,1,.3,1)}

/* ===== APPROVAL WORKFLOW ===== */
.appr-empty{padding:4rem;text-align:center;color:var(--t3);display:flex;flex-direction:column;align-items:center;gap:14px}
.appr-empty i{font-size:3.5rem}
.appr-empty h3{font-size:1rem}
.appr-card{padding:16px 20px;margin-bottom:10px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;transition:.2s}
.appr-card:hover{border-color:rgba(255,176,32,.3)}
.appr-icon-wrap{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:1.3rem;flex-shrink:0}
.appr-body{flex:1;min-width:0}
.appr-title{font-size:.9rem;font-weight:600}
.appr-sub{font-size:.78rem;color:var(--t3);margin-top:3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.appr-actions{display:flex;gap:8px}

/* ===== STAFF CONTROL ===== */
.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.staff-card{padding:18px;display:flex;align-items:center;gap:14px;transition:.2s}
.staff-card:hover{transform:translateY(-3px)}
.staff-av{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:1.3rem;font-weight:700;flex-shrink:0;color:#fff}
.av-owner{background:var(--grad-ob)}.av-manager{background:var(--grad-bp)}
.av-cashier{background:linear-gradient(135deg,var(--success),#1ab37e)}
.av-kitchen{background:linear-gradient(135deg,var(--purple-2),var(--purple))}
.av-delivery{background:linear-gradient(135deg,var(--warn),var(--orange))}
.staff-name{font-size:.9rem;font-weight:600}
.staff-role{font-size:.74rem;text-transform:capitalize;color:var(--t2);margin-top:2px}
.staff-since{font-size:.69rem;color:var(--t3);margin-top:3px}
.role-pill{font-size:.67rem;font-weight:700;padding:.2rem .55rem;border-radius:20px;text-transform:uppercase;letter-spacing:.04em;display:inline-block;margin-top:5px}
.pill-owner{background:rgba(255,138,0,.15);color:var(--orange)}
.pill-manager{background:rgba(0,102,255,.15);color:var(--blue)}
.pill-cashier{background:rgba(34,211,139,.15);color:var(--success)}
.pill-kitchen{background:rgba(168,85,247,.15);color:var(--purple-2)}
.pill-delivery{background:rgba(255,176,32,.15);color:var(--warn)}

/* ===== MODULE RESPONSIVE ===== */
@media(max-width:1280px){.pos-layout{grid-template-columns:1fr 360px}}
@media(max-width:1180px){
  .waste-layout,.po-layout{grid-template-columns:1fr}
  .fc-header-row,.fc-item-row{grid-template-columns:1fr 100px 110px 120px}
  .fc-header-row>:last-child,.fc-item-row>:last-child{display:none}
  .fc-summary{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:860px){
  .pos-layout{grid-template-columns:1fr;grid-template-rows:auto 420px;height:auto}
  .pos-cart-wrap{height:420px}
  .fc-header-row,.fc-item-row{grid-template-columns:1fr 100px 120px}
  .fc-header-row>:nth-child(3),.fc-item-row>:nth-child(3){display:none}
  .fc-summary,.staff-grid{grid-template-columns:1fr}
}

/* ============================================================
   MODULE 1 — AUTH GATE / DEMO BADGE / REP & ADMIN SHELLS
   ============================================================ */
#app-shell{display:none;}

.auth-gate{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  padding:20px;}
.auth-card{width:100%;max-width:420px;padding:36px 32px;text-align:center;}
.auth-logo{width:170px;margin:0 auto 22px;display:block;filter:drop-shadow(0 0 16px rgba(0,102,255,.3));}
.auth-tag{color:var(--t2);font-size:.86rem;margin-bottom:28px;}
.auth-choice-grid{display:flex;flex-direction:column;gap:12px;}
.auth-big-btn{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--r-md);
  border:1px solid var(--line);background:rgba(255,255,255,.03);cursor:pointer;transition:.25s;text-align:left;
  font-family:var(--body);color:var(--t1);}
.auth-big-btn:hover{transform:translateY(-2px);border-color:rgba(0,102,255,.4);background:rgba(0,102,255,.07);}
.auth-big-btn .aic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:1.3rem;flex-shrink:0;}
.auth-big-btn .at b{display:block;font-size:.92rem;font-weight:700;font-family:var(--display);}
.auth-big-btn .at span{font-size:.76rem;color:var(--t3);}
.auth-big-btn.demo .aic{background:rgba(147,51,234,.15);color:var(--purple-2);}
.auth-big-btn.live .aic{background:rgba(0,102,255,.15);color:var(--blue);}
.auth-form{text-align:left;}
.auth-back{font-size:.78rem;color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;gap:5px;margin-bottom:18px;}
.auth-back:hover{color:var(--t1);}
.auth-error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(251,66,103,.25);
  border-radius:var(--r-sm);padding:10px 12px;font-size:.82rem;margin-bottom:14px;display:none;}
.auth-error.show{display:block;}
.auth-pin-input{text-align:center;letter-spacing:.3em;font-size:1.1rem;font-family:var(--display);}

.demo-badge{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:90;
  background:linear-gradient(135deg,var(--purple),var(--purple-2));color:#fff;font-weight:700;font-size:.74rem;
  letter-spacing:.06em;text-transform:uppercase;padding:.4rem 1rem;border-radius:30px;
  box-shadow:0 8px 24px -8px rgba(147,51,234,.6);display:flex;align-items:center;gap:8px;}
.demo-badge button{background:rgba(255,255,255,.2);border:none;color:#fff;border-radius:14px;
  padding:.15rem .6rem;font-size:.7rem;font-weight:700;cursor:pointer;}
.demo-badge button:hover{background:rgba(255,255,255,.32);}

/* Sales Rep / Super-admin বেসিক শেল (POS শেলের বাইরে আলাদা, কিন্তু একই ভিজ্যুয়াল ভাষা) */
.simple-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 18px;}
.simple-shell .sh-head{width:100%;max-width:760px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.simple-shell .sh-head h1{font-size:1.2rem;font-family:var(--display);display:flex;align-items:center;gap:10px;}
.simple-shell-body{width:100%;max-width:760px;display:flex;flex-direction:column;gap:18px;}
.rep-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:640px){.rep-action-grid{grid-template-columns:1fr;}}
.rep-action-card{padding:26px;text-align:center;cursor:pointer;transition:.25s;}
.rep-action-card:hover{transform:translateY(-4px);}
.rep-action-card i{font-size:2.2rem;margin-bottom:10px;display:block;}
.rep-action-card b{display:block;font-family:var(--display);font-size:1rem;margin-bottom:4px;}
.rep-action-card span{font-size:.8rem;color:var(--t3);}
.pin-reveal{background:rgba(34,211,139,.1);border:1px solid rgba(34,211,139,.3);border-radius:var(--r-md);
  padding:18px;text-align:center;margin-top:16px;}
.pin-reveal .pr-id{font-family:var(--display);font-size:1.4rem;font-weight:800;color:var(--success);letter-spacing:.05em;}
.pin-reveal p{font-size:.78rem;color:var(--t2);margin-top:8px;}

/* ============================================================
   MODULE 3 — Tables Bar, Modals, Receipt, Recipe View
   ============================================================ */
.pos-tables-bar{display:flex;gap:8px;padding:12px;margin-bottom:14px;overflow-x:auto;}
.table-chip{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.5rem .9rem;
  border-radius:var(--r-sm);border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--t2);
  font-size:.78rem;font-weight:600;cursor:pointer;transition:.2s;white-space:nowrap;}
.table-chip:hover{border-color:rgba(0,102,255,.4);color:var(--t1);}
.table-chip.active{background:var(--blue);color:#fff;border-color:var(--blue);}
.table-chip.occupied{border-color:rgba(255,176,32,.5);background:rgba(255,176,32,.08);}
.table-chip.occupied.active{background:var(--blue);}
.table-chip .table-amt{font-size:.7rem;font-weight:700;color:var(--warn);}
.table-chip.active .table-amt{color:#fff;}
.cart-ctx-pill{font-size:.7rem;background:rgba(0,102,255,.15);color:var(--blue);padding:.15rem .55rem;
  border-radius:20px;margin-left:8px;font-weight:600;vertical-align:middle;}
.cart-btn-row{display:flex;gap:8px;margin-top:10px;}
.cart-btn-row .cart-checkout-btn{flex:1;}

.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(5,7,15,.7);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:20px;}
.receipt-modal,.recipe-modal{width:100%;max-width:380px;padding:24px;max-height:88vh;overflow-y:auto;}
.recipe-modal{max-width:480px;}
.modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.modal-hd h3{font-size:1rem;font-family:var(--display);display:flex;align-items:center;gap:8px;}

.receipt-head{text-align:center;margin-bottom:14px;font-size:.82rem;color:var(--t2);line-height:1.5;}
.receipt-head b{display:block;font-family:var(--display);font-size:1.05rem;color:#fff;margin-bottom:4px;}
.receipt-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-bottom:14px;}
.receipt-table th{text-align:left;color:var(--t3);font-size:.7rem;text-transform:uppercase;padding-bottom:6px;border-bottom:1px solid var(--line);}
.receipt-table td{padding:5px 0;border-bottom:1px solid var(--line-2);color:var(--t1);}
.receipt-totals{font-size:.84rem;color:var(--t2);}
.receipt-totals>div{display:flex;justify-content:space-between;padding:4px 0;}
.receipt-totals .grand{font-weight:700;color:#fff;font-size:1rem;border-top:1px solid var(--line);margin-top:6px;padding-top:8px;}
.receipt-foot{text-align:center;color:var(--t3);font-size:.78rem;margin-top:14px;}
.receipt-actions{display:flex;gap:10px;margin-top:18px;}
.receipt-actions button{flex:1;justify-content:center;}

/* থার্মাল রিসিট প্রিন্ট — ৮০mm পেপারের জন্য, বাকি সব পেজ লুকিয়ে যাবে */
@media print{
  body *{visibility:hidden;}
  #receipt-print-area, #receipt-print-area *{visibility:visible;}
  #receipt-print-area{position:absolute;top:0;left:0;width:80mm;padding:8px;color:#000;background:#fff;}
  #receipt-print-area .receipt-head b{color:#000;}
  #receipt-print-area td, #receipt-print-area th{color:#000;border-color:#999;}
  #receipt-print-area .receipt-totals .grand{color:#000;}
}

/* ============================================================
   MODULE 4 — Auto-Consumption, Recipe Hub preview cards
   ============================================================ */
.ac-list{display:flex;flex-direction:column;gap:10px;}
.ac-row{display:grid;grid-template-columns:1.2fr 1fr 1fr .8fr .9fr 1.6fr;gap:14px;align-items:center;padding:14px 16px;}
.ac-name{font-weight:700;font-family:var(--display);font-size:.9rem;}
.ac-val{display:flex;flex-direction:column;gap:2px;}
.ac-val span{font-size:.68rem;color:var(--t3);text-transform:uppercase;}
.ac-val b{font-family:var(--display);font-size:.92rem;}
.ac-note{font-size:.78rem;color:var(--t2);line-height:1.4;}
@media(max-width:900px){.ac-row{grid-template-columns:1fr;text-align:left;}}

.recipe-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.recipe-card{padding:18px;text-align:center;}
.rc-img{font-size:2.8rem;margin-bottom:10px;}
.rc-name{font-family:var(--display);font-size:.86rem;font-weight:700;}
.rc-cat{font-size:.74rem;color:var(--t3);margin-top:2px;}
@media(max-width:900px){.recipe-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.recipe-grid{grid-template-columns:1fr;}}