@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
/* erp-ui.css — Hafiz Mobile Blueprint design language (vanilla CSS, no build step) */
/* Design tokens extracted from the Lovable "Hafiz Mobile Blueprint" project. */
:root{
--erp-primary:#3660e3;
--erp-primary-dark:#2b4fc9;
--erp-primary-soft:#e6edfc;
--erp-blue:#3660e3;
--erp-bg:#f7f9fb;
--erp-card:#ffffff;
--erp-border:#e1e6ec;
--erp-border-soft:#f1f4f8;
--erp-text:#1c2432;
--erp-muted:#6c7583;
--erp-radius:8px;
--erp-radius-sm:6px;
--erp-shadow:0 3px 14px rgba(31,41,61,.035);
--erp-shadow-lg:0 20px 70px rgba(20,32,64,.18);
--erp-success:#008152;--erp-success-bg:#dbf8eb;
--erp-warning:#bb6e00;--erp-warning-bg:#fff4e0;
--erp-danger:#d73337;--erp-danger-bg:#fbe9e9;
--erp-info:#3660e3;--erp-info-bg:#e5efff;
}
*{box-sizing:border-box;letter-spacing:0}
html{-webkit-text-size-adjust:100%}
body.erp{margin:0;background:var(--erp-bg);color:var(--erp-text);font-family:Manrope,Arial,sans-serif;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}
body.erp a{color:var(--erp-primary-dark)}
body.erp button:focus-visible,body.erp a:focus-visible,body.erp input:focus-visible,body.erp select:focus-visible,body.erp textarea:focus-visible,body.erp [tabindex]:focus-visible{outline:2px solid var(--erp-primary);outline-offset:3px}
.erp-shell{min-height:100vh;display:flex}
.erp-main{flex:1;min-width:0;display:flex;flex-direction:column}
.erp-content{padding:16px;flex:1}
@media(min-width:1024px){.erp-content{padding:31px 32px 28px}}
.erp-page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.erp-page-head h1{font-size:26px;font-weight:800;margin:0;line-height:1.35}
.erp-page-head p{margin:6px 0 0;color:var(--erp-muted);font-size:12px;line-height:1.7}
.erp-actions{display:flex;flex-wrap:wrap;gap:8px}
/* Buttons */
.erp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 16px;border-radius:var(--erp-radius-sm);border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s}
.erp-btn-primary{background:var(--erp-primary);color:#fff}
.erp-btn-primary:hover{background:var(--erp-primary-dark);color:#fff}
.erp-btn-dark{background:var(--erp-primary);color:#fff}
.erp-btn-dark:hover{background:var(--erp-primary-dark);color:#fff}
.erp-btn-outline{background:#fff;border-color:var(--erp-border);color:var(--erp-text)}
.erp-btn-outline:hover{border-color:var(--erp-primary);color:var(--erp-primary-dark)}
.erp-btn-danger-outline{background:#fff;border-color:#f3c2c4;color:var(--erp-danger)}
.erp-btn-danger-outline:hover{background:var(--erp-danger-bg)}
.erp-btn-success{background:var(--erp-success);color:#fff}
.erp-btn-sm{min-height:32px;padding:5px 12px;font-size:12px}
.erp-btn-block{width:100%}
.erp-btn:disabled{opacity:.55;cursor:not-allowed}
.erp-link{color:var(--erp-primary-dark);font-weight:600;text-decoration:none}
.erp-link:hover{text-decoration:underline}

/* Forms */
.erp-label{display:block;font-size:11px;font-weight:650;margin-bottom:7px;color:var(--erp-text);line-height:1.6}
.erp-input,.erp-select,.erp-textarea{width:100%;min-height:44px;padding:11px 12px;font-size:13px;font-weight:500;color:var(--erp-text);background:#fff;border:1px solid var(--erp-border);border-radius:var(--erp-radius-sm);transition:border-color .15s,box-shadow .15s}
.erp-input:focus,.erp-select:focus,.erp-textarea:focus{outline:2px solid var(--erp-primary);outline-offset:3px;border-color:var(--erp-primary)}
.erp-input::placeholder,.erp-textarea::placeholder{color:var(--erp-muted);opacity:.8}
.erp-textarea{min-height:96px;resize:vertical}
.erp-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236c7583' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;appearance:none}
.erp-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;min-height:44px}
.erp-check input{width:18px;height:18px;accent-color:var(--erp-primary)}
.erp-field{margin-bottom:14px}
.erp-hint{font-size:12px;color:var(--erp-muted);margin-top:4px}
.erp-error{font-size:11px;color:var(--erp-danger);margin-top:4px}
.erp-form-grid{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:640px){.erp-form-grid.cols-2{grid-template-columns:1fr 1fr}.erp-form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}}
.erp-filterbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px}
.erp-filterbar .erp-field{margin-bottom:0}
.erp-filterbar .erp-input,.erp-filterbar .erp-select{width:auto;min-width:150px}

/* Cards */
.erp-card{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:var(--erp-radius);box-shadow:var(--erp-shadow);padding:16px}
.erp-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--erp-border-soft)}
.erp-card-head h2,.erp-card-head h3{margin:0;font-size:14px;font-weight:750}
/* KPI cards */
.erp-kpi-grid{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:24px}
@media(min-width:640px){.erp-kpi-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.erp-kpi-grid{grid-template-columns:repeat(4,1fr)}}
.erp-kpi{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:var(--erp-radius);box-shadow:var(--erp-shadow);padding:18px;display:block;color:inherit;text-decoration:none}
.erp-kpi:hover{border-color:var(--erp-primary)}
.erp-kpi .kpi-label{font-size:11px;font-weight:600;color:var(--erp-muted)}
.erp-kpi .kpi-value{margin-top:14px;font-size:22px;font-weight:800;color:var(--erp-text)}
.erp-kpi .kpi-sub{margin-top:8px;font-size:12px;color:var(--erp-muted)}
/* Tables */
.erp-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--erp-border);border-radius:var(--erp-radius);box-shadow:var(--erp-shadow)}
.erp-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.erp-table thead th{background:var(--erp-border-soft);color:var(--erp-muted);font-size:10px;font-weight:600;text-align:left;padding:14px 20px;border-bottom:1px solid var(--erp-border);white-space:nowrap}
.erp-table tbody td{padding:12px 20px;border-top:1px solid var(--erp-border-soft);vertical-align:middle;font-size:12px;height:57px}
.erp-table tbody tr:hover td{background:#f6f8fb}
.erp-table .num{text-align:right;font-variant-numeric:tabular-nums}
/* Badges */
.erp-badge{display:inline-flex;align-items:center;min-height:20px;padding:4px 7px;border-radius:4px;font-size:9px;font-weight:650;white-space:nowrap}
.erp-badge-success{background:var(--erp-success-bg);color:var(--erp-success)}
.erp-badge-warning{background:var(--erp-warning-bg);color:var(--erp-warning)}
.erp-badge-danger{background:var(--erp-danger-bg);color:var(--erp-danger)}
.erp-badge-info{background:var(--erp-info-bg);color:var(--erp-info)}
.erp-badge-primary{background:var(--erp-primary-soft);color:var(--erp-primary-dark)}
.erp-badge-neutral{background:var(--erp-border-soft);color:#475569}
/* Alerts */
.erp-alert{border-radius:var(--erp-radius-sm);padding:12px 14px;font-size:13px;margin-bottom:14px;border:1px solid transparent}
.erp-alert-success{background:var(--erp-success-bg);color:#046c46;border-color:#a9e8c9}
.erp-alert-warning{background:var(--erp-warning-bg);color:#8a5a00;border-color:#f5dfae}
.erp-alert-danger{background:var(--erp-danger-bg);color:#a32428;border-color:#f3c2c4}
.erp-alert-info{background:var(--erp-info-bg);color:#1d4fb8;border-color:#c3d6f7}

/* Sidebar */
.erp-sidebar{width:244px;flex-shrink:0;background:#fff;border-right:1px solid var(--erp-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:60}
.erp-brand{padding:28px 22px 20px;border-bottom:1px solid var(--erp-border-soft)}
.erp-brand .brand-eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--erp-muted);font-weight:650}
.erp-brand .brand-name{font-size:17px;font-weight:800;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-brand .brand-ver{font-size:11px;color:var(--erp-muted);margin-top:3px}
.erp-nav{padding:0 14px;flex:1}
.erp-nav-caption{font-size:10px;font-weight:650;letter-spacing:1.5px;color:var(--erp-muted);margin:0 12px 12px}
.erp-nav-search{width:100%;margin-bottom:10px}
.erp-nav a.erp-nav-link{display:flex;align-items:center;gap:12px;min-height:47px;padding:0 13px;border-radius:var(--erp-radius-sm);color:var(--erp-muted);font-size:12px;font-weight:600;text-decoration:none;margin-bottom:6px}
.erp-nav a.erp-nav-link:hover{background:var(--erp-border-soft)}
.erp-nav a.erp-nav-link.active{background:var(--erp-primary-soft);color:var(--erp-primary);font-weight:600}
.erp-nav .menu-section{margin-bottom:4px}
.erp-nav .menu-section summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:47px;padding:0 13px;border-radius:var(--erp-radius-sm);color:var(--erp-muted);font-size:12px;font-weight:600;user-select:none}
.erp-nav .menu-section summary::-webkit-details-marker{display:none}
.erp-nav .menu-section summary:hover{background:var(--erp-border-soft)}
.erp-nav .menu-section summary::after{content:"";margin-left:auto;border:solid #94a3b8;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg)}
.erp-nav .menu-section[open] summary::after{transform:rotate(-135deg)}
.erp-nav .menu-section .menu-items{margin:2px 0 6px 14px;padding-left:10px;border-left:2px solid var(--erp-border-soft)}
.erp-nav-icon{width:19px;height:19px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--erp-muted)}
.erp-nav a.erp-nav-link.active .erp-nav-icon{color:var(--erp-primary)}
/* Topbar */
.erp-topbar{background:#fff;border-bottom:1px solid var(--erp-border);min-height:76px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:50}
.erp-topbar .top-left{display:flex;align-items:center;gap:12px;min-width:0}
.erp-hamburger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--erp-radius-sm);border:1px solid var(--erp-border);background:#fff;cursor:pointer}
@media(min-width:1024px){.erp-hamburger{display:none}}
.erp-shop{font-weight:650;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-date{font-size:11px;color:var(--erp-muted);white-space:nowrap}

.erp-top-right{display:flex;align-items:center;gap:14px}
.erp-user{display:flex;align-items:center;gap:10px}
.erp-avatar{width:36px;height:36px;border-radius:50%;background:var(--erp-primary-soft);color:var(--erp-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:750;font-size:11px;border:1px solid var(--erp-border)}
.erp-user-name{font-size:13px;font-weight:600}
@media(max-width:640px){.erp-user-name{display:none}}
/* Drawer */
.erp-overlay{position:fixed;inset:0;background:rgba(20,25,40,.42);z-index:55;opacity:0;pointer-events:none;transition:opacity .2s}
.erp-overlay.show{opacity:1;pointer-events:auto}
@media(max-width:1023px){
.erp-sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);transition:transform .25s ease;box-shadow:var(--erp-shadow-lg)}
.erp-sidebar.open{transform:none}
}
/* POS */
.erp-pos{display:grid;gap:24px;grid-template-columns:1fr}
@media(min-width:768px){.erp-pos{grid-template-columns:1fr 1fr}}
.erp-pos .cart-sticky{position:sticky;top:76px}
@media(max-width:767px){.erp-pos .cart-sticky{position:sticky;bottom:0;top:auto;z-index:40}}
/* Auth */
.erp-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:var(--erp-bg)}
.erp-auth-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--erp-border);border-radius:var(--erp-radius);box-shadow:var(--erp-shadow);padding:32px}
.erp-auth-card .brand-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--erp-primary);font-weight:700}
.erp-auth-card h1{font-size:23px;font-weight:800;margin:4px 0}
.erp-auth-card .sub{font-size:12px;color:var(--erp-muted);margin:0 0 4px}
/* Tabs */
.erp-tabs{display:flex;border-bottom:1px solid var(--erp-border);overflow-x:auto}
.erp-tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--erp-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;min-height:44px}
.erp-tab.active{color:var(--erp-primary-dark);border-bottom-color:var(--erp-primary)}
/* Pagination */
.erp-pagination{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px}
/* Mobile tap targets */
@media(max-width:767px){
.erp-btn{min-height:44px}
.erp-btn-block-mobile{width:100%}
.erp-filterbar .erp-input,.erp-filterbar .erp-select{flex:1 1 140px}
.erp-page-head h1{font-size:24px}
}
/* Print */
@media print{
.erp-sidebar,.erp-topbar,.erp-overlay,.no-print{display:none !important}
body.erp{background:#fff}
.erp-content{padding:0}
.erp-card,.erp-table-wrap{box-shadow:none}
}
/* Legacy pill badges (kept for older templates) */
.pill-indigo{background:#e5efff;color:#2b4fc9}
.pill-red{background:#fbe9e9;color:#d73337}

/* Dashboard recomposition (Hafiz Mobile Blueprint) */
.dash-hero-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--erp-muted);font-weight:700}
.dash-hero-value{font-size:40px;font-weight:800;color:var(--erp-text);line-height:1.15;margin:4px 0 10px;font-variant-numeric:tabular-nums}
@media(max-width:640px){.dash-hero-value{font-size:32px}}
.dash-hero-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.dash-segmented{display:inline-flex;background:var(--erp-border-soft);border:1px solid var(--erp-border);border-radius:6px;padding:3px}
.dash-segmented button{border:0;background:transparent;padding:8px 18px;border-radius:4px;font-size:11px;font-weight:600;color:var(--erp-muted);cursor:pointer;min-height:36px}
.dash-segmented button.active{background:#fff;color:var(--erp-text);box-shadow:var(--erp-shadow)}
.dash-bars{display:flex;align-items:flex-end;gap:10px;height:180px}
.dash-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.dash-bar-fill{width:100%;max-width:56px;border-radius:4px 4px 0 0}
.dash-bar-fill[style*="199, 210, 254"]{background:#d3dcf9 !important}
.dash-bar-fill[style*="79, 70, 229"]{background:var(--erp-primary) !important}
.dash-bar-label{font-size:11px;color:var(--erp-muted);margin-top:6px;white-space:nowrap}
.dash-widgets{display:grid;gap:22px;grid-template-columns:1fr;margin-bottom:24px}
@media(min-width:1024px){.dash-widgets{grid-template-columns:repeat(3,1fr)}}
.dash-rows{display:flex;flex-direction:column}
.dash-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--erp-border-soft);font-size:14px}
.dash-row:first-child{border-top:0}
.dash-row .k{color:var(--erp-muted)}
.dash-row .v{font-weight:700;font-variant-numeric:tabular-nums}
.dash-advance{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--erp-border-soft)}
.dash-advance:first-child{border-top:0}
.dash-advance .nm{font-weight:600;font-size:14px}
.dash-advance .jb{font-size:12px;color:var(--erp-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.dash-advance .amt{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.dash-timeline{position:relative;padding-left:20px}
.dash-timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--erp-border)}
.dash-event{position:relative;padding:7px 0}
.dash-event:before{content:"";position:absolute;left:-19px;top:13px;width:8px;height:8px;border-radius:50%;background:var(--erp-primary);box-shadow:0 0 0 3px var(--erp-primary-soft)}
.dash-event .d{font-size:14px}
.dash-event .t{font-size:12px;color:var(--erp-muted)}
.dash-kpi-strip{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-bottom:16px}
@media(min-width:768px){.dash-kpi-strip{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1280px){.dash-kpi-strip{grid-template-columns:repeat(6,1fr)}}
.dash-kpi{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:var(--erp-radius);padding:18px;display:block;color:inherit;text-decoration:none;box-shadow:var(--erp-shadow)}
.dash-kpi:hover{border-color:var(--erp-primary)}
.dash-kpi .k{font-size:11px;font-weight:600;color:var(--erp-muted)}
.dash-kpi .v{font-size:22px;font-weight:800;color:var(--erp-text);margin-top:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-brand{padding:16px 18px 14px}
.dash-brand-row{display:flex;align-items:center;gap:12px}
.dash-brand-icon{width:44px;height:44px;border-radius:14px;background:var(--erp-blue);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.dash-brand-name{font-size:17px;font-weight:800;line-height:1.2;white-space:nowrap}
.dash-brand-sub{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--erp-muted)}
.dash-brand-loc{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--erp-muted);margin-top:12px}
.dash-dot{width:8px;height:8px;border-radius:50%;background:var(--erp-success);display:inline-block;flex-shrink:0}
.dash-brand .erp-badge{margin-top:10px}
/* Status pills (Lovable-style) */
.pill{display:inline-flex;align-items:center;border-radius:4px;padding:4px 7px;font-size:9px;font-weight:650;line-height:1.6;white-space:nowrap}
.pill-green{background:#dbf8eb;color:#008152}
.pill-gray{background:#f1f4f8;color:#6c7583}
.pill-amber{background:#fff4e0;color:#bb6e00}
.pill-orange{background:#fff4e0;color:#bb6e00}
.pill-blue{background:#e5efff;color:#3660e3}
.pill-indigo{background:#e5efff;color:#2b4fc9}
.pill-red{background:#fbe9e9;color:#d73337}

/* Lovable has no black buttons: remap Tailwind slate-900 buttons to primary (design-only, function unchanged) */
button.bg-slate-900,a.bg-slate-900{background-color:var(--erp-primary) !important;border-color:var(--erp-primary) !important;color:#fff !important}
button.bg-slate-900:hover,a.bg-slate-900:hover{background-color:var(--erp-primary-dark) !important;border-color:var(--erp-primary-dark) !important}

/* ===== New Dashboard (Lovable Blueprint) ===== */
.dash-wrap{max-width:1280px;margin:0 auto}
.dash-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--erp-border);background:#fff;color:#6b7280;cursor:pointer}
.dash-icon-btn:hover{color:#111827;border-color:#d1d5db}
.dash-avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#1e3a8a;color:#fff;font-size:13px;font-weight:700}
.dash-avatar-sm{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-size:13px;font-weight:700;flex-shrink:0}
.dash-prod-ico{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#f3f4f6;color:#6b7280;flex-shrink:0}
.act-ico{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:#f3f4f6;color:#6b7280;flex-shrink:0}
.cash-ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;flex-shrink:0}
.btn-outline-blue{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #bfdbfe;color:#1d4ed8;background:#fff;font-weight:600;font-size:13px;padding:9px 16px;border-radius:10px;text-decoration:none;white-space:nowrap;cursor:pointer}
.btn-outline-blue:hover{background:#eff6ff;border-color:#93c5fd}
.btn-solid-blue{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#2563eb !important;color:#ffffff !important;font-weight:600;font-size:13px;padding:9px 16px;border-radius:10px;text-decoration:none;white-space:nowrap;border:1px solid #2563eb;cursor:pointer}
.btn-solid-blue:hover{background:#1d4ed8 !important;border-color:#1d4ed8;color:#ffffff !important}
.btn-solid-blue:visited{color:#ffffff !important}
.btn-block{display:flex;width:100%}
/* Global solid-button white-text audit fix */
.erp-btn-primary,.btn-primary,a.btn-primary,button.btn-primary{background-color:#2563eb !important;color:#ffffff !important;border-color:#2563eb !important}
.erp-btn-primary:hover,.btn-primary:hover,a.btn-primary:hover,button.btn-primary:hover{background-color:#1d4ed8 !important;color:#ffffff !important;border-color:#1d4ed8 !important}
.erp-btn-primary:visited,.btn-primary:visited{color:#ffffff !important}
.kpi-card{display:block;background:#fff;border:1px solid #eef0f4;border-radius:16px;padding:18px;box-shadow:0 1px 2px rgba(16,24,40,.04);text-decoration:none;transition:border-color .15s, box-shadow .15s}
.kpi-card:hover{border-color:#bfdbfe;box-shadow:0 4px 12px rgba(37,99,235,.08)}
.kpi-chip{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px}
.dash-card{background:#fff;border:1px solid #eef0f4;border-radius:16px;padding:20px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.dash-link{color:#2563eb;font-size:13px;font-weight:600;text-decoration:none}
.dash-link:hover{text-decoration:underline}
.dash-select{border:1px solid #e5e7eb;border-radius:10px;font-size:13px;color:#374151;padding:7px 12px;background:#fff;cursor:pointer}
.seg-toggle{display:inline-flex;background:#f3f4f6;border-radius:10px;padding:3px}
.seg-btn{border:0;background:transparent;font-size:12px;font-weight:600;color:#6b7280;padding:6px 14px;border-radius:8px;cursor:pointer}
.seg-btn.seg-active{background:#fff;color:#111827;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.dash-chart{display:flex;gap:8px;height:220px;margin-top:8px}
.dash-yaxis{display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:#9ca3af;padding:4px 0;text-align:right;min-width:44px}
.dash-bars{flex:1;display:flex;align-items:stretch;gap:6px;border-left:1px dashed #e5e7eb;padding-left:8px}
.dash-bar-group{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0}
.dash-bar-col{flex:1;width:100%;max-width:44px;display:flex;align-items:flex-end;justify-content:center;gap:3px;background-image:linear-gradient(to top,#f3f4f6 1px,transparent 1px);background-size:100% 25%}
.dash-bar{width:100%;border-radius:6px 6px 2px 2px;min-height:3px}
.dash-bar-sales{background:#bfdbfe}
.dash-bar-sales.dash-bar-last{background:#2563eb}
.dash-bar-profit{background:#bbf7d0}
.dash-xlabel{font-size:10px;color:#9ca3af;margin-top:6px;white-space:nowrap}
.dash-table{width:100%;border-collapse:collapse;font-size:13px}
.dash-table thead th{text-align:left;font-size:11px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;border-bottom:1px solid #f3f4f6;white-space:nowrap}
.dash-table tbody td{padding:12px;border-bottom:1px solid #f9fafb;vertical-align:middle;white-space:nowrap}
.dash-table tbody tr:last-child td{border-bottom:0}
.dash-table tbody tr:hover{background:#f9fafb}

/* ============ Phase 2 polish (2026-10-08): design-only overrides ============ */
/* Unify teal submit buttons (Publish / Add category) to brand blue primary */
.erp-btn-success{background:var(--erp-primary);border-color:var(--erp-primary);color:#fff}
.erp-btn-success:hover{background:#2b4fc9;border-color:#2b4fc9;color:#fff}
/* Consistent button heights */
.erp-btn{min-height:38px}
.erp-btn-sm{min-height:30px}
.erp-btn-xs{min-height:26px}
/* Tailwind teal primary buttons -> brand blue (unify with .erp-btn-primary) */
.bg-teal-700{background-color:var(--erp-primary)!important}
.bg-teal-700:hover{background-color:var(--erp-primary-dark)!important}

/* MOBILE FIX 2026-10-09: restore tap targets + slim topbar on phones */
@media(max-width:767px){
.erp-btn{min-height:44px}
.erp-btn-sm{min-height:40px}
}
@media(max-width:640px){
.erp-topbar{padding:0 16px}
}

/* MOBILE FIX 2026-10-10: declutter topbar on phones */
@media(max-width:640px){
.erp-topbar .erp-badge{display:none}
.erp-topbar .erp-user{display:none}
}

/* MOBILE FIX 2026-10-10: declutter topbar on phones */
@media(max-width:640px){
.erp-topbar .erp-badge{display:none}
.erp-topbar .erp-user{display:none}
}

/* MOBILE FIX 2026-10-10: declutter topbar on phones */
@media(max-width:640px){
.erp-topbar .erp-badge{display:none}
.erp-topbar .erp-user{display:none}
}

/* MOBILE FIX 2026-10-10: declutter topbar on phones */
@media(max-width:640px){
.erp-topbar .erp-badge{display:none}
.erp-topbar .erp-user{display:none}
}

/* mobile audit 2026-10-11: keep table cells on one line inside scroll containers */
@media (max-width: 640px) {
  .overflow-x-auto table th,
  .overflow-x-auto table td {
    white-space: nowrap;
  }
}

body.erp{overflow-x:clip}

/* POS: payment method/amount grid must shrink on narrow phones */
#pos-payments .grid > div{min-width:0}
