/* ===== styles.css ===== */
:root{--ink:#182329;--muted:#718087;--line:#dfe7e6;--panel:#fff;--canvas:#f3f7f6;--teal:#087f75;--teal2:#0ba596;--mint:#e6f5f1;--nav:#0b292a;--red:#d94b52;--amber:#e89b28;--blue:#3c72d9;--shadow:0 8px 30px rgba(19,53,51,.08)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:'DM Sans',sans-serif}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--nav);color:#dbe9e7;padding:24px 14px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:11px;align-items:center;padding:0 10px 22px}.brand-mark{width:39px;height:39px;border-radius:12px;background:#fff;color:var(--teal);font:800 22px Manrope;display:grid;place-items:center}.brand-mark span{color:#e65a55}.brand strong{display:block;color:white;font:800 17px Manrope;letter-spacing:2px}.brand small{display:block;font-size:10px;letter-spacing:4px;color:#83aaa6}.facility{display:flex;align-items:center;gap:10px;padding:12px;background:#123839;border:1px solid #224b4b;border-radius:12px;margin-bottom:20px}.facility strong,.facility small{display:block}.facility strong{font-size:12px;color:white}.facility small{font-size:10px;color:#8eb0ad;margin-top:2px}.pulse-dot{width:9px;height:9px;border-radius:50%;background:#38d997;box-shadow:0 0 0 5px rgba(56,217,151,.12)}nav{overflow:auto}nav .nav-label{font-size:9px;color:#668e8b;letter-spacing:1.6px;font-weight:700;margin:18px 12px 7px}nav button{width:100%;border:0;background:transparent;color:#aac2bf;border-radius:9px;padding:10px 11px;margin:2px 0;display:flex;align-items:center;gap:11px;font:500 12px 'DM Sans';cursor:pointer;text-align:left}nav button:hover{background:#123c3b;color:white}nav button.active{background:#e9fffa;color:#087f75;font-weight:700}nav .ico{width:19px;text-align:center;font-size:15px}.sidebar-foot{margin-top:auto;border-top:1px solid #234746;padding:16px 8px 0;display:flex;align-items:center;gap:9px}.sidebar-foot strong,.sidebar-foot small{display:block}.sidebar-foot strong{font-size:11px;color:white}.sidebar-foot small{font-size:9px;color:#84a5a2}.sidebar-foot button{margin-left:auto;background:transparent;border:0;color:#8eaaa7}.mini-avatar,.avatar{border-radius:50%;display:grid;place-items:center;font-weight:700}.mini-avatar{width:31px;height:31px;background:#1e5854;color:#9fe0d7;font-size:10px}main{min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;justify-content:space-between;position:sticky;top:0;z-index:10}.crumb{display:flex;gap:9px;align-items:center;font-size:12px}.crumb span,.crumb b{color:#9aa7a5}.top-actions{display:flex;gap:12px;align-items:center}.search{width:320px;height:38px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;padding:0 10px;gap:8px;background:#fafcfc}.search input{border:0;outline:0;width:100%;background:transparent;font:12px 'DM Sans'}.search kbd{font:10px 'DM Sans';color:#81908e;border:1px solid #dbe3e2;border-radius:5px;padding:2px 5px}.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:white;cursor:pointer;position:relative}.bell i{position:absolute;right:-3px;top:-5px;background:#e9575d;color:white;font:700 9px 'DM Sans';padding:3px 5px;border-radius:10px}.profile{display:flex;align-items:center;gap:9px;border:0;background:transparent;text-align:left;cursor:pointer}.avatar{width:36px;height:36px;background:#dff2ef;color:#087f75;font-size:11px}.profile strong,.profile small{display:block}.profile strong{font-size:11px}.profile small{font-size:9px;color:var(--muted)}#app{padding:26px 28px 50px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.eyebrow{font:700 9px 'DM Sans';letter-spacing:1.8px;color:var(--teal);text-transform:uppercase}.page-head h1{font:800 27px Manrope;margin:5px 0 4px;letter-spacing:-.7px}.page-head p{margin:0;color:var(--muted);font-size:12px}.head-actions{display:flex;gap:8px}.btn{border:1px solid var(--line);background:white;color:var(--ink);border-radius:9px;padding:9px 14px;font:600 11px 'DM Sans';cursor:pointer}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.btn.primary{background:var(--teal);color:white;border-color:var(--teal)}.btn.danger{color:var(--red)}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.stat{background:white;border:1px solid var(--line);border-radius:13px;padding:15px;position:relative;overflow:hidden}.stat:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent,var(--teal))}.stat small{font-size:9px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stat strong{display:block;font:800 25px Manrope;margin:8px 0 2px}.stat em{font-style:normal;font-size:9px;color:#80918e}.stat .trend{position:absolute;right:12px;bottom:12px;font-size:9px;color:var(--teal);background:var(--mint);padding:3px 6px;border-radius:9px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr)}.grid.equal{grid-template-columns:1fr 1fr}.panel{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 1px 2px rgba(20,60,55,.02);overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 13px;border-bottom:1px solid #edf1f0}.panel-head h2{font:700 14px Manrope;margin:0}.panel-head p{font-size:10px;color:var(--muted);margin:3px 0 0}.panel-body{padding:16px 18px}.alert{display:grid;grid-template-columns:9px 1fr auto;gap:11px;align-items:start;padding:12px 0;border-bottom:1px solid #edf1f0}.alert:last-child{border:0}.alert-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;background:var(--c)}.alert strong{font-size:11px;display:block}.alert p{font-size:10px;color:var(--muted);margin:3px 0}.tag{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:4px 7px;border-radius:10px;background:#f1f5f4;color:#60716f}.tag.red{background:#fdebed;color:#c43842}.tag.amber{background:#fff2dd;color:#a76605}.tag.green{background:#e3f6ed;color:#178054}.chart{height:175px;display:flex;align-items:end;gap:12px;padding:18px 10px 5px;border-bottom:1px solid #eef2f1;background:repeating-linear-gradient(to top,#fff 0,#fff 42px,#eef3f2 43px)}.bar-wrap{flex:1;text-align:center}.bar{height:var(--h);background:linear-gradient(#13a99c,#087f75);border-radius:5px 5px 1px 1px;min-height:10px}.bar-wrap small{font-size:9px;color:var(--muted);display:block;margin-top:6px}.legend{display:flex;justify-content:space-between;padding-top:14px;font-size:10px}.legend b{font:700 15px Manrope}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;cursor:pointer;text-align:left}.quick:hover{border-color:#82c9c2;background:#f8fffd}.quick span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--mint);color:var(--teal);font-size:16px;margin-bottom:10px}.quick strong{font-size:10px;display:block}.quick small{font-size:8px;color:var(--muted)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.7px;color:#7a8b89;background:#f8faf9;padding:10px 12px;border-bottom:1px solid var(--line)}td{padding:12px;font-size:10px;border-bottom:1px solid #edf1f0}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdfd}.person{display:flex;align-items:center;gap:9px}.person-pic{width:30px;height:30px;border-radius:9px;background:var(--bg,#dff3f0);color:var(--fg,#087f75);display:grid;place-items:center;font-weight:700;font-size:9px}.person strong,.person small{display:block}.person strong{font-size:10px}.person small{font-size:8px;color:var(--muted)}.status{font-size:8px;font-weight:700;padding:4px 7px;border-radius:9px;display:inline-block}.status.present,.status.active,.status.approved,.status.valid{background:#e2f6ec;color:#148054}.status.late,.status.pending,.status.expiring{background:#fff0d9;color:#a76708}.status.absent,.status.expired,.status.rejected{background:#fde8e9;color:#c43640}.filter-row{display:flex;gap:8px;padding:13px 18px;border-bottom:1px solid var(--line)}.filter-row input,.filter-row select,.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:10px 'DM Sans';outline:0;background:white}.filter-row input{flex:1}.progress{height:6px;background:#edf2f1;border-radius:5px;overflow:hidden}.progress i{display:block;height:100%;width:var(--w);background:var(--c,var(--teal));border-radius:5px}.roster{display:grid;grid-template-columns:130px repeat(7,1fr);min-width:850px}.roster>div{padding:9px;border-right:1px solid #edf1f0;border-bottom:1px solid #edf1f0;font-size:9px}.roster .r-head{font-weight:700;background:#f8faf9;text-align:center}.shift{border-radius:6px!important;margin:3px;padding:6px!important;text-align:center;font-weight:600;border:0!important}.shift.m{background:#e4f4ff;color:#2772a8}.shift.n{background:#ece9ff;color:#6252b3}.shift.o{background:#f0f3f2;color:#8b9694}.shift.c{background:#fff0d8;color:#a96b0d}.compliance-card{padding:14px;border:1px solid var(--line);border-radius:10px}.compliance-card h3{font:700 12px Manrope;margin:0 0 12px}.ring{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--teal) var(--p),#e6eeee 0);position:relative;margin:auto}.ring:after{content:'';position:absolute;inset:9px;border-radius:50%;background:white}.ring b{z-index:1;font:800 17px Manrope}.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.module-card{padding:17px;border:1px solid var(--line);border-radius:12px;background:white;cursor:pointer}.module-card:hover{box-shadow:var(--shadow);border-color:#9fd3ce}.module-card .module-ico{width:36px;height:36px;background:var(--mint);color:var(--teal);display:grid;place-items:center;border-radius:10px;margin-bottom:13px}.module-card h3{font:700 12px Manrope;margin:0 0 5px}.module-card p{font-size:9px;line-height:1.5;color:var(--muted);margin:0}.employee-hero{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}.employee-hero .big-avatar{width:64px;height:64px;border-radius:16px;background:#dff3ef;display:grid;place-items:center;font:800 18px Manrope;color:var(--teal)}.employee-hero h2{font:800 18px Manrope;margin:0 0 4px}.employee-hero p{margin:0;color:var(--muted);font-size:10px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.detail-item small,.detail-item strong{display:block}.detail-item small{font-size:8px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:4px}.detail-item strong{font-size:10px}.timeline{border-left:2px solid #dce9e7;margin-left:5px;padding-left:18px}.timeline-item{position:relative;padding:0 0 18px}.timeline-item:before{content:'';position:absolute;left:-24px;top:2px;width:9px;height:9px;border:2px solid white;background:var(--teal);border-radius:50%;box-shadow:0 0 0 1px #9dc9c4}.timeline-item strong{font-size:10px}.timeline-item p{font-size:9px;color:var(--muted);margin:3px 0}.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(4,25,25,.45);z-index:50;place-items:center;padding:20px}.modal-backdrop.open{display:grid}.modal-card{background:white;border-radius:15px;width:min(580px,100%);max-height:90vh;overflow:auto;box-shadow:0 24px 80px rgba(0,0,0,.2)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.modal-head h2{font:700 16px Manrope;margin:0}.modal-body{padding:20px}.modal-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field label{font-size:9px;font-weight:700;display:block;margin-bottom:5px}.form-field input,.form-field select,.form-field textarea{width:100%}.form-field.full{grid-column:1/-1}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:80}.toast{background:#123b39;color:white;border-radius:10px;padding:12px 16px;margin-top:8px;box-shadow:var(--shadow);font-size:10px;animation:slide .25s}.mobile-menu{display:none}@keyframes slide{from{transform:translateX(20px);opacity:0}}@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}.grid.two,.grid.equal{grid-template-columns:1fr}.module-grid{grid-template-columns:repeat(2,1fr)}.search{width:220px}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:-260px;transition:.2s;width:248px}.sidebar.open{left:0}.mobile-menu{display:block}.topbar{padding:0 14px}.crumb,.profile div:not(.avatar),.profile>span,.search kbd{display:none}.search{width:min(46vw,220px)}#app{padding:20px 14px}.stats{grid-template-columns:repeat(2,1fr)}.quick-grid,.module-grid{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start;gap:14px}.detail-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}}

/* ===== fixes.css ===== */
.bar-wrap{height:140px;display:flex;flex-direction:column;justify-content:flex-end}
.role-switch{height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 9px;color:var(--ink);font:600 10px 'DM Sans';outline:0}.kanban{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:12px;overflow:auto;padding-bottom:4px}.kanban-col{background:#f7faf9;border:1px solid var(--line);border-radius:11px;padding:10px;min-height:250px}.kanban-title{display:flex;justify-content:space-between;align-items:center;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}.kanban-title b{background:#e5edeb;border-radius:9px;padding:2px 6px}.candidate{background:#fff;border:1px solid var(--line);border-radius:9px;padding:11px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.02)}.candidate strong{font-size:10px;display:block}.candidate small{font-size:8px;color:var(--muted);display:block;margin-top:3px}.check-list{display:grid;gap:8px}.check-item{display:grid;grid-template-columns:22px 1fr auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:10px}.check-item i{width:20px;height:20px;border-radius:6px;background:#e3f6ed;color:#178054;display:grid;place-items:center;font-style:normal;font-size:10px}.check-item.pending i{background:#fff0d9;color:#a76708}.check-item strong{font-size:10px;display:block}.check-item small{font-size:8px;color:var(--muted)}.metric-row{display:grid;grid-template-columns:180px 1fr 70px;gap:12px;align-items:center;margin:13px 0}.metric-row span{font-size:10px}.metric-row b{text-align:right;font-size:10px}.access-grid{display:grid;grid-template-columns:200px repeat(6,1fr);min-width:800px}.access-grid>div{padding:10px;border-right:1px solid #edf1f0;border-bottom:1px solid #edf1f0;font-size:9px;text-align:center}.access-grid .access-name{text-align:left;font-weight:600}.access-grid .access-head{background:#f8faf9;font-weight:700}.yes{color:#148054}.no{color:#c4cdcb}@media(max-width:900px){.role-switch{display:none}}

/* ===== fixes2.css ===== */
.case-card{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px;border-bottom:1px solid #edf1f0}.case-card:last-child{border-bottom:0}.case-icon{width:38px;height:38px;border-radius:10px;background:var(--mint);color:var(--teal);display:grid;place-items:center;font-size:16px}.case-card strong,.case-card small{display:block}.case-card strong{font-size:10px}.case-card small{font-size:8px;color:var(--muted);margin-top:3px}.severity{font-size:8px;font-weight:700;padding:5px 8px;border-radius:9px}.severity.high{background:#fde8e9;color:#c43640}.severity.medium{background:#fff0d9;color:#a76708}.severity.low{background:#e4f0ff;color:#376abf}.workflow{display:flex;align-items:center;overflow:auto;padding:15px 0}.workflow-step{min-width:110px;text-align:center;position:relative}.workflow-step:not(:last-child):after{content:'→';position:absolute;right:-4px;top:10px;color:#aab8b6}.workflow-step i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e3f6ed;color:#148054;font-style:normal;font-weight:700;font-size:10px;margin:0 auto 7px}.workflow-step.pending i{background:#f0f3f2;color:#8a9694}.workflow-step.active i{background:#fff0d9;color:#a76708}.workflow-step span{font-size:8px;font-weight:600}.confidential{border:1px solid #ecd8e0;background:#fff9fb;border-radius:11px;padding:13px;display:flex;gap:10px}.confidential strong{font-size:10px}.confidential p{font-size:9px;color:var(--muted);margin:3px 0 0}.risk-banner{background:#fff3e3;border:1px solid #f3d8ae;border-radius:11px;padding:13px 15px;display:flex;gap:11px;align-items:flex-start}.risk-banner strong{font-size:10px}.risk-banner p{font-size:9px;color:#82663c;margin:3px 0}.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.doc-card{border:1px solid var(--line);border-radius:9px;padding:12px}.doc-card strong{font-size:10px;display:block}.doc-card small{font-size:8px;color:var(--muted);display:block;margin-top:4px}@media(max-width:760px){.doc-grid{grid-template-columns:1fr}.workflow-step{min-width:95px}}

/* ===== runtime.css ===== */
.login-screen{position:fixed;inset:0;z-index:200;background:linear-gradient(135deg,#061f20,#0a3b38 55%,#0b6b61);display:grid;place-items:center;padding:20px}.login-card{width:min(920px,100%);background:#f7fbfa;border-radius:22px;display:grid;grid-template-columns:.82fr 1.18fr;overflow:hidden;box-shadow:0 30px 100px rgba(0,0,0,.35)}.login-art{padding:42px;background:linear-gradient(160deg,#0a7470,#064540);color:white;position:relative;overflow:hidden}.login-art:after{content:'+';position:absolute;right:-35px;bottom:-95px;font:800 300px Manrope;color:rgba(255,255,255,.05)}.login-brand{display:flex;align-items:center;gap:12px}.login-brand .brand-mark{width:44px;height:44px}.login-art h1{font:800 34px Manrope;line-height:1.1;margin:70px 0 14px}.login-art p{font-size:12px;line-height:1.7;color:#b9d9d5;max-width:330px}.login-cycle{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#71c6ba;margin-top:80px}.login-form{padding:42px}.login-form h2{font:800 22px Manrope;margin:0 0 6px}.login-form>p{font-size:10px;color:var(--muted);margin:0 0 25px}.login-roles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.login-role{border:1px solid var(--line);background:white;border-radius:10px;padding:10px;text-align:left;cursor:pointer;font:600 10px 'DM Sans'}.login-role small{display:block;font-size:8px;color:var(--muted);margin-top:2px}.login-role.active{border-color:var(--teal);background:var(--mint);color:var(--teal)}.login-input{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px;margin-bottom:10px;font:11px 'DM Sans';outline:0}.login-help{font-size:9px;color:var(--muted);margin-bottom:14px}.login-error{font-size:9px;color:var(--red);min-height:16px}.login-submit{width:100%;padding:12px}.audit-fab{position:fixed;right:20px;bottom:20px;width:42px;height:42px;border:0;border-radius:12px;background:#123b39;color:white;box-shadow:var(--shadow);cursor:pointer;z-index:15}.audit-list{display:grid;gap:0}.audit-event{display:grid;grid-template-columns:32px 1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid #edf1f0}.audit-event:last-child{border:0}.audit-event i{width:28px;height:28px;border-radius:8px;background:var(--mint);color:var(--teal);display:grid;place-items:center;font-style:normal}.audit-event strong,.audit-event small{display:block}.audit-event strong{font-size:10px}.audit-event small{font-size:8px;color:var(--muted);margin-top:3px}.audit-event time{font-size:8px;color:var(--muted)}@media(max-width:700px){.login-card{grid-template-columns:1fr}.login-art{display:none}.login-form{padding:28px}.login-roles{grid-template-columns:1fr}}
.ss-muted{font-size:9px;color:var(--muted)}.ss-error{font-size:10px;color:var(--red)}.ss-hero small{display:block;margin-top:6px;color:var(--muted);font-size:9px}.ss-request-list{display:grid;padding-top:0}.ss-request-item{border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer}.ss-request-item:last-child{border-bottom:0}.ss-request-item strong,.ss-request-item small{display:block}.ss-request-item strong{font:700 10px Manrope}.ss-request-item small{font-size:8px;color:var(--muted);margin-top:4px}.ss-actions .module-card{appearance:none;width:100%;text-align:left;color:inherit;cursor:pointer}.ss-actions .module-card:hover{transform:translateY(-2px);border-color:#9bcfc9}.ss-timeline{margin-top:18px;padding-left:8px}.ss-decision{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.ss-simple-list{display:grid;gap:8px}.ss-simple-list>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfdfc;font-size:10px}.ss-block{display:block;color:var(--muted);margin-top:3px}.btn.danger{color:#a52a35;border-color:#efc1c5;background:#fff7f8}@media(max-width:700px){.ss-request-item{align-items:flex-start}.ss-actions{grid-template-columns:1fr 1fr}}
.financial-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.financial-self-card{appearance:none;text-align:left;color:inherit;cursor:pointer}.financial-self-card:hover{border-color:#9bcfc9}.financial-self-card small{display:block;margin-top:5px}

/* ===== sync.css ===== */
.service-state{display:flex;align-items:center;gap:6px;font-size:8px;color:var(--muted);padding:6px 8px;border-radius:8px;background:#f4f7f6}.service-state i{width:7px;height:7px;border-radius:50%;background:#aebbb9}.service-state.online i{background:#18a66e;box-shadow:0 0 0 3px rgba(24,166,110,.12)}.service-state.offline i{background:#e89b28}.sync-note{position:fixed;left:265px;bottom:14px;font-size:8px;color:#70817e;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 9px;z-index:12}@media(max-width:760px){.sync-note{left:14px}}

/* ===== release.css ===== */
.skip-link{position:fixed;left:12px;top:-60px;z-index:200;background:#083b38;color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none;font:600 12px 'DM Sans'}.skip-link:focus{top:12px}
:where(button,a,input,select,textarea):focus-visible{outline:3px solid rgba(8,127,117,.35);outline-offset:2px}
button:disabled,select:disabled{cursor:not-allowed;opacity:.62}.role-switch:disabled{background:#f3f7f6;color:#476763}
.live-overview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.7fr);gap:16px}.live-coverage{display:grid;grid-template-columns:minmax(130px,1.2fr) 80px 2fr 90px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #e5eceb}.live-coverage:last-child{border-bottom:0}.live-track{height:9px;border-radius:9px;background:#e7f1ef;overflow:hidden}.live-track i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#087f75,#19aa97);width:var(--coverage)}.live-alert{display:grid;grid-template-columns:10px 1fr auto;gap:11px;padding:12px 0;border-bottom:1px solid #e8efed;align-items:start}.live-alert:last-child{border-bottom:0}.live-alert i{width:9px;height:9px;border-radius:50%;background:var(--alert-color);margin-top:4px}.live-alert strong,.live-alert small{display:block}.live-alert small{font-size:9px;color:#718087;margin-top:3px}.release-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.release-quick button{border:1px solid var(--line);border-radius:11px;padding:13px;background:#fff;text-align:left;cursor:pointer}.release-quick button:hover{border-color:#88c9c2;background:#f8fffd}.release-quick strong,.release-quick small{display:block}.release-quick small{color:#718087;font-size:8px;margin-top:4px}.search-results{display:grid;gap:8px}.search-result{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;text-align:left;cursor:pointer}.search-result:hover{border-color:#80c6bf;background:#f8fffd}.search-result strong,.search-result small{display:block}.search-result small{font-size:9px;color:#718087;margin-top:3px}.search-result em{font-style:normal;font-size:8px;color:#087f75;text-transform:uppercase;letter-spacing:.5px}.release-panel{margin-top:16px}.release-status{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.release-status div{border:1px solid #e0eae8;border-radius:10px;padding:12px}.release-status strong,.release-status small{display:block}.release-status strong{font:700 15px Manrope;color:#083b38}.release-status small{font-size:8px;color:#718087;margin-top:4px}.backup-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #e7eeec}.backup-row:last-child{border-bottom:0}.backup-row strong,.backup-row small{display:block}.backup-row small{font-size:9px;color:#718087;margin-top:3px}.release-ready{background:#e8f5f2;color:#087f75}.release-attention{background:#fff4de;color:#8a5b00}
@media(max-width:1000px){.live-overview-grid{grid-template-columns:1fr}.release-quick,.release-status{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.page-head{flex-direction:column}.head-actions{width:100%;overflow:auto;padding-bottom:3px}.head-actions .btn{white-space:nowrap}.top-actions{gap:6px}.top-actions .icon-btn{flex:0 0 38px}.role-switch{max-width:130px}.profile{padding:0}.panel{overflow:auto}.panel table{min-width:660px}.live-coverage{grid-template-columns:1fr 70px}.live-coverage .live-track{grid-column:1/-1}.live-coverage small{text-align:right}.release-quick{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.release-quick,.release-status{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.search{width:42vw}.topbar{gap:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ===== hospital-ops.css ===== */
.export-menu{position:relative}.export-menu summary{list-style:none;cursor:pointer}.export-menu summary::-webkit-details-marker{display:none}.export-menu[open] .export-options{display:grid}.export-options{display:none;position:absolute;right:0;top:calc(100% + 7px);z-index:25;min-width:180px;padding:7px;background:#fff;border:1px solid #dbe5e2;border-radius:10px;box-shadow:0 16px 44px rgba(24,56,61,.16)}.export-options button{border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:7px;color:#29464b;font:600 10px inherit;cursor:pointer}.export-options button:hover{background:#edf5f2}.ops-stack{display:grid;gap:16px}.ops-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.ops-summary-card{padding:14px;border:1px solid #e0e9e7;border-radius:11px;background:#fbfdfc}.ops-summary-card small{display:block;color:#718087;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.ops-summary-card strong{display:block;margin-top:5px;font-size:14px;color:#29464b}.ops-summary-card em{display:block;margin-top:3px;font-size:9px;color:#718087;font-style:normal}.ops-table-wrap{overflow-x:auto}.device-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#edf5f2;color:#087f75;font-size:9px;font-weight:800}.device-badge i{width:6px;height:6px;border-radius:50%;background:#12a36c}.device-badge.attention{background:#fff3df;color:#a66d14}.device-badge.attention i{background:#e89b28}.off-rota-note{font-size:9px;color:#b76e12}.critical-coverage{color:#c53b45;font-weight:800}.gate-code{display:inline-flex;padding:6px 9px;background:#edf5f2;border:1px dashed #087f75;border-radius:7px;color:#075e59;font-weight:900;letter-spacing:.16em}.integration-note{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px;background:#eef6ff;border:1px solid #d6e7fb;border-radius:11px;color:#2f5f98}.integration-note span{font-size:18px}.integration-note strong{display:block;font-size:11px}.integration-note p{margin:4px 0 0;font-size:9px;line-height:1.5}.import-preview{max-height:260px;overflow:auto;margin-top:14px}.import-errors{display:grid;gap:6px}.import-error{padding:8px 10px;border-radius:7px;background:#fff0f0;color:#a7333b;font-size:9px}.key-reveal{padding:13px;background:#fff7e9;border:1px solid #f0d6a6;border-radius:10px;margin-top:14px}.key-reveal code{display:block;margin-top:8px;word-break:break-all;color:#7e5717;font-size:10px}.gate-pass-card{border:1px solid #e0e9e7;border-radius:12px;padding:14px;background:#fff}.gate-pass-card header{display:flex;justify-content:space-between;gap:10px}.gate-pass-card p{font-size:9px;color:#718087;margin:7px 0}.gate-pass-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}@media(max-width:720px){.head-actions{flex-wrap:wrap}.export-menu{order:20}.export-options{right:auto;left:0}.ops-summary-grid{grid-template-columns:1fr 1fr}}

/* ===== employee-form.css ===== */
#modal.employee-form-open{padding:14px}
#modal.employee-form-open .modal-card{width:min(1120px,100%);height:min(92vh,860px);max-height:none;overflow:hidden;display:flex;flex-direction:column}
.employee-form-head{padding:18px 22px;align-items:flex-start}.employee-form-head>div,.employee-record-head>div{min-width:0}.employee-form-kicker{display:block;color:var(--teal);font-size:8px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:5px}.employee-form-head h2,.employee-record-head h2{margin:0!important}.employee-form-head p,.employee-record-head p{font-size:10px;color:var(--muted);margin:4px 0 0}
#completeEmployeeForm{display:flex;flex-direction:column;min-height:0;flex:1}.employee-form-layout{display:grid;grid-template-columns:205px minmax(0,1fr);min-height:0;flex:1}.employee-stepper{padding:15px 12px;background:#f5faf8;border-right:1px solid var(--line);overflow:auto}.employee-stepper button{width:100%;display:grid;grid-template-columns:25px 1fr 16px;align-items:center;gap:8px;border:0;background:transparent;border-radius:9px;padding:8px;color:#697a78;text-align:left;font:600 9px 'DM Sans';cursor:pointer}.employee-stepper button i{width:24px;height:24px;border:1px solid #cfdcda;border-radius:8px;background:white;display:grid;place-items:center;font-style:normal;font-size:8px}.employee-stepper button b{display:none;color:var(--teal)}.employee-stepper button.active{background:#e4f5f1;color:#075f58}.employee-stepper button.active i{background:var(--teal);border-color:var(--teal);color:white}.employee-stepper button.complete i{display:none}.employee-stepper button.complete b{display:block}.employee-stepper button.complete{color:#176f67}.employee-stepper button:disabled{cursor:default;opacity:.65}.employee-privacy-note{border-top:1px solid #dce9e6;margin:15px 7px 0;padding-top:14px}.employee-privacy-note strong,.employee-privacy-note small{display:block}.employee-privacy-note strong{font-size:9px;color:#285956}.employee-privacy-note small{font-size:8px;line-height:1.5;color:#76918e;margin-top:4px}
.employee-form-main{overflow:auto;padding:22px 25px;background:white}.employee-form-panel{display:none}.employee-form-panel.active{display:block}.employee-section-title{display:flex;gap:12px;align-items:center;margin-bottom:20px}.employee-section-title>span{width:34px;height:34px;border-radius:10px;background:var(--mint);color:var(--teal);display:grid;place-items:center;font:800 10px Manrope}.employee-section-title h3{font:800 17px Manrope;margin:0}.employee-section-title p{font-size:9px;color:var(--muted);margin:3px 0 0}
.employee-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.employee-fields label{min-width:0}.employee-fields label>span,.employee-upload-grid label>span{display:block;font-size:8px;font-weight:800;color:#40514f;margin:0 0 5px;text-transform:uppercase;letter-spacing:.45px}.employee-fields input,.employee-fields select,.employee-fields textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:10px 'DM Sans';color:var(--ink);background:#fff;outline:none}.employee-fields textarea{resize:vertical}.employee-fields input:focus,.employee-fields select:focus,.employee-fields textarea:focus{border-color:#49aa9f;box-shadow:0 0 0 3px rgba(8,127,117,.08)}.employee-fields input:invalid:not(:placeholder-shown){border-color:#dca1a5}.employee-fields .wide{grid-column:span 2}.employee-fields .span-2{grid-column:span 2}.employee-subsection{margin-top:24px;padding-top:20px;border-top:1px solid #e8efee}.employee-subsection.first{margin-top:0;padding-top:0;border-top:0}.employee-subsection>div:first-child h4{font:700 12px Manrope;margin:0}.employee-subsection>div:first-child p{font-size:9px;color:var(--muted);margin:3px 0 14px}.employee-subsection>div:first-child:not(:last-child){margin-bottom:12px}.employee-optional{border:1px dashed #cddcda;border-radius:10px;margin-top:16px;padding:0 14px}.employee-optional summary{font-size:9px;font-weight:700;color:var(--teal);cursor:pointer;padding:12px 0}.employee-optional[open]{padding-bottom:14px}.employee-check{display:flex!important;align-items:flex-start;gap:9px;padding:9px 0}.employee-check input{width:auto!important;margin-top:2px}.employee-check>span{display:block!important;text-transform:none!important;letter-spacing:0!important;margin:0!important}.employee-check strong,.employee-check small{display:block}.employee-check strong{font-size:9px}.employee-check small{font-size:8px;color:var(--muted);line-height:1.45;margin-top:3px}.employee-check-wide{border:1px solid var(--line);border-radius:9px;padding:12px!important;margin-bottom:12px}.employee-account-fields{opacity:.45;pointer-events:none}.employee-account-fields.enabled{opacity:1;pointer-events:auto}
.employee-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.employee-upload-grid label{border:1px solid var(--line);border-radius:11px;padding:14px;background:#fbfdfc}.employee-upload-grid label small{font-size:8px;color:var(--muted);display:block;margin:3px 0 10px}.employee-upload-grid input{font-size:9px;width:100%}.employee-info-box{background:#eff8f6;border:1px solid #d1e9e5;border-radius:10px;padding:13px;margin-top:16px}.employee-info-box strong{font-size:9px;color:#1c625c}.employee-info-box p{font-size:8px;line-height:1.5;color:#617b78;margin:4px 0 0}
.employee-form-error{color:#bf3942;font-size:9px;min-height:16px;margin-top:14px}.employee-form-foot{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;padding:13px 20px;border-top:1px solid var(--line);background:#fbfdfc;position:sticky;bottom:0;z-index:5;box-shadow:0 -8px 18px rgba(17,65,60,.06)}.employee-form-foot .btn{white-space:nowrap}.employee-form-foot .btn.primary{min-width:118px}
.employee-review-card{max-width:760px}.employee-review-hero{display:flex;gap:13px;align-items:center;padding:15px;border:1px solid #cfe6e2;background:#f2fbf8;border-radius:12px;margin-bottom:15px}.employee-review-hero>span{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--teal);color:white;font:800 12px Manrope}.employee-review-hero strong,.employee-review-hero small{display:block}.employee-review-hero strong{font:800 14px Manrope}.employee-review-hero small{font-size:8px;color:var(--muted);margin-top:3px}.employee-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.employee-review-item{display:grid;grid-template-columns:24px 1fr;gap:9px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:10px}.employee-review-item i{width:23px;height:23px;border-radius:7px;display:grid;place-items:center;background:#e1f5ec;color:#148054;font-style:normal;font-size:9px}.employee-review-item.attention i{background:#fff0d9;color:#a76708}.employee-review-item strong,.employee-review-item small{display:block}.employee-review-item strong{font-size:9px}.employee-review-item small{font-size:8px;color:var(--muted);margin-top:2px}.employee-confirm{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line);margin-top:18px;padding-top:15px}.employee-confirm span{font-size:9px;line-height:1.5;color:#516461}.employee-confirm input{margin-top:2px}
#modal.employee-record-open{padding:14px}#modal.employee-record-open .modal-card{width:min(980px,100%);max-height:94vh}.employee-record-head{align-items:flex-start;padding:18px 22px}.employee-record-body{background:#f7faf9;padding:18px}.employee-record-banner{display:grid;grid-template-columns:50px 1fr auto auto;gap:13px;align-items:center;background:white;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}.employee-record-banner .big-avatar{width:46px;height:46px;border-radius:11px;background:var(--mint);color:var(--teal);display:grid;place-items:center;font:800 12px Manrope}.employee-record-banner>div:nth-child(2) strong,.employee-record-banner>div:nth-child(2) span{display:block}.employee-record-banner>div:nth-child(2) strong{font:800 13px Manrope}.employee-record-banner>div:nth-child(2) span{font-size:8px;color:var(--muted);margin-top:3px}.employee-record-banner>div:last-child{border-left:1px solid var(--line);padding-left:15px}.employee-record-banner>div:last-child small,.employee-record-banner>div:last-child strong{display:block}.employee-record-banner>div:last-child small{font-size:8px;color:var(--muted)}.employee-record-banner>div:last-child strong{font-size:9px;margin-top:3px}.employee-record-section{background:white;border:1px solid var(--line);border-radius:12px;margin-top:11px;overflow:hidden}.employee-record-section h3{font:700 11px Manrope;margin:0;padding:12px 14px;border-bottom:1px solid #edf1f0}.employee-record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.employee-record-grid>div{padding:11px 14px;border-right:1px solid #edf1f0;border-bottom:1px solid #edf1f0;min-width:0}.employee-record-grid small,.employee-record-grid strong{display:block}.employee-record-grid small{font-size:7px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:4px}.employee-record-grid strong{font-size:9px;overflow-wrap:anywhere}.employee-record-list{display:grid}.employee-record-list article{display:grid;grid-template-columns:1.2fr 1.5fr auto;gap:12px;padding:11px 14px;border-bottom:1px solid #edf1f0;align-items:center}.employee-record-list article:last-child{border-bottom:0}.employee-record-list strong{font-size:9px}.employee-record-list small{font-size:8px;color:var(--muted)}.employee-record-list span{font-size:8px;color:#3e6662;text-align:right}.employee-record-loading{padding:50px;text-align:center;font-size:10px;color:var(--muted)}
@media(max-width:800px){#modal.employee-form-open{padding:0}#modal.employee-form-open .modal-card{height:100vh;max-height:none;border-radius:0}.employee-form-layout{grid-template-columns:1fr}.employee-stepper{display:flex;border-right:0;border-bottom:1px solid var(--line);overflow:auto;padding:8px}.employee-stepper button{min-width:42px;width:auto;display:block;padding:5px}.employee-stepper button span,.employee-stepper button b,.employee-privacy-note{display:none}.employee-stepper button.complete i{display:grid;background:#e1f5ec}.employee-form-main{padding:18px 15px}.employee-fields{grid-template-columns:1fr 1fr}.employee-fields .wide,.employee-fields .span-2{grid-column:span 2}.employee-upload-grid,.employee-review-grid{grid-template-columns:1fr}.employee-record-grid{grid-template-columns:1fr 1fr}.employee-record-list article{grid-template-columns:1fr}.employee-record-list span{text-align:left}.employee-record-banner{grid-template-columns:45px 1fr}.employee-record-banner>div:nth-child(3),.employee-record-banner>div:last-child{display:none}}
@media(max-width:500px){.employee-fields{grid-template-columns:1fr}.employee-fields .wide,.employee-fields .span-2{grid-column:auto}.employee-form-foot{grid-template-columns:auto 1fr auto}.employee-form-foot #employeeBackBtn{grid-column:3}.employee-form-foot #employeeNextBtn,.employee-form-foot #employeeSubmitBtn{grid-column:1/-1}.employee-record-grid{grid-template-columns:1fr}}
#modal.complete-import-open .modal-card{width:min(920px,100%);max-height:94vh}.complete-import-head{align-items:flex-start}.complete-import-head h2{margin:0!important}.complete-import-head p{font-size:10px;color:var(--muted);margin:4px 0 0}.complete-import-body{background:#f8fbfa}.import-preserve-banner{display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:center;padding:13px;border:1px solid #bfe0d8;background:#edf9f5;border-radius:11px}.import-preserve-banner i{width:32px;height:32px;border-radius:9px;background:var(--teal);color:white;display:grid;place-items:center;font-style:normal}.import-preserve-banner strong,.import-preserve-banner p{display:block}.import-preserve-banner strong{font-size:10px;color:#165e57}.import-preserve-banner p{font-size:8px;color:#567672;margin:3px 0 0;line-height:1.45}.complete-import-actions{display:flex;gap:8px;margin:14px 0}.complete-import-drop{display:block;border:1.5px dashed #a8c9c4;border-radius:12px;background:white;padding:18px}.complete-import-drop span,.complete-import-drop small{display:block}.complete-import-drop span{font-size:10px;font-weight:800}.complete-import-drop small{font-size:8px;color:var(--muted);margin:4px 0 12px}.complete-import-drop input{font-size:9px}.complete-import-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}.complete-import-rules span{font-size:8px;color:#617471;display:flex;align-items:center;gap:7px}.complete-import-rules b{width:20px;height:20px;border-radius:6px;background:#e2f2ef;color:var(--teal);display:grid;place-items:center}.complete-import-summary{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:11px;background:white;overflow:hidden;margin-top:15px}.complete-import-summary>div{padding:11px;border-right:1px solid var(--line)}.complete-import-summary>div:last-child{border:0}.complete-import-summary small,.complete-import-summary strong{display:block}.complete-import-summary small{font-size:7px;text-transform:uppercase;color:var(--muted)}.complete-import-summary strong{font:800 14px Manrope;margin-top:4px}.complete-import-summary .ready strong{color:#148054}.complete-import-summary .warning strong{color:#b76b00}.import-preservation-line{display:flex;align-items:center;gap:7px;color:#267068;font-size:8px;padding:9px 2px}.complete-import-errors{border:1px solid #ead9bf;background:#fffbf3;border-radius:10px;overflow:hidden;max-height:220px;overflow-y:auto}.complete-import-errors>div{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;border-bottom:1px solid #eee3d1}.complete-import-errors>div strong{font-size:9px}.complete-import-errors article{display:grid;grid-template-columns:55px 150px 1fr;gap:8px;padding:9px 11px;border-bottom:1px solid #f0e7d8}.complete-import-errors article:last-child{border:0}.complete-import-errors article b,.complete-import-errors article span,.complete-import-errors article p{font-size:8px;margin:0}.complete-import-errors article p{color:#8c5d19}.complete-import-confirm{display:flex;gap:9px;align-items:flex-start;padding:12px;background:white;border:1px solid var(--line);border-radius:10px;margin-top:12px}.complete-import-confirm span{font-size:9px;line-height:1.45}.complete-import-foot{display:grid;grid-template-columns:auto 1fr auto auto;width:100%}@media(max-width:700px){.complete-import-summary{grid-template-columns:1fr 1fr}.complete-import-summary>div{border-bottom:1px solid var(--line)}.complete-import-rules{grid-template-columns:1fr}.complete-import-errors article{grid-template-columns:1fr}.complete-import-actions{flex-direction:column}.complete-import-foot{grid-template-columns:auto 1fr auto}.complete-import-foot #commitCompleteEmployeeImport{grid-column:1/-1}}
.employee-fields input[readonly]{background:#f3f7f6;color:#4d6966;border-style:dashed}.employee-field-disabled{opacity:.52}.employee-directory-note{font-size:8px;color:#5f7673;margin-top:11px;padding:9px 11px;background:#f2f8f7;border-radius:8px}.employee-generated-note{display:grid;gap:4px;background:#eff8f6;border:1px solid #cfe6e2;border-radius:10px;padding:12px}.employee-generated-note strong{font-size:9px;color:#17645d}.employee-generated-note span{font-size:8px;line-height:1.5;color:#607875}.employee-registration-success{text-align:center;padding:30px}.employee-success-mark{width:52px;height:52px;border-radius:16px;background:#daf2e9;color:#137657;display:grid;place-items:center;margin:0 auto 12px;font:800 20px Manrope}.employee-registration-success h3{font:800 17px Manrope;margin:0 0 16px}.employee-access-card{max-width:520px;margin:0 auto;text-align:left;border:1px solid #bcded7;background:#f3fbf9;border-radius:13px;padding:16px}.employee-access-card>small{display:block;color:#33706a;text-transform:uppercase;letter-spacing:.7px;font-size:7px;font-weight:800;margin-bottom:10px}.employee-access-card>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #dcece9}.employee-access-card span{font-size:8px;color:var(--muted)}.employee-access-card strong{font-size:10px;overflow-wrap:anywhere}.employee-access-card .employee-temporary-pin{font:800 17px Manrope;letter-spacing:3px;color:#075f58}.employee-access-card p{font-size:8px;line-height:1.5;color:#5c7471;margin:11px 0 0}

/* ===== employee-record-page.css ===== */
.record-loading{padding:80px;text-align:center;color:var(--muted)}
.profile-completeness{display:block;margin-top:7px;padding:6px 9px;border-radius:8px;font-size:9px;line-height:1.4}.profile-completeness.complete{background:rgba(18,163,108,.2);color:#d9ffef}.profile-completeness.incomplete{background:rgba(232,155,40,.22);color:#fff1d4}
.record-row-add,.record-row-remove{display:none}.record-page-form.editing .record-row-add{display:inline-flex;margin:12px 18px}.record-page-form.editing .record-row-remove{display:inline-flex;align-self:center;justify-self:center}.record-repeat article{align-items:end}
.record-page-head{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin:24px 0 18px;padding:26px 28px;border-radius:20px;color:#fff;background:linear-gradient(120deg,#0b4d4a,#087f75 62%,#0a9a8c);box-shadow:0 18px 45px rgba(8,77,72,.17)}
.record-back{grid-column:1/-1;width:max-content;border:0;background:transparent;color:#ccece8;font:700 11px DM Sans;cursor:pointer}.record-title{display:flex;align-items:center;gap:15px}.record-title .big-avatar{background:rgba(255,255,255,.16);color:#fff}.record-title span{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#a9eee4}.record-title h1{margin:4px 0;font:800 28px Manrope}.record-title p{margin:0;color:#d8f0ed;font-size:12px}.record-head-actions{display:flex;align-items:center;gap:10px}
.record-page-form{display:grid;gap:14px;padding-bottom:86px}.record-page-section{overflow:hidden;border:1px solid #d7e5e2;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(23,67,63,.06);margin-bottom:14px}.record-section-head{display:flex;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #e7efed;background:#f7fbfa}.record-section-title{display:flex;align-items:flex-start;gap:11px}.record-section-title>i{display:grid;place-items:center;min-width:28px;height:28px;border-radius:9px;background:#e8f4f2;color:#087f75;font:800 9px Manrope;font-style:normal}.record-section-title>i:empty{display:none}.record-section-head h2{margin:0;font:750 14px Manrope;color:#183d3a}.record-section-head p{margin:4px 0 0;font-size:10px;color:var(--muted)}.record-source{align-self:center;padding:7px 10px;border-radius:999px;background:#e8f4f2;color:#0b6760;font-size:9px;font-weight:700}
.record-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.record-field{min-width:0;padding:12px 14px;border-right:1px solid #edf1f0;border-bottom:1px solid #edf1f0}.record-field.wide{grid-column:span 2}.record-field>span{display:flex;justify-content:space-between;gap:6px;margin-bottom:6px;color:#70827f;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.45px}.record-field>small{display:block;margin-top:5px;color:var(--muted);font-size:8px;line-height:1.45}.record-field input,.record-field select,.record-field textarea{width:100%;min-width:0;border:1px solid transparent;border-radius:8px;background:transparent;padding:8px 9px;color:#203a38;font:600 10px DM Sans}.record-page-form.editing .record-field input:not([readonly]),.record-page-form.editing .record-field select,.record-page-form.editing .record-field textarea:not([readonly]){border-color:#cadbd8;background:#fff;box-shadow:inset 0 1px 2px rgba(20,58,55,.04)}.record-page-form:not(.editing) .record-field input,.record-page-form:not(.editing) .record-field select,.record-page-form:not(.editing) .record-field textarea{padding-left:0;opacity:1;-webkit-text-fill-color:#203a38}
.record-subsection{grid-column:1/-1;border-top:1px solid #e6efed;background:#fcfefd}.record-subsection-head{display:flex;justify-content:space-between;gap:12px;padding:14px 18px 9px}.record-subsection-head h3{margin:0;font:750 11px Manrope;color:#183d3a}.record-subsection-head p{margin:3px 0 0;color:var(--muted);font-size:9px}.record-repeat{grid-column:1/-1;width:100%}.record-repeat article{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #edf1f0}.record-repeat article:last-child{border-bottom:0}.record-optional{grid-column:1/-1;border-top:1px solid #e6efed;background:#fbfdfc}.record-optional>summary{cursor:pointer;padding:14px 18px;color:#0b6760;font-size:10px;font-weight:750;list-style:none}.record-optional>summary::-webkit-details-marker{display:none}
.record-prefill-note{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;padding:13px 18px;background:#f1f8f7;border-top:1px solid #deece9}.record-prefill-note strong{white-space:nowrap;color:#087f75;font-size:9px}.record-prefill-note span{color:var(--muted);font-size:9px;line-height:1.5}.record-readonly-list{grid-column:1/-1;width:100%}.record-readonly-list article{display:grid;grid-template-columns:1.2fr 1.6fr auto;gap:14px;align-items:center;padding:14px 18px;border-top:1px solid #edf1f0}.record-readonly-list article:first-child{border-top:0}.record-readonly-list strong{font-size:10px}.record-readonly-list span,.record-readonly-list em{font-size:9px;color:var(--muted);font-style:normal}.record-empty{grid-column:1/-1;margin:0;padding:24px 18px;color:var(--muted);font-size:10px}
.record-savebar{position:fixed;z-index:20;right:26px;bottom:20px;display:flex;align-items:center;gap:10px;max-width:720px;padding:13px 15px;border:1px solid #cfe0dd;border-radius:14px;background:#fff;box-shadow:0 18px 55px rgba(15,54,51,.22)}.record-savebar>div{min-width:260px;margin-right:8px}.record-savebar strong,.record-savebar span{display:block}.record-savebar strong{font-size:10px}.record-savebar span{margin-top:3px;color:var(--muted);font-size:8px}
@media(max-width:1000px){.record-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.record-page-head{grid-template-columns:1fr;align-items:start;padding:22px}.record-head-actions{flex-wrap:wrap}.record-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.record-repeat article{grid-template-columns:repeat(2,minmax(0,1fr))}.record-readonly-list article{grid-template-columns:1fr}.record-savebar{left:12px;right:12px;bottom:12px}.record-savebar>div{display:none}.record-field.wide{grid-column:span 2}}
@media(max-width:480px){.record-title h1{font-size:22px}.record-fields,.record-repeat article{grid-template-columns:1fr}.record-field.wide{grid-column:auto}.record-savebar{display:grid;grid-template-columns:1fr 1fr}.record-savebar .btn{width:100%}.record-prefill-note{display:block}.record-prefill-note strong{display:block;margin-bottom:4px}}

/* ===== employee-readable-20260902.css ===== */
/* Balanced readability pass 2026-09-02: midway between the original tiny form and the previous oversized pass. */
.employee-form-head h2{font-size:clamp(20px,1.55vw,26px)!important;letter-spacing:-.02em}
.record-page-head h1{font-size:clamp(22px,1.8vw,29px)!important;letter-spacing:-.02em}
.employee-form-head p,.employee-section-title p{font-size:11px!important;line-height:1.5!important}
.record-page-head p,.record-section-head p{font-size:11px!important;line-height:1.5!important}
.employee-section-title h3{font-size:15px!important;line-height:1.3!important}
.record-section-head h2{font-size:16px!important;line-height:1.3!important}
.employee-fields label>span,.employee-subsection h4,.employee-form-main label span{font-size:10px!important;font-weight:700!important;letter-spacing:.01em!important}
.record-field>span{font-size:10.5px!important;font-weight:700!important;letter-spacing:.01em!important}
.employee-fields input,.employee-fields select,.employee-fields textarea{font-size:12px!important;min-height:36px!important}
.record-field input,.record-field select{font-size:12px!important;min-height:37px!important}
.employee-fields textarea{min-height:66px!important}
.employee-form-panel,.record-page-section,.panel{background:rgba(248,252,251,.94)!important}
.employee-form-main,.record-page-form{background:#edf6f4!important}
.record-page-section,.employee-form-panel{box-shadow:0 7px 24px rgba(17,72,67,.05)!important}
.employee-stepper button span{font-size:10px!important}.employee-stepper button i{font-size:10.5px!important}
.employee-form-kicker{font-size:9.5px!important}
.employee-generated-note strong{font-size:10.5px!important}.employee-generated-note span{font-size:10px!important}
.record-fields{background:#f8fbfa!important}.record-field{background:#fbfdfc!important}
.record-source{background:#edf7f5!important;color:#386b66!important}

/* Import choice + protected staff-number guidance. */
.employee-number-assignment small{display:block;margin-top:5px;font-size:9px;line-height:1.4;color:#617471;font-weight:500}
.employee-number-assignment input[readonly]{background:#edf3f2!important;color:#536764!important;cursor:not-allowed}
.employee-import-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.employee-import-mode{appearance:none;border:1px solid #cddfdb;background:#f8fbfa;border-radius:13px;padding:13px 14px;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.employee-import-mode:hover{border-color:#8dbdb6}
.employee-import-mode.active{border-color:#188f83;background:#edf9f6;box-shadow:0 0 0 2px rgba(24,143,131,.08)}
.employee-import-mode b{display:block;font-size:11px;line-height:1.35;color:#174d48;margin-bottom:3px}
.employee-import-mode span{display:block;font-size:9.5px;line-height:1.45;color:#647975}
.import-number-rule{display:grid;grid-template-columns:125px 1fr;gap:10px;align-items:start;padding:11px 12px;margin:12px 0;border:1px solid #d6e6e2;border-radius:11px;background:#f3f9f7}
.import-number-rule strong{font-size:10px;color:#174d48}
.import-number-rule span{font-size:9.5px;line-height:1.45;color:#5a706c}
@media(max-width:700px){.employee-import-mode-grid{grid-template-columns:1fr}.import-number-rule{grid-template-columns:1fr}}

/* Read-only attendance-machine links on the simplified employee record page. */
.record-machine-list{grid-column:1/-1;width:100%}
.record-machine-list article{display:grid;grid-template-columns:1.2fr 1.6fr auto;gap:14px;align-items:center;padding:14px 18px;border-top:1px solid #edf1f0}
.record-machine-list article:first-child{border-top:0}
.record-machine-list strong{font-size:10.5px}.record-machine-list span,.record-machine-list em{font-size:9.5px;color:var(--muted);font-style:normal}
@media(max-width:760px){.record-machine-list article{grid-template-columns:1fr}}

.employee-number-assignment{margin:0 0 16px;padding:12px 14px;border:1px solid #d6e6e2;border-radius:11px;background:#f3f9f7}.employee-number-assignment strong,.employee-number-assignment span{display:block}.employee-number-assignment strong{font-size:10.5px;color:#174d48}.employee-number-assignment span{font-size:11px;color:#315f5a;margin-top:2px}.employee-number-assignment small{font-size:9.5px!important;color:#617471!important}

/* ===== monthly-roster.css ===== */
.roster-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:end;padding:16px 18px;margin-bottom:16px}.roster-toolbar-fields,.roster-toolbar-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.roster-toolbar label,.dashboard-roster-date{display:grid;gap:5px}.roster-toolbar label span,.dashboard-roster-date span,.roster-period-state span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#718087;font-weight:700}.roster-toolbar input,.roster-toolbar select,.roster-date-control,.dashboard-roster-date input{border:1px solid #d6e2df;border-radius:8px;background:#fff;color:#173f3b;padding:9px 10px;font:600 11px 'DM Sans',sans-serif;min-height:36px}.roster-period-state{display:grid;gap:5px;min-width:100px}.roster-period-state strong{display:inline-flex;width:max-content;padding:8px 12px;border-radius:999px;background:#fff4de;color:#8a5b00;font-size:10px}.roster-period-state strong.published{background:#e8f5f2;color:#087f75}.roster-planner-panel{margin-bottom:16px;overflow:hidden}.roster-legend{display:flex;gap:6px;flex-wrap:wrap}.roster-legend span{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:700}.roster-legend .day{background:#e8f5f2;color:#087f75}.roster-legend .night{background:#e9e7fa;color:#554590}.roster-legend .call{background:#e7f1ff;color:#2866a3}.roster-legend .off{background:#f1f4f3;color:#6b7774}.roster-grid-loading,.roster-error{padding:28px;text-align:center;color:#718087;font-size:11px}.roster-error strong{color:#d94b52}.monthly-roster-scroll{overflow:auto;max-height:65vh;border-top:1px solid #e3ece9}.monthly-roster-table{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%}.monthly-roster-table th,.monthly-roster-table td{border-right:1px solid #e6eeec;border-bottom:1px solid #e6eeec;background:#fff;padding:6px;min-width:112px;height:52px;vertical-align:middle}.monthly-roster-table thead th{position:sticky;top:0;z-index:8;background:#0b6b61;color:#fff;text-align:center}.monthly-roster-table thead th b,.monthly-roster-table thead th small{display:block}.monthly-roster-table thead th small{font-size:8px;opacity:.76;margin-top:3px}.monthly-roster-table thead th.today{background:#164d91}.monthly-roster-table thead th.weekend:not(.today){background:#53736e}.monthly-roster-table .roster-sticky{position:sticky;z-index:6;text-align:left}.monthly-roster-table thead .roster-sticky{z-index:10}.monthly-roster-table .employee-no{left:0;min-width:105px;max-width:105px}.monthly-roster-table .employee-name{left:105px;min-width:190px;max-width:190px}.monthly-roster-table .employee-position{left:295px;min-width:170px;max-width:170px}.monthly-roster-table tbody .roster-sticky{background:#fbfdfc}.monthly-roster-table .employee-name strong,.monthly-roster-table .employee-name small{display:block}.monthly-roster-table .employee-name strong{font-size:10px;color:#173f3b}.monthly-roster-table .employee-name small{font-size:8px;color:#718087;margin-top:3px}.roster-cell{position:relative;text-align:center}.roster-cell select{width:100%;border:1px solid transparent;border-radius:7px;padding:7px 5px;font:700 9px 'DM Sans',sans-serif;color:#244843;background:#f1f4f3}.roster-cell select.day{background:#e8f5f2;color:#087f75}.roster-cell select.night{background:#e9e7fa;color:#554590}.roster-cell select.call{background:#e7f1ff;color:#2866a3}.roster-cell select.off{background:#f1f4f3;color:#6b7774}.roster-cell.changed{box-shadow:inset 0 0 0 2px #e89b28}.roster-cell.changed:after{content:'Unsaved';position:absolute;right:4px;top:2px;font-size:6px;color:#9a6500}.roster-cell.unavailable{background:#fff4de}.roster-cell.unavailable select{opacity:.45}.roster-cell>small{display:block;font-size:7px;line-height:1.2;color:#8a5b00;margin-top:3px;max-width:104px;white-space:normal}.roster-support-grid{margin-bottom:16px}.roster-date-control{max-width:145px}.roster-warning-list{display:grid;gap:8px}.roster-warning-list article{display:flex;gap:9px;padding:9px 10px;border-radius:8px;background:#fff4de}.roster-warning-list article.critical{background:#fde8ea}.roster-warning-list article i{width:7px;height:7px;border-radius:50%;background:#e89b28;margin-top:4px;flex:0 0 auto}.roster-warning-list article.critical i{background:#d94b52}.roster-warning-list strong,.roster-warning-list p{font-size:9px}.roster-warning-list p{margin:2px 0 0;color:#687c79}.roster-safe,.roster-availability-note{display:flex;gap:10px;padding:12px;border-radius:9px;background:#e8f5f2;color:#087f75}.roster-safe p,.roster-availability-note p{margin:3px 0 0;color:#55716d;font-size:9px}.roster-availability-note{display:block;margin-top:12px;background:#f4f7f6;color:#244843}.roster-block{display:block;color:#718087;margin-top:2px}.roster-danger-text{color:#d94b52;font-weight:700}.roster-history-list{padding:14px 18px;display:grid;gap:12px}.roster-history-list article{display:flex;gap:9px}.roster-history-list i{width:8px;height:8px;border-radius:50%;background:#0b6b61;margin-top:4px}.roster-history-list strong{font-size:10px;color:#173f3b}.roster-history-list p,.roster-history-list small{display:block;margin:2px 0 0;font-size:8px;color:#718087}.daily-department-card{border:1px solid #dde8e5;border-radius:10px;background:#fff;overflow:hidden}.daily-department-head{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;background:#f7faf9}.daily-department-head strong,.daily-department-head small{display:block}.daily-department-head strong{font-size:11px;color:#173f3b}.daily-department-head small{font-size:8px;color:#718087;margin-top:2px}.daily-shift-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.daily-shift-columns>section{padding:10px;border-right:1px solid #e5edeb}.daily-shift-columns>section:last-child{border-right:0}.daily-shift-columns header{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.daily-shift-columns header strong{font-size:9px;color:#173f3b}.daily-shift-columns header span{font-size:8px;font-weight:700;border-radius:999px;padding:3px 6px;background:#eef4f2}.daily-shift-columns ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.daily-shift-columns li{border-radius:7px;padding:6px;background:#f7faf9}.daily-shift-columns li span,.daily-shift-columns li small{display:block}.daily-shift-columns li span{font-size:9px;font-weight:700;color:#264a45}.daily-shift-columns li small{font-size:7px;color:#718087;margin-top:2px}.daily-shift-columns li.empty span{color:#d94b52}.daily-shift-columns .night{background:#faf9ff}.daily-shift-columns .on-call{background:#f8fbff}.dashboard-shift-overview{margin-bottom:16px}.dashboard-shift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-roster-date{min-width:145px}.dashboard-roster-date input{width:100%}.roster-error p{margin:5px 0 0}.monthly-roster-table select:disabled{cursor:not-allowed}.monthly-roster-table tbody tr:hover .roster-sticky{background:#eef7f4}
@media(max-width:1050px){.dashboard-shift-grid{grid-template-columns:1fr}.daily-shift-columns{grid-template-columns:1fr}.daily-shift-columns>section{border-right:0;border-bottom:1px solid #e5edeb}.daily-shift-columns>section:last-child{border-bottom:0}}
@media(max-width:760px){.roster-toolbar{align-items:stretch}.roster-toolbar,.roster-toolbar-fields,.roster-toolbar-actions{display:grid;grid-template-columns:1fr}.roster-toolbar-actions{grid-template-columns:1fr 1fr}.monthly-roster-table .employee-name{left:0;min-width:160px;max-width:160px}.monthly-roster-table .employee-no,.monthly-roster-table .employee-position{display:none}.dashboard-shift-grid{grid-template-columns:1fr}}

/* ===== enterprise-suite.css ===== */
.enterprise-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.enterprise-tabs button{border:1px solid #cfddda;background:#fff;color:#365a56;border-radius:20px;padding:8px 13px;font:600 11px DM Sans;cursor:pointer}.enterprise-tabs button.active{background:#0b6b61;color:#fff;border-color:#0b6b61}.enterprise-workspace{display:grid;gap:16px}.enterprise-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.enterprise-card{border:1px solid #d8e4e1;background:linear-gradient(145deg,#fff,#f8fbfa);border-radius:13px;padding:16px;text-align:left}.enterprise-card strong{display:block;color:#123b37;font:700 13px Manrope}.enterprise-card p{color:#6b7f7c;font-size:10px;line-height:1.5;margin:6px 0 13px}.enterprise-card button{margin-top:auto}.enterprise-note{background:#eef8f6;border-left:4px solid #0b7f74;border-radius:8px;padding:12px 14px;color:#385d58;font-size:10px;line-height:1.55}.enterprise-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px}.enterprise-summary div{border:1px solid #dce7e4;border-radius:10px;padding:12px;background:#fff}.enterprise-summary small{display:block;color:#728581;font-size:8px;text-transform:uppercase;letter-spacing:.7px}.enterprise-summary strong{display:block;color:#143d38;font:800 18px Manrope;margin-top:4px}.enterprise-actions{display:flex;gap:7px;flex-wrap:wrap}.enterprise-table-wrap{overflow:auto;max-height:520px}.enterprise-table-wrap table{min-width:850px}.enterprise-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.enterprise-filter .form-field{min-width:145px}.enterprise-empty{padding:26px;text-align:center;color:#71827f}.enterprise-empty strong{display:block;color:#274d48;margin-bottom:4px}.enterprise-registers{display:grid;grid-template-columns:240px 1fr;gap:14px}.enterprise-register-nav{display:grid;gap:6px;align-content:start}.enterprise-register-nav button{border:1px solid #d8e4e1;background:#fff;border-radius:9px;padding:10px 12px;text-align:left;color:#315b56;font:600 10px DM Sans;cursor:pointer}.enterprise-register-nav button.active{background:#e6f5f2;border-color:#76b8ae;color:#075f56}.enterprise-danger{color:#aa2735}.enterprise-badge{display:inline-flex;border-radius:12px;padding:3px 8px;background:#edf5f3;color:#38635e;font-size:8px;font-weight:700}.enterprise-badge.warning{background:#fff2dc;color:#8c5d0b}.enterprise-badge.danger{background:#fde8ea;color:#a32635}.enterprise-modal-note{font-size:10px;color:#6b7e7a;line-height:1.55;margin-top:10px}.enterprise-checkbox{display:flex;align-items:center;gap:8px;font-size:10px;color:#486864}.enterprise-checkbox input{width:auto}.enterprise-report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.enterprise-report-card{border:1px solid #d9e5e2;border-radius:11px;padding:14px;background:#fff}.enterprise-report-card strong{display:block;color:#143f3a}.enterprise-report-card small{display:block;color:#71837f;margin:5px 0 12px}.enterprise-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.enterprise-setting{border:1px solid #dae6e3;border-radius:10px;padding:12px;background:#fff}.enterprise-setting label{display:block;color:#335c57;font-size:9px;font-weight:700;margin-bottom:6px}.enterprise-setting input{width:100%}.attendance-calendar{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:7px;overflow:auto}.attendance-calendar .calendar-head{font-size:8px;font-weight:800;text-transform:uppercase;color:#607b77;padding:6px}.attendance-day{min-height:82px;border:1px solid #d9e5e2;border-radius:9px;padding:8px;background:#fff}.attendance-day.empty{border-style:dashed;background:#fafcfc}.attendance-day>strong{display:block;color:#163f3a;font-size:11px}.attendance-day small{display:block;color:#6d817d;font-size:8px;margin-top:5px}.attendance-day i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px;background:#13a36c}.attendance-day i.late{background:#e89b28}.attendance-day i.absent{background:#d94b52}@media(max-width:850px){.enterprise-registers{grid-template-columns:1fr}.enterprise-register-nav{grid-template-columns:repeat(2,1fr)}.attendance-calendar{grid-template-columns:repeat(7,110px)}}
.enterprise-email-setup{margin:0 18px 18px;padding:18px;border:1px solid #cfe2de;border-radius:14px;background:linear-gradient(135deg,#f4fbf9,#fff);box-shadow:0 8px 24px rgba(16,86,78,.06)}.enterprise-email-setup h3{display:inline;margin:0;color:#075e59;font-size:14px}.enterprise-email-setup>div:first-child p{margin:7px 0 0;color:#617a76;font-size:10px;line-height:1.5}.enterprise-email-icon{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:8px;border-radius:9px;background:#087f75;color:#fff;font-size:16px}.enterprise-email-test-form{display:flex;gap:8px;margin-top:14px}.enterprise-email-test-form input{flex:1;min-width:220px;border:1px solid #cddedb;border-radius:9px;padding:10px 12px}.enterprise-email-test-result{margin:9px 0 0;font-size:10px;font-weight:700}.enterprise-email-test-result.success{color:#087f75}.enterprise-email-test-result.error{color:#b62e3b}@media(max-width:650px){.enterprise-email-test-form{display:grid}.enterprise-email-test-form input{min-width:0}}

/* V13.5.2 report centre — category-first navigation and full report workspace. */
.enterprise-report-menu{background:#fff;border:1px solid #d8e5e2;border-radius:14px;overflow:hidden;box-shadow:0 10px 28px rgba(15,69,63,.05)}
.enterprise-report-menu-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 18px;background:#f7fbfa;border-bottom:1px solid #dde9e6}.enterprise-report-menu-head strong{font:800 16px Manrope;color:#163f3a}.enterprise-report-menu-head span{font-size:10px;color:#6d817d}
.enterprise-report-group{border-bottom:1px solid #e4ecea}.enterprise-report-group:last-child{border-bottom:0}.enterprise-report-group summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:13px 18px;font:700 12px DM Sans;color:#244d48;background:#fff}.enterprise-report-group summary::-webkit-details-marker{display:none}.enterprise-report-group summary span{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:#edf6f4;color:#317068;font-size:9px}.enterprise-report-group>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0;border-top:1px solid #edf2f1;background:#fbfdfd}.enterprise-report-group button{border:0;border-right:1px solid #edf2f1;border-bottom:1px solid #edf2f1;background:#fff;padding:13px 16px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:14px;color:#173f3a;cursor:pointer}.enterprise-report-group button:hover{background:#eef8f6}.enterprise-report-group button span{font-weight:700;font-size:11px}.enterprise-report-group button em{font-style:normal;font-size:9px;color:#087f75;font-weight:800}
.report-detail-filter{align-items:end}.enterprise-report-export-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.enterprise-report-export-actions .btn{padding:8px 10px}.enterprise-report-menu+.panel{margin-top:16px}
#enterpriseReportTable{max-height:none;min-height:220px}#enterpriseReportTable table{min-width:1000px}#enterpriseReportTable th{position:sticky;top:0;z-index:1;background:#eff7f5}
@media(max-width:760px){.enterprise-report-group>div{grid-template-columns:1fr}.enterprise-report-menu-head{align-items:flex-start;flex-direction:column}.enterprise-report-export-actions{justify-content:flex-start}}
/* V13.5.3 report centre visual refinement. */
.enterprise-report-menu{padding-bottom:16px;background:#f8fbfa}.enterprise-report-menu-head{padding:18px 20px}.enterprise-report-menu-head>div{display:grid;gap:3px}.enterprise-report-menu-head strong{font-size:18px}.enterprise-report-menu-head small{font-size:9px;color:#6f817e}.enterprise-report-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}.enterprise-report-category-card{border:1px solid #d8e6e3;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 5px 16px rgba(16,75,68,.045)}.enterprise-report-category-card[open]{border-color:#90c8c0;box-shadow:0 9px 24px rgba(16,75,68,.08)}.enterprise-report-category-card summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:16px}.enterprise-report-category-card summary::-webkit-details-marker{display:none}.report-category-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#e8f6f3;color:#087f75;font-size:20px;font-weight:900}.report-category-copy strong{display:block;font:800 13px Manrope;color:#173f3a}.report-category-copy p{margin:4px 0 5px;color:#667e7a;font-size:9px;line-height:1.45}.report-category-copy small{font-size:8px;color:#879895;font-weight:700}.report-category-open{padding:6px 9px;border-radius:999px;background:#eff7f5;color:#087f75;font-size:8px;font-weight:800}.enterprise-report-category-card[open] .report-category-open{background:#087f75;color:#fff}.report-category-items{display:grid;border-top:1px solid #e6eeec;background:#fbfdfd}.report-category-items button{border:0;border-bottom:1px solid #edf2f1;background:#fff;padding:11px 14px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#214b46;cursor:pointer}.report-category-items button:last-child{border-bottom:0}.report-category-items button:hover{background:#edf8f5}.report-category-items button span{font-size:10px;font-weight:700}.report-category-items button em{font-style:normal;color:#087f75;font-size:8px;font-weight:800}.report-detail-filter .form-field{min-width:240px}@media(max-width:850px){.enterprise-report-category-grid{grid-template-columns:1fr}.enterprise-report-menu-head{align-items:flex-start;flex-direction:column}}

.company-brand-preview{margin-top:7px;min-height:78px;border:1px dashed #c8dbd7;border-radius:10px;padding:8px;background:#f8fbfa;display:flex;align-items:center;justify-content:center}.company-brand-preview .muted,.muted{color:#6b807d;font-size:11px}

.enterprise-advanced-settings{margin:14px 18px 20px;border:1px solid #d4e4e0;border-radius:14px;background:#fbfdfc;padding:12px 14px}.enterprise-advanced-settings>summary{cursor:pointer;font-weight:900;color:#284b47;list-style:none}.enterprise-advanced-settings>summary::-webkit-details-marker{display:none}.enterprise-advanced-settings[open]>summary{margin-bottom:10px}.enterprise-email-setup input[type=email]{width:100%;max-width:520px;box-sizing:border-box;min-height:42px;border:1px solid #c8dbd7;border-radius:10px;padding:9px 11px}

/* ===== payslips.css ===== */
.report-last-processed{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;border:1px solid #d6e5e2;border-radius:12px;background:linear-gradient(135deg,#f7fbfa,#fff);color:#5b7370;font-size:10px}.report-last-processed span{text-transform:uppercase;letter-spacing:.7px;font-size:8px;font-weight:800}.report-last-processed strong{color:#14413c;font-size:11px}.report-last-processed strong.clickable{cursor:pointer;text-decoration:underline;text-decoration-color:#85bbb4;text-underline-offset:3px}.payslip-browser-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.payslip-browser-controls .form-field{min-width:220px}.payslip-table{max-height:none}.payslip-table table{min-width:1040px}.payslip-row-actions{display:flex;gap:6px;flex-wrap:wrap}.payslip-delivery-status{display:inline-flex;padding:3px 8px;border-radius:999px;background:#eef4f3;color:#5f7370;font-size:8px;font-weight:800}.payslip-delivery-status.sent{background:#e2f6ec;color:#167348}.payslip-delivery-status.failed{background:#fde8ea;color:#aa2735}@media(max-width:760px){.payslip-browser-controls{display:grid}.payslip-browser-controls .form-field{min-width:0}}

/* ===== leave.css ===== */
.leave-main-grid{align-items:start}.leave-balance-list{display:grid;gap:10px}.leave-balance-card{width:100%;border:1px solid #dfe9e7;background:#fff;border-radius:12px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;color:#203431}.leave-balance-card:hover{border-color:#87bdb6;background:#f8fcfb}.leave-balance-card span,.leave-balance-card b{display:flex;flex-direction:column;gap:3px}.leave-balance-card strong{font:700 12px Manrope}.leave-balance-card small{font:500 10px 'DM Sans';color:#718087}.leave-balance-card b{align-items:flex-end;color:#087f75;font:800 20px Manrope}.leave-manager-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.leave-manager-summary div{border:1px solid #e2ebe9;border-radius:10px;padding:14px;background:#f9fcfb;display:flex;flex-direction:column}.leave-manager-summary strong{font:800 22px Manrope;color:#087f75}.leave-manager-summary span{font-size:10px;color:#718087}.leave-readonly-person{border:1px solid #dfe7e5;border-radius:9px;background:#f7faf9;padding:11px 12px;display:flex;flex-direction:column;gap:3px}.leave-readonly-person strong{font:700 12px Manrope}.leave-readonly-person small{font-size:10px;color:#718087}.leave-policy-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#eff8f6;border:1px solid #cfe8e3;display:flex;flex-direction:column;gap:4px}.leave-policy-note strong{font:700 11px Manrope;color:#087f75}.leave-policy-note span{font-size:10px;color:#526663;line-height:1.5}.leave-quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.leave-quote-grid>div{border:1px solid #dfe8e6;background:#fff;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:3px}.leave-quote-grid small{font-size:9px;color:#718087;text-transform:uppercase;letter-spacing:.05em}.leave-quote-grid strong{font:800 20px Manrope;color:#087f75}.leave-quote-grid .leave-negative{border-color:#f1c4c6;background:#fff7f7}.leave-quote-grid .leave-negative strong,.leave-credit{color:#12a36c}.leave-quote-grid .leave-negative strong{color:#c83f47}.leave-statement-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.leave-statement-summary div{border:1px solid #dfe8e6;background:#f9fcfb;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:3px}.leave-statement-summary small{font-size:9px;color:#718087}.leave-statement-summary strong{font:700 12px Manrope;color:#203431}.leave-statement-modal{padding:16px;max-height:72vh;overflow:auto}.leave-policy-checks{display:flex;flex-direction:column;justify-content:center;gap:9px}.leave-policy-checks label,.leave-eligible-grid label{display:flex;align-items:center;gap:7px;font-size:10px;color:#425653}.leave-eligible-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px;border:1px solid #dfe7e5;border-radius:9px;background:#f9fcfb}@media(max-width:900px){.leave-manager-summary,.leave-quote-grid,.leave-statement-summary,.leave-eligible-grid{grid-template-columns:1fr}.leave-main-grid{grid-template-columns:1fr}}

/* ===== people-directory-preview.css ===== */
/* Premium visual trial: intentionally limited to the People Directory page. */
#app:has(#peopleTable){
  position:relative;
  isolation:isolate;
  padding-top:30px;
}

#app:has(#peopleTable)::before{
  content:'';
  position:absolute;
  z-index:-1;
  inset:0 0 auto;
  height:260px;
  border-radius:0 0 32px 32px;
  background:
    radial-gradient(circle at 1px 1px,rgba(8,127,117,.085) 1px,transparent 1.2px) 0 0/18px 18px,
    linear-gradient(135deg,rgba(230,245,241,.88),rgba(247,251,250,.35) 52%,rgba(217,237,234,.7));
  pointer-events:none;
}

#app:has(#peopleTable) .page-head{
  position:relative;
  overflow:hidden;
  align-items:center;
  min-height:164px;
  margin-bottom:22px;
  padding:28px 30px;
  border:1px solid rgba(8,127,117,.2);
  border-radius:20px;
  background:
    radial-gradient(circle at 85% 12%,rgba(255,255,255,.24) 0 7%,transparent 7.2%),
    linear-gradient(118deg,#0b4d4a 0%,#087f75 54%,#0a9a8c 100%);
  box-shadow:0 18px 45px rgba(8,77,72,.17),inset 0 1px rgba(255,255,255,.18);
  color:#fff;
}

#app:has(#peopleTable) .page-head::after{
  content:'';
  position:absolute;
  right:-65px;
  bottom:-115px;
  width:300px;
  height:300px;
  border:44px solid rgba(255,255,255,.055);
  border-radius:50%;
  pointer-events:none;
}

#app:has(#peopleTable) .page-head>div{
  position:relative;
  z-index:1;
}

#app:has(#peopleTable) .eyebrow{
  color:#a9eee4;
  font-size:11px;
  letter-spacing:2px;
}

#app:has(#peopleTable) .page-head h1{
  margin:7px 0 6px;
  font-size:32px;
  letter-spacing:-.85px;
}

#app:has(#peopleTable) .page-head p{
  max-width:610px;
  color:#d8f0ed;
  font-size:14px;
  line-height:1.55;
}

#app:has(#peopleTable) .head-actions{
  flex-wrap:wrap;
  justify-content:flex-end;
}

#app:has(#peopleTable) .head-actions .btn,
#app:has(#peopleTable) .head-actions .export-menu>summary{
  min-height:42px;
  padding:11px 16px;
  border-color:rgba(255,255,255,.34);
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 24px rgba(4,49,46,.12);
  font-size:12px;
}

#app:has(#peopleTable) .head-actions .btn.primary{
  border-color:#fff;
  background:#fff;
  color:#087f75;
}

#app:has(#peopleTable)>.panel{
  border-color:#d7e5e2;
  border-radius:18px;
  box-shadow:0 16px 42px rgba(23,67,63,.1),0 2px 8px rgba(23,67,63,.04);
}

#app:has(#peopleTable)>.panel>.panel-head{
  padding:20px 22px 17px;
  background:
    linear-gradient(90deg,rgba(230,245,241,.72),rgba(255,255,255,.85) 46%),
    radial-gradient(circle at 1px 1px,rgba(8,127,117,.07) 1px,transparent 1px) 0 0/14px 14px;
}

#app:has(#peopleTable)>.panel>.panel-head h2{
  font-size:17px;
}

#app:has(#peopleTable)>.panel>.panel-head p{
  margin-top:5px;
  font-size:12px;
}

#app:has(#peopleTable) .filter-row{
  gap:12px;
  padding:16px 20px;
  background:#fbfdfc;
}

#app:has(#peopleTable) .filter-row input,
#app:has(#peopleTable) .filter-row select{
  min-height:42px;
  border-color:#d5e3e1;
  border-radius:10px;
  padding:10px 12px;
  background:#fff;
  box-shadow:inset 0 1px 2px rgba(22,62,59,.03);
  font-size:13px;
}

#app:has(#peopleTable) .filter-row input:focus,
#app:has(#peopleTable) .filter-row select:focus{
  border-color:#48a99f;
  box-shadow:0 0 0 3px rgba(8,127,117,.1);
}

#app:has(#peopleTable) #peopleTable{
  overflow-x:auto;
  background:
    linear-gradient(180deg,rgba(247,251,250,.42),transparent 52px),
    #fff;
}

#app:has(#peopleTable) #peopleTable th{
  padding:13px 15px;
  background:#f2f7f6;
  color:#56716e;
  font-size:10px;
  letter-spacing:.8px;
}

#app:has(#peopleTable) #peopleTable td{
  padding:15px;
  color:#243a3e;
  font-size:13px;
  line-height:1.45;
}

#app:has(#peopleTable) #peopleTable tbody tr{
  transition:background .18s ease,box-shadow .18s ease;
}

#app:has(#peopleTable) #peopleTable tbody tr:nth-child(even){
  background:rgba(246,250,249,.7);
}

#app:has(#peopleTable) #peopleTable tbody tr:hover{
  background:#f0faf7;
  box-shadow:inset 4px 0 #0ba596;
}

#app:has(#peopleTable) #peopleTable .person{
  gap:12px;
}

#app:has(#peopleTable) #peopleTable .person-pic{
  width:40px;
  height:40px;
  border:1px solid rgba(8,127,117,.14);
  border-radius:12px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.68),transparent),
    var(--bg,#dff3f0);
  box-shadow:0 5px 12px rgba(27,79,74,.09);
  font-size:11px;
}

#app:has(#peopleTable) #peopleTable .person strong{
  font-size:13px;
}

#app:has(#peopleTable) #peopleTable .person small{
  margin-top:3px;
  font-size:11px;
}

#app:has(#peopleTable) #peopleTable .status{
  padding:6px 9px;
  border-radius:999px;
  font-size:10px;
  letter-spacing:.15px;
}

#app:has(#peopleTable) #peopleTable .btn{
  padding:8px 11px;
  border-color:#cfe0dd;
  background:#fff;
  color:#0b6760;
  font-size:11px;
}

@media(max-width:900px){
  #app:has(#peopleTable) .page-head{align-items:flex-start;min-height:0;padding:24px;flex-direction:column}
  #app:has(#peopleTable) .head-actions{justify-content:flex-start}
  #app:has(#peopleTable) .filter-row{flex-wrap:wrap}
  #app:has(#peopleTable) .filter-row input{flex-basis:100%}
  #app:has(#peopleTable) .filter-row select{flex:1;min-width:170px}
}

@media(max-width:560px){
  #app:has(#peopleTable){padding-top:18px}
  #app:has(#peopleTable) .page-head{padding:21px 18px;border-radius:16px}
  #app:has(#peopleTable) .page-head h1{font-size:27px}
  #app:has(#peopleTable) .page-head p{font-size:13px}
  #app:has(#peopleTable) .head-actions{width:100%}
  #app:has(#peopleTable) .head-actions .btn{flex:1}
  #app:has(#peopleTable)>.panel{border-radius:15px}
}

/* ===== report-preview.css ===== */
.report-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.report-card-actions .btn{margin:0}.report-card-actions .btn.primary{min-width:72px}.report-preview-open{padding:12px}.report-preview-open .modal-card{width:min(1240px,98vw);max-height:95vh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.report-preview-head{align-items:flex-start;padding:20px 22px;background:linear-gradient(115deg,#f0faf7,#fff 58%)}.report-preview-head h2{font-size:20px}.report-preview-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.report-preview-body{min-height:300px;padding:0;overflow:auto;background:#f8fbfa}.report-preview-summary{display:flex;gap:10px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px solid var(--line);background:#fff}.report-preview-summary span{border:1px solid #d9e6e3;border-radius:999px;padding:6px 10px;color:#4f6c68;background:#f7fbfa;font-size:11px}.report-preview-table{overflow:auto;max-height:64vh;padding:15px 18px 22px}.report-preview-table table{min-width:max(100%,880px);background:#fff;border:1px solid #d9e5e2;border-radius:10px;border-collapse:separate;border-spacing:0;overflow:hidden}.report-preview-table th{position:sticky;top:0;z-index:2;padding:11px 12px;background:#e9f4f1;color:#315f59;font-size:10px;white-space:nowrap}.report-preview-table td{padding:10px 12px;font-size:12px;white-space:nowrap}.report-preview-table tbody tr:nth-child(even){background:#f8fbfa}.report-preview-table tbody tr:hover{background:#eef9f6}.report-preview-loading,.report-preview-empty{padding:70px 24px;text-align:center;color:var(--muted);font-size:13px}.report-preview-foot{align-items:center;padding:14px 20px;background:#fff}.report-preview-foot .report-preview-downloads{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.report-preview-foot .report-preview-downloads .btn{min-width:104px}@media(max-width:700px){.report-preview-open{padding:0}.report-preview-open .modal-card{width:100%;height:100vh;max-height:none;border-radius:0}.report-preview-head{padding:17px}.report-preview-head h2{font-size:17px}.report-preview-foot{align-items:stretch;flex-direction:column}.report-preview-foot .report-preview-downloads{margin:0}.report-preview-foot .report-preview-downloads .btn{flex:1}.report-preview-table{padding:10px}.report-preview-summary{padding:10px}}

/* ===== payroll-revamp.css ===== */
.payroll-control-strip{background:linear-gradient(120deg,rgba(232,245,242,.9),rgba(255,255,255,.96));border:1px solid #cfe2de}.payroll-period-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.payroll-period-controls .form-field{min-width:190px;margin:0}.payroll-period-controls .tag{margin-left:auto;margin-bottom:2px}.payroll-revamp-grid{margin-top:16px}.payroll-basis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payroll-basis-grid>div{padding:12px;border:1px solid #dce9e6;border-radius:10px;background:linear-gradient(145deg,#fff,#f7fbfa)}.payroll-basis-grid strong,.payroll-basis-grid span{display:block}.payroll-basis-grid strong{font:700 12px Manrope;color:#0b5f58}.payroll-basis-grid span{font-size:11px;line-height:1.45;color:#607773;margin-top:4px}.payroll-policy-grid{grid-template-columns:1fr 1fr}.payroll-readiness{margin-top:12px}.payroll-readiness strong,.payroll-readiness span{display:block}.payroll-readiness span{font-size:10px;line-height:1.5;margin-top:4px}.payroll-readiness.ready{background:#e9f8f2;color:#087f75}.payroll-lines-wrap{overflow:auto;max-height:520px}.payroll-lines-wrap table{min-width:1120px}.payroll-lines-wrap td{vertical-align:top}.payroll-negative{color:#c43c49!important;font-weight:700}.payroll-rate-list{margin-top:16px;display:grid;gap:8px}.payroll-rate-list>div,.payroll-output-list>div{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 14px;border:1px solid #dce9e6;border-radius:10px;background:#fff}.payroll-rate-list strong,.payroll-rate-list span,.payroll-output-list strong,.payroll-output-list span{display:block}.payroll-rate-list span,.payroll-output-list span{font-size:10px;color:#607773;margin-top:3px}.payroll-output-list{display:grid;gap:9px;margin-top:14px}.payroll-output-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:800px){.payroll-basis-grid,.payroll-policy-grid{grid-template-columns:1fr}.payroll-period-controls .tag{margin-left:0}.payroll-rate-list>div,.payroll-output-list>div{align-items:flex-start;flex-direction:column}.payroll-output-actions{justify-content:flex-start}}

.payroll-person-link{border:0;background:transparent;padding:0;color:#087f75;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.payroll-person-link:hover{color:#075e57}.payroll-post-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}.payroll-history-actions{display:flex;gap:6px;flex-wrap:wrap}.locked-payroll-note{display:inline-flex;align-items:center;padding:8px 11px;border-radius:999px;background:#fff3df;color:#7a4d12;font-weight:700}

/* ===== premium-ui.css ===== */
/*
  Kebarick HR & Payroll premium visual layer.
  This file is intentionally loaded last so the full treatment can be reversed
  without changing any workflow or module stylesheet.
*/

:root {
  --premium-canvas: #f1f7f5;
  --premium-canvas-deep: #e7f1ee;
  --premium-surface: rgba(255, 255, 255, .97);
  --premium-surface-soft: rgba(247, 252, 250, .97);
  --premium-border: rgba(91, 137, 130, .22);
  --premium-border-strong: rgba(8, 127, 117, .30);
  --premium-shadow: 0 20px 55px rgba(20, 63, 59, .10), 0 3px 10px rgba(20, 63, 59, .05);
  --premium-shadow-soft: 0 10px 28px rgba(20, 63, 59, .075), 0 1px 3px rgba(20, 63, 59, .04);
  --premium-shadow-hover: 0 22px 42px rgba(20, 63, 59, .13), 0 4px 12px rgba(20, 63, 59, .06);
  --premium-radius: 17px;
  --premium-radius-small: 11px;
}

html {
  font-size: 16px;
  background: var(--premium-canvas);
}

body {
  color: var(--ink);
  background-color: var(--premium-canvas);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .055) 1px, transparent 0),
    linear-gradient(145deg, #f8fbfa 0%, #edf5f2 55%, #f5f9f8 100%);
  background-size: 23px 23px, auto;
  font-size: 13px;
  line-height: 1.48;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection {
  color: #fff;
  background: rgba(8, 127, 117, .84);
}

button,
input,
select,
textarea {
  font-family: 'DM Sans', sans-serif;
}

button,
a,
input,
select,
textarea,
summary {
  transition: border-color .18s ease, background-color .18s ease, color .18s ease,
    box-shadow .18s ease, transform .18s ease;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(11, 165, 150, .22);
  outline-offset: 2px;
}

/* Permanent navigation and top bar */
.sidebar {
  background-color: #092b2b;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(130, 219, 203, .105) 1px, transparent 0),
    radial-gradient(circle at 20% 8%, rgba(27, 168, 151, .26), transparent 28%),
    linear-gradient(175deg, #0b3836 0%, #082a2a 48%, #071f21 100%);
  background-size: 22px 22px, auto, auto;
  border-right: 1px solid rgba(164, 224, 214, .10);
  box-shadow: 16px 0 42px rgba(8, 37, 37, .12);
}

.brand {
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(210, 244, 238, .10);
}

.brand-mark {
  box-shadow: 0 10px 22px rgba(0, 0, 0, .18), inset 0 1px 0 rgba(255, 255, 255, .28);
}

.brand strong {
  font-size: 14px;
  letter-spacing: .025em;
}

.brand small,
.facility small,
.sidebar-foot small {
  font-size: 9.5px;
}

.facility {
  background: linear-gradient(145deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .035));
  border: 1px solid rgba(198, 239, 232, .10);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
}

nav button {
  min-height: 40px;
  border: 1px solid transparent;
  border-radius: 11px;
  font-size: 12.5px;
  letter-spacing: .004em;
}

nav button:hover {
  border-color: rgba(202, 239, 233, .08);
  background: rgba(255, 255, 255, .075);
  transform: translateX(2px);
}

nav button.active {
  position: relative;
  overflow: hidden;
  color: #fff !important;
  background-color: #08776f;
  background-image: none;
  border-color: rgba(205, 246, 239, .30);
  box-shadow: 0 5px 13px rgba(2, 29, 29, .15), inset 0 1px 0 rgba(255, 255, 255, .14);
  text-shadow: none;
  transform: none;
  filter: none;
  opacity: 1 !important;
}

nav button.active:disabled {
  cursor: default;
  color: #fff !important;
  opacity: 1 !important;
}

nav button.active .ico,
nav button.active span {
  color: #fff !important;
  opacity: 1 !important;
}

nav button.active::before {
  content: '';
  position: absolute;
  top: 7px;
  bottom: 7px;
  left: 4px;
  width: 4px;
  border-radius: 999px;
  background: #c9fff5;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .18);
}

nav button span:first-child {
  font-size: 15px;
}

.topbar {
  min-height: 72px;
  background: rgba(255, 255, 255, .90);
  border-bottom: 1px solid rgba(81, 129, 122, .15);
  box-shadow: 0 8px 28px rgba(25, 68, 64, .055);
  backdrop-filter: blur(16px) saturate(135%);
  -webkit-backdrop-filter: blur(16px) saturate(135%);
}

.crumb strong {
  font-size: 13px;
}

.crumb small,
.profile small {
  font-size: 9.5px;
}

.profile strong {
  font-size: 11px;
}

.search {
  min-height: 39px;
  border-color: var(--premium-border);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 5px 16px rgba(24, 68, 64, .055), inset 0 1px 0 #fff;
}

.search input {
  font-size: 11.5px;
}

.icon-btn {
  min-width: 39px;
  min-height: 39px;
  border-radius: 11px;
  border-color: var(--premium-border);
  background: linear-gradient(145deg, #fff, #f4f9f7);
  box-shadow: 0 5px 14px rgba(24, 68, 64, .05);
}

.icon-btn:hover {
  border-color: var(--premium-border-strong);
  box-shadow: 0 9px 20px rgba(24, 68, 64, .09);
  transform: translateY(-1px);
}

/* Application canvas and page introductions */
main {
  background-color: var(--premium-canvas);
  background-image:
    radial-gradient(circle at 12% 4%, rgba(103, 208, 189, .16), transparent 24%),
    radial-gradient(circle at 89% 16%, rgba(69, 126, 211, .07), transparent 23%),
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .038) 1px, transparent 0);
  background-size: auto, auto, 23px 23px;
}

#app {
  position: relative;
}

.page-head {
  min-height: 126px;
  margin-bottom: 22px;
  padding: 23px 25px;
  border: 1px solid var(--premium-border);
  border-radius: 19px;
  background-color: rgba(255, 255, 255, .94);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .07) 1px, transparent 0),
    radial-gradient(circle at 92% 20%, rgba(67, 193, 174, .20), transparent 27%),
    linear-gradient(135deg, rgba(255, 255, 255, .99), rgba(231, 246, 241, .98));
  background-size: 19px 19px, auto, auto;
  box-shadow: var(--premium-shadow-soft);
}

.page-head h1 {
  margin-top: 3px;
  font-size: clamp(25px, 2.15vw, 31px);
  line-height: 1.12;
  letter-spacing: -.025em;
}

.page-head p {
  max-width: 760px;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.55;
}

.eyebrow {
  font-size: 10px;
  letter-spacing: .13em;
}

.head-actions {
  gap: 9px;
}

.btn {
  min-height: 39px;
  padding: 10px 14px;
  border-radius: 10px;
  border-color: var(--premium-border);
  background: linear-gradient(145deg, #fff, #f4f9f7);
  box-shadow: 0 4px 12px rgba(24, 68, 64, .045);
  font-size: 11.5px;
  font-weight: 700;
}

.btn:hover:not(:disabled) {
  border-color: var(--premium-border-strong);
  box-shadow: 0 9px 19px rgba(24, 68, 64, .09);
  transform: translateY(-1px);
}

.btn.primary {
  border-color: rgba(4, 103, 96, .86);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .11) 1px, transparent 0),
    linear-gradient(135deg, #0aa091, #08756d);
  background-size: 17px 17px, auto;
  box-shadow: 0 9px 20px rgba(8, 127, 117, .18), inset 0 1px 0 rgba(255, 255, 255, .19);
}

/* Reusable cards, summaries and content surfaces */
.panel,
.stat,
.quick,
.module-card,
.compliance-card,
.ops-summary-card,
.enterprise-card,
.enterprise-report-card,
.enterprise-setting,
.leave-balance-card,
.leave-policy-note,
.payroll-readiness,
.payroll-control-strip,
.report-preview-summary,
.gate-pass-card,
.daily-department-card {
  border-color: var(--premium-border);
  background-color: var(--premium-surface);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .027) 1px, transparent 0),
    linear-gradient(150deg, rgba(255, 255, 255, .99), rgba(247, 252, 250, .98));
  background-size: 22px 22px, auto;
  box-shadow: var(--premium-shadow-soft);
}

.panel,
.module-card,
.compliance-card,
.enterprise-card,
.enterprise-report-card,
.gate-pass-card,
.daily-department-card {
  border-radius: var(--premium-radius);
}

.stat,
.quick,
.ops-summary-card,
.enterprise-setting,
.leave-balance-card,
.leave-policy-note,
.payroll-readiness,
.payroll-control-strip {
  border-radius: 14px;
}

.stat:hover,
.quick:hover,
.module-card:hover,
.enterprise-card:hover,
.enterprise-report-card:hover {
  border-color: var(--premium-border-strong);
  box-shadow: var(--premium-shadow-hover);
  transform: translateY(-2px);
}

.panel-head {
  min-height: 62px;
  padding: 15px 18px;
  border-bottom-color: rgba(91, 137, 130, .14);
  background-color: rgba(244, 250, 248, .82);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .055) 1px, transparent 0),
    linear-gradient(120deg, rgba(239, 249, 246, .86), rgba(255, 255, 255, .72));
  background-size: 18px 18px, auto;
}

.panel-head h2 {
  font-size: 15px;
  line-height: 1.25;
  letter-spacing: -.012em;
}

.panel-head p {
  margin-top: 4px;
  font-size: 10.5px;
  line-height: 1.45;
}

.panel-body {
  padding: 18px;
  font-size: 12px;
}

.stat {
  min-height: 114px;
  padding: 17px;
}

.stat > small,
.ops-summary-card small,
.enterprise-summary small,
.leave-balance-card small {
  font-size: 9.5px;
  letter-spacing: .065em;
}

.stat strong {
  margin-top: 7px;
  font-size: 27px;
  letter-spacing: -.035em;
}

.stat em,
.ops-summary-card em {
  font-size: 10px;
  line-height: 1.4;
}

.ops-summary-card {
  padding: 16px;
}

.ops-summary-card strong {
  font-size: 17px;
}

.quick,
.module-card,
.enterprise-card,
.enterprise-report-card {
  padding: 17px;
}

.quick strong,
.module-card h3,
.enterprise-card h3,
.enterprise-report-card h3,
.compliance-card h3 {
  font-size: 13px;
  line-height: 1.35;
}

.quick small,
.module-card p,
.enterprise-card p,
.enterprise-report-card p,
.compliance-card p {
  font-size: 10.5px;
  line-height: 1.55;
}

.alert,
.integration-note,
.risk-banner,
.admin-note,
.enterprise-note,
.enterprise-modal-note,
.employee-info-box,
.import-preserve-banner {
  border-radius: 13px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65);
}

.alert strong,
.integration-note strong,
.risk-banner strong,
.admin-note strong {
  font-size: 11.5px;
}

.alert p,
.integration-note p,
.risk-banner p,
.admin-note p {
  font-size: 10.5px;
  line-height: 1.55;
}

.tag,
.status,
.device-badge,
.enterprise-badge {
  min-height: 24px;
  padding: 5px 9px;
  font-size: 9.5px;
  letter-spacing: .02em;
}

/* Tables and analytical views */
.ops-table-wrap,
.enterprise-table-wrap,
.payroll-lines-wrap,
.monthly-roster-scroll,
.report-preview-table {
  border-color: var(--premium-border);
  border-radius: 13px;
  background: rgba(255, 255, 255, .94);
  box-shadow: inset 0 1px 0 #fff, 0 5px 16px rgba(24, 68, 64, .045);
}

table {
  font-size: 11.5px;
}

th {
  padding-top: 11px;
  padding-bottom: 11px;
  background-color: #edf6f3;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .055) 1px, transparent 0),
    linear-gradient(180deg, #f4faf8, #eaf4f1);
  background-size: 17px 17px, auto;
  color: #385551;
  font-size: 9.5px;
  letter-spacing: .045em;
  line-height: 1.35;
}

td {
  padding-top: 11px;
  padding-bottom: 11px;
  font-size: 11.5px;
  line-height: 1.42;
}

tbody tr:nth-child(even) {
  background: rgba(239, 247, 244, .38);
}

tbody tr:hover {
  background: rgba(220, 242, 235, .56);
}

.person strong,
.employee-name {
  font-size: 11.5px;
}

.person small,
.employee-no,
.employee-position,
.ss-muted,
.notify-empty {
  font-size: 9.5px;
  line-height: 1.45;
}

.report-card-actions,
.report-preview-downloads,
.payroll-output-actions {
  gap: 8px;
}

.report-preview-summary {
  padding: 13px 15px;
  font-size: 10.5px;
}

/* Forms, settings and employee records */
.form-field label,
.employee-fields label > span,
.employee-upload-grid label > span,
.roster-toolbar-fields label > span,
.payroll-period-controls label > span,
.enterprise-setting label {
  margin-bottom: 6px;
  color: #3c5551;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .055em;
}

.form-field input,
.form-field select,
.form-field textarea,
.employee-fields input,
.employee-fields select,
.employee-fields textarea,
.roster-toolbar input,
.roster-toolbar select,
.filter-row input,
.filter-row select,
.enterprise-filter input,
.enterprise-filter select,
.payroll-period-controls input,
.payroll-period-controls select {
  min-height: 40px;
  border-color: var(--premium-border);
  border-radius: 10px;
  background: linear-gradient(180deg, #fff, #fbfdfc);
  box-shadow: inset 0 1px 2px rgba(24, 68, 64, .025), 0 1px 0 #fff;
  color: var(--ink);
  font-size: 12px;
}

.form-field textarea,
.employee-fields textarea {
  min-height: 86px;
  line-height: 1.5;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus,
.employee-fields input:focus,
.employee-fields select:focus,
.employee-fields textarea:focus {
  border-color: #38a99d;
  box-shadow: 0 0 0 4px rgba(8, 127, 117, .10), 0 7px 18px rgba(24, 68, 64, .06);
}

.employee-form-head,
.employee-record-head,
.complete-import-head {
  background-color: #f4faf8;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .065) 1px, transparent 0),
    linear-gradient(120deg, #eff9f6, #fff);
  background-size: 18px 18px, auto;
}

.employee-form-kicker {
  font-size: 9.5px;
}

.employee-form-head p,
.employee-record-head p,
.complete-import-head p {
  font-size: 11px;
}

.employee-stepper {
  background-color: #f1f8f6;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .045) 1px, transparent 0),
    linear-gradient(180deg, #f5faf8, #ecf6f3);
  background-size: 19px 19px, auto;
}

.employee-stepper button {
  min-height: 40px;
  font-size: 10.5px;
}

.employee-stepper button.active {
  background: linear-gradient(135deg, #dff4ef, #edf9f6);
  box-shadow: inset 0 0 0 1px rgba(8, 127, 117, .11);
}

.employee-section-title h3 {
  font-size: 19px;
}

.employee-section-title p,
.employee-subsection > div:first-child p,
.employee-info-box p,
.employee-check small,
.employee-review-item small,
.employee-record-list small {
  font-size: 9.5px;
}

.employee-subsection > div:first-child h4,
.employee-info-box strong,
.employee-check strong,
.employee-review-item strong,
.employee-record-list strong {
  font-size: 10.5px;
}

.employee-record-section,
.employee-record-banner,
.employee-review-hero,
.employee-review-item,
.employee-upload-grid label,
.complete-import-drop {
  border-color: var(--premium-border);
  background-image: linear-gradient(145deg, #fff, #f8fcfa);
  box-shadow: var(--premium-shadow-soft);
}

.employee-record-section h3 {
  font-size: 12px;
  background: #f3f9f7;
}

.employee-record-grid small {
  font-size: 8.5px;
}

.employee-record-grid strong,
.employee-record-banner > div:last-child strong {
  font-size: 10px;
}

/* Roster, leave and payroll workspaces */
.roster-toolbar,
.payroll-period-controls,
.enterprise-filter {
  border-radius: var(--premium-radius);
  background-color: rgba(255, 255, 255, .96);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .04) 1px, transparent 0),
    linear-gradient(135deg, #fff, #f1f9f6);
  background-size: 20px 20px, auto;
  box-shadow: var(--premium-shadow-soft);
}

.roster-period-state span,
.payroll-policy-grid small,
.leave-policy-checks,
.leave-quote-grid small {
  font-size: 9.5px;
}

.roster-period-state strong,
.payroll-policy-grid strong,
.leave-quote-grid strong {
  font-size: 11px;
}

.roster-legend span {
  min-height: 25px;
  padding: 5px 9px;
  font-size: 9px;
}

.roster-cell select,
.roster-date-control {
  min-height: 34px;
  border-radius: 8px;
  font-size: 10px;
}

.leave-manager-summary,
.leave-statement-summary,
.payroll-basis-grid,
.payroll-policy-grid,
.payroll-rate-list,
.payroll-output-list {
  font-size: 11px;
}

.leave-balance-card strong,
.enterprise-summary strong {
  font-size: 18px;
}

/* Modal windows and sign-in */
.modal-backdrop {
  background-color: rgba(5, 31, 31, .58);
  background-image: radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .055) 1px, transparent 0);
  background-size: 21px 21px;
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.modal-card {
  border: 1px solid rgba(181, 223, 216, .42);
  border-radius: 20px;
  background: linear-gradient(155deg, #fff, #f8fcfa);
  box-shadow: 0 34px 100px rgba(2, 31, 30, .30), 0 6px 24px rgba(2, 31, 30, .15);
}

.modal-head {
  min-height: 68px;
  padding: 17px 20px;
  background-color: #f2faf7;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .065) 1px, transparent 0),
    linear-gradient(120deg, #eaf7f3, #fff);
  background-size: 18px 18px, auto;
}

.modal-head h2 {
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: -.015em;
}

.modal-head p {
  margin-top: 4px;
  font-size: 10.5px;
  line-height: 1.45;
}

.modal-body {
  padding: 20px;
  font-size: 12px;
}

.modal-foot {
  min-height: 65px;
  padding: 13px 20px;
  border-top-color: var(--premium-border);
  background: rgba(247, 251, 250, .94);
  box-shadow: 0 -7px 20px rgba(24, 68, 64, .035);
}

.login-screen {
  background-color: #072d2c;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(156, 226, 214, .11) 1px, transparent 0),
    radial-gradient(circle at 16% 15%, rgba(23, 170, 151, .35), transparent 27%),
    radial-gradient(circle at 88% 80%, rgba(58, 118, 199, .16), transparent 29%),
    linear-gradient(140deg, #061f20, #0a3d39 58%, #076d63);
  background-size: 23px 23px, auto, auto, auto;
}

.login-card {
  border: 1px solid rgba(200, 239, 232, .18);
  border-radius: 25px;
  background: rgba(250, 253, 252, .98);
  box-shadow: 0 38px 110px rgba(0, 18, 18, .42), 0 6px 24px rgba(0, 18, 18, .22);
}

.login-art {
  background-color: #075a55;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .10) 1px, transparent 0),
    radial-gradient(circle at 18% 18%, rgba(67, 213, 190, .24), transparent 28%),
    linear-gradient(155deg, #0a8179, #064641 70%, #063735);
  background-size: 19px 19px, auto, auto;
}

.login-art h1 {
  font-size: 38px;
  letter-spacing: -.035em;
}

.login-art p {
  font-size: 13px;
}

.login-cycle {
  font-size: 10px;
}

.login-form {
  background-color: #fbfdfc;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(8, 127, 117, .038) 1px, transparent 0),
    linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(244, 250, 248, .98));
  background-size: 21px 21px, auto;
}

.login-form h2 {
  font-size: 25px;
}

.login-form > p {
  font-size: 11px;
}

.login-role {
  min-height: 53px;
  border-color: var(--premium-border);
  border-radius: 12px;
  padding: 11px 12px;
  background: linear-gradient(145deg, #fff, #f6faf9);
  box-shadow: 0 4px 13px rgba(24, 68, 64, .045);
  font-size: 11.5px;
}

.login-role small {
  font-size: 9px;
}

.login-role:hover,
.login-role.active {
  border-color: rgba(8, 127, 117, .42);
  background: linear-gradient(135deg, #e5f6f2, #f4fbf9);
  box-shadow: 0 8px 20px rgba(8, 127, 117, .10);
  transform: translateY(-1px);
}

.login-input {
  min-height: 43px;
  border-color: var(--premium-border);
  border-radius: 11px;
  background: #fff;
  font-size: 12px;
}

.login-help,
.login-error {
  font-size: 10px;
  line-height: 1.45;
}

.toast {
  border: 1px solid rgba(185, 225, 218, .21);
  border-radius: 13px;
  box-shadow: 0 18px 45px rgba(0, 29, 28, .24);
  font-size: 11.5px;
}

@media (max-width: 900px) {
  .page-head {
    align-items: flex-start;
    min-height: 116px;
    padding: 21px;
  }

  .head-actions {
    flex-wrap: wrap;
  }

  .panel-head {
    padding: 14px 16px;
  }
}

@media (max-width: 700px) {
  .topbar {
    min-height: 66px;
  }

  .page-head {
    min-height: 0;
    padding: 18px;
    border-radius: 16px;
  }

  .page-head h1 {
    font-size: 24px;
  }

  .page-head p {
    font-size: 12px;
  }

  .panel,
  .module-card,
  .enterprise-card,
  .enterprise-report-card {
    border-radius: 14px;
  }

  .modal-card {
    border-radius: 17px;
  }

  .modal-head,
  .modal-body,
  .modal-foot {
    padding-left: 16px;
    padding-right: 16px;
  }

  table,
  td {
    font-size: 10.5px;
  }

  .login-form h2 {
    font-size: 23px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* ===== roster-upgrade.css ===== */
/* Readable hospital-wide roster controls and views. Loaded after premium-ui.css. */
.roster-toolbar-fields{align-items:end}.roster-toolbar label{min-width:155px}.roster-toolbar label>span,.dashboard-roster-date>span,.roster-period-state>span,.roster-overview-controls label>span{font-size:10.5px;letter-spacing:.075em;color:#526d68}.roster-toolbar select,.roster-toolbar input,.roster-date-control,.dashboard-roster-date input,.roster-overview-controls select,.roster-overview-controls input{min-height:42px;padding:9px 12px;font-size:12.5px;font-weight:700}.roster-view-date[hidden]{display:none}.roster-period-state strong{min-height:37px;align-items:center;font-size:11.5px}.roster-toolbar-actions{align-items:center}.roster-toolbar-actions .btn{min-height:42px}.roster-planner-panel>.panel-head{align-items:flex-start}.roster-legend span{min-height:28px;padding:6px 10px;font-size:10px}.roster-legend .leave{background:#fff0dc;color:#8a5b00}.roster-legend .training{background:#e9f0ff;color:#365fa8}
.monthly-roster-scroll{max-height:68vh}.monthly-roster-table th,.monthly-roster-table td{height:58px;padding:7px;min-width:116px}.monthly-roster-table thead th{font-size:10px}.monthly-roster-table thead th b{font-size:12px}.monthly-roster-table thead th small{font-size:9.5px;opacity:.9}.monthly-roster-table .employee-no{min-width:112px;max-width:112px}.monthly-roster-table .employee-name{left:112px;min-width:215px;max-width:215px}.monthly-roster-table .employee-position{left:327px;min-width:195px;max-width:195px}.monthly-roster-table .employee-name strong{font-size:12.5px;line-height:1.35}.monthly-roster-table .employee-name small{font-size:10px;line-height:1.35}.monthly-roster-table .employee-position{font-size:11.5px;line-height:1.4}.roster-cell select{min-height:38px;padding:8px 7px;font-size:11px}.roster-cell>small{max-width:112px;font-size:9px;line-height:1.35}.roster-cell.changed:after{font-size:8px}.roster-code-table th,.roster-code-table td{min-width:44px;height:43px;text-align:center}.roster-code-table .employee-no,.roster-code-table .employee-name,.roster-code-table .employee-position{text-align:left}.roster-code-table .employee-position{left:327px}.roster-code{font-size:11.5px;font-weight:800;letter-spacing:.03em}.roster-code.code-day{background:#e8f5f2;color:#087f75}.roster-code.code-night{background:#e9e7fa;color:#554590}.roster-code.code-call{background:#e7f1ff;color:#2866a3}.roster-code.code-evening{background:#fff2dc;color:#8a5b00}.roster-code.code-leave{background:#fff0dc;color:#8a5b00}.roster-code.code-training{background:#e9f0ff;color:#365fa8}.roster-all-stack{display:grid;gap:18px;padding:18px;background:#eef6f3}.roster-department-block{border:1px solid rgba(91,137,130,.24);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 7px 22px rgba(20,63,59,.06)}.roster-department-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:linear-gradient(120deg,#eaf7f3,#fff);border-bottom:1px solid #dce9e6}.roster-department-title strong{font:800 14px Manrope;color:#123f3a}.roster-department-title span{font-size:10.5px;color:#5c7470}.roster-daily-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px;background:#eef6f3}.roster-daily-grid.single{grid-template-columns:1fr;padding:0;background:transparent}.roster-overview-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.roster-overview-controls label{display:grid;gap:5px;min-width:170px}.roster-overview-controls .roster-date-control{max-width:none}.daily-department-card{border-radius:14px;box-shadow:0 7px 20px rgba(20,63,59,.06)}.daily-department-head{padding:14px 16px}.daily-department-head strong{font-size:14px}.daily-department-head small{font-size:10.5px;line-height:1.4}.daily-shift-columns>section{padding:13px}.daily-shift-columns header{margin-bottom:10px}.daily-shift-columns header strong{font-size:11.5px}.daily-shift-columns header span{padding:5px 8px;font-size:10px}.daily-shift-columns ul{gap:8px}.daily-shift-columns li{padding:9px 10px}.daily-shift-columns li span{font-size:11.5px;line-height:1.35}.daily-shift-columns li small{font-size:9.5px;line-height:1.4}.roster-warning-list strong,.roster-warning-list p{font-size:10.5px}.roster-safe strong,.roster-availability-note strong{font-size:11.5px}.roster-safe p,.roster-availability-note p{font-size:10.5px}.roster-history-list strong{font-size:11px}.roster-history-list p,.roster-history-list small{font-size:9.5px}.roster-block{font-size:9.5px}.roster-scope-note{padding:12px 16px;background:#e8f5f2;border:1px solid #cce7e1;border-radius:11px;color:#315e58;font-size:11px;line-height:1.5;margin:0 18px 18px}
@media(max-width:1100px){.roster-daily-grid{grid-template-columns:1fr}.roster-toolbar-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.roster-toolbar label{min-width:0}}
@media(max-width:760px){.roster-toolbar-fields{grid-template-columns:1fr}.roster-overview-controls{display:grid;grid-template-columns:1fr;width:100%}.roster-overview-controls label{min-width:0}.roster-daily-grid,.roster-all-stack{padding:12px}.monthly-roster-table .employee-name{left:0;min-width:180px;max-width:180px}.monthly-roster-table .employee-no,.monthly-roster-table .employee-position{display:none}}

/* ===== branding.css ===== */
/* Kebarick Ventures identity layer — loaded last for safe reversal. */
.hospital-brand {
  gap: 12px;
  padding-left: 5px;
  padding-right: 5px;
}

.hospital-logo-shell,
.login-logo-shell {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  background: rgba(255, 255, 255, .98);
  border: 1px solid rgba(255, 255, 255, .55);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18), inset 0 1px 0 #fff;
}

.hospital-logo-shell {
  width: 82px;
  height: 44px;
  padding: 7px 6px;
  border-radius: 13px;
}

.hospital-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hospital-brand .brand-copy {
  min-width: 0;
}

.hospital-brand .brand-copy strong {
  font-size: 14px;
  letter-spacing: .08em;
}

.hospital-brand .brand-copy small {
  margin-top: 2px;
  letter-spacing: .34em;
}

.facility strong {
  font-size: 12.5px;
}

.system-heading {
  display: flex;
  min-width: 310px;
  flex-direction: column;
  justify-content: center;
}

.system-name {
  color: #103c39;
  font: 800 14px/1.25 Manrope, sans-serif;
  letter-spacing: -.015em;
  white-space: nowrap;
}

.system-heading .crumb {
  margin-top: 4px;
  font-size: 10.5px;
}

.login-brand {
  align-items: center;
}

.login-logo-shell {
  width: 104px;
  height: 52px;
  padding: 8px;
  border-radius: 14px;
}

.login-logo-shell img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.login-brand strong,
.login-brand small {
  display: block;
}

.login-brand strong {
  color: #fff;
  font: 800 14px/1.25 Manrope, sans-serif;
  letter-spacing: .055em;
}

.login-brand small {
  margin-top: 4px;
  color: #9dd1ca;
  font-size: 10px;
}

@media (max-width: 1320px) {
  .topbar .search {
    width: 230px;
  }

  .system-heading {
    min-width: 280px;
  }

  .system-name {
    font-size: 12.5px;
  }
}

@media (max-width: 1120px) {
  .topbar .search {
    display: none;
  }
}

@media (max-width: 760px) {
  .system-heading {
    min-width: 0;
    max-width: min(58vw, 330px);
    margin-left: 8px;
  }

  .system-name {
    overflow: hidden;
    font-size: 11.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .system-heading .crumb {
    display: none;
  }

  .hospital-logo-shell {
    width: 76px;
  }
}

/* V10 application-brand sizing: never allow the landscape Kebarick logo to expand the dashboard header. */
.kebarick-brand{display:flex;align-items:center;gap:10px;min-height:74px;padding:12px 14px!important;overflow:hidden}
.kebarick-logo-shell{width:74px;height:46px;min-width:74px;display:grid;place-items:center;background:#fff;border-radius:10px;padding:5px;overflow:hidden;box-sizing:border-box}
.kebarick-logo{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}
.kebarick-brand .brand-copy{min-width:0}.kebarick-brand .brand-copy strong{font-size:12px}.kebarick-brand .brand-copy small{font-size:8px}

.build-badge{position:absolute;left:14px;bottom:66px;font:700 10px/1.2 Manrope,sans-serif;letter-spacing:.08em;color:#9fd8d1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:4px 8px;z-index:3}.sidebar{position:relative}

/* ===== zkteco-live.css ===== */
.k40-live-panel .ops-table-wrap{overflow-x:auto}.k40-live-panel table{min-width:1280px}.k40-live-panel th{font-size:9px}.k40-live-panel td{font-size:10.5px;vertical-align:top}.integration-note.live{border-color:#b5dfd2;background:linear-gradient(135deg,#edf9f5,#f8fffc)}.integration-note.live>span{background:#15966b;color:#fff}.live-bridge-mode{display:inline-block;color:#0a6f66;font-weight:800}.device-badge.online{background:#e2f6ec;color:#148054}.k40-panel-actions,.k40-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.k40-actions{min-width:355px}.k40-actions .btn{padding:8px 10px;white-space:nowrap}.k40-users-modal{padding:16px 20px}.k40-users-modal .ops-table-wrap{max-height:58vh;overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:11px}.k40-users-modal table{min-width:720px}.k40-users-modal thead{position:sticky;top:0;z-index:1}@media(max-width:760px){.k40-live-panel table{min-width:1180px}.k40-actions{min-width:330px}.k40-panel-actions{align-items:flex-end;flex-direction:column}}

/* ===== attendance-devices.css ===== */
.attendance-device-hub table{min-width:1180px}.attendance-device-hub th{font-size:10px}.attendance-device-hub td{vertical-align:top}.attendance-device-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:300px}.attendance-device-actions .btn{padding:7px 9px;white-space:nowrap}.attendance-policy-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.attendance-policy-grid article{display:flex;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff)}.attendance-policy-grid article>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#e4f4ef;color:#087f75;font-weight:800;flex:none}.attendance-policy-grid strong,.attendance-policy-grid p{display:block;margin:0}.attendance-policy-grid p{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.45}.attention-text{color:#b65d25;font-weight:700}.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.credential-grid>div{padding:12px;border:1px solid var(--line);border-radius:10px}.credential-grid label{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.credential-grid code{display:block;word-break:break-all;font-size:11px}.secret-code{user-select:all}.attendance-users-modal .ops-table-wrap,.device-logs-modal .ops-table-wrap{max-height:42vh;overflow:auto;border:1px solid var(--line);border-radius:10px}.mapping-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.device-logs-modal h3{margin:15px 0 7px}.device-logs-modal h3:first-child{margin-top:0}@media(max-width:1050px){.attendance-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.attendance-policy-grid,.credential-grid{grid-template-columns:1fr}.attendance-device-hub table{min-width:1050px}}

.device-danger-zone{margin-top:16px;padding:14px;border:1px solid #f1c8c3;border-radius:12px;background:#fff8f7;display:flex;gap:16px;align-items:center;justify-content:space-between}.device-danger-zone strong{display:block}.device-danger-zone p{margin:4px 0 0;font-size:10px;color:var(--muted);line-height:1.45;max-width:620px}.device-danger-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.removal-warning{padding:14px;border:1px solid #efb9b3;border-radius:12px;background:#fff5f4;margin-bottom:12px}.removal-warning strong{color:#a13b31}.removal-warning p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.device-removal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0}.device-removal-grid>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff)}.device-removal-grid span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.device-removal-grid strong{display:block;margin-top:5px;font-size:17px}.removal-pending{padding:13px;border:1px solid #edcf9d;border-radius:10px;background:#fffaf0;margin:12px 0}.removal-pending p{font-size:10px;color:var(--muted);margin:4px 0 8px}.removal-pending label,.removal-confirm{font-size:10px;font-weight:700;display:flex;gap:8px;align-items:flex-start}.removal-confirm{margin:12px 0}.form-field small{display:block;color:var(--muted);font-size:9px;margin-top:5px}@media(max-width:700px){.device-danger-zone{align-items:stretch;flex-direction:column}.device-danger-actions{justify-content:flex-start}.device-removal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== employee-master.css ===== */
.master-directory{overflow:hidden}.master-directory-head{align-items:center}.master-view-tabs,.master-export-bar{display:flex;gap:8px;align-items:center}.master-toolbar{display:grid;grid-template-columns:minmax(360px,2fr) repeat(3,minmax(150px,1fr));gap:10px;padding:18px 20px;border-top:1px solid #deebe8;border-bottom:1px solid #deebe8;background:#f8fbfa}.master-toolbar input,.master-toolbar select,.master-actions select{border:1px solid #cddedb;border-radius:9px;padding:11px;background:#fff;color:#163b38}.master-search{display:flex;gap:8px}.master-search input{flex:1}.master-export-bar{justify-content:flex-end;padding:10px 20px;background:#f2f7f6}.master-export-bar span{font-size:11px;color:#647b78}.master-export{border:0;background:transparent;color:#087f75;font-weight:700;cursor:pointer;padding:7px}.master-table-scroll{overflow:auto;max-height:65vh}.master-table-scroll table{min-width:100%;border-collapse:separate;border-spacing:0}.master-register table{min-width:3100px}.master-table-scroll thead th{position:sticky;top:0;z-index:2;background:#edf5f3}.master-table-scroll td{white-space:nowrap}.master-sort{display:flex;align-items:center;gap:6px;border:0;background:transparent;font:inherit;font-weight:700;color:inherit;cursor:pointer;text-transform:inherit}.master-sort span{color:#0b8f83}.master-name{display:flex;gap:10px;align-items:center;border:0;background:transparent;text-align:left;cursor:pointer;color:inherit}.master-name span:last-child{display:grid;gap:2px}.master-name small{color:#6b7f7c}.master-inline-name{border:0;background:none;color:#087f75;font-weight:800;cursor:pointer}.master-actions{display:flex;align-items:center;gap:6px}.master-actions .danger{color:#b62e3b}.master-register th:first-child,.master-register td:first-child{position:sticky;left:0;z-index:1;background:#fff}.master-register th:nth-child(2),.master-register td:nth-child(2){position:sticky;left:90px;z-index:1;background:#fff;box-shadow:4px 0 8px #183d3812}.master-register thead th:first-child,.master-register thead th:nth-child(2){z-index:3;background:#edf5f3}@media(max-width:1000px){.master-toolbar{grid-template-columns:1fr 1fr}.master-search{grid-column:1/-1}}@media(max-width:650px){.master-toolbar{grid-template-columns:1fr}.master-search{display:grid}.master-directory-head{align-items:flex-start}.master-view-tabs{width:100%}}

/* ===== attendance-master.css ===== */
.attendance-stat{border:0;text-align:left;cursor:pointer}.attendance-stat.selected{outline:3px solid color-mix(in srgb,var(--accent) 30%,transparent)}.attendance-filterbar{display:grid;grid-template-columns:minmax(240px,2fr) repeat(4,minmax(130px,1fr)) auto;gap:8px;padding:14px 18px;border-top:1px solid #e0ebe9;background:#f7faf9}.attendance-filterbar input,.attendance-filterbar select{border:1px solid #cddedb;border-radius:8px;padding:10px;background:#fff}.attendance-sort{border:0;background:transparent;font:inherit;font-weight:700;color:inherit;cursor:pointer}.attendance-sort span{color:#098d81}.ops-summary-card[data-attendance-department]{border:1px solid #dce9e7;text-align:left;cursor:pointer}@media(max-width:1000px){.attendance-filterbar{grid-template-columns:1fr 1fr}}@media(max-width:600px){.attendance-filterbar{grid-template-columns:1fr}}
.table-export-icons{display:inline-flex;align-items:center;gap:0;overflow:hidden;border:1px solid #cddedb;border-radius:11px;background:#fff;box-shadow:0 4px 14px rgba(18,74,68,.06)}.table-export-icons button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 13px;border:0;border-right:1px solid #dbe7e4;background:#fff;color:#087f75;font:800 11px Manrope,Arial,sans-serif;cursor:pointer;transition:background .16s ease,color .16s ease}.table-export-icons button:last-child{border-right:0}.table-export-icons button span{font-size:15px;line-height:1}.table-export-icons button:hover,.table-export-icons button:focus-visible{background:#e8f5f2;color:#075e59;outline:0}.attendance-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:760px){.table-export-icons button{padding:0 9px;font-size:10px}.table-export-icons button span{font-size:13px}}@media(max-width:560px){.table-export-icons{max-width:100%;overflow-x:auto}.table-export-icons button{flex:0 0 auto}}

/* ===== roster-master.css ===== */
.monthly-roster-table .roster-total{position:sticky;right:0;z-index:1;min-width:82px;text-align:center;background:#f0f7f5;border-left:2px solid #b8d7d1}.monthly-roster-table thead .roster-total{z-index:3;background:#dcece9}

/* ===== k40-provisioning.css ===== */
.k40-action-stack{display:flex;gap:6px;flex-wrap:wrap}.k40-action-stack .btn{white-space:nowrap}

/* ===== onboarding-draft.css ===== */
.employee-save-draft{border-color:#0b8f83;color:#087f75}.employee-form-foot{grid-template-columns:auto auto 1fr auto auto}

/* ===== date-picker.css ===== */
.k-date{display:grid;gap:7px;width:100%;min-width:0}.k-date-selects{display:grid;grid-template-columns:minmax(64px,.7fr) minmax(108px,1.45fr) minmax(82px,.9fr);gap:7px;min-width:0}.k-date-unit{display:grid;gap:4px;min-width:0}.k-date-unit>span{font-size:10px!important;letter-spacing:.04em;text-transform:uppercase;color:#68817d;font-weight:800}.k-date-selects select,.k-date-direct input{box-sizing:border-box;width:100%;min-width:0;min-height:43px;border:1px solid #c6d9d5;border-radius:10px;background:#fff;color:#17312f;padding:9px 10px;font:inherit}.k-date-selects select:focus,.k-date-direct input:focus{outline:2px solid #9dd9d1;outline-offset:1px;border-color:#087f75}.k-date-direct{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;align-items:center}.k-date-direct output{font-size:11px;color:#47625e;font-weight:800;min-height:15px}.k-date-error{min-height:14px;font-size:10px;color:#b3261e}.k-date select:disabled,.k-date input:disabled{background:#f3f6f5;color:#758985;cursor:not-allowed}.employee-fields>label,.form-field{min-width:0}@media(max-width:1180px){.k-date-selects{grid-template-columns:minmax(58px,.7fr) minmax(100px,1.35fr) minmax(76px,.85fr);gap:5px}.k-date-selects select,.k-date-direct input{padding:8px 7px}}@media(max-width:720px){.k-date-selects{grid-template-columns:minmax(62px,.75fr) minmax(116px,1.45fr) minmax(82px,.9fr)}.k-date-direct output{font-size:11px}}@media(max-width:390px){.k-date-selects{grid-template-columns:1fr 1.45fr 1fr}.k-date-unit>span{font-size:9px!important}}

/* ===== executive-ui.css ===== */
.top-actions .profile{cursor:default;user-select:none}
.sidebar-foot{gap:7px}
.sidebar-foot>div:nth-child(2){min-width:0;flex:1}
.sidebar-foot button{margin-left:0;width:29px;height:29px;border-radius:8px;cursor:pointer;font-size:14px}
.sidebar-foot button:hover,.sidebar-foot button:focus-visible{background:#1d4b49;color:#fff;outline:1px solid #4d7774}
.page-head{gap:22px}
.page-head>div:first-child{min-width:0}
.page-head .head-actions{flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;overflow:visible;min-width:0}
.page-head .table-export-icons{flex:0 0 auto;max-width:100%;overflow:visible}
.page-head .table-export-icons button{flex:0 0 auto;white-space:nowrap}
.roster-attendance-state{margin-top:3px;color:#52706d!important;font-weight:600}
.roster-attendance-state.absent{color:#c43640!important}
.leadership-badges{display:flex!important;gap:4px;flex-wrap:wrap;margin-top:5px}
.leadership-badge{display:inline-flex;padding:3px 6px;border-radius:10px;background:#dff3ef;color:#087f75;font-size:8px;font-weight:800}
.shift-lead-button{margin:8px;width:calc(100% - 16px);padding:7px 8px!important;font-size:9px!important}
.leadership-panel{margin-bottom:16px}
@media(max-width:1180px){.page-head{align-items:flex-start;flex-direction:column}.page-head .head-actions{width:100%;justify-content:flex-start}.page-head .table-export-icons{overflow-x:auto}}

/* ===== employee-centric-upgrade.css ===== */
.ecu-note{margin:0 0 16px;padding:14px 16px;border:1px solid #cfe5df;background:#f3faf8;border-radius:12px;display:flex;gap:12px;align-items:flex-start}.ecu-note strong{color:#0b665e;white-space:nowrap}.ecu-note span{color:#536966;line-height:1.55}.ecu-note.compact{margin-top:14px;margin-bottom:0}.ecu-note.payroll{margin-top:16px}.ecu-filter-btn{align-self:end;margin-bottom:1px}.ecu-settings-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}.ecu-settings-map>div{border:1px solid #dce8e5;background:#fff;border-radius:12px;padding:14px}.ecu-settings-map strong{display:block;color:#173f3b;margin-bottom:6px}.ecu-settings-map span{font-size:11px;line-height:1.45;color:#687b79}@media(max-width:1100px){.ecu-settings-map{grid-template-columns:1fr 1fr}.ecu-note{display:block}.ecu-note strong{display:block;margin-bottom:5px}}

/* ===== ui-polish.css ===== */
/* V13.3.7 · visual readability polish for employee onboarding and record pages */
#modal.employee-form-open .modal-card{
  width:min(1180px,100%);
  height:min(94vh,900px);
  border-radius:18px;
}
.employee-form-head{padding:20px 24px}
.employee-form-kicker{font-size:10px;letter-spacing:1.45px}
.employee-form-head h2,.employee-record-head h2{font:800 20px/1.2 Manrope,'DM Sans',sans-serif!important}
.employee-form-head p,.employee-record-head p{font-size:12px;line-height:1.5}
.employee-form-layout{grid-template-columns:225px minmax(0,1fr)}
.employee-stepper{padding:18px 14px}
.employee-stepper button{
  grid-template-columns:30px 1fr 18px;
  gap:10px;
  min-height:45px;
  padding:9px 10px;
  border-radius:11px;
  font:700 11.5px/1.25 'DM Sans',sans-serif;
}
.employee-stepper button i{width:28px;height:28px;border-radius:9px;font-size:10px}
.employee-privacy-note strong{font-size:11px}.employee-privacy-note small{font-size:10px;line-height:1.55}
.employee-form-main{padding:26px 30px}
.employee-section-title{margin-bottom:24px}
.employee-section-title>span{width:38px;height:38px;border-radius:11px;font:800 11px Manrope,sans-serif}
.employee-section-title h3{font:800 19px/1.2 Manrope,'DM Sans',sans-serif}
.employee-section-title p{font-size:12px;line-height:1.5;margin-top:5px}
.employee-fields{gap:17px 16px}
.employee-fields label>span,.employee-upload-grid label>span{
  font-size:11px;
  line-height:1.25;
  letter-spacing:.48px;
  margin-bottom:7px;
}
.employee-fields input,.employee-fields select,.employee-fields textarea{
  min-height:43px;
  border-radius:10px;
  padding:10px 12px;
  font:600 13.5px/1.35 'DM Sans',sans-serif;
}
.employee-fields textarea{min-height:92px}
.employee-directory-note{font-size:10.5px;line-height:1.55;padding:11px 13px}
.employee-generated-note strong{font-size:11px}.employee-generated-note span{font-size:10.5px}
.employee-review-item strong{font-size:11px}.employee-review-item small{font-size:10px}
.employee-confirm span{font-size:11px;line-height:1.55}
.employee-form-foot .btn{min-height:40px;padding:10px 16px;font-size:12px}

.record-page-head{padding:28px 30px;border-radius:22px}
.record-back{font:700 12px 'DM Sans',sans-serif}
.record-title span{font-size:10px;letter-spacing:1.15px}
.record-title h1{font:800 30px/1.15 Manrope,'DM Sans',sans-serif}
.record-title p{font-size:13px;line-height:1.45}
.profile-completeness{font-size:10.5px;padding:7px 10px}
.record-page-form{gap:16px}
.record-page-section{border-radius:18px;margin-bottom:16px}
.record-section-head{padding:18px 20px}
.record-section-title{gap:12px}
.record-section-title>i{min-width:34px;height:34px;border-radius:10px;font:800 10px Manrope,sans-serif}
.record-section-head h2{font:800 17px/1.25 Manrope,'DM Sans',sans-serif}
.record-section-head p{font-size:11.5px;line-height:1.5;margin-top:5px}
.record-source{font-size:10px;padding:7px 11px}
.record-field{padding:15px 16px}
.record-field>span{
  margin-bottom:8px;
  font-size:11px;
  line-height:1.2;
  letter-spacing:.5px;
}
.record-field>small{font-size:10px;line-height:1.5}
.record-field input,.record-field select,.record-field textarea{
  min-height:40px;
  padding:9px 10px;
  border-radius:9px;
  font:650 13.5px/1.35 'DM Sans',sans-serif;
}
.record-page-form:not(.editing) .record-field input,
.record-page-form:not(.editing) .record-field select,
.record-page-form:not(.editing) .record-field textarea{font-weight:650}
.record-subsection-head{padding:16px 20px 11px}
.record-subsection-head h3{font:800 13px Manrope,'DM Sans',sans-serif}
.record-subsection-head p{font-size:10.5px}
.record-optional>summary{font-size:11.5px;padding:15px 20px}
.record-prefill-note{padding:14px 20px}
.record-prefill-note strong,.record-prefill-note span{font-size:10.5px}
.record-readonly-list article{padding:15px 20px}.record-readonly-list strong{font-size:12px}.record-readonly-list span,.record-readonly-list em{font-size:10.5px}
.record-empty{font-size:11px}
.record-savebar strong{font-size:11.5px}.record-savebar span{font-size:10px}

/* Improve general HR reading comfort without changing layout density dramatically. */
.people-directory-preview .person strong,.employee-list .person strong{font-size:13px}
.people-directory-preview .person small,.employee-list .person small{font-size:11px}

@media(max-width:800px){
  .employee-form-main{padding:20px 17px}
  .employee-form-layout{grid-template-columns:1fr}
  .employee-stepper button{min-height:auto}
  .record-section-head h2{font-size:15px}
  .record-field input,.record-field select,.record-field textarea{font-size:12.5px}
}

/* SaaS subscription status must be obvious without dominating the workspace. */
#saasSubscriptionButton.subscription-due{background:#fff0d6!important;border-color:#e8b75f!important;color:#8a5300!important;box-shadow:0 0 0 2px rgba(232,183,95,.12)}
#saasSubscriptionButton.subscription-overdue{background:#fde8e8!important;border-color:#e7a0a8!important;color:#a02b36!important}
#saasSubscriptionButton.subscription-free{background:#e9f7f0!important;border-color:#b9dfce!important;color:#21684a!important}
#saasSubscriptionButton.subscription-trial{background:#eef7f5!important;border-color:#c7e5df!important;color:#08685f!important}

/* ===== mobile-responsive-v1354.css ===== */
/* Kebarick HR & Payroll V13.5.4 — mobile responsiveness only.
   All rules are scoped to phone/tablet widths so the V13.5.3 desktop UI remains unchanged. */
@media (max-width: 760px){
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-nav-open{overflow:hidden}

  /* Compact two-row mobile header: identity first, account actions second. */
  .app-shell .topbar{
    height:auto!important;
    min-height:104px;
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    gap:6px 8px!important;
    padding:8px 10px 9px!important;
    background:#fff;
  }
  .mobile-menu{display:grid!important;place-items:center;width:40px!important;height:40px!important;font-size:18px;z-index:2}
  .system-heading{min-width:0!important;max-width:none!important;margin:0!important}
  .system-name{display:block;max-width:100%;font-size:13px!important;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .system-heading .crumb{display:flex!important;margin-top:3px;gap:5px;font-size:10px!important;overflow:hidden}
  .system-heading .crumb span,.system-heading .crumb b{display:none!important}
  .system-heading .crumb strong{display:block!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#647a76}
  .top-actions{
    grid-column:1/-1;
    width:100%;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 40px 40px;
    align-items:center;
    gap:7px!important;
  }
  .top-actions .search{display:none!important}
  #saasSubscriptionButton{min-width:0;max-width:100%;height:40px;padding:7px 10px!important;border-radius:10px;font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions .icon-btn{width:40px!important;height:40px!important;min-width:40px}
  .top-actions .profile{width:40px;height:40px;padding:0!important;display:grid!important;place-items:center}
  .top-actions .profile>div:not(.avatar),.top-actions .profile>span{display:none!important}
  .top-actions .profile .avatar{width:38px;height:38px;font-size:12px}

  /* Proper mobile navigation drawer. */
  .sidebar{
    position:fixed!important;
    inset:0 auto 0 0;
    width:min(82vw,300px)!important;
    height:100dvh!important;
    left:0!important;
    transform:translateX(-103%);
    transition:transform .22s ease!important;
    z-index:120!important;
    box-shadow:18px 0 42px rgba(3,28,27,.24);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .sidebar.open{transform:translateX(0)!important}
  #mobileNavBackdrop{display:none;position:fixed;inset:0;background:rgba(5,29,28,.48);z-index:110;backdrop-filter:blur(1px)}
  #mobileNavBackdrop.open{display:block}
  .sidebar nav button,.sidebar nav a{min-height:42px}
  .sidebar-foot{position:sticky;bottom:0;background:var(--nav);padding-top:9px}

  /* Main workspace: comfortable phone spacing rather than a squeezed desktop. */
  #app{padding:14px 10px 86px!important;max-width:100%;overflow:hidden}
  .page-head{margin-bottom:14px!important;gap:10px!important}
  .page-head h1{font-size:22px!important;line-height:1.15!important;letter-spacing:-.4px!important}
  .page-head p{font-size:12px!important;line-height:1.45!important}
  .page-head .head-actions,.head-actions{width:100%;display:flex;gap:7px!important;overflow-x:auto!important;padding:1px 0 5px;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important}
  .page-head .head-actions::-webkit-scrollbar,.head-actions::-webkit-scrollbar{display:none}
  .page-head .head-actions .btn,.head-actions .btn{flex:0 0 auto;white-space:nowrap;min-height:40px}
  .btn{min-height:40px;padding:9px 12px;font-size:12px}
  .icon-btn{min-width:40px;min-height:40px}

  .panel,.card{border-radius:13px!important;max-width:100%}
  .panel-head{padding:13px 14px!important;gap:9px!important;align-items:flex-start!important;flex-wrap:wrap}
  .panel-head h2{font-size:15px!important;line-height:1.25}
  .panel-head p{font-size:11px!important;line-height:1.45}
  .panel-body{padding:14px!important}

  /* Metrics stay compact but readable. */
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin-bottom:13px!important}
  .stat{padding:12px!important;border-radius:11px!important;min-width:0}
  .stat small{font-size:9px!important;line-height:1.2}
  .stat strong{font-size:19px!important;line-height:1.1;margin:7px 0 3px!important;overflow-wrap:anywhere}
  .stat em{font-size:9.5px!important;line-height:1.3}
  .stat .trend{position:static!important;display:inline-flex;margin-top:6px;font-size:9px!important}
  .grid.two,.grid.equal,.live-overview-grid{grid-template-columns:1fr!important}
  .quick-grid,.module-grid{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .quick,.module-card{padding:13px!important}
  .quick strong,.module-card h3{font-size:12px!important}
  .quick small,.module-card p{font-size:10px!important}

  /* Filters and form controls stack naturally. */
  .filter-row,.payroll-period-controls,.payslip-browser-controls,.report-detail-filter,.attendance-filterbar{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;padding-left:12px!important;padding-right:12px!important}
  .filter-row input,.filter-row select,.form-field input,.form-field select,.form-field textarea{font-size:13px!important;min-height:43px}
  .payroll-period-controls .form-field,.payslip-browser-controls .form-field,.report-detail-filter .form-field{min-width:0!important;width:100%}
  .payroll-period-controls .tag{margin:0!important;justify-self:start}
  .payroll-basis-grid,.payroll-policy-grid,.detail-grid{grid-template-columns:1fr!important}

  /* Key operational lists become proper mobile record cards. JS adds data-labels. */
  .mobile-card-table{min-width:0!important;width:100%!important;border-collapse:separate!important;border-spacing:0!important;background:transparent!important}
  .mobile-card-table thead{display:none!important}
  .mobile-card-table tbody{display:grid!important;gap:10px!important;padding:10px!important}
  .mobile-card-table tbody tr{display:block!important;border:1px solid #d8e6e3!important;border-radius:13px!important;background:#fff!important;box-shadow:0 4px 14px rgba(16,71,65,.045)!important;overflow:hidden!important}
  .mobile-card-table tbody tr:hover{background:#fff!important}
  .mobile-card-table tbody td{display:grid!important;grid-template-columns:minmax(92px,36%) minmax(0,1fr)!important;gap:10px!important;align-items:start!important;width:100%!important;min-height:38px!important;padding:9px 11px!important;border:0!important;border-bottom:1px solid #edf2f1!important;white-space:normal!important;text-align:left!important;font-size:12.5px!important;line-height:1.35!important;overflow-wrap:anywhere}
  .mobile-card-table tbody td:last-child{border-bottom:0!important}
  .mobile-card-table tbody td::before{content:attr(data-label);font-size:9px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:#6a7e7b;line-height:1.35;padding-top:2px}
  .mobile-card-table tbody td[colspan]{display:block!important;text-align:center!important;padding:18px!important}
  .mobile-card-table tbody td[colspan]::before{display:none}
  .mobile-card-table .person{align-items:flex-start}
  .mobile-card-table .person strong{font-size:12.5px!important}
  .mobile-card-table .person small{font-size:10px!important}
  .mobile-card-table .btn{width:auto;justify-self:start}
  .mobile-card-table .payslip-row-actions,.mobile-card-table .admin-actions{justify-content:flex-start!important}
  .payroll-lines-wrap,.payslip-table,.ops-table-wrap{max-height:none!important;overflow:visible!important}

  /* Reports remain true tables, but are deliberately scrollable on a phone. */
  #enterpriseReportTable,.enterprise-report-workspace .enterprise-table-wrap,.monthly-roster-scroll,.master-table-scroll{max-width:100%;overflow-x:auto!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  #enterpriseReportTable::before,.mobile-wide-table::before{content:'Swipe horizontally to view all columns';display:block;position:sticky;left:0;width:max-content;margin:8px 10px 0;padding:5px 8px;border-radius:999px;background:#edf6f4;color:#4d6f6a;font-size:9px;font-weight:700;z-index:2}
  #enterpriseReportTable table{min-width:760px!important}
  #enterpriseReportTable th,#enterpriseReportTable td{font-size:11px!important;padding:9px 10px!important}
  .enterprise-report-category-grid{grid-template-columns:1fr!important;padding:10px!important;gap:10px!important}
  .enterprise-report-category-card summary{grid-template-columns:40px minmax(0,1fr) auto!important;padding:13px!important;gap:10px!important}
  .report-category-icon{width:40px!important;height:40px!important;font-size:17px!important}
  .report-category-copy strong{font-size:12px!important}.report-category-copy p{font-size:10px!important}.report-category-copy small{font-size:9px!important}

  /* Modals use the available screen height instead of floating desktop boxes. */
  .modal-backdrop{padding:8px!important;align-items:end!important}
  .modal-card{width:100%!important;max-width:none!important;max-height:94dvh!important;border-radius:16px 16px 0 0!important}
  .modal-head{padding:14px 15px!important;gap:10px!important}.modal-head h2{font-size:17px!important}.modal-head p{font-size:11px!important}
  .modal-body{padding:15px!important}.modal-foot{padding:11px 14px!important;gap:7px!important;position:sticky;bottom:0;background:#fff;z-index:3}
  .form-grid{grid-template-columns:1fr!important;gap:11px!important}.form-field.full{grid-column:auto!important}

  /* Toasts and fixed helpers should never cover the whole phone. */
  .toast-stack{left:10px!important;right:10px!important;bottom:10px!important}.toast{font-size:12px!important;line-height:1.4}
  .table-export-icons{max-width:100%;overflow-x:auto!important}
  .table-export-icons button{min-height:40px!important;padding:0 10px!important;font-size:10px!important}
}

@media (max-width: 480px){
  .app-shell .topbar{min-height:102px}
  .system-name{font-size:12.5px!important}
  #saasSubscriptionButton{font-size:9.5px!important}
  #app{padding-left:8px!important;padding-right:8px!important}
  .stats{gap:7px!important}
  .stat{padding:10px!important}.stat strong{font-size:17px!important}
  .quick-grid,.module-grid{grid-template-columns:1fr!important}
  .employee-fields{grid-template-columns:1fr!important}.employee-fields .wide,.employee-fields .span-2{grid-column:auto!important}
  .employee-form-main{padding:16px 12px!important}
  .employee-stepper{gap:4px!important;padding:7px!important}.employee-stepper button{min-width:40px!important;padding:5px!important}
  .record-page-head{padding:18px 15px!important;border-radius:15px!important}.record-title h1{font-size:23px!important}.record-title p{font-size:12px!important}
  .record-grid,.record-field-grid,.employee-record-grid{grid-template-columns:1fr!important}
  .mobile-card-table tbody{padding:8px!important;gap:8px!important}
  .mobile-card-table tbody td{grid-template-columns:88px minmax(0,1fr)!important;padding:8px 10px!important}
  .enterprise-report-menu-head{padding:14px!important}.enterprise-report-menu-head strong{font-size:16px!important}
  .modal-backdrop{padding:0!important}.modal-card{max-height:100dvh!important;border-radius:0!important}
}

/* Stand-alone subscription/billing page: mobile only. */
@media (max-width: 650px){
  .shell{padding:13px 10px 34px!important}
  .shell>.topbar{display:flex!important;min-height:0!important;padding:0!important;align-items:stretch!important;gap:11px!important}
  .shell>.topbar h1{font-size:24px!important}
  .shell>.topbar .actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}
  .shell>.topbar .actions .btn{width:100%}
  .accountbar{padding:14px!important;border-radius:14px!important;align-items:flex-start!important;gap:10px!important}.accountbar h2{font-size:17px!important}.accountbar p{font-size:12px!important}.accountbar .badge{flex:0 0 auto}
  .billing-flow{grid-template-columns:1fr!important;gap:8px!important}
  .flow-step{min-height:0!important;padding:12px!important;display:grid;grid-template-columns:30px 1fr;column-gap:10px;align-items:start}.flow-step b{grid-row:1/3;margin:0!important}.flow-step strong{font-size:12px!important}.flow-step span{font-size:10.5px!important}
  .metrics{grid-template-columns:1fr 1fr!important;gap:8px!important}.metric{padding:12px!important}.metric strong{font-size:18px!important}.metric small{font-size:10.5px!important}
  .workspace{grid-template-columns:1fr!important;gap:12px!important}.stack{gap:12px!important}.card{border-radius:14px!important}.cardhead{padding:14px!important}.cardhead h3{font-size:15px!important}.cardhead p{font-size:11.5px!important}.cardbody{padding:14px!important}
  .planrow,.formgrid{grid-template-columns:1fr!important}.plan-actions{display:grid!important;grid-template-columns:1fr}.plan-actions .btn{width:100%}
  .summarybox{padding:12px!important}.sumline{font-size:12px!important}.sumline.total{font-size:14px!important}
  .tablewrap{overflow:visible!important}.tablewrap .mobile-card-table tbody{padding:10px 0!important}
  .payhero{padding:15px!important}.payhero strong{font-size:20px!important}
}
@media (max-width: 390px){.metrics{grid-template-columns:1fr!important}}

/* ===== mobile-home-v1355.css ===== */
/* V13.5.5 fast mobile home. Desktop deliberately unaffected. */
@media (max-width:760px){
  .mobile-home{display:grid;gap:12px}
  .mobile-home-hero{padding:18px 16px 16px;border:1px solid #d2e5e1;border-radius:17px;background:linear-gradient(145deg,#f8fcfb,#eaf8f5);box-shadow:0 8px 24px rgba(18,74,68,.055)}
  .mobile-home-hero>small{display:block;color:#087f75;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-bottom:7px}
  .mobile-home-hero h1{margin:0;color:#17322f;font-size:24px;line-height:1.08;letter-spacing:-.5px}
  .mobile-home-hero>p{margin:8px 0 14px;color:#607572;font-size:12px;line-height:1.45}
  .mobile-home-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .mobile-home-action{appearance:none;border:1px solid #d2e4e0;background:#fff;border-radius:11px;padding:9px 7px;text-align:left;color:#183b37;min-width:0;min-height:69px;display:grid;grid-template-columns:25px minmax(0,1fr);grid-template-rows:auto auto;column-gap:5px;align-items:center}
  .mobile-home-action>span{grid-row:1/3;width:25px;height:25px;border-radius:8px;background:#e8f6f3;color:#087f75;display:grid;place-items:center;font-size:13px;font-weight:800}
  .mobile-home-action strong{font-size:10.5px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-home-action small{font-size:8.5px;line-height:1.2;color:#71837f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-home-card,.mobile-home-payroll{border:1px solid #d6e5e2;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(18,74,68,.04)}
  .mobile-home-section-head{display:flex;align-items:center;justify-content:space-between;padding:13px 14px 10px;border-bottom:1px solid #edf2f1}
  .mobile-home-section-head>div{display:grid;gap:2px}.mobile-home-section-head strong{font-size:13px;color:#173b37}.mobile-home-section-head small{font-size:9.5px;color:#738581}
  .mobile-home-refresh{width:34px;height:34px;border:1px solid #d5e5e1;border-radius:10px;background:#fff;color:#087f75;font-size:18px}
  .mobile-home-metrics{display:grid;grid-template-columns:1fr 1fr}
  .mobile-home-metrics>div{padding:12px 14px;min-width:0;border-bottom:1px solid #edf2f1}
  .mobile-home-metrics>div:nth-child(odd){border-right:1px solid #edf2f1}.mobile-home-metrics>div:nth-last-child(-n+2){border-bottom:0}
  .mobile-home-metrics small{display:block;font-size:9px;color:#6c807c;text-transform:uppercase;letter-spacing:.055em;font-weight:800}
  .mobile-home-metrics strong{display:block;margin:5px 0 1px;font-size:21px;line-height:1;color:#183b37}
  .mobile-home-metrics span{font-size:9.5px;color:#7a8d89}
  .mobile-home-payroll{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px}
  .mobile-home-payroll>div{min-width:0;display:grid;gap:3px}.mobile-home-payroll small{font-size:8.5px;letter-spacing:.08em;color:#71837f;font-weight:800}.mobile-home-payroll strong{font-size:14px;color:#173b37}.mobile-home-payroll span{font-size:9.5px;color:#71837f}
  .mobile-home-payroll button{flex:0 0 auto;border:0;border-radius:10px;background:#087f75;color:white;font-weight:800;font-size:10px;padding:10px 11px}
}
@media (max-width:390px){.mobile-home-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-home-hero h1{font-size:22px}}

/* ===== employee-record-density-fix.css ===== */
/* V13.5.7 · Employee record desktop density fix.
   The employee editor must be comfortable at normal browser zoom while retaining
   the DD/MM/YYYY selector and all existing employee data fields. */

@media (min-width: 761px){
  #app:has(.record-page-form){
    max-width:1720px;
    padding:18px 20px 44px;
  }

  .record-page-head{
    margin:10px 0 12px;
    padding:18px 20px;
    border-radius:16px;
    gap:14px;
  }
  .record-back{font-size:10.5px}
  .record-title{gap:11px}
  .record-title .big-avatar{width:44px;height:44px;border-radius:12px;font-size:13px}
  .record-title span{font-size:8.5px;letter-spacing:.85px}
  .record-title h1{font-size:23px!important;line-height:1.12!important;margin:2px 0 3px}
  .record-title p{font-size:10.5px!important;line-height:1.35!important}
  .profile-completeness{font-size:9px;padding:5px 8px;margin-top:5px}
  .record-head-actions{gap:7px}
  .record-head-actions .btn{padding:8px 11px;font-size:10.5px}

  .record-page-form{gap:9px;padding-bottom:72px}
  .record-page-section{margin-bottom:9px;border-radius:13px}
  .record-section-head{padding:11px 14px}
  .record-section-head h2{font-size:14px!important;line-height:1.2!important}
  .record-section-head p{font-size:9.5px!important;line-height:1.35!important;margin-top:3px}
  .record-source{padding:5px 8px;font-size:8.5px}

  .record-field{padding:9px 11px}
  .record-field>span{margin-bottom:5px;font-size:9px!important;line-height:1.15!important;letter-spacing:.025em!important}
  .record-field>small{margin-top:4px;font-size:8.5px;line-height:1.35}
  .record-field input,.record-field select,.record-field textarea{
    min-height:32px!important;
    padding:6px 7px!important;
    border-radius:7px;
    font-size:11px!important;
    line-height:1.25!important;
  }
  .record-field textarea{min-height:58px!important}

  .record-page-form .k-date{gap:4px}
  .record-page-form .k-date-selects{grid-template-columns:minmax(48px,.72fr) minmax(88px,1.35fr) minmax(66px,.88fr);gap:4px}
  .record-page-form .k-date-unit{gap:2px}
  .record-page-form .k-date-unit>span{font-size:8px!important;letter-spacing:.035em}
  .record-page-form .k-date-selects select,
  .record-page-form .k-date-direct input{
    min-height:32px!important;
    padding:5px 6px!important;
    border-radius:7px;
    font-size:10.5px!important;
    line-height:1.2!important;
  }
  .record-page-form .k-date-direct{gap:2px}
  .record-page-form .k-date-direct output{min-height:11px;font-size:8.5px;line-height:1.25}
  .record-page-form .k-date-error{min-height:0;font-size:8px;line-height:1.2}
  .record-page-form .k-date-error:empty{display:none}

  .record-subsection-head{padding:11px 14px 7px}
  .record-subsection-head h3{font-size:11px}
  .record-subsection-head p{font-size:9px}
  .record-optional>summary{padding:11px 14px;font-size:10px}
  .record-prefill-note{padding:10px 14px}
  .record-prefill-note strong,.record-prefill-note span{font-size:9px}
  .record-readonly-list article,.record-machine-list article{padding:10px 14px}

  .record-savebar{
    right:18px;
    bottom:14px;
    max-width:min(620px,calc(100vw - 290px));
    padding:9px 10px;
    gap:7px;
    border-radius:12px;
  }
  .record-savebar>div{min-width:220px;margin-right:4px}
  .record-savebar strong{font-size:10px}
  .record-savebar span{font-size:8.5px}
  .record-savebar .btn{padding:8px 11px;font-size:10px;white-space:nowrap}
}

/* Avoid squeezing four editor columns into a narrow laptop viewport. */
@media (min-width:761px) and (max-width:1240px){
  .record-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
  .record-field.wide{grid-column:span 2}
  .record-savebar{max-width:calc(100vw - 282px)}
}

@media (min-width:761px) and (max-width:980px){
  .record-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .record-field.wide{grid-column:span 2}
  .record-savebar>div{display:none}
}

/* ===== roster-redesign.css ===== */
/* v13.7.4 — Duty Roster full-width workspace redesign.
   Purpose: never sacrifice roster readability to a permanent two-column support layout. */

/* The roster page is a single reading column. Support content stacks vertically. */
.roster-redesign-shell{display:grid;gap:18px;min-width:0}
.roster-redesign-shell>.panel,.roster-redesign-shell>.stats{min-width:0;width:100%}
.roster-support-grid,.roster-redesign-stack{display:grid!important;grid-template-columns:1fr!important;gap:18px!important}
.roster-wide-panel{width:100%;min-width:0}

/* Compact action strip: alerts are available without permanently consuming page width. */
.roster-focus-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin:0;background:linear-gradient(120deg,#eff9f6,#fff);border:1px solid #d8ebe6}
.roster-focus-copy{display:flex;align-items:center;gap:12px;min-width:0}
.roster-focus-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#dff2ed;color:#087f75;font-weight:900;flex:0 0 auto}
.roster-focus-copy strong{display:block;font:800 13px Manrope,sans-serif;color:#173f3b}
.roster-focus-copy small{display:block;margin-top:2px;font-size:10.5px;line-height:1.45;color:#647b77}
.roster-checks-toggle{display:inline-flex;align-items:center;gap:9px;min-height:40px;white-space:nowrap}
.roster-checks-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#eef4f2;color:#315e58;font-size:10px;font-weight:800}
.roster-checks-toggle.has-alerts .roster-checks-count{background:#fde8ea;color:#b7333f}

/* Shift overview: departments are NEVER presented as two narrow cards. */
#rosterDailyOverview{padding:0!important}
.roster-daily-grid,.roster-daily-grid.single{display:grid!important;grid-template-columns:1fr!important;gap:18px!important;padding:18px!important;background:#eef6f3!important}
.daily-department-card{width:100%;min-width:0;border-radius:16px;border:1px solid rgba(91,137,130,.24);box-shadow:0 8px 24px rgba(20,63,59,.07);overflow:hidden;background:#fff}
.daily-department-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;background:linear-gradient(120deg,#eaf7f3,#fff);border-bottom:1px solid #dce9e6}
.daily-department-title-wrap{min-width:0}
.daily-department-head strong{font:800 15px/1.3 Manrope,sans-serif;color:#123f3a;white-space:normal}
.daily-department-head small{font-size:10.5px;line-height:1.45;color:#607873;margin-top:3px}
.daily-department-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;flex:0 0 auto}
.daily-department-meta .tag{white-space:nowrap}
.daily-coverage-chip{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:5px 9px;border-radius:999px;background:#f1f6f5;color:#446661;font-size:9.5px;font-weight:800;white-space:nowrap}
.daily-coverage-chip.alert{background:#fde8ea;color:#b7333f}

/* Three genuinely wide shift zones. We skip the awkward 2-column breakpoint entirely. */
.daily-shift-columns{display:grid!important;grid-template-columns:repeat(3,minmax(250px,1fr))!important;gap:0;overflow-x:auto;background:#fff}
.daily-shift-columns>section{min-width:250px;padding:16px 18px!important;border-right:1px solid #e3ece9!important;border-bottom:0!important;background:#fff}
.daily-shift-columns>section:last-child{border-right:0!important}
.daily-shift-columns>section.night{background:#fcfbff}
.daily-shift-columns>section.on-call{background:#fbfdff}
.daily-shift-columns header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px!important}
.daily-shift-columns header>div{min-width:0}
.daily-shift-columns header strong{display:block;font:800 12px/1.3 Manrope,sans-serif;color:#173f3b;white-space:nowrap}
.daily-shift-columns header small{display:block;margin-top:2px;font-size:9px;color:#78908b}
.daily-shift-columns header span{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px!important;font-size:9.5px!important;line-height:1;border-radius:999px;background:#edf5f2;font-weight:800;white-space:nowrap}
.daily-shift-columns header span.unconfigured{background:#f1f4f3;color:#71807d}
.daily-shift-columns header span.gap{background:#fde8ea;color:#b7333f}
.daily-shift-columns ul{display:grid;gap:9px!important;margin:0;padding:0;list-style:none}
.daily-shift-columns li{min-width:0;padding:10px 11px!important;border:1px solid #e5edeb;border-radius:10px!important;background:#f9fbfa!important}
.daily-shift-columns li span{display:block;font-size:11.5px!important;line-height:1.4!important;font-weight:800;color:#264a45;white-space:normal;word-break:normal;overflow-wrap:break-word}
.daily-shift-columns li small{display:block;margin-top:3px;font-size:9.5px!important;line-height:1.45!important;color:#6f827e;white-space:normal;word-break:normal;overflow-wrap:break-word}
.daily-shift-columns li.empty{display:flex;flex-direction:column;justify-content:center;min-height:64px;border-style:dashed;background:#fbfcfc!important}
.daily-shift-columns li.empty span{color:#6b7774}
.daily-shift-columns li.empty small{color:#b7333f}
.daily-shift-columns .roster-attendance-state{margin-top:6px;padding-top:6px;border-top:1px solid #e5edeb;color:#3d655f}
.daily-shift-columns .roster-attendance-state.absent{color:#c63e49;font-weight:800}
.daily-shift-columns .leadership-badges{display:flex!important;gap:5px;flex-wrap:wrap}
.daily-shift-columns .leadership-badge{display:inline-flex!important;width:auto;padding:3px 6px;border-radius:999px;background:#e8f5f2;color:#087f75;font-size:8.5px!important;line-height:1.2!important}
.shift-lead-button{width:100%;margin-top:10px;min-height:36px}

/* The monthly table retains horizontal scrolling rather than compressing columns. */
.roster-planner-panel{min-width:0}
.monthly-roster-scroll{width:100%;overflow:auto;max-height:70vh}
.monthly-roster-table th,.monthly-roster-table td{min-width:108px}
.monthly-roster-table .employee-no{min-width:92px;max-width:92px}
.monthly-roster-table .employee-name{left:92px;min-width:190px;max-width:190px}
.monthly-roster-table .employee-position{left:282px;min-width:160px;max-width:160px}
.roster-code-table .employee-position{left:282px}

/* Roster checks are an overlay drawer, so warnings cannot squeeze the roster. */
.roster-checks-backdrop{position:fixed;inset:0;background:rgba(6,43,39,.34);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:1190}
.roster-checks-backdrop.open{opacity:1;pointer-events:auto}
.roster-checks-drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,92vw);z-index:1200;background:#fff;box-shadow:-18px 0 48px rgba(13,57,52,.18);transform:translateX(104%);transition:transform .2s ease;display:flex;flex-direction:column;overflow:hidden}
.roster-checks-drawer.open{transform:translateX(0)}
.roster-checks-drawer[hidden]{display:none!important}
.roster-checks-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px;border-bottom:1px solid #dfeae7;background:linear-gradient(120deg,#eaf7f3,#fff)}
.roster-checks-drawer-head h2{margin:0;font:800 18px/1.25 Manrope,sans-serif;color:#123f3a}
.roster-checks-drawer-head p{margin:5px 0 0;font-size:11px;line-height:1.5;color:#637a76}
.roster-checks-drawer-body{padding:16px 18px 28px;overflow:auto;flex:1}
.roster-checks-drawer .roster-warning-list{gap:10px}
.roster-checks-drawer .roster-warning-list article{padding:12px 13px;border-radius:11px}
.roster-checks-drawer .roster-warning-list strong{font-size:11px}
.roster-checks-drawer .roster-warning-list p{font-size:10.5px;line-height:1.45}
body.roster-checks-open{overflow:hidden}

/* Full-width support panels; no permanent equal columns anywhere on the Duty Roster page. */
.roster-lower-stack{display:grid;grid-template-columns:1fr;gap:18px}
.roster-lower-stack>.panel{min-width:0;width:100%}
#monthlyRosterWorkload,#monthlyRosterHistory{min-width:0}

/* At smaller widths, shift zones stack 1-per-row — never 2 squeezed columns. */
@media(max-width:900px){
  .daily-shift-columns{grid-template-columns:1fr!important;overflow:visible}
  .daily-shift-columns>section{min-width:0;border-right:0!important;border-bottom:1px solid #e3ece9!important}
  .daily-shift-columns>section:last-child{border-bottom:0!important}
  .daily-department-head{align-items:flex-start;flex-direction:column}
  .daily-department-meta{justify-content:flex-start}
  .roster-focus-strip{align-items:flex-start;flex-direction:column}
  .roster-checks-toggle{width:100%;justify-content:center}
}
@media(max-width:760px){
  .roster-daily-grid,.roster-daily-grid.single{padding:10px!important;gap:12px!important}
  .daily-department-head{padding:14px}
  .daily-shift-columns>section{padding:14px!important}
  .monthly-roster-table .employee-name{left:0;min-width:176px;max-width:176px}
  .monthly-roster-table .employee-no,.monthly-roster-table .employee-position{display:none}
  .roster-checks-drawer{width:100vw}
}


/* ===== attendance-bulk-actions.css ===== */
.attendance-bulkbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fbfa}.attendance-bulkbar label{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700;color:#385552}.attendance-bulkbar input[type=checkbox],.attendance-select-cell input[type=checkbox]{width:16px;height:16px;accent-color:var(--teal);cursor:pointer}.attendance-bulkbar span{font-size:9px;color:var(--muted);margin-right:auto}.attendance-bulkbar .btn:disabled{opacity:.45;cursor:not-allowed}.attendance-select-cell{width:34px;text-align:center}.attendance-shift-summary span{display:block;margin-top:6px;font-size:8px;color:var(--muted)}.attendance-shift-summary strong{margin-top:3px}.attendance-shift-summary em{font-style:normal}.attendance-filterbar #attendanceClearFilters{white-space:nowrap}@media(max-width:760px){.attendance-bulkbar{align-items:stretch}.attendance-bulkbar span{width:100%;margin-right:0}.attendance-bulkbar .btn{flex:1}.attendance-select-cell{position:sticky;left:0;background:#fff}}

/* ===== v13.7.7-executive-shift-full-width.css ===== */


/* v13.7.7 — Executive Overview shift cards must never return to a 2-column squeeze. */
.dashboard-shift-overview .panel-body{min-width:0}
.dashboard-shift-grid{display:grid!important;grid-template-columns:1fr!important;gap:18px!important;min-width:0;width:100%}
.dashboard-shift-grid>.daily-department-card{width:100%;min-width:0}
.dashboard-shift-overview .daily-shift-columns{grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible}
.dashboard-shift-overview .daily-shift-columns>section{min-width:0}
@media(max-width:900px){
  .dashboard-shift-overview .daily-shift-columns{grid-template-columns:1fr!important}
}
