:root{--navy:#17324d;--teal:#13a89e;--muted:#788797;--line:#e8edf1;--bg:#f5f8fa}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#25384a;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}.sidebar{width:252px;background:#10283e;color:#d2dce4;position:fixed;inset:0 auto 0 0;padding:25px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:17px;font-weight:700;padding:4px 10px 32px}.brand b,.brand-mark{display:grid;place-items:center;color:white;background:var(--teal);width:38px;height:38px;border-radius:12px;font-size:22px}.brand small{font-size:9px;letter-spacing:1.3px;color:#8ba1b4}.brand-logo{width:38px;height:38px;flex:0 0 38px;object-fit:contain;border-radius:10px;background:#fff;padding:3px}.logo-preview-wrap{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.logo-preview{width:64px;height:64px;object-fit:contain;border:1px solid var(--line);border-radius:10px;padding:4px;background:#fff}.nav-caption{font-size:10px;letter-spacing:1px;color:#71879a;padding:0 11px 9px}.nav-link{color:#b6c5d1;padding:11px 12px;border-radius:8px;margin:2px 0;display:flex;gap:10px;align-items:center;text-decoration:none;font-size:13px}.nav-link:hover,.nav-link.active{background:#1c3b55;color:#fff}.logout-form{margin-top:auto}.profile-mini{border-top:1px solid #2a4256;padding:16px 8px 0;display:flex;align-items:center;gap:10px;color:white;text-decoration:none}.profile-mini small{display:block;color:#90a3b3;font-size:11px}.avatar,.top-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#d9f4ef;color:#178c84;font-weight:700}.main-area{margin-left:252px;min-height:100vh}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:15px;padding:0 34px;position:sticky;top:0;z-index:10}.topbar>div{display:flex;flex-direction:column}.topbar small{color:var(--muted);font-size:11px;margin-top:3px}.top-avatar{margin-left:auto}.content{padding:29px 34px;max-width:1500px;margin:auto}.welcome,.page-toolbar,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.welcome{margin-bottom:22px}.welcome h2{font-size:22px;margin:0 0 5px;color:#18334b}.welcome p,.page-toolbar p{margin:0;color:var(--muted)}.btn-primary{background:#138e88;border-color:#138e88}.btn-primary:hover{background:#0e7772;border-color:#0e7772}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:19px}.stat-card{min-height:112px;display:flex;flex-direction:column;gap:9px}.stat-card span,.stat-card small{font-size:12px;color:var(--muted)}.stat-card strong{font-size:22px;color:#18334b}.panel{padding:0;margin-bottom:20px;overflow:hidden}.panel-heading{padding:18px 20px;border-bottom:1px solid var(--line)}.panel-heading h3{font-size:15px;margin:0;font-weight:650}.panel-heading a{color:#128d86;text-decoration:none}.table{margin:0;color:#3d5061;font-size:12px}.table>:not(caption)>*>*{padding:13px 16px;border-bottom-color:#edf1f4;vertical-align:middle}.table thead th{font-weight:600;color:#7c8a97;background:#fafcfd;white-space:nowrap}.amount{font-weight:650;color:#183b52}.badge-soft{padding:5px 8px;background:#edf8f6;color:#18877f;border-radius:20px;font-size:10px;white-space:nowrap}.badge-soft.pending{background:#fff5df;color:#ad7715}.badge-soft.approved{background:#e6f6ef;color:#27885b}.badge-soft.rejected{background:#fdeeee;color:#bd4b4b}.empty{text-align:center;color:#8795a1;padding:35px!important}.page-toolbar{margin-bottom:18px}.search-form{display:flex;gap:8px;width:min(490px,100%)}.search-form .form-control{min-width:150px}.form-control,.form-select{font-size:13px;padding:10px 12px;border-color:#dfe6eb}.form-label{font-size:12px;font-weight:600;color:#495d6e}.report-filters{display:flex;align-items:end;gap:13px;margin-bottom:18px;padding:17px;overflow:visible}.report-filters>div{min-width:155px}.narrow{max-width:580px;padding:20px}.narrow form{padding:20px}.receipt{background:#fff;max-width:620px;margin:10px auto;padding:45px;box-shadow:0 3px 20px #d9e1e8;border-radius:8px}.receipt .brand-mark{margin:auto}.receipt .text-center p{color:var(--muted)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#e0f5f2,transparent 35%),#f4f8fa}.login-card{border:0;border-radius:15px;padding:35px;width:min(420px,calc(100% - 30px))}.login-card h1{text-align:center;font-size:24px;margin:14px 0 4px}.login-card h1 span{color:#118e86}.login-card p{text-align:center;margin-bottom:25px}.login-card .brand-mark{margin:auto}.login-card .btn{padding:11px}.menu-toggle{display:none}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .2s}.nav-open .sidebar{transform:translateX(0)}.main-area{margin-left:0}.menu-toggle{display:block;border:0;background:none;font-size:20px;color:var(--navy)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:22px 18px}.topbar{padding:0 18px}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:14px;min-height:96px}.stat-card strong{font-size:17px}.page-toolbar{align-items:flex-start;flex-direction:column}.report-filters{align-items:stretch;flex-direction:column}.report-filters>div{min-width:auto}.welcome{align-items:flex-start;flex-direction:column}.receipt{padding:24px}.table>:not(caption)>*>*{padding:10px}.topbar{height:65px}}
@media print{body{background:white}.sidebar,.topbar,.content>.alert,.receipt button,.btn,.page-toolbar,.report-filters{display:none!important}.main-area{margin:0}.content{padding:0}.receipt{box-shadow:none;margin:0 auto;padding:12mm}.panel{border:0}.panel-heading{border-bottom:1px solid #aaa}}

/* Service checkout, calculator and thermal POS receipt */
.calculator{padding:0;overflow:hidden}.calculator summary{cursor:pointer;padding:15px 19px;font-weight:650;color:#18334b}.calculator-body{padding:0 18px 18px;max-width:340px}.calculator-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.calculator-keys .btn{font-size:16px;font-weight:650;min-height:42px}.calculator-keys [data-calc="="]{grid-column:span 2;background:#dff5f1}.service-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px;max-height:350px;overflow:auto;padding:2px}.service-pick{border:1px solid #dfe8ed;background:#fff;border-radius:9px;padding:12px;text-align:left;color:#243b4e;display:flex;flex-direction:column;gap:7px;min-height:76px}.service-pick:hover{border-color:#138e88;background:#f1fbf9}.service-pick b{color:#13877f}.cart-wrap{max-height:285px;border:1px solid var(--line);border-radius:8px}.cart-wrap .table{font-size:12px}.cart-wrap td{padding:8px}.cart-quantity{width:62px;padding:5px}.payment-total{display:flex;justify-content:space-between;align-items:center;padding:14px 4px;font-weight:650;border-top:1px solid var(--line);margin-top:8px}.payment-total strong{font-size:20px;color:#12877f}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-panel{margin-bottom:0}.settings-form{padding:18px 20px}.service-pick[disabled]{opacity:.45;cursor:not-allowed}
.receipt{width:100%;max-width:480px;margin:10px auto;padding:28px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 20px #d9e1e8;color:#172b3b;font-family:Arial,sans-serif;font-size:13px}.receipt-head{text-align:center}.receipt-head h1{font-size:20px;font-weight:700;margin:0 0 4px}.receipt-head p{margin:0;color:#526575}.receipt-meta{display:flex;justify-content:space-between;gap:8px;font-size:11px}.receipt p{margin:12px 0}.receipt-items{width:100%;border-collapse:collapse;font-size:11px}.receipt-items th{border-bottom:1px dashed #555;text-align:left;padding:5px 2px}.receipt-items td{border-bottom:1px dotted #aaa;padding:7px 2px;vertical-align:top}.receipt-items th:nth-child(2),.receipt-items td:nth-child(2){text-align:center;width:30px}.receipt-items th:last-child,.receipt-items td:last-child{text-align:right;white-space:nowrap}.receipt-items small{display:block;font-size:9px;color:#586875;margin-top:2px}.receipt-payment{font-size:11px}.receipt-total{display:flex;justify-content:space-between;gap:8px;font-size:15px}.receipt-thanks{text-align:center;font-size:11px;margin-top:18px!important}
@media(max-width:700px){.settings-grid{grid-template-columns:1fr}}
@media print{@page{size:85mm auto;margin:3mm}html,body{width:79mm!important;min-width:79mm!important;background:#fff!important;color:#000!important;font-size:11px!important}.sidebar,.topbar,.content>.alert,.receipt button,.btn,.page-toolbar,.calculator,.panel:not(.receipt){display:none!important}.main-area{margin:0!important;min-height:0!important}.content{max-width:none!important;margin:0!important;padding:0!important}.receipt{width:79mm!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;font-size:11px!important}.receipt-head h1{font-size:17px}.receipt-items{font-size:10px}.receipt-items td{padding:5px 1px}.receipt-total{font-size:13px}hr{border-top:1px dashed #333!important;opacity:1!important}}
.calculator-menu-button{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit}.calculator-menu-button:hover{background:#1c3b55;color:#fff}.calculator-overlay{display:none;position:fixed;inset:0;z-index:1055;align-items:center;justify-content:center;padding:12px;background:#081b2bcc}.calculator-overlay.is-open{display:flex}.calculator-dialog{width:min(390px,100%);margin:auto}.calculator-modal{overflow:hidden;border:0;border-radius:16px;background:#fff;box-shadow:0 18px 60px #10283e40}.calculator-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 10px;border:0}.calculator-modal .modal-title{margin:0;font-size:18px;font-weight:700;color:#17324d}.calculator-modal .modal-body{padding:10px 20px 22px}.calculator-close{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:#eef3f5;color:#344b5c;font-size:27px;line-height:1}.calculator-close:hover{background:#dce7eb}.calculator-display{display:flex;align-items:center;justify-content:flex-end;width:100%;min-height:88px;margin-bottom:14px;padding:12px 16px;overflow:hidden;border-radius:12px;background:#f1f5f7;color:#17324d;font-size:36px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.calculator-modal .calculator-keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0}.calc-key{min-height:58px;border:0;border-radius:11px;background:#f3f6f8;color:#20384b;font-size:21px;font-weight:600;transition:filter .12s,transform .12s}.calc-key:hover{filter:brightness(.96);transform:translateY(-1px)}.calc-function{background:#e8eff2;color:#314c5f}.calc-operator{background:#daf3ef;color:#117d76}.calc-equals{background:#138e88;color:white}.calc-equals:hover{background:#0e7772;color:#fff}@media(max-width:420px){.calculator-dialog{margin:12px}.calculator-display{font-size:30px;min-height:76px}.calc-key{min-height:54px}}
/* Portrait phone-style calculator, opened from the sidebar only */
.calculator-dialog{width:min(350px,calc(100vw - 24px));height:min(690px,calc(100vh - 28px));height:min(690px,calc(100dvh - 28px))}.calculator-modal{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;padding:7px 8px 16px;border:5px solid #17252b;border-radius:36px;background:#f8fafb;box-shadow:0 22px 70px #0008}.calculator-modal::before{content:"";position:absolute;top:6px;left:50%;width:86px;height:15px;transform:translateX(-50%);border-radius:0 0 12px 12px;background:#17252b}.calculator-modal::after{content:"";position:absolute;bottom:6px;left:50%;width:98px;height:4px;transform:translateX(-50%);border-radius:5px;background:#26373e}.calculator-modal .modal-header{flex:0 0 auto;padding:24px 12px 6px}.calculator-modal .modal-title{font-size:15px!important}.calculator-modal .modal-body{display:flex;flex:1;flex-direction:column;min-height:0;padding:10px 12px 13px}.calculator-display{flex:1;min-height:105px;max-height:170px;margin:10px 0 17px;padding:16px 10px;border-radius:0;background:transparent;font-size:42px}.calculator-modal .calculator-keys{flex:0 0 auto;gap:10px}.calc-key{aspect-ratio:1;min-height:0;border-radius:50%;font-size:22px}.calc-function{background:#e2e8eb}.calc-operator,.calc-equals{background:#138e88;color:#fff}.calc-operator:hover,.calc-equals:hover{background:#0e7772;color:#fff}@media(max-height:650px){.calculator-dialog{height:calc(100vh - 20px);height:calc(100dvh - 20px)}.calculator-modal .calculator-keys{gap:6px}.calc-key{font-size:19px}.calculator-display{min-height:70px;margin:4px 0 8px;font-size:34px}}
.receipt-footer{margin-top:18px;padding-top:10px;border-top:1px dashed #8b9297;text-align:center}.receipt-footer .receipt-thanks{margin:0 0 8px!important}.receipt-date-time{display:flex;justify-content:space-between;gap:8px;margin:0!important;padding-top:7px;border-top:1px dotted #c0c5c9;font-size:10px;color:#344754}.receipt-date-time span{white-space:nowrap}
@media print{.receipt-footer{margin-top:12px;padding-top:8px}.receipt-date-time{font-size:9px}}
.login-logo{display:block;max-width:120px;max-height:100px;object-fit:contain;margin:0 auto 1rem}.receipt-logo{display:block;max-width:90px;max-height:70px;object-fit:contain;margin:0 auto .5rem}
.report-heading{display:none}
@media print{@page{size:A4 portrait;margin:12mm}.report-print .panel{display:block!important;overflow:visible!important;border:1px solid #bbb!important}.report-print .table-responsive{overflow:visible!important}.report-print .table{font-size:10px}.report-print .report-heading{display:block!important;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid #aaa}.report-print .report-heading h1{font-size:20px}.report-print .report-heading h2{font-size:16px}.report-print .report-heading p{margin:0}.report-print .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.report-print .stat-card{min-height:0;padding:10px}.report-print .stat-card strong{font-size:16px}.report-print .alert{display:block!important}.report-print .panel-heading{padding:8px}.report-print .table>:not(caption)>*>*{padding:6px 7px}}
.brand-stacked{flex-direction:column;align-items:center;gap:10px;text-align:center;padding-top:8px}.brand-stacked .brand-logo{width:72px;height:72px;flex:0 0 72px;border-radius:12px}.brand-stacked>span{line-height:1.45}

/* Responsive layout refinements for phones, tablets, and short screens */
html{scroll-padding-top:82px}body{overflow-x:hidden}.app-shell,.main-area,.content,.panel,.settings-grid,.settings-panel{min-width:0}.table-responsive{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.table-responsive>.table{min-width:620px}.mobile-nav-head{display:none}.menu-toggle{flex:0 0 40px;min-width:40px;min-height:40px;border-radius:8px}.menu-toggle:focus-visible,.mobile-nav-close:focus-visible,.nav-link:focus-visible{outline:3px solid #54d4c8;outline-offset:2px}.modal-dialog{max-width:min(960px,calc(100vw - 1rem));margin:.5rem auto}.modal-content{max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem)}.modal-body{overflow-y:auto;overscroll-behavior:contain}.report-filters{flex-wrap:wrap}.search-form{min-width:0}.settings-grid>*{min-width:0}.settings-form .row>*{min-width:0}
@media(max-width:900px){.sidebar{width:min(300px,88vw);max-width:88vw;padding:12px 14px max(16px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;box-shadow:10px 0 35px #081b2b35}.nav-open::before{content:"";position:fixed;inset:0;z-index:19;background:#07182780;backdrop-filter:blur(1px)}.nav-open .sidebar{z-index:20}.mobile-nav-head{display:flex;align-items:center;justify-content:space-between;padding:3px 4px 10px;color:#b6c5d1;font-size:12px;font-weight:700}.mobile-nav-close{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:#1c3b55;color:#fff;font-size:26px;line-height:1}.brand-stacked{padding:4px 10px 18px}.profile-mini{margin-top:12px}.logout-form{margin-top:12px}.content{padding:clamp(16px,3vw,25px)}.topbar{padding-inline:clamp(12px,3vw,24px)}}
@media(max-width:700px){.settings-grid{grid-template-columns:minmax(0,1fr)}.settings-grid>.panel{width:100%}.modal-dialog.modal-xl{max-width:calc(100vw - 1rem)}.service-pick-grid{grid-template-columns:repeat(auto-fill,minmax(min(145px,100%),1fr));max-height:min(38vh,300px)}.page-toolbar{align-items:flex-start;flex-wrap:wrap}.page-toolbar>.btn,.page-toolbar>form{max-width:100%}.report-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.report-filters>div{min-width:0}.report-filters>button,.report-filters>a{width:100%}.panel-heading{flex-wrap:wrap}.panel-heading>form{flex-wrap:wrap}.settings-form{padding:16px}.receipt{max-width:100%}}
@media(max-width:480px){.content{padding:14px 11px}.topbar{height:auto;min-height:64px;padding:8px 11px;gap:8px}.topbar>div{min-width:0}.topbar strong{max-width:calc(100vw - 112px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar small{font-size:10px}.top-avatar{width:30px;height:30px;flex:0 0 30px}.stats-grid{grid-template-columns:minmax(0,1fr);gap:9px}.stat-card{min-height:0}.page-toolbar{gap:10px}.page-toolbar>p{line-height:1.45}.page-toolbar>.btn{width:100%}.search-form{width:100%;flex-wrap:wrap}.search-form .form-control{flex:1 1 100%;min-width:0}.search-form .btn{width:100%}.report-filters{grid-template-columns:minmax(0,1fr)}.report-filters>div,.report-filters button{width:100%}.settings-form .row{row-gap:8px}.table-responsive>.table{min-width:580px}.panel-heading{padding:14px}.modal-dialog{margin:.35rem}.modal-content{max-height:calc(100vh - .7rem);max-height:calc(100dvh - .7rem)}.modal-header,.modal-footer{padding:12px}.modal-body{padding:14px}.modal-footer>*{flex:1 1 auto}.modal-footer .btn{white-space:normal}.payment-total{align-items:flex-start;gap:8px}.payment-total strong{font-size:17px;text-align:right}.cart-wrap{max-height:32vh}.service-pick{padding:10px;min-height:68px}.receipt{padding:18px 14px}.receipt-date-time{flex-wrap:wrap;justify-content:center}.settings-form .table-responsive>.table{min-width:450px}}

/* Darker, higher-contrast receipt text for thermal printers. */
.receipt{color:#000;font-weight:600}
.receipt-head h1,.receipt-total,.receipt-items th,.receipt-items td b{color:#000;font-weight:800}
.receipt-head p,.receipt-meta,.receipt-items,.receipt-items small,.receipt-payment,.receipt-thanks,.receipt-date-time{color:#000}
.receipt-items th{border-bottom:1px solid #000}
.receipt-items td{border-bottom:1px dotted #333}
@media print{
  .receipt,.receipt *{color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .receipt{font-weight:600!important}
  .receipt-head h1,.receipt-total,.receipt-items th,.receipt-items td b{font-weight:800!important}
  .receipt-items td{border-bottom-color:#333!important}
}
@media(max-height:520px) and (max-width:900px){.sidebar{padding-top:7px}.brand-stacked .brand-logo{width:48px;height:48px;flex-basis:48px}.brand-stacked{gap:5px;padding-bottom:8px}.nav-link{padding-block:8px;margin-block:0}.profile-mini{padding-top:8px}.login-wrap{padding-block:12px;min-height:100svh}.login-card{padding:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
