:root{--navy:#08162f;--navy2:#0e2346;--ink:#12213a;--muted:#71809a;--line:#e5eaf2;--surface:#fff;--bg:#f5f7fb;--blue:#4967ff;--indigo:#6b5cff;--cyan:#2fb7d8;--green:#18a36b;--red:#e05261;--amber:#d9962d;--shadow:0 12px 36px rgba(24,42,78,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}body.modal-open{overflow:hidden}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:278px;background:linear-gradient(180deg,#07152f 0%,#0b1d3b 55%,#09172f 100%);color:#aebbd1;display:flex;flex-direction:column;z-index:100;border-right:1px solid rgba(255,255,255,.06);box-shadow:12px 0 40px rgba(7,20,45,.12)}.brand-block{padding:22px 18px 16px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.brand-logo{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#6076ff,#7c5cff);font-family:'Plus Jakarta Sans';font-size:20px;font-weight:800;box-shadow:0 8px 22px rgba(91,96,255,.35)}.brand b{display:block;font-family:'Plus Jakarta Sans';font-size:16px;letter-spacing:.14em}.brand small{display:block;margin-top:3px;color:#8293b1;font-size:8px;letter-spacing:.16em;font-weight:800}.sidebar-close,.mobile-menu{display:none}.workspace-card{margin:2px 15px 17px;padding:13px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.045);border-radius:16px;display:flex;align-items:center;gap:10px}.workspace-mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#2d78ff,#765cff);display:grid;place-items:center;color:#fff;font-weight:800}.workspace-meta{min-width:0;flex:1}.workspace-meta b{display:block;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-meta small{display:block;color:#8294b2;font-size:9px;margin-top:3px}.workspace-chevron{color:#7385a5}.sidebar-scroll{overflow-y:auto;overflow-x:hidden;padding:0 11px 16px;scrollbar-width:thin;scrollbar-color:#2a4167 transparent;flex:1}.sidebar-scroll::-webkit-scrollbar{width:5px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#294266;border-radius:10px}.sidebar-label{padding:13px 11px 7px;color:#657999;font-size:8px;letter-spacing:.18em;font-weight:800}.side-nav{display:grid;gap:3px}.side-nav a{position:relative;display:flex;align-items:center;gap:11px;min-height:42px;padding:9px 12px;border-radius:11px;color:#9cabc3;text-decoration:none;font-size:12px;font-weight:650;transition:.18s ease}.side-nav a:hover{color:#fff;background:rgba(255,255,255,.06);transform:translateX(2px)}.side-nav a.active{color:#fff;background:linear-gradient(90deg,rgba(82,105,255,.98),rgba(91,85,237,.84));box-shadow:0 8px 22px rgba(62,87,255,.23)}.nav-icon{width:19px;height:19px;display:grid;place-items:center;opacity:.9}.nav-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav-active-dot{margin-left:auto;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 10px #fff}.sidebar-footer{padding:13px 15px 16px;border-top:1px solid rgba(255,255,255,.07)}.user-mini{display:flex;align-items:center;gap:10px;padding:10px;border-radius:13px;background:rgba(255,255,255,.045)}.avatar,.top-avatar{display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,#526bff,#6d57e8);color:#fff;font-weight:800}.avatar{width:34px;height:34px;font-size:11px}.user-text{min-width:0;flex:1}.user-text b{display:block;color:#fff;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-text small{display:block;color:#8192af;font-size:9px;margin-top:2px}.logout-mini{color:#92a3bf;text-decoration:none;font-size:18px;padding:3px}.logout-mini:hover{color:#fff}.main{margin-left:278px;min-height:100vh}.topbar{position:sticky;top:0;z-index:50;height:82px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;background:rgba(245,247,251,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(224,230,240,.75)}.topbar-left{display:flex;align-items:center;gap:12px}.eyebrow{font-size:8px;letter-spacing:.19em;font-weight:800;color:#7786a1;text-transform:uppercase}.topbar-current{font-family:'Plus Jakarta Sans';font-weight:800;font-size:21px;margin-top:4px;color:#13233e}.top-actions{display:flex;align-items:center;gap:12px}.system-status{font-size:10px;font-weight:700;color:#5d6c84;display:flex;align-items:center;gap:6px}.live-dot{width:7px;height:7px;background:#19ae73;border-radius:50%;box-shadow:0 0 0 4px rgba(25,174,115,.1)}.company-switcher{display:flex;align-items:center;gap:7px;padding:7px 9px 7px 11px;border:1px solid #dde4ef;background:#fff;border-radius:10px;font-size:9px;color:#8290a5}.company-switcher select{width:auto!important;min-width:120px;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;font-size:10px!important;font-weight:700}.company-switcher.single b{font-size:10px;color:#243552}.top-profile{display:flex;align-items:center;gap:8px;padding-left:4px}.top-avatar{width:35px;height:35px;font-size:10px}.top-profile-text b{display:block;font-size:10px;color:#24334d}.top-profile-text small{display:block;font-size:8px;color:#8491a7;margin-top:2px}.page-body{padding:26px 34px 45px;max-width:1700px}.page-intro{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:20px}.page-intro h1{font-family:'Plus Jakarta Sans';font-size:28px;letter-spacing:-.03em;margin:5px 0 6px}.page-intro p{color:#77869d;margin:0;font-size:12px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.hero,.payroll-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#0b1c3a 0%,#183e73 58%,#354ca0 100%);border-radius:22px;padding:32px 34px;color:#fff;box-shadow:0 18px 45px rgba(13,39,85,.16);margin-bottom:18px}.hero:after,.payroll-hero:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-65px;top:-120px;background:rgba(255,255,255,.08)}.hero h1,.payroll-hero h1{font-family:'Plus Jakarta Sans';font-size:30px;letter-spacing:-.04em;margin:7px 0}.hero p,.payroll-hero p{color:#c0cce0;margin:0;font-size:12px}.hero .btn{position:relative;z-index:2}.cards,.payroll-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin:18px 0}.payroll-kpis{grid-template-columns:repeat(4,1fr)}.metric,.payroll-kpi,.panel,.info-box{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.metric{padding:18px;min-height:118px}.metric span,.payroll-kpi span{font-size:10px;color:#7b89a0;font-weight:700}.metric strong,.payroll-kpi strong{display:block;font-family:'Plus Jakarta Sans';font-size:25px;margin:7px 0;color:#172742}.metric i{font-style:normal;font-size:8px;color:#a1aec1;letter-spacing:.14em}.metric.good strong,.payroll-kpi.good strong{color:var(--green)}.metric.bad strong{color:var(--red)}.metric.warn strong{color:var(--amber)}.payroll-kpi{padding:17px}.payroll-kpi small{color:#8a96aa;font-size:9px}.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.panel{overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid #edf0f5;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h3{margin:0;font-family:'Plus Jakarta Sans';font-size:14px}.panel-head p{margin:4px 0 0;color:#8a96a9;font-size:10px}.quick{display:grid;grid-template-columns:1fr 1fr;padding:9px}.quick a{padding:17px;text-decoration:none;color:#273752;border-bottom:1px solid #eef1f5;font-size:11px;font-weight:650;transition:.15s}.quick a:hover{background:#f7f9fd;color:#4b5fff}.quick a b{float:right;color:#6474ff}.period-card{padding:25px}.period-card strong{display:block;font-family:'Plus Jakarta Sans';font-size:18px}.period-card span{display:block;color:#7a879b;font-size:11px;margin:5px 0 13px}.toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.muted{color:#7b899f;font-size:11px}.text-link{font-size:10px;color:#4c61f4;text-decoration:none;font-weight:700}.btn{border:1px solid transparent;border-radius:10px;padding:10px 14px;background:#eef2f7;color:#34445f;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11px;font-weight:750;cursor:pointer;transition:.16s ease;line-height:1.2}.btn:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(33,53,95,.1)}.btn.primary{background:linear-gradient(135deg,#4e6cff,#6256e8);color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(75,91,239,.22)}.btn.light{background:rgba(255,255,255,.95);color:#152c51}.btn.ghost{background:#fff;border-color:#dfe5ee;color:#4b5b74}.btn.danger{color:#c73b49;background:#fff4f5;border-color:#ffdce0}.btn.small{padding:6px 9px;font-size:9px;border-radius:8px}.btn.full{width:100%;padding:12px}.inline{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.filterbar{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);padding:10px;border-radius:14px;margin-bottom:15px;box-shadow:0 6px 20px rgba(25,44,80,.04)}.filterbar input,.filterbar select{margin:0;max-width:250px}.filterbar button{white-space:nowrap}label{font-size:10px;font-weight:750;color:#5e6c82;display:block;margin:9px 0}input,select,textarea{display:block;width:100%;margin-top:5px;border:1px solid #dce3ed;border-radius:9px;padding:9px 10px;background:#fff;color:#1d2b43;outline:none;font:inherit;font-size:11px;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#6878f6;box-shadow:0 0 0 3px rgba(91,103,240,.1)}textarea{min-height:75px;resize:vertical}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 12px}.span2{grid-column:span 2}.table-scroll{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #edf0f5;font-size:10px;white-space:nowrap}th{color:#7b89a0;font-size:8px;letter-spacing:.09em;text-transform:uppercase;background:#fbfcfe}td b{display:block;color:#263650}td small{display:block;color:#8995a8;margin-top:3px}.num{text-align:center}.good{color:var(--green)!important}.bad{color:var(--red)!important}.badge,.status{display:inline-block;padding:5px 8px;border-radius:7px;font-size:8px;font-weight:800;background:#eef2f7;color:#65738a}.badge.active,.badge.processed,.badge.approved,.status.p{background:#e4f8ee;color:#13845a}.badge.closed,.badge.locked,.status.sl{background:#fff1d7;color:#ad7111}.badge.draft,.badge.archived,.status.wo{background:#eef1f5;color:#647184}.status.ab{background:#ffe7e9;color:#ca3d4a}.status.cl{background:#e9efff;color:#365fca}.status.el{background:#e5f7f5;color:#188b83}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}.info-box{padding:15px}.info-box b{display:block;font-size:11px}.info-box span{font-size:10px;color:#718097}.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.feature-strip>div{background:linear-gradient(180deg,#fff,#fafbfe);border:1px solid var(--line);border-radius:14px;padding:13px 15px}.feature-strip b{display:block;font-size:10px;color:#273853}.feature-strip span{display:block;color:#8490a3;font-size:9px;margin-top:3px}.integration-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(100deg,#101f3d,#1d3d70);color:#fff;border-radius:16px;padding:15px 18px;margin-bottom:15px}.integration-icon{width:35px;height:35px;border-radius:10px;background:rgba(255,255,255,.09);display:grid;place-items:center}.integration-banner b{font-size:12px}.integration-banner small{display:block;color:#b7c7df;font-size:9px;margin-top:2px}.box{padding:20px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.head{font-family:'Plus Jakarta Sans';font-size:14px}.empty{text-align:center;padding:36px 20px;color:#91a0b4;font-size:11px}.modal{display:none;position:fixed;inset:0;background:rgba(6,17,37,.64);backdrop-filter:blur(4px);z-index:200;place-items:center;padding:20px}.modal.show{display:grid}.modal-card{background:#fff;width:min(650px,96vw);max-height:90vh;overflow:auto;border-radius:18px;padding:23px;box-shadow:0 35px 100px rgba(0,0,0,.28)}.modal-xl{width:min(1050px,96vw)}.modal-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.modal-title h3{margin:4px 0 0;font-family:'Plus Jakarta Sans';font-size:18px}.modal-x{border:0;background:#f1f4f8;width:31px;height:31px;border-radius:9px;font-size:20px;color:#6e7c92;cursor:pointer}.form-section{border:1px solid #e7ebf2;border-radius:13px;padding:15px;margin:11px 0;background:#fcfdff}.form-section h4{font-family:'Plus Jakarta Sans';font-size:11px;margin:0 0 9px;color:#263651}.checkline{display:flex;align-items:center;gap:7px}.checkline input{width:auto;margin:0}.alert,.toast{padding:11px 14px;border-radius:10px;font-size:11px;margin-bottom:14px}.alert.error,.toast.error{background:#ffe9eb;color:#b52e3a}.alert.success,.toast.success{background:#e5f8ef;color:#117b4e}.toast.info{background:#e8efff;color:#2459a9}.toast{position:fixed;right:28px;top:96px;z-index:500;box-shadow:0 15px 35px rgba(18,38,74,.15)}.auth{min-height:100vh;background:radial-gradient(circle at 80% 10%,#4655a6 0,#142d57 30%,#07142b 72%);display:grid;place-items:center;padding:20px}.auth-wrap{width:min(470px,100%)}.auth-card{background:rgba(255,255,255,.98);border-radius:24px;padding:36px;box-shadow:0 40px 110px rgba(0,0,0,.35)}.auth-card .brand{color:#0c1b38;margin-bottom:18px}.auth-card h1{font-family:'Plus Jakarta Sans';font-size:27px;margin:7px 0}.access-link{text-align:center;margin-top:18px}.access-link a{color:#4d62ed;font-size:11px;font-weight:700;text-decoration:none}.login-note{margin-top:18px;background:#f4f6fa;padding:10px;border-radius:9px;color:#7a879c;font-size:9px;text-align:center}.payroll-hero{margin-bottom:16px}.payroll-hero .hero-actions{display:flex;gap:8px;position:relative;z-index:2}.net,.net-pay{color:#16865b;font-weight:800}.print{background:#fff!important;color:#233656!important}.right{text-align:right}@media(max-width:1200px){.sidebar{width:245px}.main{margin-left:245px}.cards{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(2,1fr)}.top-actions .system-status{display:none}}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.22s ease;width:285px}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(4,12,26,.55);z-index:90}.sidebar-open .sidebar-overlay{display:block}.sidebar-close{display:block;border:0;background:rgba(255,255,255,.06);color:#fff;border-radius:8px;width:30px;height:30px;font-size:20px}.main{margin-left:0}.topbar{padding:0 18px;height:74px}.mobile-menu{display:grid;place-items:center;border:1px solid #dde4ee;background:#fff;width:35px;height:35px;border-radius:10px;color:#2a3a56}.top-profile-text,.company-switcher{display:none}.page-body{padding:20px 18px 35px}.two-col,.cols{grid-template-columns:1fr}.feature-strip{grid-template-columns:1fr}.page-intro{align-items:flex-start;flex-direction:column}.cards{grid-template-columns:repeat(2,1fr)}.payroll-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.topbar-current{font-size:17px}.eyebrow{font-size:7px}.cards,.payroll-kpis,.grid,.grid2,.grid4{grid-template-columns:1fr}.hero,.payroll-hero{padding:24px}.hero h1,.payroll-hero h1{font-size:23px}.filterbar{align-items:stretch;flex-direction:column}.filterbar input,.filterbar select{max-width:none}.page-actions{width:100%}.page-actions .btn{flex:1}.modal-card{padding:18px}.span2{grid-column:auto}.info-grid{grid-template-columns:1fr 1fr}.quick{grid-template-columns:1fr}}


/* ============================================================
   V4 — FACTORY PMS INSPIRED PREMIUM HRMS THEME
   Palette intentionally aligned to the supplied Factory PMS:
   charcoal sidebar + muted rose accent + warm neutral canvas.
   ============================================================ */
:root{
  --navy:#292426;
  --navy2:#211e20;
  --ink:#2b2527;
  --muted:#83787d;
  --line:#eadfe3;
  --surface:#ffffff;
  --bg:#f7f3f4;
  --blue:#b9677e;
  --indigo:#a95770;
  --cyan:#c48798;
  --green:#4f9b6f;
  --red:#c75a68;
  --amber:#b78445;
  --shadow:0 8px 26px rgba(55,36,43,.055);
}
body{
  background:
    radial-gradient(circle at 88% 0%,rgba(185,103,126,.075),transparent 27%),
    var(--bg);
  color:var(--ink);
}
.sidebar{
  width:260px;
  background:
    radial-gradient(circle at 12% 0%,#3b3135 0,transparent 34%),
    linear-gradient(180deg,#292426 0%,#242022 52%,#211e20 100%);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:8px 0 28px rgba(45,28,35,.08);
}
.brand-block{padding:20px 18px 17px}
.brand-logo{
  width:42px;height:42px;border-radius:11px;
  background:linear-gradient(135deg,#c77b91,#a95770);
  box-shadow:0 8px 22px rgba(185,103,126,.22);
}
.brand b{letter-spacing:.16em}
.brand small{color:#d9b5c0}
.workspace-card{
  margin:2px 15px 15px;
  border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.045);
  border-radius:13px;
}
.workspace-mark{
  background:linear-gradient(135deg,#c77b91,#a95770);
}
.sidebar-scroll{
  scrollbar-color:#684653 transparent;
}
.sidebar-scroll::-webkit-scrollbar-thumb{background:#684653}
.sidebar-label{color:#a99a9f}
.side-nav a{color:#d1c5c9;border-radius:8px}
.side-nav a:hover{background:#3a3033;color:#fff;transform:translateX(2px)}
.side-nav a.active{
  background:linear-gradient(90deg,#b9677e,#a95770);
  color:#fff;
  box-shadow:0 7px 18px rgba(185,103,126,.19);
}
.nav-icon{color:inherit}
.nav-active-dot{box-shadow:0 0 10px rgba(255,255,255,.65)}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.09)}
.user-mini{background:rgba(255,255,255,.035)}
.avatar,.top-avatar{background:linear-gradient(135deg,#c77b91,#a95770)}
.logout-mini:hover{color:#fff}

.main{margin-left:260px}
.topbar{
  height:76px;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid #eadfe3;
  box-shadow:0 1px 0 rgba(45,28,35,.02);
}
.eyebrow{color:#ae7180}
.topbar-current{
  font-family:'Playfair Display',Georgia,serif;
  font-size:22px;
  color:#2e282a;
}
.system-status{color:#756b70}
.live-dot{
  background:#79d19a;
  box-shadow:0 0 0 4px rgba(121,209,154,.10);
}
.company-switcher{
  border-color:#eadfe3;
  border-radius:8px;
}
.company-switcher select{color:#2e282a}
.top-profile-text b{color:#2e282a}
.top-profile-text small{color:#8b8085}

.page-body{padding:30px 35px 45px;max-width:1450px}
.page-intro h1{
  font-family:'Playfair Display',Georgia,serif;
  font-size:36px;
  color:#292426;
  letter-spacing:-.02em;
}
.page-intro p{color:#83787d}
.hero,.payroll-hero{
  background:linear-gradient(115deg,#292426 0%,#4a3a40 56%,#7f5363 100%);
  border-radius:14px;
  box-shadow:0 16px 35px rgba(55,36,43,.11);
}
.hero h1,.payroll-hero h1{
  font-family:'Playfair Display',Georgia,serif;
  font-size:31px;
}
.hero p,.payroll-hero p{color:#e2d4d8}

.cards,.payroll-kpis{gap:14px}
.metric,.payroll-kpi,.panel,.info-box{
  border-color:#eadfe3;
  border-radius:11px;
  box-shadow:0 5px 20px rgba(55,36,43,.035);
}
.metric strong,.payroll-kpi strong{
  font-family:'Playfair Display',Georgia,serif;
  color:#2e282a;
}
.metric.good strong,.payroll-kpi.good strong{color:#4f9b6f}
.metric.bad strong{color:#c75a68}
.metric.warn strong{color:#b78445}
.panel-head{border-bottom-color:#eee4e7}
.panel-head h3,.head,.form-section h4{
  font-family:'Playfair Display',Georgia,serif;
  color:#2e282a;
}
.quick a{color:#423a3d}
.quick a:hover{background:#faf5f6;color:#a95770}
.quick a b{color:#b9677e}

.btn{
  border-radius:7px;
  padding:10px 14px;
  box-shadow:none;
}
.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(55,36,43,.10);
}
.btn.primary{
  background:linear-gradient(135deg,#b9677e,#a95770);
  color:#fff;
  border-color:transparent;
  box-shadow:0 7px 17px rgba(185,103,126,.20);
}
.btn.primary:hover{
  background:linear-gradient(135deg,#ad5d75,#9b4d67);
}
.btn.light{background:#fff;color:#2e282a}
.btn.ghost{border-color:#e3d7dc;color:#5e5257}
.btn.danger{color:#b64656;background:#fff5f6;border-color:#f1d9de}
input,select,textarea{
  border-color:#dfd4d9;
  border-radius:7px;
}
input:focus,select:focus,textarea:focus{
  border-color:#b9677e;
  box-shadow:0 0 0 3px rgba(185,103,126,.10);
}
.filterbar{
  border-color:#eadfe3;
  box-shadow:0 5px 16px rgba(55,36,43,.035);
}
th{background:#fbf8f9;color:#8b8085}
th,td{border-bottom-color:#eee4e7}
.badge.active,.badge.processed,.badge.approved,.status.p{background:#eaf7ef;color:#3c825b}
.badge.left{background:#ffe2e5;color:#b42335}
.badge.closed,.badge.locked,.status.sl{background:#fbf0df;color:#956a32}
.status.ab{background:#fff0f2;color:#b64656}
.status.cl{background:#f7e9ee;color:#9e4f68}
.status.el{background:#f0e9f4;color:#76547c}
.status.wo{background:#f0ecee;color:#675b60}

.integration-banner{
  background:linear-gradient(100deg,#292426,#4a3a40);
}
.modal{background:rgba(38,29,32,.62)}
.modal-card{border-radius:13px}
.modal-x{background:#f5eff1;color:#756b70}
.form-section{border-color:#eadfe3;background:#fdfafb}
.alert.error,.toast.error{background:#fff0f2;color:#b64656}
.alert.success,.toast.success{background:#eaf7ef;color:#3c825b}
.toast.info{background:#f7e9ee;color:#8f4960}

.auth{
  background:
    radial-gradient(circle at 80% 5%,#8b5c6d 0,transparent 30%),
    linear-gradient(135deg,#292426,#3e3237 58%,#1f1b1d);
}
.auth-card{
  border-radius:14px;
  box-shadow:0 35px 90px rgba(0,0,0,.28);
}
.auth-card .brand{color:#292426}
.auth-card h1{
  font-family:'Playfair Display',Georgia,serif;
  font-size:30px;
}
.access-link a{color:#a95770}
.login-note{background:#f7f2f4;color:#83787d}

/* Keep the navigation scrollable at every desktop size. */
.sidebar{overflow:hidden}
.sidebar-scroll{min-height:0;overscroll-behavior:contain}

/* Mobile: compact premium navigation */
@media(max-width:900px){
  .sidebar{width:285px}
  .main{margin-left:0}
  .page-body{padding:22px 18px 35px}
  .topbar{height:72px}
}
@media(max-width:560px){
  .page-intro h1{font-size:29px}
}

/* V7 Attendance Control Center */
.attendance-page{max-width:1500px;margin:0 auto}
.page-hero.attendance-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:28px 30px;margin-bottom:18px;background:linear-gradient(135deg,#2c282b 0%,#43353b 52%,#815668 100%);border:1px solid rgba(255,255,255,.06);border-radius:18px;box-shadow:0 18px 40px rgba(55,36,43,.13);color:#fff}
.page-hero.attendance-hero .eyebrow{color:#d9a6b2;font-size:9px;letter-spacing:.2em;font-weight:800}
.page-hero.attendance-hero h1{margin:7px 0 7px;font-family:'Plus Jakarta Sans',sans-serif;font-size:30px;letter-spacing:-.035em;color:#fff}
.page-hero.attendance-hero p{max-width:760px;margin:0;color:#eadde1;font-size:11px;line-height:1.7}
.hero-actions{display:flex;gap:9px;flex-shrink:0}
.attendance-hero .btn{border:1px solid rgba(255,255,255,.16)}
.attendance-hero .btn.secondary{background:rgba(255,255,255,.1);color:#fff}
.attendance-hero .btn.primary{background:#c36d84;color:#fff;border-color:#c36d84;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.attendance-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:16px}
.attendance-kpi{min-height:105px;padding:17px 18px;background:#fff;border:1px solid #eadfe3;border-radius:14px;box-shadow:0 7px 22px rgba(55,36,43,.045)}
.attendance-kpi span{display:block;color:#a17b86;font-size:8px;font-weight:800;letter-spacing:.15em}
.attendance-kpi strong{display:block;margin-top:9px;color:#30292c;font-family:'Plus Jakarta Sans';font-size:25px;letter-spacing:-.04em}
.attendance-kpi small{display:block;margin-top:5px;color:#8d8388;font-size:9px}
.attendance-kpi.ready{background:linear-gradient(135deg,#fbf5f7,#fff);border-color:#e3cfd5}
.attendance-kpi.ready strong{color:#b35d75;font-size:20px}
.attendance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 19px;margin-bottom:14px;background:#fff;border:1px solid #eadfe3;border-radius:14px;box-shadow:0 7px 22px rgba(55,36,43,.035)}
.toolbar-label{display:block;color:#ad7180;font-size:8px;letter-spacing:.18em;font-weight:800}
.attendance-toolbar h3,.table-panel-head h3,.shift-reference h3{margin:4px 0 2px;color:#30292c;font-family:'Plus Jakarta Sans';font-size:15px}
.attendance-toolbar p,.table-panel-head p{margin:0;color:#8b8085;font-size:9px}
.attendance-filter{display:flex;align-items:flex-end;gap:9px}
.attendance-filter label{margin:0;min-width:210px}
.attendance-filter select{height:38px}
.attendance-table-panel{background:#fff;border:1px solid #eadfe3;border-radius:15px;box-shadow:0 7px 22px rgba(55,36,43,.035);overflow:hidden}
.table-panel-head{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid #eee5e8}
.table-head-badge{padding:6px 9px;border-radius:999px;background:#f4e6ea;color:#a85d72;font-size:8px;font-weight:800;letter-spacing:.12em}
.attendance-table-panel th{background:#fbf8f9;color:#927f86}
.attendance-table-panel td{padding:12px 14px;font-size:10px}
.shift-pill{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;border-radius:8px;background:#f3e8eb;color:#a75e73;font-weight:800}
.shift-reference{margin-top:14px;padding:17px 19px;background:#fff;border:1px solid #eadfe3;border-radius:15px;box-shadow:0 7px 22px rgba(55,36,43,.035)}
.shift-reference-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.shift-reference-head>span{color:#94868c;font-size:9px}
.shift-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.shift-cards>div{position:relative;padding:13px 13px 12px;border:1px solid #eee2e6;border-radius:11px;background:linear-gradient(180deg,#fff,#fbf7f8)}
.shift-cards i{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:7px;border-radius:7px;background:#30292c;color:#fff;font-style:normal;font-size:9px;font-weight:800}.shift-cards b{font-size:10px;color:#4b4246}.shift-cards strong{display:block;margin:9px 0 0;color:#a85d72;font-size:12px}
.attendance-modal{background:#fbfafb;border:1px solid #eadfe3}.attendance-modal .modal-title{padding-bottom:15px;border-bottom:1px solid #eee3e7}.attendance-modal .modal-title h3{font-size:22px;color:#30292c}.entry-step{display:flex;gap:14px;padding:17px 0;border-bottom:1px solid #eee5e8}.step-number{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:9px;background:#f0e3e7;color:#aa6075;font-size:9px;font-weight:900}.step-content{min-width:0;flex:1}.step-content h4{margin:2px 0 10px;color:#30292c;font-family:'Plus Jakarta Sans';font-size:12px}.entry-step label{margin-top:0}.entry-step input,.entry-step select{background:#fff}.import-drop{position:relative;display:flex;align-items:center;gap:13px;padding:17px;border:1.5px dashed #d9bbc4;border-radius:13px;background:#fff7f9}.import-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#eedde2;color:#a65b71;font-size:20px;font-weight:800}.import-drop b{display:block;color:#40383c;font-size:11px}.import-drop span{display:block;margin-top:3px;color:#776d72;font-size:9px}.import-drop small{display:block;margin-top:5px;color:#a09298;font-size:8px}.import-drop input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.template-row{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:8px}.template-row a{color:#a85d72;font-weight:800;text-decoration:none}.template-row span{color:#94878d}.helper{margin:7px 0 0;color:#96898f;font-size:8px;line-height:1.6}.calculation-box{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding:16px;border:1px solid #e6d6db;border-radius:13px;background:linear-gradient(135deg,#f8eff2,#fff)}.calculation-box h4{margin:4px 0 3px;color:#30292c;font-family:'Plus Jakarta Sans';font-size:13px}.calculation-box p{max-width:650px;margin:0;color:#81767c;font-size:9px;line-height:1.6}.calculation-box .btn.large{padding:12px 18px;border-radius:9px;background:#b96178;color:#fff;border:0;box-shadow:0 10px 22px rgba(177,91,115,.22)}
@media(max-width:1000px){.page-hero.attendance-hero{align-items:flex-start;flex-direction:column}.attendance-kpis{grid-template-columns:repeat(2,1fr)}.shift-cards{grid-template-columns:repeat(2,1fr)}.attendance-toolbar{align-items:flex-start;flex-direction:column}.attendance-filter{width:100%}.attendance-filter label{flex:1}}
@media(max-width:650px){.attendance-kpis,.shift-cards{grid-template-columns:1fr}.hero-actions,.attendance-filter{width:100%;flex-direction:column}.hero-actions .btn,.attendance-filter .btn{width:100%;text-align:center}.attendance-filter label{width:100%}.page-hero.attendance-hero{padding:21px}.page-hero.attendance-hero h1{font-size:25px}.calculation-box{align-items:stretch;flex-direction:column}.calculation-box .btn{width:100%}.entry-step{gap:9px}.grid4{grid-template-columns:1fr 1fr}.span2{grid-column:span 2}}
.row-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.row-actions form{margin:0}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.detail-grid>div{border:1px solid #e8ecf2;border-radius:10px;padding:11px;background:#fbfcfe}.detail-grid span{display:block;color:#8793a7;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:4px}.detail-grid b{display:block;color:#263651;font-size:10px;word-break:break-word}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:15px}@media(max-width:700px){.detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.detail-grid{grid-template-columns:1fr}}

/* V33: attendance list pagination and day-wise deletion controls only */
.pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.pagination>div{display:flex;flex-wrap:wrap;gap:6px}
.pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;font-weight:700}
.pagination a.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.day-delete-box{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:14px 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fafbfc}
.day-delete-box>div{min-width:230px;margin-right:auto;display:flex;flex-direction:column;gap:3px}
.day-delete-box>div strong{font-size:14px}.day-delete-box>div small{color:var(--muted);font-size:11px}
.day-delete-box label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:var(--muted)}
.day-delete-box input,.day-delete-box select{height:38px;min-width:145px}
.day-delete-box select[name="delete_employee_id"]{min-width:220px}

/* V35: Attendance processing/download progress overlay */
.progress-overlay{display:none;position:fixed;inset:0;background:rgba(8,14,28,.58);backdrop-filter:blur(4px);z-index:1200;place-items:center;padding:20px}
.progress-overlay.show{display:grid}
.progress-card{width:min(440px,94vw);background:#fff;border-radius:18px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.28);text-align:center}
.progress-card h3{margin:0 0 7px;font-family:'Plus Jakarta Sans';font-size:16px;color:#263651}
.progress-card p{margin:0 0 17px;color:#7d899d;font-size:10px;line-height:1.6}
.progress-track{height:10px;background:#edf1f6;border-radius:999px;overflow:hidden}
.progress-bar{height:100%;width:35%;border-radius:999px;background:#b96178;animation:v35Progress 1.25s ease-in-out infinite}
.progress-meta{display:flex;justify-content:space-between;gap:12px;margin-top:9px;color:#8a96a8;font-size:9px}
.progress-spinner{width:30px;height:30px;border:3px solid #eadfe3;border-top-color:#b96178;border-radius:50%;margin:0 auto 13px;animation:v35Spin .8s linear infinite}
.progress-frame{display:none;width:0;height:0;border:0}
@keyframes v35Progress{0%{margin-left:-35%;width:35%}50%{margin-left:35%;width:45%}100%{margin-left:100%;width:35%}}
@keyframes v35Spin{to{transform:rotate(360deg)}}
.inline-employee-box{margin-top:14px;border:1px solid #e6d6db;border-radius:13px;background:#fff;overflow:hidden}.inline-employee-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:#fbf3f5;border-bottom:1px solid #eee1e5}.inline-employee-head strong{display:block;color:#30292c;font-size:12px}.inline-employee-head small{display:block;margin-top:3px;color:#95878d;font-size:8px}.inline-employee-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.inline-employee-actions input[type=search]{width:230px;height:34px;border:1px solid #e0d3d7;border-radius:8px;padding:0 10px;background:#fff;font-size:9px}.inline-employee-actions .btn{white-space:nowrap}.selected-count{padding:8px 10px;border-radius:8px;background:#f0e3e7;color:#a65b71;font-size:9px;font-weight:800}.inline-employee-list{max-height:210px;overflow:auto;padding:6px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px}.inline-employee-list .employee-pick-row{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;margin:0;cursor:pointer}.inline-employee-list .employee-pick-row:hover{background:#fbf5f6}.inline-employee-list .employee-pick-row input{margin:0}.inline-employee-list .employee-pick-row span{min-width:0}.inline-employee-list .employee-pick-row b{display:block;font-size:9px;color:#30292c}.inline-employee-list .employee-pick-row small{display:block;margin-top:2px;font-size:7.5px;color:#96898f}.picker-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.picker-section-head h4{margin:2px 0 3px}.picker-section-head .helper{margin:0}.shift-range-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:10px;padding:10px 0;border-bottom:1px solid #eee5e8}.shift-range-row:last-child{border-bottom:0}.shift-range-row label{margin:0}.shift-range-row .remove-shift-range{height:34px}.date-step #shiftRangeRows{border:1px solid #eadfe3;border-radius:10px;padding:0 10px;background:#fff}@media(max-width:900px){.inline-employee-head{align-items:flex-start;flex-direction:column}.inline-employee-list{grid-template-columns:1fr}.shift-range-row{grid-template-columns:1fr 1fr}.shift-range-row label:nth-child(3){grid-column:1}.shift-range-row .remove-shift-range{grid-column:2;justify-self:end}}

.entry-shift-box{margin-top:12px;padding:13px;border:1px solid #e7d9de;border-radius:13px;background:#fff7f9}.entry-shift-box .picker-section-head{margin-bottom:6px}.entry-shift-box .picker-section-head strong{display:block;margin-top:3px;color:#30292c;font-size:11px}.entry-shift-box .helper{display:block;margin-top:3px;font-size:9px}.entry-shift-row{border-top:0;padding:4px 0 0}.entry-shift-row input,.entry-shift-row select{background:#fff}@media(max-width:800px){.entry-shift-row{grid-template-columns:1fr 1fr}.entry-shift-row label:last-of-type{grid-column:1/-1}}

/* Compact grouped sidebar: five main menus with nested sub-menus. */
.menu-group{margin:3px 0 6px}
.main-nav-link{width:100%;box-sizing:border-box;border:0;background:transparent;position:relative;display:flex;align-items:center;gap:11px;min-height:42px;padding:9px 12px;border-radius:11px;color:#aab7cc;text-decoration:none;font-size:12px;font-weight:750;cursor:pointer;text-align:left}
.main-nav-link:hover{color:#fff;background:rgba(255,255,255,.06)}
.main-nav-link.active{color:#fff;background:linear-gradient(90deg,rgba(82,105,255,.98),rgba(91,85,237,.84));box-shadow:0 8px 22px rgba(62,87,255,.23)}
.main-nav-link .menu-chevron{margin-left:auto;font-size:14px;transition:transform .18s ease;opacity:.7}
.menu-group.open .menu-chevron{transform:rotate(180deg)}
.sub-nav{display:none;margin:3px 0 4px 12px;padding-left:8px;border-left:1px solid rgba(148,163,184,.16)}
.menu-group.open .sub-nav{display:grid}
.sub-nav a{min-height:38px;padding:7px 10px;font-size:11.5px}

/* Department-wise attendance deletion */
.department-delete-box{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:14px 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff7f9}
.department-delete-box>div{min-width:260px;margin-right:auto;display:flex;flex-direction:column;gap:3px}
.department-delete-box>div strong{font-size:14px}.department-delete-box>div small{color:var(--muted);font-size:11px}
.department-delete-box label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:var(--muted)}
.department-delete-box input,.department-delete-box select{height:38px;min-width:145px}
.department-delete-box select[name="department_delete_department"]{min-width:190px}
