:root{color-scheme:light;--ink:#16304a;--muted:#48647b;--blue:#135985;--blue-dark:#0e456b;--ice:#dceffa;--line:#cbdce8;--paper:#fff;--background:#f3f7fb;--good:#1e6546;--danger:#a52c32;--radius:4px}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--ink);font:16px/1.55 system-ui,"Noto Sans Bengali",sans-serif}a{color:var(--blue);text-underline-offset:3px}a:hover{color:var(--blue-dark)}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;background:var(--blue);color:white;border:1px solid transparent;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 13px;text-align:center;text-decoration:none;line-height:1.25;max-width:100%;overflow-wrap:anywhere}button:hover,.button:hover{background:var(--blue-dark);color:white}button.quiet,.button.quiet{background:#edf6fc;color:var(--blue-dark);border-color:var(--line)}button.quiet:hover,.button.quiet:hover{background:var(--ice)}:focus-visible{outline:3px solid #c17110;outline-offset:2px}
.top{display:flex;align-items:center;gap:10px;padding:3px 10px;background:var(--ice);border-bottom:1px solid #bdd9eb;min-height:51px}.top nav,.tools,.pager{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.top nav{margin-left:auto}.top form,.tools form{margin:0}.brand,.public-brand{display:flex;align-items:center;gap:10px;min-width:0;color:var(--ink);text-decoration:none;line-height:1.25}.brand strong{overflow-wrap:anywhere}.logo{display:inline-grid;place-items:center;width:32px;height:32px;object-fit:contain;flex:none;border-radius:8px}.brand-icon{color:white;background:var(--blue);font-weight:800}.header-stats{font-size:.8rem;color:var(--blue-dark);display:flex;gap:4px 12px;flex-wrap:wrap}.menu-toggle{display:none}
.shell{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:calc(100vh - 51px)}aside{background:#e1ecf6;border-right:1px solid var(--line);padding:6px}.workspace{min-width:0;padding:10px 12px 16px}.public{margin:24px auto 56px;padding:0 16px;max-width:1030px}.public:has(.login-card){max-width:480px;margin-top:clamp(24px,8vh,90px)}.public-brand{justify-content:space-between;background:var(--ice);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.public:has(.login-card) .page-title{text-align:center}.login-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:grid;gap:15px}
aside details{margin:0 0 3px}summary{cursor:pointer;font-weight:650;min-height:44px;padding:9px 8px}aside ul{list-style:none;margin:0 0 6px 15px;padding:0 0 0 12px;border-left:1px dotted #7298b2}aside li{position:relative}aside li:before{content:"";position:absolute;left:-12px;top:22px;width:10px;border-top:1px dotted #7298b2}aside a{display:block;min-height:44px;padding:10px 7px;border-radius:6px;text-decoration:none}aside a:hover,aside a[aria-current]{background:#d5e8f7;color:#074772}
h1,h2,h3{line-height:1.22;margin:0 0 5px;overflow-wrap:anywhere}.page-title{font-size:clamp(1.25rem,2vw,1.55rem);margin:0 0 8px;letter-spacing:-.015em}h2{font-size:1.05rem}h3{font-size:1rem}.panel,.card{padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.panel{margin:0 0 8px}.panel>.form-grid{margin-bottom:0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr));gap:6px;margin-bottom:8px}.shortcut-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr))}.shortcut-cards .button{margin:1px 4px 1px 0}.metrics .card{border-top:3px solid #7eb4d6}.metrics .card strong{font-size:1.26rem}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.notice{background:#e8f7ee;color:var(--good);border:1px solid #b8dec9;border-radius:var(--radius);padding:10px 14px;margin:0 0 16px}.notice.error{background:#fff0f0;color:var(--danger);border-color:#efc5c7}.danger{color:var(--danger);font-weight:700}.muted{color:var(--muted)}.tools,.pager{margin:0 0 8px}.pager{justify-content:center;margin:14px 0}
.form-grid,.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,195px),1fr));gap:8px;align-items:end;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:8px;margin:0 0 8px}.filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,105px),1fr));padding:11px;gap:8px}.full{grid-column:1/-1}label{display:grid;align-content:start;gap:4px;font-size:.92rem;font-weight:650;min-width:0}input,select,textarea{color:var(--ink);background:white;border:1px solid #a8bfd1;border-radius:6px;min-height:44px;padding:7px 9px;min-width:0;width:100%;font-size:16px}input[type=checkbox]{width:23px;min-height:23px;accent-color:var(--blue)}.check{display:flex;align-items:center;min-height:44px;gap:8px}textarea{resize:vertical;min-height:80px}fieldset{min-width:0;padding:10px;border-radius:7px;border:1px solid var(--line)}legend{font-weight:700}.bill-line{display:grid;grid-template-columns:minmax(150px,2.2fr) minmax(75px,.8fr) minmax(75px,.8fr) auto;gap:8px;align-items:end;border-bottom:1px solid var(--line);padding:8px 0;margin:0 0 8px}.bill-preview{display:flex;gap:18px;flex-wrap:wrap;background:#e7f2fb;border-radius:7px;padding:10px 13px}.bill-preview span{display:grid}
.table-wrap{overflow:auto;margin:0 0 6px}table{width:100%;border-collapse:collapse;background:white;font-size:.9rem}th,td{padding:5px 7px;text-align:left;border:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}th{background:#e0eff9;color:#163d5a;white-space:normal}tbody tr:nth-child(even){background:#f7fbfe}td .button{margin:1px 3px 1px 0}.empty td{text-align:center;color:var(--muted);padding:16px}
.invoice{background:white;max-width:850px;padding:clamp(15px,4vw,35px);border:1px solid var(--line);margin:0 auto 16px}.invoice-head,.invoice-foot{display:flex;justify-content:space-between;gap:14px;margin:0 0 22px}.invoice-head>*:last-child{text-align:right}.invoice-head h2{text-transform:uppercase;font-size:1.8rem}.invoice-logo{max-width:140px;max-height:80px;object-fit:contain}.invoice th{background:#2672a2;color:white}.invoice td:nth-child(2){width:45%}.invoice-foot p{white-space:pre-wrap}.invoice-foot dl{display:grid;grid-template-columns:minmax(92px,1fr) auto;gap:6px 12px;min-width:210px;margin:0}.invoice-foot dd{margin:0;text-align:right;font-weight:650}.stamp{border:3px double #ac323b;color:#a52c32;font-weight:800;display:table;margin:22px 0 20px auto;padding:4px 11px;letter-spacing:.06em}.signature{border-top:1px solid #667c8a;text-align:center;width:max-content;max-width:100%;padding-top:5px;margin:35px 0 0 auto}.receipt-small{max-width:78mm;padding:3mm;font-size:.8rem}.receipt-small th,.receipt-small td{padding:3px;font-size:.69rem}.receipt-small .invoice-head h2{font-size:1rem}.receipt-small .invoice-foot{display:block}.receipt-small .invoice-foot dl{min-width:0}.receipt-small .inline-table{min-width:0}.product-photo{width:100%;max-width:220px;aspect-ratio:1;object-fit:contain;background:#f7fafc;border-radius:7px}.print-report{display:none}
@media(max-width:960px){.top{gap:6px;flex-wrap:wrap}.dashboard-grid{grid-template-columns:1fr}.top nav{gap:4px}}
@media(max-width:740px){.menu-toggle{display:inline-flex}.top{padding:4px 6px}.top nav,.header-stats{width:100%}.top nav{justify-content:flex-start}.top nav .button,.top nav button{padding-inline:7px}.shell{display:block}.shell aside{display:none}.shell aside.open{display:block}.workspace{padding:8px}.shortcut-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid,.filters,.bill-line{grid-template-columns:1fr}.bill-line [data-remove]{justify-self:start}.table-wrap:has(.stack){overflow:visible}.stack,.stack tbody,.stack tr,.stack td{display:block}.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.stack tr{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:6px;padding:2px 7px}.stack td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px;border:0;border-bottom:1px solid #e5eef5;padding:6px 0}.stack td:last-child{border:0}.stack td:before{content:attr(data-label);font-weight:700;color:var(--muted)}.stack .empty td{display:block}.stack .empty td:before{content:none}.invoice-foot{display:block}.invoice-head h2{font-size:1.25rem}.inline-table{min-width:415px}.invoice-foot dl{padding-top:10px}.stack td form{display:block;min-width:0}}
@page{size:A4;margin:12mm}@page receipt{size:80mm 200mm;margin:3mm}
@media print{body{background:white;color:black;font-size:11pt}.no-print,.public-brand,.screen-report,.notice{display:none!important}.print-report{display:block}.shell{display:block}.workspace,.public{margin:0;padding:0}.workspace:has(.invoice)>.page-title{display:none}.invoice{width:100%;max-width:none;border:0;padding:0;margin:0}.invoice.receipt-small{page:receipt;max-width:74mm;font-size:9pt}.invoice-head,.invoice-foot{display:flex}.invoice th{background:#2672a2!important;color:white!important;print-color-adjust:exact}.table-wrap{overflow:visible}.inline-table{min-width:0}.stack,.inline-table{display:table}.stack thead,.inline-table thead{display:table-header-group;position:static;width:auto;height:auto;overflow:visible;clip-path:none}.stack tbody{display:table-row-group}.stack tr{display:table-row}.stack td{display:table-cell}.stack td:before{content:none}tr{break-inside:avoid}a{color:inherit;text-decoration:none}}

.menu-settings {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
    column-gap: 8px;
}
.top nav .quiet, .top nav button {
    background: transparent;
    border-color: transparent;
    color: var(--blue-dark);
    font-weight: 650;
}
.top nav .quiet:hover, .top nav button:hover { background: #c8e1f2; }
#sidebar summary { list-style: none; }
#sidebar summary::-webkit-details-marker { display: none; }
#sidebar summary::before {
    content: "+";
    display: inline-grid;
    place-items: center;
    width: 12px;
    height: 12px;
    line-height: 1;
    margin-right: 6px;
    border: 1px solid #6e8da4;
    color: #25465a;
    font: 12px/1 monospace;
    vertical-align: 1px;
}
#sidebar details[open] > summary::before { content: "−"; }
@media (min-width: 741px) {
    #sidebar summary, #sidebar a { min-height: 0; padding: 5px 6px; font-size: .88rem; }
    #sidebar li::before { top: 14px; }
}
@media (max-width: 740px) {
    #sidebar { border-bottom: 1px solid var(--line); }
    .header-stats { gap: 3px 10px; padding: 2px 0; }
    .top nav .button, .top nav button { padding-inline: 8px; }
    .form-grid, .filters { gap: 6px; }
}
