:root{--ink:#173349;--muted:#70828f;--teal:#087f75;--line:#e4ebef;--bg:#f4f7fa}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 system-ui,-apple-system,sans-serif}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}h1,h2,p{margin-top:0}h1{font-size:27px;line-height:1.3;margin-bottom:0}h2{font-size:19px;line-height:1.4}small,td small{display:block;color:var(--muted)}button,.button{border:0;border-radius:8px;background:var(--teal);color:white;padding:11px 17px;font:inherit;font-weight:600;cursor:pointer;display:inline-block;text-align:center}.secondary{color:var(--ink);background:#e9f0f4}button:disabled{opacity:.6;cursor:wait}input,select,textarea{display:block;border:1px solid #cdd9df;border-radius:7px;padding:11px 12px;width:100%;color:var(--ink);background:#fff;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid #70d5c7;outline-offset:1px}label{display:block;font-weight:600;margin-bottom:16px}textarea{min-height:90px}form p{margin-top:14px}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:white;border-right:1px solid var(--line);padding:24px 16px;overflow:auto}.brand{display:block;margin:0 12px 24px}.sidebar-note{font-size:10px;color:var(--muted);letter-spacing:1.5px;margin:20px 12px}.nav-group{font-size:11px;letter-spacing:.8px;color:var(--muted);padding:16px 14px 5px;text-transform:uppercase}.sidebar nav a{display:block;padding:8px 14px;padding-inline-start:calc(14px + 1ch);border-radius:7px;color:#526777}nav a[aria-current]{background:#e6f7f3;color:var(--teal);font-weight:700}.shell{margin-left:240px}.topbar{min-height:76px;padding:16px 32px;display:flex;align-items:center;gap:16px;background:#fff;border-bottom:1px solid var(--line);font-weight:600}.topbar form{margin-left:auto}.menu-button{display:none}main{padding:30px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:26px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--muted);margin-bottom:8px}.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:24px;margin-bottom:24px;min-width:0}.narrow{max-width:680px}.muted{color:var(--muted)}.notice{padding:14px 18px;background:#e3f6ee;border:1px solid #bde2d2;border-radius:8px;margin-bottom:20px}.notice p:last-child{margin-bottom:0}.danger{background:#fff0ee;color:#a53931;border-color:#f2c7c2}.danger-button{background:#b33e36}.danger-link{padding:3px 0;color:#b33e36;background:none}.two-column{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:24px}.cashier-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px}.checkout{align-self:start}.checkout output{display:block;font-size:32px;font-weight:750;letter-spacing:-1px;margin-bottom:24px;color:var(--teal)}.full{width:100%}.cart-row{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:12px;align-items:end;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}.cart-row label{margin-bottom:0}.cart-row .subtotal{grid-column:1/-1;margin:0;color:var(--muted)}.filters{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.filters label{margin:0;flex:1;min-width:140px}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}td,th{padding:14px 12px;border-bottom:1px solid var(--line)}th{font-size:12px;color:#667c8a;background:#f8fafb}tfoot th{font-size:14px;color:var(--ink)}.empty{padding:40px 20px;text-align:center;color:var(--muted);white-space:normal}.badge{display:inline-block;border-radius:20px;background:#e3f6ee;color:var(--teal);padding:4px 10px;font-size:12px}.cancelled{color:#a53931;background:#fff0ee}.totals{max-width:400px;margin:24px 0 0 auto}.totals p{display:flex;justify-content:space-between}.welcome{padding:30px;background:#e0f3ef;border:1px solid #c9e7e0;border-radius:15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.welcome h2{font-size:26px;margin-bottom:8px}.welcome p:last-child{margin-bottom:0}.welcome-icon{font-size:68px;color:var(--teal);margin-left:20px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.stats strong{display:block;font-size:25px;margin-bottom:8px;overflow-wrap:anywhere}.stats p{color:var(--muted);margin-bottom:10px}.quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.quick-links a{padding:20px;border:1px solid var(--line);border-radius:10px}.quick-links span{display:block;color:var(--muted);margin-top:5px}footer{display:flex;justify-content:space-between;padding:20px 30px;color:var(--muted);font-size:12px}.pagination{display:flex;justify-content:space-between;margin-top:20px;gap:15px}.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(130deg,#e1f5ef,#f4f7fa 65%)}.auth-card{width:100%;max-width:450px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px;box-shadow:0 15px 70px #1733490a}.auth-card h1{font-size:24px;margin:20px 0}.auth-card .brand{margin:0 0 15px}.auth-card form>button{width:100%;margin-bottom:20px}.auth-card form>small{margin-bottom:15px}.receipt{max-width:850px;margin:30px auto}#sales-chart{height:400px}#cart:empty:after{content:'Tambahkan barang ke keranjang.'} @media(max-width:1100px){.sidebar{width:210px}.shell{margin-left:210px}.two-column{grid-template-columns:1fr}.stats strong{font-size:21px}}@media(max-width:800px){.sidebar{transform:translateX(-100%);z-index:10;width:240px;transition:transform .2s;box-shadow:15px 0 40px #17334922}.sidebar.open{transform:translateX(0)}.shell{margin-left:0}.menu-button{display:block}.topbar{padding:12px 16px}main{padding:20px 16px}.page-heading{align-items:start;flex-wrap:wrap}.page-heading .button{font-size:12px}h1{font-size:23px}.card{padding:18px}.cashier-grid,.stats,.quick-links{grid-template-columns:1fr}.welcome{padding:22px}.welcome h2{font-size:22px}.welcome-icon{display:none}.cart-row{grid-template-columns:minmax(0,1fr) 75px auto;gap:8px}.auth-card{padding:26px}.topbar>span{max-width:40%;overflow-wrap:anywhere}footer span{display:none}}@media print{.receipt{border:0;margin:0;max-width:none}.receipt button,.receipt a{display:none}body{background:white}main{padding:0}table{white-space:normal}}
.bar-chart{max-height:500px;overflow:auto;padding-right:5px}.bar-row{margin-bottom:18px}.bar-label{display:flex;justify-content:space-between;gap:15px;font-size:12px}.bar-track{position:relative;height:14px;background:#f0f4f6;border-radius:4px;margin-top:5px}.bar-zero{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#738997}.bar-value{position:absolute;top:0;height:100%;background:#087f75;border-radius:3px}.bar-value.negative{background:#b33e36}#sales-chart:has(.bar-chart){height:auto;min-height:200px}

.sidebar .nav-section{margin-bottom:4px}
.sidebar summary.nav-group{color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;border-radius:7px;user-select:none}
.sidebar summary.nav-group::-webkit-details-marker{display:none}
.sidebar summary.nav-group:hover{background:#f4f7fa}
.sidebar summary.nav-group:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.sidebar .nav-section[open]>summary{color:var(--ink);font-weight:700}

.sidebar nav a.nav-home{padding:12px 14px;color:var(--ink);margin-bottom:4px}.sidebar nav a.nav-home[aria-current]{font-weight:700}

.daily-scroll{max-height:576px;overflow:auto}
.daily-scroll table tr>:first-child{text-align:center}
.daily-scroll table{border-collapse:separate;border-spacing:0}
.daily-scroll thead th{position:sticky;top:0;z-index:2;background:#f8fafb}
.daily-scroll tfoot th{position:sticky;bottom:0;z-index:2;background:#f8fafb}

/* Consistent, high-contrast headers across all data tables. */
.table-wrap table{border-collapse:separate;border-spacing:0}
.table-wrap table thead th{background:var(--ink);color:#fff;font-weight:700;border-bottom-color:var(--ink)}
.table-wrap table thead tr:first-child th:first-child{border-top-left-radius:8px}
.table-wrap table thead tr:first-child th:last-child{border-top-right-radius:8px}

.annual-sales-scroll{overflow-x:auto}.annual-sales-chart{display:flex;gap:12px;min-width:780px;padding:12px 0}.annual-sales-column{flex:1;min-width:0;text-align:center;font-size:12px}.annual-sales-column strong{display:block;font-size:11px;white-space:nowrap}.annual-sales-track{height:240px;display:flex;align-items:flex-end;border-bottom:1px solid var(--line);margin:8px 0}.annual-sales-track span{display:block;width:70%;margin:0 auto;background:var(--teal);border-radius:4px 4px 0 0}.product-sales-chart{max-height:600px;overflow-y:auto;padding-right:10px;scrollbar-gutter:stable}.product-sales-row{height:60px;padding:6px 0}.product-sales-row .bar-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-sales-row .bar-label strong{flex-shrink:0}

.product-sales-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.product-sales-grid>.card{margin-bottom:0}@media(max-width:800px){.product-sales-grid{grid-template-columns:1fr}}

.signed-sales-track{position:relative}.signed-sales-track:before{content:'';position:absolute;left:0;right:0;top:50%;border-top:1px solid #738997}.signed-sales-track span{position:absolute;left:15%;margin:0}

/* Keep date and year filters compact on desktop. */
@media(min-width:801px){
 .filters label:has(input[type="date"]),.filters label:has(input[name="year"]){flex:0 0 auto;min-width:0}
 .filters input[type="date"]{width:auto}
 .filters input[name="year"]{width:12ch}
}

.table-wrap .profit-percent{text-align:center}

.table-scroll-y{overflow-y:auto}
.table-scroll-y thead th{position:sticky;top:0;z-index:2}
.table-scroll-y tfoot th,.table-scroll-y tfoot td{position:sticky;bottom:0;z-index:2;background:#f8fafb}

.product-limit,.product-limit small{color:#800000}.table-wrap .product-action{text-align:center}.restore-button{background:#1764c0;color:#fff}.restore-button:hover{background:#104c96}

.table-wrap .sales-total{text-align:right}.table-wrap .sales-status{text-align:center}

.table-wrap .sales-detail{text-align:center}

.management-chart .annual-sales-column{flex:1 0 120px;min-width:120px;overflow-wrap:anywhere}.management-table-card .dt-search input{display:inline-block;width:auto}.management-table-card .dt-scroll-body td{height:51px}

/* Match the original table and the header cloned by DataTables scrolling. */
.management-table-card table thead>tr>th{background:#173349;color:#fff;font-weight:700;border-bottom:2px solid #087f75}.management-table-card table thead>tr>th:hover{background:#244b65}.management-table-card table.dataTable thead>tr>th .dt-column-order:before,.management-table-card table.dataTable thead>tr>th .dt-column-order:after{color:#fff}
.management-yearly-bars{display:flex;flex-direction:column;gap:18px}.management-yearly-row{min-height:54px;padding:6px 0}.management-yearly-row .bar-label{font-size:14px;flex-wrap:wrap}.management-yearly-row .bar-label span{overflow-wrap:anywhere;min-width:0}.management-yearly-row .bar-label strong{white-space:nowrap}.management-yearly-row .bar-track{height:22px}
.management-table-card .dt-scroll-head{border-radius:8px 8px 0 0;overflow:hidden}
.management-table-card table thead tr:first-child th:first-child{border-top-left-radius:8px}
.management-table-card table thead tr:first-child th:last-child{border-top-right-radius:8px}

.management-stores-page .page-heading{margin-bottom:10px}
.management-stores-page .dt-container{width:100%;min-width:0}
.management-stores-page table.dataTable{width:100%!important;table-layout:fixed;white-space:normal}
.management-stores-page table.dataTable th,.management-stores-page table.dataTable td{overflow-wrap:anywhere}
