:root{--navy:#14213d;--navy-2:#1d2d52;--orange:#f08a24;--orange-d:#d9740f;--cream:#faf6ef;--ink:#1f2937;--muted:#6b7280;--card:#fff;--line:#e8e2d6;
--ok:#1f9d6b;--warn:#c98a0b;--bad:#d64545;--info:#2f6fd6;--purple:#7a4fd6}
body{background:var(--cream);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Noto Sans Bengali",sans-serif}
.btn-primary{--bs-btn-bg:var(--orange);--bs-btn-border-color:var(--orange);--bs-btn-hover-bg:var(--orange-d);--bs-btn-hover-border-color:var(--orange-d);--bs-btn-active-bg:var(--orange-d);--bs-btn-disabled-bg:var(--orange);--bs-btn-disabled-border-color:var(--orange)}
.card{border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(20,33,61,.05)}
.form-control:focus,.form-select:focus,.btn:focus-visible{box-shadow:0 0 0 .2rem rgba(240,138,36,.35);border-color:var(--orange)}
.install-body{min-height:100vh}
.install-wrap{max-width:760px;margin:0 auto;padding:2rem 1rem}
.install-brand{display:flex;gap:.75rem;align-items:center;margin-bottom:1.25rem}
.brand-mark{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--navy);color:#fff;font-weight:700}
.install-steps{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:0;margin:0 0 1rem;font-size:.85rem;color:var(--muted)}
.install-steps li span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e9e3d6;font-size:.75rem}
.install-steps li.current{color:var(--navy);font-weight:600}.install-steps li.current span{background:var(--orange);color:#fff}
.install-steps li.done span{background:var(--ok);color:#fff}
.install-log{background:var(--navy);color:#e8ecf5;padding:1rem;border-radius:10px;font-size:.8rem;white-space:pre-wrap;word-break:break-all}

/* ---- application shell (follows the supplied mockups: navy sidebar, orange accent, cream canvas) ---- */
.app-body{display:flex;min-height:100vh}
.skip-link{position:absolute;left:8px;top:-60px;background:#fff;padding:.5rem 1rem;z-index:9999;border-radius:6px}.skip-link:focus{top:8px}
.sidebar{width:248px;flex:0 0 248px;background:var(--navy);color:#cfd6e6;padding:1rem .75rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar .brand{display:flex;gap:.65rem;align-items:center;color:#fff;text-decoration:none;margin:.25rem .25rem 1rem}
.sidebar .brand small{display:block;color:#97a3bf;font-size:.72rem}
.sidebar .brand .brand-mark{background:var(--orange)}
.nav-group{margin-bottom:.15rem}
.nav-group summary{cursor:pointer;list-style:none;padding:.5rem .6rem;border-radius:8px;font-weight:600;font-size:.9rem;color:#e6ebf7}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary:hover{background:var(--navy-2)}
.nav-group summary i{margin-right:.4rem;color:#97a3bf}
.nav-group[open] summary{color:#fff}
.sidebar .nav-link{display:block;color:#b7c1d9;padding:.32rem .75rem .32rem 2.1rem;font-size:.86rem;border-radius:8px}
.sidebar .nav-link:hover{color:#fff;background:var(--navy-2)}
.sidebar .nav-link.active{background:var(--orange);color:#fff;font-weight:600}
.sidebar a:focus-visible,.sidebar summary:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.main-col{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;gap:.75rem;align-items:center;padding:.65rem 1.25rem;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-search{position:relative;flex:1;max-width:520px}.top-search i{position:absolute;left:.8rem;top:.6rem;color:var(--muted)}
.top-search input{padding-left:2.2rem;background:#faf8f3}
.content{padding:1.25rem 1.5rem;flex:1}
.page-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap}
.page-title{font-family:Merriweather,Georgia,serif;font-weight:900;font-size:1.55rem;color:var(--navy);margin:0}
.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.foot{padding:.75rem 1.5rem;border-top:1px solid var(--line)}
.breadcrumb{margin-bottom:.5rem}
@media (max-width:991px){.sidebar{position:fixed;left:-260px;z-index:50;transition:left .2s}.sidebar.open{left:0}.content{padding:1rem}}

/* status badges: always carry a text label, colour is secondary */
.badge{font-weight:600;padding:.38em .65em;border-radius:999px}
.status-success{background:#dcf5e9;color:#146c4a}.status-warning{background:#fdf0cf;color:#7d5604}
.status-danger{background:#fde0e0;color:#8f2323}.status-info{background:#dde9fb;color:#1e4b9b}
.status-blue{background:#dde9fb;color:#1e4b9b}.status-purple{background:#ebe2fb;color:#5532a0}.status-muted{background:#ece9e1;color:#5b5b5b}

/* cards, stat tiles, tables */
.stat{display:block;padding:1rem 1.1rem;color:inherit;text-decoration:none;height:100%}
.stat:hover{border-color:var(--orange)}
.stat .label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.stat .value{font-size:1.7rem;font-weight:700;color:var(--navy);line-height:1.2}
.stat .hint{font-size:.78rem;color:var(--muted)}
.table>:not(caption)>*>*{padding:.6rem .75rem}
.table thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);background:#fcfaf6;white-space:nowrap}
.table-card{overflow:hidden}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}
.empty{padding:2.5rem 1rem;text-align:center;color:var(--muted)}
.scan-input{font-size:1.25rem;padding:.9rem 1rem;font-family:ui-monospace,Menlo,monospace}
.mono{font-family:ui-monospace,Menlo,monospace}
.pagination .page-link{color:var(--navy)}.pagination .active>.page-link{background:var(--orange);border-color:var(--orange);color:#fff}
@media print{.sidebar,.topbar,.page-actions,.foot,.no-print{display:none!important}.content{padding:0}body{background:#fff}}
.chart-box{position:relative;height:240px}
.card.filters{flex-direction:row;flex-wrap:wrap}
.status-badge{display:inline-block;font-weight:600;font-size:.75rem;padding:.3em .7em;border-radius:999px;white-space:nowrap}
.label-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:1rem}
.label{background:#fff;border:1px dashed #b9b4a6;border-radius:6px;padding:8px 10px;break-inside:avoid;font-size:.72rem}
.label-lib{font-weight:700;color:#14213d}.label-title{margin-bottom:4px}.label-row{display:flex;justify-content:space-between;align-items:center;gap:6px}.label-row svg{max-width:150px;height:auto}.label-acc{font-weight:700;font-size:.8rem}.label-loc{color:#555}
@media print{.no-print,.sidebar,.topbar,.page-head,.breadcrumb{display:none!important}.label-sheet{margin:0}body{background:#fff}}
