/* POLAR core — component + shell styles */
.pl-shell, .pl-login {
	--bg: #f4f1ec; --card: #fff; --ink: #1e1b18; --mute: #7a7168; --line: #e6dfd6;
	--side: #1c1917; --side-ink: #d6cfc7; --acc: #b8862f; --acc-ink: #fff; --ok: #2f7d4f; --bad: #b3372c;
	font: 14px/1.5 -apple-system, "Segoe UI", "Noto Sans Bengali", system-ui, sans-serif; color: var(--ink);
}
@media (prefers-color-scheme: dark) {
	.pl-shell, .pl-login { --bg: #141210; --card: #1f1c19; --ink: #efe9e1; --mute: #a39a90; --line: #332e29; --side: #0d0c0b; --acc: #d4a24a; --acc-ink: #1a1408; }
}
.pl-shell *, .pl-login * { box-sizing: border-box; }
.pl-shell { display: flex; min-height: 100vh; background: var(--bg); }
.pl-side { width: 248px; flex: none; background: var(--side); color: var(--side-ink); padding: 18px 12px; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.pl-brand { font-weight: 800; letter-spacing: .18em; font-size: 20px; color: #fff; padding: 4px 10px 18px; }
.pl-brand small { display: block; font-weight: 400; letter-spacing: 0; font-size: 11px; color: var(--mute); margin-top: 2px; }
.pl-side a, .pl-side summary { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; color: var(--side-ink); text-decoration: none; cursor: pointer; list-style: none; }
.pl-side summary::-webkit-details-marker { display: none; }
.pl-side a:hover, .pl-side summary:hover { background: rgba(255,255,255,.07); }
.pl-side .on { background: var(--acc); color: var(--acc-ink); font-weight: 600; }
.pl-side i { font-style: normal; width: 20px; text-align: center; opacity: .85; }
.pl-side .pl-sub { padding-left: 40px; font-size: 13px; }
.pl-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pl-top { display: flex; align-items: center; gap: 14px; padding: 12px 24px; background: var(--card); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5; }
.pl-sp { flex: 1; }
.pl-burger { display: none; background: none; border: 0; font-size: 22px; color: var(--ink); cursor: pointer; }
.pl-user { display: flex; flex-direction: column; text-align: right; line-height: 1.2; font-weight: 600; }
.pl-user small { font-weight: 400; color: var(--mute); }
.pl-bell { position: relative; text-decoration: none; color: var(--ink); font-size: 18px; }
.pl-bell b { position: absolute; top: -8px; right: -10px; background: var(--bad); color: #fff; font-size: 10px; border-radius: 10px; padding: 0 5px; }
.pl-content { padding: 24px; max-width: 1400px; width: 100%; }

.pl-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.pl-head h2 { margin: 0; font-size: 22px; }
.pl-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.pl-h3 { margin: 0; padding: 14px 16px 6px; font-size: 15px; }
.pl-hint { color: var(--mute); font-size: 12px; margin: 8px 0; }
.pl-card { background: var(--card); border: 1px solid var(--line); border-radius: 12px; margin-bottom: 16px; overflow: hidden; }
.pl-card.pad { padding: 16px; overflow: visible; }
.pl-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; align-items: start; }
.pl-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 16px; }
.pl-stat { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; height: 100%; }
.pl-stat span { display: block; color: var(--mute); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.pl-stat b { font-size: 22px; }
.pl-statlink { text-decoration: none; color: inherit; }
.pl-statlink:hover .pl-stat { border-color: var(--acc); }

.pl-tablewrap { overflow-x: auto; }
.pl-table { width: 100%; border-collapse: collapse; }
.pl-table th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--mute); padding: 10px 14px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.pl-table td { padding: 10px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.pl-table tr:last-child td { border-bottom: 0; }
.pl-table tr.tot td { background: rgba(184,134,47,.1); }
.pl-empty { text-align: center; color: var(--mute); padding: 24px !important; }
.pl-rowact { white-space: nowrap; text-align: right; }
.pl-sub2 { display: block; color: var(--mute); font-size: 11px; }
.pl-thumb { width: 36px; height: 36px; object-fit: cover; border-radius: 6px; }
.neg { color: var(--bad); } .pos { color: var(--ok); }
.pl-badge { display: inline-block; padding: 1px 9px; border-radius: 99px; font-size: 12px; background: var(--line); }
.pl-badge.ok { background: rgba(47,125,79,.15); color: var(--ok); } .pl-badge.bad { background: rgba(179,55,44,.15); color: var(--bad); }

.pl-btn, .pl-link { font: inherit; cursor: pointer; text-decoration: none; }
.pl-btn { display: inline-block; padding: 8px 14px; border-radius: 8px; border: 1px solid var(--line); background: var(--card); color: var(--ink); }
.pl-btn:hover { border-color: var(--acc); }
.pl-btn.pri { background: var(--acc); border-color: var(--acc); color: var(--acc-ink); font-weight: 600; }
.pl-btn.lg { padding: 12px 22px; font-size: 16px; }
.pl-link { background: none; border: 0; color: var(--acc); padding: 2px 6px; }
.pl-link.danger { color: var(--bad); }
.pl-inline { display: inline; }
.pl-notice { padding: 10px 14px; border-radius: 8px; margin-bottom: 14px; border: 1px solid; }
.pl-notice.ok { background: rgba(47,125,79,.12); border-color: var(--ok); } .pl-notice.bad { background: rgba(179,55,44,.12); border-color: var(--bad); }

.pl-search { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.pl-search.wide { margin-bottom: 16px; }
.pl-chk { display: flex; gap: 4px; align-items: center; font-size: 13px; }
.pl-shell input[type=text], .pl-shell input[type=search], .pl-shell input[type=number], .pl-shell input[type=email], .pl-shell input[type=date], .pl-shell input[type=month], .pl-shell input[type=time], .pl-shell input[type=password], .pl-shell select, .pl-shell textarea {
	font: inherit; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--ink); max-width: 100%;
}
.pl-shell input.sm { width: 84px; padding: 4px 6px; }
.pl-shell input:focus, .pl-shell select:focus, .pl-shell textarea:focus { outline: 2px solid var(--acc); outline-offset: 0; }
.pl-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.pl-form.inline { align-items: end; } .pl-form.mini { grid-template-columns: 1fr; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.pl-field { display: flex; flex-direction: column; gap: 4px; } .pl-field > span { font-size: 12px; color: var(--mute); font-weight: 600; }
.pl-field input, .pl-field select, .pl-field textarea { width: 100%; } .pl-field.wide, .pl-formact { grid-column: 1 / -1; }
.pl-formgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.pl-pager { display: flex; gap: 6px; align-items: center; padding: 10px 14px; color: var(--mute); }
.pl-pager span { margin-right: auto; } .pl-pager a { padding: 2px 9px; border-radius: 6px; border: 1px solid var(--line); text-decoration: none; color: var(--ink); } .pl-pager a.cur { background: var(--acc); color: var(--acc-ink); border-color: var(--acc); }
.pl-dl { display: grid; grid-template-columns: 130px 1fr; gap: 6px 12px; margin: 0; } .pl-dl dt { color: var(--mute); } .pl-dl dd { margin: 0; }
.pl-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 14px; } .pl-tabs a { padding: 7px 14px; border-radius: 8px; text-decoration: none; color: var(--ink); border: 1px solid var(--line); background: var(--card); } .pl-tabs a.on { background: var(--acc); color: var(--acc-ink); border-color: var(--acc); }
.pl-notif { display: flex; flex-direction: column; padding: 12px 16px; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); } .pl-notif span { color: var(--mute); }

/* POS */
.pl-pos { display: grid; grid-template-columns: minmax(280px, 5fr) 7fr; gap: 16px; align-items: start; }
#pl-psearch { width: 100%; font-size: 16px; padding: 12px; }
.pl-presults { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-top: 12px; max-height: 62vh; overflow-y: auto; }
.pl-prod { text-align: left; background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: 10px; cursor: pointer; display: flex; flex-direction: column; gap: 2px; color: var(--ink); font: inherit; }
.pl-prod:hover { border-color: var(--acc); } .pl-prod span { font-size: 11px; color: var(--mute); } .pl-prod em { font-style: normal; color: var(--acc); font-weight: 600; font-size: 13px; } .pl-prod.out { opacity: .45; }
.pl-totals { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; } .pl-totals div { display: flex; justify-content: space-between; align-items: center; }
.pl-totals .grand { font-size: 20px; font-weight: 800; border-top: 1px solid var(--line); padding-top: 8px; }

/* charts, calendar */
.pl-chart h4 { margin: 0 0 10px; } .bars { display: flex; gap: 8px; align-items: flex-end; height: 140px; }
.bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; } .bar i { display: block; width: 100%; background: var(--acc); border-radius: 4px 4px 0 0; min-height: 2px; } .bar span { font-size: 10px; color: var(--mute); margin-top: 4px; }
.pl-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; } .pl-cal .h { font-weight: 700; text-align: center; color: var(--mute); }
.pl-cal .d { min-height: 64px; border: 1px solid var(--line); border-radius: 8px; padding: 4px 6px; display: flex; flex-direction: column; font-size: 11px; } .pl-cal .d small { color: var(--mute); }
.pl-cal .d.present { background: rgba(47,125,79,.15); } .pl-cal .d.late { background: rgba(212,162,74,.25); } .pl-cal .d.absent { background: rgba(179,55,44,.15); } .pl-cal .d.leave, .pl-cal .d.holiday { background: rgba(80,120,200,.15); }
.pl-print-title { display: none; font-weight: 700; padding: 10px 14px; }

/* login */
.pl-login { min-height: 100vh; display: grid; place-items: center; background: var(--bg); padding: 16px; }
.pl-login-card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 32px; width: 100%; max-width: 380px; text-align: center; }
.pl-login-card h1 { letter-spacing: .2em; margin: 6px 0 0; } .pl-login-card p { color: var(--mute); margin: 0 0 18px; } .pl-logo { max-height: 64px; }
.pl-login-card form { text-align: left; display: flex; flex-direction: column; gap: 10px; } .pl-login-card label { font-size: 12px; color: var(--mute); font-weight: 600; display: block; }
.pl-login-card input[type=text], .pl-login-card input[type=password] { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--ink); font: inherit; }
.pl-login-card input[type=submit] { background: var(--acc); color: var(--acc-ink); border: 0; padding: 11px; border-radius: 8px; font-weight: 700; cursor: pointer; width: 100%; }
.pl-forgot { display: block; margin-top: 14px; font-size: 13px; color: var(--acc); }

@media (max-width: 900px) {
	.pl-side { position: fixed; left: -260px; z-index: 20; transition: left .2s; } .pl-side.open { left: 0; }
	.pl-burger { display: block; } .pl-content { padding: 14px; } .pl-pos { grid-template-columns: 1fr; } .pl-user small { display: none; }
}
@media print {
	.pl-side, .pl-top, .noprint, .pl-pager, .pl-rowact, .pl-search, .pl-notice { display: none !important; }
	.pl-shell { display: block; background: #fff; } .pl-content { padding: 0; } .pl-card { border: 0; } .pl-print-title { display: block; }
}

#pl-redeem-wrap[hidden] { display: none; } #pl-redeem-wrap input { width: 110px; } #pl-redeem-wrap small { color: var(--muted, #667); font-weight: 400; }
.pl-sub-h { margin: 22px 0 8px; }
