:root{
  --sidebar-bg:#101B34; --sidebar-text:#AEB8D6; --sidebar-active:#0EA5A4; --bg:#F4F6FA; --panel:#FFFFFF; --border:#E2E6EE; --text:#182338;
  --muted:#69728A; --accent:#0EA5A4; --accent-dark:#0B8483; --danger:#D64545; --warning:#E8A33D; --ok:#33A16B;
  --shadow:0 1px 3px rgba(16,27,52,0.06), 0 1px 2px rgba(16,27,52,0.04); --radius:10px;
}
html[data-theme="dark"]{
  --sidebar-bg:#0B1220; --sidebar-text:#8892AA; --bg:#141A26; --panel:#1B2331; --border:#2A3346; --text:#E7EBF5; --muted:#8792A8;
  --shadow:0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.2);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;}
h1,h2,h3{font-family:'Sora',sans-serif;margin:0;}
.muted{color:var(--muted);}
.app-shell{display:flex;min-height:100vh;}

.auth-wrapper { display: flex; align-items: center; justify-content: center; min-height: 100vh; background: var(--sidebar-bg); }
.auth-box { background: var(--panel); padding: 40px; border-radius: 12px; box-shadow: 0 20px 40px rgba(0,0,0,0.2); width: 100%; max-width: 400px; }

.sidebar{width:245px;background:var(--sidebar-bg);color:var(--sidebar-text);flex-shrink:0;transition:width .2s;position:sticky;top:0;height:100vh;overflow-y:auto;}
.sidebar.collapsed{width:64px;}
.sidebar.collapsed .sidebar-brand span,.sidebar.collapsed .nav-item span{display:none;}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:20px;font-family:'Sora';font-weight:700;font-size:14px;color:#fff;border-bottom:1px solid rgba(255,255,255,0.08); line-height:1.2;}
.brand-logo{width:36px;height:36px;border-radius:50%;background:#fff;object-fit:contain;flex-shrink:0;box-shadow:0 1px 4px rgba(0,0,0,0.3);}
.sidebar.collapsed .brand-logo{width:30px;height:30px;}
.sidebar-nav{padding:12px;display:flex;flex-direction:column;gap:2px;}
.nav-item{display:flex;align-items:center;gap:12px;background:none;border:none;color:var(--sidebar-text);padding:11px 12px;border-radius:8px;cursor:pointer;font-size:14px;text-align:left;font-family:'Inter';width:100%;}
.nav-item i{width:18px;text-align:center;}
.nav-item:hover{background:rgba(255,255,255,0.06);color:#fff;}
.nav-item.active{background:var(--sidebar-active);color:#fff;}
.nav-item.hidden{display:none !important;}

.main-col{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{height:64px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 20px;position:sticky;top:0;z-index:20;}
.icon-btn{background:none;border:1px solid var(--border);color:var(--text);width:38px;height:38px;border-radius:8px;cursor:pointer;font-size:15px; display:inline-flex;align-items:center;justify-content:center;}
.icon-btn:hover{background:var(--bg);}
.global-search{flex:1;max-width:420px;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--muted);}
.global-search input{border:none;background:none;outline:none;color:var(--text);width:100%;font-size:14px;}
.topbar-actions{display:flex;align-items:center;gap:10px;margin-left:auto;position:relative;}
.notif-wrap{position:relative;}
.notif-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--danger);border-radius:50%;}
.notif-panel{display:none;position:absolute;right:0;top:46px;width:300px;max-height:360px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:10px;z-index:30;}
.notif-panel.open{display:block;}
.notif-item{padding:9px 8px;border-bottom:1px solid var(--border);font-size:13px;}
.notif-item:last-child{border-bottom:none;}
.notif-item .t{font-weight:600;font-size:12px;}
.notif-item .d{color:var(--muted);font-size:11px;}

.user-profile-menu { position:relative; margin-left: 8px; }
.profile-dropdown { display:none; position:absolute; right:0; top:46px; width:200px; background:var(--panel); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow); z-index:30; overflow:hidden; }
.profile-dropdown.open { display:block; }
.profile-dropdown .dd-item { display:flex; align-items:center; gap:10px; padding:12px; width:100%; border:none; background:none; text-align:left; font-size:13px; color:var(--text); cursor:pointer; }
.profile-dropdown .dd-item:hover { background:var(--bg); }
.profile-dropdown .dd-item i { color:var(--muted); width: 16px; text-align: center; }

.content{padding:24px 28px 60px;}
.view{display:none;}
.view.active{display:block;}
.view-head{margin-bottom:18px;}
.row-between{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px;}

.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px;}
.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow); cursor:pointer; transition:transform 0.15s, box-shadow 0.15s;}
.stat-card:hover{transform:translateY(-2px); box-shadow:0 4px 8px rgba(16,27,52,0.12);}
.stat-card .icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;font-size:15px;color:#fff;}
.stat-card .num{font-family:'Sora';font-size:26px;font-weight:700;}
.stat-card .label{color:var(--muted);font-size:12px;margin-top:2px;}

.dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;}
.dash-grid .panel:nth-child(3),.dash-grid .panel:nth-child(4), .dash-grid .panel:nth-child(5), .dash-grid .panel:nth-child(6){grid-column:span 1;}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);margin-bottom:16px;}
.panel h3{font-size:15px;margin-bottom:12px;}
.activity-list{list-style:none;margin:0;padding:0;font-size:13px;max-height:220px;overflow-y:auto;}
.activity-list li{padding:7px 0;border-bottom:1px solid var(--border);}
.activity-list li:last-child{border:none;}

.profile-layout { display:grid; grid-template-columns: 300px 1fr; gap:20px; align-items: start; }
.profile-card { text-align: center; padding: 30px 20px; }
.profile-pic-wrapper { width: 120px; height: 120px; margin: 0 auto; border-radius: 50%; position: relative; overflow: hidden; border: 3px solid var(--border); }
.profile-pic-wrapper img { width: 100%; height: 100%; object-fit: cover; }
.profile-pic-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s; cursor: pointer; color: #fff; font-size: 24px; }
.profile-pic-wrapper:hover .profile-pic-overlay { opacity: 1; }

.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;font-family:'Inter';}
.btn.primary{background:var(--accent);color:#fff;}
.btn.primary:hover{background:var(--accent-dark);}
.btn.ghost{background:var(--panel);border-color:var(--border);color:var(--text);}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn.danger{background:var(--danger);color:#fff;}
.btn.small{padding:5px 10px;font-size:12px;}

.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
input,select,textarea{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:8px;font-family:'Inter';font-size:13px; width:100%;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);}
.search-input{min-width:220px;}
@media (min-width: 600px) { .toolbar > * { width: auto; } }

.table-wrap{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow); width: 100%;}
table{width:100%;border-collapse:collapse;min-width:640px;}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:0.04em;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg);}
td{padding:11px 14px;border-bottom:1px solid var(--border);font-size:13px;}
tr:last-child td{border-bottom:none;}
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;color:#fff;}
.empty-row td{text-align:center;color:var(--muted);padding:30px;}
.mono{font-family: monospace;}

.permissions-grid-wrapper { overflow-x: auto; margin-top: 10px; border: 1px solid var(--border); border-radius: 8px; }
.permissions-grid-table { width: 100%; border-collapse: collapse; min-width: 500px; }
.permissions-grid-table th { background: var(--bg); font-size: 11px; text-transform: uppercase; color: var(--muted); padding: 8px 12px; border-bottom: 1px solid var(--border); text-align: center; }
.permissions-grid-table th:first-child { text-align: left; }
.permissions-grid-table td { padding: 8px 12px; border-bottom: 1px solid var(--border); text-align: center; font-size: 13px; }
.permissions-grid-table td:first-child { text-align: left; font-weight: 500; }
.permissions-grid-table tr:last-child td { border-bottom: none; }
.permissions-grid-table input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; accent-color: var(--accent); }

.category-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}
.cat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);position:relative;}
.cat-card.disabled{opacity:0.45;}
.cat-icon{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;}
.cat-card .name{font-weight:600;font-size:13.5px;}
.cat-card .actions{margin-left:auto;display:flex;gap:6px;}
.cat-card .actions button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;}
.cat-card .actions button:hover{color:var(--accent);}

.fb-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;}
.fb-fields-list{margin:12px 0;}
.fb-field-row{display:grid;grid-template-columns:1fr 110px 90px 30px;gap:6px;align-items:center;margin-bottom:8px;padding:8px;background:var(--bg);border-radius:6px;}
.fb-field-row input,.fb-field-row select{font-size:12px;padding:6px 8px;}
.fb-field-row button{background:none;border:none;color:var(--danger);cursor:pointer;}

.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;}
.mini-add{display:flex;gap:6px;margin-bottom:10px;}
.mini-add input{flex:1;}
.chip-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px;}
.chip-list li{background:var(--bg);border:1px solid var(--border);padding:5px 10px;border-radius:16px;font-size:12px;display:flex;align-items:center;gap:6px;}
.chip-list li button{background:none;border:none;color:var(--muted);cursor:pointer;}

.modal-overlay{position:fixed;inset:0;background:rgba(10,15,25,0.55);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:100;}
.modal-box{background:var(--panel);border-radius:12px;width:100%;max-width:640px;padding:24px;box-shadow:0 20px 50px rgba(0,0,0,0.3);position:relative;}
.modal-close-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:6px;border:none;background:var(--bg);color:var(--muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:5;}
.modal-close-x:hover{background:var(--danger);color:#fff;}
.modal-box h2{font-size:19px;margin-bottom:16px;}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.modal-grid label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:4px;}
.modal-grid .full{grid-column:1/-1;}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
.attach-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;}
.attach-preview .a-item{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);padding:5px 9px;border-radius:6px;font-size:11px;}

.timeline{border-left:2px solid var(--border);margin-left:10px;padding-left:20px;}
.timeline-item{position:relative;margin-bottom:18px;}
.timeline-item::before{content:'';position:absolute;left:-26px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent);}
.timeline-item .tt-date{font-size:11px;color:var(--muted);}
.timeline-item .tt-title{font-weight:600;font-size:13.5px;}
.print-header{display:none;}

.mobile-back-btn{ display:none; }
.topbar-back-btn{ display:none !important; }

@media (max-width:900px){
  html, body{ overflow-x:hidden; }
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:60;transform:translateX(-100%);transition:transform .2s;width:78vw;max-width:290px;}
  .sidebar.mobile-open{transform:translateX(0);box-shadow:0 0 30px rgba(0,0,0,0.4);}
  .sidebar.mobile-open .sidebar-brand span, .sidebar.mobile-open .nav-item span{ display:inline; }
  .sidebar-backdrop{ display:none; position:fixed; inset:0; background:rgba(8,12,22,0.55); z-index:55; }
  .sidebar-backdrop.open{ display:block; }
  .nav-item{ padding:14px 14px; font-size:15px; }
  .topbar{ padding:0 10px; gap:8px; }
  .global-search{ max-width:none; }
  .global-search input{ font-size:16px; }
  .icon-btn{ width:42px; height:42px; flex-shrink:0; }
  .topbar-back-btn.visible{ display:flex !important; align-items:center; justify-content:center; }
  .content{ padding:14px 12px 40px; }
  .view-head h1{ font-size:20px; }
  .row-between{ flex-direction:column; align-items:stretch; }
  .row-between > div:last-child{ display:flex; }
  .row-between .btn{ flex:1; justify-content:center; }
  .card-grid{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .stat-card{ padding:12px; }
  .stat-card .num{ font-size:20px; }
  .dash-grid{grid-template-columns:1fr;}
  .fb-layout{grid-template-columns:1fr;}
  .profile-layout { grid-template-columns:1fr; }
  input,select,textarea,.btn{ font-size:16px; padding:12px 12px; }
  .btn.small{ font-size:13px; padding:9px 12px; }
  .search-input{ min-width:0; width:100%; }
  .toolbar{ flex-direction:column; align-items:stretch; }
  .toolbar > *{ width:100%; }
  .modal-overlay{ padding:0; align-items:flex-end; }
  .modal-box{ max-width:100% !important; width:100%; border-radius:16px 16px 0 0; max-height:92vh; overflow-y:auto; padding:18px 16px 24px; }
  .modal-grid{ grid-template-columns:1fr; }
  .modal-actions{ flex-direction:column-reverse; }
  .modal-actions .btn{ width:100%; justify-content:center; }
  .mobile-back-btn{ display:flex; align-items:center; gap:8px; background:none; border:none; color:var(--accent); font-weight:700; font-size:15px; padding:0 0 14px 0; cursor:pointer; }
  .category-list{ grid-template-columns:1fr; }
  .settings-grid{ grid-template-columns:1fr; }
  .table-wrap{ overflow-x:auto; box-shadow:none; border:none; background:none; -webkit-overflow-scrolling: touch;}
}

@media print{
  .sidebar,.topbar,.toolbar,.btn,.no-print,.pagination-bar{display:none !important;}
  .content{padding:0;}
  .view{display:none !important;}
  .view.active{display:block !important;}
  .modal-overlay {position:static; background:none; padding:0;}
  .modal-box {box-shadow:none; max-width:100%; padding:0;}
  .print-header {display:flex !important;}
}

/* ---------- Pagination ---------- */
.pagination-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 14px;border-top:1px solid var(--border);}
.pagination-bar .pg-summary{font-size:12px;white-space:nowrap;}
.pagination-bar .pg-buttons{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.pagination-bar .pg-buttons .btn{padding:6px 11px;min-width:34px;justify-content:center;}
.pagination-bar .pg-buttons .btn[disabled]{opacity:0.4;cursor:not-allowed;pointer-events:none;}
.pagination-bar .pg-dots{color:var(--muted);font-size:12px;padding:0 2px;}
.modal-box .pagination-bar{border-top:none;margin-top:6px;padding:12px 0 0 0;}
.cat-list-pagination{margin-top:14px;}

/* ---------- DMS (Document Management System) ---------- */
.dms-summary-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px;}
.dms-summary-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 16px;min-width:150px;}
.dms-summary-card .dms-num{font-size:20px;font-weight:700;}
.dms-summary-card .dms-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.03em;}
.dms-file-name{display:flex;align-items:center;gap:8px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dms-doctype-badge{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:11px;color:var(--muted);white-space:nowrap;}

/* ---------- Document Number hyperlinks (Reports / Inventory Movement History) ---------- */
a.doc-link{color:var(--accent);text-decoration:none;font-weight:600;cursor:pointer;}
a.doc-link:hover{text-decoration:underline;}

.ms-wrap{position:relative;}
.ms-box{min-height:40px;border:1px solid var(--border);border-radius:8px;background:var(--panel);padding:6px 8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;cursor:text;}
.ms-box:focus-within{border-color:var(--accent);}
.ms-chip{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--border);padding:3px 8px;border-radius:14px;font-size:12px;}
.ms-chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px;padding:0;}
.ms-box input{border:none;outline:none;background:none;flex:1;min-width:80px;font-size:13px;padding:3px;}
.ms-panel{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);max-height:230px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);z-index:40;}
.ms-panel.open{display:block;}
.ms-option{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:13px;cursor:pointer;}
.ms-option:hover{background:var(--bg);}
.ms-option.select-all{border-bottom:1px solid var(--border);font-weight:600;}
.ms-empty{padding:10px;color:var(--muted);font-size:12px;}

.mat-line-table{width:100%;border-collapse:collapse;margin-top:6px;}
.mat-line-table th{font-size:10.5px;text-transform:uppercase;color:var(--muted);text-align:left;padding:6px 6px;border-bottom:1px solid var(--border);}
.mat-line-table td{padding:5px 6px;border-bottom:1px solid var(--border);vertical-align:middle;}
.mat-line-table select,.mat-line-table input{font-size:12px;padding:6px 7px;width:100%;}
.mat-line-table .mlt-remove{background:none;border:none;color:var(--danger);cursor:pointer;}
.mat-warn{color:var(--warning);font-size:11px;margin-top:2px;}
.compat-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:6px 0;}

.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;font-size:13px;}
.detail-grid .full{grid-column:1/-1;}
.detail-grid label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:2px;}
.vehicle-tag-list{display:flex;flex-wrap:wrap;gap:5px;}
.vehicle-tag-list span{background:var(--bg);border:1px solid var(--border);padding:2px 8px;border-radius:12px;font-size:11px;}