:root{--bg:#f4fbf2;--panel:#fffef8;--soft:#eaf7e8;--green:#2e944f;--green2:#1f7a42;--mint:#dff5e3;--orange:#ff7a20;--red:#dc3e31;--ink:#17231c;--muted:#64746b;--line:#d5e7d4;--shadow:0 12px 30px rgba(40,90,50,.13)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f8fff7,#eef8f0);font-family:"Noto Sans Tamil","Segoe UI",Arial,sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{display:grid;grid-template-columns:var(--side-w,290px) 1fr;min-height:100vh}.side{background:rgba(255,255,248,.9);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;min-width:220px;max-width:420px;overflow:visible}.brand{display:flex;gap:12px;align-items:center}.logo{width:62px;height:62px;border-radius:20px;background:var(--soft);display:grid;place-items:center;font-size:32px;box-shadow:inset 6px 6px 12px #d9ead8,inset -6px -6px 12px #fff}.brand b{font-size:24px;color:var(--green2);line-height:1.1}.brand small{color:var(--muted)}.nav{display:flex;flex-direction:column;gap:8px}.nav button{border:0;background:transparent;border-radius:16px;padding:13px 14px;text-align:left;font-weight:1000;color:#122018}.nav button.active,.nav button:hover{background:linear-gradient(145deg,#3ba95e,#258447);color:#fff;box-shadow:var(--shadow)}.support,.userBox{margin-top:auto;background:var(--soft);border:1px solid var(--line);border-radius:18px;padding:16px;color:var(--green2);font-weight:800}.userBox{margin-top:0;color:var(--ink)}.main{min-width:0}.top{height:86px;background:rgba(255,255,252,.92);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 28px;position:sticky;top:0;z-index:5}.search{height:48px;min-width:340px;border:1px solid var(--line);border-radius:16px;padding:0 18px;background:white;box-shadow:inset 4px 4px 10px rgba(60,100,60,.05)}.btn{border:0;border-radius:14px;padding:13px 18px;background:var(--green);color:#fff;font-weight:900;box-shadow:var(--shadow)}.btn.orange{background:var(--orange)}.btn.light{background:var(--soft);color:var(--green2);box-shadow:none;border:1px solid var(--line)}.btn.red{background:var(--red)}.content{padding:24px 28px 64px}.title{font-size:28px;margin:0 0 18px;font-weight:1000}.grid{display:grid;gap:18px}.kpis{grid-template-columns:repeat(4,minmax(160px,1fr))}.card{background:rgba(255,255,250,.94);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow)}.kpi b{font-size:26px;color:var(--green2)}.kpi span{color:var(--muted);font-weight:700}.split{display:grid;grid-template-columns:1fr 340px;gap:20px}.table{width:100%;border-collapse:separate;border-spacing:0;background:white;border-radius:18px;overflow:hidden;border:1px solid var(--line)}.table th{background:#f3ecdf;text-align:left;padding:13px;font-size:14px}.table td{border-top:1px solid #eee;padding:13px}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field label{display:block;font-weight:900;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.actions{display:flex;gap:10px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:6px;background:var(--soft);color:var(--green2);border-radius:999px;padding:7px 11px;font-weight:900}.empty{padding:36px;text-align:center;color:var(--muted)}.footer{position:fixed;left:var(--side-w,290px);right:0;bottom:0;background:rgba(255,255,248,.95);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:12px;font-weight:900;color:#2a3d30}.modal{position:fixed;inset:0;background:rgba(20,40,25,.35);display:none;place-items:center;z-index:10}.modal.on{display:grid}.modalBox{width:min(720px,92vw);max-height:88vh;overflow:auto;background:#fffef8;border-radius:24px;padding:24px;box-shadow:0 25px 80px rgba(0,0,0,.25)}@media(max-width:1000px){.app{grid-template-columns:1fr}.side{position:relative;height:auto}.split{grid-template-columns:1fr}.footer{left:0}.kpis{grid-template-columns:1fr 1fr}.top{flex-wrap:wrap;height:auto;padding:12px}.search{min-width:0;flex:1}.content{padding:18px}}
.loginPage{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#ecfaea,#fff8e9)}.loginCard{width:min(420px,92vw);background:#fffef8;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 22px 70px rgba(40,90,50,.18)}.loginBrand{margin-bottom:18px}.loginCard h2{margin:6px 0 8px;font-size:30px;color:var(--green2)}.loginCard p{color:var(--muted);font-weight:700}.loginCard label{display:block;font-weight:900;margin:14px 0 7px}.loginCard .search{width:100%;min-width:0}.loginCard .btn{width:100%;margin-top:18px}.loginHint{margin-top:14px;padding:12px;background:var(--soft);border-radius:14px;color:var(--green2);font-weight:800}.miniLogout{margin-top:8px;border:1px solid var(--line);background:white;color:var(--green2);border-radius:12px;padding:8px 12px;font-weight:900}.saleCustomer{display:block;margin:0 0 14px}.theme-mint{--bg:#f0fbfa;--soft:#e1f6f2;--green:#14927d;--green2:#087060;--mint:#dff7f2;--orange:#ff8a3d;--line:#cceae3;--shadow:0 12px 30px rgba(10,110,95,.12)}.theme-mint body,.theme-mint{background:linear-gradient(135deg,#f7fffd,#edf9f6)}.theme-cream{--bg:#fffaf0;--soft:#fff1d9;--green:#6a8d34;--green2:#476821;--mint:#eef6d9;--orange:#e67821;--line:#e8d9bd;--shadow:0 12px 30px rgba(130,95,40,.12)}.theme-cream body,.theme-cream{background:linear-gradient(135deg,#fffdf7,#f6f0df)}
.permGrid{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px;margin:10px 0}.permGrid label{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:10px;font-weight:900}.field small{display:block;color:var(--muted);margin-top:5px}.badgeBad{background:#ffe7e3!important;color:#b4281d!important}.sum{background:#fbfff8;border:1px solid var(--line);border-radius:16px;padding:14px;margin:12px 0}.sumRow{display:flex;justify-content:space-between;gap:10px;margin:8px 0}.sumRow.big{font-size:20px;color:var(--green2);font-weight:1000}
.imagePick{display:flex;flex-direction:column;gap:8px}
.imagePick img{width:160px;height:120px;object-fit:contain;background:#f3fbf2;border:1px solid #cfe8d1;border-radius:18px;padding:8px;box-shadow:inset 0 2px 8px rgba(0,0,0,.05)}
.totalBox{padding:14px 16px;border:1px solid #cfe8d1;border-radius:14px;background:#f3fbf2;font-size:22px;font-weight:900;color:#087a38}
button.danger,.btn.red,.danger{background:#ffe9e6!important;color:#a32114!important;border:1px solid #ffc8c0!important;border-radius:10px;padding:8px 12px}

.heroBasket{width:min(560px,42vw);height:260px;object-fit:contain;filter:drop-shadow(0 24px 32px rgba(30,90,40,.24));transform:scale(1.18);transform-origin:center right}.hero{min-height:260px;overflow:hidden}.printBill,.printBill *{font-weight:900}.billTable td,.billTable th{font-weight:900}.billSum .sumRow{font-weight:1000}

.table button{border:0;border-radius:10px;padding:8px 12px;background:linear-gradient(145deg,#e9f8e7,#d4f0d8);color:#087a38;font-weight:900;border:1px solid #bee6c6;box-shadow:0 4px 10px rgba(40,90,50,.08)}
.table button:hover{background:linear-gradient(145deg,#32a65c,#218246);color:white}.table button+button{margin-left:8px}
.checkLine{display:flex;align-items:center;gap:8px;margin:8px 0;font-weight:900;color:#1f7a42}.splitPay{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.splitPay .search{width:100%;min-width:0;margin-top:6px}.actions .btn,.payGrid button,.weights button{box-shadow:0 8px 18px rgba(30,100,50,.12)}
.goodText{color:#16803a;font-weight:900}.badText{color:#d33222;font-weight:900}.status{font-weight:900;padding:6px 10px;border-radius:14px;display:inline-block}.status.good{background:#e4f7e7;color:#16803a}.status.bad{background:#ffe9e5;color:#d33222}.status.warn{background:#fff3d8;color:#9a6500}
/* V28: saved shop name sync in sidebar/login */
.brandName{white-space:normal;word-break:break-word;line-height:1.15;display:inline-block;max-width:115px;font-weight:900}
.loginBrand .brandName{max-width:260px}
.passWrap{position:relative}.passWrap .passInput{width:100%;padding-right:54px}.eyeBtn{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:#eef8ee;border-radius:12px;padding:8px 11px;cursor:pointer;font-size:18px}.pageSearch{max-width:380px}.dashProductHead{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap}.dashSearch{max-width:420px}

/* V36: Shop name should stay in one line in login and dashboard/sidebar brand panels */
.brandName{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow:visible!important;
  max-width:none!important;
  line-height:1.05!important;
}
.side .brand b.brandName{
  font-size:20px!important;
  letter-spacing:.1px;
}
.loginBrand b.brandName{
  font-size:24px!important;
  max-width:none!important;
}
@media (min-width:901px){
  .side .brand{gap:10px!important;align-items:center!important;}
  .side .brand .logo{flex:0 0 56px!important;width:56px!important;height:56px!important;}
}
@media (max-width:560px){
  .loginBrand b.brandName{font-size:22px!important;}
}

/* V37: adjustable sidebar divider - prevents shop name from hiding */
.sideResize{position:absolute;top:0;right:-6px;width:12px;height:100vh;cursor:col-resize;z-index:30;background:transparent}
.sideResize::after{content:"";position:absolute;top:0;bottom:0;left:5px;width:2px;background:transparent}
.sideResize:hover::after,.sideResize.dragging::after{background:#2e944f;box-shadow:0 0 0 3px rgba(46,148,79,.12)}
.side .brand{min-width:0}
.side .brand>div:last-child{min-width:0;flex:1}
.side .brand b.brandName{font-size:18px!important;max-width:calc(var(--side-w,290px) - 96px)!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important}
@media(max-width:1000px){.sideResize{display:none}.footer{left:0}}

/* V38: real draggable sidebar handle */
.sideResize{right:-10px!important;width:20px!important;cursor:ew-resize!important;touch-action:none!important;user-select:none!important}
.sideResize span{position:absolute;top:0;bottom:0;left:8px;width:4px;background:rgba(46,148,79,.18);border-radius:4px;transition:.15s}
.sideResize:hover span,.sideResize.dragging span{background:#2e944f;box-shadow:0 0 0 5px rgba(46,148,79,.16)}
body.resizingSidebar,body.resizingSidebar *{cursor:ew-resize!important;user-select:none!important}
