:root {
  --primary: #4f46e5;
  --primary-light: #818cf8;
  --primary-dark: #3730a3;
  --primary-bg: #eef2ff;
  --bg: #f0f2f5;
  --card: #ffffff;
  --text: #1e293b;
  --text-secondary: #64748b;
  --border: #e2e8f0;
  --success: #22c55e;
  --warning: #f59e0b;
  --danger: #ef4444;
  --info: #0ea5e9;
  --sidebar-bg: #0f172a;
  --sidebar-text: #94a3b8;
  --sidebar-hover: #1e293b;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.06);
  --shadow: 0 4px 20px rgba(0,0,0,.06);
  --shadow-lg: 0 10px 40px rgba(0,0,0,.08);
  --radius: 12px;
  --radius-lg: 16px;
}

*,*::before,*::after{box-sizing:border-box}
body{background:var(--bg);font-family:'Inter','Segoe UI',system-ui,sans-serif;color:var(--text);margin:0;-webkit-font-smoothing:antialiased}
.app-wrap{display:flex;min-height:100vh}

/* ====== SIDEBAR OVERLAY ====== */
.sidebar-overlay{display:none}
.sidebar{
  width:260px;background:var(--sidebar-bg);color:var(--sidebar-text);
  display:flex;flex-direction:column;position:fixed;height:100vh;z-index:100;
  transition:transform .3s ease;overflow-y:auto;
}
.sidebar-brand{
  display:flex;align-items:center;gap:12px;padding:20px 20px 18px;
  font-weight:700;font-size:15px;color:#fff;border-bottom:1px solid rgba(255,255,255,.06);
}
.sidebar-brand img{width:34px;height:34px;border-radius:10px;object-fit:cover}
.sidebar-brand i{font-size:26px;color:var(--primary-light)}
.sidebar-nav{display:flex;flex-direction:column;padding:12px 10px;gap:2px;flex:1}
.sidebar-nav a{
  color:var(--sidebar-text);text-decoration:none;padding:11px 14px;border-radius:10px;
  display:flex;align-items:center;gap:11px;font-size:14px;font-weight:500;transition:all .15s;
}
.sidebar-nav a:hover{background:var(--sidebar-hover);color:#fff}
.sidebar-nav a.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(79,70,229,.4)}
.sidebar-nav a i{font-size:18px;width:20px;text-align:center}
.sidebar-nav .nav-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#475569;padding:16px 14px 6px;font-weight:600}

/* ====== MAIN CONTENT ====== */
.main-content{margin-left:260px;flex:1;min-height:100vh;display:flex;flex-direction:column}
.topbar{
  background:#fff;padding:12px 28px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;position:sticky;top:0;z-index:90;
}
.topbar-clock{font-size:13px;padding:6px 14px;background:var(--bg);border-radius:8px;font-weight:500}
.topbar-profile-link{transition:color .15s}
.topbar-profile-link:hover{color:var(--primary)!important}
.avatar-circle{
  width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex:0 0 38px;
}
.page-body{padding:26px 28px;flex:1}

/* ====== STAT CARDS ====== */
.stat-card{
  background:var(--card);border-radius:var(--radius-lg);padding:22px;
  box-shadow:var(--shadow-sm);border:1px solid var(--border);
  display:flex;align-items:center;gap:16px;transition:all .2s;
}
.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.stat-icon{
  width:52px;height:52px;border-radius:14px;display:flex;align-items:center;
  justify-content:center;font-size:24px;color:#fff;flex:0 0 52px;
}
.stat-value{font-size:26px;font-weight:800;line-height:1;letter-spacing:-.5px}
.stat-label{color:var(--text-secondary);font-size:13px;margin-top:4px;font-weight:500}

/* ====== CARDS ====== */
.card-modern{
  background:var(--card);border-radius:var(--radius-lg);
  border:1px solid var(--border);box-shadow:var(--shadow-sm);
}
.card-modern .card-header{
  background:transparent;border-bottom:1px solid var(--border);
  font-weight:600;padding:18px 22px;font-size:15px;
}
.card-modern .card-body{padding:20px}

/* ====== TABLES ====== */
.table-modern thead{background:#f8fafc}
.table-modern th{
  font-size:12px;text-transform:uppercase;color:var(--text-secondary);
  font-weight:600;letter-spacing:.4px;padding:12px 14px;border-bottom:2px solid var(--border);
}
.table-modern td{vertical-align:middle;padding:12px 14px;border-color:var(--border)}
.table-modern tbody tr{transition:background .1s}
.table-modern tbody tr:hover{background:#f8fafc}

/* ====== FORMS ====== */
.form-control,.form-select{
  border-radius:8px;border:1.5px solid var(--border);padding:10px 14px;
  font-size:14px;transition:all .15s;
}
.form-control:focus,.form-select:focus{
  border-color:var(--primary-light);box-shadow:0 0 0 3px rgba(79,70,229,.12);
}
.form-label{font-weight:500;font-size:13px;color:var(--text-secondary);margin-bottom:4px}

/* ====== BUTTONS ====== */
.btn{
  border-radius:8px;padding:8px 18px;font-weight:500;font-size:14px;
  transition:all .15s;gap:6px;
}
.btn-primary{background:var(--primary);border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.3)}
.btn-outline-primary{color:var(--primary);border-color:var(--primary)}
.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-success{background:#059669;border-color:#059669}
.btn-success:hover{background:#047857;border-color:#047857;transform:translateY(-1px)}
.btn-outline-success{color:#059669;border-color:#059669}
.btn-outline-success:hover{background:#059669;color:#fff}
.btn-outline-danger:hover{background:var(--danger);color:#fff}
.btn-outline-secondary:hover{background:#475569;color:#fff}
.btn-sm{padding:6px 12px;font-size:13px;border-radius:6px}
.btn-lg{padding:12px 24px;font-size:16px;border-radius:10px}

/* ====== ALERTS ====== */
.alert{border-radius:var(--radius);border:none;padding:14px 18px;font-size:14px}
.alert-success{background:#f0fdf4;color:#166534}
.alert-danger{background:#fef2f2;color:#991b1b}
.alert-info{background:#eff6ff;color:#1e40af}
.alert-warning{background:#fffbeb;color:#92400e}

/* ====== BADGES ====== */
.badge{font-weight:500;padding:4px 10px;border-radius:6px;font-size:12px}
.text-bg-primary{background:var(--primary-bg)!important;color:var(--primary)!important}
.text-bg-success{background:#f0fdf4!important;color:#166534!important}
.text-bg-warning{background:#fffbeb!important;color:#92400e!important}
.text-bg-danger{background:#fef2f2!important;color:#991b1b!important}
.text-bg-info{background:#eff6ff!important;color:#1e40af!important}
.text-bg-secondary{background:#f1f5f9!important;color:#475569!important}

/* ====== SEARCH ====== */
.search-wrap{position:relative}
.search-wrap .bi-search{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-secondary)}
.search-wrap input{padding-left:40px;border-radius:10px;background:var(--bg);border:1.5px solid transparent;width:280px}
.search-wrap input:focus{background:#fff;width:340px;border-color:var(--primary-light)}

/* ====== REMINDERS ====== */
.reminder-widget{max-height:420px;overflow-y:auto}
.reminder-item{
  padding:14px 16px;border-left:4px solid var(--primary);margin-bottom:8px;
  background:#f8fafc;border-radius:10px;transition:all .15s;
}
.reminder-item:hover{background:var(--primary-bg)}
.reminder-item.overdue{border-left-color:var(--danger);background:#fef2f2}
.reminder-item.today{border-left-color:var(--warning);background:#fffbeb}
.reminder-item.completed{border-left-color:var(--success);background:#f0fdf4;opacity:.7}
.reminder-item .reminder-date{font-size:12px;color:var(--text-secondary)}
.reminder-item .reminder-title{font-weight:600;font-size:14px}
.reminder-item .reminder-project{font-size:13px;color:var(--text-secondary)}

/* ====== PRINT ====== */
.print-page{max-width:800px;margin:30px auto;background:#fff;padding:40px;box-shadow:var(--shadow-lg);border-radius:var(--radius-lg)}
.print-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid var(--primary);padding-bottom:18px;margin-bottom:24px}
.print-head img{max-height:60px}
.doc-title{font-size:28px;font-weight:800;color:var(--primary);text-align:right}
.print-table th{background:#f8fafc;font-size:13px;text-transform:uppercase;font-weight:600;color:var(--text-secondary)}
.totals-box{margin-left:auto;width:280px}
.totals-box div{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}
.totals-box .grand{font-weight:800;font-size:19px;border-top:2px solid var(--text);padding-top:8px;margin-top:4px}

/* ====== INLINE CUSTOMER ====== */
.btn-inline-customer{font-size:13px;padding:2px 10px;margin-left:6px}

/* ====== RECEIPT DOC REF ====== */
.doc-ref-card{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius);padding:16px}
.doc-ref-card .label{font-size:12px;text-transform:uppercase;color:var(--text-secondary);font-weight:600}
.doc-ref-card .value{font-weight:600;font-size:18px}

/* ====== LOGIN ====== */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b)}
.login-card{background:#fff;border-radius:20px;padding:44px;width:100%;max-width:420px;box-shadow:0 25px 60px rgba(0,0,0,.3)}
.login-card .login-title{font-size:24px;font-weight:800;margin-bottom:6px}
.login-card .login-subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:28px}

/* ====== LOADING ====== */
.ajax-loading{opacity:.5;pointer-events:none}

/* ====== SMOOTH SCROLL ====== */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#94a3b8}

/* ====== ITEM FORM - BETTER VISIBILITY ====== */
.item-form-table th{white-space:nowrap;font-size:12px}
.item-form-table .item-name{min-width:140px}
.item-form-table .item-desc{min-width:160px}
.item-form-table .item-qty{min-width:70px}
.item-form-table .item-price{min-width:110px}
.item-form-table .item-total{min-width:110px;font-weight:600;background:#f8fafc}

/* ====== RESPONSIVE ====== */
@media(max-width:991px){
  .sidebar-overlay{
    display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99;
  }
  .sidebar-overlay.show{display:block}
  .sidebar{transform:translateX(-280px)}
  .sidebar.show{transform:translateX(0)}
  .main-content{margin-left:0}
  .search-wrap input{width:180px}
  .search-wrap input:focus{width:220px}
}
@media(max-width:767px){
  .page-body{padding:16px}
  .topbar{padding:10px 16px}
  .topbar-clock{font-size:11px;padding:4px 10px}
  .stat-card{padding:16px}
  .stat-value{font-size:20px}
  .stat-icon{width:42px;height:42px;font-size:18px;flex:0 0 42px}
  .search-wrap input{width:140px}
  .search-wrap input:focus{width:160px}
  .table-modern th,.table-modern td{padding:8px 10px;font-size:13px}
  .btn-sm{padding:4px 8px;font-size:12px}
  .card-modern .card-header{padding:14px 16px}
  .card-modern .card-body{padding:14px}
  .print-page{padding:16px;margin:10px}
  .print-head{flex-direction:column;gap:12px}
  .print-head .doc-title{text-align:left}
  .totals-box{width:100%}

  .item-form-table th{font-size:10px;white-space:normal}
  .item-form-table td{padding:6px}
  .item-form-table .item-name,.item-form-table .item-desc{min-width:100px}
  .item-form-table .item-qty{min-width:60px}
  .item-form-table .item-price,.item-form-table .item-total{min-width:80px}

  .row.g-3 > [class*="col-"] { margin-bottom: 8px }
  .d-flex.gap-2.align-items-center.flex-wrap { gap: 6px !important }
  .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch }
  .table-modern { min-width: 600px }
  .table-modern th, .table-modern td { white-space: nowrap; font-size: 12px; padding: 6px 8px }
  .stat-card .stat-value { font-size: 18px }
}
@media(max-width:575px){
  .page-body{padding:12px}
  .topbar{padding:8px 12px}
  .stat-value{font-size:18px}
  .stat-card{padding:12px;gap:10px}
  .stat-icon{width:36px;height:36px;font-size:16px;flex:0 0 36px;border-radius:10px}
  .search-wrap input{width:120px;font-size:13px;padding:8px 10px 8px 34px}
  .search-wrap input:focus{width:140px}
  .h4,.h5{font-size:16px!important}

  .row.g-3 > [class*="col-"] { margin-bottom: 6px }
  .d-flex.flex-wrap.gap-2 { gap: 4px !important }
  .btn { font-size: 13px; padding: 6px 12px }
  .btn-sm { font-size: 11px; padding: 4px 8px }
  .table-modern th, .table-modern td { font-size: 11px; padding: 4px 6px }
  .table-responsive { margin: 0 -12px; border-radius: 0 }
  .card-modern { border-radius: 10px }
  .card-modern .card-body { padding: 12px }
  .card-modern .card-header { padding: 12px 14px; font-size: 14px }
  .form-control { font-size: 13px; padding: 8px 10px }
  .topbar-clock { display: none }
  .h4 { font-size: 15px !important }
}

/* Mobile-friendly table wrapper for all admin tables */
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100% }
.table-responsive > .table { margin-bottom: 0 }

/* Make action button bars wrap nicely on mobile */
.d-flex.gap-2.flex-wrap { gap: 0.5rem !important }
.d-flex.gap-2.flex-wrap > .btn,
.d-flex.gap-2.flex-wrap > a.btn { margin-bottom: 0; flex-shrink: 0 }

/* ====== PRINT ====== */
@media print{
  .no-print{display:none!important}
  .print-page{box-shadow:none;margin:0;max-width:100%;border-radius:0}
  body{background:#fff}
}
