/* PPB TCM Theme - Apricot Grove Warm Red :root palette */
:root {
  --primary:#B22222;--primary-hover:#8B1A1A;--primary-light:#FFF5F5;--primary-subtle:#FFF8F6;
  --accent:#C8A85E;--accent-light:#FFF8E7;--success:#6B8F3A;--success-light:#F4F8ED;
  --warning:#D4943A;--warning-light:#FFF8E1;--danger:#C0392B;--danger-light:#FDEDEC;
  --info:#5B7FA5;--info-light:#EEF5FA;
  --bg:#F5F0EB;--bg-card:#FFFCF8;--text-primary:#2C1810;--text-secondary:#5D4037;
  --text-muted:#A1887F;--border:#E8DDD4;--border-focus:#C8A85E;
  --shadow-sm:0 1px 2px rgba(139,26,26,0.06);
  --shadow:0 1px 3px rgba(139,26,26,0.08),0 1px 2px rgba(139,26,26,0.04);
  --shadow-md:0 4px 6px -1px rgba(139,26,26,0.08),0 2px 4px -2px rgba(139,26,26,0.04);
  --shadow-lg:0 10px 15px -3px rgba(139,26,26,0.08),0 4px 6px -4px rgba(139,26,26,0.04);
  --radius-sm:4px;--radius:8px;--radius-lg:12px;
  --font:"Noto Sans SC","PingFang SC","Microsoft YaHei",-apple-system,sans-serif;
  --font-serif:"Noto Serif SC","STKaiti","KaiTi",Kai,serif;
}
/* Base */
body { padding-bottom:60px;font-family:var(--font);background-color:var(--bg);color:var(--text-primary);font-size:14px;line-height:1.6;min-height:100vh; }
a { color:var(--primary);transition:color 0.15s; }
a:hover { color:var(--primary-hover); }
/* Navbar */
.navbar { background:linear-gradient(135deg,#7A1515 0%,#B22222 50%,#C41E3A 100%) !important;box-shadow:0 2px 12px rgba(178,34,34,0.25);padding:0;min-height:52px; }
.navbar .navbar-brand { font-weight:700;font-size:1.05rem;letter-spacing:1.5px;padding:12px 16px;margin:0;border-right:1px solid rgba(255,255,255,0.12);font-family:var(--font-serif); }
.navbar .navbar-brand i { font-size:1.2rem;margin-right:6px;color:#FFD700; }
.navbar .nav-link { padding:15px 14px !important;font-size:0.85rem;transition:background 0.15s;color:rgba(255,255,255,0.9) !important;border-bottom:2px solid transparent; }
.navbar .nav-link:hover,.navbar .nav-link.active { background:rgba(255,255,255,0.1);color:#FFD700 !important; }
.navbar .nav-link i { margin-right:4px; }
.navbar .dropdown-toggle::after { vertical-align:0.1em;opacity:0.8; }
.navbar .dropdown-menu { border:none;box-shadow:var(--shadow-lg);border-radius:var(--radius);padding:6px;border:1px solid var(--border);margin-top:0;border-top:3px solid var(--accent); }
.navbar .dropdown-item { border-radius:var(--radius-sm);padding:8px 14px;font-size:0.85rem;transition:background 0.12s;color:var(--text-primary); }
.navbar .dropdown-item:hover { background:var(--primary-light);color:var(--primary); }
.navbar .dropdown-item i { width:18px;text-align:center;margin-right:6px;color:var(--text-muted); }
.navbar .dropdown-item:hover i { color:var(--primary); }
.navbar .badge { font-weight:500;font-size:0.7rem; }
.navbar .text-light { font-size:0.82rem; }
.nav-divider { width:1px;height:24px;background:rgba(255,255,255,0.18);margin:14px 0;align-self:center;flex-shrink:0; }
/* Cards */
.card { border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow 0.2s;background:var(--bg-card); }
.card:hover { box-shadow:var(--shadow-md); }
.card-header { background:#fff;border-bottom:1px solid var(--border);font-weight:600;padding:12px 16px; }
.card-body { padding:16px; }
/* Schedule Table */
.schedule-table { font-size:0.78rem;border-collapse:separate;border-spacing:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow); }
.schedule-table thead th { background:linear-gradient(180deg,#FDF8F0 0%,#F5EDE0 100%);font-weight:600;color:var(--text-secondary);font-size:0.75rem;letter-spacing:0.3px;padding:8px 6px !important;border-bottom:2px solid var(--accent);position:sticky;top:0;z-index:10;white-space:nowrap; }
.schedule-table td { vertical-align:middle;padding:3px 5px !important;min-height:44px;border-bottom:1px solid var(--border); }
.schedule-table tbody tr:hover td { background-color:var(--primary-subtle) !important; }
.schedule-table .name-cell { white-space:nowrap;font-size:0.82rem;font-weight:600;position:sticky;left:0;z-index:5;background:inherit;box-shadow:1px 0 0 var(--border); }
.staff-row { background-color:#ffffff; }
.probation-row { background-color:#FDF2E9; }
.intern-row { background-color:#EEF5FA; }
.cell-edit:hover { background-color:#FFF0EC !important;box-shadow:inset 0 0 0 1px var(--primary); }
/* Picker */
#pickerModal .modal-header { background:linear-gradient(135deg,#7A1515,#B22222);color:#fff;border-radius:var(--radius) var(--radius) 0 0;padding:10px 14px; }
#pickerList .list-group-item:hover { background-color:var(--primary-light);color:var(--primary); }
/* Buttons */
.btn { border-radius:var(--radius-sm);font-weight:500;font-size:0.82rem;padding:6px 14px;transition:all 0.15s; }
.btn-primary { background:var(--primary);border-color:var(--primary); }
.btn-primary:hover { background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 8px rgba(178,34,34,0.2); }
.btn-outline-primary { color:var(--primary);border-color:var(--border); }
.btn-outline-primary:hover { background:var(--primary-light);color:var(--primary);border-color:var(--primary); }
.btn-outline-secondary { color:var(--text-secondary);border-color:var(--border); }
.btn-outline-secondary:hover { background:var(--bg);color:var(--text-primary);border-color:var(--accent); }
.btn-success { background:var(--success);border-color:var(--success); }
.btn-danger { background:var(--danger);border-color:var(--danger); }
.btn-sm { padding:4px 10px;font-size:0.75rem; }
/* Forms */
.form-control,.form-select { border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:0.85rem;padding:7px 12px;transition:border-color 0.15s; }
.form-control:focus,.form-select:focus { border-color:var(--accent);box-shadow:0 0 0 3px rgba(200,168,94,0.12); }
.form-label { font-weight:500;font-size:0.82rem;color:var(--text-secondary);margin-bottom:4px; }
/* Alerts */
.alert { border:none;border-radius:var(--radius);padding:10px 14px;margin-bottom:12px;font-size:0.85rem;box-shadow:var(--shadow-sm); }
.alert-success { background:var(--success-light);color:#3D5A1E; }
.alert-danger { background:var(--danger-light);color:#7B241C; }
.alert-warning { background:var(--warning-light);color:#7D5A1E; }
.alert-info { background:var(--info-light);color:#1A3A5C; }
/* Badge */
.badge { font-weight:500;font-size:0.7rem;padding:3px 7px;border-radius:4px; }
.badge.bg-warning.text-dark { background:var(--accent) !important;color:#fff !important; }
/* Tables */
.table thead th { background:#FDF8F0;border-bottom:2px solid var(--accent);font-weight:600;font-size:0.78rem;color:var(--text-secondary);padding:10px 12px !important; }
.table td { padding:8px 12px !important;vertical-align:middle;border-bottom:1px solid var(--border); }
/* Login */
.login-page { min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#5A1010 0%,#8B1A1A 30%,#B22222 60%,#7A1515 100%);position:relative;overflow:hidden; }
.login-page::before { content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 25% 40%,rgba(200,168,94,0.08) 0%,transparent 50%),radial-gradient(ellipse at 75% 60%,rgba(255,215,0,0.05) 0%,transparent 50%);animation:loginBgShift 25s ease infinite; }
@keyframes loginBgShift { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(3deg)} }
.login-card { width:100%;max-width:400px;position:relative;z-index:1; }
.login-card .card { border:none;border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(90,16,16,0.4);overflow:hidden; }
.login-card .card-header { background:linear-gradient(135deg,#7A1515,#B22222);color:#FFD700;padding:28px 24px 20px;text-align:center;border:none; }
.login-card .card-header h5 { font-weight:700;font-size:1.1rem;margin:0;color:#fff;font-family:var(--font-serif); }
.login-card .card-header .logo-icon { display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;background:rgba(255,255,255,0.12);border-radius:50%;font-size:1.8rem;margin-bottom:12px;color:#FFD700; }
.login-card .card-body { padding:28px 24px;background:var(--bg-card); }
.login-card .btn { padding:10px;font-size:0.9rem;font-weight:600; }
.login-card .card-footer { background:#F5EDE0 !important;border-top:1px solid var(--border);font-size:0.75rem;color:var(--text-muted); }
/* My schedule */
.my-schedule-card .card.today { border-color:var(--primary);box-shadow:0 0 0 2px rgba(178,34,34,0.12); }
/* Pagination */
.pagination .page-link:hover { background:var(--primary-subtle);border-color:var(--primary);color:var(--primary); }
.pagination .page-item.active .page-link { background:var(--primary);border-color:var(--primary); }
/* Dept cards */
a.dept-card { background:var(--bg-card);border-bottom:3px solid #C8A85E; }
a.dept-card.active { border-color:var(--primary);border-bottom-color:var(--primary-hover); }
/* Mise */
.vr { width:1px;background:var(--border);opacity:1;align-self:stretch; }
.batch-action-bar { background:var(--bg-card);border:1px solid var(--primary); }
#inlinePicker { border:2px solid var(--accent) !important; }
.list-group-item.active { background-color:var(--primary) !important;border-color:var(--primary) !important; }
/* Scrollbar */
::-webkit-scrollbar-thumb { background:#D4C8BC;border-radius:3px; }
::webkit-scrollbar-thumb:hover { background:#B8AA9E; }
/* Print */
/* Mobile schedule card header colors */
.mobile-week-card .card-header { background:#FBF7F2;border-bottom:1px solid var(--border); }
.mobile-week-card.intern .card-header { background:#EAF1F8; }
.mobile-week-card.probation .card-header { background:#FBEEE0; }
@media print { .navbar,.btn,.alert{display:none!important} .card{box-shadow:none!important;border:1px solid #ddd} }
