:root{
    --primary:#1a56db;
    --primary-dark:#1543a8;
    --bg:#f4f6fb;
    --card:#ffffff;
    --border:#e2e6ee;
    --text:#1f2430;
    --muted:#6b7280;
    --danger:#dc2626;
    --success:#16a34a;
    font-family:'Segoe UI', 'Noto Sans Bengali', system-ui, sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);}

/* ---------- LOGIN ---------- */
.login-body{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#1a56db,#0f2f6b);}
.login-box{background:var(--card);padding:40px;border-radius:12px;width:340px;box-shadow:0 20px 50px rgba(0,0,0,.25);}
.login-box h1{margin:0;font-size:22px;color:var(--primary);}
.login-box .sub{color:var(--muted);margin-top:4px;margin-bottom:20px;font-size:14px;}
.login-box label{display:block;font-size:13px;margin:10px 0 4px;color:var(--muted);}
.login-box input{width:100%;padding:10px;border:1px solid var(--border);border-radius:8px;font-size:15px;}
.login-box button{margin-top:20px;width:100%;padding:11px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:15px;cursor:pointer;}
.login-box button:hover{background:var(--primary-dark);}
.login-box .hint{font-size:12px;color:var(--muted);text-align:center;margin-top:14px;}
.alert-error{background:#fee2e2;color:var(--danger);padding:8px 10px;border-radius:6px;font-size:13px;margin-bottom:6px;}

/* ---------- LAYOUT ---------- */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:210px;background:#111827;color:#fff;padding:20px 0;}
.sidebar .logo{font-size:20px;font-weight:700;padding:0 20px 20px;color:#fff;}
.sidebar .logo span{color:#60a5fa;}
.sidebar nav{display:flex;flex-direction:column;}
.sidebar nav a{padding:12px 20px;color:#d1d5db;text-decoration:none;font-size:14px;}
.sidebar nav a:hover{background:#1f2937;color:#fff;}
.sidebar nav a.disabled{color:#4b5563;pointer-events:none;}
.sidebar nav a.logout{margin-top:auto;color:#f87171;}

.main-content{margin-left:210px;padding:24px;}
.topbar{display:flex;justify-content:space-between;background:var(--card);padding:14px 20px;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.06);margin-bottom:20px;font-size:14px;}

.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.card-link{background:var(--card);padding:20px;border-radius:10px;text-decoration:none;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid var(--border);}
.card-link h3{margin:0 0 6px;color:var(--primary);}
.card-link p{margin:0;font-size:13px;color:var(--muted);}
.card-link.disabled{opacity:.5;}

/* ---------- POS ---------- */
.pos-wrap{display:grid;grid-template-columns:1fr 340px;gap:16px;height:calc(100vh - 40px);}
.pos-left{background:var(--card);border-radius:10px;padding:16px;display:flex;flex-direction:column;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.pos-search{position:relative;margin-bottom:10px;}
.pos-search input{width:100%;padding:14px;font-size:18px;border:2px solid var(--primary);border-radius:8px;}
.pos-suggest{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:8px;max-height:260px;overflow-y:auto;z-index:20;box-shadow:0 8px 20px rgba(0,0,0,.12);}
.pos-suggest div{padding:10px 12px;cursor:pointer;font-size:14px;display:flex;justify-content:space-between;}
.pos-suggest div.active,.pos-suggest div:hover{background:#eef2ff;}

table.cart{width:100%;border-collapse:collapse;font-size:14px;flex:1;overflow-y:auto;display:block;}
table.cart thead{display:table;width:100%;table-layout:fixed;}
table.cart tbody{display:block;overflow-y:auto;max-height:calc(100vh - 260px);}
table.cart tbody tr{display:table;width:100%;table-layout:fixed;}
table.cart th{background:#f1f5f9;text-align:left;padding:8px;}
table.cart td{padding:8px;border-bottom:1px solid var(--border);}
table.cart input{width:100%;padding:6px;border:1px solid var(--border);border-radius:4px;text-align:right;}
table.cart td.rm{color:var(--danger);cursor:pointer;text-align:center;}

.pos-right{background:var(--card);border-radius:10px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);display:flex;flex-direction:column;}
.pos-right h3{margin-top:0;}
.pos-right label{font-size:13px;color:var(--muted);display:block;margin:10px 0 4px;}
.pos-right input,.pos-right select{width:100%;padding:9px;border:1px solid var(--border);border-radius:6px;font-size:15px;}
.pos-totals{margin-top:auto;border-top:1px solid var(--border);padding-top:12px;font-size:15px;}
.pos-totals .row{display:flex;justify-content:space-between;padding:4px 0;}
.pos-totals .grand{font-size:22px;font-weight:700;color:var(--primary);}
.pos-totals .due{color:var(--danger);font-weight:600;}
.btn-pay{margin-top:14px;width:100%;padding:14px;background:var(--success);color:#fff;border:none;border-radius:8px;font-size:17px;cursor:pointer;}
.btn-pay:hover{background:#128a3e;}
.shortcut-help{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.6;}
.shortcut-help b{color:var(--text);}
