/* WN Attendance v142: consolidated active UI stylesheets.
   Rules remain in original cascade order; section comments identify ownership.
   Safe for edits: do not reorder sections without a visual regression test. */

/* ===== 01. ORIGINAL SOURCE: assets/style.css ===== */
/* AttendanceOS Enterprise UI v43 — a complete, single-source design system.
   All prior style overrides have been replaced, not appended. */
:root{
  color-scheme:light;
  --navy:#101f37;--navy-2:#162b49;--navy-3:#1c385b;
  --primary:#4165d7;--primary-dark:#3154c5;--primary-light:#edf2ff;
  --orange:#ed7652;--text:#172b46;--muted:#6e7f98;--faint:#9aa8bb;
  --bg:#f3f6fb;--surface:#fff;--subtle:#f7f9fd;--border:#dfe7f1;
  --success:#098e68;--danger:#cd4b4f;--warning:#c4871e;
  --radius:15px;--radius-small:10px;--shadow:0 5px 24px rgba(20,45,82,.045);
  --font:Inter,"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--text);font:13px/1.55 var(--font);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer}button:disabled{opacity:.50;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9bb5ff;outline-offset:2px}
h1,h2,h3,h4,h5,p{margin:0}h1,h2,h3,h4{color:var(--text);letter-spacing:-.035em}h1{font-size:clamp(23px,2.1vw,30px);line-height:1.23;font-weight:800}h3{font-size:16px;font-weight:750}h4{font-size:13px;font-weight:750}p{color:var(--muted)}small{font-size:11px;color:var(--muted)}.hidden,.v14-tab-hidden{display:none!important}
/* v64: permission-hidden was added by the access-control JS but never styled. */
.permission-hidden,[hidden]{display:none!important}
.permissions-pending #nav,.permissions-pending .mobile-bottom-nav{visibility:hidden!important}
::selection{background:#b9caff;color:#0d2544}
/* A single desktop navigation, not a duplicated branding block. */
.shell{display:flex;align-items:stretch;min-height:100dvh;width:100%}
.sidebar{flex:0 0 270px;width:270px;background:linear-gradient(180deg,#101f37 0%,#172c4b 100%);color:#d5e0ee;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-color:#39506b transparent;scrollbar-width:thin;z-index:45}
.brand{min-height:96px;padding:25px 19px 21px;display:flex;align-items:center;gap:13px;border-bottom:1px solid #ffffff16;flex-shrink:0}
.sidebar-logo,.logo{width:45px;height:45px;flex:0 0 45px;border-radius:13px;object-fit:contain;display:grid;place-items:center;background:#ffffff12;color:#f2f7ff;border:1px solid #ffffff20;font-size:25px}
.brand>div:last-of-type{min-width:0;flex:1}.brand strong{display:block;color:#fff;font-weight:800;font-size:14px;line-height:1.38;overflow-wrap:anywhere;letter-spacing:-.025em}
.brand small{display:block;margin-top:4px;letter-spacing:1.2px;font-size:9px;color:#94adcd;text-transform:uppercase}
/* IDs remain in the DOM for the existing branding API, without repeated branding on screen. */
.workspace{display:none!important}
.sidebar .nav-label{display:block;padding:24px 25px 10px;font-size:10px;color:#819bbd;font-weight:850;letter-spacing:1.7px}
.sidebar .nav-label.second{padding-top:23px}
#nav{display:block;padding:0 10px}.nav-item{display:flex;align-items:center;width:100%;min-height:43px;gap:11px;margin:2px 0;border:0;background:transparent;color:#bacce2;padding:10px 13px;border-radius:10px;font-size:12px;font-weight:650;text-align:left;transition:background .15s ease,color .15s ease}
.nav-item>span:first-child{width:21px;min-width:21px;display:grid;place-items:center;font-size:17px;line-height:1;color:inherit}
.nav-item svg{display:block;width:19px;height:19px;stroke:currentColor;stroke-width:1.85;fill:none;stroke-linecap:round;stroke-linejoin:round}
.nav-item:hover{background:#ffffff10;color:#fff}.nav-item.active{background:linear-gradient(95deg,#345ac6,#486be2);color:#fff;box-shadow:inset 3px 0 var(--orange),0 7px 16px #06163022}
.sidebar-bottom{margin-top:auto;padding:14px 12px 18px;border-top:1px solid #ffffff16}.side-status{display:flex;align-items:center;gap:11px;border-radius:11px;background:#ffffff08;border:1px solid #ffffff14;padding:12px;margin-bottom:12px}
.side-status b{display:block;color:#ecf3fc;font-size:11px}.side-status small{display:block;color:#93aaca;font-size:10px;margin-top:3px}.status-dot,.notify-led{display:inline-block;width:9px;height:9px;border-radius:50%;background:#25c996;box-shadow:0 0 0 4px #25c99620;flex-shrink:0}
#logout{margin:0;width:100%}.v37-sidebar-credit{margin:14px 4px 0;border-top:1px solid #ffffff17;padding:17px 10px 0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.v37-sidebar-credit span{font-size:9px;color:#86a0c1;letter-spacing:.7px;font-weight:750}.v37-sidebar-credit strong{color:white;font-size:12px;font-weight:800}.v37-sidebar-credit small{font-size:10px;color:#adc1dd}
.mobile-drawer-close,.mobile-shade,.mobile-menu,.mobile-bottom-nav{display:none}
/* Workspace and top bar */
.main-wrap{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:69px;position:sticky;top:0;z-index:35;padding:0 clamp(18px,2.7vw,42px);background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px}
.breadcrumbs{color:#9aa7b8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumbs span{margin:0 12px;color:#c4cfdb}.breadcrumbs strong{color:#263b59;font-weight:750}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.today{color:#8190a5;font-size:11px;white-space:nowrap}.divider-v{height:22px;width:1px;background:var(--border)}.avatar{width:35px;height:35px;flex:0 0 35px;border-radius:11px;display:grid;place-items:center;background:var(--primary-light);color:var(--primary-dark);font-weight:800;font-size:11px}.admin-label{font-size:12px;font-weight:750;color:#374963;white-space:nowrap}
.notification-bell,.scan-monitor-toggle,.mobile-menu{position:relative;border:1px solid var(--border);background:#fff;border-radius:11px;min-width:39px;height:39px;display:grid;place-items:center;color:#47607f;box-shadow:0 3px 9px #1c355007}.notification-bell i{position:absolute;right:7px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--orange)}
.mobile-menu{display:none}
.header-live-controls{position:relative}.scan-monitor-toggle{display:flex;align-items:center;gap:6px;padding:0 12px;min-width:0;font-weight:750;font-size:11px;color:#158362}.scan-monitor-toggle:not(.hidden){display:flex}.scan-notify-controls{position:absolute;top:48px;right:-55px;width:min(380px,calc(100vw - 26px));background:#fff;box-shadow:0 18px 44px #182d4850;border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;z-index:120}
.scan-notify-controls .notify-title{display:flex;align-items:center;gap:9px;color:#183853;font-weight:800;width:100%}.scan-notify-controls label{display:flex;gap:8px;align-items:center;font-size:11px;white-space:nowrap;font-weight:600}.scan-notify-controls input{width:auto}.live-status{font-size:10px;font-weight:750;color:var(--success)}.live-status[data-state="error"]{color:var(--danger)}.live-scan-last{width:100%;font-size:11px;color:var(--muted)}.notify-test{border:1px solid #cddafa;background:#eff4ff;color:#3656a8;padding:8px 12px;border-radius:9px;font-size:11px;font-weight:750}
.content{width:100%;max-width:1900px;margin:0 auto;padding:29px clamp(17px,2.7vw,42px) 35px;min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head p{margin-top:7px;font-size:12px}.eyebrow{color:var(--orange)!important;letter-spacing:2.1px;font-size:10px;font-weight:850;margin-bottom:9px}.head-actions,.inline-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border-radius:10px;border:1px solid var(--border);background:#fff;color:#304b70;font-weight:750;font-size:11px;min-height:39px;line-height:1.2;box-shadow:none;transition:transform .15s ease,background .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:hover:not(:disabled){background:#f2f6ff;border-color:#c1d1ee;transform:translateY(-1px)}.btn.primary{color:#fff;background:linear-gradient(120deg,#3358ce,#5173e3);border-color:#3c60d2;box-shadow:0 6px 13px #345bd820}.btn.primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn.ghost{background:#fff}.btn.tiny{min-height:32px;padding:7px 10px;font-size:10px}.btn.full{width:100%}
.notice,.info-banner{padding:12px 15px;background:#ebf2ff;color:#425f96;border:1px solid #d8e5ff;border-radius:11px;margin-bottom:16px;font-size:11px;line-height:1.65}.notice.bad,.error{color:#b4474b;background:#fff0ef;border-color:#f9d8d6}.info-banner.warn{background:#fff6e9;color:#95681f;border-color:#ffebcc}.error:empty{display:none}.error:not(:empty){padding:10px 12px;border-radius:8px}
/* Unified surfaces and content hierarchy */
.panel,.kpi,.v30-rank-card,.v30-insight-stat,.roster-summary-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{min-width:0;overflow:hidden;margin-bottom:19px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 22px;border-bottom:1px solid #edf1f7}.panel-head h3{font-size:15px}.panel-head p{font-size:11px;margin-top:3px}.panel-head>*{min-width:0}.pill{display:inline-flex;align-items:center;border:1px solid #dce5f1;border-radius:99px;background:#f3f6fb;color:#5c6f8c;padding:6px 10px;font-size:10px;font-weight:800;white-space:nowrap}.pill.green{color:var(--success);border-color:#c3e8da;background:#eaf9f2}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.kpi{padding:20px 19px 15px;position:relative;transition:transform .18s ease,box-shadow .18s ease}.kpi:hover{transform:translateY(-2px);box-shadow:0 11px 30px #233e6220}.kpi::before{content:"";position:absolute;left:18px;top:0;width:48px;height:3px;background:#476bdd;border-radius:0 0 6px 6px}.kpi:nth-child(2)::before{background:#12a17c}.kpi:nth-child(3)::before{background:#8660d9}.kpi:nth-child(4)::before{background:#e7a138}
.kpi-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#556983;font-size:11px;font-weight:700}.kpi-icon{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;background:#edf2ff;color:#4065d7;font-size:19px}.kpi-icon.mint{background:#e9f9f2;color:#0e9b74}.kpi-icon.violet{background:#f2edff;color:#7955cb}.kpi-icon.amber{background:#fff4e4;color:#ba7d16}.kpi strong{font-size:clamp(25px,2.3vw,34px);line-height:1.2;display:block;letter-spacing:-1.8px;margin:12px 0 5px;font-weight:850}.kpi small{font-size:11px}.kpi-foot{margin-top:17px;padding-top:12px;border-top:1px solid #edf1f6;font-size:10px;color:#8293aa}
.two-cols,.timeline-grid,.device-grid,.settings-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:17px;align-items:start}.device-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.view>.panel{margin-bottom:18px}.chart{height:275px;display:flex;align-items:flex-end;gap:7px;padding:18px 20px 25px;background:repeating-linear-gradient(0deg,#f0f4fa 0 1px,transparent 1px 54px)}.chart-col{display:flex;align-items:center;justify-content:flex-end;flex-direction:column;flex:1;height:100%;gap:7px;min-width:0}.chart-col small{font-size:9px}.bars{display:flex;justify-content:center;align-items:end;height:100%;width:100%;gap:2px}.bar{max-width:20px;width:36%;min-height:2px;background:#4770e5;border-radius:5px 5px 0 0}.bar.alt{background:#b2c5f5}.legend{display:flex;align-items:center;gap:7px;color:#7688a1;padding:12px 22px;font-size:11px}.legend i{width:8px;height:8px;border-radius:50%;background:#4165d7}.legend i.second{margin-left:13px;background:#b2c5f5}
.health-graphic{display:grid;place-items:center;padding:20px 0}.ring{width:165px;height:165px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#4a6fde 0%,#edf1f7 0)}.ring>div{width:125px;height:125px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:white}.ring b{font-size:28px;font-weight:850}.ring small{font-size:10px}.health-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 22px;padding:12px 0;border-bottom:1px solid #edf1f7;font-size:11px;color:var(--muted)}.health-row b{font-size:11px;color:var(--text);text-align:right}.health-warning{margin:15px 22px;background:#fff5e8;color:#93671d;border-radius:9px;padding:12px;font-size:11px}
/* All tabular data: consistent headers, focus, hover, sticky and usable scrolling. */
.table-scroll,.v31-summary-scroller,.roster-scroll{max-width:100%;overflow:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-color:#bac9e1 transparent;scrollbar-width:thin}table{width:100%;border-collapse:separate;border-spacing:0;min-width:690px}thead th,th{position:sticky;top:0;z-index:3;background:#f4f7fc;color:#647994;text-align:left;padding:13px 15px;white-space:nowrap;text-transform:uppercase;font-size:10px;letter-spacing:.7px;font-weight:800;border-bottom:1px solid #e3eaf4}td{font-size:11px;padding:13px 15px;color:#4b607a;border-bottom:1px solid #eaf0f6;vertical-align:middle}tbody tr:nth-child(even){background:#fcfdff}tbody tr:hover{background:#f3f7ff}tbody tr:last-child td{border-bottom:0}
.person{display:flex;align-items:center;gap:10px;color:#273f5b;font-weight:750}.person-icon,.feed-avatar{width:37px;height:37px;display:grid;place-items:center;flex-shrink:0;border-radius:11px;background:#e9f0ff;color:#3d60bb;font-weight:800;font-size:11px}.tag{display:inline-flex;align-items:center;border-radius:8px;background:#edf2ff;padding:5px 9px;color:#4a63b4;font-size:10px;font-weight:800}.tag.green{background:#e5f7f0;color:#138765}.text-btn{border:0;background:transparent;color:var(--primary);font-size:11px;font-weight:800}.text-btn:hover{text-decoration:underline}
.filters,.v30-filterbar,.v31-summary-filter,.daily-filters{display:flex;align-items:flex-end;gap:11px;flex-wrap:wrap;padding:18px 22px}.filters label,.v30-filterbar label,.v31-summary-filter label,.daily-filters label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#63758e;font-weight:650;min-width:130px;flex:0 1 auto}.search{min-width:205px}
/* Reports & Analytics: independent sections, no collapsing heading/form spacing */
#view-reports .panel-head{padding-bottom:19px}
#view-reports .report-period{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:19px 22px 22px;border-bottom:1px solid #e7edf6;background:#fff}
#view-reports .report-period>label{display:flex;flex-direction:column;gap:7px;min-width:160px;flex:0 1 185px;color:#63758e;font-size:11px;font-weight:700}
#view-reports .report-period>label>input{width:100%}
#view-reports .report-period>.btn{align-self:flex-end}
#view-reports .hr-export-box{margin:22px;border:1px solid #dce6f5;border-radius:15px;background:linear-gradient(140deg,#f8fbff,#fff);padding:20px 21px 17px;min-width:0}
#view-reports .hr-export-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;min-width:0}
#view-reports .hr-export-icon{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border-radius:11px;background:#e8efff;color:#4165d7;font-size:19px}
#view-reports .hr-export-head>div:last-child{min-width:0;flex:1}
#view-reports .hr-export-head h3{font-size:15px;font-weight:800;line-height:1.35;margin:0 0 6px;color:#1d3d60}
#view-reports .hr-export-head p{margin:0;font-size:11px;line-height:1.65;color:#6d819a}
#view-reports .hr-export-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:0;margin:0 0 15px}
#view-reports .hr-export-controls>label{display:flex;flex-direction:column;gap:7px;color:#60758e;font-size:11px;font-weight:700;flex:0 1 205px;min-width:160px}
#view-reports .hr-export-controls>label>select,#view-reports .hr-export-controls>label>input{width:100%;min-width:0}
#view-reports .hr-export-controls>.btn{align-self:flex-end;min-height:40px}
#view-reports .hr-export-footnote{display:block;margin-top:3px;padding:12px 14px;background:#edf3ff;border:1px solid #dce7f8;border-radius:10px;color:#607b9d;line-height:1.6;font-size:10px}
#view-reports .report-guidance{margin:0 22px 20px;line-height:1.65}
#view-reports .table-scroll{margin-top:0}
#view-reports .panel>.report-period+.hr-export-box{margin-top:22px}

input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea{border:1px solid #d7e2f0;border-radius:10px;background:#fff;color:#263e5b;padding:10px 12px;min-height:39px;max-width:100%;outline:none;transition:border-color .16s,box-shadow .16s}
input:focus,select:focus,textarea:focus{border-color:#7291e5;box-shadow:0 0 0 3px #4165d71b}input[type="checkbox"],input[type="radio"]{accent-color:var(--primary)}textarea{resize:vertical}.pagination,.v31-history-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 22px;font-size:11px;color:var(--muted)}.pagination>div{display:flex;align-items:center;gap:10px}
/* Insights, ranking, overview */
.v30-filterbar{border-bottom:1px solid #edf1f7}.v30-insight-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:18px 22px}.v30-insight-stat{box-shadow:none;padding:17px 18px;border-left:3px solid #4068dc}.v30-insight-stat.green{border-left-color:#12a17e}.v30-insight-stat.red{border-left-color:#d86262}.v30-insight-stat small,.v30-insight-stat span{display:block;font-size:11px;color:#708198;line-height:1.45;margin-bottom:3px}.v30-insight-stat strong{display:block;font-size:27px;font-weight:850;margin:6px 0 2px}.v30-rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 22px 16px}.v30-rank-card{min-width:0;box-shadow:none;overflow:hidden}.v30-rank-head{display:flex;gap:11px;align-items:flex-start;padding:16px}.v30-rank-head h4{font-size:12px}.v30-rank-head p{font-size:10px;margin-top:3px}.v30-medal{display:grid;place-items:center;background:#e6f8f0;color:#0c8b65;width:35px;height:35px;border-radius:10px;font-size:18px;flex-shrink:0}.v30-medal.coral{background:#fff0eb;color:#d5674b}.v30-medal.violet{background:#f1eefe;color:#795ac3}.v30-departments{margin:0 22px 16px}.v30-explainer{margin:0 22px 21px;border-radius:10px;padding:12px;background:#f4f7ff;color:#627594;font-size:11px}.v30-good{color:var(--success);font-weight:800}.v30-rate{font-size:10px;font-weight:700;color:var(--muted)}
/* Live timeline and popup notifications */
.timeline-main,.timeline-aside{min-width:0}.timeline-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:14px 19px}.timeline-controls label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#6c7d94}.timeline-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:0 19px 14px}.timeline-stats>div{background:#f7f9fe;border:1px solid #e6edf6;border-radius:11px;padding:12px;font-size:11px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.timeline-stats>div>small{display:block;font-size:10px;line-height:1.4;color:#7388a4}
.timeline-stats>div>strong{display:block;font-size:17px;line-height:1.25;color:#1f3d61;font-weight:800}.timeline-hint{padding:11px 15px;margin:0 19px 12px;background:#f1f5fc;border-radius:9px;color:#637692;font-size:11px}.timeline-items{max-height:min(66vh,760px);overflow:auto;overscroll-behavior-y:auto;padding:0 19px 17px;scrollbar-color:#c7d3e5 transparent}.feed-item{display:flex;gap:11px;align-items:center;min-height:68px;border-bottom:1px solid #e8eef6;padding:11px 2px}.feed-item:hover{background:#f6f9ff}.feed-person{min-width:0;flex:1}.feed-person b{display:block;font-size:12px;color:#1d3555}.feed-person small{display:block;font-size:10px;margin-top:3px;line-height:1.4}.feed-end{text-align:right;white-space:nowrap;font-size:12px;font-weight:800;color:#24476c}.feed-end small{display:block;color:#7789a4;font-size:9px;font-weight:650}.feed-arrow{font-size:19px;color:#95a9c7}.feed-repeat{color:#b78127!important}.timeline-empty,.daily-empty{padding:33px 20px;text-align:center;color:#8190a7;font-size:12px}.late-panel{padding-bottom:15px}
/* Notification Center v55 — anchored popover, independent of page or footer layout */
.notification-center{position:fixed;z-index:310;top:72px;right:clamp(12px,2vw,28px);width:min(410px,calc(100vw - 24px));max-height:min(72dvh,640px);display:flex;flex-direction:column;overflow:hidden;border-radius:18px;border:1px solid #dce6f3;background:#fff;box-shadow:0 24px 65px rgba(9,27,54,.24);color:#1b304a}
.notification-center.hidden{display:none!important}
.notification-center-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 17px 14px;border-bottom:1px solid #e8eef7;background:linear-gradient(180deg,#fff,#f8faff)}
.notification-center-heading{display:flex;align-items:center;gap:11px;min-width:0}
.notification-center-icon{width:39px;height:39px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;color:#315bc4;background:#ecf2ff;font-size:19px}
.notification-center-heading strong{display:block;color:#1b3555;font-size:13px;font-weight:850;line-height:1.35}
.notification-center-heading small{display:block;font-size:10px;color:#7b8da7;margin-top:3px;line-height:1.35}
.notification-center-close{flex-shrink:0;width:35px;height:35px;display:grid;place-items:center;border:1px solid #dbe5f2;border-radius:10px;background:#fff;color:#57718e;font-size:13px}
.notification-center-close:hover{background:#f0f5fd}
.notification-center-list{overflow-y:auto;overflow-x:hidden;min-height:0;overscroll-behavior:contain;padding:8px 14px 10px}
.notification-center-empty{padding:24px 12px;text-align:center;color:#7086a3;font-size:12px;line-height:1.6}
.notification-center-row{display:flex;align-items:center;gap:11px;padding:12px 5px;border-bottom:1px solid #edf2f8}
.notification-center-row:last-child{border-bottom:0}
.notification-center-avatar{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:11px;background:#eaf0ff;color:#3b5bc0;font-size:11px;font-weight:800}
.notification-center-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.notification-center-copy strong{display:block;color:#1e3552;font-size:12px;overflow-wrap:anywhere}
.notification-center-copy small{display:block;color:#70849d;font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.notification-center-copy time{display:block;color:#4673b5;font-size:10px;font-variant-numeric:tabular-nums}
.notification-center-foot{flex-shrink:0;padding:12px 17px;color:#6e83a1;background:#f6f9ff;border-top:1px solid #e7edf7;font-size:10px;line-height:1.5}
@media(max-width:780px){.notification-center{top:65px;right:12px;max-height:min(66dvh,580px);border-radius:16px}.notification-center-head{padding:13px 14px}.notification-center-foot{padding:11px 14px}}

.scan-toast{position:fixed;top:83px;right:23px;z-index:250;width:min(385px,calc(100vw - 30px));border:1px solid #cfe1dc;background:#fff;border-left:4px solid #10a77f;border-radius:16px;padding:18px;box-shadow:0 15px 45px #19375336}.scan-toast-head{font-size:12px;font-weight:850;color:#087c5c;margin-bottom:12px}.scan-toast-person{display:flex;gap:11px;align-items:center}.scan-toast-foot{font-size:10px;color:#657a91;margin-top:13px;border-top:1px solid #e5edf3;padding-top:12px}
/* Daily Attendance */
.daily-panel .panel-head{border-bottom:0}.daily-filters{padding-top:11px}.daily-provisional{color:#956c22;background:#fff6e8;padding:7px 11px;border-radius:99px;font-size:10px;font-weight:750}.daily-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:0 21px 14px}.daily-kpi{background:#f7f9fd;border:1px solid #e0e8f4;border-radius:13px;padding:14px}.daily-kpi small{display:block;color:#687c95;font-size:11px}.daily-kpi strong{display:block;font-size:25px;letter-spacing:-1px;margin-top:7px;color:#173958}.daily-guide{margin:0 21px 15px;background:#edf3fc;padding:12px;border-radius:9px;color:#5c7291;font-size:11px}.daily-table{min-width:880px}.daily-table td:first-child small,.daily-table td:nth-child(3) small{display:block;margin-top:4px;color:#7990aa;line-height:1.4}.daily-table td:first-child b{display:block;color:#213b5c;font-size:12px}.daily-badge{border-radius:8px;padding:5px 9px;font-size:10px;font-weight:800;display:inline-flex;background:#edf3fb;color:#506887}.daily-badge.green,.daily-badge.ok{background:#e7f7ee;color:#07865d}.daily-badge.warning,.daily-badge.orange{background:#fff1da;color:#a4751f}.daily-badge.red{background:#ffebeb;color:#bd3f46}.daily-red{color:#c74649;font-weight:850}.daily-orange{color:#ad7425;font-weight:850}.daily-bottom{padding:13px 20px}.daily-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.daily-detail-grid>div{background:#f5f8fd;border:1px solid #e4ebf5;padding:14px;border-radius:12px;display:flex;flex-direction:column;gap:7px;align-items:flex-start;min-width:0}
.daily-detail-grid>div>small{display:block;font-size:11px;color:#7085a0;line-height:1.4}
.daily-detail-grid>div>strong{display:block;color:#183757;font-size:15px;line-height:1.4;font-weight:800;overflow-wrap:anywhere}.daily-modal-note{margin-top:15px;background:#fff7e9;padding:12px;border-radius:10px;color:#8b6829}.daily-scans{max-height:250px;overflow-y:auto}.daily-scan{padding:11px 12px;border-bottom:1px solid #e6ebf2;display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.daily-scan>span:first-child{font-weight:800;color:#244565;min-width:72px}
.daily-scan>small{font-size:10px;line-height:1.45;color:#758ba4}
.daily-scan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px 15px;flex-wrap:wrap}
.daily-scan-head>strong{display:block}
.daily-scan-head>small{display:block;line-height:1.45}.daily-scan-head{font-weight:750;margin-top:18px}.daily-modal-badges{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
/* Employees, directory and Summary */
.bulk-toolbar,.employee-actionbar,.v30-log-selection,.v31-selection-note{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 18px;background:#edf3ff;border-block:1px solid #dbe7fc;color:#35547e;font-size:11px}.bulk-selection{font-weight:750}.employee-type-badge{display:inline-flex;background:#edf2ff;color:#4263b5;border-radius:9px;font-size:10px;padding:6px 9px;font-weight:800}.v31-summary-filter{border-bottom:1px solid #edf1f7}.v31-summary-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:15px 22px}.v31-summary-stats>div,.v31-detail-cards>div{background:#f6f8fc;border:1px solid #e4ebf4;border-radius:12px;padding:13px}
.v31-summary-stats>div{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.v31-summary-stats>div>small{display:block;margin:0;line-height:1.4}
.v31-summary-stats>div>strong{display:block;margin:0;line-height:1.25}.v31-summary-stats strong{display:block;color:var(--text);font-size:21px}.v31-summary-table{min-width:910px}.v31-name{font-weight:800;color:#213c5c;min-width:0}
.v31-name .person{margin-bottom:6px}
.v31-name>small{display:block;font-size:10px;line-height:1.5;font-weight:500;color:#7187a3}
.v31-lastscan{display:flex;flex-direction:column;gap:5px}
.v31-lastscan>strong{display:block;font-size:12px;line-height:1.3;color:#244467}
.v31-lastscan>small{display:block;font-size:10px;line-height:1.3;color:#8192a9}
.daily-table td:first-child b,.daily-table td:nth-child(3)>strong{display:block;line-height:1.35;margin-bottom:4px}
.daily-table td:first-child small,.daily-table td:nth-child(3)>small{display:block;line-height:1.45;color:#8194ae}
.roster-totals-table td:nth-child(2)>small{display:block;margin-top:4px;font-size:10px;color:#8194ae}.v31-dept{font-size:10px;color:#7a8ca3}.v31-row-actions{display:flex;gap:7px}.v31-summary-footnote{font-size:11px;padding:13px 22px;color:#7b8da3}.v31-detail-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.v31-detail-cards>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:7px;min-width:0;min-height:94px;padding:16px 17px;border-radius:13px}
.v31-detail-cards>div>small,.v31-detail-cards .metric-label{display:block;width:100%;margin:0;color:#7085a0;font-size:11px;font-weight:650;line-height:1.4;letter-spacing:0;overflow-wrap:anywhere}
.v31-detail-cards>div>strong,.v31-detail-cards .metric-value{display:block;width:100%;min-width:0;color:#193653;font-size:15px;font-weight:800;line-height:1.45;overflow-wrap:anywhere;word-break:normal;font-variant-numeric:tabular-nums}
.v31-detail-cards>div:first-child{background:linear-gradient(155deg,#f3f7ff,#ffffff);border-color:#cfdef6}.v31-detail-explain,.v31-note{padding:14px 16px;border-radius:12px;background:#eff4fb;color:#647691;font-size:11px;line-height:1.7;clear:both}.v31-raw-line{padding:9px 10px;border-bottom:1px solid #edf1f7}.v31-day{border:1px solid #dde7f3;border-radius:12px;margin-bottom:9px;flex-shrink:0;overflow:hidden;background:#fff}.v31-day-head{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:62px;cursor:pointer}.v31-day-head:hover{background:#f6f9ff}.v31-day-icon{background:#eef3ff;color:#4967c1;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;flex-shrink:0}.v31-day-name{flex:1;min-width:0}.v31-day-name b{display:block}.v31-day-name small{display:block;margin-top:2px}.v31-day-time{font-size:11px;font-weight:750;color:#586d8a}.v31-chevron{color:#8fa0b7}.v31-day-body{padding:12px 14px;border-top:1px solid #e7edf5}.v31-day-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding-bottom:9px}.v31-raw-title{font-weight:750;font-size:11px;color:#30476a}.v32-raw-clock{font-variant-numeric:tabular-nums}
/* Roster: distinct shift colors, sticky ID/date header, clear controls */
.payroll-period-banner{border:1px solid #cfe1ff;background:#eff6ff;padding:11px 15px;border-radius:10px;margin:0 20px 15px;color:#345b91;font-size:11px;font-weight:750}
#view-roster .filters{padding-top:0}.v37-toolbar{display:flex;align-items:center;justify-content:space-between;gap:13px;flex-wrap:wrap;margin:0 20px 10px;padding:12px 14px;background:#f4f7fe;border:1px solid #e1e9f5;border-radius:12px}.v37-primary-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.v37-selection-count{color:#516988;font-size:10px;font-weight:750}.v37-density-control{display:flex;gap:8px;align-items:center;font-size:11px;color:#5c7290}.v37-roster-guide{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0 20px 12px;color:#617892;font-size:10px}.v37-roster-guide>span{background:#edf3ff;border:1px solid #dce7fc;border-radius:99px;padding:5px 9px}.v38-quick-hint{margin:0 20px 12px;background:#edf4ff;border:1px solid #dae7ff;color:#4b6591;padding:12px;border-radius:10px;font-size:11px}.v38-quick-dot{display:inline-block;width:8px;height:8px;background:#486de0;border-radius:50%;margin-right:6px}
.roster-shift-legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:13px;margin:0 20px 16px;background:#f8faff;border:1px solid #e2eaf5;border-radius:12px}.roster-legend-item{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--shift-color,#4a6bd8) 30%,white);border-radius:9px;background:color-mix(in srgb,var(--shift-color,#4a6bd8) 8%,white);color:#3d5273;font-size:10px;font-weight:800}.roster-legend-item i{width:8px;height:8px;background:var(--shift-color,#4a6bd8);border-radius:50%}.roster-legend-item small{font-size:9px;color:#63758b;font-weight:600}.roster-legend-item:hover{filter:saturate(1.25) brightness(.97)}.roster-legend-item:focus-visible{outline:2px solid #5681f5}
.roster-scroll{width:100%;max-height:min(74vh,850px)}.roster-table{min-width:max-content;border-collapse:separate;border-spacing:0}.roster-table th{position:sticky;top:0;z-index:7;text-align:center;min-width:61px;padding:11px 8px}.roster-table td{padding:7px 6px;white-space:nowrap;text-align:center}.roster-table th.sticky-emp,.roster-table td.sticky-emp{position:sticky;left:0;z-index:8;text-align:left;min-width:260px;max-width:260px;width:260px;background:#fff;box-shadow:5px 0 10px #1a31520b}.roster-table th.sticky-emp{z-index:11;background:#f4f7fc}.v37-date-btn{border:0;background:transparent;color:#f7fbff;font-size:14px;font-weight:900;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;min-height:60px;min-width:46px;width:100%;padding:4px 2px;cursor:pointer;font-variant-numeric:tabular-nums;text-align:center}.v37-date-btn .wn144-date-number{display:block;font-weight:900;font-size:16px;line-height:1.12;color:#ffffff;letter-spacing:0;opacity:1}.v37-date-btn:focus-visible{outline:2px solid #f1cf84;outline-offset:-2px;border-radius:5px}.v37-date-btn small{display:block;font-size:9px;line-height:1.25;color:#c9d9ef;white-space:nowrap;font-weight:750;letter-spacing:.015em}.v37-weekend{background:#fff5f4!important}.roster-group-row td{background:#eaf1fc!important;color:#2a4d7b;text-align:center!important;font-weight:800;padding:11px!important}.roster-group-label{background:#dbe9ff;color:#2b518f;padding:6px 10px;border-radius:8px;display:inline-block;margin-right:8px}.v37-person{display:flex;align-items:center;gap:11px}.v37-check-wrap{display:grid;place-items:center}.v37-person>span{min-width:0;text-align:left}.v37-person b{display:block;font-size:11px;color:#243e5d}.v37-person small{display:block;font-size:9px;color:#7487a0;overflow:hidden;text-overflow:ellipsis;max-width:210px}.shift-pill{border-radius:9px;border:1px solid color-mix(in srgb,var(--shift-color,#4d6bd9) 38%,white);min-width:42px;height:36px;padding:6px 9px;background:color-mix(in srgb,var(--shift-color,#4d6bd9) 16%,white);color:color-mix(in srgb,var(--shift-color,#4d6bd9) 88%,black);font-weight:850;font-size:11px;transition:transform .12s,box-shadow .12s}.shift-pill:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1d3c6820}.shift-pill.unassigned{background:#f1f5fb;color:#94a6c1;border:1px dashed #ccd9e9}.v37-cell-selected{box-shadow:inset 0 0 0 2px #f19830,0 0 0 2px #ffc476!important;border-color:#e99b31!important}.v37-density-compact .shift-pill{height:29px;min-width:35px}.v37-density-large .shift-pill{height:45px;min-width:51px;font-size:12px}.v37-empty-roster{text-align:center;color:#7b8eaa;padding:26px!important}
.roster-summary-panel{box-shadow:none;margin:15px 20px 20px;overflow:hidden}.roster-summary-head{padding:19px 20px}.roster-summary-head p{margin-top:5px;font-size:11px}.roster-totals-table{min-width:1060px}.roster-totals-table td:nth-child(2) small{display:block;margin-top:4px;color:#8192a8}.roster-totals-table th,.roster-totals-table td{text-align:center;padding:12px}.roster-totals-table th:nth-child(2),.roster-totals-table td:nth-child(2){text-align:left}.roster-metric{font-variant-numeric:tabular-nums;font-weight:800;color:#243d5d}.roster-totals-table .effective{background:#e7f7ef;color:#098561;font-weight:850}.roster-disclaimer{padding:13px 20px;font-size:10px;color:#7186a1;background:#f9fbff;border-top:1px solid #e8eef5}
/* Settings: concise tabs and coherent panels */
.settings-tabs{display:flex;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:thin;background:#fff;border:1px solid var(--border);border-radius:14px;padding:7px;margin-bottom:17px;box-shadow:var(--shadow)}.settings-tab{border:0;border-radius:9px;background:transparent;color:#61748f;font-size:11px;font-weight:750;padding:11px 15px;white-space:nowrap;flex-shrink:0}.settings-tab:hover{background:#f1f5fe}.settings-tab.active{background:#eaf0ff;color:#3458b7;box-shadow:inset 0 -2px #4165d7}.settings-form{padding:18px 22px 22px}.settings-form>label,.edit-dialog>label,.bulk-modal-body>label,.access-modal-content>label,.v37-bulk-form>label{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;font-size:11px;font-weight:750;color:#506a89}.settings-form input:not([type="checkbox"]),.settings-form select,.settings-form textarea{width:100%}.settings-organization .panel,.settings-shifts .panel,.settings-types .panel,.settings-rules .panel,.settings-footer .panel{margin-bottom:17px}.settings-brand,.dept-chips,.shift-master-settings,.type-settings-body,.rules-settings-panel,.v39-position-master{padding:17px 22px}.dept-chips{display:flex;flex-wrap:wrap;gap:9px}.dept-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;background:#f1f5fd;border:1px solid #dfebf8;border-radius:99px;color:#435c7d;font-size:11px;font-weight:650}.dept-remove{border:0;color:#bc4a55;background:transparent;font-weight:900}.shift-master-list,.v39-position-list,.employee-types-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shift-master-item,.v39-position-item,.employee-type-item{display:flex;align-items:center;gap:11px;border:1px solid #e0e8f4;background:#f9fbff;padding:11px 13px;border-radius:12px;min-width:0}.shift-master-item{border-left:3px solid var(--shift-color,#4c69d6)}.shift-master-code,.v39-position-icon{display:grid;place-items:center;background:#eaf0ff;color:#4662b1;min-width:37px;height:36px;border-radius:9px;font-weight:850}.shift-master-code{color:var(--shift-color,#496cda);background:color-mix(in srgb,var(--shift-color,#496cda) 11%,white)}.shift-master-info{flex:1;min-width:0}.shift-master-info b,.v39-position-item b{display:block;font-size:11px}.shift-master-info small{font-size:10px;display:block}.shift-master-edit,.shift-master-delete,.v39-rename,.v39-delete,.employee-type-delete{border:1px solid #d9e5f5;background:#fff;border-radius:9px;color:#335985;font-weight:750;padding:7px 9px;font-size:10px}.shift-master-delete,.v39-delete{color:#c04a52}.shift-master-note,.rules-explainer{margin-top:13px;background:#f0f5fd;border-radius:10px;padding:12px;color:#6980a0;font-size:11px}.type-create,.v39-position-inputs{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:17px}.type-create label,.v39-position-inputs label{display:flex;flex-direction:column;gap:5px;flex:1}.policy-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.policy-fieldset{border:1px solid #dee8f5;border-radius:12px;padding:14px;display:flex;gap:8px;flex-wrap:wrap}.policy-fieldset legend{font-weight:800;color:#305073}.policy-fieldset label{display:flex;align-items:center;gap:6px;background:#f4f7fd;border-radius:9px;padding:7px}.rules-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.rules-form label{display:flex;gap:6px;flex-direction:column}
.v42-footer-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr);gap:18px;padding:20px}.v42-footer-form{min-width:0}.v42-footer-form label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;color:#526985;font-weight:700;font-size:11px}.v42-footer-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:9px}.v42-footer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.v42-footer-preview-panel{border-radius:13px;background:#f3f6fc;border:1px solid #dee7f3;padding:16px}.v42-footer-preview-sidebar{background:#142a49;color:white;border-radius:12px;padding:21px;min-height:145px;display:flex;flex-direction:column;gap:5px}.v42-footer-preview-sidebar strong{color:#fff;font-size:13px}.v42-footer-preview-sidebar small,.v42-footer-preview-sidebar span{color:#9db6d6;font-size:10px}
/* Modal architecture: fixed header/footer, independently scrollable body, no squeezed rows. */
.edit-overlay,.modal-backdrop{position:fixed;inset:0;background:rgba(15,32,54,.59);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:160;overflow:auto;overscroll-behavior:contain}
.edit-dialog,.modal-card{width:min(670px,100%);max-height:min(91dvh,920px);overflow:auto;background:#fff;border-radius:19px;border:1px solid #eef1f5;box-shadow:0 25px 70px #08182d4f;padding:24px;scrollbar-color:#c7d4e4 transparent;min-width:0}.edit-dialog>h3,.modal-card h3{font-size:19px;line-height:1.3}.edit-dialog>p{font-size:11px;margin:7px 0 18px}.edit-dialog>label{display:flex;flex-direction:column;gap:6px;margin-bottom:13px;font-size:11px;font-weight:750;color:#55708c}.edit-dialog .inline-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.v31-dialog,.v31-history-dialog{width:min(820px,100%)}.v31-history-dialog{max-height:min(90dvh,860px);display:flex;flex-direction:column;overflow:hidden;padding:0}.v31-history-dialog>.v31-modal-head{padding:22px 25px;flex-shrink:0}.v31-modal-head,.daily-modal-head,.bulk-modal-head,.shift-modal-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid #e7edf5;padding-bottom:15px;margin-bottom:17px}.v31-history-dialog>.v31-modal-head{margin-bottom:0}.v31-modal-head h3{font-size:19px}.v31-modal-head p{font-size:11px;margin-top:4px}.v31-kicker{display:block;color:#4f70bf;font-size:9px;letter-spacing:1.6px;font-weight:850;margin-bottom:7px}.v31-modal-actions,.bulk-modal-actions,.v37-bulk-footer{display:flex;justify-content:flex-end;gap:9px;align-items:center;border-top:1px solid #e7edf5;margin-top:17px;padding-top:15px}.v31-history-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:15px 24px 10px;flex-shrink:0}.v31-history-filters label{display:flex;flex-direction:column;gap:5px;color:#60768f;font-size:11px}.v31-history-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:5px 24px 13px;flex-shrink:0}.v31-history-stats>div{background:#f5f8fd;border:1px solid #e2eaf5;border-radius:10px;padding:11px}.v32-history-listbar{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;border-top:1px solid #e8eef5;gap:12px;flex-shrink:0}.v32-history-listbar small{display:block;margin-top:3px}.v31-history-list{padding:10px 24px;overflow-y:auto;overflow-x:hidden;min-height:60px;flex:1;scrollbar-color:#b3c6dc transparent;display:flex;flex-direction:column}.v31-history-pager{padding:10px 24px;flex-shrink:0}.v31-history-warning{padding:11px 14px;background:#fff7eb;color:#917131;border-radius:10px;margin:0 24px 20px;font-size:10px;flex-shrink:0}
.modal-card{padding:0;width:min(600px,100%)}.modal-card .bulk-modal-head{padding:19px 22px;margin:0}.bulk-modal-body,.access-modal-content{padding:20px 22px;max-height:62vh;overflow:auto}.modal-card .bulk-modal-actions{padding:16px 22px;margin:0;position:sticky;bottom:0;background:#fff}.bulk-modal-head h3{font-size:17px}.bulk-modal-head p{font-size:11px;margin-top:4px}.bulk-warning,.lifecycle-warning{background:#fff7ed;color:#946a2d;border-radius:9px;padding:11px;font-size:10px}.lifecycle-panel,.device-tools{background:#f8faff;border:1px solid #e5edf8;border-radius:12px;padding:16px;margin:12px 0}.lifecycle-panel h4,.device-tools h4{margin-bottom:5px}.lifecycle-panel p,.device-tools p{font-size:11px;margin-bottom:11px}.lifecycle-panel label,.device-tools label{display:flex;flex-direction:column;margin:9px 0;gap:5px;color:#516b87;font-size:11px;font-weight:700}.access-modal{width:min(760px,100%)}.access-section-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:850;color:#466185;margin:14px 0 9px}.access-page-grid,.access-dept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.access-chip,.access-edit-check{display:flex;align-items:center;gap:8px;padding:10px;border-radius:10px;border:1px solid #e4ecf6;background:#f7f9fd;font-size:11px;color:#3d5473}.access-help{font-size:10px;margin:8px 0}.shift-master-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shift-master-times label{display:flex;flex-direction:column;gap:5px;font-size:11px}.shift-option{display:flex;align-items:center;text-align:left;gap:9px;padding:9px;min-height:57px;border:1px solid #dce6f3;border-left:3px solid var(--shift-color);border-radius:11px;background:#fff}.shift-option.selected{background:#eef4ff;box-shadow:inset 0 0 0 1px var(--shift-color)}.shift-option-code{display:grid;place-items:center;background:color-mix(in srgb,var(--shift-color) 14%,white);color:var(--shift-color);border-radius:8px;min-width:40px;min-height:36px;font-weight:850}.shift-option b{display:block;font-size:11px}.shift-option small{font-size:10px}.shift-choice-tools{display:flex;align-items:center;gap:9px;margin-bottom:10px}.shift-choice-note{font-size:10px;color:#8190a4}.shift-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:50vh;overflow:auto}.v37-bulk-dialog{width:min(740px,100%)}.v37-bulk-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v37-pattern-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.v37-pattern-day{width:100%}.v37-bulk-preview{background:#f2f7ff;padding:12px;border-radius:10px;font-size:11px}.v37-only-empty{display:flex;align-items:center;gap:7px}
/* Login screen: centered, hotel-appropriate rather than generic two-column template */
.login-screen{min-height:100dvh;background:radial-gradient(circle at 15% 5%,#352336 0,transparent 32%),radial-gradient(circle at 85% 95%,#1c3564 0,transparent 42%),linear-gradient(135deg,#091323,#142b4b);display:flex;align-items:center;justify-content:center;padding:28px}.login-panel{background:#fff;border:1px solid #ffffff80;border-radius:24px;width:min(440px,100%);padding:clamp(25px,5vw,38px);box-shadow:0 25px 70px #03091660;text-align:center}.login-brand{display:flex;align-items:center;justify-content:center;margin:2px 0 17px}.login-brand-logo{max-height:75px;max-width:160px;object-fit:contain}.login-brand-fallback{font-weight:900;font-size:40px;color:#f36c49;letter-spacing:-5px}.login-brand-fallback span{color:#9b477a}.login-panel h1{font-size:24px}.login-subtitle{margin:4px 0 32px!important;color:#8a9ab0;font-size:12px}.login-panel form{text-align:left}.login-panel form label{display:block;color:#506786;font-weight:750;font-size:11px;margin:13px 0 8px}.login-field{display:flex;align-items:center;border:1px solid #d7e4f6;border-radius:12px;background:#edf3ff;position:relative;min-height:49px}.login-field input{border:0!important;box-shadow:none!important;flex:1;background:transparent!important;min-width:0;font-size:14px}.login-field-icon{width:36px;text-align:center;color:#6681b4;font-size:17px}.password-toggle{border:0;background:transparent;color:#7188aa;padding:8px 13px}.login-submit{width:100%;background:linear-gradient(90deg,#ed593c,#f57a50)!important;border:0!important;font-size:13px!important;min-height:48px!important;margin-top:21px!important}.login-panel>small{display:block;text-align:center;margin-top:31px;color:#97a8c3;letter-spacing:1px;font-size:9px}
/* Footer and notification control support */
.content>footer{display:flex;justify-content:space-between;color:#93a1b3;padding:22px 5px;font-size:10px}.mobile-bottom-nav{display:none}
@media(max-width:1300px){.sidebar{width:248px;flex-basis:248px}.kpi-grid{gap:11px}.content{padding-inline:25px}.topbar{padding-inline:25px}.v30-rank-grid{grid-template-columns:1fr}.two-cols{grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr)}}
@media(max-width:1050px){.sidebar{width:225px;flex-basis:225px}.content{padding:23px 20px}.topbar{padding:0 20px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-cols,.timeline-grid,.device-grid,.settings-grid{grid-template-columns:1fr}.v42-footer-grid{grid-template-columns:1fr}.v30-rank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){
  .shell{display:block}.sidebar{width:min(315px,87vw)!important;max-width:315px;position:fixed;left:0;top:0;bottom:0;height:100dvh;z-index:180;transform:translateX(-105%);transition:transform .23s ease;box-shadow:none}.sidebar.mobile-open{transform:translateX(0);box-shadow:12px 0 55px #071a3c75}.mobile-shade:not(.hidden){display:block;position:fixed;inset:0;background:#09182a85;backdrop-filter:blur(2px);z-index:170}.mobile-drawer-close{display:grid;place-items:center;width:34px;height:34px;background:#ffffff14;color:white;border:1px solid #ffffff20;border-radius:9px;flex-shrink:0;margin-left:auto}.brand{padding:21px 17px}.sidebar .nav-label{padding-top:18px}.sidebar-bottom{padding-bottom:26px}.mobile-menu{display:grid}.main-wrap{width:100%}.topbar{height:62px;padding:0 14px}.breadcrumbs{font-size:11px}.today,.admin-label,.divider-v{display:none}.top-actions{gap:7px}.scan-monitor-toggle{width:35px;height:35px;min-width:35px;padding:0;justify-content:center}.scan-monitor-toggle span{display:none}.notification-bell{min-width:35px;height:35px}.scan-notify-controls{right:-49px}.avatar{width:33px;height:33px;flex-basis:33px}.content{padding:17px 12px 96px}.page-head{align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-head h1{font-size:23px}.page-head p{font-size:11px}.head-actions{width:100%;justify-content:flex-start}.head-actions .btn{flex:1}.panel-head{padding:16px;align-items:flex-start;flex-wrap:wrap}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi{padding:14px}.kpi strong{font-size:25px}.kpi-foot{margin-top:12px}.two-cols,.timeline-grid,.device-grid,.settings-grid,.v30-rank-grid{grid-template-columns:1fr;gap:12px}.v30-insight-kpis{padding:11px;gap:7px}.v30-insight-stat{padding:11px}.v30-insight-stat strong{font-size:20px}.v30-rank-grid{padding:0 11px 11px}.v30-departments{margin:0 11px 11px}.v30-filterbar{padding:12px}.filters,.daily-filters,.v31-summary-filter{padding:12px;gap:8px}.filters label,.daily-filters label,.v31-summary-filter label{min-width:calc(50% - 4px);flex:1}.filters .search{min-width:0;width:100%}.daily-kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 12px 12px}.daily-guide{margin:0 12px 12px}.timeline-controls,.timeline-stats{padding-inline:12px}.timeline-items{padding-inline:12px;max-height:none}.timeline-hint{margin-inline:12px}.settings-tabs{gap:4px;margin-bottom:12px;padding:5px}#view-reports .report-period{padding:13px 14px 16px;gap:9px}#view-reports .report-period>label{min-width:calc(50% - 5px);flex:1}#view-reports .report-period>.btn{width:100%}#view-reports .hr-export-box{margin:13px 12px;padding:15px 14px}#view-reports .hr-export-head{margin-bottom:14px}#view-reports .hr-export-controls{gap:9px}#view-reports .hr-export-controls>label{flex:1;min-width:calc(50% - 5px)}#view-reports .hr-export-controls>.btn{flex:1;min-width:calc(50% - 5px);white-space:normal;text-align:center}#view-reports .report-guidance{margin:0 12px 14px}.settings-tab{padding:9px 11px}.settings-form,.settings-brand,.dept-chips,.shift-master-settings,.type-settings-body,.rules-settings-panel,.v39-position-master{padding:14px}.shift-master-list,.v39-position-list,.employee-types-list,.policy-controls{grid-template-columns:1fr}.v42-footer-grid{padding:12px}.v37-toolbar{margin:0 10px 10px;padding:10px}.v37-roster-guide,.v38-quick-hint{margin:0 10px 10px}.roster-shift-legend{margin:0 10px 12px;max-height:125px;overflow:auto;padding:10px;gap:5px}.roster-legend-item{font-size:10px}.roster-legend-item small{display:none}.roster-table th.sticky-emp,.roster-table td.sticky-emp{min-width:190px;max-width:190px;width:190px}.roster-summary-panel{margin:13px 10px}.roster-scroll{max-height:70vh}.shift-options,.v37-bulk-form,.access-page-grid,.access-dept-grid{grid-template-columns:1fr}.v37-pattern-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-overlay,.modal-backdrop{padding:9px;align-items:center}.edit-dialog,.modal-card{max-height:calc(100dvh - 28px);border-radius:16px;padding:15px}.modal-card{padding:0}.v31-history-dialog{padding:0}.v31-history-dialog>.v31-modal-head{padding:16px}.v31-history-filters,.v31-history-stats,.v32-history-listbar,.v31-history-list,.v31-history-pager{padding-inline:14px}.v31-history-warning{margin-inline:14px}.v31-history-stats{gap:6px}.v31-history-stats>div{padding:8px}.v31-day-head{padding:10px;min-height:62px}.v31-day-time{font-size:10px}.shift-master-times,.daily-detail-grid{grid-template-columns:repeat(2,1fr)}.content>footer{font-size:9px;gap:7px;flex-wrap:wrap}
  .mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));bottom:0;left:0;right:0;z-index:70;min-height:calc(63px + env(safe-area-inset-bottom));padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e4eaf3;box-shadow:0 -5px 22px #19314d13}
  .mobile-bottom-nav button{border:0;background:transparent;color:#788aa3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;font-size:9px;font-weight:700;padding:4px 0;border-radius:8px;min-width:0}
  .mobile-bottom-nav button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-bottom-nav button.active,.mobile-bottom-nav button:hover{color:#385ed2;background:#f0f4ff}
  body:has(#login:not(.hidden)) .mobile-bottom-nav{display:none!important}
}
@media(max-width:430px){.kpi-top{font-size:10px}.kpi-icon{width:30px;height:30px;font-size:16px}.v30-insight-kpis{grid-template-columns:1fr 1fr}.v30-insight-stat:last-child{grid-column:1/-1}.panel-head h3{font-size:14px}.v31-summary-stats{grid-template-columns:repeat(2,1fr);padding:11px}.v31-history-filters{gap:7px}.v31-history-filters label{flex:1;min-width:calc(50% - 4px)}.v31-history-filters label input{width:100%}.v31-history-filters .btn{flex:1}.v31-modal-head h3{font-size:17px}.v31-history-stats strong{font-size:18px} .v31-detail-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v31-detail-cards>div{padding:13px;min-height:88px}.v31-detail-cards>div>strong{font-size:13px}.v31-detail-cards>div>small{font-size:10px}.bulk-modal-actions,.v31-modal-actions{flex-wrap:wrap}.shift-master-times{grid-template-columns:1fr}.chart{height:205px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0.01ms!important;animation-duration:0.01ms!important;scroll-behavior:auto!important}}
/* Component declared as part of v43 source, rather than a legacy override. */
.v43-legend-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 20px 8px}.v43-legend-head strong{display:block;color:#2f4b72;font-size:12px}.v43-legend-head small{display:block;font-size:10px;color:#8293aa;margin-top:3px}.roster-shift-legend.v43-collapsed{display:none!important}
@media(max-width:780px){.v43-legend-head{margin-inline:10px}.v43-legend-head small{display:none}.v43-legend-head .btn{font-size:10px;white-space:normal;text-align:center}}

/* v44 — Dedicated inline feedback for Master Jabatan; no additional theme overrides. */
.v44-position-feedback{margin:-7px 0 16px;padding:9px 12px;border-radius:10px;background:#f2f6fe;color:#476383;font-size:12px;line-height:1.55;border:1px solid #dee8f6}
.v44-position-feedback[data-state="error"]{color:#b13743;background:#fff2f0;border-color:#f6d6d3}
.v44-position-feedback[data-state="success"]{color:#0d815f;background:#eaf8f3;border-color:#bcebd9}
.v39-position-form [aria-invalid="true"]{border-color:#df7883;box-shadow:0 0 0 3px #da465718}
.v39-position-item.v44-position-match{background:#eaf2ff;border-color:#4d77e1;box-shadow:0 0 0 2px #517be521;transition:background .2s,border-color .2s}
.v39-position-form button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.v39-position-item strong{min-width:0;flex:1;overflow-wrap:anywhere}
.v39-position-actions{display:flex;gap:5px;flex-shrink:0}

/* v45 · unified dialog UX, mobile spacing, accessible History exports */
.v45-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 24px;background:#f7faff;border-top:1px solid #e5edf8;border-bottom:1px solid #e5edf8;flex-shrink:0;min-height:62px}
.v45-history-toolbar-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.v45-history-toolbar-copy strong{font-size:12px;color:#203d61}.v45-history-toolbar-copy small{font-size:10px;color:#7488a3;line-height:1.35}
.v45-history-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;flex-shrink:0}.v45-history-export{min-height:35px;display:inline-flex;gap:6px;align-items:center;justify-content:center;white-space:nowrap}.v45-history-export:disabled{opacity:.6;cursor:wait}
.v31-history-dialog{width:min(875px,100%);max-height:min(91dvh,880px);min-height:0}.v31-history-dialog .v31-history-list{min-height:120px;overflow-y:auto;overscroll-behavior:contain}.v31-history-dialog .v31-day{flex:0 0 auto}.v31-history-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e5edf7}.v31-history-dialog .v31-history-warning{margin-bottom:13px}.v31-history-filters{margin-bottom:0}
/* Consistent, stable settings and edit dialogs (header, content and footer) */
.settings-tabs{scroll-snap-type:x proximity}.settings-tab{scroll-snap-align:start}
.edit-overlay>.edit-dialog:not(.v31-history-dialog){scrollbar-gutter:stable;overscroll-behavior:contain}
.edit-overlay>.edit-dialog:not(.v31-history-dialog)>h3,.edit-overlay>.edit-dialog:not(.v31-history-dialog)>.shift-modal-heading{position:sticky;top:-24px;background:#fff;z-index:5;margin-inline:-2px;padding:10px 2px 12px;border-bottom:1px solid #e9eef7}
.edit-overlay>.edit-dialog:not(.v31-history-dialog)>.inline-actions,.edit-dialog form>.inline-actions{position:sticky;bottom:-24px;z-index:5;background:#fff;padding:14px 0 7px;box-shadow:0 -8px 18px #fff8}
.edit-overlay input:focus-visible,.edit-overlay select:focus-visible,.edit-overlay textarea:focus-visible{outline:2px solid #476cdf;outline-offset:1px}
@media(max-width:700px){.v45-history-toolbar{padding:11px 14px;flex-direction:column;align-items:stretch;gap:10px}.v45-history-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.v45-history-actions .btn{padding:9px 6px;min-width:0;font-size:11px}.v31-history-dialog{max-height:calc(100dvh - 18px)}.v31-history-dialog .v31-history-list{min-height:90px}.v31-history-pager{padding:10px 14px}.edit-overlay>.edit-dialog:not(.v31-history-dialog)>h3{top:-15px}.edit-overlay>.edit-dialog:not(.v31-history-dialog)>.inline-actions{bottom:-15px}}
@media print{.edit-overlay,.scan-toast{display:none!important}}
.v31-history-dialog .v31-history-stats>div{min-width:0;display:flex;flex-direction:column;gap:6px;justify-content:center}
.v31-history-dialog .v31-history-stats small{display:block;font-size:10px;line-height:1.35;color:#778ba6;overflow-wrap:anywhere}
.v31-history-dialog .v31-history-stats strong{display:block;font-size:22px;line-height:1.18;color:#17314f;font-variant-numeric:tabular-nums;margin:0}
@media(max-width:430px){.v31-history-dialog .v31-history-stats strong{font-size:19px}}


/* v46 · stabilize button-based cards and fix global spacing regressions */
.scan-notify-controls.hidden{display:none!important}
.feed-item{width:100%;border:1px solid #e5edf6;border-radius:12px;background:#fff;text-align:left;font:inherit;-webkit-appearance:none;appearance:none;padding:12px;cursor:pointer}
.feed-item:focus-visible,.v31-day-head:focus-visible{outline:3px solid #9bb5ff;outline-offset:2px}
.feed-item .feed-avatar,.scan-toast-person .feed-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#eaf1ff;color:#3f62bc;font-weight:800;font-size:11px;flex-shrink:0}
.feed-person{display:flex;flex-direction:column;min-width:0;flex:1}
.feed-person strong,.feed-person b{display:block;font-size:13px;line-height:1.3;color:#1d3555}
.feed-person small{display:block;font-size:10px;line-height:1.45;color:#7588a3;margin-top:3px;overflow-wrap:anywhere}
.feed-end{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:72px}
.feed-end strong,.feed-end b{display:block;font-size:12px;line-height:1.15;color:#24476c}
.feed-arrow{margin-left:2px;flex-shrink:0}
.timeline-items{display:flex;flex-direction:column;gap:8px}
.v31-day-head{width:100%;border:0;background:#fff;text-align:left;font:inherit;-webkit-appearance:none;appearance:none}
.v31-day-name strong,.v31-day-name b{display:block;font-size:14px;line-height:1.3;color:#1f3554}
.v31-day-name small{display:block;margin-top:3px;line-height:1.45;color:#788ba4;overflow-wrap:anywhere}
.v31-day-time{margin-left:auto;text-align:right;flex-shrink:0}
.v31-chevron{margin-left:2px;flex-shrink:0}
.v31-day-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.v31-day-metrics span{background:#f6f9fe;border:1px solid #e6edf7;border-radius:10px;padding:10px;min-width:0;display:flex;flex-direction:column;gap:5px}
.v31-day-metrics small{display:block;font-size:10px;color:#7488a3;margin-bottom:4px}
.v31-day-metrics b,.v31-day-metrics strong{display:block;color:#203754;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.v31-name .person{margin-bottom:4px}
.v31-name small{display:block;line-height:1.45;color:#7a8ca3}
@media(max-width:700px){
  .feed-item{padding:10px}
  .feed-end{min-width:60px}
  .v31-day-head{align-items:flex-start;flex-wrap:wrap}
  .v31-day-time{margin-left:46px;text-align:left}
  .v31-chevron{margin-left:auto}
  .v31-day-metrics{grid-template-columns:1fr}
}


/* v47 · enterprise polish for sidebar, cards, tables, and all modals */
.panel,.kpi,.v30-rank-card,.v30-insight-stat,.roster-summary-panel{box-shadow:0 10px 28px rgba(17,39,76,.045);border-color:#e4ebf5}
.panel:hover,.kpi:hover,.v30-rank-card:hover,.roster-summary-panel:hover{box-shadow:0 14px 34px rgba(18,42,80,.07)}
.table-scroll,.v31-summary-scroller,.roster-scroll{border-top:1px solid #edf2f8;background:linear-gradient(180deg,#fbfcff 0%,#fff 16%)}
table{min-width:720px}
thead th,th{background:#f6f9fd;color:#677c97;border-bottom:1px solid #e3eaf4}
td{font-size:11px;padding:14px 15px;color:#49617c}
tbody tr:nth-child(even){background:#fbfcff}
tbody tr:hover{background:#eef4ff}

/* Sidebar clean-up */
.sidebar{background:linear-gradient(180deg,#0f1f38 0%,#152946 38%,#1a2f4e 100%)}
.brand{padding:24px 18px 20px;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0))}
.sidebar-logo,.logo{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 16px rgba(0,0,0,.14)}
#nav{padding:8px 10px 0}
.nav-item{min-height:45px;border:1px solid transparent;border-radius:12px;padding:10px 13px;color:#c2d2e6}
.nav-item:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.06)}
.nav-item.active{background:linear-gradient(135deg,#355bd0 0%,#4a6ee1 100%);border-color:#5c7eeb;box-shadow:inset 3px 0 var(--orange),0 10px 22px rgba(10,23,47,.28)}
.sidebar-bottom{padding:16px 12px 18px;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.02))}
.side-status{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.08);border-radius:13px}
.v37-sidebar-credit{margin-top:12px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}

/* Card polish */
.kpi,.daily-kpi,.v30-insight-stat,.v31-summary-stats>div,.v31-detail-cards>div{background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%)}
.daily-kpi,.v30-insight-stat,.v31-summary-stats>div,.v31-detail-cards>div{box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.panel-head{background:linear-gradient(180deg,#fff 0%,#fbfcff 100%)}

/* Dialog & modal system */
.edit-overlay,.modal-backdrop{background:rgba(7,20,38,.36);backdrop-filter:blur(6px)}
.edit-dialog,.modal-card{border:1px solid #e6edf6;box-shadow:0 28px 80px rgba(9,25,48,.18)}
.history-dialog{width:min(820px,100%);max-height:min(91dvh,900px);display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}
.history-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px 22px 16px;border-bottom:1px solid #e8eef6;background:linear-gradient(180deg,#fff 0%,#fafcff 100%);flex-shrink:0}
.history-dialog-head h3{font-size:18px;line-height:1.3}
.history-dialog #detailContent{padding:18px 22px 22px;overflow:auto;min-height:0}
.history-dialog .btn.ghost{min-width:40px;padding-inline:12px}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.detail-grid>div{background:linear-gradient(180deg,#fbfcff 0%,#f6f9fd 100%);border:1px solid #e4ebf5;border-radius:14px;padding:14px 15px;min-width:0}
.detail-grid small{display:block;font-size:10px;line-height:1.45;color:#7a8ea8;text-transform:uppercase;letter-spacing:.55px;margin-bottom:6px}
.detail-grid strong{display:block;font-size:14px;line-height:1.45;color:#173250;overflow-wrap:anywhere;font-weight:800}
.info-banner.warn{margin-top:16px}

/* Legacy employee history (detail modal) */
.history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.history-summary>div{background:linear-gradient(180deg,#fbfcff 0%,#f6f9fd 100%);border:1px solid #e4ebf5;border-radius:14px;padding:14px 15px}
.history-summary strong{display:block;font-size:24px;line-height:1.1;color:#183450}
.history-summary span{display:block;font-size:10px;color:#7a8ea8;margin-top:6px}
.history-help{margin-bottom:14px;font-size:11px;line-height:1.6;color:#70839f}
.history-days{display:flex;flex-direction:column;gap:12px}
.history-day{border:1px solid #e3ebf5;border-radius:14px;background:#fff;overflow:hidden}
.history-day>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;background:#f9fbff;border-bottom:1px solid #ebf1f8}
.history-day>header b{display:block;color:#203b5b;font-size:12px}
.history-day>header span{font-size:10px;color:#8093aa;font-weight:700}
.history-scan{width:100%;display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:12px;border:0;border-top:1px solid #eef3f8;background:#fff;padding:13px 15px;text-align:left;font:inherit;color:inherit}
.history-scan:first-of-type{border-top:0}
.history-scan:hover{background:#f6f9ff}
.history-time{font-weight:800;color:#203a59;font-variant-numeric:tabular-nums}
.history-view{color:#4264c0;font-size:11px;font-weight:700;justify-self:end}

/* Attendance history modal polish */
.v31-history-dialog,.daily-dialog{box-shadow:0 28px 80px rgba(9,25,48,.18)}
.v31-modal-head,.daily-modal-head,.bulk-modal-head,.shift-modal-heading{background:linear-gradient(180deg,#fff 0%,#fafcff 100%)}
.v31-history-stats>div{border-radius:14px;background:linear-gradient(180deg,#fbfcff 0%,#f6f9fd 100%)}
.v31-day{border-radius:14px;border-color:#e1e9f4}
.v31-day-head{padding:13px 14px}
.v31-day-body{background:#fbfcff}
.v31-history-warning,.daily-modal-note{border:1px solid #f3dfb8}

/* Forms in settings and edit modals */
.settings-form>label,.edit-dialog>label,.bulk-modal-body>label,.access-modal-content>label,.v37-bulk-form>label{gap:8px}
.settings-form input:not([type="checkbox"]),.settings-form select,.settings-form textarea,.edit-dialog input:not([type="checkbox"]),.edit-dialog select,.edit-dialog textarea,.bulk-modal-body input:not([type="checkbox"]),.bulk-modal-body select,.bulk-modal-body textarea,.access-modal-content input:not([type="checkbox"]),.access-modal-content select,.access-modal-content textarea{background:#fbfcff;border:1px solid #dbe6f3;border-radius:12px;box-shadow:inset 0 1px 2px rgba(11,32,62,.03)}
.settings-form input:not([type="checkbox"]):focus,.settings-form select:focus,.settings-form textarea:focus,.edit-dialog input:not([type="checkbox"]):focus,.edit-dialog select:focus,.edit-dialog textarea:focus,.bulk-modal-body input:not([type="checkbox"]):focus,.bulk-modal-body select:focus,.bulk-modal-body textarea:focus,.access-modal-content input:not([type="checkbox"]):focus,.access-modal-content select:focus,.access-modal-content textarea:focus{border-color:#8eabef;box-shadow:0 0 0 3px rgba(83,121,227,.12)}

/* Android / mobile consistency */
@media(max-width:780px){
  .sidebar{width:min(320px,88vw)!important;max-width:320px}
  .panel,.roster-summary-panel{border-radius:16px}
  .history-dialog{width:min(96vw,820px);max-height:calc(100dvh - 18px)}
  .history-dialog-head{padding:16px 16px 14px}
  .history-dialog #detailContent{padding:14px 16px 16px}
  .detail-grid,.daily-detail-grid,.v31-detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-grid>div:nth-child(10){grid-column:1 / -1}
  .history-summary,.v31-history-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .history-scan{grid-template-columns:1fr;gap:4px;align-items:flex-start}
  #view-employees .panel-head .inline-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #view-employees .panel-head #employeeSearch{order:-1;grid-column:1/-1;width:100%;min-width:0}
  #view-employees .panel-head #employeeStatusFilter,#view-employees .panel-head #exportEmployees{width:100%;min-width:0}
  #view-raw .panel-head .inline-actions,#view-attendance .v31-summary-heading .inline-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #view-raw .panel-head .v30-export-note{grid-column:1 / -1}
  #view-raw .panel-head .btn,#view-attendance .v31-summary-heading .btn{min-width:0;width:100%;white-space:normal}
  #view-attendance .v31-summary-heading #summaryRawLink{grid-column:1/-1}
  #view-roster .v37-primary-actions{flex-wrap:nowrap;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:5px}
  #view-roster .v37-primary-actions .btn,#view-roster .v37-primary-actions span{flex:0 0 auto}
  #view-roster .v37-toolbar{align-items:stretch}
  #view-roster .v37-density-control{width:100%;justify-content:flex-start}
  #view-roster .v37-roster-guide{display:none}
  .history-view{justify-self:start}
  .v31-day-head{align-items:flex-start;flex-wrap:wrap}
  .v31-day-time{margin-left:46px}
  .table-scroll{border-radius:12px}
}
@media(max-width:430px){
  .history-dialog-head h3{font-size:17px}
  .detail-grid,.daily-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-grid>div:nth-child(10){grid-column:1/-1}
  .v31-history-stats strong{font-size:17px}
  .v31-history-stats>div{padding:9px 8px}
  .v31-history-stats small{font-size:9px}
  .detail-grid>div{padding:12px 13px}
  .detail-grid strong{font-size:13px}
  .history-summary strong{font-size:21px}
  .v31-modal-head,.daily-modal-head,.bulk-modal-head,.shift-modal-heading{padding-bottom:13px}
}

@media(max-width:350px){#view-reports .hr-export-controls>label{flex-basis:100%;min-width:100%}.v31-detail-cards{grid-template-columns:1fr} .detail-grid,.daily-detail-grid,.history-summary,.v31-history-stats{grid-template-columns:1fr}.detail-grid>div:nth-child(10){grid-column:auto}}



/* ===========================================================
   AttendanceOS v51 · Visual audit / centralized component rules
   Global surfaces + specific page components. Legacy DOM ids
   and behavioral event handlers are intentionally preserved.
   =========================================================== */

/* Text readability and safe sizing across cards */
:root{--card-outline:#dfe8f4;--card-bg:#fff;--ink-strong:#19324f;--label-ink:#7186a2}
#shell :is(.panel,.kpi,.daily-kpi,.v30-rank-card,.v30-insight-stat,.settings-panel,.roster-summary-panel){min-width:0}
#shell .panel{background:#fff;border-color:var(--card-outline);box-shadow:0 10px 28px rgba(21,46,79,.055)}
#shell .panel-head{min-height:70px;padding:19px 22px;gap:14px}
#shell .panel-head h3{font-size:15px;font-weight:800;line-height:1.35}
#shell .panel-head p{margin-top:5px;font-size:11px;line-height:1.6}
#shell .panel-head>.inline-actions{max-width:100%;gap:8px}
#shell :is(.settings-form,.filters,.daily-filters,.timeline-controls,.v31-summary-filter) label{line-height:1.5}
#shell :is(.settings-form,.filters,.daily-filters,.timeline-controls,.v31-summary-filter) :is(input,select,textarea){min-width:0;max-width:100%;font-variant-numeric:tabular-nums}
#shell :is(.kpi,.daily-kpi,.v30-insight-stat,.v31-summary-stats>div,.v31-detail-cards>div,.timeline-stats>div){min-width:0;overflow-wrap:anywhere}
#shell :is(.kpi,.daily-kpi,.v30-insight-stat,.v31-summary-stats>div,.v31-detail-cards>div,.timeline-stats>div) :is(small,strong){line-height:1.4}
#shell .table-scroll{max-width:100%;overflow-x:auto;overflow-y:auto;overscroll-behavior-y:auto}
#shell table td{line-height:1.55}
#shell table td :is(small,strong,b){line-height:1.45}
#shell table th{line-height:1.45}
#shell .health-row{min-width:0;gap:18px}
#shell .health-row>span{color:#7086a3;font-size:11px;line-height:1.5;min-width:0}
#shell .health-row>b{font-size:12px;line-height:1.5;color:#223b5d;font-variant-numeric:tabular-nums;text-align:right;min-width:0;overflow-wrap:anywhere}

/* Report area: each form block is a separate coherent surface */
#view-reports>.panel{overflow:hidden}
#view-reports .report-period{gap:14px;border-bottom:1px solid #e8eef6;padding:20px 22px 22px}
#view-reports .report-period>label{min-width:170px;gap:7px}
#view-reports .hr-export-box{display:block;margin:22px;border:1px solid #d7e4f4;border-radius:16px;padding:22px;background:linear-gradient(145deg,#fafcff,#fff)}
#view-reports .hr-export-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:20px}
#view-reports .hr-export-head>div{flex:1;min-width:0}
#view-reports .hr-export-head h3{display:block;font-size:16px;line-height:1.4;margin-bottom:7px;overflow-wrap:anywhere}
#view-reports .hr-export-head p{display:block;font-size:11px;line-height:1.65;overflow-wrap:anywhere}
#view-reports .hr-export-controls{display:flex;align-items:flex-end;gap:11px;flex-wrap:wrap;margin-bottom:17px}
#view-reports .hr-export-controls>label{display:flex;flex-direction:column;gap:7px;flex:1 1 180px;min-width:165px}
#view-reports .hr-export-controls>label :is(input,select){width:100%}
#view-reports .hr-export-controls>.btn{min-width:140px;min-height:41px}
#view-reports .hr-export-footnote{display:block;margin:0;padding:12px 14px;border:1px solid #d9e6fa;background:#f0f5ff;border-radius:10px;color:#6680a1}
#view-reports .report-guidance{display:block;margin:0 22px 20px;line-height:1.65}

/* Device page: restore the percentage + visible progress track */
#view-device .device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
#view-device .device-grid>.panel{min-height:380px;display:flex;flex-direction:column;padding-bottom:17px}
#view-device .device-grid>.panel>.panel-head{margin-bottom:0}
#view-device .device-illustration{display:grid;place-items:center;margin:20px 22px 9px;width:69px;height:69px;background:#edf3ff;color:#4769ca;border:1px solid #d8e5ff;border-radius:18px;box-shadow:inset 0 1px 0 #fff}
#view-device .device-grid .health-row{display:flex;justify-content:space-between;align-items:center;margin:0 22px;gap:16px;border-bottom:1px solid #e9eff6;padding:13px 0}
#view-device .device-grid .health-row:last-of-type{border-bottom:0}
#view-device .storage-summary{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:21px 22px 12px}
#view-device .storage-number{display:block;font-size:34px;font-weight:850;letter-spacing:-1.5px;color:#24476c;line-height:1.2;font-variant-numeric:tabular-nums}
#view-device .storage-caption{font-size:11px;line-height:1.5;color:#6f84a2}
#view-device .storage-bar{position:relative;height:13px;margin:0 22px 14px;background:#e7eef9;border:1px solid #dae4f2;border-radius:100px;overflow:hidden;min-width:0}
#view-device #storageFill{height:100%;width:0;border-radius:100px;background:linear-gradient(90deg,#3b67d5,#14a785);min-width:0;transition:width .35s ease}
#view-device .device-grid .info-banner.warn{margin:16px 22px 0;font-size:11px;line-height:1.7}

/* Settings: department/position/logo are clearly separated */
#departmentSettings{overflow:hidden}
#departmentSettings>.inline-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:18px 22px 15px;margin:0}
#departmentSettings>.inline-actions #departmentNew{flex:1 1 230px;width:auto;min-width:180px;max-width:460px}
#departmentSettings>.dept-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 22px 23px;border-bottom:1px solid #e7edf6}
#positionMasterSettings{padding:24px 22px 25px;border-top:0;min-width:0}
#positionMasterSettings .v39-position-heading{display:block;padding:0 0 14px;margin-bottom:17px;border-bottom:1px solid #e8eef7}
#positionMasterSettings .v39-position-heading h3{display:block;font-size:16px;line-height:1.4;margin-bottom:5px}
#positionMasterSettings .v39-position-heading p{display:block;font-size:11px;line-height:1.65}
#positionMasterSettings .v39-position-form{display:block;margin-bottom:19px}
#positionMasterSettings .v39-position-form>label{display:block;font-size:11px;font-weight:750;color:#516a89;margin-bottom:7px}
#positionMasterSettings .v39-position-inputs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
#positionMasterSettings .v39-position-inputs>input{flex:1 1 260px;min-width:160px;width:auto;max-width:100%}
#positionMasterSettings .v39-position-inputs>.btn{flex:0 0 auto;min-height:41px}
#positionMasterSettings .v44-position-feedback{margin:0 0 16px}
#positionMasterSettings .v39-position-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#positionMasterSettings .v39-position-item{display:flex;align-items:center;gap:10px;min-width:0;min-height:61px;padding:11px 12px;border:1px solid #dce7f5;background:#f9fbfe;border-radius:12px}
#positionMasterSettings .v39-position-item>.v39-position-icon{flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:#eaf0ff;color:#4969c7;display:grid;place-items:center;font-size:15px}
#positionMasterSettings .v39-position-item>strong{flex:1;min-width:0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#positionMasterSettings .v39-position-actions{display:flex;flex:0 0 auto;align-items:center;gap:5px}
#positionMasterSettings .v39-position-actions>.btn{font-size:10px;min-width:42px;min-height:32px;padding:7px 9px}
#departmentSettings .settings-logo-panel{display:flex;align-items:flex-start;flex-wrap:wrap;column-gap:12px;row-gap:8px;padding:23px 22px 25px;border-top:1px solid #e8eef7;background:#fbfcff}
#departmentSettings .settings-logo-panel h3,#departmentSettings .settings-logo-panel p{flex:0 0 100%;margin:0}
#departmentSettings .settings-logo-panel h3{font-size:16px;line-height:1.35}
#departmentSettings .settings-logo-panel p{font-size:11px;line-height:1.55;color:#788ba3;margin-bottom:4px}
#departmentSettings .settings-logo-panel input[type=file]{flex:0 1 340px;max-width:100%;padding:7px 10px;background:#fff;border:1px solid #dae5f4;border-radius:11px;color:#506681;line-height:1.7}
#departmentSettings .settings-logo-panel input[type=file]::file-selector-button{border:1px solid #cbdaf0;border-radius:8px;background:#eef3fc;color:#365783;font:inherit;font-weight:700;padding:7px 10px;margin-right:10px;cursor:pointer}
#departmentSettings .settings-logo-panel #logoRemove{min-height:43px}

/* Department and report footers not flush with section content */
#view-settings .settings-organized{border-radius:16px}
#view-settings .settings-brand+.panel{margin-top:16px}
#view-reports .panel-head h3,#view-device .panel-head h3{margin:0}

@media(max-width:1050px){#view-device .device-grid{grid-template-columns:1fr}}
@media(max-width:780px){
  #view-reports .report-period{padding:14px 14px 16px;gap:9px}
  #view-reports .report-period>label{min-width:calc(50% - 5px);flex:1}
  #view-reports .hr-export-box{margin:14px 12px;padding:16px 14px}
  #view-reports .hr-export-head{gap:10px;margin-bottom:15px}
  #view-reports .hr-export-head h3{font-size:14px}
  #view-reports .hr-export-controls{gap:9px}
  #view-reports .hr-export-controls>label{flex:1 1 calc(50% - 5px);min-width:0}
  #view-reports .hr-export-controls>.btn{flex:1 1 calc(50% - 5px);min-width:0;white-space:normal}
  #view-reports .report-guidance{margin:0 12px 14px}
  #view-device .device-grid{grid-template-columns:1fr;gap:12px}
  #view-device .device-grid>.panel{min-height:0}
  #view-device .device-illustration{width:60px;height:60px;margin:16px 15px 7px}
  #view-device .device-grid .health-row{margin:0 15px}
  #view-device .storage-summary{margin:17px 15px 11px}
  #view-device .storage-bar{margin:0 15px 12px}
  #view-device .device-grid .info-banner.warn{margin:13px 15px 3px}
  #departmentSettings>.inline-actions{padding:14px 14px 12px}
  #departmentSettings>.dept-chips{padding:0 14px 18px}
  #positionMasterSettings{padding:18px 14px}
  #positionMasterSettings .v39-position-list{grid-template-columns:1fr}
  #departmentSettings .settings-logo-panel{padding:18px 14px}
}
@media(max-width:350px){
  #view-reports .report-period>label,#view-reports .hr-export-controls>label{flex-basis:100%;min-width:100%}
  #positionMasterSettings .v39-position-inputs>.btn{width:100%}
  #positionMasterSettings .v39-position-actions>.btn{min-width:35px;padding:6px 7px}
}


/* AttendanceOS v52 · unified enterprise dialog system */
.edit-overlay,.modal-backdrop{
  background:rgba(8,22,44,.48);backdrop-filter:blur(6px);
  padding:clamp(10px,2.5vw,28px);align-items:center;justify-content:center;
  overflow-y:auto;overscroll-behavior-y:auto;
}
.edit-dialog,.modal-card{
  background:#fff;border:1px solid #dae5f2;border-radius:22px;
  box-shadow:0 28px 90px rgba(8,24,53,.24),0 4px 15px rgba(11,36,65,.08);
  width:min(750px,100%);max-height:min(92dvh,940px);min-width:0;
  scrollbar-color:#becde2 transparent;
}
.edit-dialog h3,.modal-card h3{font-size:19px;line-height:1.35;letter-spacing:-.025em;color:#152e4c}
.edit-dialog>p,.modal-card p{line-height:1.65}
.history-dialog{width:min(835px,100%);max-height:min(92dvh,930px);padding:0;overflow:hidden;display:flex;flex-direction:column}
.history-dialog-head{
  display:flex;gap:14px;align-items:flex-start;justify-content:space-between;
  padding:23px 26px 19px;flex-shrink:0;background:linear-gradient(180deg,#fff 0%,#f9fbff 100%);
  border-bottom:1px solid #e4ebf4;
}
.history-dialog-head>div{min-width:0}
.history-dialog-head .v31-kicker{color:#4b70d5;letter-spacing:1.5px}
.history-dialog #detailContent{overflow-y:auto;min-height:0;padding:20px 26px 25px}
.history-dialog-head .btn{min-width:42px;min-height:42px;flex-shrink:0}
.modal-intro{display:flex;align-items:center;gap:14px;background:#f2f6ff;border:1px solid #dfe9ff;border-radius:16px;padding:14px 16px;margin-bottom:20px}
.modal-intro-icon{width:45px;height:45px;flex:0 0 45px;border-radius:13px;background:#e3ebff;color:#4264c7;font-size:21px;display:grid;place-items:center}
.modal-intro>div{min-width:0;flex:1}
.modal-intro strong,.modal-intro small{display:block;line-height:1.4}
.modal-intro strong{color:#1c385d;font-size:16px}
.modal-intro small{color:#7186a2;font-size:11px;margin-top:4px}
.modal-intro-tag{font-size:10px;letter-spacing:.3px;font-weight:800;white-space:nowrap;padding:7px 10px;border:1px solid #bfd7ca;background:#e8f6ee;border-radius:10px;color:#087e59}
.fingerprint-section{margin:0 0 19px}
.fingerprint-section h4{margin:0 0 11px;color:#2d4e78;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px}
.fingerprint-section .detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fingerprint-field{padding:13px 15px;background:#f8faff;border:1px solid #e5ecf6;border-radius:13px;min-width:0;box-shadow:none}
.fingerprint-field small{display:block;font-size:10px;line-height:1.5;margin:0 0 7px;color:#7289a6;text-transform:none;letter-spacing:.15px}
.fingerprint-field strong{display:block;font-size:13px;line-height:1.5;color:#173351;font-weight:750;overflow-wrap:anywhere;white-space:normal}
.fingerprint-section .detail-grid>.fingerprint-field:nth-child(3):last-child,.fingerprint-section .detail-grid>.fingerprint-field:nth-child(7):last-child{grid-column:1/-1}
.overnight-notice{background:#eef6ff;color:#2d5890;border:1px solid #cbdff5;padding:12px 15px;border-radius:12px;margin-bottom:18px;font-size:12px;line-height:1.6}
.overnight-label{color:#3169b5;background:#e7f0ff;border-radius:5px;padding:2px 5px;font-size:10px}
.history-dialog .info-banner.warn{font-size:11px;line-height:1.7;margin-top:4px;margin-bottom:0;padding:13px 15px}
.daily-operational-day{padding:11px 14px;background:#f2f6ff;border:1px solid #dae7ff;color:#47668e;border-radius:12px;margin:11px 0 14px}
.daily-operational-day strong{color:#1a4268}
.daily-dialog{width:min(840px,100%);padding:24px 26px;max-height:90dvh;overflow-y:auto}
.daily-modal-head{position:sticky;top:-24px;z-index:5;background:white;padding:10px 0 16px;border-bottom:1px solid #e4ecf5;margin-bottom:18px}
.daily-detail-grid>div{min-width:0;border-radius:14px;padding:14px 15px;background:#f7f9fd;border:1px solid #e1eaf6}
.daily-detail-grid small{display:block;color:#7288a2;font-size:10px;margin-bottom:7px}
.daily-detail-grid strong{display:block;font-size:14px;color:#163553;overflow-wrap:anywhere}
.daily-scan-head{display:flex;align-items:start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.daily-scan{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 15px;background:#fff;border:1px solid #edf1f6;border-radius:11px;margin-top:7px}
.daily-scan span:first-child{font-weight:700;color:#203e64}
.daily-variance{background:#f5f8ff;border:1px solid #e2ebfb;border-radius:13px;padding:13px 15px;margin-top:15px}
.daily-variance strong{display:block;color:#274b7a;margin-bottom:6px}
.daily-variance p{font-size:11px}
.v31-dialog{max-height:90dvh;overflow-y:auto;width:min(840px,100%)}
.v31-dialog>.v31-modal-head{background:#fff;position:sticky;top:-24px;z-index:5;padding:10px 0 16px}
.v31-dialog>.v31-modal-actions{position:sticky;bottom:-24px;z-index:5;background:#fff;box-shadow:0 -8px 18px rgba(255,255,255,.95);padding:15px 0 7px}
.v31-history-dialog{width:min(900px,100%);max-height:92dvh;overflow:hidden;display:flex;flex-direction:column}
.v31-history-dialog .v31-modal-head{padding:21px 24px 18px;margin:0}
.v31-history-dialog .v31-history-filters{padding:15px 24px 11px}
.v31-history-dialog .v31-history-list{padding:10px 24px 12px;min-height:100px;overflow-y:auto}
.v31-history-dialog .v31-history-warning{margin:0 24px 17px}
.v31-history-dialog .v31-history-pager{background:#fff;border-top:1px solid #e5ecf5}
.v31-day-head{width:100%;padding:12px 15px;background:#fff;text-align:left;border:none}
.v31-day-time{white-space:normal;min-width:0;text-align:right}
.roster-dialog{width:min(810px,100%);max-height:91dvh;overflow-y:auto}
.roster-dialog>h3{font-size:19px;margin-bottom:9px}
.roster-dialog>#rosterModalInfo{font-size:12px;border-radius:10px;background:#f3f6ff;padding:12px 14px;margin-bottom:16px}
.roster-dialog .shift-options{max-height:55dvh;overflow-y:auto;scrollbar-color:#bfd0e8 transparent;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:4px}
.shift-option{min-width:0;border-radius:13px;min-height:64px;padding:10px 12px}
.shift-option b,.shift-option small{display:block;overflow-wrap:anywhere;line-height:1.4}
.roster-dialog .inline-actions{position:sticky;bottom:-24px;background:#fff;z-index:6;border-top:1px solid #e6ecf5;padding:16px 0 6px;box-shadow:0 -12px 23px rgba(255,255,255,.95)}
.shift-master-dialog,.v39-position-dialog{width:min(640px,100%)}
.edit-dialog form>label,.edit-dialog>label,.modal-card label{line-height:1.45}
.modal-card{display:flex;flex-direction:column;overflow:hidden;padding:0}
.modal-card .bulk-modal-head{padding:19px 23px;flex-shrink:0;min-height:70px}
.modal-card .bulk-modal-body,.modal-card .access-modal-content{padding:20px 23px;overflow-y:auto;min-height:0;flex:1}
.modal-card .bulk-modal-actions{padding:15px 23px;flex-shrink:0;position:static;box-shadow:0 -5px 18px rgba(17,35,60,.04)}
.access-chip,.access-edit-check,.lifecycle-panel,.device-tools{border-radius:13px}
@media(max-width:780px){
  .edit-overlay,.modal-backdrop{padding:10px;align-items:center}
  .edit-dialog,.modal-card{width:100%;max-height:calc(100dvh - 20px);border-radius:17px}
  .history-dialog{max-height:calc(100dvh - 20px)}
  .history-dialog-head{padding:17px 16px 15px}
  .history-dialog #detailContent{padding:15px 16px 18px}
  .fingerprint-section .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .fingerprint-field{padding:11px 12px}
  .modal-intro{padding:11px 12px;gap:10px}
  .modal-intro-icon{width:37px;height:37px;flex-basis:37px}
  .modal-intro-tag{font-size:9px;padding:5px 7px;white-space:normal;text-align:center}
  .daily-dialog{padding:16px}
  .daily-modal-head{top:-16px}
  .v31-history-dialog .v31-modal-head{padding:16px}
  .v31-history-dialog .v31-history-filters{padding:13px 14px}
  .v31-history-dialog .v31-history-list{padding:9px 14px}
  .v31-history-dialog .v31-history-warning{margin:0 14px 14px}
  .roster-dialog .shift-options{grid-template-columns:1fr;max-height:54dvh}
  .modal-card .bulk-modal-body,.modal-card .access-modal-content{padding:14px 16px}
  .modal-card .bulk-modal-head,.modal-card .bulk-modal-actions{padding:15px 16px}
}
@media(max-width:420px){
  .fingerprint-section .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .modal-intro-tag{max-width:94px}
  .fingerprint-section .detail-grid>.fingerprint-field:nth-child(3):last-child{grid-column:1/-1}
  .history-dialog-head h3{font-size:16px}
  .v31-history-dialog .v31-history-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .daily-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:349px){.fingerprint-section .detail-grid{grid-template-columns:1fr!important}.fingerprint-section .detail-grid>.fingerprint-field{grid-column:auto!important}}

/* v53 · quick page paint, integrated module-loading indicator */
.v53-page-loading{height:5px;margin:-5px 0 20px;border-radius:6px;background:linear-gradient(90deg,#e3ebfa 0%,#4165d7 45%,#e3ebfa 100%);background-size:200% 100%;font-size:0;animation:v53-loader 1.1s linear infinite}
@keyframes v53-loader{0%{background-position:100% 50%}100%{background-position:-100% 50%}}
@media(prefers-reduced-motion:reduce){.v53-page-loading{animation:none}}

/* AttendanceOS v54 — roster clear and numbered raw scan details */
.roster-clear-one,.roster-clear-block{background:#fff7f4!important;color:#bb513b!important;border:1px solid #f4cbbb!important;font-weight:750}
.roster-clear-one:hover:not(:disabled),.roster-clear-block:hover:not(:disabled){background:#ffebe4!important;border-color:#eaa18a!important}
.roster-clear-one:disabled,.roster-clear-block:disabled{opacity:.45;cursor:not-allowed}
.v54-scan-heading{display:flex;justify-content:space-between;align-items:start;gap:14px;flex-wrap:wrap}
.v54-scan-heading h4{font-size:12px;letter-spacing:.75px;text-transform:uppercase;color:#284c78}
.v54-scan-count{font-size:11px;color:#3564a0;background:#eef5ff;border-radius:8px;padding:7px 10px;font-weight:750}
.v54-scan-help{font-size:11px;line-height:1.6;color:#7389a4;margin:9px 0 12px}
.v54-detail-scans{border:1px solid #e0e8f4;border-radius:13px;overflow:auto;max-height:310px;background:#fff}
.v54-scan-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px;border:0;border-bottom:1px solid #eaf0f8;background:#fff;min-width:0}
.v54-scan-item:last-child{border-bottom:0}
.v54-scan-item:hover{background:#f7faff}.v54-scan-item.selected{background:#edf4ff;box-shadow:inset 3px 0 #4369d8}
.v54-scan-rank{display:grid;place-items:center;flex:0 0 35px;width:35px;height:35px;background:#edf3ff;border-radius:10px;font-size:12px;font-weight:850;color:#3c60bb}
.v54-scan-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.v54-scan-text strong{font-size:12px;line-height:1.45;overflow-wrap:anywhere;color:#263d5e}
.v54-scan-text small{font-size:10px;color:#7f91a9;line-height:1.4}
.v54-scan-mark{flex-shrink:0;color:#4f6fc2;font-weight:750;font-size:10px;white-space:nowrap}
.v54-history-scan{display:grid!important;grid-template-columns:80px minmax(140px,1fr) minmax(125px,1fr) auto;align-items:center;gap:12px;min-width:0;border:0;background:#fff;text-align:left;padding:12px 14px;border-top:1px solid #edf2f8;width:100%}
.v54-history-scan:hover{background:#f6f9ff}
.v54-scan-num{color:#456ac5;font-size:11px;font-weight:800;white-space:nowrap}
.v54-history-scan .v32-raw-clock{min-width:0;font-size:11px;font-weight:800;white-space:normal;overflow-wrap:anywhere}
.v54-history-scan small{font-size:10px;color:#71849e;white-space:normal;line-height:1.5}
@media(max-width:780px){.roster-clear-block{flex-shrink:0}.v54-history-scan{grid-template-columns:70px minmax(0,1fr);gap:5px 9px}.v54-history-scan .v32-raw-link{grid-column:2}.v54-scan-mark{font-size:9px}.v54-scan-heading{flex-direction:column;gap:5px}}

/* v54 chronological sort controls */
.v54-history-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.v54-sort-label{font-size:10px;font-weight:800;color:#58728f;display:flex;align-items:center;gap:9px}
.v54-sort-label select{border:1px solid #d6e2f2;border-radius:9px;background:#fff;color:#25416a;font-size:11px;font-weight:750;min-height:36px;padding:7px 9px}
.v54-sort-th{border:0;background:transparent;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;cursor:pointer;white-space:nowrap;padding:5px 3px;text-align:left}
.v54-sort-th:hover,.v54-sort-th:focus-visible{color:#315fbd;background:#e9f1ff;border-radius:6px}
@media(max-width:700px){.v32-history-listbar{flex-wrap:wrap;gap:9px}.v54-history-actions{width:100%;justify-content:space-between}.v54-sort-label{flex:1;justify-content:space-between}}


/* v56 · clean live monitoring, recent activity, and accessible data-quality messages */
.v15-live-bar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:12px 20px;margin:12px 18px;border:1px solid #dce8f7;border-radius:12px;background:linear-gradient(120deg,#f2f7ff,#fafcff);min-height:44px;color:#536d8b;font-size:12px;line-height:1.5}
.v15-live-bar strong{color:#204467;font-size:12px;line-height:1.5;white-space:nowrap}
.v15-live-bar #attendanceLatestText{min-width:0;flex:1}
.v15-live-bar #attendanceLatestSync{font-size:11px;color:#7890ad;line-height:1.5}
.v15-live-dot{width:9px;height:9px;flex-shrink:0;display:inline-block;background:#20b88a;border-radius:50%;box-shadow:0 0 0 4px #dcf6ed}
.v56-recent-note{margin:0 18px 12px;padding:11px 14px;border:1px solid #ffebc7;border-radius:11px;background:#fff8ed;color:#92642a;font-size:11px;line-height:1.65}
.v56-empty-recent{text-align:center!important;padding:32px 20px!important;color:#67809d;white-space:normal;font-size:12px}
.timeline-aside{overflow:hidden;padding-bottom:14px}
.timeline-aside .panel-head{margin-bottom:13px}
.timeline-aside>.live-status-dot{display:flex;align-items:center;gap:10px;padding:13px 17px;margin:0 19px 9px;background:#effaf6;border:1px solid #d8f1e8;border-radius:11px;font-weight:750;color:#167959;font-size:12px;line-height:1.45}
.v56-status-indicator{display:block;flex:0 0 9px;width:9px;height:9px;background:#16a77a;border-radius:50%;box-shadow:0 0 0 4px rgba(28,177,128,.13)}
.timeline-aside>.health-row{margin-inline:19px;padding:13px 0;align-items:flex-start;gap:16px}
.timeline-aside>.health-row>span{display:block;min-width:0;line-height:1.5;color:#71849d;font-size:11px}
.timeline-aside>.health-row>b{line-height:1.5;font-size:11px;max-width:58%;min-width:0;text-align:right;overflow-wrap:anywhere}
.timeline-aside>.info-banner{margin:12px 19px;padding:13px 14px;font-size:11px;line-height:1.75;border-radius:11px}
.timeline-aside>.info-banner.warn{margin-top:10px}
#view-dashboard .panel>.table-scroll{border-top:1px solid #e7edf7}
@media(max-width:780px){
 .v15-live-bar{margin:10px 12px;padding:11px 12px;gap:8px}
 .v15-live-bar strong{white-space:normal}
 .v56-recent-note{margin:0 12px 10px}
 .timeline-aside>.live-status-dot{margin:0 14px 9px}
 .timeline-aside>.health-row{margin-inline:14px}
 .timeline-aside>.info-banner{margin-inline:14px}
}


/* v57 — workforce HR leaderboard exports and roster-aware Timeline IN/OUT labels */
.v57-board-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-left:auto;min-width:0}
.v30-rank-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:15px 16px;min-width:0}
.v30-rank-head>div:first-of-type{flex:1;min-width:155px}
.v57-board-actions{margin-left:auto;display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}
.v57-board-actions button{font:inherit;font-size:10px;font-weight:750;line-height:1.2;border:1px solid #d9e5f5;border-radius:8px;background:#fff;color:#375579;padding:7px 10px;min-height:30px;white-space:nowrap}
.v57-board-actions button:hover{background:#edf3ff;color:#2f54a1;border-color:#b5c9ef}
.v57-board-actions button:disabled{opacity:.55;cursor:wait}
.v57-direction{display:inline-flex;align-items:center;justify-content:center;font-size:9px;letter-spacing:.2px;line-height:1.2;font-weight:850;border-radius:7px;padding:5px 8px;white-space:nowrap;border:1px solid transparent}
.v57-direction.v57-in{background:#e2f7ec;color:#087447;border-color:#b9e9cf}
.v57-direction.v57-out{background:#e8efff;color:#2f56b8;border-color:#c7d9ff}
.v57-direction.v57-duplicate{background:#fff3dd;color:#a26911;border-color:#f2d8ad}
.v57-direction.v57-unknown{background:#f0f3f8;color:#5d7089;border-color:#dbe4ef}
.v57-feed-detail{font-size:10px;display:block;color:#758ba5;line-height:1.45;margin-top:4px}
.feed-end{max-width:min(230px,40%);gap:3px;white-space:normal}
.v57-direction-note{color:#71869f!important;font-size:9px!important;line-height:1.35!important;white-space:normal;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:210px}
.feed-item{width:100%;min-width:0;gap:10px}
.v57-board-toolbar>.btn{min-height:36px;padding:9px 10px}
@media(max-width:780px){.v57-board-toolbar{width:100%;margin-left:0;gap:6px}.v57-board-toolbar .btn{flex:1 1 28%;padding:8px 5px;font-size:10px}.v30-rank-head{align-items:flex-start}.v57-board-actions{margin-left:0;width:100%}.feed-end{max-width:45%}.v57-direction-note{display:none!important}.v57-feed-detail{font-size:9px}}

/* v58 Roster · Live calendar day marker (Asia/Jakarta), no changes to shift values */
.v58-period-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.v58-period-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.v58-today-hint{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:750;color:#1d7c65}
.v58-today-hint.v58-outside-period{color:#798ba6;font-weight:600}
.v58-go-today{min-height:34px;flex:0 0 auto;font-size:11px;border-color:#bfd5fa;background:#fff;color:#315fc2}
.v58-go-today:disabled{opacity:.48}
.roster-table th.v58-today-header{background:#deebff!important;border-bottom:3px solid #4172da!important;box-shadow:inset 1px 0 #a9c7fa,inset -1px 0 #a9c7fa}
.roster-table th.v58-today-header .v37-date-btn{color:#fff;font-size:14px}
.roster-table th.v58-today-header .v37-date-btn small{color:#fff4d4}
.v58-today-label{display:none;font-size:8px;line-height:1.1;padding:3px 7px;border-radius:99px;background:#365ec9;color:#fff;font-weight:900;letter-spacing:.55px;white-space:nowrap}
.roster-table th.v58-today-header .v58-today-label{display:inline-block}
.roster-table td.v58-today-cell{background:#edf4ff!important;box-shadow:inset 1px 0 #c0d6f6,inset -1px 0 #c0d6f6}
.roster-table tr:hover td.v58-today-cell{background:#e5efff!important}
.roster-table td.v58-today-cell .shift-pill.unassigned{background:#fff;border:1px dashed #a3c0ee;color:#426ebd}
@media(max-width:780px){.v58-period-banner{padding:11px 12px;gap:8px}.v58-go-today{width:100%;min-height:36px}}

/* v59: pure user-uploaded logo without shape, glow, stroke or decorative background. */
.brand img.sidebar-logo,.sidebar .brand img.sidebar-logo{width:auto!important;height:auto!important;max-width:106px!important;max-height:64px!important;min-width:0!important;flex:0 1 auto!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;outline:none!important;padding:0!important;object-fit:contain!important;display:block!important}
.brand img.sidebar-logo.hidden{display:none!important}
.login-brand img.login-brand-logo{width:auto!important;height:auto!important;max-width:min(240px,80%)!important;max-height:105px!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:0!important;object-fit:contain!important}
.v59-time-input{display:flex;align-items:center;min-width:0;background:#fff;border:1px solid #d9e5f5;border-radius:11px;overflow:hidden}
.v59-time-input input{width:100%;min-width:0;border:0!important;outline:none;padding:11px 10px!important;background:transparent!important;font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;letter-spacing:.04em}
.v59-time-input:focus-within{border-color:#668deb;box-shadow:0 0 0 3px rgba(85,116,215,.12)}
.v59-time-input span{padding:0 11px 0 7px;font-size:11px;color:#557091;font-weight:800;white-space:nowrap}
.v59-logo-feedback{font-size:11px;line-height:1.5;color:#607b99;margin:7px 0 4px}
@media(max-width:780px){.brand img.sidebar-logo,.sidebar .brand img.sidebar-logo{max-width:90px!important;max-height:55px!important}.v59-time-input input{font-size:13px}}

/* v60: visible, accessible export controls for HR ranking boards */
.v58-board-actions,.v58-board-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.v58-board-actions{margin-left:auto;flex-shrink:0}
.v58-board-actions .v58-insight-export,.v58-board-toolbar .v58-insight-export{appearance:none;background:#fff;color:#30517b;border:1px solid #d9e5f4;border-radius:8px;padding:8px 11px;font:inherit;font-size:11px;font-weight:750;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;min-width:51px}
.v58-board-actions .v58-insight-export:hover,.v58-board-toolbar .v58-insight-export:hover{background:#eef4ff;border-color:#91acf1;box-shadow:0 2px 8px rgba(40,70,140,.08)}
.v58-board-actions .v58-insight-export:focus-visible,.v58-board-toolbar .v58-insight-export:focus-visible{outline:3px solid #9fbbff;outline-offset:2px}
.v58-board-actions .v58-insight-export:disabled,.v58-board-toolbar .v58-insight-export:disabled{opacity:.65;cursor:wait}
@media(max-width:680px){.v58-board-actions{margin:8px 0 0;width:100%;justify-content:flex-start}.v58-board-toolbar{width:100%}.v58-board-toolbar .v58-insight-export{flex:1;min-width:0}}


/* v62 — readable numbered HR leaderboards; retain existing table/action styling. */
#view-dashboard .v30-rank-card .table-scroll{max-height:560px;overflow:auto}
#view-dashboard .v30-rank-card table{min-width:570px}
#view-dashboard .v30-rank-card th,#view-dashboard .v30-rank-card td{padding:13px 11px}
#view-dashboard .v30-rank-card .v62-rank-th{width:70px;min-width:70px;text-align:center}
#view-dashboard .v30-rank-card .v62-rank-cell{text-align:center;width:70px;min-width:70px}
.v62-rank-badge{display:inline-flex;align-items:center;justify-content:center;min-width:35px;height:31px;padding:0 7px;border-radius:9px;background:#eff3fa;border:1px solid #dce5f2;color:#536881;font-size:11px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.v62-rank-badge.v62-rank-top-1{background:#fff0c9;border-color:#f5d889;color:#946200;box-shadow:inset 0 1px rgba(255,255,255,.55)}
.v62-rank-badge.v62-rank-top-2{background:#e7edf7;border-color:#ced8e7;color:#4b6381}
.v62-rank-badge.v62-rank-top-3{background:#f7e8dc;border-color:#edcbae;color:#a4612c}
.v62-rank-badge.v62-rank-late.v62-rank-top-1{background:#ffebea;border-color:#f5c7c2;color:#b44235}
#view-dashboard .v30-rank-card tbody tr.v62-rank-leader{background:#fbfcf5}
#view-dashboard .v30-rank-card:nth-child(2) tbody tr.v62-rank-leader{background:#fffaf9}
#view-dashboard .v30-rank-card tbody tr.v62-rank-leader:hover{background:#f3f7ff}
@media(max-width:680px){#view-dashboard .v30-rank-card th,#view-dashboard .v30-rank-card td{padding:11px 9px}#view-dashboard .v30-rank-card .v62-rank-cell{width:58px;min-width:58px}#view-dashboard .v30-rank-card .v62-rank-th{width:58px;min-width:58px}}

/* v63 — clear spacing, typography and a dedicated HR notes section */
.daily-dialog{width:min(900px,calc(100vw - 26px));padding:28px 32px;line-height:1.55}
.daily-dialog .daily-modal-head{margin-bottom:20px;padding:13px 0 22px}
.daily-modal-head h3{font-size:21px;line-height:1.35;margin:4px 0 5px;color:#183657}
.daily-modal-head p{font-size:12px;line-height:1.55;color:#6b819b}
.daily-modal-head small{font-size:10px;letter-spacing:1.1px}
.daily-modal-badges{gap:9px;margin:14px 0 18px}
.daily-dialog .daily-badge{padding:7px 11px;font-size:11px;font-weight:750;line-height:1.3}
.daily-operational-day{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 24px;padding:13px 17px;font-size:12px}
.daily-operational-day strong{font-size:14px;letter-spacing:.2px}
.v63-section-title{font-size:12px;font-weight:800;color:#254467;margin-bottom:12px;letter-spacing:.12px}
.daily-detail-grid{gap:14px}
.daily-detail-grid>div{min-height:108px;padding:17px 19px;gap:13px;border-radius:14px}
.daily-detail-grid>div>small{font-size:12px;font-weight:600;color:#657d9a}
.v63-timestamp{display:flex;flex-direction:column;gap:5px;min-width:0}
.v63-clock{display:block;color:#173959;font-size:21px;font-weight:830;font-variant-numeric:tabular-nums;line-height:1.2;letter-spacing:-.35px}
.v63-clock small{font-size:11px;font-weight:600;color:#7b8fa8;letter-spacing:0}
.v63-date{display:block;font-size:11px;line-height:1.5;color:#768da7}
.v63-no-scan{font-size:13px;color:#8494aa;font-weight:600}
.daily-variance{padding:18px 20px;margin-top:22px;border-radius:14px}
.daily-variance strong{font-size:13px;margin-bottom:12px}
.daily-variance p{font-size:11px;line-height:1.65;margin:12px 0 0;color:#6a819d}
.v63-variance-items{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.v63-variance-tag{display:inline-block;padding:7px 11px;background:#edf2fa;border:1px solid #e0e8f5;border-radius:8px;font-size:11px;font-weight:700;line-height:1.5;color:#56718d}
.v63-variance-tag.negative{background:#fff0f0;color:#b94243;border-color:#f5d8d8}
.v63-variance-tag.warning{background:#fff5e5;color:#a86f25;border-color:#f1e1c4}
.v63-variance-tag.positive{background:#eaf9f1;color:#067b55;border-color:#cff0de}
.v63-note-panel{margin-top:23px;padding:19px 21px 21px;border-radius:15px;border:1px solid #dbe5f3;background:#fbfcff}
.v63-note-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.v63-note-head small{display:block;font-size:10px;letter-spacing:.9px;font-weight:800;color:#7290b2;margin-bottom:4px}
.v63-note-head h4{font-size:14px;font-weight:800;color:#24486b}
.v63-note-tag{background:#e8f0ff;padding:6px 10px;color:#47699c;border-radius:9px;font-size:10px;font-weight:750}
.v63-note-label{display:block;font-size:12px;font-weight:600;color:#576f8b;margin-bottom:9px;line-height:1.55}
.v63-note-panel textarea{width:100%;max-width:100%;min-height:98px;font-size:13px;line-height:1.65;border-radius:11px;padding:13px 14px;background:#fff;resize:vertical}
.v63-note-readonly{padding:13px 15px;background:#fff;border:1px solid #e6edf6;border-radius:10px;font-size:13px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}
.v63-note-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:13px}
.v63-note-footleft{display:flex;flex-direction:column;gap:5px}
.v63-note-meta,.v63-note-footleft small{color:#7e8fa7;font-size:10px;line-height:1.5}
.v63-note-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.v63-note-panel .v63-note-meta{display:block;margin-top:8px}
.daily-scan-head{margin-top:27px;padding:0 2px 12px;border-bottom:1px solid #e8eef6;gap:10px}
.daily-scan-head strong{font-size:13px;color:#1c3d5c}
.daily-scan-head small{font-size:11px;color:#8193aa;font-weight:600;line-height:1.6}
.daily-scans{margin-top:9px;max-height:275px;overflow-y:auto;display:flex;flex-direction:column;gap:9px}
.daily-scan{padding:14px 15px;min-height:69px;background:#fff;border:1px solid #e6edf6;border-radius:12px;gap:12px;align-items:center}
.v63-scan-time{display:flex;flex-direction:column;gap:3px;min-width:175px}
.v63-scan-time strong{font-size:12px;color:#24466b}
.v63-scan-time small,.v63-scan-meta{font-size:11px;color:#7c8ea7}
.v63-scan-meta{flex:1;min-width:130px;line-height:1.5}
.daily-modal-note{margin-top:20px;padding:14px 16px;line-height:1.65;font-size:11px}
.daily-table{min-width:1050px;border-collapse:separate;border-spacing:0}
.daily-table th{padding:15px 17px;white-space:nowrap;font-size:11px;letter-spacing:.3px}
.daily-table td{padding:16px 17px;vertical-align:middle;line-height:1.55;font-size:12px}
.daily-table td:nth-child(2){min-width:125px}
.daily-table td:nth-child(7){min-width:135px}
.daily-table td:last-child{min-width:116px}
.daily-table td:first-child b,.daily-table td:nth-child(3)>strong{font-size:12px}
.daily-table td:first-child small,.daily-table td:nth-child(3)>small{font-size:11px;margin-top:5px;line-height:1.6}
.v63-has-note{display:inline-block;color:#396b9a;font-weight:750}
.daily-guide{line-height:1.75;font-size:11px;padding:14px 17px}
.v63-report-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-left:8px}
.v63-report-actions .btn{min-height:39px;font-size:11px;padding:8px 12px}
@media(max-width:780px){.daily-dialog{padding:17px 16px}.daily-detail-grid{gap:10px}.daily-detail-grid>div{padding:13px;min-height:100px}.v63-clock{font-size:17px}.v63-note-panel{padding:15px}.daily-modal-head h3{font-size:18px}.daily-operational-day{margin-bottom:19px}.v63-report-actions{margin-left:0;width:100%}.v63-report-actions .btn{flex:1}.daily-scan{align-items:flex-start}.v63-scan-time{min-width:0;flex-basis:100%}.daily-scans{max-height:340px}}

/* v65 – attendance note editor in employee history */
.v65-note-dialog{width:min(570px,calc(100vw - 28px));max-height:calc(100vh - 30px);overflow:auto}.v65-note-content{display:grid;gap:12px;padding:20px 24px}.v65-note-content label{font-size:13px;font-weight:700;color:#254365}.v65-note-content textarea{display:block;min-height:126px;width:100%;padding:13px;border:1px solid #cbd8e7;border-radius:11px;line-height:1.65;font:inherit;resize:vertical;box-sizing:border-box}.v65-note-meta{display:flex;justify-content:space-between;gap:10px;color:#697f9c}.v65-history-note{border:1px solid #bfd2f2;background:#f0f6ff;border-radius:12px;padding:14px 17px;margin:12px 0;white-space:normal;overflow-wrap:anywhere}.v65-history-note>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:9px;color:#1b426c}.v65-history-note small{font-size:11px;color:#55759d}.v65-history-note p{margin:8px 0 0;line-height:1.6;white-space:pre-wrap;font-size:13px}.v65-history-note-edit{margin:9px 0 15px;display:inline-flex;min-height:37px;align-items:center}.roster-summary-panel .roster-disclaimer{line-height:1.6}@media(max-width:720px){.v65-note-content{padding:16px}.v65-history-note>div{display:block}}

/* v67 - make planning mode visibly distinct without duplicating the editor. */
.v67-estimate-banner{display:flex;flex-direction:column;gap:7px;padding:15px 18px;margin-bottom:14px;border:1px solid #c5dbff;border-left:5px solid #4169e1;border-radius:13px;background:#eff5ff;color:#17375d;font-size:12px;line-height:1.6}
.v67-estimate-banner strong{font-size:12px;letter-spacing:.065em;color:#1e40af}
.v67-estimate-banner.hidden{display:none!important}
.v67-estimate-mode .roster-summary-panel{border-top:3px solid #4169e1}
@media(max-width:700px){.v67-estimate-banner{padding:12px}}

/* AttendanceOS v68: DW Control — compact spreadsheet inspired weekly grid */
.dw-panel,.dw-detail-panel{overflow:hidden}.dw-head{gap:14px;flex-wrap:wrap}.dw-controls{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:16px 20px;background:#f7f9fd;border-bottom:1px solid #e2e9f4}.dw-controls label{display:flex;flex-direction:column;gap:6px;min-width:180px;color:#58718e;font-size:11px;font-weight:700}.dw-controls label select,.dw-controls label input{border:1px solid #d4e0f0;border-radius:10px;background:white;color:#183452;padding:9px 12px;min-height:40px}.dw-banner{margin:14px 20px!important;display:flex!important;align-items:flex-start;flex-wrap:wrap;gap:10px}.dw-banner strong{white-space:nowrap}.dw-banner span{max-width:950px}.dw-stat-grid{padding:0 20px 15px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.dw-stat{border:1px solid #e0e9f6;background:#f4f7fd;border-radius:13px;padding:13px 15px;min-width:0}.dw-stat span{display:block;font-size:11px;color:#627993;margin-bottom:8px}.dw-stat strong{font-size:21px;color:#123255;font-variant-numeric:tabular-nums}.dw-week-label{padding:12px 20px;font-weight:800;color:#254467;background:#f6f9fd;border-top:1px solid #e0e9f4}.dw-table-scroller{padding:0 16px 16px;overflow-x:auto}.dw-week-table{border-collapse:separate;border-spacing:0;min-width:930px;width:100%;table-layout:fixed;font-size:12px}.dw-week-table th,.dw-week-table td{border-bottom:1px solid #e1e8f2;border-right:1px solid #e6edf7;padding:12px 8px;text-align:center}.dw-week-table thead th{background:#132b4c;color:white;font-weight:800}.dw-week-table thead th:first-child{width:226px;position:sticky;left:0;z-index:3;text-align:left}.dw-week-table thead th:not(:first-child){width:calc((100% - 226px)/7)}.dw-week-table th small,.dw-detail-table th small{display:block;font-size:10px;margin-top:4px;font-weight:500;opacity:.85}.dw-week-table th:first-child{text-align:left;position:sticky;left:0;z-index:2;background:#f9fbff;white-space:nowrap;color:#264568}.dw-week-table tr:nth-child(even) td{background:#fbfcfe}.dw-week-table tr.dw-key-row th,.dw-week-table tr.dw-key-row td{background:#edf3ff;font-weight:800}.dw-week-table tr.dw-variance-row th,.dw-week-table tr.dw-variance-row td{background:#dce9ff}.dw-week-table thead th.dw-weekend{background:#a62d36}.dw-week-table td strong{font-variant-numeric:tabular-nums}.dw-manual-input{min-width:0;width:100%;max-width:122px;background:white;border:1px solid #d4e1f4;border-radius:8px;color:#173a5f;font-size:12px;padding:8px 4px;text-align:center;font-variant-numeric:tabular-nums}.dw-manual-input:focus{outline:2px solid #5079e6;outline-offset:1px}.dw-manual-input:disabled{background:#f1f5fa;color:#788ba3}.dw-over-budget{color:#b42318!important}.dw-footer-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px;padding:14px 20px 18px;border-top:1px solid #e2eaf5}.dw-footer-actions p{color:#6b809a;font-size:11px;margin:0;max-width:720px}.dw-detail-panel{margin-top:18px}.dw-detail-table{min-width:800px;width:100%;border-collapse:collapse}.dw-detail-table th{background:#f1f6fe;text-align:center;padding:13px 11px;color:#496387;font-size:11px}.dw-detail-table td{border-top:1px solid #e3eaf5;padding:12px;text-align:center;font-size:12px}.dw-detail-table th:first-child,.dw-detail-table td:first-child{text-align:left}.dw-detail-table td small{display:block;color:#889cb3;font-size:10px}.dw-shift-code{background:#e8efff;color:#2455b5;padding:4px 9px;border-radius:8px;font-weight:750}.dw-empty{text-align:center!important;color:#617691;padding:26px!important}@media(max-width:900px){.dw-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dw-controls label{flex:1}}@media(max-width:520px){.dw-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 12px 14px}.dw-stat strong{font-size:17px}.dw-controls{padding:12px}.dw-week-label{padding:12px}}

/* AttendanceOS v69 — DW Control layout correction; all rules scoped to this page. */
#view-dwcontrol{display:flex;flex-direction:column;gap:16px;min-width:0;padding-bottom:26px}
#view-dwcontrol.hidden{display:none!important}
#view-dwcontrol>.panel{width:100%;min-width:0;overflow:hidden;margin:0}
#view-dwcontrol .dw-head{padding:19px 22px;align-items:flex-start;justify-content:space-between;gap:18px}
#view-dwcontrol .dw-head h3{font-size:17px;line-height:1.35;letter-spacing:-.02em;margin:0 0 5px}
#view-dwcontrol .dw-title-separator{color:#a9b9ce;font-weight:400;margin:0 3px}
#view-dwcontrol .dw-head p,#view-dwcontrol .dw-sheet-heading p,#view-dwcontrol .dw-detail-header p{font-size:11px;color:#6b7f9a;line-height:1.6;margin:4px 0 0}
#view-dwcontrol .dw-export-actions{display:flex;flex-wrap:wrap;gap:7px}
#view-dwcontrol .dw-export-actions>.btn{padding:9px 13px;min-height:38px;white-space:nowrap;font-size:11px}
#view-dwcontrol .dw-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px 22px 17px;background:#f8faff}
#view-dwcontrol .dw-controls label{display:flex;flex:0 1 230px;flex-direction:column;align-items:stretch;gap:7px;min-width:168px;font-size:11px;font-weight:750;color:#52708e;line-height:1.4}
#view-dwcontrol .dw-controls select,#view-dwcontrol .dw-controls input{height:42px;max-width:none;min-width:0;width:100%;font-size:12px;box-sizing:border-box;padding:9px 11px}
#view-dwcontrol .dw-week-nav{display:flex;flex-wrap:wrap;gap:7px;align-items:end}
#view-dwcontrol .dw-week-nav>.btn{min-height:41px;padding:9px 12px;white-space:nowrap}
#view-dwcontrol .dw-banner{margin:15px 22px!important;padding:14px 16px!important;gap:5px;flex-direction:column;align-items:start}
#view-dwcontrol .dw-banner strong{font-size:11px}
#view-dwcontrol .dw-banner span{font-size:11px;line-height:1.7}
#view-dwcontrol .dw-stat-grid{padding:0 22px 20px;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
#view-dwcontrol .dw-stat{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 17px;min-height:105px}
#view-dwcontrol .dw-stat>span{font-size:10px;letter-spacing:.055em;font-weight:750;line-height:1.4;margin:0}
#view-dwcontrol .dw-stat>strong{display:block;line-height:1.35;margin:0;font-size:23px}
#view-dwcontrol .dw-stat>small{font-size:10px;color:#8496ac;line-height:1.5}
#view-dwcontrol .dw-detail-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding:19px 22px}
#view-dwcontrol .dw-kicker{font-size:10px;letter-spacing:.075em;color:#4166b7;font-weight:850;margin-bottom:7px}
#view-dwcontrol .dw-detail-header h3,#view-dwcontrol .dw-sheet-heading h3{font-size:15px;margin:0;color:#1a3555;line-height:1.35}
#view-dwcontrol .dw-detail-pills{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
#view-dwcontrol .dw-week-badge{display:inline-flex;align-items:center;background:#f2f6fd;border:1px solid #e0e8f4;border-radius:8px;padding:8px 10px;font-size:10px;color:#5c7290;font-weight:750}
#view-dwcontrol .dw-roster-note{display:flex;align-items:center;gap:10px;margin:0 22px 15px;background:#f0f5ff;border:1px solid #dfebfb;color:#527092;border-radius:10px;padding:11px 13px;font-size:11px;line-height:1.6}
#view-dwcontrol .dw-roster-note-icon{flex:0 0 22px;display:grid;place-items:center;height:22px;border-radius:50%;background:#dce9ff;color:#315dc0;font-weight:900}
#view-dwcontrol .dw-roster-scroller{max-width:100%;overflow-x:auto;overflow-y:auto;max-height:min(50vh,570px);margin:0 18px 18px;border:1px solid #e4ebf4;border-radius:10px}
#view-dwcontrol .dw-detail-table{min-width:930px;table-layout:fixed;border-collapse:separate;border-spacing:0}
#view-dwcontrol .dw-detail-table th,#view-dwcontrol .dw-detail-table td{font-size:11px;text-align:center;padding:11px 9px;border-bottom:1px solid #e5ecf5;border-right:1px solid #eff3fa;vertical-align:middle}
#view-dwcontrol .dw-detail-table thead th{position:sticky;top:0;z-index:3;background:#eff4fc;color:#536e94;font-size:10px;white-space:nowrap}
#view-dwcontrol .dw-detail-table th:first-child,#view-dwcontrol .dw-detail-table td:first-child{position:sticky;left:0;z-index:2;text-align:left;background:#fff;min-width:170px;width:21%}
#view-dwcontrol .dw-detail-table thead th:first-child{z-index:5;background:#eaf1fd}
#view-dwcontrol .dw-detail-table th:nth-child(2),#view-dwcontrol .dw-detail-table td:nth-child(2){min-width:136px;width:17%;text-align:left}
#view-dwcontrol .dw-detail-table td:first-child b{display:block;color:#1b3d62;font-size:11px}
#view-dwcontrol .dw-detail-table td:first-child small{font-size:10px;color:#859ab4;margin-top:4px}
#view-dwcontrol .dw-detail-table tr:nth-child(even) td{background:#fbfcff}
#view-dwcontrol .dw-detail-table tr:nth-child(even) td:first-child{background:#fbfcff}
#view-dwcontrol .dw-detail-table th:last-child,#view-dwcontrol .dw-detail-table td:last-child{width:84px;font-weight:800}
#view-dwcontrol .dw-position{font-size:10px;color:#627c9d;display:inline-block;max-width:160px;overflow-wrap:anywhere}
#view-dwcontrol .dw-shift-code{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:7px 9px;border-radius:8px;font-weight:800}
#view-dwcontrol .dw-working{background:#e4f1fc;color:#1d589f}
#view-dwcontrol .dw-not-working{background:#f1f2f6;color:#7b889e}
#view-dwcontrol .dw-no-shift{color:#bac5d5}
#view-dwcontrol .dw-days-total{background:#e6f6ee;color:#128458;border-radius:8px;padding:6px 12px}
#view-dwcontrol .dw-detail-table tfoot th,#view-dwcontrol .dw-detail-table tfoot td{position:sticky;bottom:0;background:#dce9ff!important;color:#1e437a;font-weight:850;border-top:1px solid #c3d4f3;z-index:3}
#view-dwcontrol .dw-detail-table tfoot th{z-index:4;text-align:left!important}
#view-dwcontrol .dw-sheet-heading{padding:19px 22px}
#view-dwcontrol .dw-week-label{font-size:12px;padding:13px 22px}
#view-dwcontrol .dw-table-scroller{padding:0 18px 18px}
#view-dwcontrol .dw-week-table{min-width:960px}
#view-dwcontrol .dw-week-table thead th:first-child{background:#142e50;color:#fff}
#view-dwcontrol .dw-week-table th:first-child{min-width:200px}
#view-dwcontrol .dw-week-table tbody td{font-size:12px}
#view-dwcontrol .dw-week-table td .dw-manual-input{height:38px;max-width:118px;box-sizing:border-box}
#view-dwcontrol .dw-footer-actions{padding:16px 22px 20px;align-items:center}
#view-dwcontrol .dw-footer-actions p{line-height:1.7}
@media(max-width:1050px){#view-dwcontrol .dw-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){#view-dwcontrol .dw-head,#view-dwcontrol .dw-detail-header,#view-dwcontrol .dw-sheet-heading{padding:15px}#view-dwcontrol .dw-controls{padding:15px}#view-dwcontrol .dw-controls label{flex:1 1 100%}#view-dwcontrol .dw-week-nav{width:100%}#view-dwcontrol .dw-week-nav>.btn{flex:1}#view-dwcontrol .dw-banner{margin:12px 15px!important}#view-dwcontrol .dw-stat-grid{padding:0 15px 15px;gap:8px}#view-dwcontrol .dw-stat{padding:12px;min-height:95px}#view-dwcontrol .dw-stat>strong{font-size:18px}#view-dwcontrol .dw-roster-note{margin:0 15px 12px}#view-dwcontrol .dw-roster-scroller{margin:0 12px 14px}#view-dwcontrol .dw-table-scroller{padding:0 12px 14px}}

/* v72 — explicit warning for incomplete shift times (cross-midnight) */
.v72-shift-warning{padding:15px 17px;margin:0 0 15px;background:#fff7e7;border:1px solid #e8c987;border-left:4px solid #bb8119;border-radius:11px;color:#744d0b;line-height:1.55;font-size:12px}
.v72-shift-warning strong{display:block;font-size:13px;margin-bottom:5px}.v72-shift-warning p{margin:0;color:#744d0b}.v72-shift-warning b{font-weight:800}

/* v74 ranking drill-down + automatic administrative end-of-day note */
.v74-evidence-trigger{appearance:none;display:flex;align-items:center;gap:10px;width:100%;padding:6px 3px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left;border-radius:8px}
.v74-evidence-trigger:hover,.v74-evidence-trigger:focus-visible{background:#e9f1fe;outline:2px solid #bdd4ff;outline-offset:0}
.v74-evidence-trigger>span:last-child{margin-left:auto;color:#3761b7;font-weight:700}
/* v95 regenerated ranking evidence dialog: one vertical scroll owner.
   Do not nest the global .table-scroll (its overscroll-behavior:contain
   intercepted wheel events when the pointer hovered a row). */
#rankingEvidenceModal{overflow:hidden;align-items:center;justify-content:center;padding:clamp(8px,2vw,18px)}
#rankingEvidenceModal .v74-evidence-dialog{box-sizing:border-box;width:min(900px,100%);max-width:900px;max-height:calc(100dvh - 36px);height:auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:0;overscroll-behavior:auto;scrollbar-gutter:auto}
#rankingEvidenceModal .v31-modal-head{box-sizing:border-box;flex:0 0 auto;position:relative;top:auto;padding:20px 24px;margin:0;border:0;border-bottom:1px solid #e2eaf5;background:linear-gradient(110deg,#fff,#f8fbff);border-radius:22px 22px 0 0;z-index:2}
#rankingEvidenceModal .v74-evidence-body{box-sizing:border-box;display:block;flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:auto;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#aebfdb #eef3fb;touch-action:pan-y;padding:18px 24px 25px;line-height:1.55}
#rankingEvidenceModal .v74-evidence-help{font-size:12px;line-height:1.65;color:#627b99;margin:8px 0 16px}
#rankingEvidenceModal .v95-evidence-table-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-y:auto;overscroll-behavior-x:auto;border:1px solid #e1e9f5;border-radius:14px;background:#fff}
#rankingEvidenceModal .v95-evidence-table{min-width:660px;width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
#rankingEvidenceModal .v95-evidence-table th{background:#f3f7fd;color:#567295;letter-spacing:.055em;font-size:10px;padding:13px 12px;white-space:nowrap}
#rankingEvidenceModal .v95-evidence-table td{padding:12px 12px;white-space:nowrap;border-bottom:1px solid #edf2f8;font-size:11px;color:#405c7d}
#rankingEvidenceModal .v95-evidence-table tbody tr:nth-child(even){background:#fbfdff}
#rankingEvidenceModal .v95-evidence-table tbody tr:hover{background:#edf4ff}
#rankingEvidenceModal .v95-evidence-table td b{font-weight:850;color:#264d86}
#rankingEvidenceModal .v95-evidence-table .btn{min-height:34px;border-radius:10px;font-size:11px;white-space:nowrap}
#rankingEvidenceModal .v74-evidence-body:focus-visible{outline:2px solid #4770dd;outline-offset:-3px}
@media(max-width:650px){#rankingEvidenceModal{padding:8px}#rankingEvidenceModal .v74-evidence-dialog{max-height:calc(100dvh - 16px);border-radius:17px}#rankingEvidenceModal .v31-modal-head{padding:15px 16px}#rankingEvidenceModal .v74-evidence-body{padding:14px 12px 20px;scrollbar-gutter:auto}#rankingEvidenceModal .v95-evidence-table{min-width:640px}}
.v74-auto-note{padding:12px 14px;margin:12px 0;border:1px solid #ffdfac;border-radius:10px;background:#fff8eb;color:#805013;font-size:12px;line-height:1.55}
.v74-auto-note p{margin:5px 0 0}
@media print{.v74-evidence-trigger{outline:0}}

.v74-admin-inline{display:inline-block;font-size:10px;font-weight:700;color:#936100;border:1px solid #ffd88f;background:#fff7e7;border-radius:6px;padding:2px 5px;vertical-align:middle}

/* v77: Default HR insight period follows Actual Roster; applied filter is explicit. */
.v77-insight-status{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;padding:11px 22px 14px;border-bottom:1px solid #e9eef7;background:#f8faff;font-size:11px;color:#435b80;line-height:1.5}
#insightPeriodMode{font-weight:800;color:#244d9a}
#insightAppliedScope{color:#667a95}
#insightResetPayroll{white-space:normal;text-align:center}
@media(max-width:720px){.v77-insight-status{flex-direction:column;align-items:start}.v30-filterbar #insightResetPayroll{width:100%}}

/* v78: clear, responsive, non-intrusive roster transfer flow. */
#rosterCopyOpen{border-color:#a6bdef;background:#f5f8ff;color:#214580;font-weight:750}
#rosterCopyOpen:hover{background:#e7efff}
.v78-copy-dialog{max-width:680px;width:min(680px,calc(100vw - 24px));padding:0;overflow:hidden;max-height:min(92vh,800px);display:flex;flex-direction:column}
.v78-copy-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 18px;border-bottom:1px solid #dce6f4;gap:16px}
.v78-copy-head h3{margin:5px 0;font-size:21px;color:#152f54}.v78-copy-head p{margin:4px 0 0;color:#58708f;font-size:12px}
.v78-copy-body{padding:20px 26px;overflow-y:auto;display:grid;gap:16px}
.v78-copy-direction{display:flex;align-items:center;justify-content:center;gap:16px;background:#f1f6ff;border:1px solid #d9e6f8;border-radius:12px;padding:14px;color:#1c427b}
.v78-copy-direction span{background:white;border-radius:8px;padding:9px 14px;font-size:12px;font-weight:850;border:1px solid #dbe5f4}.v78-copy-direction b{font-size:22px;color:#3561c9}
.v78-copy-scope{background:#fff;border-radius:9px;padding:12px 14px;border:1px solid #e0e8f5;line-height:1.6;font-size:12px;color:#466282}
.v78-copy-options{margin:0;padding:14px;border:1px solid #dce7f6;border-radius:12px;display:grid;gap:12px}.v78-copy-options legend{font-size:12px;font-weight:750;color:#263e61;padding:0 5px}
.v78-copy-options label{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:650;color:#304c6e}.v78-copy-options input{accent-color:#3e61d8}.v78-copy-options small{font-weight:400;color:#66809c}
.v78-copy-alert{margin:0;background:#fff8e9;border:1px solid #eed9a9;border-radius:10px;color:#886326;font-size:12px;line-height:1.55;padding:11px 13px}
.v78-copy-preview{min-height:90px;background:#f5f8fe;border:1px solid #d9e6f5;border-radius:10px;padding:14px;display:grid;gap:7px;font-size:12px;color:#49607c}.v78-copy-preview strong{font-size:20px;color:#122e58}.v78-copy-preview small{color:#687f9c;line-height:1.45}.v78-copy-counts{display:flex;flex-wrap:wrap;gap:8px}.v78-copy-counts span{border:1px solid #dce8f5;background:#fff;border-radius:7px;padding:5px 7px;font-size:11px}
.v78-copy-confirm{display:flex;align-items:flex-start;gap:8px;color:#1b395c;font-size:12px;line-height:1.55}.v78-copy-confirm input{margin-top:3px;accent-color:#3e61d8}
.v78-copy-footer{border-top:1px solid #dce6f4;padding:15px 26px;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;background:white}
@media(max-width:640px){.v78-copy-head{padding:18px}.v78-copy-body{padding:15px}.v78-copy-footer{padding:12px}.v78-copy-direction{gap:6px}.v78-copy-direction span{padding:7px;font-size:10px}}

/* AttendanceOS v81 - motion system uses only opacity and transform (no layout animation). */
.v81-sort-group{display:flex;align-items:center;gap:7px;margin-left:auto;color:#637996;font-size:11px;white-space:nowrap}
.v81-sort-group select{font:inherit;font-weight:650;color:#17365b;background:#fff;border:1px solid #d7e1f1;border-radius:9px;padding:9px 8px;max-width:185px;cursor:pointer}
.v30-rank-head{flex-wrap:wrap;row-gap:10px}
.v81-sort-group:focus-within select{outline:2px solid #557be6;outline-offset:2px}
#shell:not(.hidden) .nav-item,#shell:not(.hidden) button,#shell:not(.hidden) select{transition:background-color .17s ease,color .17s ease,border-color .17s ease,box-shadow .18s ease,transform .17s ease}
#shell:not(.hidden) button:not(:disabled):active{transform:scale(.975)}
#shell:not(.hidden) .nav-item:hover{transform:translateX(2px)}
.v81-enter{animation:none}
@keyframes v81PageIn{from{opacity:.78;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
#shell .edit-overlay:not(.hidden)>.edit-dialog,#shell .modal-backdrop:not(.hidden)>.modal-card,#shell .modal:not(.hidden)>.modal-panel{animation:v81ModalIn .18s cubic-bezier(.15,.7,.3,1) both}
@keyframes v81ModalIn{from{opacity:.7;transform:translateY(7px) scale(.987)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.v81-enter,#shell .edit-overlay:not(.hidden)>.edit-dialog,#shell .modal-backdrop:not(.hidden)>.modal-card,#shell .modal:not(.hidden)>.modal-panel{animation:none!important}#shell button,#shell .nav-item,#shell select{transition:none!important;transform:none!important}}

/* Keep live status updates from resizing navigation/header while users scroll. */
#attendanceLatestText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#attendanceLatestSync{white-space:nowrap}

/* v83 - employee lifecycle: clear inline status and date validation inside modal. */
#editEmployeeModal .v83-field-help {font-size:11px;line-height:1.55;color:#687f9d;margin:4px 0 9px;}
#editEmployeeModal .v83-inline-error {border:1px solid #f4bec4;background:#fff0f1;color:#a72f3d;border-radius:10px;padding:11px 13px;margin:12px 0;font-size:12px;line-height:1.55;font-weight:750;}
#editEmployeeModal .v83-inline-error.hidden{display:none!important;}
#editEmployeeModal input.v83-invalid{border-color:#d34d61!important;box-shadow:0 0 0 3px #fbe4e8;}
#editEmployeeModal .v83-field-help.v83-required{color:#775b26;background:#fff7e6;padding:8px 10px;border-radius:8px;}
#editEmployeeModal #v83EmployeeSave[disabled]{opacity:.65;cursor:wait;}

/* v107 — unauthorized items are absent from navigation; no locked placeholders. */
#nav [data-view][hidden],#mobileBottomNav [data-view][hidden],#nav .nav-label[hidden],.permission-hidden{display:none!important}
.permissions-pending #nav,.permissions-pending #mobileBottomNav{visibility:hidden!important}
.v107-access-empty{margin:14px 12px;padding:17px 13px;display:flex;flex-direction:column;gap:7px;background:#ffffff0d;border:1px solid #ffffff16;border-radius:12px;color:#f0f5fc;font-size:12px;line-height:1.5}
.v107-access-empty span{font-size:11px;color:#b2c3db}
.v107-access-empty.hidden{display:none!important}

/* ===== END: assets/style.css ===== */

/* ===== 02. ORIGINAL SOURCE: assets/profile-v76.css ===== */
/* v76 profile action — isolated; no permission-driven sidebar changes */
.v76-profile-wrap{position:relative;display:flex;align-items:center;min-width:0}
.v76-profile-trigger{appearance:none;display:flex;align-items:center;gap:9px;background:transparent;border:1px solid transparent;padding:5px 7px;border-radius:11px;color:inherit;cursor:pointer;font:inherit;max-width:260px;transition:background .18s,border-color .18s}
.v76-profile-trigger:hover,.v76-profile-trigger[aria-expanded="true"]{background:#eff4ff;border-color:#dbe6fa}
.v76-profile-trigger:focus-visible,.v76-profile-menu button:focus-visible,.v76-password-dialog button:focus-visible,.v76-password-dialog input:focus-visible{outline:2px solid #3d6be4;outline-offset:2px}
.v76-profile-trigger .avatar{flex-shrink:0}.v76-profile-trigger .admin-label{overflow:hidden;text-overflow:ellipsis}
.v76-chevron{flex-shrink:0;color:#8195b5;transition:transform .2s}.v76-profile-trigger[aria-expanded="true"] .v76-chevron{transform:rotate(180deg)}
.v76-profile-menu{position:absolute;right:0;top:calc(100% + 12px);z-index:250;width:min(310px,calc(100vw - 26px));background:white;border:1px solid #dce6f4;box-shadow:0 22px 44px rgba(24,47,87,.16);border-radius:14px;padding:9px;color:#203b5e;max-height:75vh;overflow:auto}
.v76-account-identity{display:flex;flex-direction:column;gap:4px;padding:11px 12px 13px;border-bottom:1px solid #e7edf7}.v76-account-identity strong{font-size:13px;line-height:1.4}.v76-account-identity span{font-size:11px;color:#687e9d;word-break:break-word}
.v76-change-password-action{display:flex;align-items:center;gap:10px;width:100%;padding:13px 12px;border:0;background:transparent;color:#1f4c91;font:inherit;font-size:12px;font-weight:800;text-align:left;border-radius:9px;cursor:pointer}.v76-change-password-action:hover{background:#eef4ff}.v76-change-password-action span{margin-left:auto;color:#6e85a7}
.v76-menu-hint{font-size:10px;line-height:1.6;color:#8292aa;margin:1px 10px 7px}
.v76-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(9,28,51,.58);backdrop-filter:blur(5px);overflow-y:auto}
.v76-password-dialog{width:min(468px,100%);max-height:min(92vh,750px);overflow-y:auto;background:#fff;border:1px solid #dbe5f5;border-radius:18px;box-shadow:0 25px 65px rgba(14,28,48,.26);font-family:inherit;color:#1a3556}
.v76-password-header{display:flex;gap:14px;justify-content:space-between;padding:26px 26px 20px;border-bottom:1px solid #e9eef7}.v76-kicker{display:block;color:#3f67ce;font-size:10px;font-weight:800;letter-spacing:1.25px;margin-bottom:8px}.v76-password-header h2{font-size:21px;line-height:1.3;letter-spacing:-.3px;margin:0 0 8px}.v76-password-header p{margin:0;max-width:340px;font-size:12px;line-height:1.6;color:#7284a0}
.v76-dialog-close{flex-shrink:0;width:35px;height:35px;border:1px solid #d9e4f3;border-radius:10px;background:#fff;color:#4f6890;cursor:pointer;font-size:23px;line-height:1}
.v76-password-form{display:flex;flex-direction:column;gap:16px;padding:23px 26px 25px}.v76-password-form label{display:flex;flex-direction:column;gap:7px;margin:0;font-size:12px;font-weight:750;color:#355276}
.v76-password-form input{box-sizing:border-box;width:100%;height:43px;padding:10px 12px;border-radius:9px;border:1px solid #cddbed;background:#fff;color:#203755;font:inherit;font-size:13px}.v76-password-form input:disabled{background:#f4f6f9}.v76-password-form label small{font-size:10px;color:#8291a8;font-weight:500;line-height:1.5}
.v76-form-feedback{border-radius:9px;background:#fff2f1;border:1px solid #ffd5d1;padding:10px 12px;font-size:11px;line-height:1.6;color:#ae3438}
.v76-password-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:3px}.v76-password-footer button{font:inherit;font-size:12px;font-weight:800;border-radius:9px;padding:11px 15px;cursor:pointer}.v76-password-cancel{color:#365581;background:white;border:1px solid #d5e0ed}.v76-password-save{background:#3d63d8;border:1px solid #3d63d8;color:white}.v76-password-save:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:800px){.v76-profile-trigger{max-width:130px;gap:5px}.v76-profile-trigger .admin-label{display:none}.v76-profile-menu{right:0}.v76-password-header{padding:20px 19px 17px}.v76-password-form{padding:18px 19px 22px}}
@media(prefers-reduced-motion:reduce){.v76-profile-trigger,.v76-chevron{transition:none}}

/* ===== END: assets/profile-v76.css ===== */

/* ===== 03. ORIGINAL SOURCE: @inline/dw70-regenerated-css ===== */

/* AttendanceOS v70 — DW Control regenerated in isolation, no dependency on former DW CSS. */
#view-dwcontrol.dw70-page{display:flex;flex-direction:column;align-items:stretch;gap:20px;min-width:0;max-width:100%;padding:4px 0 28px;box-sizing:border-box;color:#183554;font-family:inherit}
#view-dwcontrol.dw70-page.hidden{display:none!important}
#view-dwcontrol.dw70-page *{box-sizing:border-box}
#view-dwcontrol .dw70-card{display:block;width:100%;min-width:0;margin:0;padding:0;background:#fff;border:1px solid #dde6f3;border-radius:16px;box-shadow:0 3px 14px rgba(17,42,81,.035);overflow:hidden}
#view-dwcontrol .dw70-toolbar{padding:0}
#view-dwcontrol .dw70-toolbar-top{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:23px 25px 18px}
#view-dwcontrol .dw70-eyebrow{display:block;font-size:10px;line-height:1.4;font-weight:800;letter-spacing:1.15px;color:#5473a2;margin:0 0 8px;text-transform:uppercase}
#view-dwcontrol .dw70-version{display:inline-block;margin-left:5px;background:#e9f0ff;border-radius:6px;padding:3px 6px;color:#315fc6;letter-spacing:.3px;font-size:9px}
#view-dwcontrol .dw70-brandline{min-width:0}
#view-dwcontrol .dw70-brandline h2{margin:0;font-size:21px;line-height:1.4;font-weight:850;letter-spacing:-.5px;color:#163455}
#view-dwcontrol .dw70-brandline h2 span{font-size:16px;font-weight:600;color:#6883a3;margin-left:7px}
#view-dwcontrol .dw70-brandline p,#view-dwcontrol .dw70-section-title p{color:#6a7f9b;font-size:12px;line-height:1.6;margin:6px 0 0;max-width:900px}
#view-dwcontrol .dw70-export{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}
#view-dwcontrol .dw70-button{appearance:none;border:1px solid #d7e3f3;background:#fff;color:#275080;border-radius:10px;min-height:39px;padding:9px 13px;font:inherit;font-size:11px;line-height:1.3;font-weight:750;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s;box-shadow:none}
#view-dwcontrol .dw70-button:hover:not(:disabled){background:#eff5ff;border-color:#a8bfe5}
#view-dwcontrol .dw70-button:focus-visible,#view-dwcontrol input:focus-visible,#view-dwcontrol select:focus-visible{outline:2px solid #3b66db;outline-offset:2px}
#view-dwcontrol .dw70-button:disabled{opacity:.6;cursor:not-allowed}
#view-dwcontrol .dw70-button-primary{border-color:#3562d6;background:#3562d6;color:#fff;padding:11px 17px;min-height:42px}
#view-dwcontrol .dw70-button-primary:hover:not(:disabled){background:#264ab6;color:#fff;border-color:#264ab6}
#view-dwcontrol .dw70-filterbar{display:flex;flex-wrap:wrap;gap:13px;align-items:flex-end;background:#f7f9fd;border-top:1px solid #e7edf7;border-bottom:1px solid #e7edf7;padding:16px 25px}
#view-dwcontrol .dw70-field{display:flex;flex-direction:column;align-items:stretch;gap:7px;margin:0;color:#58718f;font-size:11px;font-weight:750;line-height:1.45}
#view-dwcontrol .dw70-department{width:235px;max-width:100%}
#view-dwcontrol .dw70-date{width:190px;max-width:100%}
#view-dwcontrol .dw70-field select,#view-dwcontrol .dw70-field input{display:block;width:100%;max-width:100%;height:41px;min-width:0;margin:0;padding:8px 11px;border:1px solid #ccd9ea;background:#fff;border-radius:9px;color:#233f64;font-size:12px;font-weight:500}
#view-dwcontrol .dw70-week-controls{display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-width:0}
#view-dwcontrol .dw70-info{display:flex;gap:11px;align-items:center;margin:19px 25px 20px;padding:12px 15px;background:#eef4ff;border:1px solid #dbe7ff;border-left:4px solid #3b65df;border-radius:10px}
#view-dwcontrol .dw70-info p{font-size:11px;line-height:1.7;color:#355a8b;margin:0}
#view-dwcontrol .dw70-info-icon{width:23px;height:23px;display:flex;align-items:center;justify-content:center;border-radius:99px;flex-shrink:0;background:#d4e3ff;color:#2657ad;font-weight:850}
#view-dwcontrol .dw70-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:0 25px 24px}
#view-dwcontrol .dw70-metric{display:flex;flex-direction:column;gap:4px;border:1px solid #e0e8f5;background:#f7f9fd;border-radius:12px;padding:17px;min-height:112px;min-width:0}
#view-dwcontrol .dw70-metric span{font-size:10px;letter-spacing:.5px;font-weight:800;color:#6881a2;text-transform:uppercase;line-height:1.5}
#view-dwcontrol .dw70-metric strong{font-size:25px;font-weight:850;line-height:1.3;letter-spacing:-.4px;color:#173859;overflow-wrap:anywhere}
#view-dwcontrol .dw70-metric small{font-size:10px;color:#899ab0;line-height:1.5}
#view-dwcontrol .dw70-metric.negative strong{color:#b63f45}
#view-dwcontrol .dw70-section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:21px 25px 17px}
#view-dwcontrol .dw70-section-title h3{font-size:16px;line-height:1.4;color:#173657;margin:0;font-weight:850}
#view-dwcontrol .dw70-section-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
#view-dwcontrol .dw70-pill{display:inline-block;font-size:10px;font-weight:750;color:#345886;background:#ebf2ff;border:1px solid #d8e6fc;border-radius:9px;padding:7px 10px;white-space:nowrap}
#view-dwcontrol .dw70-period{max-width:100%;overflow-wrap:anywhere;white-space:normal}
#view-dwcontrol .dw70-scroll{display:block;overflow-x:auto;overflow-y:auto;max-width:100%;margin:0 20px 12px;border:1px solid #dce6f2;border-radius:10px;background:#fff;overscroll-behavior-x:contain}
#view-dwcontrol .dw70-roster-scroll{max-height:430px}
#view-dwcontrol .dw70-budget-scroll{max-height:650px}
#view-dwcontrol .dw70-table{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed;font-size:11px;color:#254366;margin:0;background:#fff}
#view-dwcontrol .dw70-roster-table{min-width:940px}
#view-dwcontrol .dw70-budget-table{min-width:960px}
#view-dwcontrol .dw70-table th,#view-dwcontrol .dw70-table td{text-align:center;vertical-align:middle;padding:11px 10px;border-bottom:1px solid #e4ebf5;border-right:1px solid #e8edf5;line-height:1.5;font-size:11px;overflow:hidden;text-overflow:ellipsis}
#view-dwcontrol .dw70-table tr:last-child td,#view-dwcontrol .dw70-table tr:last-child th{border-bottom:0}
#view-dwcontrol .dw70-table tr>*:last-child{border-right:0}
#view-dwcontrol .dw70-table thead th{position:sticky;top:0;z-index:3;background:#173858;color:#fff;font-size:10px;line-height:1.45;letter-spacing:.25px;padding:13px 8px;font-weight:800}
#view-dwcontrol .dw70-table thead small{display:block;color:#d1e2f7;font-size:9px;font-weight:550;letter-spacing:0;margin-top:3px}
#view-dwcontrol .dw70-table th.dw70-weekend{background:#8e3340}
#view-dwcontrol .dw70-table th.dw70-left,#view-dwcontrol .dw70-table td.dw70-left{text-align:left}
#view-dwcontrol .dw70-roster-table th:first-child,#view-dwcontrol .dw70-roster-table td:first-child{position:sticky;left:0;width:195px;max-width:195px;text-align:left;z-index:2}
#view-dwcontrol .dw70-roster-table thead th:first-child{z-index:5;background:#173858}
#view-dwcontrol .dw70-roster-table tbody td:first-child{background:#fff}
#view-dwcontrol .dw70-roster-table tbody tr:nth-child(even) td:first-child{background:#f7f9fd}
#view-dwcontrol .dw70-roster-table th:nth-child(2),#view-dwcontrol .dw70-roster-table td:nth-child(2){width:125px}
#view-dwcontrol .dw70-roster-table th:last-child,#view-dwcontrol .dw70-roster-table td:last-child{width:94px}
#view-dwcontrol .dw70-roster-table tbody tr:nth-child(even){background:#f7f9fd}
#view-dwcontrol .dw70-roster-table tbody td strong{display:block;font-size:11px;color:#18365a;overflow-wrap:anywhere}
#view-dwcontrol .dw70-roster-table tbody td small{display:block;margin-top:3px;font-size:10px;color:#889ab1}
#view-dwcontrol .dw70-shift{display:inline-flex;justify-content:center;align-items:center;padding:5px 8px;min-width:40px;border-radius:7px;background:#e7efff;border:1px solid #cbdcff;color:#315cbb;font-size:10px;font-weight:850}
#view-dwcontrol .dw70-shift.off{background:#f0f2f6;border-color:#e3e8ef;color:#98a7b9}
#view-dwcontrol .dw70-muted{color:#b0bfd0;font-weight:550}
#view-dwcontrol .dw70-total-days{display:inline-block;border-radius:8px;padding:5px 9px;background:#e4f6ed;color:#087347;font-weight:850}
#view-dwcontrol .dw70-roster-table tfoot tr{background:#edf3ff;font-weight:800;color:#21549a}
#view-dwcontrol .dw70-roster-table tfoot th{position:sticky;left:0;background:#edf3ff;text-align:left;z-index:2}
#view-dwcontrol .dw70-footnote{font-size:10px;line-height:1.7;color:#7389a5;margin:0;padding:2px 25px 20px}
#view-dwcontrol .dw70-budget-table thead th:first-child{position:sticky;left:0;z-index:5;width:206px;text-align:left;background:#173858}
#view-dwcontrol .dw70-budget-table thead th:not(:first-child){width:calc((100% - 206px) / 7)}
#view-dwcontrol .dw70-budget-table tbody th{position:sticky;left:0;z-index:2;min-width:206px;width:206px;text-align:left;background:#f3f7fc;font-size:10px;letter-spacing:.35px;font-weight:800;color:#48658a}
#view-dwcontrol .dw70-budget-table tbody tr:nth-child(even){background:#fbfcff}
#view-dwcontrol .dw70-budget-table tbody tr.dw70-important{background:#eaf1ff;font-weight:800}
#view-dwcontrol .dw70-budget-table tbody tr.dw70-important th{background:#dfeaff;color:#1d4f94}
#view-dwcontrol .dw70-budget-table tbody tr.dw70-variance{background:#f5f8ff}
#view-dwcontrol .dw70-budget-table tbody tr.dw70-variance th{background:#edf3fc}
#view-dwcontrol .dw70-budget-table .dw70-number{font-size:12px;font-weight:800;color:#1c3d63;font-variant-numeric:tabular-nums}
#view-dwcontrol .dw70-budget-table .dw70-negative{color:#bd3343!important}
#view-dwcontrol .dw70-input{appearance:textfield;-moz-appearance:textfield;width:100%;min-width:0;max-width:125px;height:36px;padding:7px 8px;margin:0;border:1px solid #d2deef;border-radius:8px;background:#fff;outline:none;color:#284461;font:inherit;font-size:11px;font-weight:600;text-align:center}
#view-dwcontrol .dw70-input::-webkit-inner-spin-button,#view-dwcontrol .dw70-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#view-dwcontrol .dw70-input:focus{border-color:#4973db;box-shadow:0 0 0 3px #e4edff}
#view-dwcontrol .dw70-input:disabled{background:#f2f5fa;color:#8395ab}
#view-dwcontrol .dw70-empty{padding:28px 18px!important;text-align:center!important;color:#6a81a0;font-size:12px!important;white-space:normal;line-height:1.65}
#view-dwcontrol .dw70-empty strong{display:block;font-size:13px;margin-bottom:6px}
#view-dwcontrol .dw70-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;background:#f7f9fd;border-top:1px solid #e1eaf6;padding:15px 25px}
#view-dwcontrol .dw70-bottom>div{display:flex;flex-direction:column;gap:4px}
#view-dwcontrol .dw70-bottom strong{font-size:11px;color:#285582;font-weight:800}
#view-dwcontrol .dw70-bottom span{font-size:10px;color:#8195ab}
@media(max-width:1150px){#view-dwcontrol .dw70-overview{grid-template-columns:repeat(2,minmax(0,1fr))}#view-dwcontrol .dw70-toolbar-top{align-items:flex-start}#view-dwcontrol .dw70-export{max-width:320px}}
@media(max-width:760px){#view-dwcontrol .dw70-toolbar-top{flex-direction:column;padding:17px;gap:11px}#view-dwcontrol .dw70-export{justify-content:flex-start;max-width:100%}#view-dwcontrol .dw70-filterbar{padding:14px 17px;gap:9px}#view-dwcontrol .dw70-department,#view-dwcontrol .dw70-date{width:100%}#view-dwcontrol .dw70-week-controls{width:100%}#view-dwcontrol .dw70-week-controls .dw70-button{flex:1}#view-dwcontrol .dw70-info{margin:13px 17px;padding:11px}#view-dwcontrol .dw70-overview{padding:0 17px 17px;gap:9px}#view-dwcontrol .dw70-metric{padding:13px;min-height:104px}#view-dwcontrol .dw70-metric strong{font-size:21px}#view-dwcontrol .dw70-section-title{padding:16px 17px 13px}#view-dwcontrol .dw70-section-title h3{font-size:15px}#view-dwcontrol .dw70-scroll{margin:0 12px 10px}#view-dwcontrol .dw70-footnote{padding:4px 17px 18px}#view-dwcontrol .dw70-bottom{padding:14px 17px}#view-dwcontrol .dw70-bottom .dw70-button{width:100%}}

/* ===== END: @inline/dw70-regenerated-css ===== */

/* ===== 04. ORIGINAL SOURCE: assets/wn139-enterprise-refinement.css ===== */
/* WN Attendance v139: focused UI/UX improvements without introducing heavy animations. */
.wn139-auto{border-top:1px solid #dfe7f2;padding:24px 26px;color:#203d60}
.wn139-section-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px}
.wn139-section-head h3{font-size:17px;font-weight:850;margin:0 0 5px}
.wn139-section-head p{margin:0;font-size:12px;color:#71849e;line-height:1.6}
.wn139-label{background:#e8f0ff;color:#365caa;font-weight:850;border:1px solid #cfdef8;border-radius:99px;font-size:11px;padding:7px 10px}
.wn139-backup-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}
.wn139-backup-stats>div{display:flex;flex-direction:column;gap:6px;background:#f6f8fd;border:1px solid #e0e8f4;border-radius:11px;padding:14px}
.wn139-backup-stats span{font-size:10px;color:#7185a1;font-weight:800;letter-spacing:.45px;text-transform:uppercase}
.wn139-backup-stats b{font-size:13px;color:#17375d;overflow-wrap:anywhere}
.wn139-backup-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px}
.wn139-backup-controls label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:800;color:#3b597e}
.wn139-backup-controls .wn139-switch{flex-direction:row;align-items:center;min-height:40px;gap:10px;padding-right:20px}
.wn139-backup-controls input[type=time],.wn139-backup-controls select,.wn139-audit-tools input{background:white;border:1px solid #ccdbef;border-radius:10px;padding:10px 12px;min-height:41px;color:#16395d;font:inherit}
.wn139-actions,.wn139-audit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:15px}
.wn139-hint{font-size:11px;line-height:1.7;color:#607b9d;overflow-wrap:anywhere;margin:12px 0 0}
.wn139-audit{margin-top:19px;border:1px solid #dce6f5;border-radius:12px;background:#fbfcff;overflow:hidden}
.wn139-audit summary{cursor:pointer;padding:15px 17px;font-size:13px;font-weight:850;list-style-position:inside}
.wn139-audit summary small{color:#8092aa;font-weight:600}
.wn139-audit-tools{display:flex;gap:10px;padding:12px 15px;border-top:1px solid #e6edf7}
.wn139-audit-tools input{flex:1;min-width:0}
.wn139-audit-scroll{max-height:390px;overflow:auto;border-top:1px solid #e6edf7}
.wn139-audit-scroll table{min-width:690px;width:100%}
.wn139-audit-scroll td{font-size:11px;line-height:1.6;overflow-wrap:anywhere;max-width:390px}
.wn139-audit-actions{padding:12px 15px;margin:0;justify-content:flex-end;border-top:1px solid #e6edf7}
.wn139-audit-actions span{font-size:11px;font-weight:850;color:#5e7494}
/* Overview: reduce isolated whitespace and improve KPI hierarchy */
#view-dashboard .kpi{min-height:0;box-shadow:0 3px 12px #223d5710;transition:border-color .13s ease}
#view-dashboard .kpi strong{letter-spacing:-.6px;font-variant-numeric:tabular-nums}
#view-dashboard .panel-head{padding:16px 20px}
#view-dashboard .v30-insights,#view-dashboard .two-cols{align-items:start}
#view-dashboard .v30-insight-stat{min-height:0}
/* Roster: keep controls and shift actions readable during large-table operations */
.roster-scroll{scrollbar-gutter:stable;scroll-behavior:auto!important}
.roster-table td.sticky-emp,.roster-table th.sticky-emp{box-shadow:3px 0 8px #1c385c15}
.roster-table tbody tr:hover td:not(.roster-group-row td){background-color:#eef5ff}
.roster-table .shift-pill{font-variant-numeric:tabular-nums;transition:background-color .10s,border-color .10s;transform:none!important}
.roster-table .shift-pill:hover{box-shadow:0 0 0 2px #8bb4f64d}
.roster-table .shift-pill:focus-visible,.roster-table [role="button"]:focus-visible{outline:2px solid #416ee7;outline-offset:2px}
.roster-table .v37-date-btn{font-size:12px}
.roster-table .roster-group-row td{padding:10px 13px!important;text-align:left!important}
.roster-table tbody td.sticky-emp .v37-person b{font-size:11px}
@media(max-width:770px){.wn139-auto{padding:17px 12px}.wn139-backup-stats{grid-template-columns:1fr}.wn139-backup-controls{flex-direction:column;align-items:stretch}.wn139-backup-controls label{width:100%}.wn139-audit-tools{flex-wrap:wrap}.wn139-audit-tools .btn{width:100%}}
@media(prefers-reduced-motion:reduce){#view-dashboard .kpi,.roster-table .shift-pill{transition:none!important}}

/* ===== END: assets/wn139-enterprise-refinement.css ===== */

/* ===== 05. ORIGINAL SOURCE: assets/attendance-backup-v71.css ===== */
/* v71 Data Backup tab — isolated from legacy settings styles */
#attendanceBackupSettings.v71-backup{display:block;margin:22px 0;max-width:1100px;padding:0;overflow:hidden;border:1px solid #dee8f5;border-radius:16px;background:#fff;box-shadow:0 4px 20px rgba(20,45,85,.035)}
#attendanceBackupSettings.v14-tab-hidden,#attendanceBackupSettings.hidden{display:none!important}
#attendanceBackupSettings .v71-backup-intro{display:flex;align-items:center;gap:16px;padding:24px 28px;background:#f8faff;border-bottom:1px solid #e5ebf4}
#attendanceBackupSettings .v71-backup-icon{display:flex;align-items:center;justify-content:center;flex:0 0 49px;width:49px;height:49px;font-size:25px;border-radius:13px;background:#e6efff;color:#3768bc}
#attendanceBackupSettings .v71-backup-overline{font-size:10px;letter-spacing:1.4px;font-weight:800;color:#5074ab}
#attendanceBackupSettings .v71-backup-intro h3{font-size:20px;color:#173454;line-height:1.35;margin:5px 0}
#attendanceBackupSettings .v71-backup-intro p{font-size:12px;color:#607895;line-height:1.7;margin:0}
#attendanceBackupSettings .v71-backup-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:23px 28px}
#attendanceBackupSettings .v71-backup-stat{min-width:0;display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid #e2eaf6;border-radius:13px;background:#f7f9fd}
#attendanceBackupSettings .v71-backup-stat span{font-size:11px;line-height:1.4;color:#6680a0;font-weight:700}
#attendanceBackupSettings .v71-backup-stat strong{font-size:19px;line-height:1.4;color:#173657;overflow-wrap:anywhere}
#attendanceBackupSettings .v71-backup-action{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:21px 28px;margin:0 28px;border:1px solid #dbe6f8;border-radius:13px;background:#fff}
#attendanceBackupSettings .v71-backup-action>div{min-width:0;max-width:650px}
#attendanceBackupSettings .v71-backup-action b{font-size:15px;line-height:1.4;color:#173657}
#attendanceBackupSettings .v71-backup-action p{font-size:12px;line-height:1.7;margin:8px 0;color:#536f90}
#attendanceBackupSettings .v71-backup-action small{font-size:11px;line-height:1.6;color:#7890a9}
#attendanceBackupSettings .v71-backup-action button{flex-shrink:0;white-space:nowrap;padding:13px 19px;border-radius:10px}
#attendanceBackupSettings .v71-backup-status{padding:13px 28px;margin:0;font-size:11px;color:#617b9b;line-height:1.65}
#attendanceBackupSettings .v71-backup-warning{margin:0 28px 26px;padding:17px 19px;background:#fffaef;border:1px solid #f1dfb5;border-radius:11px}
#attendanceBackupSettings .v71-backup-warning b{font-size:12px;color:#886022}
#attendanceBackupSettings .v71-backup-warning p{font-size:11px;line-height:1.75;margin:6px 0 0;color:#7d653c}
@media(max-width:850px){#attendanceBackupSettings .v71-backup-overview{grid-template-columns:1fr}#attendanceBackupSettings .v71-backup-action{flex-direction:column;align-items:stretch;gap:15px}#attendanceBackupSettings .v71-backup-action button{align-self:flex-start}#attendanceBackupSettings .v71-backup-intro{padding:18px}#attendanceBackupSettings .v71-backup-overview{padding:18px}#attendanceBackupSettings .v71-backup-action{margin:0 18px}#attendanceBackupSettings .v71-backup-warning{margin:0 18px 20px}#attendanceBackupSettings .v71-backup-status{padding:13px 18px}}

/* ===== END: assets/attendance-backup-v71.css ===== */

/* ===== 06. ORIGINAL SOURCE: assets/review-v82.css ===== */
.v82-page{animation:v82enter .16s ease-out}@keyframes v82enter{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}
.v82-review-panel{overflow:hidden}.v82-eyebrow{display:block;font-size:10px;letter-spacing:.12em;font-weight:800;color:#3560d9;margin-bottom:8px}.v82-label{display:inline-flex;border:1px solid #dae5f8;color:#557298;border-radius:50px;padding:7px 11px;font-size:11px;white-space:nowrap}
.v82-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:18px 22px;border-bottom:1px solid #e7edf6}.v82-controls label{font-size:12px;color:#4d6382;min-width:144px;flex:1 1 135px}.v82-controls input,.v82-controls select{display:block;margin-top:7px;min-width:0;width:100%;height:40px;background:white;border:1px solid #d6e2f3;border-radius:9px;color:#1a3255;padding:0 10px}.v82-controls .btn{min-height:40px}.v82-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;padding:19px 22px}.v82-metric{border:1px solid #dbe5f4;border-radius:12px;background:#f7faff;padding:15px}.v82-metric small{display:block;color:#6d829f;font-size:11px}.v82-metric b{display:block;font-size:24px;margin-top:7px;color:#17314f}.v82-help{font-size:12px;color:#637995;margin:0;padding:0 22px 12px}.v82-error{color:#bb3434}.v82-table-scroll{overflow:auto;max-width:100%}.v82-table{border-collapse:collapse;width:100%;font-size:12px;min-width:820px}.v82-table th{text-align:left;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#58708f;background:#f1f6fc;padding:15px 12px;white-space:nowrap;border-bottom:1px solid #dee8f6}.v82-table td{padding:15px 12px;border-bottom:1px solid #e6edf7;vertical-align:middle;color:#263f5d}.v82-table tbody tr:hover{background:#f6f9ff}.v82-table td small{display:block;color:#7890ac;font-size:10px;margin-top:4px}.v82-issue{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:260px}.v82-empty{text-align:center;color:#647e9e;padding:28px!important}.v82-pill{display:inline-block;padding:5px 9px;border-radius:99px;background:#f2f4f8;color:#526279;font-weight:700;font-size:11px}.v82-approved{background:#dff7e9;color:#137448}.v82-rejected{background:#fce7e8;color:#a12f40}.v82-pending{background:#fff0d8;color:#986313}.v82-stale{background:#e9e4fa;color:#6a40a7}
.v82-review-overlay{z-index:1500}.v82-review-dialog{width:min(900px,calc(100vw - 36px));max-height:min(92vh,960px);display:flex;flex-direction:column;padding:0!important;overflow:hidden;border-radius:16px}.v82-modal-header,.v82-modal-actions{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e8f3;flex-shrink:0}.v82-modal-header h3{margin:0 0 6px}.v82-modal-header p{font-size:12px;color:#687f9d;margin:0}.v82-review-body{padding:20px 24px;overflow:auto}.v82-compare{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.v82-compare>div{border:1px solid #dfe9f7;border-radius:10px;background:#f5f8fe;padding:15px}.v82-compare small{font-size:10px;color:#6981a0}.v82-compare strong{display:block;margin-top:8px;color:#163457;font-size:17px}.v82-review-reason{background:#fff7e6;border:1px solid #f6dcab;padding:13px;border-radius:10px;font-size:12px;line-height:1.5}.v82-review-body h4{font-size:12px;color:#28476b;margin:18px 0 10px}.v82-current{font-size:12px;color:#54708d;line-height:1.6;margin:14px 0}.v82-history{background:#f7f9fd;border-radius:10px;padding:10px 14px;font-size:11px;color:#506785}.v82-history p{line-height:1.7;border-top:1px solid #e2eaf3;padding-top:7px}.v82-reason-label{display:block;font-size:12px;font-weight:700;color:#385476;margin:13px 0 8px}#reviewDecisionReason{width:100%;border:1px solid #ccdcec;border-radius:11px;padding:12px;color:#1b3856;resize:vertical;min-height:75px}.v82-modal-actions{border-top:1px solid #e0e8f3;border-bottom:0;justify-content:flex-end}.v82-reject{border:1px solid #efc7c9;background:#fff1f1;color:#ab3842}.v82-reject:hover{background:#fee4e5}@media(max-width:760px){.v82-metrics{grid-template-columns:repeat(2,1fr)}.v82-compare{grid-template-columns:repeat(2,1fr)}.v82-controls{gap:8px}.v82-review-body{padding:14px}.v82-modal-header,.v82-modal-actions{padding:14px}}
@media(prefers-reduced-motion:reduce){.v82-page{animation:none}}

/* ===== END: assets/review-v82.css ===== */

/* ===== 07. ORIGINAL SOURCE: assets/ui-v90.css ===== */
/* AttendanceOS v90 – coherent hospitality enterprise UI.
   This is a single component layer for navigation, panels, roster and dialogs.
   No layout-changing animation: motion is limited to opacity and transform. */
:root{--v90-ink:#173351;--v90-soft:#66809e;--v90-line:#dce6f2;--v90-accent:#365dd2;--v90-shadow:0 9px 30px rgba(19,49,87,.045);--v90-radius:16px}
html{scrollbar-gutter:stable;scroll-behavior:auto!important}
body{font-feature-settings:'tnum' 1;overflow-anchor:none}
#shell .main-wrap{min-width:0;background:linear-gradient(160deg,#f4f7fc,#f7f9fd 75%)}
#shell .content{width:100%;max-width:1880px;padding:26px clamp(18px,2.4vw,37px) 42px}
#shell .page-head{gap:15px;min-width:0;margin-bottom:22px}
#shell .page-head h1{letter-spacing:-.65px;line-height:1.25}
#shell .page-head p{line-height:1.6}
#shell .sidebar{background:linear-gradient(180deg,#10223d,#182e4d);border-right:1px solid rgba(255,255,255,.07)}
#shell #nav .nav-item{border-radius:11px;min-height:43px;gap:12px;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease;will-change:auto}
#shell #nav .nav-item.active{background:linear-gradient(90deg,#335cc7,#496ce1);box-shadow:inset 3px 0 #ee7659,0 5px 17px rgba(4,22,49,.16)}
#shell .panel,#shell .kpi,#shell .v30-rank-card,#shell .v30-insight-stat,#shell .roster-summary-panel{border:1px solid var(--v90-line);border-radius:var(--v90-radius);box-shadow:var(--v90-shadow);min-width:0}
#shell .panel-head{gap:14px;min-width:0;align-items:center}
#shell .panel-head h3,#shell .v30-rank-head h4{letter-spacing:-.25px;line-height:1.4;color:var(--v90-ink)}
#shell .panel-head p,#shell .v30-rank-head p{line-height:1.65}
#shell :is(.filters,.v30-filterbar,.v31-summary-filter,.daily-filters){gap:13px;align-items:flex-end}
#shell :is(.filters,.v30-filterbar,.v31-summary-filter,.daily-filters)>label{gap:7px;line-height:1.5}
#shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-radius:10px;transition:border-color .13s,box-shadow .13s;background-clip:padding-box}
#shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible{outline:2px solid rgba(54,93,210,.55);outline-offset:1px;border-color:#5a7ddd}
#shell .btn{border-radius:10px;min-height:36px;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
#shell .btn:not(:disabled):active{transform:scale(.985)}
#shell .btn:focus-visible,#shell .nav-item:focus-visible,#shell [data-view]:focus-visible{outline:3px solid rgba(70,119,236,.5);outline-offset:2px}
#shell button:disabled{cursor:not-allowed;opacity:.55}
#shell .table-scroll,#shell .roster-scroll,#shell .v31-summary-scroller{scrollbar-gutter:stable;overscroll-behavior:auto;overflow-anchor:none}
#shell table{border-spacing:0;max-width:none}
#shell thead th{box-shadow:0 1px 0 #dfe8f4;line-height:1.5;background:#f3f7fd}
#shell tbody tr{transition:background-color .12s ease}
#shell tbody tr:hover{background:#f2f6ff}
#shell td{line-height:1.55}
#shell .roster-scroll{max-height:min(76dvh,920px);position:relative;isolation:isolate}
#shell #rosterHead th{position:sticky;top:0;z-index:4}
#shell #rosterHead th.sticky-emp{z-index:8}
#shell #rosterBody td.sticky-emp{z-index:3}
#shell .shift-pill{transition:box-shadow .12s ease,border-color .12s ease,transform .12s ease}
#shell .shift-pill:hover:not(:disabled){box-shadow:0 2px 11px rgba(25,62,130,.12);transform:translateY(-1px)}
#shell .edit-overlay,#shell .modal-backdrop{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
#shell .edit-dialog,#shell .modal-card{border-radius:18px;border:1px solid #dee8f5;box-shadow:0 26px 80px rgba(14,31,60,.2);overscroll-behavior:auto;overflow-anchor:none}
#shell .edit-dialog{max-height:min(90dvh,940px)}
#shell .edit-overlay:not(.hidden)>.edit-dialog,#shell .modal-backdrop:not(.hidden)>.modal-card{animation:v90Dialog .19s cubic-bezier(.2,.7,.2,1) both}
#shell .view.v90-enter{animation:v90Appear .16s ease-out both}
@keyframes v90Appear{from{opacity:.7;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes v90Dialog{from{opacity:.25;transform:translateY(10px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}
#shell .v53-page-loading{height:auto;min-height:4px;max-height:4px;margin:0 0 12px;overflow:hidden;transition:none;position:relative}
#shell .v53-page-loading:not(.hidden){display:block}
#shell .view[aria-busy=true]{cursor:progress}
#shell .v90-navigation-status{position:fixed;right:20px;bottom:22px;background:#173b67;color:#fff;padding:9px 15px;border-radius:12px;z-index:150;font-size:12px;box-shadow:0 8px 20px #0d285b33;pointer-events:none}
#shell .v90-navigation-status.hidden{display:none}
#shell .v30-rank-grid{align-items:stretch;min-width:0}
#shell .v30-rank-card{overflow:hidden;min-width:0}
#shell .v30-rank-head{gap:12px;min-width:0}
#shell .v30-rank-head>div{min-width:0}
#shell .v30-rank-head .btn{flex-shrink:0}
#shell .v30-insight-kpis{gap:14px}
#shell .kpi{overflow:hidden;transition:border-color .14s}
#shell .kpi:hover{border-color:#b8cceb}
#shell .edit-dialog :is(h3,h4){color:var(--v90-ink)}
#shell .daily-detail-grid{gap:12px}
@media(max-width:1050px){#shell .content{padding:20px 16px 35px}#shell .v30-rank-grid{grid-template-columns:1fr}#shell .v30-insight-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){html{scrollbar-gutter:auto}#shell .content{padding:17px 12px 90px}#shell .panel-head{align-items:flex-start;flex-wrap:wrap}#shell .page-head{align-items:flex-start;flex-wrap:wrap}#shell .v30-insight-kpis{grid-template-columns:1fr}#shell .roster-scroll{max-height:68dvh}#shell .edit-dialog,#shell .modal-card{border-radius:14px}#shell .v30-rank-head{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){#shell *,#shell *::before,#shell *::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ===== END: assets/ui-v90.css ===== */

/* ===== 08. ORIGINAL SOURCE: assets/v91-enterprise.css ===== */

/* AttendanceOS v91 — Enterprise Visual System */
:root{
  --v91-navy:#112746;
  --v91-navy-2:#17385f;
  --v91-blue:#3f67d8;
  --v91-blue-soft:#edf3ff;
  --v91-line:#dbe5f2;
  --v91-bg:#f5f8fd;
  --v91-panel:#ffffff;
  --v91-text:#193654;
  --v91-text-soft:#6a819d;
  --v91-shadow:0 16px 45px rgba(15,43,78,.08);
  --v91-shadow-soft:0 8px 24px rgba(20,46,81,.06);
  --v91-radius:18px;
  --v91-side-expanded:278px;
  --v91-side-collapsed:90px;
}
body{background:var(--v91-bg)}
#shell .main-wrap{background:radial-gradient(circle at top right,rgba(68,108,221,.08),transparent 22%),linear-gradient(180deg,#f5f8fd 0%,#f7f9fd 55%,#f4f7fb 100%)}
#shell .content{max-width:1920px}
#shell .page-head h1,#shell .panel-head h3,#shell .v30-rank-head h4,#shell .history-dialog h3,#shell .edit-dialog h3{letter-spacing:-.03em}

/* sidebar + collapse */
.v91-sidebar-toggle{width:36px;height:36px;border-radius:11px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:background-color .16s ease,transform .16s ease,border-color .16s ease;flex-shrink:0}
.v91-sidebar-toggle:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24)}
.v91-sidebar-toggle:active{transform:scale(.97)}
#shell .brand{gap:12px}
#shell .brand .v91-brand-copy{min-width:0}
#shell .brand .v91-brand-copy strong{display:block}
#shell .sidebar{width:var(--v91-side-expanded);flex-basis:var(--v91-side-expanded);border-right:1px solid rgba(255,255,255,.06);box-shadow:inset -1px 0 0 rgba(255,255,255,.02);transition:width .18s ease,flex-basis .18s ease}
#shell .sidebar::before{content:"";position:sticky;top:0;display:block;height:0;box-shadow:0 0 0 transparent}
#shell .sidebar .nav-label{position:relative;padding-top:22px;color:#8ba4c7}
#shell .sidebar .nav-label::after{content:"";position:absolute;left:24px;right:24px;bottom:0;height:1px;background:rgba(255,255,255,.07)}
#shell #nav .nav-item{position:relative;display:flex;align-items:center;gap:12px;padding-inline:14px 16px;margin-inline:10px;border-radius:14px;color:#dfe7f7}
#shell #nav .nav-item .v91-nav-ic{width:19px;height:19px;display:grid;place-items:center;flex:0 0 19px;color:inherit}
#shell #nav .nav-item .v91-nav-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#shell #nav .nav-item:not(.active):hover{background:rgba(255,255,255,.07);color:#fff}
#shell #nav .nav-item.active{background:linear-gradient(90deg,#3b63d4,#5578e7);box-shadow:inset 3px 0 #ff8f72,0 10px 22px rgba(7,26,57,.22);color:#fff}
#shell #nav .nav-item.active::after{content:"";position:absolute;inset:7px auto 7px 7px;width:3px;border-radius:6px;background:#ff8f72}
#shell .sidebar-bottom{background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.02));padding-top:16px}
#shell .side-status{border-radius:15px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
#shell .side-status small{line-height:1.45}
#shell #logout{justify-content:flex-start}
#shell #logout span{display:grid;place-items:center}
#shell.v91-collapsed .sidebar{width:var(--v91-side-collapsed);flex-basis:var(--v91-side-collapsed)}
#shell.v91-collapsed .sidebar .nav-label,
#shell.v91-collapsed .sidebar .v37-sidebar-credit,
#shell.v91-collapsed .sidebar .side-status>div,
#shell.v91-collapsed .sidebar .brand .v91-brand-copy,
#shell.v91-collapsed .sidebar #logout .v91-nav-text{display:none!important}
#shell.v91-collapsed .sidebar .brand{padding-inline:12px;justify-content:center}
#shell.v91-collapsed .sidebar .mobile-drawer-close{display:none!important}
#shell.v91-collapsed #nav .nav-item,
#shell.v91-collapsed #logout{justify-content:center;padding-inline:0}
#shell.v91-collapsed #nav .nav-item .v91-nav-text{display:none}
#shell.v91-collapsed .side-status{justify-content:center;padding:12px 8px}
#shell.v91-collapsed .side-status .status-dot{margin:0}

/* topbar and page head */
#shell .topbar{backdrop-filter:saturate(1.15) blur(7px);background:rgba(247,250,253,.84);border-bottom:1px solid rgba(214,225,239,.86)}
#shell .notification-bell,#shell .scan-monitor-toggle,#shell .mobile-menu{border-color:#dce6f2;box-shadow:0 6px 14px rgba(20,45,80,.05)}
#shell .page-head{padding:4px 0 2px}
#shell .eyebrow.dark{color:#5271a4}
#shell .head-actions .btn{min-height:40px}

/* cards */
#shell .kpi-grid{gap:16px}
#shell .kpi{position:relative;overflow:hidden;padding:20px;border-radius:20px;border:1px solid var(--v91-line);background:linear-gradient(180deg,#fff,rgba(249,251,255,.96));box-shadow:var(--v91-shadow-soft)}
#shell .kpi::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#cad8f7,transparent 70%)}
#shell .kpi:hover{transform:translateY(-1px);box-shadow:0 12px 32px rgba(19,48,85,.09)}
#shell .kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;color:#3e5875;font-weight:800;letter-spacing:.01em}
#shell .kpi strong{font-size:43px;color:var(--v91-text);letter-spacing:-.04em;margin-top:4px}
#shell .kpi small{font-size:12px;color:var(--v91-text-soft);line-height:1.55}
#shell .kpi-foot{margin-top:14px;padding-top:12px;border-top:1px dashed #e5edf7;color:#58739a;font-size:11px;font-weight:700}
#shell .kpi-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
#shell .kpi-icon svg{width:20px;height:20px;stroke-width:1.9}
#shell .kpi-icon.blue{background:linear-gradient(180deg,#edf4ff,#dfeaff);color:#4567cd}
#shell .kpi-icon.mint{background:linear-gradient(180deg,#ecfbf5,#dff7ec);color:#198764}
#shell .kpi-icon.violet{background:linear-gradient(180deg,#f1edff,#e7e0ff);color:#7553d7}
#shell .kpi-icon.amber{background:linear-gradient(180deg,#fff6e7,#ffefd1);color:#c6851b}

#shell .panel,#shell .v30-rank-card,#shell .v30-insight-stat,#shell .roster-summary-panel,#shell .settings-panel{background:linear-gradient(180deg,#fff 0%,#fbfcff 100%);border-radius:20px;border:1px solid var(--v91-line);box-shadow:var(--v91-shadow-soft)}
#shell .panel-head{padding-bottom:4px}
#shell .pill{border-radius:999px;padding:8px 12px;background:#eff4ff;color:#4067c8;border:1px solid #d7e5ff;font-weight:800;letter-spacing:.03em}
#shell .v30-filterbar,#shell .filters,#shell .daily-filters,#shell .v31-summary-filter{padding:16px;border-radius:16px;background:#f8fbff;border:1px solid #e2ebf7}
#shell .v30-insight-kpis{padding:0 16px 16px}
#shell .v30-insight-stat{padding:18px 18px 16px;border-radius:18px;position:relative;overflow:hidden}
#shell .v30-insight-stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:0 8px 8px 0;background:currentColor;opacity:.18}
#shell .v30-insight-stat.green{color:#198764}
#shell .v30-insight-stat.red{color:#cb4b58}
#shell .v30-insight-stat.blue{color:#4167c6}
#shell .v30-insight-stat strong{font-size:40px;letter-spacing:-.04em;color:#173857}
#shell .v30-insight-stat small,#shell .v30-insight-stat span{color:#7288a2}
#shell .v30-rank-card{border-radius:18px}
#shell .v30-rank-head{padding:16px 16px 10px}
#shell .v30-medal{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf3ff;color:#4667c6;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
#shell .table-scroll table thead th{background:#f5f8fd;color:#5a7394;font-weight:800;letter-spacing:.06em;font-size:11px}
#shell table tbody td{border-color:#edf2f8}
#shell table tbody tr:hover{background:#f7faff}
#shell table tbody tr:nth-child(even){background:#fcfdff}

/* forms and buttons */
#shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){min-height:42px;border:1px solid #d7e3f1;background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 0 rgba(255,255,255,.6)}
#shell textarea{min-height:104px}
#shell .btn{min-height:39px;padding:0 14px;font-weight:800;letter-spacing:.01em;box-shadow:0 2px 0 rgba(255,255,255,.55) inset}
#shell .btn.primary{background:linear-gradient(180deg,#4b73e7,#365ed3);border-color:#3358c6;box-shadow:0 10px 18px rgba(56,90,183,.18),inset 0 1px 0 rgba(255,255,255,.14)}
#shell .btn.primary:hover{background:linear-gradient(180deg,#557cf0,#3d66da)}
#shell .btn.ghost{background:#fff;border-color:#d8e3f0;color:#35517b}
#shell .btn.ghost:hover{background:#f5f8fd;border-color:#c8d7eb}
#shell .btn:not(:disabled):hover{transform:translateY(-1px)}
#shell .notice{border-radius:16px}

/* roster polish */
#shell .roster-scroll{border-radius:18px;border:1px solid #dfe8f3;box-shadow:inset 0 1px 0 rgba(255,255,255,.5);background:#fff}
#shell .roster-table{font-size:12px}
#shell .roster-table th.sticky-emp,#shell .roster-table td.sticky-emp{backdrop-filter:blur(6px)}
#shell .roster-table thead th{background:linear-gradient(180deg,#f7f9fd,#eef4fb);color:#547092}
#shell .roster-table .sticky-emp{background:#fbfdff}
#shell .roster-table tbody tr:hover .sticky-emp{background:#f7faff}
#shell .shift-pill{border-radius:12px;min-width:44px;padding:7px 9px;font-weight:900;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
#shell .roster-shift-legend{border:1px solid #e0e9f5;border-radius:17px;background:linear-gradient(180deg,#fcfdff,#f7faff)}
#shell .v37-toolbar,#shell .v37-roster-guide,#shell .v38-quick-hint{border-radius:16px;border:1px solid #e2ebf7;box-shadow:none}

/* modal system */
#shell .edit-overlay,#shell .modal-backdrop{background:rgba(14,26,44,.34)}
#shell .edit-dialog,#shell .modal-card,#shell .v76-password-dialog{background:linear-gradient(180deg,#fff,#fbfcff);border-radius:24px;border:1px solid #dee7f3;box-shadow:0 28px 85px rgba(11,26,50,.28)}
#shell .history-dialog-head,.v31-modal-head,.v82-modal-header,.bulk-modal-head,.v76-password-header,.shift-modal-heading{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#fff,#f8fbff);border-bottom:1px solid #e8eef7;border-radius:24px 24px 0 0}
#shell .history-dialog-head,.v31-modal-head,.v82-modal-header,.bulk-modal-head,.v76-password-header{padding:20px 22px 18px}
#shell .v31-kicker,.v82-eyebrow,.v76-kicker{letter-spacing:.18em;font-size:11px;font-weight:900;color:#4e73bf}
#shell .modal-intro{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;border:1px solid #dde7f4;border-radius:18px;background:linear-gradient(135deg,#f9fbff,#eef5ff)}
#shell .modal-intro-icon{width:46px;height:46px;border-radius:14px;background:linear-gradient(180deg,#eaf2ff,#dbe7ff);display:grid;place-items:center;color:#4669ca;font-size:18px;font-weight:900}
#shell .modal-intro strong{display:block;font-size:16px;color:#193654}
#shell .modal-intro small{display:block;margin-top:4px;font-size:11px;color:#7288a2}
#shell .modal-intro-tag{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #d7e3f6;color:#32528b;font-size:11px;font-weight:900;letter-spacing:.04em}
#shell .overnight-notice{margin-top:14px;padding:13px 15px;border-radius:15px;background:#f2f7ff;border:1px solid #dbe6fb;color:#395a93;font-size:12px;line-height:1.6}
#shell .fingerprint-section{margin-top:14px;padding:16px;border-radius:18px;border:1px solid #e0e8f4;background:linear-gradient(180deg,#fff,#fbfdff)}
#shell .fingerprint-section h4{margin:0 0 14px;font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:#38598d}
#shell .detail-grid,.daily-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
#shell .fingerprint-field{padding:14px;border-radius:15px;background:#f8fbff;border:1px solid #e4ecf7;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
#shell .fingerprint-field small{display:block;color:#7590ab;font-size:11px;line-height:1.45}
#shell .fingerprint-field strong{display:block;margin-top:6px;font-size:23px;letter-spacing:-.03em;color:#1a385d;line-height:1.3;overflow-wrap:anywhere}
#shell .info-banner{border-radius:14px}
#shell .v54-scan-heading h4{font-size:12px;letter-spacing:.16em;color:#38598d}
#shell .v54-scan-count{background:#edf4ff;border:1px solid #dbe6fb;color:#4268c9;border-radius:999px;padding:7px 12px;font-weight:800}
#shell .v54-detail-scans{border-radius:16px;border:1px solid #dfe8f3;background:linear-gradient(180deg,#fff,#fbfdff)}
#shell .v54-scan-item{gap:13px;padding:14px 15px;transition:background-color .14s ease,transform .14s ease,box-shadow .14s ease}
#shell .v54-scan-item:hover{background:#f7faff;transform:translateY(-1px)}
#shell .v54-scan-item.selected{background:#edf4ff;box-shadow:inset 4px 0 #4469d6}
#shell .v54-scan-rank{width:38px;height:38px;flex-basis:38px;border-radius:12px;background:linear-gradient(180deg,#edf4ff,#dfeaff);color:#3f63c4}
#shell .v54-scan-text strong{font-size:12px;color:#203956}
#shell .v54-scan-mark{font-size:10px;color:#4468c5;display:flex;align-items:center;gap:6px}
#shell .v54-scan-mark::before{content:"↗";font-size:11px}
#shell .history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
#shell .history-summary>div{padding:15px;border-radius:16px;background:#f7faff;border:1px solid #e1eaf6;text-align:center}
#shell .history-summary strong{display:block;font-size:30px;letter-spacing:-.04em;color:#173857}
#shell .history-summary span{display:block;margin-top:6px;font-size:11px;color:#7187a1}
#shell .history-help{margin:0 0 14px;color:#7086a2;font-size:12px;line-height:1.6}
#shell .history-day{border:1px solid #e0e9f4;border-radius:18px;overflow:hidden;background:#fff;margin-bottom:12px}
#shell .history-day>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 15px;background:linear-gradient(180deg,#f9fbff,#f4f8fd);border-bottom:1px solid #e4ecf7}
#shell .history-day>header b{color:#183754}
#shell .history-day>header span{padding:6px 10px;border-radius:999px;background:#eef4ff;color:#4768c4;font-size:11px;font-weight:800}
#shell .history-scan{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 15px;border:0;border-top:1px solid #eef3f9;background:#fff;width:100%;text-align:left}
#shell .history-scan:hover{background:#f8fbff}
#shell .history-time{display:inline-grid;place-items:center;padding:8px 10px;border-radius:11px;background:#edf3ff;color:#4769c6;font-size:11px;font-weight:900}
#shell .history-view{color:#4368c6;font-size:11px;font-weight:800;white-space:nowrap}
#shell .v82-review-body h4{margin:18px 0 10px;color:#294a79;letter-spacing:.03em}
#shell .v82-table th{background:#f6f9fe;color:#597390}
#shell .v82-table td{border-color:#edf2f8}
#shell .v82-modal-actions,.v31-modal-actions,.bulk-modal-actions,.v76-password-footer,.inline-actions{position:sticky;bottom:0;z-index:2;padding-top:14px;background:linear-gradient(180deg,rgba(251,252,255,.15),#fbfcff 24%)}

/* scan toast popup */
.scan-toast{width:min(430px,calc(100vw - 28px));padding:0;border:1px solid #d6e4f0;background:linear-gradient(180deg,#fff,#fbfcff);border-left:0;border-radius:22px;overflow:hidden;box-shadow:0 24px 70px rgba(10,29,56,.24)}
.scan-toast-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(180deg,#eff7f4,#e8f7f1);border-bottom:1px solid #dfeee6;color:#0c805e;font-size:11px;letter-spacing:.11em;text-transform:uppercase}
.scan-toast-head button{width:30px;height:30px;border-radius:10px;border:1px solid #cfe6db;background:#fff;color:#0d7b5d}
.scan-toast-person{padding:16px 16px 10px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.scan-toast-person .feed-avatar{width:46px;height:46px;border-radius:15px;background:linear-gradient(180deg,#ecf3ff,#dce8ff);color:#4266ca;font-size:12px}
.scan-toast-person strong{display:block;font-size:15px;color:#193553}
.scan-toast-person p{margin:4px 0 0;color:#6e859f;font-size:12px;line-height:1.5}
.scan-toast-person p b{color:#0f815f}
.scan-toast-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 14px;background:#f8fbff;border-top:1px solid #e9eff6;color:#657d97;font-size:11px}
.scan-toast-foot span:last-child{font-weight:700;color:#4368c6}

/* review popup improvements */
#shell .v82-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
#shell .v82-compare .v82-compare-item,#shell .v82-current,#shell .v82-history,#shell .v82-review-reason{border-radius:16px;border:1px solid #e1eaf6;background:#f8fbff;padding:14px}

/* responsive */
@media (max-width:1060px){
  #shell .sidebar{width:unset;flex-basis:auto}
  #shell.v91-collapsed .sidebar{width:min(315px,87vw)!important;flex-basis:auto}
  .v91-sidebar-toggle{display:none}
}
@media (max-width:760px){
  #shell .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  #shell .kpi{padding:16px;border-radius:18px}
  #shell .kpi strong{font-size:31px}
  #shell .history-summary{grid-template-columns:1fr}
  #shell .history-scan{grid-template-columns:80px minmax(0,1fr);gap:8px}
  #shell .history-view{grid-column:2}
  #shell .modal-intro{grid-template-columns:auto 1fr;align-items:flex-start}
  #shell .modal-intro-tag{grid-column:1 / -1;justify-self:start}
  .scan-toast{right:12px;top:72px;border-radius:18px}
}

/* v103 regenerated sidebar / shared component tokens */
:root{--enterprise-navy:#122744;--enterprise-blue:#3766d6;--enterprise-blue-2:#557ce4;--enterprise-line:#dfe8f4;--enterprise-soft:#f5f8fd;--enterprise-ink:#1a3557;--enterprise-muted:#7086a3}
#shell .sidebar{background:linear-gradient(164deg,#142941 0%,#10233d 48%,#1a3455 100%);border-right:1px solid #294360;box-shadow:6px 0 23px rgba(10,35,69,.055)}
#shell .sidebar .brand{position:relative;min-height:105px;padding:21px 15px 21px 17px;gap:10px;border-bottom:1px solid rgba(201,219,245,.095)}
#shell .sidebar .sidebar-logo{border:0;background:transparent;border-radius:10px;width:48px;height:48px;flex-basis:48px;object-fit:contain;box-shadow:none}
#shell .sidebar .brand .v91-brand-copy strong{font-size:13px;font-weight:850;line-height:1.35;letter-spacing:-.03em;color:#fff}
#shell .sidebar .brand .v91-brand-copy small{font-size:8px;letter-spacing:.16em;color:#96abc6;line-height:1.7}
#shell .sidebar .nav-label{font-size:9px;text-transform:uppercase;font-weight:900;letter-spacing:.20em;color:#819dbe;padding:25px 21px 13px}
#shell .sidebar .nav-label:after{left:22px;right:22px;bottom:2px;background:#e4eff915}
#shell #nav .nav-item{position:relative;gap:12px;margin:3px 0;min-height:45px;padding:7px 13px 7px 12px;display:flex;align-items:center;border:1px solid transparent;border-radius:13px;font-size:11px;font-weight:750;letter-spacing:-.01em;color:#c9d7ea;transition:color .16s,background-color .16s,border-color .16s,box-shadow .16s}
#shell #nav .nav-item .v91-nav-ic{display:grid;place-items:center;width:32px;height:32px;min-width:32px;flex:0 0 32px;border-radius:10px;color:#b7c9e2;background:rgba(255,255,255,.035);border:1px solid rgba(233,242,255,.035)}
#shell #nav .nav-item .v91-nav-ic svg{width:18px;height:18px;stroke-width:1.85}
#shell #nav .nav-item .v91-nav-text{white-space:normal;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
#shell #nav .nav-item:not(.active):hover{color:#fff;background:#e3eff60e;border-color:rgba(234,244,255,.075)}
#shell #nav .nav-item:not(.active):hover .v91-nav-ic{background:rgba(255,255,255,.09);color:#f4faff}
#shell #nav .nav-item.active{color:#fff;background:linear-gradient(100deg,#3d64d6,#5177e0);border-color:rgba(217,229,255,.12);box-shadow:inset 2px 0 #ff9a7b,0 9px 22px rgba(3,19,47,.22)}
#shell #nav .nav-item.active .v91-nav-ic{color:#fff;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.10)}
#shell #nav .nav-item.active:after{inset:11px auto 11px 4px;width:3px;background:#ff9b7c}
#shell .sidebar-bottom{border-top:1px solid rgba(232,243,255,.08);background:linear-gradient(180deg,transparent,rgba(2,12,26,.075))}
#shell .side-status{border-radius:13px;padding:13px 12px;background:#f1f7ff0d;border-color:#dce9ff1b}
#shell #logout{min-height:43px;border-radius:12px;color:#c5d5e9}
#shell #logout:hover{background:#f4faff10;color:#fff}
#shell .v91-sidebar-toggle{min-width:34px;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;border:1px solid rgba(236,245,255,.16);background:rgba(255,255,255,.075);color:#cce0f7}
#shell .v91-sidebar-toggle svg{width:17px;height:17px}
#shell.v91-collapsed .sidebar .brand{flex-wrap:wrap;gap:8px;justify-content:center}
#shell.v91-collapsed .sidebar .v91-sidebar-toggle{margin:5px auto 0}
#shell.v91-collapsed #nav .nav-item{padding:7px;justify-content:center;min-height:49px}
#shell.v91-collapsed #nav .nav-item .v91-nav-ic{width:33px;flex-basis:33px}
#shell.v91-collapsed #logout{justify-content:center}
#shell .topbar{background:rgba(253,254,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #dfe8f3;box-shadow:0 3px 14px rgba(23,52,93,.035)}
#shell :is(.panel,.roster-summary-panel){border:1px solid var(--enterprise-line);box-shadow:0 13px 36px rgba(18,45,83,.055)}
#shell .pill,#shell .daily-badge,#shell .v82-pill{font-weight:800}
#shell :is(.btn,.v96-action-btn,.v91-sidebar-toggle):focus-visible{outline:3px solid #a5bbf9;outline-offset:2px}
#shell .btn{border-radius:11px;min-height:38px;letter-spacing:0}
#shell .btn:not(:disabled):active{transform:translateY(0) scale(.987)}
#shell .btn.primary{background:linear-gradient(120deg,#385ed1,#5076e1);border-color:#3a5fcc}
#shell .btn.primary:hover:not(:disabled){background:linear-gradient(120deg,#3153be,#456bd7)}
#shell .panel-head h3{font-size:16px;font-weight:900;color:#183756;letter-spacing:-.04em}
#shell :is(.kpi,.daily-kpi,.v30-insight-stat,.timeline-stats>div){transition:box-shadow .18s ease,border-color .18s ease}
#shell :is(.kpi,.daily-kpi,.v30-insight-stat,.timeline-stats>div):hover{border-color:#cadbf2;box-shadow:0 14px 35px rgba(20,49,94,.08)}
@media(max-width:1060px){#shell .sidebar .v91-sidebar-toggle{display:none}#shell .sidebar .brand{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){#shell .btn,#shell #nav .nav-item,#shell :is(.kpi,.daily-kpi,.v30-insight-stat){transition:none!important}}

/* ===== END: assets/v91-enterprise.css ===== */

/* ===== 09. ORIGINAL SOURCE: assets/v92-live-experience.css ===== */
/* v92 — Live Scan & Notification Experience, non-invasive to data */
.scan-toast.v92-live-pop{position:fixed;z-index:320;right:22px;top:79px;width:min(446px,calc(100vw - 24px));border-radius:21px;background:#fff;border:1px solid #dce6f2;border-left:0;padding:0;overflow:hidden;box-shadow:0 24px 75px #132b4a3f;color:#1d3858;animation:v92-toast-in .22s cubic-bezier(.16,1,.3,1) both}
.scan-toast.v92-live-pop.hidden{display:none!important}
.v92-toast-band{height:43px;padding:0 15px;background:#edf5ff;border-bottom:1px solid #e1ebfa;display:flex;align-items:center;gap:9px;color:#3263bc;font-weight:850;font-size:10px;letter-spacing:.075em}
.v92-live-beacon{background:#4272d9;width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 4px #4272d924;flex-shrink:0}
.v92-toast-close{margin-left:auto;background:transparent;border:0;color:#6480a6;font-size:24px;width:30px;height:30px;cursor:pointer;border-radius:9px;line-height:1}
.v92-toast-close:hover{background:#dce8f8}
.v92-toast-main{display:flex;align-items:center;gap:12px;padding:19px 16px 15px}
.v92-toast-statusicon{width:54px;height:54px;border-radius:17px;background:#e8f1ff;display:grid;place-items:center;color:#4b72d0;flex-shrink:0;box-shadow:0 5px 16px #3160b016}
.v92-toast-statusicon svg{width:27px;height:27px}
.v92-toast-maincopy{min-width:0;flex:1}
.v92-toast-class{display:block;font-size:9px;font-weight:850;letter-spacing:.06em;color:#597ba8;line-height:1.35}
.v92-toast-maincopy strong{display:block;font-size:18px;line-height:1.32;letter-spacing:-.45px;margin:2px 0 1px;color:#203d60}
.v92-toast-maincopy p{font-size:10px;color:#7c8fa9;margin:0;line-height:1.4}
.v92-toast-clock{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-left:9px;white-space:nowrap}
.v92-toast-clock strong{font-size:17px;letter-spacing:-.4px;color:#29476a;font-variant-numeric:tabular-nums}
.v92-toast-clock span{font-size:10px;color:#8799ae;font-weight:750}
.v92-toast-person{padding:13px 16px;display:flex;gap:11px;align-items:center;border-top:1px solid #edf2f9;background:#fafcff}
.v92-toast-avatar{width:43px;height:43px;display:grid;place-items:center;flex-shrink:0;border:1px solid #d6e4fb;border-radius:13px;background:#eaf1ff;color:#4367c8;font-weight:900;font-size:12px}
.v92-toast-person div{min-width:0}
.v92-toast-person strong{font-weight:850;color:#183757;font-size:12px;display:block}
.v92-toast-person small{font-size:10px;color:#748ba5;line-height:1.5;display:block;margin-top:2px;overflow-wrap:anywhere}
.v92-toast-footer{padding:12px 16px 13px;background:#f5f8fd;border-top:1px solid #e6eef8;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;font-size:10px;color:#778da6}
.v92-toast-link{background:transparent;border:0;padding:4px 0;color:#3c63c3;font-weight:850;cursor:pointer;font-size:10px}
.v92-toast-link:hover{text-decoration:underline}
.v92-toast-progress{position:absolute;bottom:0;left:0;height:3px;background:#5479df;width:100%;animation:v92-progress 11s linear both}
.v92-out .v92-toast-band{background:#edf3ff;color:#4463b5}
.v92-out .v92-toast-statusicon{background:#eaf0ff;color:#4868c7}
.v92-in .v92-toast-band{background:#e9f9f2;border-color:#d4eee1;color:#118661}
.v92-in .v92-live-beacon,.v92-in .v92-toast-progress{background:#14a676;box-shadow:0 0 0 4px #14a67620}
.v92-in .v92-toast-statusicon{background:#e5f7ef;color:#168b64}
.v92-unknown .v92-toast-band{background:#fff7eb;border-color:#f6e7d1;color:#99651b}
.v92-unknown .v92-live-beacon,.v92-unknown .v92-toast-progress{background:#d99b42;box-shadow:0 0 0 4px #d99b4220}
.v92-unknown .v92-toast-statusicon{background:#fff2d9;color:#ae771e}
.notification-center{width:min(450px,calc(100vw - 26px));border:1px solid #dce7f4;border-radius:20px;box-shadow:0 25px 85px #16294446;overflow:hidden}
.notification-center:not(.hidden){animation:v92-toast-in .18s cubic-bezier(.16,1,.3,1) both}
.notification-center-head{padding:16px 17px;border-bottom:1px solid #e4edf8;background:linear-gradient(180deg,#fff,#f9fbff)}
.notification-center-icon{background:#eaf1ff;color:#3c63c7;border-radius:12px}
.v92-center-toolbar{display:flex;gap:7px;padding:11px 14px;background:#f9fbff;border-bottom:1px solid #eaf0f8;overflow-x:auto}
.v92-center-toolbar button{flex:1;min-width:69px;border:1px solid #dae6f4;background:#fff;color:#64809e;border-radius:10px;padding:8px 11px;font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap}
.v92-center-toolbar button.active{background:#eaf2ff;border-color:#bacef5;color:#2e60c4;box-shadow:inset 0 0 0 1px #d5e5ff}
.notification-center-list{padding:7px 13px;max-height:min(65dvh,450px)}
.notification-center-row{padding:13px 2px;gap:10px}
.notification-center-avatar{width:40px;height:40px;background:#e9f1ff;border-radius:13px;color:#456ccc}
.notification-center-copy time{font-variant-numeric:tabular-nums}
.v92-notif-state{white-space:nowrap;display:inline-flex;align-items:center;padding:5px 7px;border-radius:8px;background:#f2f5fa;color:#728299;font-size:9px;font-weight:850}
.v92-notif-in .v92-notif-state{background:#e7f7ed;color:#10865a}
.v92-notif-out .v92-notif-state{background:#edf2ff;color:#3e64b8}
.v92-notif-unknown .v92-notif-state{background:#fff5e6;color:#a47223}
.notification-center-foot{padding:12px 16px;background:#f7f9fd;line-height:1.55}
#view-timeline .timeline-stats>div{border-radius:15px;border:1px solid #dfe8f5;background:#f9fbff}
#view-timeline .timeline-items{overscroll-behavior:auto}
#view-timeline .feed-item{transition:background-color .16s ease,border-color .16s ease,transform .16s ease}
#view-timeline .feed-item:hover{transform:translateY(-1px);background:#f7faff;border-color:#cfdff5}
@keyframes v92-toast-in{from{opacity:0;transform:translateY(-12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes v92-progress{from{transform:scaleX(1);transform-origin:left}to{transform:scaleX(0);transform-origin:left}}
@media(max-width:650px){.scan-toast.v92-live-pop{top:67px;right:10px;width:calc(100vw - 20px)}.v92-toast-main{gap:9px}.v92-toast-statusicon{width:43px;height:43px;border-radius:13px}.v92-toast-statusicon svg{width:22px}.v92-toast-maincopy strong{font-size:16px}.v92-toast-clock strong{font-size:14px}.notification-center{top:65px;right:10px}}
@media(prefers-reduced-motion:reduce){.scan-toast.v92-live-pop,.notification-center:not(.hidden),.v92-toast-progress{animation:none!important}}

/* ===== END: assets/v92-live-experience.css ===== */

/* ===== 10. ORIGINAL SOURCE: assets/v93-overview-roster.css ===== */
/* v93 — Overview & Roster visual refinements */
#view-dashboard .v93-dashboard-banner{border:1px solid #dce7f4;background:linear-gradient(115deg,#fbfdff 0%,#f0f5ff 70%,#edf2ff 100%);padding:15px 21px;margin:0 0 16px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:15px;box-shadow:0 8px 22px #1b3d6910}
#view-dashboard .v93-banner-label{font-size:9px;letter-spacing:.17em;font-weight:850;color:#5c7ba8;text-transform:uppercase}
#view-dashboard .v93-banner-title{font-size:14px;font-weight:900;color:#183b65;display:block;margin-top:3px}
#view-dashboard .v93-banner-text{font-size:10px;color:#7289a5;max-width:580px;line-height:1.5;margin-top:3px}
#view-dashboard .v93-banner-emblem{width:38px;height:38px;border-radius:12px;background:#e4edff;color:#4264bc;display:grid;place-items:center;flex-shrink:0}
#view-dashboard .v93-banner-emblem svg{width:19px;height:19px}
#view-dashboard .kpi{min-height:175px}
#view-dashboard .kpi::before{content:"";position:absolute;top:-40px;right:-22px;width:130px;height:130px;border-radius:50%;background:linear-gradient(145deg,#eef4ff0d,#e9f0ff8a);pointer-events:none}
#view-dashboard .kpi .kpi-icon{position:relative;z-index:1}
#view-dashboard .v30-insights>.panel-head{padding:21px 22px 17px}
#view-dashboard .v30-insights>.panel-head h3{font-size:17px;color:#173b60}
#view-dashboard .v30-filterbar{margin:0 18px 17px;border-radius:15px;background:#f8fbff}
#view-dashboard .v77-insight-status{border-top:1px solid #e7eef8;border-bottom:1px solid #e7eef8;background:#f7faff;color:#57749a}
#view-dashboard .v30-insight-kpis{padding:18px 19px 12px;gap:15px}
#view-dashboard .v30-insight-stat{min-height:124px}
#view-dashboard .v30-insight-stat strong{font-size:36px;line-height:1.1;margin-top:8px}
#view-dashboard .v30-rank-grid{padding:0 18px 16px;gap:15px}
#view-dashboard .v30-rank-card{min-height:390px;box-shadow:0 7px 22px #162f5910}
#view-dashboard .v30-rank-head{background:linear-gradient(180deg,#fff,#fafcff);border-bottom:1px solid #e4eefa}
#view-dashboard .v30-rank-head h4{font-size:13px;color:#193b60}
#view-dashboard .v30-rank-head p{font-size:10px;line-height:1.55;color:#7d8fa9}
#view-dashboard .v30-rank-card .table-scroll{border-radius:0 0 15px 15px}
#view-dashboard .v30-rank-card table{font-variant-numeric:tabular-nums}
#view-dashboard .v30-rank-card tbody tr:hover{background:#f0f6ff!important}
#view-dashboard .v30-rank-card th{white-space:nowrap;font-size:10px}
#view-dashboard .v30-rank-card .v62-rank-badge{border-radius:11px}
#view-roster .v93-roster-workflow{margin:0 0 17px;padding:12px 15px;background:linear-gradient(110deg,#f3f7ff,#f9fbff);border:1px solid #dbe7f8;border-radius:15px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
#view-roster .v93-roster-workflow strong{font-size:11px;color:#274c81;letter-spacing:.04em}
#view-roster .v93-roster-hints{display:flex;gap:8px;flex-wrap:wrap}
#view-roster .v93-roster-hints span{font-size:10px;border:1px solid #dee9f7;background:#fff;border-radius:999px;padding:7px 10px;color:#66809f;font-weight:750}
#view-roster>.panel{border-radius:20px;overflow:visible}
#view-roster .panel-head{border-radius:18px 18px 0 0}
#view-roster .v37-toolbar{background:#f6f9fe;border:1px solid #dfe9f7}
#view-roster .v37-primary-actions{gap:8px}
#view-roster .v37-primary-actions .btn{white-space:nowrap}
#view-roster .v43-legend-head{margin-top:12px}
#view-roster .roster-shift-legend{border:1px solid #dce6f5;max-height:210px;overflow:auto}
#view-roster .roster-scroll{border-radius:15px;border:1px solid #dce6f5;scrollbar-color:#b5c6e4 #f4f7fc}
#view-roster .roster-table{border-spacing:0;border-collapse:separate}
#view-roster .roster-table th{font-size:10px;letter-spacing:.025em;border-bottom:1px solid #dae6f4}
#view-roster .roster-table td{transition:background-color .1s ease}
#view-roster .roster-table tbody tr:hover{background:#f1f6ff!important}
#view-roster .roster-table .shift-pill{border-radius:9px;min-height:30px;transition:transform .1s ease,box-shadow .12s ease}
#view-roster .roster-table .shift-pill:active{transform:scale(.96)}
#view-roster .roster-summary-panel{border-radius:17px}
#view-roster .v37-selection-count{font-size:10px;color:#6280a2}
#view-roster #rosterPeriodLabel{font-weight:850;color:#2a528a}
@media(max-width:950px){#view-dashboard .v30-rank-grid{grid-template-columns:1fr}#view-dashboard .v30-insight-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#view-dashboard .v93-dashboard-banner{padding:13px 15px}#view-dashboard .v30-insight-kpis{grid-template-columns:1fr;padding:12px}#view-dashboard .v30-rank-grid{padding:0 10px 12px}#view-dashboard .v30-insights>.panel-head{padding:15px}}

/* ===== END: assets/v93-overview-roster.css ===== */

/* ===== 11. ORIGINAL SOURCE: assets/v94-people-review.css ===== */
/* v94 — Employee Directory & Attendance Review */
#view-employees>.panel,#view-review>.panel{border-radius:20px;overflow:hidden}
#view-employees .panel-head{padding:22px 23px 20px;align-items:flex-start;gap:18px}
#view-employees .panel-head h3,#view-review .panel-head h3{font-size:18px;letter-spacing:-.035em;margin-bottom:4px}
#view-employees .panel-head p,#view-review .panel-head p{font-size:11px;color:#7187a0;line-height:1.6}
#view-employees .panel-head .inline-actions{gap:9px;align-items:center;flex-wrap:wrap}
#view-employees .panel-head #employeeSearch{min-width:200px}
#view-employees #employeeBulkBar{margin:0 19px 16px;border-radius:15px;border:1px solid #dfe9f6;background:linear-gradient(180deg,#f9fbff,#f4f8fd);padding:13px 15px}
#view-employees #employeeSelectedCount{color:#2b4e81}
#view-employees .table-scroll{border-top:1px solid #e8eef7;overflow:auto;max-height:min(68dvh,790px)}
#view-employees .table-scroll th{position:sticky;top:0;z-index:2;background:#f4f8fd;font-size:10px;letter-spacing:.08em;color:#617a99;padding-block:14px;border-bottom:1px solid #dfe8f4}
#view-employees .table-scroll td{font-size:11px;padding-top:12px;padding-bottom:12px;line-height:1.55}
#view-employees .table-scroll tr:nth-child(even){background:#fcfdff}
#view-employees .table-scroll tr:hover{background:#f1f6ff!important}
#view-employees .table-scroll tr:focus-within{background:#eef4ff}
#view-employees .pagination{background:#f9fbff;border-top:1px solid #e7eef7;padding:15px 22px}
#editEmployeeModal .edit-dialog{padding:0!important;max-width:790px;max-height:min(90dvh,930px);overflow:auto}
#editEmployeeModal #employeeEditForm{max-height:min(90dvh,930px)}
#editEmployeeModal .v94-employee-header{position:sticky;top:0;background:linear-gradient(110deg,#fff,#f5f9ff);padding:18px 23px;z-index:3;border-bottom:1px solid #e2ecf7;display:flex;align-items:center;gap:12px}
#editEmployeeModal .v94-employee-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid #d9e6fa;background:#eaf2ff;border-radius:14px;color:#466ac6;flex-shrink:0}
#editEmployeeModal .v94-employee-icon svg{width:21px;height:21px}
#editEmployeeModal .v94-employee-header h3{margin:0;font-size:19px;color:#183a60;letter-spacing:-.035em}
#editEmployeeModal .v94-employee-header p{margin:2px 0 0;color:#7a8ca5;font-size:11px}
#editEmployeeModal .v94-employee-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;padding:18px 23px 20px}
#editEmployeeModal .v94-employee-fields label{min-width:0;display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:800;color:#547092}
#editEmployeeModal .v94-employee-fields :is(input,select){width:100%;min-height:44px;background:#fff}
#editEmployeeModal .v94-employee-fields label:first-child{grid-column:1 / -1}
#editEmployeeModal .lifecycle-panel{margin:0 23px 16px;background:linear-gradient(180deg,#f8fbff,#f3f7fd);border:1px solid #e0eaf6;border-radius:18px;padding:17px}
#editEmployeeModal .lifecycle-panel h4{font-size:13px;color:#254971;margin-top:0}
#editEmployeeModal .lifecycle-warning{border-radius:13px}
#editEmployeeModal #employeeHistoryBtn{margin:0 23px 16px}
#editEmployeeModal .device-tools{margin:0 23px 15px;border-radius:17px;background:#f9fbfe;border:1px solid #e4eaf5;padding:16px}
#editEmployeeModal .inline-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;margin:0!important;padding:15px 23px;border-top:1px solid #e0e9f5;box-shadow:0 -12px 30px #0f2e4810;background:#fff;z-index:3}
#editEmployeeModal .inline-actions .btn{min-height:42px}
#view-review .panel-head{padding:24px 23px 18px;align-items:center}
#view-review .v82-label{background:#eef5ff;color:#4367bc;border:1px solid #d6e3fc;padding:8px 11px;border-radius:999px;font-weight:850;font-size:10px}
#view-review .v94-review-quick{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:2px 21px 15px;padding:12px 13px;border:1px solid #e1eaf6;background:#f8fbff;border-radius:15px}
#view-review .v94-review-quick>span{font-size:10px;color:#6a819d;font-weight:800;margin-right:4px}
#view-review .v94-review-quick button{background:#fff;border:1px solid #d9e5f4;color:#56769d;padding:8px 11px;border-radius:10px;font-size:10px;font-weight:850;cursor:pointer;transition:background .14s,border-color .14s}
#view-review .v94-review-quick button:hover{background:#edf4ff;border-color:#c8d9f4}
#view-review .v94-review-quick button.active{background:#3d68d8;color:#fff;border-color:#3d68d8}
#view-review .v82-controls{margin:0 21px 16px;padding:16px;background:#fafcff;border:1px solid #e4edf8;border-radius:15px;display:flex;gap:12px;align-items:end;flex-wrap:wrap}
#view-review .v82-controls>label{min-width:138px;flex:1}
#view-review .v82-metrics{gap:14px;padding:0 21px 16px;grid-template-columns:repeat(4,minmax(0,1fr))}
#view-review .v82-metric{position:relative;padding:17px;border-radius:17px;border:1px solid #e1e9f5;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 5px 14px #1a38650a;min-width:0}
#view-review .v82-metric::before{content:"";position:absolute;inset:10px auto 10px 0;width:4px;background:#9cb2d1;border-radius:0 7px 7px 0}
#view-review .v82-metric:nth-child(1)::before{background:#d9a03a}
#view-review .v82-metric:nth-child(2)::before{background:#17a879}
#view-review .v82-metric:nth-child(3)::before{background:#d15d65}
#view-review .v82-metric:nth-child(4)::before{background:#7f72cd}
#view-review .v82-metric small{display:block;color:#6c829f;font-size:11px;line-height:1.5}
#view-review .v82-metric b{font-size:30px;color:#183a5a;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
#view-review .v82-help{margin:0 21px 15px;border-radius:12px}
#view-review .v82-table-scroll{margin:0 21px 22px;border-radius:14px;border:1px solid #e1eaf6;max-height:min(60dvh,620px);overflow:auto}
#view-review .v82-table th{position:sticky;top:0;z-index:3;background:#f3f7fc;border-bottom:1px solid #dbe5f3;font-size:10px;letter-spacing:.07em;white-space:nowrap}
#view-review .v82-table td{font-size:11px;padding:12px 13px}
#view-review .v82-table tbody tr:hover{background:#f1f6ff}
#reviewModal .v82-review-dialog{border-radius:22px;max-width:920px;overflow:auto}
#reviewModal .v82-modal-header{padding:20px 23px;background:linear-gradient(110deg,#fff,#f4f8ff)}
#reviewModal .v82-review-body{padding:18px 23px}
#reviewModal .v82-compare{gap:12px}
#reviewModal .v82-compare>div{padding:16px 17px;border-radius:15px;border:1px solid #deebfa;background:#f8fbff}
#reviewModal .v82-compare strong{font-size:21px;font-weight:900;color:#23466f;letter-spacing:-.04em}
#reviewModal .v82-review-reason{border-radius:13px;border:1px solid #f0dfbb;background:#fff9ee;color:#8b672a;padding:12px 15px;font-size:11px;line-height:1.6}
#reviewModal .v94-review-guide{background:#f4f8ff;border:1px solid #e1ebfb;color:#58769d;border-radius:12px;padding:11px 13px;font-size:11px;line-height:1.6;margin:12px 0}
#reviewModal .v82-table-scroll{border:1px solid #e0eaf6;border-radius:12px;overflow:auto}
#reviewModal .v82-modal-actions{padding:15px 23px;background:#fff;border-top:1px solid #e6edf7;box-shadow:0 -10px 25px #112a4212}
@media(max-width:860px){#view-review .v82-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#editEmployeeModal .v94-employee-fields{grid-template-columns:1fr}}
@media(max-width:600px){#view-employees .panel-head{padding:16px}#view-employees .panel-head .inline-actions{width:100%}#view-employees .panel-head #employeeSearch{min-width:0;width:100%}#view-review .v82-metrics{padding-inline:12px;gap:8px}#view-review .v82-controls,#view-review .v94-review-quick{margin-inline:12px}#view-review .v82-table-scroll{margin-inline:11px}#editEmployeeModal .v94-employee-fields{padding:13px 15px}#editEmployeeModal .lifecycle-panel,#editEmployeeModal .device-tools{margin-inline:15px}#editEmployeeModal .v94-employee-header{padding:14px}}

/* ===== END: assets/v94-people-review.css ===== */

/* ===== 12. ORIGINAL SOURCE: assets/v97-live-daily.css ===== */
/* AttendanceOS v103 — regenerated Live Timeline + Daily Attendance visual system.
   One source of styling for these views; no fingerprint or payroll rules. */
:root{--v103-line:#dfe7f3;--v103-dark:#132e51;--v103-muted:#7088a8;--v103-blue:#365fcd;--v103-bg:#f7faff}
#view-timeline .timeline-main,#view-timeline .timeline-aside,#view-timeline .late-panel,#view-daily .daily-panel{
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);border:1px solid var(--v103-line);border-radius:23px;
  box-shadow:0 12px 36px rgba(16,42,85,.075);min-width:0
}
#view-timeline .timeline-main .panel-head,#view-daily .daily-panel>.panel-head{padding:24px 26px 19px;align-items:flex-start;border-bottom:1px solid #eef2f9}
#view-timeline .timeline-main .panel-head h3,#view-daily .daily-panel>.panel-head h3{font-size:19px;letter-spacing:-.035em;font-weight:900;color:var(--v103-dark)}
#view-timeline .timeline-main .panel-head p,#view-daily .daily-panel>.panel-head p{margin-top:7px;color:#7b90aa;line-height:1.55}
#view-timeline #timelineBadge{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:#e9f9f3;border:1px solid #c9e8db;color:#147c5a;font-size:10px;font-weight:900;letter-spacing:.04em}
#view-timeline #timelineBadge::before{content:"";width:7px;height:7px;border-radius:99px;background:#15a06e;box-shadow:0 0 0 4px #15a06e17}
#view-timeline .timeline-controls,#view-daily .daily-filters{margin:18px 22px 15px;display:flex;gap:12px;align-items:end;flex-wrap:wrap;background:#f7faff;border:1px solid #e0eaf8;border-radius:17px;padding:16px}
#view-timeline .timeline-controls input,#view-daily .daily-filters :is(select,input){min-height:42px;border-radius:11px;background:#fff}
#view-timeline .timeline-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 22px 17px}
#view-timeline .timeline-stats>div{position:relative;background:#fff;border:1px solid #e0e9f6;border-radius:17px;padding:16px 18px;box-shadow:0 8px 22px rgba(17,47,91,.045)}
#view-timeline .timeline-stats>div::before{content:"";width:3px;height:27px;position:absolute;top:18px;left:0;background:linear-gradient(#3c68d6,#7ca6ff);border-radius:5px}
#view-timeline .timeline-stats small{font-size:11px;color:#788eaa;font-weight:750}
#view-timeline .timeline-stats strong{margin-top:6px;font-size:23px;color:#16375d;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
#view-timeline .timeline-hint{margin:0 22px 16px;padding:12px 15px;border-radius:13px;background:#f2f6ff;border:1px solid #dfe9fb;color:#567297;line-height:1.65;font-size:11px}
#view-timeline .v96-live-summary{display:flex;flex-wrap:wrap;gap:8px;padding:0 22px 14px}
#view-timeline .v96-live-chip{padding:9px 11px;border-radius:999px;border:1px solid #dbe5f5;background:#f6f9fe;color:#365782;font-size:11px;font-weight:800}
#view-timeline .timeline-items{display:grid;gap:0;padding:8px 22px 24px;max-height:min(68dvh,850px);overflow-y:auto;overscroll-behavior-y:auto;scrollbar-gutter:stable}
#view-timeline .feed-item{position:relative;display:flex;width:100%;gap:15px;align-items:center;min-height:94px;margin:0 0 12px;background:#fff;border:1px solid #e0e9f5;border-left:0;border-radius:17px;padding:14px 17px 14px 14px;text-align:left;box-shadow:0 6px 19px rgba(17,45,84,.055);transform:none;transition:border-color .16s,box-shadow .16s,background .16s}
#view-timeline .feed-item:hover{background:#fafcff;border-color:#c9daf2;box-shadow:0 12px 30px rgba(18,46,87,.085);transform:none}
#view-timeline .v103-feed-rail{display:flex;flex:0 0 34px;min-width:34px;align-items:center;justify-content:center;align-self:stretch;position:relative}
#view-timeline .v103-scan-icon{position:relative;z-index:2;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#5e799f;background:#edf3fb;border:1px solid #dce6f5}
#view-timeline .v103-scan-icon svg{width:17px;height:17px;display:block}
#view-timeline .v103-rail-line{display:block;position:absolute;width:2px;top:calc(50% + 17px);bottom:-25px;background:linear-gradient(#d6e2f4,transparent);pointer-events:none}
#view-timeline .feed-item:last-child .v103-rail-line{display:none}
#view-timeline .v97-in .v103-scan-icon{color:#16875e;background:#e8f8f1;border-color:#caedda}
#view-timeline .v97-out .v103-scan-icon{color:#375fcd;background:#edf3ff;border-color:#d7e4ff}
#view-timeline .v97-duplicate .v103-scan-icon{color:#af7217;background:#fff5e2;border-color:#f7e0af}
#view-timeline .v97-review .v103-scan-icon{color:#bd4c5c;background:#fff0f1;border-color:#f5d6dc}
#view-timeline .feed-avatar{width:48px;height:48px;flex:0 0 48px;border-radius:15px;background:linear-gradient(135deg,#e7efff,#dce7fd);color:#355fcb;display:grid;place-items:center;font-size:12px;font-weight:900;box-shadow:none}
#view-timeline .feed-person{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;align-items:flex-start;line-height:1.4}
#view-timeline .feed-person strong{display:block;font-size:14px;line-height:1.35;color:#183755;font-weight:900;overflow-wrap:anywhere}
#view-timeline .feed-person small{display:block;margin-top:3px;font-size:11px;line-height:1.5;color:#69819e;overflow-wrap:anywhere}
#view-timeline .v103-shift-label{display:inline-block;margin-top:7px;padding:5px 8px;border-radius:8px;color:#3c639b;background:#eff5ff;border:1px solid #e0eafa;font-size:10px;font-weight:800;line-height:1.4}
#view-timeline .v103-feed-note{display:block;margin-top:5px;font-size:10px;color:#8194af;line-height:1.5;overflow-wrap:anywhere}
#view-timeline .feed-end{display:flex;flex-direction:column;align-items:flex-end;gap:9px;white-space:nowrap;min-width:132px;flex:0 0 auto}
#view-timeline .v103-feed-stamp{display:flex;align-items:baseline;gap:5px;line-height:1.2}
#view-timeline .v103-feed-stamp strong{font-size:19px;letter-spacing:-.04em;font-weight:900;color:#193858;font-variant-numeric:tabular-nums}
#view-timeline .v103-feed-stamp small{font-size:10px;color:#8ca0b9;font-weight:800}
#view-timeline .v57-direction{display:inline-block;border-radius:999px;border:1px solid #e0e8f6;background:#f2f6fd;padding:7px 11px;line-height:1.2;font-size:10px;font-weight:900;letter-spacing:.055em}
#view-timeline .v57-direction.v57-in{border-color:#c9ecdb;color:#127f55;background:#e9f8f1}
#view-timeline .v57-direction.v57-out{border-color:#d9e4ff;color:#365fca;background:#eff3ff}
#view-timeline .v57-direction.v57-duplicate{border-color:#f1dfb3;color:#ad741b;background:#fff6e6}
#view-timeline .v57-direction.v57-unknown{border-color:#f0d5dc;color:#b84b5b;background:#fff0f2}
#view-timeline .feed-arrow{color:#8da8c9;font-size:23px}
#view-timeline .timeline-empty{display:grid;gap:7px;padding:48px 20px;border:1px dashed #d1dff1;border-radius:16px;background:#f8fbff;color:#6c849e;text-align:center;font-size:12px}
#view-timeline .timeline-empty strong{font-size:14px;color:#264b77}
#view-timeline .v97-live-filter{padding:0 22px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#view-timeline .v97-live-filter button,#view-daily .v97-daily-filter button{appearance:none;border:1px solid #dbe6f4;border-radius:999px;background:#fff;color:#4d6b8b;min-height:34px;padding:8px 12px;font:inherit;font-size:11px;font-weight:800;line-height:1.25;transition:background-color .15s,border-color .15s,color .15s}
#view-timeline .v97-live-filter button:hover,#view-daily .v97-daily-filter button:hover{background:#f3f7ff;border-color:#becfe9}
#view-timeline .v97-live-filter button[aria-pressed=true],#view-daily .v97-daily-filter button[aria-pressed=true]{background:#3561cf;color:#fff;border-color:#3561cf;box-shadow:0 6px 17px rgba(53,97,207,.17)}
.v97-filter-count{font-weight:900;opacity:.8;margin-left:4px;font-variant-numeric:tabular-nums}
.v97-filter-status{width:100%;font-size:11px;line-height:1.5;color:#7186a1}
.v97-no-filter-result{display:none;margin:0 22px 18px;padding:24px 16px;text-align:center;color:#6c84a2;background:#f8fbff;border:1px dashed #cfdded;border-radius:14px}
.v97-no-filter-result:not(.hidden){display:block}
#view-timeline .timeline-aside .panel-head{padding:22px 22px 16px}
#view-timeline .timeline-aside .health-row{padding:10px 22px;border-bottom:1px solid #edf2f9}
#view-timeline .timeline-aside .health-row b{color:#1c3d60;max-width:55%;text-align:right;overflow-wrap:anywhere}
#view-timeline .timeline-aside .info-banner{margin:14px 20px;border-radius:13px;font-size:11px;line-height:1.7}
/* Daily workspace */
#view-daily .daily-filters{margin:0 18px 15px}
#view-daily .daily-filters>label{min-width:145px}
#view-daily .v97-daily-filter{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 19px 16px}
#view-daily .v97-daily-label{color:#8193ac;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:900;margin-right:5px}
#view-daily .daily-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 19px 17px}
#view-daily .daily-kpi{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:149px;border:1px solid #dee8f5;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 7px 23px rgba(14,44,85,.055);padding:16px 18px;overflow:hidden}
#view-daily .daily-kpi::before{content:"";position:absolute;top:16px;right:0;width:3px;height:36px;border-radius:4px;background:#96b6ed}
#view-daily .daily-kpi.green::before{background:#29b086}
#view-daily .daily-kpi.red::before{background:#d96b71}
#view-daily .daily-kpi.orange::before{background:#dcb060}
#view-daily .v103-metric-icon{position:absolute;top:15px;right:14px;width:38px;height:38px;display:grid;place-items:center;border:1px solid #e0e9f7;border-radius:12px;background:#edf3ff;color:#4267bb}
#view-daily .v103-metric-icon svg{width:18px;height:18px;display:block}
#view-daily .daily-kpi.green .v103-metric-icon{background:#eaf9f1;color:#169369;border-color:#d0eddf}
#view-daily .daily-kpi.red .v103-metric-icon{background:#fff0f0;color:#c45d63;border-color:#f1d6da}
#view-daily .daily-kpi.orange .v103-metric-icon{background:#fff6e6;color:#b48224;border-color:#f2e0bd}
#view-daily .daily-kpi small{display:block;margin-top:2px;padding-right:43px;font-size:11px;line-height:1.5;color:#627b9d;font-weight:800}
#view-daily .daily-kpi strong{display:block;margin-top:10px;font-size:34px;letter-spacing:-.045em;color:#143354;line-height:1.2}
#view-daily .v103-metric-hint{display:block;margin-top:7px;font-size:10px;color:#879bb4;line-height:1.5}
#view-daily .daily-guide{margin:0 19px 17px;padding:13px 16px;border:1px solid #dbe7f8;border-radius:13px;background:#f3f7ff;color:#55718f;font-size:11px;line-height:1.7}
#view-daily .table-scroll{max-height:min(70vh,780px);overflow:auto;overscroll-behavior-y:auto;border-top:1px solid #e9eff7;scrollbar-gutter:stable}
#view-daily .daily-table{min-width:1000px;width:100%;border-spacing:0}
#view-daily .daily-table thead th{position:sticky;top:0;z-index:5;background:#edf3fc;color:#4d6b91;text-transform:uppercase;letter-spacing:.09em;font-size:10px;padding:15px 14px;box-shadow:0 1px 0 #dfe8f5}
#view-daily .daily-table tbody tr{background:#fff}
#view-daily .daily-table tbody tr:nth-child(even){background:#fbfdff}
#view-daily .daily-table tbody tr:hover{background:#f3f7ff}
#view-daily .daily-table td{vertical-align:middle;padding:13px 14px;border-bottom:1px solid #e9f0f8;font-size:11px;color:#45617e}
#view-daily .daily-table td:first-child{min-width:195px}
#view-daily .daily-table td:nth-child(7){min-width:168px}
#view-daily .v103-daily-employee{display:flex;align-items:center;gap:11px;min-width:0}
#view-daily .v103-daily-employee b{display:block;font-size:12px;color:#183858;line-height:1.45}
#view-daily .v103-daily-employee small{display:block;margin-top:3px;font-size:10px;color:#8697ac;line-height:1.4}
#view-daily .v103-daily-avatar{width:39px;height:39px;border-radius:12px;flex:0 0 39px;background:linear-gradient(145deg,#e9f1ff,#dfe9ff);color:#4264c2;display:grid;place-items:center;font-size:11px;font-weight:900}
#view-daily .v103-daily-dept{font-size:11px;color:#456585}
#view-daily .v103-shift-code{display:inline-block;padding:5px 9px;border-radius:9px;background:#edf4ff;color:#345fa7;font-weight:900;line-height:1.3;font-size:11px}
#view-daily .v103-table-clock{display:block;font-variant-numeric:tabular-nums;color:#17395a;font-size:12px;letter-spacing:-.01em}
#view-daily .daily-badge{padding:7px 10px;border-radius:999px;white-space:normal;line-height:1.4;font-size:10px;font-weight:850}
#view-daily .daily-badge.ok{background:#eaf8f0;color:#12865f}
#view-daily .daily-badge.warning{background:#fff4e3;color:#a9721d}
#view-daily .daily-badge.danger,#view-daily .daily-badge.red{background:#ffeff0;color:#bc4e5a}
#view-daily .v103-detail-btn{min-width:93px;min-height:34px;border-radius:10px;background:#fff;border-color:#dce5f2;color:#355783}
#view-daily .v103-detail-btn:hover{background:#eaf1ff}
#view-daily .daily-bottom{padding:14px 20px;color:#6d839e;font-size:11px}
/* Comparison popup */
#dailyModal .edit-dialog,#dailyModal .daily-dialog{border:1px solid #d8e4f4;border-radius:23px;box-shadow:0 26px 75px rgba(13,35,68,.24);max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior-y:auto}
#dailyModal .daily-modal-head{background:linear-gradient(180deg,#fff,#f9fbff);border-bottom:1px solid #e5edf8}
#dailyModal .daily-modal-badges{padding:16px 20px 3px;gap:7px}
#dailyModal .v103-day-banner{margin:12px 20px;border:1px solid #dce7f8;background:#f0f5ff;border-radius:14px;padding:13px 15px}
#dailyModal .v103-comparison-grid{gap:12px;padding:0 20px}
#dailyModal .v103-comparison-grid>div{padding:17px;border:1px solid #dfe8f5;border-radius:16px;background:linear-gradient(180deg,#fff,#f7faff)}
#dailyModal .v103-comparison-grid>div small{color:#738ba7}
#dailyModal .v63-clock{font-variant-numeric:tabular-nums;font-size:18px;font-weight:900;color:#17395c}
#dailyModal .daily-variance{border-radius:16px;border:1px solid #dce7f6;background:#f7faff;padding:17px}
#dailyModal .daily-scan{border-radius:13px;border:1px solid #e3ecf6;background:#fff;padding:13px 14px;margin-bottom:9px}
#dailyModal .v63-note-panel{border-radius:17px;border:1px solid #dfe8f5;box-shadow:0 6px 20px rgba(16,43,87,.045)}
@media(max-width:1100px){#view-daily .daily-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#view-timeline .timeline-main .panel-head,#view-daily .daily-panel>.panel-head{padding:18px 16px 14px}#view-timeline .timeline-controls,#view-daily .daily-filters{margin:12px;padding:12px}#view-timeline .timeline-stats{padding:0 12px 12px}#view-timeline .timeline-items{padding:0 12px 14px}#view-timeline .timeline-hint{margin:0 12px 13px}#view-timeline .v96-live-summary,#view-timeline .v97-live-filter{padding-inline:12px}#view-timeline .feed-item{gap:10px;padding:12px}#view-timeline .v103-feed-rail{flex-basis:26px;min-width:26px}#view-timeline .v103-scan-icon{width:26px;height:26px;border-radius:9px}#view-timeline .v103-scan-icon svg{width:14px}#view-timeline .feed-avatar{width:37px;height:37px;flex-basis:37px;border-radius:11px}#view-timeline .feed-end{min-width:105px}#view-timeline .v103-feed-stamp strong{font-size:15px}#view-timeline .v103-feed-note{display:none}#view-timeline .feed-arrow{display:none}#view-daily .daily-kpis{padding-inline:12px}#view-daily .daily-guide{margin:0 12px 12px}#dailyModal .v103-comparison-grid{padding:0 12px}#dailyModal .v103-day-banner{margin-inline:12px}}
@media(max-width:480px){#view-timeline .timeline-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#view-timeline .timeline-stats>div{padding:10px}#view-timeline .timeline-stats strong{font-size:16px}#view-timeline .feed-end{min-width:92px}#view-daily .daily-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#view-daily .daily-kpi{padding:13px;min-height:130px}#view-daily .daily-kpi strong{font-size:27px}#view-daily .v103-metric-icon{width:31px;height:31px;top:12px;right:10px}}
@media(prefers-reduced-motion:reduce){#view-timeline .feed-item,#view-timeline .v97-live-filter button{transition:none!important}}

/* ===== END: assets/v97-live-daily.css ===== */

/* ===== 13. ORIGINAL SOURCE: assets/v98-it-operations.css ===== */
/* AttendanceOS v98 | Device Monitoring & Sync History */
#view-device .device-grid{gap:18px;align-items:stretch}
#view-device .device-grid>.panel{border-radius:22px;border:1px solid #dce7f3;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 12px 34px rgba(17,44,79,.07);overflow:hidden}
#view-device .device-grid .panel-head{padding:22px 22px 14px}
#view-device .device-grid .health-row{padding:11px 22px;border-bottom:1px solid #edf2fa;gap:18px}
#view-device .device-grid .health-row:last-child{border:0}
#view-device .device-illustration{background:linear-gradient(140deg,#edf4ff,#f8fbff);border:1px solid #deebfb;border-radius:18px;margin:6px 22px 16px;padding:24px;display:flex;align-items:center;justify-content:center;color:#3e64bd}
#view-device .storage-summary{padding:12px 22px 7px}
#view-device .storage-number{font-size:44px;font-weight:850;letter-spacing:-.04em;color:#173657}
#view-device .storage-bar{margin:12px 22px 17px;border-radius:999px;height:12px;box-shadow:inset 0 2px 4px rgba(13,45,86,.06)}
#view-device .storage-bar #storageFill{border-radius:999px;background:linear-gradient(90deg,#315dca,#58a6dc)}
#view-device .device-grid .info-banner.warn{margin:16px 22px 21px;border-radius:14px}
.v98-device-head{border:1px solid #dce7f4;background:linear-gradient(135deg,#142f51 0%,#244e86 60%,#345ed0 100%);border-radius:22px;box-shadow:0 18px 38px rgba(16,40,77,.15);color:#fff;padding:23px 24px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}
.v98-device-head small{display:block;font-size:10px;font-weight:850;letter-spacing:.14em;color:#b9d1fa;margin-bottom:6px;text-transform:uppercase}
.v98-device-head h3{color:white!important;margin:0;font-size:21px;font-weight:850;letter-spacing:-.03em}
.v98-device-head p{color:#d1e1fd;margin:7px 0 0;font-size:12px;line-height:1.5;max-width:550px}
.v98-device-head .v98-badge{display:inline-flex;align-items:center;gap:8px;background:#ffffff15;border:1px solid #ffffff24;color:#fff;border-radius:999px;padding:10px 13px;font-size:12px;font-weight:800}
.v98-device-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.v98-stat{border:1px solid #dce7f3;border-radius:18px;background:#fff;padding:18px;box-shadow:0 8px 26px rgba(16,40,79,.055)}
.v98-stat span{display:block;font-size:11px;font-weight:800;color:#728aa8}
.v98-stat strong{display:block;font-size:24px;color:#193b62;line-height:1.35;letter-spacing:-.025em;margin-top:9px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.v98-stat small{display:block;margin-top:7px;color:#7d91aa;font-size:11px;line-height:1.5}
.v98-toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
.v98-action{border:1px solid #d7e3f2;border-radius:11px;padding:10px 14px;font:inherit;font-size:11px;font-weight:800;color:#365782;background:#fff;cursor:pointer}
.v98-action:hover{background:#f4f8ff;border-color:#bfcfee}
#view-history .panel{border:1px solid #dce7f3;border-radius:22px;box-shadow:0 14px 34px rgba(16,43,80,.06);overflow:hidden}
#view-history .panel>.panel-head{padding:22px 24px}
#view-history .table-scroll{border:0}
#view-history table thead th{background:#f2f7fe;padding:15px;color:#59769a}
#view-history table tbody td{padding:15px 14px;line-height:1.5}
#view-history tbody tr:hover{background:#f5f9ff}
#view-history .v98-error-cell{max-width:320px;overflow-wrap:anywhere;color:#6d82a2}
#view-history .tag.v98-failed{background:#fff0ef;color:#b84751;border:1px solid #f3d6d8}
#view-history .tag.v98-running{background:#fff7e7;color:#a87716;border:1px solid #f4e4b9}
#view-history .v98-history-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 20px 18px}
#view-history .v98-history-stats>div{border:1px solid #e2eaf5;border-radius:17px;background:#f8fbff;padding:15px 16px}
#view-history .v98-history-stats small{display:block;font-size:10px;color:#728ba9;text-transform:uppercase;font-weight:850;letter-spacing:.08em}
#view-history .v98-history-stats strong{display:block;margin-top:8px;color:#173a60;font-size:26px;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
#view-history .v98-history-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 20px 18px}
#view-history .v98-history-toolbar small{color:#7289a5;font-size:11px;line-height:1.5}
@media(max-width:980px){.v98-device-stats{grid-template-columns:repeat(2,minmax(0,1fr))}#view-history .v98-history-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.v98-device-head{padding:18px}.v98-device-stats{grid-template-columns:1fr}#view-history .v98-history-stats{margin:0 12px 16px;gap:8px}#view-history .v98-history-toolbar{margin:0 12px 14px}}

/* ===== END: assets/v98-it-operations.css ===== */

/* ===== 14. ORIGINAL SOURCE: assets/v99-roster-workspace.css ===== */
/* AttendanceOS v99 | Roster spreadsheet experience */
#view-roster>.panel,#view-roster .roster-summary-panel{border:1px solid #dbe6f3;border-radius:22px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 14px 36px rgba(16,43,77,.07);overflow:hidden}
#view-roster .panel>.panel-head{padding:22px 23px 18px;border-bottom:1px solid #edf1f7}
#view-roster .filters{margin:0 18px 16px;padding:16px 18px;background:#f7faff;border:1px solid #e0eaf6;border-radius:16px}
#view-roster .v37-toolbar{border:1px solid #e2eaf4;margin:0 18px 13px;background:#fbfcff;border-radius:16px;padding:13px}
#view-roster .v37-roster-guide,#view-roster .v38-quick-hint{margin:0 18px 12px;border-radius:14px}
#view-roster .v43-legend-head{margin:0 18px 10px}
#view-roster .roster-shift-legend{margin:0 18px 15px;padding:12px;border-radius:16px;border:1px solid #e1e9f5;background:#fbfcff}
#view-roster .roster-scroll{margin:0 18px 20px;max-height:min(72dvh,850px);overflow:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable;border:1px solid #dce5f3;border-radius:16px;background:#fff}
#view-roster .roster-table{border-spacing:0;border-collapse:separate}
#view-roster .roster-table thead th{position:sticky;top:0;background:linear-gradient(180deg,#edf3fb,#e5effa);z-index:5;box-shadow:0 1px 0 #d2dfed;border-bottom:1px solid #d9e4f2}
#view-roster .roster-table th.sticky-emp{z-index:11;left:0;background:#eaf1fb;box-shadow:5px 0 10px #153b6518}
#view-roster .roster-table td.sticky-emp{z-index:4;left:0;background:#fff;box-shadow:5px 0 10px #153b6514}
#view-roster .roster-table tr:nth-child(even) td.sticky-emp{background:#fbfdff}
#view-roster .roster-table tr.v37-employee-row:hover td{background:#f1f6ff}
#view-roster .roster-table tr.v37-employee-row:hover td.sticky-emp{background:#eaf1ff}
#view-roster .roster-table td{border-bottom:1px solid #e8eef7;border-right:1px solid #f0f4fa}
#view-roster .roster-table tr.roster-group-row td{background:#e9f0fc!important;color:#355683;text-align:left!important;font-weight:800}
#view-roster .roster-table .shift-pill{min-width:39px;border-radius:10px;font-variant-numeric:tabular-nums;font-size:11px;font-weight:850;transition:box-shadow .14s ease,border-color .14s ease}
#view-roster .roster-table .shift-pill:hover{transform:none;box-shadow:0 0 0 2px #bdcff4}
#view-roster .roster-table .shift-pill:focus-visible{outline:3px solid #3b68d8;outline-offset:1px;box-shadow:0 0 0 5px #4c70d62b;position:relative;z-index:6}
#view-roster .roster-table .v37-cell-selected{outline:2px solid #da9a31;outline-offset:-1px}
#view-roster .roster-table .v58-today-header{background:#d7e8ff!important;border-bottom:3px solid #426cd7}
.v99-roster-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 18px 12px;padding:12px 14px;background:linear-gradient(180deg,#f5f9ff,#edf4ff);border:1px solid #dce7fa;border-radius:14px}
.v99-roster-tools .v99-heading{font-size:11px;color:#214b84;font-weight:850;margin-right:5px}
.v99-roster-tools .v99-tip{font-size:11px;color:#6985a6;line-height:1.5;margin-left:auto}
.v99-roster-tools button{border:1px solid #cbdaef;border-radius:10px;background:#fff;padding:9px 12px;color:#375c94;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.v99-roster-tools button:hover{background:#f9fcff;border-color:#a5bfea}
.v99-roster-tools button[aria-pressed=true]{background:#2d59c3;border-color:#2d59c3;color:#fff}
#view-roster .roster-summary-panel{padding:6px 0 18px}
#view-roster .roster-summary-head{padding:18px 20px}
#view-roster .roster-totals-table thead th{background:#eaf1fb;color:#5a7394}
#view-roster .roster-scroll:focus-within{border-color:#9bb8e8}
#view-roster .v99-readonly-hint{display:inline-flex;padding:5px 9px;border-radius:9px;background:#fff5e8;border:1px solid #f0e1ca;color:#95631b;font-size:10px;font-weight:800}
@media(max-width:780px){#view-roster .roster-scroll{margin:0 10px 14px}#view-roster .filters{margin:0 10px 12px}.v99-roster-tools{margin:0 10px 10px}.v99-roster-tools .v99-tip{flex-basis:100%;margin-left:0}#view-roster .v37-roster-guide,#view-roster .v38-quick-hint{margin-left:10px;margin-right:10px}}
@media(prefers-reduced-motion:reduce){#view-roster .roster-table .shift-pill{transition:none}}

/* ===== END: assets/v99-roster-workspace.css ===== */

/* ===== 15. ORIGINAL SOURCE: assets/v100-scroll-fix.css ===== */
/* AttendanceOS v103 scroll model: native vertical chain, horizontal grids scroll independently. */
html,body{min-height:100%;overscroll-behavior-y:auto;scroll-behavior:auto}
#shell .content,#shell .table-scroll,#shell .roster-scroll,#shell .timeline-items,#shell .notification-center-list,#shell .v31-summary-scroller,#shell .v82-table-scroll,#shell .v82-review-body,#shell .v74-evidence-body,#shell .daily-scans,#shell .history-dialog,#shell .edit-dialog,#shell .dw70-scroll{overscroll-behavior-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
#shell .content{overflow:visible}
#rankingEvidenceModal .v74-evidence-body{overflow-y:auto}
#rankingEvidenceModal .v95-evidence-table-scroll{overflow-y:hidden}

/* ===== END: assets/v100-scroll-fix.css ===== */

/* ===== 16. ORIGINAL SOURCE: assets/v106-enterprise-settings.css ===== */
/* AttendanceOS v106 — regenerated Settings, Modal/Form, Daily/HR Review experience.
   Keeps the existing control IDs, server validation and native browser wheel behavior. */
#view-settings{--v106-ink:#173556;--v106-muted:#7187a3;--v106-stroke:#dfe8f5;--v106-blue:#4469dd}
#view-settings .v104-settings-hero{display:flex;align-items:center;gap:18px;padding:24px 27px;margin:0 0 18px;border:1px solid #d7e4f3;border-radius:22px;background:linear-gradient(115deg,#132e55,#244c89 72%,#3e63c9);box-shadow:0 18px 40px rgba(18,48,94,.13);color:#fff}
#view-settings .v104-hero-symbol{display:grid;place-items:center;flex:0 0 62px;width:62px;height:62px;border:1px solid #ffffff3d;background:#ffffff14;border-radius:19px;font-size:27px}
#view-settings .v104-hero-copy{min-width:0;flex:1}
.v104-kicker{display:block;font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#6280ad;font-weight:850;margin-bottom:8px}
#view-settings .v104-kicker{color:#b9d0f9}
#view-settings .v104-settings-hero h2{font-size:27px;color:#fff;line-height:1.18;font-weight:900;letter-spacing:-.035em}
#view-settings .v104-settings-hero p{margin-top:7px;color:#dbe7ff;font-size:12px;line-height:1.55;max-width:690px}
#view-settings .v104-hero-status{align-self:stretch;min-width:152px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;border-left:1px solid #ffffff32;padding-left:24px}
#view-settings .v104-hero-status span{font-size:10px;letter-spacing:.05em;color:#b9d5fc;font-weight:800}
#view-settings .v104-hero-status strong{font-size:34px;line-height:1.2;color:#fff;letter-spacing:-.04em}
#view-settings .v104-hero-status small{font-size:11px;color:#d9e7ff}
#view-settings .settings-tabs{padding:8px;gap:6px;border-radius:16px;background:#fff;box-shadow:0 8px 30px #173b6b0b;margin-bottom:20px}
#view-settings .settings-tab{border-radius:11px;padding:12px 15px;transition:background .15s ease;color:#627c9c;font-weight:800}
#view-settings .settings-tab.active{background:#edf3ff;color:#2e5cc3;box-shadow:inset 0 0 0 1px #dce8ff}
#view-settings .settings-grid{align-items:start;gap:18px}
#view-settings .settings-panel,#view-settings .v104-user-directory{border:1px solid #dfe8f5;border-radius:20px;box-shadow:0 12px 34px #143a6f0c;background:#fff;min-width:0}
#view-settings .settings-panel .panel-head{padding:18px 21px;background:#fbfdff}
#view-settings .settings-panel .panel-head h3{font-size:15px}
#view-settings .settings-panel .panel-head p{font-size:11px;line-height:1.5}
#view-settings .settings-form>label{font-size:11px;line-height:1.6}
#view-settings .v104-add-user-panel{overflow:hidden;min-height:0}
#view-settings .v104-panel-hero{display:flex;align-items:flex-start;gap:15px;padding:24px 23px 14px}
#view-settings .v104-icon-block{width:47px;height:47px;display:grid;place-items:center;flex:0 0 47px;background:linear-gradient(135deg,#e9f0ff,#dce8ff);border-radius:15px;color:#3d68cf;font-size:22px}
#view-settings .v104-add-user-panel .v104-kicker{color:#5b7cb5}
#view-settings .v104-panel-hero h3{font-size:19px;line-height:1.25;letter-spacing:-.035em;color:#1d3b60}
#view-settings .v104-panel-hero p{margin-top:9px;font-size:12px;line-height:1.7;color:#7188a7}
#view-settings .v104-create-cta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:0 23px 20px}
#view-settings .v104-role-tags{display:flex;flex-wrap:wrap;gap:7px}
#view-settings .v104-role-tags span{border:1px solid #dfe8f8;background:#f5f8ff;padding:7px 9px;border-radius:999px;color:#56749b;font-size:10px;font-weight:800}
#view-settings .v104-panel-footnote{padding:13px 23px;border-top:1px solid #e9eef7;font-size:11px;color:#6f88a8;background:#f9fbff;line-height:1.65}
#view-settings .v104-user-directory .panel-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#view-settings .v104-user-directory .v104-add-shortcut{margin-left:auto}
#view-settings .v104-user-directory .table-scroll{max-height:min(56dvh,650px);overscroll-behavior-y:auto;scrollbar-gutter:stable}
#view-settings .v104-user-directory th{background:#f4f8fe;font-size:10px;color:#6c86a7;letter-spacing:.08em}
#view-settings .v104-user-directory td{font-size:11px;padding:14px 12px;line-height:1.5}
#view-settings .v104-user-directory tbody tr:hover{background:#f4f8ff}
/* Modal system v104 + v105 */
.v104-modal-root,.modal-backdrop:not(.hidden),.edit-overlay:not(.hidden){background:rgba(13,31,55,.45);backdrop-filter:blur(3px)}
.v104-modal-root{position:fixed;inset:0;z-index:1650;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:18px}
.v104-modal-card{background:#fff;border:1px solid #dce6f4;border-radius:23px;box-shadow:0 34px 90px rgba(9,29,59,.28);display:flex;flex-direction:column;max-height:calc(100dvh - 32px);overflow:hidden;min-height:0}
.v104-user-modal{width:min(1030px,100%)}
#userAccessModal .access-modal{width:min(1080px,100%);padding:0;max-height:calc(100dvh - 32px)}
.v104-modal-head{display:flex;align-items:center;gap:13px;padding:21px 25px;border-bottom:1px solid #e6edf8;background:linear-gradient(135deg,#fff,#f8fbff);flex:0 0 auto}
.v104-modal-head>.v104-head-icon{width:47px;height:47px;display:grid;place-items:center;flex:0 0 47px;border:1px solid #dfe9f8;border-radius:15px;background:#edf3ff;color:#3f67cb;font-size:20px}
.v104-modal-head>div:not(.v104-head-icon){min-width:0;flex:1}
.v104-modal-head .v104-kicker{margin-bottom:3px}
.v104-modal-head h3{font-size:20px;color:#183b66;font-weight:900;letter-spacing:-.035em}
.v104-modal-head p{font-size:12px;color:#748aaa;margin-top:5px;line-height:1.5}
.v104-icon-close{width:38px;height:38px;display:grid;place-items:center;border:1px solid #dae5f4;border-radius:12px;background:#fff;color:#526d92;font-weight:800}
.v104-icon-close:hover{background:#eef4ff}
.v104-create-form-host,.v104-modal-root .access-modal-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:auto;scrollbar-gutter:stable;padding:0 24px 22px}
#newUserModal .v104-create-form{display:flex;flex-direction:column;gap:0;padding:0}
.v104-form-intro{display:flex;align-items:center;gap:12px;margin:18px 0;padding:15px 17px;background:#f2f7ff;border:1px solid #deebff;border-radius:16px}
.v104-form-intro .v104-emblem{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:13px;background:#e0ebff;font-size:18px}
.v104-form-intro strong{display:block;font-size:13px;color:#234369}
.v104-form-intro p{margin-top:4px;font-size:11px;color:#748caa}
#newUserModal .v104-create-form>label,#userAccessModal .v104-identity-fields>label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;font-size:11px;font-weight:800;color:#4a688d}
#newUserModal .v104-create-form>label :is(input,select),#userAccessModal .v104-identity-fields :is(input,select){min-height:43px;width:100%;border-radius:12px;border:1px solid #dbe6f5;background:#fff;padding:11px 13px;font-size:12px;color:#234569}
#newUserModal .v104-create-form>label :is(input,select):focus,#userAccessModal .v104-identity-fields :is(input,select):focus{outline:2px solid #a2bcf3;outline-offset:1px}
#newUserModal .v104-create-form>label>small{font-size:10px;font-weight:500;color:#7f93ac}
.v104-modal-section{padding:18px;margin:18px 0;border-radius:18px;border:1px solid #e0e9f5;background:linear-gradient(180deg,#fff,#fbfdff)}
.v104-section-heading{display:flex;align-items:center;gap:11px;margin-bottom:15px}
.v104-section-icon{width:39px;height:39px;display:grid;place-items:center;flex-shrink:0;background:#edf4ff;color:#4167ca;border-radius:13px;font-weight:850;font-size:17px}
.v104-section-heading strong{display:block;font-size:14px;color:#23446a;line-height:1.35}
.v104-section-heading small{display:block;margin-top:4px;font-size:11px;color:#7c91aa;line-height:1.5}
.v104-select-tools{display:flex;gap:11px;align-items:center;justify-content:flex-end;margin-bottom:12px;flex-wrap:wrap}
.v104-count{font-size:11px;color:#5678ad;font-weight:900;background:#eaf2ff;padding:7px 10px;border-radius:999px;margin-right:auto}
.v104-link{border:1px solid #dbe6f4;background:#fff;color:#3c66be;border-radius:10px;padding:7px 11px;font-size:11px;font-weight:800}
.v104-link:hover{background:#f0f6ff}
#newUserModal .access-config{padding:0;margin:0;border:0;background:transparent}
#newUserModal .access-config>h4{display:none}
#newUserModal .access-config>p:not(.v104-inline-error){display:none}
#newUserModal #newUserPageChecks,#newUserModal #newUserDeptChecks{margin-bottom:15px}
.v104-permission-group{margin-bottom:14px}
.v104-group-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;color:#325782;font-size:11px;font-weight:900;letter-spacing:.035em}
.v104-group-label span{color:#8095b0;font-size:10px;font-weight:700}
.v104-permission-cards,.v104-page-grid,.v104-modal-section .access-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#newUserModal .access-page-grid,#userAccessModal .access-page-grid{display:block;}
#newUserModal .access-page-grid .v104-permission-cards,#userAccessModal .access-page-grid .v104-permission-cards{display:grid}
#newUserModal .access-chip,#userAccessModal .access-chip{display:flex;gap:11px;align-items:center;padding:12px;border-radius:13px;background:#fff;border:1px solid #dfe8f5;color:#345473;cursor:pointer;min-width:0;transition:border-color .14s,background-color .14s,box-shadow .14s}
#newUserModal .access-chip:hover,#userAccessModal .access-chip:hover{border-color:#c5d7f5;background:#f9fbff}
#newUserModal .access-chip:has(input:checked),#userAccessModal .access-chip:has(input:checked){background:#edf4ff;border-color:#b8d0fb;box-shadow:0 1px 0 #ffffff inset}
#newUserModal .access-chip input,#userAccessModal .access-chip input{width:15px;height:15px;flex:0 0 15px;accent-color:#4267d5;margin:0}
.v104-page-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#f0f5ff;color:#4968b4;font-size:20px}
.v104-page-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.v104-page-text strong{font-size:12px;color:#23436a;line-height:1.35;font-weight:900;overflow-wrap:anywhere}
.v104-page-text small{font-size:10px;line-height:1.5;color:#8093aa;overflow-wrap:anywhere}
#newUserModal .access-dept-grid,#userAccessModal .access-dept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.v104-dept-dot{display:grid;place-items:center;width:22px;height:22px;background:#edf3ff;color:#6f8dc8;border-radius:8px;flex:0 0 22px;font-size:10px}
.v104-dept-name{font-size:11px;font-weight:800;line-height:1.35;color:#345574}
#newUserModal .access-edit-check,#userAccessModal .access-edit-check{border-radius:12px;padding:12px 13px;line-height:1.5;min-height:44px;cursor:pointer;background:#f6f9ff;border:1px solid #e0eaf6;color:#456280;font-size:11px}
#newUserModal .access-edit-check:has(input:checked),#userAccessModal .access-edit-check:has(input:checked){background:#eef5ff;border-color:#c1d7fa;color:#2f57a8}
#newUserModal .access-edit-check input,#userAccessModal .access-edit-check input{accent-color:#4068d7;flex-shrink:0}
.v104-privilege-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.v104-role-explainer{font-size:10px;color:#637e9f;margin-top:2px;line-height:1.55;font-weight:600}
.v104-inline-error{font-size:12px;line-height:1.6;padding:13px 15px;margin:14px 0;border-radius:13px;background:#fff0ef;border:1px solid #f4cdcf;color:#a13c47}
.v104-modal-footer,#userAccessModal .v104-modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-shrink:0;padding:16px 24px;margin-top:8px;border-top:1px solid #e4edf7;background:#f9fbff;position:sticky;bottom:0;z-index:10}
#newUserModal .v104-modal-footer{margin-inline:-24px;margin-bottom:-22px}
#newUserModal .v104-modal-footer .btn,#userAccessModal .v104-modal-footer .btn{min-width:130px;min-height:40px}
#userAccessModal .v104-identity-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#userAccessModal .v104-identity-fields>label{margin:0}
#userAccessModal .access-help{font-size:10px;color:#7790aa;line-height:1.55}
/* Existing modal system v105: visual standards without changing submit behavior */
#shell :is(.edit-dialog,.modal-card){border:1px solid #dae5f4;border-radius:22px;box-shadow:0 28px 80px rgba(12,34,70,.24)}
#shell :is(.edit-dialog,.modal-card) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){min-height:42px;border-radius:11px;border:1px solid #d5e2f2;max-width:100%}
#shell :is(.edit-dialog,.modal-card) label{line-height:1.55}
#shell :is(.edit-dialog,.modal-card) .btn{border-radius:11px}
#shell #shiftMasterModal .shift-master-dialog,#shell #positionRenameModal .v39-position-dialog{max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior-y:auto;scrollbar-gutter:stable}
#shell :is(#shiftMasterModal,#positionRenameModal) .inline-actions{position:sticky;bottom:-16px;background:#fff;padding:14px 0 0;border-top:1px solid #e3edf8}
#shell #editEmployeeModal .v94-employee-header,#shell #dailyModal .daily-modal-head{border-bottom:1px solid #e5edf7;background:linear-gradient(180deg,#fff,#f8fbff)}
#shell #dailyModal .daily-modal-head{display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:4;padding:19px 22px}
#shell #dailyModal .daily-modal-head>div:not(.v105-modal-icon){flex:1;min-width:0}
#shell #dailyModal .v105-modal-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;background:#e9f1ff;border-radius:14px;color:#3b63c8;font-size:20px}
#shell #dailyModal .daily-modal-head h3{font-size:19px;color:#183958;line-height:1.3}
#shell #dailyModal .daily-modal-head p{font-size:11px;color:#7489a6;line-height:1.55}
#shell #dailyModal .daily-detail-grid>div{background:#f7faff;border:1px solid #e1e9f6;border-radius:15px;padding:15px}
#shell #dailyModal .daily-detail-grid>div>strong{font-size:18px;color:#163c65}
/* v106 HRD Review: evidence and action visually separated, no workflow changes */
#reviewModal .v82-review-dialog{width:min(1160px,calc(100vw - 36px));max-height:calc(100dvh - 36px);overflow:hidden}
#reviewModal .v82-modal-header{padding:21px 25px;flex-shrink:0;background:#f9fbff}
#reviewModal .v82-modal-header h3{font-size:20px;color:#173856}
#reviewModal .v82-review-body{padding:20px;overflow-y:auto;overscroll-behavior-y:auto;scrollbar-gutter:stable}
#reviewModal .v106-review-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr);gap:16px}
#reviewModal .v106-review-column{border:1px solid #dfe8f5;border-radius:17px;background:#fff;padding:17px;min-width:0;align-self:start}
#reviewModal .v106-evidence-column{background:linear-gradient(180deg,#fff,#fbfdff)}
#reviewModal .v106-decision-column{background:#f7faff}
#reviewModal .v106-column-label{font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.12em;color:#4771b2;margin-bottom:16px}
#reviewModal .v82-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#reviewModal .v82-compare>div{background:#f6f9ff;border:1px solid #dfe9f8;border-radius:12px;padding:13px}
#reviewModal .v82-review-reason{font-size:11px;line-height:1.6;margin:14px 0;border:1px solid #f4dfb8;border-radius:13px}
#reviewModal .v82-table-scroll{max-height:38vh;overflow:auto;overscroll-behavior-y:auto;scrollbar-gutter:stable;border:1px solid #dfe7f5;border-radius:14px}
#reviewModal .v82-table{min-width:520px}
#reviewModal .v82-modal-actions{padding:15px 24px;flex-shrink:0;background:#fff}
#reviewModal .v82-reject{background:#fff0f0;border-color:#eebfc4;color:#ad364c;font-weight:850}
#reviewModal .v82-reject:hover{background:#ffe5e8}
#reviewModal #reviewDecisionReason{background:#fff;min-height:110px;border-radius:12px}
#reviewModal .v82-current,#reviewModal .v82-history{margin-top:12px;border-radius:12px;background:#fff;font-size:11px;line-height:1.7}
/* native scrolling throughout, no wheel listener */
#view-settings :is(.table-scroll,.access-page-grid,.access-dept-grid),
#newUserModal .v104-create-form-host,#userAccessModal .access-modal-content,
#reviewModal .v82-review-body,#reviewModal .v82-table-scroll{overscroll-behavior-y:auto;scrollbar-width:auto;scrollbar-color:#b8c7df #edf3fc}
@media(max-width:900px){#reviewModal .v106-review-layout{grid-template-columns:1fr}#reviewModal .v82-table-scroll{max-height:300px}}
@media(max-width:760px){#view-settings .v104-settings-hero{padding:16px;gap:10px}#view-settings .v104-hero-symbol{width:42px;height:42px;flex-basis:42px}#view-settings .v104-settings-hero h2{font-size:19px}#view-settings .v104-hero-status{display:none}.v104-modal-root{padding:9px;align-items:center}.v104-modal-card{max-height:calc(100dvh - 18px);border-radius:17px}.v104-modal-head{padding:14px 15px;gap:10px}.v104-modal-head h3{font-size:16px}.v104-modal-head>.v104-head-icon{width:35px;height:35px;flex-basis:35px;font-size:16px}.v104-create-form-host,.v104-modal-root .access-modal-content{padding:0 15px 15px}.v104-permission-cards,#newUserModal .access-page-grid .v104-permission-cards,#userAccessModal .access-page-grid .v104-permission-cards,.v104-privilege-grid{grid-template-columns:1fr}#newUserModal .access-dept-grid,#userAccessModal .access-dept-grid,#userAccessModal .v104-identity-fields{grid-template-columns:1fr}.v104-modal-footer,#userAccessModal .v104-modal-footer{padding:12px 15px}.v104-modal-section{padding:13px;margin:13px 0}#reviewModal .v82-review-body{padding:12px}#reviewModal .v106-review-column{padding:12px}}
@media(prefers-reduced-motion:reduce){#view-settings *,#newUserModal *,#userAccessModal *{animation:none!important;transition:none!important}}

/* v116 — regenerated Admin accounts: lifecycle + truthfully persisted department scope */
.v116-role-badge,.v116-status-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:9px;font-size:11px;font-weight:800;border:1px solid #dce5f1;background:#f6f9fe;color:#2c4d77}
.v116-status-badge.enabled{color:#177559;background:#ebf8f2;border-color:#caeadc}
.v116-status-badge.disabled{color:#a55450;background:#fff1ef;border-color:#f0d4d2}
.v116-scope-cell{color:#47617e;font-size:11px;line-height:1.5}
.v116-account-tools{background:#fbfcff!important}
.v116-account-action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.v116-account-note{color:#687e99;line-height:1.6;font-size:11px;margin-top:11px}
.v116-admin-scope-note{margin:10px 0 12px;padding:13px 14px;border-radius:12px;background:#eaf2ff;border:1px solid #cbdcf4;color:#264f82;font-size:12px;line-height:1.55}
.v116-danger-btn{background:#fff1ef!important;border:1px solid #dfb4b0!important;color:#a53e3a!important;min-height:40px}
.v116-danger-btn:hover:not(:disabled){background:#fce3e0!important;color:#94302c!important;border-color:#dba19c!important}
.v116-admin-dialog{z-index:1900!important;padding:16px;align-items:center;justify-content:center;background:rgba(12,24,40,.47)!important}
.v116-admin-dialog:not(.hidden){display:flex}
.v116-admin-dialog-card{width:min(520px,100%);max-height:calc(100dvh - 34px);overflow-y:auto;background:#fff;border:1px solid #cfdaea;border-radius:22px;box-shadow:0 28px 80px rgba(8,20,38,.3)}
.v116-dialog-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:23px 23px 19px;background:linear-gradient(180deg,#f8fbff,#f2f6fd);border-bottom:1px solid #e0e8f3}
.v116-dialog-head span{display:block;font-size:10px;font-weight:900;letter-spacing:.16em;color:#b18b4b}
.v116-dialog-head h3{margin-top:7px;color:#183255;font-size:20px;font-weight:900}
.v116-dialog-head p{font-size:12px;margin-top:5px}
.v116-dialog-body{padding:21px 23px;display:grid;gap:15px}
.v116-dialog-body label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:750;color:#2b4466}
.v116-dialog-body input{height:42px;padding:10px 12px;width:100%}
.v116-danger-notice{border:1px solid #f0d3c6;border-radius:12px;background:#fff6f2;color:#8a4d39;padding:12px 14px;font-size:12px;line-height:1.65}
.v116-dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 23px 20px;border-top:1px solid #e4ebf4;background:#fbfcfe}
@media(max-width:620px){.v116-dialog-head{padding:18px}.v116-dialog-body{padding:18px}.v116-dialog-footer{padding:14px 18px 18px;flex-wrap:wrap}.v116-dialog-footer .btn{flex:1}}

/* ===== END: assets/v106-enterprise-settings.css ===== */

/* ===== 17. ORIGINAL SOURCE: assets/executive-v113.css ===== */
:root{
  --navy:#0f1c2e;
  --navy-2:#152842;
  --navy-3:#1f3657;
  --primary:#2f5fa8;
  --primary-dark:#234d8b;
  --primary-light:#eaf0fb;
  --orange:#c9a35f;
  --gold:#c9a35f;
  --gold-soft:#d8b97a;
  --text:#16283f;
  --muted:#66778f;
  --faint:#90a0b5;
  --bg:#eef2f7;
  --surface:#fbfcfe;
  --subtle:#f6f8fb;
  --border:#d8e0eb;
  --success:#0f8b68;
  --danger:#bf4b54;
  --warning:#ae7a21;
  --radius:18px;
  --radius-small:12px;
  --shadow:0 12px 34px rgba(15,28,46,.07);
  --shadow-soft:0 6px 18px rgba(15,28,46,.05);
}
html,body{background:
  radial-gradient(circle at top left, rgba(47,95,168,.08), transparent 24%),
  radial-gradient(circle at top right, rgba(201,163,95,.09), transparent 16%),
  linear-gradient(180deg,#f8fafc 0%,#eef2f7 100%)}
body{
  color:var(--text);
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,rgba(255,255,255,.34),transparent 26%);
}
*{scrollbar-width:thin;scrollbar-color:#9eb0cc #e8eef6}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#e8eef6;border-radius:999px}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#9cb0cf,#7f97bd);border-radius:999px;border:2px solid #e8eef6}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#8aa2c6,#6f87af)}

.sidebar{
  background:
    radial-gradient(circle at 10% 0%, rgba(76,120,201,.22), transparent 20%),
    linear-gradient(180deg,#0f1c2e 0%,#13253c 44%,#122238 100%);
  border-right:1px solid rgba(255,255,255,.06);
  box-shadow:18px 0 32px rgba(8,15,26,.14);
}
.brand{
  min-height:104px;padding:24px 18px 20px;
  position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));
}
.brand::after{
  content:"";position:absolute;left:18px;right:18px;bottom:0;height:1px;
  background:linear-gradient(90deg,rgba(201,163,95,.0),rgba(201,163,95,.55),rgba(201,163,95,0));
}
.sidebar-logo,.logo{
  width:50px;height:50px;flex-basis:50px;border-radius:15px;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04));
  border:1px solid rgba(216,185,122,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 10px 20px rgba(0,0,0,.18);
}
.brand strong{font-size:15px;line-height:1.3;letter-spacing:-.03em}
.brand small{color:#91a8c7;letter-spacing:1.5px}
.sidebar .nav-label{padding:22px 23px 10px;color:#7f97bc;font-size:10px;letter-spacing:2.3px;position:relative}
.sidebar .nav-label::after{
  content:"";display:block;width:32px;height:2px;border-radius:999px;margin-top:10px;
  background:linear-gradient(90deg,rgba(201,163,95,.95),rgba(201,163,95,0));
}
#nav{padding:0 11px}
.nav-item{
  min-height:47px;margin:4px 0;padding:11px 14px 11px 13px;border-radius:14px;
  color:#c7d5e8;position:relative;transition:transform .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease;
}
.nav-item::before{
  content:"";position:absolute;left:8px;top:9px;bottom:9px;width:3px;border-radius:999px;
  background:transparent;transition:background .18s ease,box-shadow .18s ease;
}
.nav-item svg{width:18px;height:18px;stroke-width:1.95}
.nav-item:hover{
  background:linear-gradient(90deg,rgba(255,255,255,.09),rgba(255,255,255,.04));
  color:#fff;transform:translateX(2px);
}
.nav-item.active{
  background:linear-gradient(135deg,rgba(47,95,168,.98),rgba(76,120,201,.96));
  color:#fff;box-shadow:0 14px 28px rgba(22,41,72,.34), inset 0 1px 0 rgba(255,255,255,.08);
}
.nav-item.active::before{background:linear-gradient(180deg,var(--gold-soft),var(--gold));box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.nav-item:active{transform:scale(.988)}
.sidebar-bottom{padding:16px 12px 18px;border-top:1px solid rgba(255,255,255,.06)}
.side-status{
  border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.status-dot,.notify-led{background:#1bc48e;box-shadow:0 0 0 5px rgba(27,196,142,.16)}
#logout.btn.ghost{background:transparent;color:#dce7f6;border-color:rgba(255,255,255,.14)}
#logout.btn.ghost:hover{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(216,185,122,.25)}

.topbar{
  height:74px;background:rgba(251,252,254,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(216,224,235,.88);box-shadow:0 8px 20px rgba(15,28,46,.04);
}
.breadcrumbs{font-size:12px;color:#8899ae}
.breadcrumbs strong{color:#213754;font-weight:800}
.today{font-size:11px;color:#7c8ea5}
.avatar{
  width:38px;height:38px;border-radius:13px;background:linear-gradient(135deg,#eef3fc,#dde8fb);
  border:1px solid #d0dbef;color:var(--primary-dark);box-shadow:inset 0 1px 0 #fff,0 4px 12px rgba(15,28,46,.05)
}
.admin-label{font-weight:800;color:#24395a}
.notification-bell,.scan-monitor-toggle,.mobile-menu{
  height:41px;border-radius:13px;border:1px solid #d8e1ee;background:linear-gradient(180deg,#fff,#f8fbff);
  box-shadow:var(--shadow-soft);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
}
.notification-bell:hover,.scan-monitor-toggle:hover,.mobile-menu:hover{transform:translateY(-1px);box-shadow:0 12px 22px rgba(15,28,46,.08)}
.notification-bell i{background:var(--gold)}
.scan-monitor-toggle{padding:0 13px;color:#15765b;font-weight:800}
.scan-notify-controls{
  border-radius:18px;border:1px solid #dbe3ef;background:rgba(251,252,254,.96);backdrop-filter:blur(10px);
  box-shadow:0 24px 44px rgba(15,28,46,.16)
}
.content{max-width:1960px;padding-top:28px}
.page-head{margin-bottom:22px}
.eyebrow{color:var(--gold)!important}

.panel,.kpi,.v30-rank-card,.v30-insight-stat,.roster-summary-panel,.v96-band-card,.modal-card,.edit-dialog,.v76-password-dialog,
.v104-modal-card,.v92-toast-main,.dw70-card,.feed-item,.settings-form,.settings-brand,.shift-master-settings,.rules-settings-panel,.v39-position-master{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(251,252,254,.98));
  border:1px solid rgba(212,221,233,.92);box-shadow:var(--shadow);border-radius:18px;
}
.panel,.v30-rank-card,.v30-insight-stat,.kpi,.roster-summary-panel,.v96-band-card,.dw70-card,.settings-form,.settings-brand,.shift-master-settings,.rules-settings-panel,.v39-position-master{
  position:relative;overflow:hidden;
}
.panel::before,.v30-rank-card::before,.v30-insight-stat::before,.kpi::before,.roster-summary-panel::before,.v96-band-card::before,
.dw70-card::before,.settings-form::before,.settings-brand::before,.shift-master-settings::before,.rules-settings-panel::before,.v39-position-master::before{
  content:"";position:absolute;left:18px;right:18px;top:0;height:1px;
  background:linear-gradient(90deg,rgba(201,163,95,0),rgba(201,163,95,.85),rgba(47,95,168,.18),rgba(201,163,95,0));
}
.panel-head{padding:20px 22px;border-bottom:1px solid #ecf1f7;background:linear-gradient(180deg,rgba(245,248,252,.82),rgba(255,255,255,.2))}
.panel-head h3{font-size:16px;font-weight:850;color:#1e3250}
.panel-head p{font-size:11px;color:#71839b}
.pill{
  border-radius:999px;padding:7px 11px;background:#f5f8fc;border-color:#dbe4ef;color:#4d617d;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.pill.green{background:#eef8f5;color:#13785c;border-color:#cce8de}

.kpi-grid{gap:16px}
.kpi{
  padding:22px 20px 17px;border-radius:20px;
  background:linear-gradient(180deg,#ffffff,#f8fbfe);
  border:1px solid #d7e0ec;box-shadow:0 14px 28px rgba(15,28,46,.06),inset 0 1px 0 rgba(255,255,255,.85);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.kpi:hover{transform:translateY(-3px);box-shadow:0 18px 30px rgba(15,28,46,.09)}
.kpi::before{height:4px;width:56px;left:20px;border-radius:999px;background:linear-gradient(90deg,var(--gold),rgba(47,95,168,.88))}
.kpi-top,.kpi small,.v30-insight-stat small{color:#6f829b}
.kpi-value,.kpi strong,.v30-insight-stat strong{color:#182d49}

.btn{
  border-radius:13px;border:1px solid #d6dfeb;background:linear-gradient(180deg,#fff,#f7faff);color:#294466;
  min-height:40px;padding:10px 15px;font-weight:800;letter-spacing:.01em;box-shadow:0 4px 12px rgba(15,28,46,.04);
  transition:transform .16s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease;
}
.btn:hover:not(:disabled){transform:translateY(-1px);background:#fff;border-color:#c5d2e2;box-shadow:0 10px 18px rgba(15,28,46,.07)}
.btn:active:not(:disabled){transform:translateY(0) scale(.985)}
.btn.primary{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));border-color:#2a568f;color:#fff;
  box-shadow:0 12px 22px rgba(35,77,139,.22), inset 0 1px 0 rgba(255,255,255,.1)
}
.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#21457b,#2c5ea8);border-color:#20467c}
.btn.ghost{
  background:linear-gradient(180deg,#fff,#f8fbff);
}
.notice,.info-banner{
  border-radius:14px;padding:13px 16px;line-height:1.7;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)
}
.info-banner.warn{background:#fff8ed;border-color:#efd9ae;color:#875d19}

input,select,textarea,.settings-form input,.settings-form select,.settings-form textarea,
.edit-dialog input,.edit-dialog select,.edit-dialog textarea,.v104-modal-card input,.v104-modal-card select,.v104-modal-card textarea,
.v76-password-dialog input{
  border-radius:13px!important;border:1px solid #d3dce8!important;background:#fff!important;color:#213652!important;
  box-shadow:inset 0 1px 2px rgba(15,28,46,.03)!important;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
input:hover,select:hover,textarea:hover{border-color:#bccce1!important}
input:focus,select:focus,textarea:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{
  border-color:#4a78c3!important;box-shadow:0 0 0 4px rgba(47,95,168,.14)!important;outline:none!important
}
label{color:#4a607e;font-weight:700}

.table-scroll,.roster-scroll,.dw70-scroll,.v31-history-list,.v31-history-dialog .v31-history-list,.timeline-items{
  scrollbar-gutter:stable both-edges;overscroll-behavior:contain;
}
table thead th,.roster-table thead th,.dw70-table thead th{
  background:linear-gradient(180deg,#163154,#132847)!important;color:#f5f8fe!important;border-bottom-color:#20385d!important
}
table tbody tr:hover td,.dw70-table tbody tr:hover td,.roster-table tbody tr:hover td{background:rgba(47,95,168,.035)}


/* Component system retained for general pages and dialogs */
.feed-item{
  border-radius:16px;border-color:#dbe3ef;background:linear-gradient(180deg,#fff,#f8fbfe);transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.feed-item:hover{transform:translateY(-2px);box-shadow:0 12px 22px rgba(15,28,46,.08);border-color:#cbd8e8}
.feed-item .feed-avatar,.scan-toast-person .feed-avatar,.notification-center-avatar,
.v103-daily-avatar{
  background:linear-gradient(180deg,#eef3fc,#dde8fb)!important;border:1px solid #d4deee;color:#2b578f!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)
}
.feed-person strong,.feed-person b,.notification-center-copy strong{font-weight:800;color:#203553}
.feed-person small,.notification-center-copy small{color:#70839d}

.scan-toast{
  right:24px!important;bottom:24px!important;max-width:min(430px,calc(100vw - 28px))!important;
}
.scan-toast:not(.hidden){animation:v108-toast-in .32s cubic-bezier(.2,.9,.2,1)}
@keyframes v108-toast-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
#scanToast .v92-toast-band{
  background:linear-gradient(90deg,#163154,#295a9c)!important;color:#fff!important;border-radius:18px 18px 0 0!important
}
#scanToast .v92-live-beacon{background:var(--gold)!important;box-shadow:0 0 0 4px rgba(201,163,95,.18)!important}
#scanToast .v92-toast-maincopy strong,#scanToast .v92-toast-clock strong{color:#1c3457!important}
#scanToast .v92-toast-footer{border-top:1px solid #e6edf6!important}
#scanToast .v92-toast-link{color:#2c5ea7!important;font-weight:800!important}
#scanToast .v92-toast-statusicon{background:linear-gradient(180deg,#edf3fc,#dfe8f8)!important;color:#2e5d9f!important}

.edit-overlay,.modal-backdrop{backdrop-filter:blur(8px);background:rgba(16,28,46,.28)!important}
.edit-dialog,.modal-card,.v76-password-dialog,.v104-modal-card{
  border-radius:24px!important;padding:20px!important;box-shadow:0 28px 58px rgba(13,23,37,.2)!important;background:#fbfcfe!important
}
.v31-history-dialog,.v104-modal-card,.v76-password-dialog{padding:0!important;overflow:hidden}
.v31-modal-head,.v104-modal-head,.v76-password-header,.history-dialog-head{
  background:linear-gradient(180deg,#fbfcfe,#f3f7fb);border-bottom:1px solid #e6edf6
}
.v104-modal-head,.v76-password-header,.history-dialog-head{padding:20px 22px!important}
.v31-modal-head{padding:20px 22px!important}
.v104-kicker,.v31-kicker,.v76-kicker,.v37-kicker{color:var(--gold)!important;letter-spacing:2px!important;font-weight:900!important}
.v104-head-icon,.v104-section-icon,.v76-dialog-close,.v104-icon-close,.history-dialog-head .btn.ghost,.v31-modal-head .btn.ghost{
  box-shadow:none
}
.v104-section-heading strong,.v104-form-intro strong,.v31-modal-head h3,.v104-modal-head h3,.v76-password-header h2,.history-dialog-head h3{color:#1c3252}
.v104-modal-section{border-radius:18px!important;background:linear-gradient(180deg,#fff,#f8fbfe)!important;border:1px solid #dce5f0!important}
.v104-privilege-grid label,.access-edit-check,.access-page-grid label,.access-dept-grid label{
  border-radius:14px!important;border:1px solid #dce5ef!important;background:#fff!important;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.v104-privilege-grid label:hover,.access-edit-check:hover,.access-page-grid label:hover,.access-dept-grid label:hover{
  transform:translateY(-1px);border-color:#c6d6e8!important;box-shadow:0 10px 18px rgba(15,28,46,.05)
}
.v104-link{color:#2c5ea7!important}
.v104-count{color:#6f829c!important}

#view-settings .panel,#view-profile .panel,#view-employees .panel,#view-reports .panel,#view-raw .panel,
#view-daily .panel,#view-timeline .panel,#view-device .panel,#view-history .panel{border-radius:20px}
#view-settings .panel-head,#view-profile .panel-head,#view-employees .panel-head,#view-reports .panel-head,#view-raw .panel-head,
#view-daily .panel-head,#view-timeline .panel-head,#view-device .panel-head,#view-history .panel-head{padding-top:21px;padding-bottom:18px}
#view-settings .settings-tabs{background:#f7f9fc;border:1px solid #dfe7f1;border-radius:16px;padding:8px}
#view-settings .settings-tab{border-radius:12px;font-weight:800}
#view-settings .settings-tab.active{background:linear-gradient(135deg,#2d5ca0,#4273c1);color:#fff;box-shadow:0 10px 18px rgba(47,95,168,.18)}

.v103-daily-employee b,.daily-detail-grid strong,.employee-name strong{color:#203452}
.v103-daily-dept,.employee-card small,.daily-subtle,.history-meta{color:#73859d}
.v103-shift-code{color:#234f8b!important}
.daily-red{color:#bf4b54;font-weight:800}.daily-orange{color:#a8741f;font-weight:800}


/* v110 — precise spreadsheet grid and visible selection */
#view-roster .v111-roster-workbench{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:14px 18px;margin:0 18px 12px;background:linear-gradient(100deg,#f5f8fc,#edf3fb);border:1px solid #dce5f0;border-left:4px solid var(--v111-gold);border-radius:15px}
#view-roster .v111-workbench-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid #d5dfef;border-radius:12px;background:#fff;color:#295691;flex-shrink:0}
#view-roster .v111-workbench-icon svg{height:20px;width:20px}
#view-roster .v111-workbench-copy{min-width:180px;flex:1}
#view-roster .v111-workbench-copy strong{font-size:12px;display:block;color:#1a3555;letter-spacing:.015em}
#view-roster .v111-workbench-copy small{color:#71839b;display:block;margin-top:2px;line-height:1.55}
#view-roster .v111-workbench-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
#view-roster .v111-workbench-chip{font-size:10px;padding:6px 10px;border:1px solid #d9e2ee;background:#fff;color:#516985;border-radius:9px;font-weight:800;white-space:nowrap}
#view-roster .v111-roster-focus-button{min-height:38px;padding:8px 13px;border:1px solid #bdcfe4;background:#fff;color:#224b83;border-radius:10px;font-weight:850;font:inherit;font-size:11px;cursor:pointer;transition:background .16s ease,transform .16s ease}
#view-roster .v111-roster-focus-button:active{transform:scale(.975)}
#view-roster .v111-roster-focus-button[aria-pressed="true"]{background:#1f477d;color:#fff;border-color:#1f477d}
#view-roster .roster-scroll{border:1px solid #cfd9e8;border-radius:13px;background:#fff;max-height:min(73dvh,860px);overflow:auto;overscroll-behavior:auto;scrollbar-gutter:stable}
#view-roster .roster-table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
#view-roster .roster-table thead th{position:sticky;top:0;z-index:5;background:#153051!important;color:#f2f6fc!important;border-bottom:2px solid #c9a35f!important}
#view-roster .roster-table thead th.sticky-emp{position:sticky;left:0;z-index:12;background:#112844!important;color:#fff!important;box-shadow:4px 0 10px rgba(13,28,49,.13)}
#view-roster .roster-table tbody td.sticky-emp{position:sticky;left:0;z-index:4;background:#fefefe!important;box-shadow:4px 0 8px rgba(13,28,49,.07)}
#view-roster .roster-table td{border-right:1px solid #e5ebf2;border-bottom:1px solid #e5ebf2}
#view-roster .roster-table tbody tr.v37-employee-row:hover td{background:#f4f8ff!important}
#view-roster .roster-table tbody tr.v37-employee-row:hover td.sticky-emp{background:#edf3fc!important}
#view-roster .roster-table .shift-pill{min-width:38px;border-radius:8px;transition:box-shadow .14s ease,background-color .14s ease,transform .12s ease}
#view-roster .roster-table .shift-pill:focus-visible{outline:2px solid #c9a35f!important;outline-offset:1px;box-shadow:0 0 0 4px rgba(201,163,95,.24)!important}
#view-roster .roster-table .shift-pill:active{transform:scale(.94)}
#view-roster .roster-table .v58-today-header{background:#1f477b!important;border-bottom:3px solid #d8b97a!important}
#view-roster .roster-table td.v58-today-cell{background:#fff9ea!important;box-shadow:inset 2px 0 #e5cc96,inset -2px 0 #e5cc96}
#view-roster .roster-table tr.roster-group-row td{background:#e7eef8!important;color:#29486c!important;letter-spacing:.06em}
#view-roster .v99-roster-tools{background:#f7f9fd;border:1px solid #e0e7f0;margin-bottom:10px}
#view-roster .v99-roster-tools button[aria-pressed="true"]{background:#24518d;border-color:#24518d;color:#fff}
#view-roster.v111-focus-mode .v37-roster-guide,#view-roster.v111-focus-mode .v38-quick-hint,#view-roster.v111-focus-mode .v43-legend-head,#view-roster.v111-focus-mode .roster-shift-legend{display:none!important}
#view-roster.v111-focus-mode .roster-scroll{max-height:min(79dvh,980px)}
#view-roster .roster-scroll:focus-within{border-color:#bda16a}

/* v111 — live feed: restrained cinematic monitoring, not simulated device status */
#view-timeline .timeline-main{border-radius:20px}
#view-timeline .timeline-aside{border-radius:20px}
#view-timeline .v111-live-pulse{display:flex;gap:8px;flex-wrap:wrap;padding:14px 19px;margin:0 19px 14px;border:1px solid #dde6f0;border-left:3px solid var(--v111-gold);border-radius:12px;background:#f7f9fc;align-items:center}
#view-timeline .v111-live-chip{padding:7px 10px;background:#fff;border:1px solid #dce5ef;color:#47617e;border-radius:9px;font-size:11px;font-weight:750}
#view-timeline .v111-live-chip strong{color:#1d3e66;font-size:12px}
#view-timeline .v111-live-chip--in{border-color:#d1e8df;color:#20785c}
#view-timeline .v111-live-chip--out{border-color:#d5e1f3;color:#315c98}
#view-timeline .v111-live-chip--review{border-color:#e9d8b2;color:#976a22}
#view-timeline .timeline-items{scrollbar-gutter:stable;overscroll-behavior:auto}
#view-timeline .feed-item{border-radius:15px;border:1px solid #dfe7f1;background:linear-gradient(180deg,#fff,#f9fbfe);transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .16s ease}
#view-timeline .feed-item:hover{transform:translateY(-1px);border-color:#cad7e9;box-shadow:0 8px 22px rgba(18,37,66,.08)}
#view-timeline .feed-item.v97-in{border-left:3px solid #369378}
#view-timeline .feed-item.v97-out{border-left:3px solid #406eae}
#view-timeline .feed-item.v97-duplicate{border-left:3px solid #cba55b}
#view-timeline .feed-item.v97-review{border-left:3px solid #ad6f55}
#view-timeline .feed-item .feed-avatar{background:#eaf1fa!important;color:#2c568d!important;border:1px solid #d9e4f2}
#view-timeline .v103-scan-icon{box-shadow:none;border:1px solid #dbe5f0}
#view-timeline .v57-direction{border-radius:8px;letter-spacing:.03em}
#view-timeline .timeline-aside .health-row{border-bottom:1px solid #edf1f7}

/* Scan toast — cinematic framing, grounded to actual data */
.scan-toast.v92-live-pop{top:82px!important;bottom:auto!important;right:24px!important;width:min(472px,calc(100vw - 28px));border:1px solid #bfcbdc;border-radius:20px!important;box-shadow:0 30px 65px rgba(5,17,35,.25),0 8px 22px rgba(5,17,35,.12);animation:v111-toast-enter .34s cubic-bezier(.16,.85,.28,1) both}
.scan-toast.v92-live-pop::before{content:"";height:2px;position:absolute;left:0;right:0;top:0;background:linear-gradient(90deg,transparent,#d8b97a 25%,#c9a35f 60%,transparent);z-index:2;pointer-events:none}
.scan-toast.v92-live-pop .v92-toast-band{height:48px;background:#152b49!important;color:#ecf3fe!important;border-color:#1b3656;letter-spacing:.1em}
.scan-toast.v92-live-pop .v92-live-beacon{background:#d8b97a!important;box-shadow:0 0 0 5px rgba(216,185,122,.14)!important}
.scan-toast.v92-live-pop .v92-toast-close{color:#cad9ec}
.scan-toast.v92-live-pop .v92-toast-close:hover{background:rgba(255,255,255,.1)}
.scan-toast.v92-live-pop .v92-toast-main{padding:23px 20px 19px;gap:14px;background:#fff}
.scan-toast.v92-live-pop .v92-toast-maincopy strong{font-size:20px;color:#173453}
.scan-toast.v92-live-pop .v92-toast-clock strong{font-size:22px;color:#142b4a;font-weight:900}
.scan-toast.v92-live-pop .v92-toast-clock span{letter-spacing:.13em}
.scan-toast.v92-live-pop .v92-toast-statusicon{border-radius:16px;background:#eaf0fa!important;color:#2d5d9c!important}
.scan-toast.v92-live-pop .v92-toast-person{background:#f6f8fc;padding:16px 20px}
.scan-toast.v92-live-pop .v92-toast-avatar{background:#e7eef9;border-color:#d4dfed;color:#2b558b}
.scan-toast.v92-live-pop .v92-toast-footer{padding:13px 20px 16px;background:#f2f5fa}
.scan-toast.v92-live-pop .v92-toast-progress{height:3px;background:linear-gradient(90deg,#c9a35f,#2f5fa8)}
.scan-toast.v92-live-pop.v92-in .v92-toast-statusicon{background:#e4f3ed!important;color:#168564!important}
.scan-toast.v92-live-pop.v92-out .v92-toast-statusicon{background:#e6eefb!important;color:#315c9e!important}
.scan-toast.v92-live-pop.v92-unknown .v92-toast-statusicon{background:#fff2dc!important;color:#a47625!important}
@keyframes v111-toast-enter{from{opacity:0;transform:translateY(-15px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}

/* AttendanceOS v113 — one canonical executive navigation & overview design */
:root{
 --v113-navy:#102039;--v113-navy2:#1a3558;--v113-sapphire:#315f9d;--v113-gold:#c5a36b;
 --v113-ivory:#fbfcfe;--v113-ink:#193250;--v113-muted:#6e8097;--v113-line:#dce4ef;
}
#shell .sidebar{
 background:linear-gradient(170deg,#0c192d 0%,#132844 68%,#152b47 100%);
 box-shadow:8px 0 28px rgba(8,23,43,.1);
 transition:width .16s ease, flex-basis .16s ease;
}
#shell .sidebar .brand{padding:22px 18px 18px;min-height:102px}
#shell .sidebar .brand::after{height:1px;background:linear-gradient(90deg,transparent,#b3945e 42%,transparent)}
#shell .sidebar .nav-label{color:#96acc7;letter-spacing:.17em;font-size:9px;font-weight:850}
#shell .sidebar .nav-label::after{opacity:.55}
#shell #nav .nav-item{
 color:#becfe4;position:relative;min-height:46px;margin:3px 0;padding:10px 13px;border-radius:10px;
 display:flex;align-items:center;gap:13px;border:1px solid transparent;
 background:transparent;box-shadow:none;
 transition:background-color .13s ease,color .13s ease,border-color .13s ease;
 transform:none!important;
}
#shell #nav .nav-item::before{
 content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;
 background:transparent;box-shadow:none;transition:background-color .13s ease;
}
#shell #nav .nav-item:hover{color:#fff;background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.03);box-shadow:none}
#shell #nav .nav-item.active{
 background:linear-gradient(90deg,rgba(45,91,152,.74),rgba(49,95,157,.34));
 border-color:rgba(114,151,196,.17);color:#fff;box-shadow:none;
}
#shell #nav .nav-item.active::before{background:#d8b97a;box-shadow:none}
#shell #nav .nav-item .v91-nav-ic{color:#9eb4d1;transform:none!important;transition:color .13s ease}
#shell #nav .nav-item.active .v91-nav-ic{color:#e8cca0}
#shell #nav .nav-item:hover .v91-nav-ic{color:#fff;transform:none!important}
#shell #nav .nav-item:active{transform:none!important}
#shell .v91-sidebar-toggle{
 width:35px;height:35px;display:grid;place-items:center;border-radius:9px;
 color:#d8e6f5;background:rgba(255,255,255,.055);border:1px solid rgba(209,221,240,.15);
 box-shadow:none;transition:background-color .14s ease,border-color .14s ease;
 transform:none!important;
}
#shell .v91-sidebar-toggle:hover{background:rgba(201,163,95,.12);border-color:rgba(216,185,122,.38);transform:none!important}
#shell.v91-collapsed .sidebar{width:82px;flex-basis:82px}
#shell.v91-collapsed .sidebar .brand{padding:16px 8px;gap:8px;justify-content:center;flex-wrap:wrap}
#shell.v91-collapsed .sidebar .v91-sidebar-toggle{margin:0 auto}
#shell.v91-collapsed #nav .nav-item{justify-content:center;padding:10px 0}
#shell.v91-collapsed #nav .nav-item .v91-nav-ic{margin:auto;flex-basis:22px;width:22px}
#shell.v91-collapsed #nav .nav-item::before{top:11px;bottom:11px}
#shell .sidebar .side-status{box-shadow:none;background:rgba(255,255,255,.035);border-color:rgba(221,233,251,.09)}
#shell .topbar{box-shadow:0 3px 14px rgba(15,32,57,.035);backdrop-filter:none;background:#fbfcfe}
#shell .panel,#shell .kpi{box-shadow:0 7px 22px rgba(18,40,68,.055);border-color:#dae3ee}
#shell .kpi{border-radius:16px}
#shell .kpi:hover{transform:none;box-shadow:0 8px 24px rgba(18,40,68,.075)}
#shell .kpi::before{width:42px;height:2px;background:#c5a36b}
#shell .btn{transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease;transform:none!important}
#shell .btn:hover:not(:disabled){transform:none!important;box-shadow:0 6px 13px rgba(18,40,68,.075)}
#shell .btn:active:not(:disabled){transform:none!important}

/* Navigation animation is opacity-only: no movement or scroll displacement. */
#shell .view{min-width:0;overflow-anchor:none}
#shell .view.v113-enter{animation:v113-enter .12s ease-out both}
@keyframes v113-enter{from{opacity:.70}to{opacity:1}}
#shell .view.v90-enter{animation:none!important}
#shell .view[aria-busy="true"]{cursor:progress}
#shell .content{overflow-anchor:none}
#shell .roster-scroll,#shell .timeline-items,#shell .table-scroll{overscroll-behavior:auto;scrollbar-gutter:stable}

/* v151: Compact Overview rebuilt around one source of KPIs and one discipline summary.
   No duplicate hero statistics or large presentation-only background. */
#view-dashboard .wn143-overview-head{background:#fff;box-shadow:none;border-color:#dce5ef;margin-bottom:12px}
#view-dashboard .wn143-overview-copy h2{font-size:20px;letter-spacing:-.025em;margin:4px 0}
#view-dashboard .wn143-overview-copy p{font-size:12px}
#view-dashboard .kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 12px}
#view-dashboard .kpi{padding:14px 16px;min-height:113px;border-radius:13px;box-shadow:none;background:#fff}
#view-dashboard .kpi strong{font-size:27px;line-height:1.2;letter-spacing:-.03em}
#view-dashboard .kpi .kpi-top{font-size:11px}
#view-dashboard .kpi .kpi-foot{font-size:10px}
#view-dashboard .kpi:hover{transform:none;box-shadow:none}
#view-dashboard .wn143-overview-footnote{margin:0 2px 12px;font-size:10px}
#view-dashboard .v113-executive-top{display:block;margin:0 0 12px;min-width:0}
#view-dashboard .wn151-discipline{background:#fff;border:1px solid #dce5ef;border-radius:14px;padding:16px 19px;box-shadow:none;min-width:0}
#view-dashboard .wn151-discipline-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
#view-dashboard .wn151-overline{font-size:9px;font-weight:850;letter-spacing:.12em;color:#607a9c}
#view-dashboard .wn151-discipline h3,#view-dashboard .wn151-findings h3{margin:3px 0 0;font-size:16px;color:#1d3655;font-weight:800;letter-spacing:-.015em}
#view-dashboard .wn151-period{font-size:11px;color:#6a809b;text-align:right;line-height:1.45;margin:0;max-width:55%}
#view-dashboard .wn151-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
#view-dashboard .wn151-stat{padding:2px 20px;min-width:0;border-right:1px solid #e4ebf4;display:flex;flex-direction:column;gap:3px}
#view-dashboard .wn151-stat:first-child{padding-left:0}
#view-dashboard .wn151-stat:last-child{border-right:0;padding-right:0}
#view-dashboard .wn151-stat small{color:#71839a;font-size:11px;line-height:1.35}
#view-dashboard .wn151-stat strong{font-size:24px;line-height:1.25;color:#1c385c;font-weight:800;font-variant-numeric:tabular-nums}
#view-dashboard .wn151-stat>span{color:#6882a1;font-size:10px}
#view-dashboard .wn151-late-stat strong{color:#b56e2b}
#view-dashboard .wn151-progress{height:4px;background:#edf1f6;border-radius:100px;overflow:hidden;max-width:170px;width:100%;margin-top:4px}
#view-dashboard .wn151-progress i{display:block;background:#c28b45;height:100%;width:0;transition:width .2s}
#view-dashboard .wn151-quiet-note{margin-top:12px;font-size:11px;color:#667b93;background:#f5f8fb;border-radius:7px;padding:7px 10px;line-height:1.45}
#view-dashboard .wn151-internal-meter{display:none}
#view-dashboard .v113-executive-bottom{display:block;margin:0 0 12px;min-width:0}
#view-dashboard .wn151-findings{background:#fff;border:1px solid #dce5ef;border-radius:14px;padding:14px 19px;min-width:0}
#view-dashboard .wn151-findings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
#view-dashboard .wn151-findings-caption{font-size:10px;color:#8192a8}
#view-dashboard .v113-people-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#view-dashboard .v113-person{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid #e3ebf3;border-radius:10px;min-width:0;background:#fafcff}
#view-dashboard .v113-person-mark{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:8px;font-size:13px;font-weight:800;background:#edf3fa;color:#3a608d}
#view-dashboard .v113-person-mark.gold{background:#f8f1e2;color:#a57b33}
#view-dashboard .v113-person-mark.blue{background:#e9f1fb;color:#396999}
#view-dashboard .v113-person-mark.muted{background:#f1f4f8;color:#7f94aa}
#view-dashboard .v113-person>div{min-width:0;flex:1}
#view-dashboard .v113-person small{display:block;font-size:9px;font-weight:800;color:#8192a7;letter-spacing:.075em}
#view-dashboard .v113-person strong{display:block;margin:3px 0;color:#243d5d;font-size:12px;line-height:1.35;word-break:break-word}
#view-dashboard .v113-person span:last-child{display:block;font-size:10px;color:#71859f;line-height:1.45}
#view-dashboard .v113-empty{font-size:11px;color:#8494a9;padding:8px 0;margin:0}
#view-dashboard .wn151-advanced-analysis{background:#fff;border:1px solid #dce5ef;border-radius:13px;margin:0 0 16px;overflow:hidden}
#view-dashboard .wn151-advanced-analysis>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 17px;cursor:pointer;color:#234466;transition:background .12s ease}
#view-dashboard .wn151-advanced-analysis>summary::-webkit-details-marker{display:none}
#view-dashboard .wn151-advanced-analysis>summary:hover{background:#f6f9fd}
#view-dashboard .wn151-advanced-analysis>summary:focus-visible{outline:2px solid #6f97cc;outline-offset:-3px}
#view-dashboard .wn151-advanced-analysis>summary strong{display:block;font-size:12px}
#view-dashboard .wn151-advanced-analysis>summary small{display:block;font-size:10px;color:#788ca5;margin-top:3px}
#view-dashboard .wn151-advanced-chevron{color:#6a819d;font-size:18px;transition:transform .15s}
#view-dashboard .wn151-advanced-analysis[open] .wn151-advanced-chevron{transform:rotate(180deg)}
#view-dashboard .wn151-advanced-analysis>.v30-insights{border:0;border-top:1px solid #e5ecf4;border-radius:0;margin:0;box-shadow:none}
@media(max-width:1150px){#view-dashboard .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#view-dashboard .v113-people-list{grid-template-columns:1fr}}
@media(max-width:750px){#view-dashboard .wn151-discipline-heading{align-items:flex-start;flex-direction:column}#view-dashboard .wn151-period{text-align:left;max-width:none}#view-dashboard .wn151-stat-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}#view-dashboard .wn151-stat:nth-child(2){border-right:0}#view-dashboard .wn151-stat:nth-child(3){padding-left:0}#view-dashboard .wn151-stat:nth-child(4){border-right:0}#view-dashboard .wn151-stat{padding:2px 12px}#view-dashboard .wn151-discipline,#view-dashboard .wn151-findings{padding:13px}}
@media(max-width:460px){#view-dashboard .kpi-grid{gap:8px}#view-dashboard .kpi{padding:12px;min-height:105px}#view-dashboard .kpi strong{font-size:22px}#view-dashboard .wn151-stat strong{font-size:21px}}
@media(max-width:1060px){#shell.v91-collapsed .sidebar{width:min(315px,87vw)!important;flex-basis:auto!important}}
@media(prefers-reduced-motion:reduce){#shell .view.v113-enter{animation:none!important}#shell .sidebar,#shell #nav .nav-item,#shell .btn{transition:none!important}}
/* AttendanceOS v115: regenerated ranking visual language. Shared component source: executive-v113.css */
#view-dashboard .v30-rank-grid{gap:18px;align-items:stretch;padding:0 20px 20px}
#view-dashboard .v115-ranking-card{
  min-width:0;overflow:hidden;display:flex;flex-direction:column;
  border:1px solid #dce3ed;border-radius:20px;
  background:#fff;box-shadow:0 14px 34px rgba(16,36,63,.08);
}
#view-dashboard .v115-ranking-card::before{display:none}
#view-dashboard .v115-ranking-card .v30-rank-head{
  position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:11px;
  padding:19px 18px 16px;background:linear-gradient(180deg,#fff,#f9fbfe);border-bottom:1px solid #e7edf5
}
#view-dashboard .v115-ranking-card .v30-rank-head::before{
  content:"";height:3px;position:absolute;top:0;left:19px;right:19px;border-radius:2px;
  background:linear-gradient(90deg,#c9a35f 0%,#3566a5 48%,transparent 100%)
}
#view-dashboard .v115-ranking-card--late .v30-rank-head::before{background:linear-gradient(90deg,#b86f60,#cba76a,transparent)}
#view-dashboard .v115-ranking-card .v30-medal{height:44px;width:44px;border-radius:13px;border:1px solid #d5e0ef;background:#eff4fc;color:#345d93;font-size:24px;flex-shrink:0}
#view-dashboard .v115-ranking-card--late .v30-medal{border-color:#eddcd5;background:#fff4ef;color:#af5b4f}
#view-dashboard .v115-ranking-card .v30-rank-head>div:nth-child(2){flex:1 1 220px;min-width:180px}
#view-dashboard .v115-ranking-card .v30-rank-head h4{font-size:15px;font-weight:900;letter-spacing:-.025em;color:#18314f}
#view-dashboard .v115-ranking-card .v30-rank-head p{color:#72859d;font-size:10px;line-height:1.55;margin-top:4px;max-width:440px}
#view-dashboard .v115-rank-count{display:inline-flex;margin-top:9px;color:#86672f;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
#view-dashboard .v115-ranking-card--late .v115-rank-count{color:#a36d55}
#view-dashboard .v115-ranking-card .v81-sort-group{flex:0 1 auto;gap:7px}
#view-dashboard .v115-ranking-card .v81-sort-group select{min-width:154px;max-width:200px;background:#fff;color:#253d60;border:1px solid #d7e0ec;border-radius:11px;height:38px;font-size:11px;font-weight:700}
#view-dashboard .v115-ranking-card .v58-board-actions{display:flex;gap:6px;flex:0 0 auto;flex-wrap:wrap}
#view-dashboard .v115-ranking-card .v58-board-actions button{min-height:35px;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:850;border:1px solid #d9e3ef;color:#355573;background:#fff}
#view-dashboard .v115-ranking-card .v58-board-actions button:hover{border-color:#aebfd5;background:#edf3fb}
#view-dashboard .v115-ranking-card .table-scroll{flex:1 1 auto;min-height:0;max-height:560px;overflow:auto;border:0;border-radius:0;scrollbar-gutter:stable}
#view-dashboard .v115-ranking-card table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;font-variant-numeric:tabular-nums}
#view-dashboard .v115-ranking-card thead th{position:sticky;top:0;z-index:4;background:#142c49!important;color:#dfebf8!important;font-size:10px;font-weight:850;letter-spacing:.085em;white-space:nowrap;text-align:left;padding:13px 14px;box-shadow:none}
#view-dashboard .v115-ranking-card thead th:first-child{width:75px}
#view-dashboard .v115-ranking-card thead th:nth-child(2){min-width:168px}
#view-dashboard .v115-ranking-card thead th:nth-child(3){min-width:100px}
#view-dashboard .v115-ranking-card thead th:nth-child(4){min-width:112px}
#view-dashboard .v115-ranking-card thead th:nth-child(5){min-width:100px}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-row{background:#fff;transition:background-color .15s ease}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-row:nth-child(even){background:#fafbfd}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-row:hover{background:#f0f5fd}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-top--1{background:#fffdf6}
#view-dashboard .v115-ranking-card--late tbody tr.v115-rank-top--1{background:#fff9f8}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-row td{padding:14px 14px;min-height:64px;border-bottom:1px solid #e7edf4;vertical-align:middle;font-size:11px;color:#49627e}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-row td:first-child{border-left:3px solid transparent}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-top--1 td:first-child{border-left-color:#c49a49}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-top--2 td:first-child{border-left-color:#a1aec0}
#view-dashboard .v115-ranking-card tbody tr.v115-rank-top--3 td:first-child{border-left-color:#c78863}
#view-dashboard .v115-rank-ordinal{display:inline-flex;justify-content:center;align-items:center;min-height:34px;min-width:43px;padding:6px 9px;border-radius:10px;border:1px solid #dbe4ef;background:#f2f6fc;font-size:11px;font-weight:900;color:#496889;white-space:nowrap}
#view-dashboard .v115-rank-ordinal--1{background:#fff0c9;border-color:#edcf80;color:#8e6515;box-shadow:inset 0 1px #fff6df}
#view-dashboard .v115-rank-ordinal--2{background:#eaf0f8;border-color:#cad6e4;color:#566e8a}
#view-dashboard .v115-rank-ordinal--3{background:#fff0e5;border-color:#e9c5a6;color:#9a6640}
#view-dashboard .v115-rank-ordinal--late.v115-rank-ordinal--1{background:#fff0eb;border-color:#eec1b7;color:#aa5144}
#view-dashboard .v115-rank-person{border:0!important;background:transparent!important;padding:0!important;text-align:left!important;display:flex!important;gap:8px!important;align-items:center;max-width:100%;width:100%;font:inherit;cursor:pointer}
#view-dashboard .v115-rank-person .person{flex:1;min-width:0;white-space:normal}
#view-dashboard .v115-rank-person .person strong{font-size:12px;color:#183253;line-height:1.4}
#view-dashboard .v115-rank-person .person-icon{width:37px;height:37px;border-radius:12px;flex:0 0 37px;background:#e8eef9;color:#3b639f}
#view-dashboard .v115-evidence-arrow{display:inline-grid;place-items:center;height:27px;width:27px;border-radius:9px;background:#f0f5fc;color:#426b9c;font-size:13px;font-weight:850;flex:0 0 27px;transition:background .14s ease}
#view-dashboard .v115-rank-person:hover .v115-evidence-arrow{background:#dbe8fb}
#view-dashboard .v115-rank-person:focus-visible{outline:2px solid #3566a5;outline-offset:3px;border-radius:8px}
#view-dashboard .v115-rank-dept{display:inline-block;color:#4c6280;background:#f4f7fb;padding:7px 9px;border-radius:9px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}
#view-dashboard .v115-rank-figure{display:flex;flex-direction:column;gap:8px;min-width:83px}
#view-dashboard .v115-rank-figure strong{font-size:14px;line-height:1.2;white-space:nowrap;font-weight:900}
#view-dashboard .v115-rank-figure strong small{font-size:10px;color:inherit;opacity:.8;font-weight:700}
#view-dashboard .v115-rank-early{color:#138364}
#view-dashboard .v115-rank-late{color:#ae6551}
#view-dashboard .v115-rank-bar{height:4px;width:100%;border-radius:20px;background:#eaf0f5;display:block;overflow:hidden}
#view-dashboard .v115-rank-bar i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#7ba9d2,#2f639f)}
#view-dashboard .v115-ranking-card--late .v115-rank-bar i{background:linear-gradient(90deg,#e2ba8a,#b56b59)}
#view-dashboard .v115-rank-minutes{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;color:#6b7c91;font-size:10px}
#view-dashboard .v115-rank-minutes strong{font-size:14px;font-weight:900;color:#203b60}
@media(max-width:1200px){#view-dashboard .v30-rank-grid{grid-template-columns:1fr}}
@media(max-width:760px){
 #view-dashboard .v115-ranking-card .v30-rank-head{padding:15px 12px;gap:9px}
 #view-dashboard .v115-ranking-card .v30-rank-head>div:nth-child(2){flex-basis:170px}
 #view-dashboard .v115-ranking-card .v58-board-actions{width:100%;justify-content:flex-start}
 #shell #view-dashboard .v115-ranking-card .table-scroll{max-height:none!important;overflow-x:visible!important;overflow-y:visible!important;display:block!important;padding:9px!important}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table{min-width:0!important;width:100%!important;display:block!important}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody{display:grid!important;gap:11px!important}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;gap:4px 10px;padding:12px!important;border-radius:14px;border:1px solid #dce5ee;background:#fff;box-shadow:0 5px 14px rgba(18,43,75,.06)}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-top--1{background:#fffdf5;border-color:#e7d7b5}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-top--2{background:#f9fbfe}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td{display:flex!important;grid-template-columns:none!important;align-items:center;min-height:0;padding:7px 0!important;border:none!important;box-shadow:none!important;max-width:100%!important;min-width:0!important}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(1){grid-column:1;grid-row:1;justify-content:center}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(2){grid-column:2;grid-row:1;min-width:0}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(3){grid-column:1/-1;grid-row:2}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(4){grid-column:1/-1;grid-row:3;justify-content:space-between}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(5){grid-column:1/-1;grid-row:4;justify-content:space-between;border-top:1px solid #e8eef5!important;padding-top:9px!important}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(n)::before{display:none!important}
 #shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(4)::before,#shell #view-dashboard .v115-ranking-card table.v114-card-table>tbody>tr.v115-rank-row td:nth-child(5)::before{display:block!important;content:attr(data-v114-label);font-size:10px;color:#71849d;font-weight:850;text-transform:uppercase;flex:1}
 #shell #view-dashboard .v115-ranking-card .v115-rank-figure{width:135px;flex-shrink:0}
 #shell #view-dashboard .v115-ranking-card .v115-rank-person{width:100%;min-width:0}
}

#view-dashboard .v115-department-scope{display:inline-flex;margin-left:auto;padding:8px 12px;border-radius:11px;background:#f8f4e9;border:1px solid #eadab6;color:#775c2d;font-size:11px;font-weight:850;max-width:100%;overflow-wrap:anywhere}
/* A department-limited Overview shows only scoped workforce data; the hardware-wide machine card is hidden. */
#view-dashboard.v115-department-scoped .health-panel{display:none!important}
#view-dashboard.v115-department-scoped>.two-cols{grid-template-columns:minmax(0,1fr)!important}
#view-dashboard.v115-department-scoped #syncBtn{display:none!important}

/* ===== END: assets/executive-v113.css ===== */

/* ===== 18. ORIGINAL SOURCE: assets/android-v114.css ===== */
/* AttendanceOS v114 — phone-first layout, one authoritative mobile sheet / table layer */
.v114-scroll-hint,.v114-mobile-selectbar{display:none}
.v114-sheet-root{display:none}
@media(max-width:760px){
 :root{--v114-safe-bottom:env(safe-area-inset-bottom,0px)}
 html,body{width:100%;max-width:100%;overflow-x:clip}
 #shell{display:block;min-height:100dvh;width:100%}
 #shell .sidebar{display:none!important}
 #shell .main-wrap{min-width:0;width:100%;padding-bottom:calc(94px + var(--v114-safe-bottom))}
 #shell .content{padding:15px 12px 34px!important;width:100%;max-width:100%;min-width:0}
 #shell .view,#shell .panel,#shell .page-head,#shell .timeline-grid,#shell .device-grid,#shell .v113-executive-top,#shell .v113-executive-bottom{min-width:0;max-width:100%}
 #shell .page-head{flex-wrap:wrap;gap:9px;margin-bottom:14px}
 #shell .page-head h1{font-size:22px;line-height:1.25}
 #shell .topbar{height:60px;min-height:60px;padding:0 13px!important;gap:8px}
 #shell .breadcrumbs{min-width:0;font-size:11px}
 #shell .top-actions{gap:7px;min-width:0}
 #shell .today,#shell .divider-v,#shell .admin-label{display:none!important}
 #shell .avatar{width:32px;height:32px;flex-basis:32px}
 #shell .panel,#shell .v30-rank-card,#shell .daily-panel{border-radius:16px}
 #shell .panel-head{padding:15px!important;flex-wrap:wrap;gap:9px}
 #shell .panel-head .inline-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 #shell .panel-head .inline-actions>*{min-width:0;max-width:100%;width:100%}
 #shell .head-actions,#shell .filters,#shell .v30-filterbar,#shell .daily-filters,#shell .timeline-controls{display:flex;flex-wrap:wrap;gap:9px}
 #shell .filters label,#shell .daily-filters label{flex:1 1 138px;min-width:0}
 #shell .filters input,#shell .filters select,#shell .daily-filters input,#shell .daily-filters select{max-width:100%;min-width:0}
 #shell .kpi-grid,#shell .daily-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 #shell .kpi{min-height:130px;padding:15px}
 #shell .kpi strong{font-size:27px}
 #shell .v113-executive-top,#shell .v113-executive-bottom,#shell .v30-rank-grid,#shell .device-grid,#shell .timeline-grid{grid-template-columns:minmax(0,1fr)!important}
 #shell .v113-hero{min-width:0}
 #shell .btn,#shell .v104-link{min-height:40px}
 #shell input:not([type=checkbox]):not([type=radio]),#shell textarea,#shell select{font-size:16px}
 #shell .edit-dialog,#shell .modal-card,#shell .v104-modal-card,#shell .daily-dialog,#shell .history-dialog{max-width:calc(100vw - 18px);max-height:calc(100dvh - 24px);overscroll-behavior:auto;overflow-y:auto}
 #shell .v104-modal-body,#shell .v31-history-list{min-height:0;overscroll-behavior:auto}
 /* Five fixed navigation destinations + an accessible all-pages bottom sheet. */
 #mobileBottomNav{position:fixed!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;z-index:1590;bottom:0;left:0;right:0;padding:8px 8px calc(8px + var(--v114-safe-bottom));background:rgba(250,252,255,.98);border-top:1px solid #d9e3f1;border-radius:17px 17px 0 0;box-shadow:0 -8px 30px rgba(10,30,58,.13);backdrop-filter:blur(14px)}
 #mobileBottomNav button{min-height:53px;min-width:0;border:0;border-radius:11px;padding:6px 1px;background:transparent;color:#667c99;font-size:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;line-height:1.2}
 #mobileBottomNav button svg{height:21px;width:21px;stroke:currentColor;fill:none;stroke-width:1.8}
 #mobileBottomNav button.active,#mobileBottomNav button[aria-current=page],#mobileBottomNav #mobileMore[aria-expanded=true]{background:#e8f0fb;color:#244f87}
 #mobileBottomNav button:active{transform:scale(.97)}
 #mobileBottomNav #mobileMore{background:#173557;color:#fff}
 #mobileBottomNav #mobileMore[aria-expanded=true]{background:#2f5fa8;color:#fff}
 #mobileBottomNav [hidden],#mobileBottomNav .permission-hidden{display:none!important}
 body:has(#login:not(.hidden)) #mobileBottomNav{display:none!important}
 /* ordinary table -> vertical, legible record cards with labels */
 #shell .table-scroll:has(table.v114-card-table){overflow-x:visible!important;max-height:none!important;min-width:0;width:100%;border:0;box-shadow:none;padding:10px 10px 14px;scrollbar-gutter:auto}
 #shell table.v114-card-table{display:block!important;min-width:0!important;width:100%!important;table-layout:auto!important;border:0!important;background:transparent}
 #shell table.v114-card-table>thead,#shell table.v114-card-table>tfoot{display:none!important}
 #shell table.v114-card-table>tbody{display:grid!important;grid-template-columns:minmax(0,1fr);gap:11px;width:100%}
 #shell table.v114-card-table>tbody>tr{display:grid!important;grid-template-columns:minmax(0,1fr);width:100%;min-width:0;overflow:visible;border:1px solid #d9e3ee;border-radius:14px;padding:7px 12px;background:#fff;box-shadow:0 5px 14px rgba(14,35,65,.045)}
 #shell table.v114-card-table>tbody>tr>td,#shell table.v114-card-table>tbody>tr>th{display:grid!important;grid-template-columns:minmax(92px,36%) minmax(0,1fr);gap:10px;align-items:center;min-width:0!important;width:100%!important;max-width:100%!important;padding:9px 0!important;border:0!important;border-bottom:1px solid #edf1f6!important;position:static!important;white-space:normal!important;text-align:left!important;background:transparent!important;box-shadow:none!important;overflow-wrap:anywhere}
 #shell table.v114-card-table>tbody>tr>:last-child{border-bottom:0!important}
 #shell table.v114-card-table>tbody>tr>td::before{content:attr(data-v114-label);font-size:10px;font-weight:800;letter-spacing:.05em;line-height:1.35;text-transform:uppercase;color:#7186a4;white-space:normal}
 #shell table.v114-card-table>tbody>tr>td[colspan]{display:block!important}
 #shell table.v114-card-table>tbody>tr>td[colspan]::before{display:none}
 #shell table.v114-card-table>tbody>tr>td>button,#shell table.v114-card-table>tbody>tr>td>.btn{min-height:37px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
 #shell .v114-mobile-selectbar{display:flex;gap:9px;align-items:center;padding:11px 12px;margin:7px 10px;background:#f1f5fc;border:1px solid #d7e2f0;border-radius:10px;color:#315174;font-size:12px;font-weight:750}
 #shell .v114-mobile-selectbar input{width:18px;height:18px;flex-shrink:0}
 /* Keep true spreadsheets in their natural 2-D form, but give them dedicated scroll space. */
 #shell .roster-scroll,#shell .dw70-scroll,#shell .v99-roster-scroll,#shell .v37-roster-scroll,#shell .v31-history-list{
   max-width:100%;min-width:0;overflow-x:auto!important;overscroll-behavior:auto;-webkit-overflow-scrolling:touch;
 }
 #shell .roster-scroll table,#shell .dw70-scroll table{min-width:860px!important;width:max-content!important}
 #shell .roster-scroll{max-height:min(72dvh,730px)!important}
 #view-roster .v111-roster-workbench{flex-wrap:wrap;margin:8px 10px!important}
 #shell .v114-scroll-hint{display:flex;align-items:center;gap:8px;margin:8px 10px 5px;color:#59708d;background:#f1f5fb;border:1px solid #dce5f0;border-radius:10px;padding:8px 10px;font-size:11px}
 #shell .daily-table{min-width:0!important}
}
@media(max-width:430px){
 #shell .kpi-grid,#shell .daily-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 #shell .content{padding:12px 9px 28px!important}
 #shell table.v114-card-table>tbody>tr>td{grid-template-columns:minmax(80px,35%) minmax(0,1fr)}
}
/* Bottom sheet exists only on mobile; unlike a sidebar it rises above bottom nav. */
.v114-sheet-root.hidden{display:none!important}
@media(max-width:760px){
 body.v114-sheet-open{overflow:hidden!important;touch-action:pan-x pan-y}
 .v114-sheet-root{position:fixed;inset:0;z-index:1900;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
 .v114-sheet-shade{position:absolute;inset:0;background:rgba(6,18,37,.56);backdrop-filter:blur(3px)}
 .v114-sheet{position:relative;display:flex;flex-direction:column;width:100%;height:min(83dvh,790px);max-height:calc(100dvh - 18px);background:#f9fbff;color:#172d4b;border-radius:23px 23px 0 0;box-shadow:0 -12px 45px rgba(5,16,33,.24);overflow:hidden;animation:v114-sheet-up .18s ease-out}
 @keyframes v114-sheet-up{from{opacity:.65;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
 .v114-sheet-handle{width:40px;height:4px;flex-shrink:0;align-self:center;margin-top:10px;border-radius:100px;background:#c0cad8}
 .v114-sheet-header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 19px 16px;border-bottom:1px solid #e0e8f2;flex-shrink:0}
 .v114-sheet-header small{display:block;color:#ad8641;font-size:10px;letter-spacing:.12em;font-weight:850}
 .v114-sheet-header h2{font-size:22px;margin:4px 0;color:#173353}
 .v114-sheet-header p{font-size:11px;color:#7889a0}
 .v114-sheet-close{width:39px;height:39px;border:1px solid #dbe5f0;border-radius:12px;background:#fff;color:#1d395b;font-size:24px;flex-shrink:0}
 .v114-sheet-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:9px 14px 15px}
 .v114-sheet-section{margin:11px 0 17px}
 .v114-sheet-section h3{color:#6e829f;font-size:10px;letter-spacing:.13em;text-transform:uppercase;padding:4px 7px 10px;font-weight:850}
 .v114-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .v114-sheet-link{min-width:0;min-height:70px;display:flex;align-items:center;gap:9px;padding:10px 10px;border:1px solid #dde6f1;border-radius:13px;background:#fff;color:#263f60;text-align:left;box-shadow:0 3px 9px rgba(15,37,62,.035)}
 .v114-sheet-link.active{background:#eaf2fd;border-color:#abc6e9;color:#1c4a83}
 .v114-sheet-icon{width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;color:#2f5fa8;background:#edf3fc;border-radius:10px}
 .v114-sheet-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
 .v114-sheet-name{flex:1;min-width:0;font-size:11px;line-height:1.35;font-weight:800;overflow-wrap:anywhere}
 .v114-sheet-arrow{font-size:19px;color:#94a7bf}
 .v114-sheet-bottom{border-top:1px solid #e0e8f2;padding:11px 16px calc(11px + env(safe-area-inset-bottom,0px));background:#fff;flex-shrink:0}
 .v114-sheet-signout{width:100%;border:1px solid #d8e2ed;background:#fff;min-height:43px;border-radius:12px;font-size:12px;font-weight:800;color:#4d657f}
 .v114-sheet-empty{padding:16px;color:#667b95}
}
@media(prefers-reduced-motion:reduce){.v114-sheet{animation:none!important}}

/* ===== END: assets/android-v114.css ===== */

/* ===== 19. ORIGINAL SOURCE: assets/v118-review-reasons.css ===== */
/* v118 — Integrated HRD verification workflow and reason library */
#reviewActionArea.v118-review-action{display:flex;flex-direction:column;gap:13px;min-width:0}
#reviewActionArea.v118-review-action[hidden],#reviewReadOnlyHint[hidden]{display:none!important}
.v118-review-guide{padding:14px 15px;border:1px solid #d8e2f0;background:#f7f9fd;border-radius:14px;display:flex;flex-direction:column;gap:5px}
.v118-review-guide strong{color:#173657;font-size:13px}
.v118-review-guide small{color:#667c99;font-size:11px;line-height:1.6}
#reviewActionArea label{display:flex;flex-direction:column;gap:8px;color:#25476b;font-size:12px;font-weight:800;margin:0!important}
#reviewActionArea select{width:100%;min-width:0;padding:11px 12px;background:white;color:#223d5d;border:1px solid #d0dceb;border-radius:12px;min-height:43px;white-space:normal}
#reviewActionArea textarea{min-height:113px!important;line-height:1.65;font-size:12px;resize:vertical;padding:13px}
.v118-optional{font-size:10px;color:#8291a7;font-weight:600}
.v118-review-counter{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:-5px;color:#788da8}
.v118-review-counter small,.v118-review-counter span{font-size:10px;color:#7a8ca3;line-height:1.5}
.v118-inline-state{font-size:11px;color:#235e4c;line-height:1.6;min-height:0;margin:0}
.v118-inline-state:empty{display:none}
.v118-inline-state.v118-error{color:#ae3f4c;background:#fff4f2;border:1px solid #efd3d6;border-radius:10px;padding:8px 10px}
.v118-review-readonly{background:#fff7e9;border:1px solid #ebd9b5;border-radius:12px;padding:12px 14px;color:#895c1b;font-size:12px;line-height:1.6;margin-top:15px}
.v118-master-reasons{margin:22px 0 10px;padding:22px;border:1px solid #d9e3f0;background:linear-gradient(180deg,#fff,#f9fbff);border-radius:18px}
.v118-master-head{display:flex;gap:18px;align-items:center;justify-content:space-between;margin-bottom:17px}
.v118-master-head h3{font-size:18px;margin:5px 0 4px;color:#16365d}
.v118-master-head p{font-size:11px;line-height:1.7;color:#687b95;max-width:760px}
.v118-overline{font-size:10px;letter-spacing:2px;font-weight:900;color:#b58a43}
.v118-master-list{display:flex;flex-direction:column;gap:10px}
.v118-master-item{border:1px solid #e1e8f1;border-radius:14px;background:#fff;padding:13px 14px;display:flex;align-items:center;gap:13px}
.v118-master-index{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:11px;background:#eaf0fb;color:#35619f;font-size:11px;font-weight:850}
.v118-master-copy{min-width:0;flex:1}
.v118-master-copy strong{font-size:13px;color:#1d395c}
.v118-master-copy p{font-size:11px;margin-top:3px;color:#70819c;line-height:1.6;overflow-wrap:anywhere}
.v118-master-actions{display:flex;gap:7px;flex-wrap:wrap}
.v118-master-actions .btn{min-height:34px;font-size:10px}
.v118-delete{color:#ae4b58!important;border-color:#efd1d6!important}
.v118-master-foot,.v118-empty,.v118-loading{font-size:11px;line-height:1.6;color:#7183a0;margin-top:14px}
.v118-error-text{color:#b74653;font-size:11px}
#v118ReasonEditor.v118-editor-overlay{position:fixed;inset:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(10,22,40,.4);backdrop-filter:blur(6px)}
#v118ReasonEditor.v118-editor-overlay.hidden{display:none!important}
.v118-editor{width:min(620px,100%);max-height:calc(100dvh - 36px);overflow:auto;padding:24px!important;background:#fff;display:flex;flex-direction:column;gap:16px}
.v118-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #e5ecf5;padding-bottom:16px}
.v118-editor-head h3{font-size:19px;color:#18385b;margin:5px 0}
.v118-editor-head p{font-size:11px;line-height:1.5}
.v118-editor>label{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:800;color:#25446a}
.v118-editor input,.v118-editor textarea{width:100%;border:1px solid #cfdbec;border-radius:12px;padding:12px;color:#193454;background:white;font-weight:500}
.v118-editor-tip{background:#eff4fc;padding:11px 13px;border-radius:11px;border:1px solid #d9e4f2;color:#637997;font-size:11px;line-height:1.6}
.v118-editor-actions{justify-content:flex-end;position:sticky;bottom:0;background:#fff;padding-top:12px;border-top:1px solid #e8eef6}
@media(max-width:700px){.v118-master-reasons{padding:14px}.v118-master-head,.v118-master-item{align-items:stretch;flex-direction:column}.v118-master-index{width:32px}.v118-master-actions{justify-content:flex-end}.v118-editor{padding:18px!important}}
/* Do not show a blank history card before the first HR decision. */
#reviewHistory:empty{display:none!important}

/* ===== END: assets/v118-review-reasons.css ===== */

/* ===== 20. ORIGINAL SOURCE: assets/duty-schedule-v119.css ===== */
/* AttendanceOS v119 — MOD & BA schedule, Navy / Sapphire / Gold */
#view-modba{display:block;min-width:0;max-width:100%;padding-bottom:24px}
#view-modba.hidden{display:none!important}
#view-modba *,.duty-dialog-wrap *{box-sizing:border-box}
.duty-topbar{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:23px 24px;background:linear-gradient(115deg,#fff,#f4f7fc);border:1px solid #d6e1ef;border-radius:20px;box-shadow:0 10px 24px rgba(20,40,70,.055);margin-bottom:16px}
.duty-kicker{display:block;letter-spacing:.15em;font-size:10px;color:#bb8a42;font-weight:900;margin-bottom:6px}
.duty-topbar h2{color:#193556;letter-spacing:-.04em;font-size:24px;line-height:1.28;margin:0}
.duty-topbar p{font-size:12px;color:#6e8099;margin-top:6px;max-width:590px}
.duty-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.duty-actions .btn{min-height:38px;border-radius:11px}
.duty-month-field{font-size:11px;font-weight:800;color:#5b6f8b;display:flex;align-items:center;gap:9px}
.duty-month-field input{min-width:146px;height:39px;padding:8px;border:1px solid #ced9eb;border-radius:11px;background:#fff;color:#28496d}
.duty-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px;max-width:750px}
.duty-switch button{display:flex;align-items:center;text-align:left;gap:12px;padding:13px 17px;cursor:pointer;border:1px solid #d9e3ee;border-radius:16px;background:#fff;color:#213b5c;transition:background .16s,border .16s,box-shadow .16s}
.duty-switch button[aria-selected=true]{border-color:#2e5e9c;background:#edf3fb;box-shadow:inset 0 0 0 1px #2e5e9c,0 5px 16px rgba(22,65,118,.09)}
.duty-tab-mark{width:43px;height:43px;flex:0 0 43px;display:grid;place-items:center;border-radius:13px;background:#e7edf8;color:#2c5d99;font-weight:900;font-size:15px}
.duty-switch [aria-selected=true] .duty-tab-mark{background:#224b82;color:#fff}
.duty-switch b{font-size:13px;display:block;color:#203b5a}
.duty-switch small{font-size:11px;display:block;margin-top:4px;color:#7a8aa0}
.duty-info{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#f4f7fd;border:1px solid #dce5f1;border-radius:14px;padding:12px 17px;font-size:11px;color:#5d7290;margin-bottom:14px}
.duty-chip{font-weight:850;color:#254f85;background:#e6eef9;border-radius:10px;padding:6px 10px}
.duty-note{flex:1;text-align:right}
.duty-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;background:#fff;border:1px solid #d6e1ee;border-radius:16px 16px 0 0}
.duty-toolbar h3{color:#1b3959;font-size:17px;letter-spacing:-.02em}
.duty-toolbar p{font-size:11px;color:#70819a;margin-top:4px}
.duty-scroll{overflow:auto;max-height:min(67vh,740px);border:1px solid #d6e1ee;border-top:0;border-radius:0 0 15px 15px;background:#fff;scrollbar-gutter:stable;overscroll-behavior:auto}
.duty-table{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content;font-size:11px;color:#233d5d;table-layout:auto}
.duty-table th,.duty-table td{height:52px;border-right:1px solid #e0e7f1;border-bottom:1px solid #e7edf4;padding:5px;text-align:center}
.duty-table thead th{position:sticky;top:0;z-index:6;background:#17385e!important;color:#fff!important;min-width:48px;padding:10px 4px;border-bottom:2px solid #c9a35f}
.duty-table .duty-person-th{left:0;z-index:9;min-width:295px;text-align:left;padding-left:15px}
.duty-table tbody th{position:sticky;left:0;z-index:5;min-width:295px;background:#fdfefe;text-align:left}
.duty-table tbody tr:nth-child(2n) th{background:#f5f8fc}
.duty-table tbody tr:nth-child(2n) td{background:#fafcfe}
.duty-table tbody td.duty-cell-on{background:#f9edce!important}
.duty-table tbody td.duty-cell-other{background:#f4f6fa!important}
.duty-table .duty-total-th{min-width:58px}
.duty-table .duty-total{font-weight:900;color:#234e85;font-size:15px;background:#eaf1fa!important}
.duty-person{display:flex;align-items:center;gap:10px;min-width:0;padding:0 8px}
.duty-avatar{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#e7effb;color:#2c5d99;font-weight:900}
.duty-person>div{min-width:0;flex:1}
.duty-person strong{font-size:12px;color:#1b375a;display:block}
.duty-person small{font-size:10px;color:#7d8ca3;display:block;line-height:1.45}
.duty-remove{border:0;background:#fff0f1;color:#a34f5b;font-size:17px;font-weight:800;border-radius:9px;min-width:27px;height:27px;cursor:pointer}
.duty-day-button{display:grid;place-items:center;width:34px;height:34px;margin:0 auto;border:1px solid #e0e8f3;border-radius:10px;background:transparent;color:#99a9bf;font-size:16px;font-weight:850;cursor:pointer;transition:background .16s,color .16s}
.duty-day-button:not(:disabled):hover{background:#e1ebfa;color:#254e86;border-color:#b6c8e2}
.duty-cell-on .duty-day-button{background:#e4c983;border-color:#d7b66a;color:#192e48}
.duty-cell-other .duty-day-button{color:#c1cad9}
.duty-day-button:disabled{cursor:default}
.duty-weekday{display:block;font-size:9px;opacity:.8;letter-spacing:.04em}
.duty-day{display:block;font-size:14px;margin-top:4px}
.duty-date-month{display:block;font-size:9px;color:#bfcbde}
.duty-empty{text-align:center!important;color:#7c8da3;padding:38px!important}
.duty-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;margin-top:16px}
.duty-note-card,.duty-approval-card{padding:17px 18px;background:#fff;border:1px solid #d8e2ee;border-radius:16px;min-width:0}
.duty-note-card strong{display:block;color:#1b395c;font-size:12px;margin-bottom:8px}
.duty-note-card textarea{width:100%;min-height:90px;padding:11px;border:1px solid #d5e0ed;border-radius:12px;font-size:12px;color:#304a69;resize:vertical}
.duty-note-card span{display:block;margin-top:7px;color:#7d8da3;font-size:10px}
.duty-approval-title{font-size:11px;letter-spacing:.06em;color:#526886;font-weight:850;text-transform:uppercase}
.duty-signature-line{height:63px;border-bottom:1px solid #a8b9cf;margin-bottom:9px}
.duty-approval-card input{display:block;width:100%;border:1px solid #d9e2ed;background:#fafdff;padding:9px 11px;border-radius:10px;margin-top:7px;color:#254467;font-size:11px}
.duty-lastbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:13px;padding:12px 16px}
.duty-lastbar p{font-size:11px;color:#7c8ba0;line-height:1.6}
.duty-feedback{min-height:20px;font-size:11px;color:#267e62;padding:2px 16px}
.duty-feedback.error{color:#b54b51;background:none;padding:2px 16px}
.duty-dialog-wrap{z-index:130!important}
.duty-dialog{width:min(560px,100%)!important;max-height:90vh;overflow:auto;padding:20px!important;background:#fff!important;border-radius:20px!important}
.duty-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:19px}
.duty-dialog-head h3{font-size:19px;color:#1b385c;margin:0}
.duty-dialog-head p{font-size:11px;color:#7b8ba2;margin-top:6px}
.duty-dialog label{display:block;margin:12px 0;font-size:12px;font-weight:750;color:#4b6384}
.duty-dialog input,.duty-dialog select{display:block;width:100%;height:42px;margin-top:7px;padding:10px 12px;border:1px solid #d0dce9;border-radius:10px;color:#203e62;background:#fff}
.duty-dialog small{font-size:11px;color:#7286a2;line-height:1.5;display:block;margin-top:8px}
.duty-dialog-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;border-top:1px solid #e6edf5;padding-top:17px}
.duty-confirm-block{background:#fff6e6;border:1px solid #ebd5a8;border-radius:12px;padding:10px 13px;margin:14px 0}
.duty-confirm-block label{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:11px}
.duty-confirm-block input{width:17px;height:17px;flex-shrink:0;margin:0}
.duty-confirm-block.duty-error{border-color:#bd6a68;background:#fff0ef}
.duty-form-note{font-size:11px;color:#71829b;margin:10px 0}
@media(max-width:1050px){.duty-topbar{flex-direction:column;align-items:stretch}.duty-actions{justify-content:flex-start}.duty-note{text-align:left}.duty-footer-grid{grid-template-columns:1fr 1fr}.duty-note-card{grid-column:1/-1}}
@media(max-width:700px){.duty-topbar{padding:18px}.duty-topbar h2{font-size:20px}.duty-switch{grid-template-columns:1fr 1fr}.duty-switch button{padding:10px;gap:7px}.duty-tab-mark{flex-basis:30px;width:30px;height:30px;font-size:10px}.duty-switch b{font-size:11px}.duty-switch small{font-size:9px}.duty-toolbar{padding:14px;flex-direction:column;align-items:stretch}.duty-info{font-size:10px}.duty-table .duty-person-th,.duty-table tbody th{min-width:205px}.duty-person{padding:0 1px;gap:6px}.duty-avatar{width:26px;height:26px;flex-basis:26px}.duty-person strong{font-size:11px}.duty-person small{font-size:9px}.duty-scroll{max-height:64vh}.duty-footer-grid{grid-template-columns:1fr}.duty-note-card{grid-column:auto}.duty-lastbar{flex-direction:column;align-items:stretch}.duty-actions .btn{padding:8px 11px;font-size:10px}}

.duty-toolbar-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){.duty-toolbar-buttons{width:100%}.duty-toolbar-buttons .btn{flex:1}}

/* v120 — Single position-level employee picker for both MOD and BA */
.duty-level-picker{display:grid;gap:7px;margin-top:4px}
.duty-level-picker>label{margin:6px 0 7px}
.duty-level-picker select,.duty-level-picker input{margin-top:8px}
.duty-level-picker select:disabled,.duty-level-picker input:disabled{background:#f1f4f9!important;color:#8796ac!important;cursor:not-allowed}
.duty-level-helper{margin:0;padding:11px 12px;background:#f3f7fe;border:1px solid #dae6f5;border-radius:12px;color:#526e91;font-size:11px;line-height:1.55}
.duty-level-results{font-size:11px;color:#2b5d9a;font-weight:750;padding:9px 11px;background:#f7f9fd;border-radius:10px;border:1px solid #e0e8f3}
#dutyParticipantSubmit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
#dutyPositionLevel:focus-visible,#dutyEmployeeSelect:focus-visible{outline:3px solid #91b0e8;outline-offset:2px}
@media(max-width:700px){.duty-dialog{max-height:calc(100dvh - 24px)!important}.duty-level-picker{gap:4px}}
.duty-level-picker select:not(:disabled),.duty-level-picker input:not(:disabled){background:#ffffff!important;color:#193656!important;border-color:#cfdbed!important;opacity:1!important}
.duty-level-picker select option{color:#183457;background:#fff}

/* ===== END: assets/duty-schedule-v119.css ===== */

/* ===== 21. ORIGINAL SOURCE: assets/dw-manning-v120.css ===== */
/* AttendanceOS v120 — DW Manning Regulation, Sapphire/Navy/Gold */
#view-dwcontrol .dw120-manning-dock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 25px 22px}
#view-dwcontrol .dw120-manning-dock>div{min-width:0;border-radius:15px;border:1px solid #dce5ef;background:#f7fafe;padding:15px 16px;display:flex;flex-direction:column;gap:6px}
#view-dwcontrol .dw120-manning-dock>div:first-child{background:linear-gradient(145deg,#fff8ed,#fffdf9);border-color:#e9cc9b}
#view-dwcontrol .dw120-manning-dock small{font-size:10px;color:#6c7f99;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
#view-dwcontrol .dw120-manning-dock strong{font-size:24px;line-height:1.15;font-weight:900;color:#172f50}
#view-dwcontrol .dw120-manning-dock span{color:#7287a1;font-size:11px;line-height:1.6}
#view-dwcontrol .dw120-policy-pill{display:inline-flex;align-items:center;max-width:120px;justify-content:center;padding:7px 9px;border-radius:10px;font-size:10px;font-weight:800;line-height:1.35;background:#ebf7f2;border:1px solid #c9e6da;color:#187051;text-align:center}
#view-dwcontrol .dw120-policy-pill.need_occupancy,#view-dwcontrol .dw120-policy-pill.quota_unset,#view-dwcontrol .dw120-policy-pill.range_unregulated,#view-dwcontrol .dw120-policy-pill.no_regulation{background:#fff7e9;border-color:#efd9ae;color:#8b631f}
#view-dwcontrol .dw120-policy-pill.regulated:not(:empty){border-color:#c9e6da}
#view-dwcontrol .dw120-regulation-row{background:#f7fafc}
#view-dwcontrol .dw120-regulation-row td{white-space:normal;min-width:104px}
#view-dwcontrol .dw70-negative{color:#b34743!important;font-weight:900}
#view-dwcontrol .dw70-important th{color:#23476f}
#view-dwcontrol .dw70-budget-table{min-width:1020px}
#dwManningPolicySettings .dw120-policy-editor{padding:22px 23px}
#dwManningPolicySettings .dw120-policy-banner{display:flex;flex-direction:column;gap:7px;background:#f5f8fd;border-left:3px solid #bd9a56;border-radius:11px;padding:16px;border-top:1px solid #dce6f2;border-right:1px solid #dce6f2;border-bottom:1px solid #dce6f2}
#dwManningPolicySettings .dw120-policy-banner strong{color:#223c60;font-size:13px}
#dwManningPolicySettings .dw120-policy-banner span{color:#617995;line-height:1.65;font-size:12px}
#dwManningPolicySettings .dw120-policy-formtop{display:grid;grid-template-columns:minmax(190px,.5fr) 1fr;gap:14px;margin:18px 0}
#dwManningPolicySettings .dw120-policy-formtop label,#dwManningPolicySettings .dw120-band-heading label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:800;color:#496384}
#dwManningPolicySettings input{border:1px solid #cad9eb;background:white;border-radius:11px;min-height:42px;padding:10px 12px;color:#1b3455;max-width:100%;box-sizing:border-box}
#dwManningPolicySettings .dw120-policy-bands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#dwManningPolicySettings .dw120-band-card{background:#fbfcff;border:1px solid #dbe5f0;border-radius:16px;padding:18px;min-width:0;box-shadow:0 8px 22px rgba(20,45,80,.035)}
#dwManningPolicySettings .dw120-band-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;padding-bottom:15px;border-bottom:1px solid #e9eef5}
#dwManningPolicySettings .dw120-band-heading>div:first-child{flex:1;min-width:0}
#dwManningPolicySettings .dw120-band-heading span{display:block;font-size:10px;font-weight:900;color:#bf9754;letter-spacing:.09em;margin-bottom:9px}
#dwManningPolicySettings .dw120-band-heading input{width:100%;}
#dwManningPolicySettings .dw120-band-range{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
#dwManningPolicySettings .dw120-band-range label{min-width:80px}
#dwManningPolicySettings .dw120-band-range input{width:90px}
#dwManningPolicySettings .dw120-quota-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
#dwManningPolicySettings .dw120-quota-field{display:flex;align-items:center;justify-content:space-between;gap:9px;border:1px solid #e2e9f3;border-radius:10px;padding:10px;background:white;font-size:11px;color:#375374;font-weight:700}
#dwManningPolicySettings .dw120-quota-field>span{flex:1;min-width:0;overflow-wrap:anywhere}
#dwManningPolicySettings .dw120-quota-field input{width:68px;min-width:68px;min-height:37px;padding:8px 7px;text-align:center;font-weight:800}
#dwManningPolicySettings .dw120-policy-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0 22px}
#dwManningPolicySettings #dw120PolicyMessage{color:#196445;font-size:11px;line-height:1.6}
#dwManningPolicySettings #dw120PolicyMessage.error{color:#a63b43;background:#fff1f1;border-radius:8px;padding:5px 8px}
#dwManningPolicySettings .dw120-policy-history{border-top:1px solid #e5ebf3;padding-top:16px}
#dwManningPolicySettings .dw120-policy-history h4{font-size:13px;margin:0 0 12px}
#dwManningPolicySettings .dw120-policy-history p{font-size:11px;margin-top:12px;color:#7286a0}
#dwManningPolicySettings .dw120-policy-revision{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 14px;border:1px solid #e0e8f3;border-radius:10px;margin:8px 0;background:white}
#dwManningPolicySettings .dw120-policy-revision strong{display:block;color:#1d3b62;font-size:12px}
#dwManningPolicySettings .dw120-policy-revision small{display:block;color:#73869e;font-size:11px;line-height:1.55}
@media(max-width:1050px){#dwManningPolicySettings .dw120-policy-bands{grid-template-columns:1fr}}
@media(max-width:700px){#view-dwcontrol .dw120-manning-dock{grid-template-columns:1fr;padding:0 13px 16px}#dwManningPolicySettings .dw120-policy-formtop{grid-template-columns:1fr}#dwManningPolicySettings .dw120-band-heading{align-items:stretch;flex-direction:column}#dwManningPolicySettings .dw120-quota-grid{grid-template-columns:1fr}#dwManningPolicySettings .dw120-policy-editor{padding:14px}#dwManningPolicySettings .dw120-policy-actions{align-items:stretch;flex-direction:column}#dwManningPolicySettings .dw120-policy-actions .btn{width:100%}}

/* ===== END: assets/dw-manning-v120.css ===== */

/* ===== 22. ORIGINAL SOURCE: assets/navigation-v122.css ===== */
/* AttendanceOS v122 — visual stability + low-cost navigation.
   Limited to navigation; forms, tables, colors and authorization untouched. */
@media(min-width:1061px){
  /* Animating flex-basis forced the entire (potentially huge) roster to reflow
     every animation frame. Instant resize is less janky on desktop. */
  #shell .sidebar{transition:none!important}
}
/* No page fade after a potentially slow data fetch: no second repaint. */
#shell .view.v113-enter,#shell .view.v90-enter{animation:none!important}
/* Avoid moving sidebar rows or redrawing shadows on page selection. */
#shell #nav .nav-item{transition:background-color .1s linear,color .1s linear,border-color .1s linear!important}
#shell #nav .nav-item:hover,#shell #nav .nav-item:active{transform:none!important}
/* Prevent the loading bar from inserting/removing 12px of layout on every route. */
#shell .content{position:relative}
#shell #pageLoading.v53-page-loading{position:absolute;top:0;left:0;right:0;z-index:5;margin:0!important;min-height:3px;max-height:3px;border-radius:0;pointer-events:none}
#shell #pageLoading.v53-page-loading.hidden{display:none!important}
/* Sticky roster thousands of cells should scroll without GPU backdrop blur. */
#shell .roster-table th.sticky-emp,#shell .roster-table td.sticky-emp{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* ===== END: assets/navigation-v122.css ===== */

/* ===== 23. ORIGINAL SOURCE: assets/roster-clipboard-v123.css ===== */
/* v123 — compact keyboard-and-touch clipboard actions, without new transitions. */
#view-roster .v123-copy-button{white-space:nowrap;min-height:38px}
#view-roster .v123-copy-button:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}
#view-roster .v123-copy-button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){#view-roster .v123-copy-button{flex:1 1 116px}}
@media(prefers-reduced-motion:reduce){#view-roster .v123-copy-button{transition:none!important}}

/* ===== END: assets/roster-clipboard-v123.css ===== */

/* ===== 24. ORIGINAL SOURCE: assets/double-shift-v126.css ===== */
/* WN Attendance v126 — streamlined two-row double shift roster cells and editor */
.wn-shift-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.05;font-size:10px;font-weight:800;white-space:nowrap}
.wn-shift-stack span+span{border-top:1px solid currentColor;padding-top:2px}
.shift-pill:has(.wn-shift-stack){min-height:40px;height:auto;padding:3px 4px}
.wn-double-shift{border:1px solid var(--border,#d9e1ed);background:var(--surface,#f8fafc);border-radius:12px;padding:12px;margin-top:12px;color:inherit}
.wn-double-checkbox{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer}
.wn-double-checkbox input{width:17px;height:17px;accent-color:#196b94}
.wn-double-fields{margin-top:12px;display:grid;gap:10px}
.wn-double-fields.hidden{display:none}
.wn-double-fields p{font-size:12px;line-height:1.5;margin:0;opacity:.85}
.wn-double-fields strong{font-size:12px}
.wn-double-times{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wn-double-times label,.wn-double-secondary{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600}
.wn-double-times input,.wn-double-secondary select{min-width:0;width:100%;border:1px solid #b8c6d5;background:var(--surface,#fff);color:inherit;border-radius:8px;padding:8px;box-sizing:border-box}
.wn-double-fields small{opacity:.75;line-height:1.4}
.roster-dialog{max-height:min(92vh,900px);overflow-y:auto}

/* v128: transparent master-time suggestion and gap feedback */
.wn-time-master-hint{display:block;margin-top:-5px;font-size:11px;line-height:1.5;opacity:1;color:#3d6492}
.wn-time-master-hint[data-level="warning"]{color:#a46919}
.wn-align-btn{font-size:12px;justify-self:start;min-height:32px;padding:6px 10px}
.wn-shift-continuity{font-size:12px;line-height:1.5;margin:0;padding:9px 11px;border-radius:8px;border:1px solid #b7c9e0;background:#eaf1fc;color:#234775}
.wn-shift-continuity[data-level="warning"]{border-color:#f0cb94;background:#fff8e9;color:#8a520e}
.wn-shift-continuity[data-level="success"]{border-color:#a9dbbb;background:#effbf2;color:#176136}

/* ===== END: assets/double-shift-v126.css ===== */

/* ===== 25. ORIGINAL SOURCE: assets/timeline-review-v127.css ===== */
/* WN Attendance v127 — direct HR verification from Live Timeline. */
#timelineItems .v127-review-link{display:block;margin-top:6px;color:#335eaf;font-size:11px;font-weight:800;letter-spacing:.01em;white-space:nowrap}
#timelineItems .feed-item[data-review-id]:hover .v127-review-link,#timelineItems .feed-item[data-review-id]:focus-visible .v127-review-link{color:#0d387c;text-decoration:underline}
#timelineItems .feed-item[data-review-id]:focus-visible{outline:2px solid #3974c9;outline-offset:-3px}
@media(max-width:720px){#timelineItems .v127-review-link{font-size:10px;white-space:normal}}

/* ===== END: assets/timeline-review-v127.css ===== */

/* ===== 26. ORIGINAL SOURCE: assets/wn135-roster-layout.css ===== */
/* WN Attendance v135: accessible, clean reorder affordances. */
#view-roster .wn135-group-row td{padding:9px 13px!important;text-align:left!important}
#view-roster .wn135-group-inner{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:24px;white-space:normal}
#view-roster .wn135-group-count{font-size:11px;white-space:nowrap;color:#34557e}
#view-roster .wn135-group-actions{margin-left:auto;display:flex;gap:6px;align-items:center}
#view-roster .wn135-group-action{border:1px solid #c8d7eb;border-radius:8px;background:#fff;color:#355781;font-size:10px;font-weight:750;padding:6px 9px;cursor:pointer;white-space:nowrap}
#view-roster .wn135-group-action:hover{background:#f4f8ff;border-color:#8fa9d2}
#view-roster .wn135-group-action.danger{color:#b53a41;border-color:#ebc3c7}
#view-roster .wn135-group-action.danger:hover{background:#fff1f2}
#view-roster .wn135-drag-handle{font-size:18px;line-height:24px;min-width:18px;color:#7892b0;cursor:grab;user-select:none;touch-action:none;outline-offset:1px}
#view-roster .wn135-drag-handle:active{cursor:grabbing;color:#205fac}
#view-roster .wn135-drag-handle:focus-visible{outline:2px solid #377de5;border-radius:4px}
#view-roster .wn135-dragging{opacity:.45}
#view-roster .wn135-drop-before td{box-shadow:inset 0 3px 0 #3777d9!important}
#view-roster .wn135-drop-after td{box-shadow:inset 0 -3px 0 #3777d9!important}
#view-roster .wn135-drop-group td{outline:2px solid #3777d9;outline-offset:-2px;background:#dceafd!important}
.wn135-modal{position:fixed;inset:0;background:rgba(10,27,53,.58);z-index:10000;display:flex;justify-content:center;align-items:center;padding:20px}
.wn135-modal.hidden{display:none!important}
.wn135-modal-card{width:min(440px,100%);background:white;border:1px solid #dee7f4;border-radius:18px;padding:26px;box-shadow:0 24px 75px #0e23404d;color:#173453}
.wn135-modal-eyebrow{font-size:10px;font-weight:800;color:#5a79a7;letter-spacing:.11em;margin-bottom:11px}
.wn135-modal-card h3{font-size:21px;margin:0 0 8px;color:#183456}
.wn135-modal-card p{font-size:12px;line-height:1.6;color:#6681a1;margin:0 0 18px}
.wn135-modal-card label{font-size:12px;font-weight:800;color:#294d7b;display:block}
.wn135-modal-card input{display:block;border-radius:10px;border:1px solid #cddcef;padding:12px 13px;width:100%;margin-top:9px;font:inherit;color:#183456}
.wn135-modal-card input:focus{border-color:#497dd7;outline:2px solid #d6e5fb}
.wn135-modal-buttons{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}
.wn135-modal-buttons .wn135-danger{background:#bb3342!important;color:#fff!important;border-color:#bb3342!important}
.wn135-error{margin-top:12px;padding:10px 12px;border-radius:8px;color:#ad293d;background:#fff0f1;font-size:12px}
@media(max-width:680px){#view-roster .wn135-group-inner{gap:6px;flex-wrap:wrap}#view-roster .wn135-group-actions{margin-left:0}.wn135-modal-card{padding:20px}}
@media print{#view-roster .wn135-drag-handle,#view-roster .wn135-group-actions,#wn135AddGroup{display:none!important}}

/* v136: Department-specific roster grouping inside Settings. */
.wn136-settings{margin-top:16px}.wn136-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:16px 18px}.wn136-filters label{display:grid;gap:7px;font-size:12px;font-weight:700;flex:1;min-width:200px}.wn136-filters select{min-height:41px;padding:8px 12px;border:1px solid #cddcef;border-radius:10px;background:white;color:#1b3457}.wn136-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:4px 18px 12px;font-size:12px;color:#587395}.wn136-group-list{display:grid;gap:8px;padding:0 18px 18px}.wn136-group{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid #d8e4f2;background:#f6f9fe;border-radius:12px;padding:10px 14px}.wn136-group-name{display:flex;align-items:center;gap:10px;min-width:0}.wn136-group-name strong{color:#183b68;font-size:13px}.wn136-group-name small{font-size:11px;color:#7187a4}.wn136-group-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.wn136-group-actions button{font-size:12px;border:1px solid #c8d9ed;background:white;color:#315784;padding:6px 10px;border-radius:8px;cursor:pointer}.wn136-group-actions button:hover:not(:disabled){border-color:#729de0;background:#e9f2ff}.wn136-group-actions button:disabled{opacity:.35;cursor:not-allowed}.wn136-delete{color:#ad3544!important}.wn136-settings .info-banner{margin:0 18px 16px}.wn136-empty{color:#7c8fa9;font-size:12px;padding:10px 0}@media(max-width:650px){.wn136-group{flex-wrap:wrap}.wn136-group-actions{margin-left:auto}}

/* ===== END: assets/wn135-roster-layout.css ===== */

/* ===== 27. ORIGINAL SOURCE: assets/telegram-v130.css ===== */
.wn130-link-panel,.wn130-settings{margin:16px 0;padding:20px;border:1px solid #dce6f4;border-radius:15px;background:#fff;box-shadow:0 6px 25px rgba(21,43,72,.045)}
.wn130-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.wn130-hint{font-size:12px;color:#667995;line-height:1.65;margin:12px 0 0}
.wn130-command{font:600 13px ui-monospace,Consolas,monospace;color:#153b69;background:#edf3fc;border:1px solid #cdddf3;padding:13px;border-radius:10px;overflow-wrap:anywhere;margin-top:10px;user-select:all}
.wn130-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:16px}
.wn130-grid label{display:flex;flex-direction:column;gap:7px;color:#2c486c;font-size:12px;font-weight:700}
.wn130-grid input[type=text]{width:100%;padding:12px;border:1px solid #d4e0ed;border-radius:10px;min-width:0}
.wn130-grid .wn130-switch{flex-direction:row;align-items:center;gap:9px;font-weight:600}
.wn130-linked{display:grid;gap:7px}.wn130-linked-row{display:flex;align-items:center;justify-content:space-between;border:1px solid #dfebf5;border-radius:9px;padding:8px 12px}.wn130-linked-row span{display:flex;flex-direction:column;gap:3px}.wn130-linked-row small{font-size:11px;color:#62738e}
@media(max-width:700px){.wn130-grid{grid-template-columns:1fr}.wn130-toolbar .btn{flex:1 1 auto}}

.wn132-token-row{margin-top:16px}
.wn132-token-row>label{display:block;font-size:12px;color:#2c486c;font-weight:700;margin-bottom:7px}
.wn132-token-controls{display:flex;gap:8px;align-items:center}
.wn132-token-controls input{min-width:0;flex:1;padding:12px;border:1px solid #d4e0ed;border-radius:10px;font:600 13px ui-monospace,Consolas,monospace;letter-spacing:.015em}
.wn132-token-controls .btn{white-space:nowrap}
@media(max-width:700px){.wn132-token-controls{flex-wrap:wrap}.wn132-token-controls input{flex:1 1 100%}}

/* ===== END: assets/telegram-v130.css ===== */

/* ===== 28. ORIGINAL SOURCE: assets/attendance-exceptions-v138.css ===== */
/* v138: precise attendance status and a calm HR triage workspace. */
#view-daily .wn138-exceptions{margin:16px 0 18px;padding:18px;border:1px solid #d9e4f2;border-radius:16px;background:#fbfdff;box-shadow:0 2px 12px rgba(24,53,93,.035)}
#view-daily .wn138-exception-top{display:flex;align-items:start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
#view-daily .wn138-exception-top h4{font-size:15px;line-height:1.35;margin:0 0 4px;color:#173154;font-weight:800}
#view-daily .wn138-exception-top p{font-size:12px;line-height:1.55;color:#526985;margin:0;max-width:680px}
#view-daily .wn138-exception-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
#view-daily .wn138-exception-btn{display:flex;gap:12px;align-items:center;text-align:left;min-height:64px;border:1px solid #d6e2ef;border-radius:12px;padding:11px 13px;background:#fff;color:#244062;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
#view-daily .wn138-exception-btn:hover{border-color:#8ba9df;background:#f5f9ff}
#view-daily .wn138-exception-btn:focus-visible{outline:3px solid #8fb7ff;outline-offset:2px}
#view-daily .wn138-exception-btn[aria-pressed="true"]{background:#eaf2ff;border-color:#4a79d4;box-shadow:0 0 0 1px #4a79d4 inset}
#view-daily .wn138-exception-btn strong{font-size:23px;line-height:1.1;font-weight:800;font-variant-numeric:tabular-nums;color:#1b396b}
#view-daily .wn138-exception-btn span{font-size:11px;line-height:1.35;font-weight:750}
#view-daily .wn138-exception-btn small{display:block;font-size:10px;margin-top:3px;color:#647a96;font-weight:500}
#view-daily .wn138-exception-btn[data-exception="review"] strong{color:#b44d29}
#view-daily .wn138-exception-btn[data-exception="conflict"] strong{color:#9e5122}
#view-daily .wn138-exception-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;color:#596e88;font-size:11px}
#view-daily .wn138-exception-foot button{border:1px solid #cbd9ee;border-radius:9px;background:#fff;color:#24519a;font-size:11px;font-weight:800;padding:8px 11px;cursor:pointer}
#view-daily .wn138-exception-foot button:focus-visible{outline:3px solid #8fb7ff}
#view-daily .daily-table th{font-size:11px;letter-spacing:.035em}
#view-daily .daily-table td{font-size:12px}
#view-daily .daily-detail{white-space:nowrap;min-height:34px}
#view-daily .wn138-overlap{margin-top:8px;font-weight:700;color:#99561c;font-size:12px}
/* Don't shift navigation targets horizontally during mouse movement. */
#shell .nav-item:hover{transform:none!important}
@media(max-width:1100px){#view-daily .wn138-exception-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){#view-daily .wn138-exceptions{padding:13px}#view-daily .wn138-exception-grid{grid-template-columns:1fr 1fr;gap:7px}#view-daily .wn138-exception-btn{padding:9px;gap:8px}#view-daily .wn138-exception-btn strong{font-size:20px}#view-daily .wn138-exception-btn span{font-size:10px}}
@media(prefers-reduced-motion:reduce){#view-daily .wn138-exception-btn{transition:none}}
#view-daily .wn138-sync{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:100px;border:1px solid #d5dfec;font-size:11px;font-weight:750;color:#47617d;background:#f6f9fd}
#view-daily .wn138-sync::before{content:"";width:7px;height:7px;border-radius:50%;background:#8296b1;flex:0 0 auto}
#view-daily .wn138-sync[data-state="healthy"]{background:#ecf8f1;color:#17694a;border-color:#b7e5cc}
#view-daily .wn138-sync[data-state="healthy"]::before{background:#21976a}
#view-daily .wn138-sync[data-state="delayed"]{background:#fff7e8;color:#8d5318;border-color:#efd7a7}
#view-daily .wn138-sync[data-state="delayed"]::before{background:#cc8725}
#view-daily .wn138-sync[data-state="syncing"]{background:#edf3ff;color:#245ba7;border-color:#c6d7f5}
#view-daily .wn138-sync[data-state="syncing"]::before{background:#4d78df}
#view-daily .wn138-sync[data-state="pending"]{background:#f3f6fa;color:#4d6785}

/* ===== END: assets/attendance-exceptions-v138.css ===== */

/* ===== 29. ORIGINAL SOURCE: assets/wn140-smooth-boot.css ===== */
/* WN Attendance v140: stable, accessible cold-load transition.
   Prevents the account-scope clearing stage from painting half-empty HR dashboards.
   The view and API scope checks continue to run underneath. */
.wn140-boot{position:fixed;inset:0;z-index:2147481000;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(145deg,#edf3fc 0%,#f8fbff 62%,#e9f0fc 100%);opacity:1;visibility:visible;transition:opacity .23s ease,visibility .23s ease;pointer-events:auto}
.wn140-boot.wn140-boot-done{opacity:0;visibility:hidden;pointer-events:none}
.wn140-boot-card{display:flex;align-items:center;flex-direction:column;gap:12px;width:min(390px,100%);text-align:center;background:white;border:1px solid #dce7f5;border-radius:20px;padding:30px 27px 27px;box-shadow:0 18px 45px rgba(23,55,105,.10);font-family:inherit;color:#183756}
.wn140-emblem{display:grid;place-items:center;border-radius:15px;background:#142948;width:64px;height:64px;font:800 23px system-ui,sans-serif;color:#f6faff;letter-spacing:-1px;box-shadow:0 7px 17px rgba(28,61,105,.16)}
.wn140-emblem span{color:#cba45c}
.wn140-boot-card>strong{font-size:21px;letter-spacing:-.35px;line-height:1.3;color:#173354}
.wn140-boot-description{font-size:12px;line-height:1.6;color:#607998}
.wn140-boot-progress{position:relative;display:block;overflow:hidden;width:180px;height:4px;background:#e7eefb;border-radius:6px;margin-top:8px}
.wn140-boot-progress i{position:absolute;top:0;left:0;height:100%;width:36%;background:#3c64d8;border-radius:6px;animation:wn140progress 1.15s ease-in-out infinite alternate}
@keyframes wn140progress{from{transform:translateX(0)}to{transform:translateX(175%)}}
@media(prefers-reduced-motion:reduce){.wn140-boot,.wn140-boot-progress i{transition:none;animation:none}}

/* ===== END: assets/wn140-smooth-boot.css ===== */

/* ===== 30. ORIGINAL SOURCE: assets/roster-change-control-v141.css ===== */
.wn141-shade[hidden]{display:none!important}
.wn141-shade{position:fixed;inset:0;z-index:99999;background:rgba(10,24,47,.65);display:grid;place-items:center;padding:18px}
.wn141-card{width:min(680px,96vw);max-height:90vh;overflow-y:auto;background:#fff;color:#143052;border:1px solid #d6e2f2;border-radius:17px;box-shadow:0 22px 80px #08132650;padding:24px}
.wn141-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid #e7edf7;padding-bottom:15px}
.wn141-head small{font-size:10px;letter-spacing:1.5px;color:#3869bc;font-weight:800}.wn141-head h3{margin:5px 0 0;font-size:21px}
.wn141-content{padding:12px 0;max-height:55vh;overflow:auto}.wn141-content textarea{width:100%;border:1px solid #c7d7ec;border-radius:10px;padding:12px;resize:vertical;box-sizing:border-box}
.wn141-info{color:#4c6280;font-size:13px;line-height:1.5}.wn141-footer,.wn141-actions{display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
.wn141-request{padding:15px;background:#f5f8ff;border:1px solid #dae5f7;border-radius:12px;margin-bottom:10px}.wn141-request-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.wn141-request-head small{color:#657d9d}.wn141-request p{font-size:13px}.wn141-change{padding:5px 0;border-top:1px dashed #e0e7f2;font-size:12px}.wn141-approve{background:#e4f7ed;color:#136b40}.wn141-reject{background:#fff0f1;color:#9a3245}.wn141-empty{padding:30px;text-align:center;color:#62738d}.wn141-error{color:#ba3245}

/* ===== END: assets/roster-change-control-v141.css ===== */

/* ===== v143 • REGENERATED ENTERPRISE WORKSPACE COMPONENTS =====
   Single source of truth for new nav, dashboard, roster command and settings directory.
   Legacy business screens retain their own tested styles. Avoid transitions of layout size. */
#nav{display:flex;flex-direction:column;gap:8px;min-height:0;padding:0 8px 12px}
#nav .wn143-nav-group{min-width:0;flex:none}
#nav .wn143-nav-heading{width:100%;min-height:36px;display:flex;align-items:center;gap:9px;cursor:pointer;border:0;border-radius:9px;background:transparent;color:#9fb0ca;text-align:left;padding:8px 10px;font-size:10px;font-weight:800;letter-spacing:1.1px;line-height:1.3}
#nav .wn143-nav-heading:hover,#nav .wn143-nav-heading:focus-visible{color:#fff;background:#223a5a;outline:none}
#nav .wn143-nav-heading-icon{font-size:15px;width:19px;text-align:center;color:#d0ad6b}
#nav .wn143-nav-heading-text{flex:1}
#nav .wn143-nav-count{font-size:10px;color:#91a8c9;border-radius:10px;padding:2px 5px;background:#223851;min-width:18px;text-align:center;letter-spacing:0}
#nav .wn143-nav-chevron{color:#a7b8d0;font-size:16px;transition:transform .15s ease}
#nav .wn143-expanded .wn143-nav-chevron{transform:rotate(180deg)}
#nav .wn143-nav-items{display:none;flex-direction:column;gap:3px;padding:2px 0 6px}
#nav .wn143-expanded .wn143-nav-items{display:flex}
#nav .wn143-nav-items .nav-item{width:100%;margin:0;flex-shrink:0;min-height:40px;padding:10px 12px 10px 16px;text-align:left}
#nav .wn143-nav-items .nav-item[hidden],#nav .wn143-nav-items .nav-item.permission-hidden{display:none!important}
#nav .wn143-nav-items .nav-item.active{border-radius:10px}
#nav .wn143-nav-group[hidden]{display:none!important}
.wn143-overview-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 16px;margin-bottom:14px;background:#fff;border:1px solid #d8e4f1;border-radius:13px;color:#203d63}
.wn143-overview-copy h2{color:#203d63;font-size:14px;line-height:1.2;margin:3px 0;font-weight:800}
.wn143-overview-copy p{color:#69819f;margin:0;line-height:1.4;font-size:11px}
.wn143-overline{color:#a07c40;font-size:9px;font-weight:900;letter-spacing:1.25px}
.wn143-overview-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.wn143-overview-action{border:1px solid #d3e0f0;border-radius:9px;background:#f6f9fd;color:#244b7b;padding:9px 12px;font-weight:700;font-size:11px;white-space:nowrap;cursor:pointer}
.wn143-overview-action span{margin-right:7px;color:#bb8e4a}
.wn143-overview-action:hover,.wn143-overview-action:focus-visible{background:#e6eef9;outline:2px solid #a4c0e4}
.wn143-overview-action[hidden]{display:none}
.wn143-overview-footnote{display:flex;align-items:center;gap:9px;font-size:11px;color:#506685;margin:-4px 4px 16px}
.wn143-overview-footnote>span:first-child{font-weight:800;color:#5677aa}

/* WN v144 — regenerated Roster Workspace component (Actual / Estimasi / Outsource).
   Presentation only; all existing action IDs and attendance rules are retained. */
#view-roster .panel>.panel-head{padding:14px 18px 12px;gap:12px;align-items:center}
#view-roster .panel>.panel-head h3{font-size:16px;line-height:1.25;margin:0}
#view-roster .panel>.panel-head p{margin-top:4px;font-size:10px}
#view-roster .panel>.panel-head .inline-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}
#view-roster .panel>.panel-head .inline-actions .btn{min-height:33px;padding:7px 11px;font-size:11px;border-radius:9px}
#view-roster .wn144-roster-meta{display:flex;align-items:stretch;gap:10px;margin:0 18px 11px}
#view-roster .wn144-roster-meta .wn143-roster-help{flex:0 1 39%;margin:0;padding:8px 11px;border-radius:9px;align-items:center}
#view-roster .wn144-roster-meta .wn143-roster-help strong{font-size:11px;margin:0}
#view-roster .wn144-roster-meta .wn143-roster-help small{font-size:10px;line-height:1.4;margin-top:2px}
#view-roster .wn144-roster-meta .payroll-period-banner{flex:1;min-width:0;margin:0;padding:8px 11px;gap:9px;border-radius:9px}
#view-roster .wn144-roster-meta .payroll-period-banner .btn{min-height:32px;padding:6px 10px;font-size:10px;white-space:nowrap}
#view-roster .wn143-roster-command{margin:0 18px 8px;padding:12px 13px 10px;background:#f8fbff;border:1px solid #dce6f2;border-radius:13px}
#view-roster .wn143-roster-command h3{font-size:11px;margin:0 0 8px;letter-spacing:.015em}
#view-roster .wn143-roster-command .filters{display:grid;grid-template-columns:minmax(130px,1fr) minmax(165px,1fr) minmax(155px,1fr) minmax(190px,1.25fr);gap:10px;margin:0 0 10px;padding:0;background:transparent;border:0;align-items:end}
#view-roster .wn143-roster-command .filters label{min-width:0;width:100%;font-size:10px}
#view-roster .wn143-roster-command .filters select,#view-roster .wn143-roster-command .filters input{min-height:35px;width:100%;max-width:100%;font-size:11px;margin-top:5px}
#view-roster .wn143-roster-command .v37-toolbar{margin:0;padding:9px 10px;gap:9px;background:#fff;border-radius:10px;align-items:center}
#view-roster .v37-primary-actions{flex:1 1 680px;display:flex;flex-wrap:wrap;gap:7px;align-items:center;overflow:visible}
#view-roster .wn144-actions-main,#view-roster .wn144-actions-selection{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
#view-roster .wn144-actions-main{padding-right:10px;border-right:1px solid #dce5f1}
#view-roster .v37-primary-actions .btn{min-height:33px;padding:7px 10px;font-size:10px;white-space:nowrap;border-radius:8px;box-shadow:none}
#view-roster .v37-selection-count{font-size:10px;white-space:nowrap;color:#55708d}
#view-roster .v37-density-control{display:flex;gap:7px;font-size:10px;white-space:nowrap;margin-left:auto}
#view-roster .v37-density-control select{min-height:33px;padding:6px 9px;font-size:10px}
#view-roster .wn143-shortcut-help{margin-top:7px;font-size:9px;gap:6px;color:#71839b}
#view-roster .wn143-shortcut-help kbd{padding:2px 6px;font-size:9px}
#view-roster .v38-quick-hint{display:none;margin:0 18px 8px;padding:7px 11px;font-size:10px;border-radius:9px}
#view-roster.v37-block-active .v38-quick-hint{display:block}
#view-roster .v43-legend-head{margin:0 18px 8px;min-height:37px;padding:6px 10px;background:#f6f9fd;border:1px solid #dde7f2;border-radius:9px}
#view-roster .v43-legend-head strong{font-size:11px}
#view-roster .v43-legend-head small{font-size:9px;margin-top:2px}
#view-roster .v43-legend-head .btn{min-height:29px;padding:5px 10px;font-size:10px}
#view-roster .roster-shift-legend{margin:0 18px 10px;max-height:138px;padding:9px;border-radius:9px}
#view-roster .roster-scroll{margin:0 18px 14px}
#view-roster #rosterHead th.v37-date-head{padding:4px 3px!important;min-width:63px;vertical-align:middle;background:#153051!important;color:#fff!important}
#view-roster #rosterHead th.v37-date-head.v37-weekend{background:#203b58!important}
#view-roster #rosterHead th.v37-date-head.v58-today-header{background:#305b95!important;border-bottom:3px solid #eac471!important}
#view-roster #rosterHead .v37-date-btn{color:#fff!important}
#view-roster #rosterHead .v37-date-btn .wn144-date-number{color:#fff!important;font-size:17px!important;line-height:1.1}
#view-roster #rosterHead .v37-date-btn small{color:#c7d9f4!important;font-size:9px!important;font-weight:750;line-height:1.2}
#view-roster #rosterHead th.v58-today-header .v37-date-btn small{color:#ffedbe!important}
#view-roster #rosterHead .v58-today-label{font-size:7px;padding:2px 5px;background:#d2a751;color:#172c47}
#view-roster #rosterHead th.sticky-emp{padding:12px 11px!important;white-space:nowrap}
@media(max-width:1180px){#view-roster .wn144-roster-meta{flex-wrap:wrap}#view-roster .wn144-roster-meta .wn143-roster-help{flex:1 1 260px}#view-roster .wn144-roster-meta .payroll-period-banner{flex:1 1 420px}#view-roster .wn143-roster-command .filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#view-roster .panel>.panel-head{padding:12px;align-items:flex-start}#view-roster .panel>.panel-head .inline-actions{justify-content:flex-start}#view-roster .wn144-roster-meta{margin:0 10px 9px}#view-roster .wn144-roster-meta .wn143-roster-help,#view-roster .wn144-roster-meta .payroll-period-banner{flex:1 1 100%}#view-roster .wn143-roster-command{margin:0 10px 8px;padding:10px}#view-roster .wn143-roster-command .filters{gap:8px}#view-roster .wn144-actions-main{border:0;padding-right:0}#view-roster .v37-primary-actions{flex:1 1 100%}#view-roster .v37-density-control{margin:0}#view-roster .v43-legend-head,#view-roster .roster-shift-legend,#view-roster .v38-quick-hint{margin-left:10px;margin-right:10px}#view-roster #rosterHead .v37-date-btn .wn144-date-number{font-size:16px!important}}
.wn143-roster-help{display:flex;gap:10px;align-items:flex-start;background:#fff8e9;color:#75551e;border:1px solid #edd9aa;padding:11px 14px;border-radius:10px;margin:0 0 12px}
.v67-estimate-mode .wn143-roster-help{display:none}
.wn143-roster-help-icon{font-size:16px}
.wn143-roster-help strong{display:block;font-size:12px;margin-bottom:3px}
.wn143-roster-help small{display:block;font-size:11px;line-height:1.55}
.wn143-roster-command{padding:0;border:0;background:transparent;margin-bottom:12px;min-width:0}
.wn143-roster-command h3{margin:0 0 10px;font-size:13px;color:#203e68;font-weight:800}
.wn143-roster-command .filters{margin:0 0 13px}
.wn143-roster-command .v37-toolbar{margin:0;min-width:0}
.wn143-shortcut-help{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:11px;color:#526b90;font-size:10px}
.wn143-shortcut-help kbd{font-family:inherit;font-size:10px;font-weight:650;border:1px solid #d6e1f0;border-radius:6px;background:#fff;color:#2d5285;padding:4px 7px}
.wn143-settings-find{padding:15px 17px 12px;border:1px solid #d9e4f2;border-radius:13px;background:#f5f9ff;margin-bottom:13px}
.wn143-settings-find label{display:block;color:#233e62;font-size:12px;font-weight:800;margin-bottom:7px}
.wn143-settings-find input{display:block;max-width:100%;width:100%;height:41px;border:1px solid #c5d8ec;border-radius:10px;padding:0 12px;background:#fff;font-size:13px;color:#193557}
.wn143-settings-find input:focus{outline:2px solid #7daaf0;border-color:#3976c5}
.wn143-settings-find small{display:block;color:#647994;font-size:11px;margin-top:7px;line-height:1.4}
#settingsTabs .settings-tab.wn143-search-hidden{display:none!important}
@media(max-width:1080px){.wn143-overview-head{flex-direction:column}.wn143-overview-actions{justify-content:flex-start}}
@media(max-width:760px){#nav{padding:0 4px 12px}.wn143-overview-head{padding:16px}.wn143-overview-copy h2{font-size:19px}.wn143-overview-actions{width:100%}.wn143-overview-action{flex:1;text-align:center;padding:9px 8px}.wn143-roster-command{padding:11px}.wn143-shortcut-help{gap:5px}}
@media(prefers-reduced-motion:reduce){#nav .wn143-nav-chevron{transition:none}}
/* ===== END v143 REGENERATED ENTERPRISE WORKSPACE COMPONENTS ===== */

/* v145 — roster-only layout-aware zoom controls. Affects no report/print output. */
#view-roster .wn145-zoom{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-left:auto;padding-left:10px;border-left:1px solid #dce6f3}
#view-roster .wn145-zoom>label{font-size:10px;font-weight:850;color:#344f73;white-space:nowrap;margin-right:3px}
#view-roster .wn145-zoom>.btn{min-height:32px;padding:6px 9px;font-size:11px;box-shadow:none}
#view-roster #wn145ZoomOut,#view-roster #wn145ZoomIn{min-width:31px;font-size:17px;font-weight:850;padding:3px 7px}
#view-roster #wn145ZoomSelect{height:32px;min-width:90px;padding:5px 8px;font-size:11px;font-weight:800;border:1px solid #cbd9ef;border-radius:8px;background:#fff;color:#193f78}
#view-roster .wn145-zoom-status{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:1px;min-width:72px;line-height:1.2;margin-left:2px}
#view-roster .wn145-zoom-status strong{font-size:11px;color:#234c82;font-variant-numeric:tabular-nums}
#view-roster .wn145-zoom-status small{font-size:9px;color:#7185a0;max-width:175px;text-align:right}
#view-roster .roster-scroll>.roster-table{transform:none!important;transform-origin:initial!important}
@media(max-width:1000px){#view-roster .wn145-zoom{margin:0;padding:7px 0 0;border:0;flex-basis:100%}#view-roster .wn145-zoom-status{margin-left:auto}}
@media print{#view-roster .roster-scroll>.roster-table{zoom:1!important}#view-roster .wn145-zoom{display:none!important}}

/* v148 — regenerated approval dialog and department policy workspace. */
.wn147-hr-bell{display:flex;align-items:center;gap:7px;border:1px solid #cdd9ed;background:#fff;color:#234678;min-height:38px;padding:8px 12px;border-radius:11px;font-weight:750;font-size:12px;cursor:pointer}
.wn147-hr-bell[hidden],.wn147-bell-count[hidden]{display:none!important}
.wn147-hr-bell:hover{background:#eff5ff}.wn147-has-pending{border-color:#dbb266;background:#fff9ee}
.wn147-bell-count{display:inline-grid;place-items:center;background:#cf503b;color:#fff;min-width:20px;height:20px;border-radius:100px;font-size:11px;padding:0 4px}
.wn147-lock-settings.v14-tab-hidden{display:none!important}
.wn147-lock-settings{padding:20px!important;max-width:100%}
.wn148-lock-heading{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid #e4eaf4}
.wn148-eyebrow{font-size:10px;color:#5473aa;letter-spacing:1.2px;font-weight:900}
.wn148-lock-heading h3{font-size:19px;line-height:1.25;margin:6px 0 8px;color:#183258}
.wn148-lock-heading p{margin:0;color:#627592;font-size:12px;line-height:1.6;max-width:760px}
.wn148-lock-summary{white-space:nowrap;border:1px solid #d5e4f8;background:#eff5ff;border-radius:20px;padding:8px 12px;font-size:11px;color:#244d86;font-weight:800}
.wn148-lock-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:10px;font-size:12px;color:#213e65}
.wn148-lock-toolbar span{font-size:11px;color:#70839b}
.wn147-lock-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.wn147-lock-row{display:flex;align-items:center;gap:10px;min-width:0;background:#f7faff;border:1px solid #dfe7f4;border-radius:12px;padding:13px 14px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.wn147-lock-row:hover{border-color:#97b7ee;background:#f1f6ff}
.wn147-lock-row:has(input:focus-visible){outline:2px solid #4778e3;outline-offset:2px}
.wn147-lock-row input{width:18px;height:18px;accent-color:#335fd7;flex:none}
.wn147-lock-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.wn147-lock-copy strong{font-size:13px;color:#1d3a62;overflow-wrap:anywhere}
.wn147-lock-copy small{font-size:10px;color:#60748f;line-height:1.4}
.wn148-lock-pill{font-size:9px;font-weight:850;letter-spacing:.4px;min-width:52px;text-align:center;color:#21549b;background:#e2edff;border-radius:8px;padding:5px 6px;flex:none}
.wn148-lock-pill[data-locked="false"]{background:#fff2df;color:#90612a}
.wn147-lock-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wn147-lock-actions .btn{min-height:36px}
.wn147-lock-actions .wn147-lock-status{flex:1;text-align:right;margin:0;color:#446794;font-size:11px}
.wn147-lock-actions .wn148-unsaved{box-shadow:0 0 0 2px rgba(58,105,210,.15)}
.wn148-lock-note{background:#f3f7fd;border:1px solid #e1e9f4;border-radius:10px;padding:11px 13px;margin-top:14px;display:flex;gap:8px;color:#657b96;font-size:11px;line-height:1.55}
.wn147-detail{background:#f6f9fe;border:1px solid #dce6f6;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:11px}
.wn148-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px}
.wn147-detail-line{display:flex;flex-direction:column;gap:3px;font-size:12px;line-height:1.4;word-break:break-word}
.wn147-detail-line span{font-size:10px;color:#6c7c99}.wn147-detail-line strong{color:#1c345a;white-space:pre-wrap}
.wn148-reason-block{padding:10px 12px;background:#fff;border:1px solid #e0e9f6;border-radius:10px}
.wn148-reason-block small{font-size:10px;letter-spacing:.7px;font-weight:800;color:#5b7192}
.wn148-reason-block p{font-size:12px;color:#23416b;font-weight:650;margin:5px 0 0;white-space:pre-wrap}
.wn147-detail-title{font-size:13px;margin:3px 0 0;color:#1a3861}
.wn147-detail-scroller{max-height:185px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.wn147-change-row{border-radius:10px;padding:10px 12px;background:#fff;border:1px solid #dbe6f6;display:flex;flex-direction:column;gap:4px;font-size:12px}
.wn147-change-row span{font-weight:800;color:#1f4b83}
.wn147-change-row small{color:#547094}
.wn147-reason-label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:12px;margin-top:5px;color:#203c63}
.wn147-reason-label textarea{width:100%;border:1px solid #c7d7ec;border-radius:9px;padding:12px;font-weight:400;resize:vertical;min-height:88px;background:#fff}
.wn147-reason-label textarea:focus-visible{outline:2px solid #3f6bda;outline-offset:1px}
.wn148-input-hint{font-size:10px;color:#6a7b96;margin:-5px 0 0}
.wn148-decision-feedback{font-size:12px;line-height:1.5;margin:0;padding:9px 12px;border-radius:9px;border:1px solid #efc8c4;background:#fff0ef;color:#9d2b25}
.wn148-decision-feedback[hidden]{display:none!important}
.wn148-decision-feedback[data-state="loading"]{background:#eff5ff;border-color:#c9ddf9;color:#23538e}
.wn148-decision-feedback[data-state="success"]{background:#e8f8ee;border-color:#bee2cd;color:#1e7149}
.wn148-decision-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.wn148-decision-actions button:disabled{opacity:.65;cursor:wait}
.wn147-back{display:flex;margin-top:12px}
.wn147-status{font-size:12px;font-weight:800;color:#265b9b}
@media(max-width:1100px){.wn147-lock-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.wn147-lock-list{grid-template-columns:1fr}.wn148-lock-heading{flex-direction:column}.wn148-lock-summary{align-self:flex-start}.wn148-lock-toolbar{align-items:flex-start;flex-direction:column}.wn147-lock-actions .wn147-lock-status{text-align:left;flex-basis:100%}.wn148-detail-grid{grid-template-columns:1fr}.wn147-bell-text{display:none}.wn147-hr-bell{padding:8px;min-width:40px}}

/* v149: Admin can edit protected Actual Roster with an audited reason, not HRD approval. */
#view-roster .wn143-roster-help.wn149-admin-bypass{background:#edf8f2;border-color:#b9e4cd;color:#155c3c}
#view-roster .wn143-roster-help.wn149-admin-bypass strong{color:#155c3c}

/* v153 — Scheduled departmental Telegram report controls */
.wn153-panel{margin:20px 0 16px;padding:18px;border:1px solid #dce6f4;border-radius:16px;background:#f9fbff}
.wn153-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}
.wn153-heading h4{margin:0 0 5px;font-size:14px;color:#15335a}
.wn153-heading p{margin:0;color:#6b7f99;font-size:11px}
.wn153-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.wn153-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:750;color:#385274;min-width:0}
.wn153-form input:not([type=checkbox]),.wn153-form select{width:100%;height:39px;border:1px solid #d5e2f4;border-radius:9px;padding:0 10px;background:#fff;color:#173658;font:inherit;min-width:0}
.wn153-form .wn153-wide{grid-column:span 3}
.wn153-form .wn153-enabled{display:flex;align-items:center;flex-direction:row;gap:8px;padding-top:17px}
.wn153-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0}
.wn153-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.wn153-card{border:1px solid #dbe6f5;background:#fff;border-radius:12px;padding:13px;min-width:0}
.wn153-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.wn153-card strong{display:block;color:#17365b;font-size:12px}
.wn153-card small{display:block;color:#68819f;font-size:10px;margin-top:5px;line-height:1.5}
.wn153-card-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.wn153-card-actions button{font-size:10px;padding:7px 9px}
.wn153-preview{margin-top:12px;padding:14px;background:#eaf1fb;border:1px solid #d6e4f5;border-radius:12px}
.wn153-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:350px;overflow:auto;font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;color:#16314e}
@media(max-width:900px){.wn153-form{grid-template-columns:repeat(2,minmax(0,1fr))}.wn153-form .wn153-wide{grid-column:span 2}}
@media(max-width:560px){.wn153-form,.wn153-list{grid-template-columns:1fr}.wn153-form .wn153-wide{grid-column:span 1}}

/* v154 — Department Telegram report filters, integrated layout */
.wn154-status-field{border:1px solid #dae6f5;border-radius:11px;padding:12px 13px;background:#fff;margin:12px 0 0}
.wn154-status-field legend{font-weight:800;color:#25476b;font-size:12px;padding:0 5px}
.wn154-status-list{display:flex;flex-wrap:wrap;gap:8px 15px}
.wn154-status-list label{display:flex;gap:7px;align-items:center;font-size:11px;font-weight:650;color:#345578;white-space:nowrap;cursor:pointer}
.wn154-status-list input{accent-color:#3565d3;width:15px;height:15px}
.wn154-status-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.wn154-status-actions button{font-size:11px;padding:7px 10px}

/* v155 · integrated roster change annotation */
.shift-pill.wn155-has-note{position:relative;box-shadow:inset 0 0 0 1px #d3a956}
.wn155-note-mark{position:absolute;right:0;top:-1px;font-size:9px;line-height:1;background:#fbdf93;color:#6e4c11;padding:2px;border-radius:0 5px 0 5px;pointer-events:none}
.wn155-change-section{margin:13px 0;padding:13px;border-radius:12px;border:1px solid #d7e2f3;background:#f7faff;color:#20395a}
.wn155-change-section[hidden],.wn155-prior-note[hidden]{display:none!important}
.wn155-change-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}
.wn155-change-heading small{font-size:11px;color:#59718e}
.wn155-change-fields{display:grid;grid-template-columns:minmax(140px,1fr) minmax(220px,2fr);gap:10px}
.wn155-change-fields label{font-size:12px;font-weight:700;display:flex;flex-direction:column;gap:5px}
.wn155-change-fields select,.wn155-change-fields textarea{width:100%;border:1px solid #c9d6e9;border-radius:9px;background:white;padding:8px;font:inherit;font-weight:400;box-sizing:border-box}
.wn155-notify-choice{display:flex;align-items:center;gap:7px;font-size:12px;margin-top:9px}
.wn155-prior-note{margin-top:8px;padding:8px;background:#eaf0fa;border-radius:8px;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:580px){.wn155-change-fields{grid-template-columns:1fr}}

/* v155: department roster sharing controls */
#wn155RosterTelegramOpen[hidden]{display:none!important}
.wn155-publish-btn{background:#173e75;color:#fff;border-color:#173e75;font-weight:700}
.wn155-publish-modal{width:min(810px,95vw);max-height:90vh;overflow-y:auto}
.wn155-publish-modal .modal-head{display:flex;align-items:center;justify-content:space-between}
.wn155-publish-modal h3{margin:5px 0}
.wn155-publish-modal .muted{font-size:12px;color:#56718e}
.wn155-publish-fields{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin:14px 0}
.wn155-publish-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#244466}
.wn155-publish-fields :is(select,input){height:39px;padding:8px 10px;border-radius:9px;border:1px solid #cfdaed;background:white;max-width:100%}
.wn155-publish-actions{display:flex;align-items:center;gap:14px;margin-bottom:10px}.wn155-publish-actions span{font-size:12px;color:#456483}
.wn155-publish-preview{white-space:pre-wrap;overflow:auto;max-height:320px;margin:0;padding:14px;background:#f5f8fc;color:#152b46;border:1px solid #dde6f3;border-radius:11px;font:12px/1.55 ui-monospace,Consolas,monospace;overflow-wrap:anywhere}
.wn155-publish-footer{margin-top:12px;display:flex;justify-content:flex-end}
.wn155-publish-error{font-size:12px;color:#ad2525;background:#fff0f0;padding:9px;border-radius:7px}
.wn155-publish-error[hidden]{display:none!important}
@media(max-width:600px){.wn155-publish-fields{grid-template-columns:1fr}.wn155-publish-modal{max-height:90dvh}}

/* v157 · responsive roster publication date-range controls */
.wn155-publish-fields{grid-template-columns:1.3fr 1.2fr 1fr 1fr;align-items:end}
.wn155-publish-fields>.hidden{display:none!important}
.wn157-publish-period-hint{font-size:12px;color:#3f5f83;margin:0 0 12px;line-height:1.5}
.wn155-publish-preview{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6;max-height:350px;white-space:pre-wrap}
@media(max-width:800px){.wn155-publish-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.wn155-publish-fields{grid-template-columns:1fr}}

/* WN Attendance v161 Telegram Center */
#view-telegram{max-width:100%;}#view-telegram .wn161-head{margin:8px 0 20px}#view-telegram .wn161-head h2{margin:5px 0;font-size:1.65rem;color:#102a4f}#view-telegram .wn161-head p{margin:4px 0;color:#6a7d98}.wn161-kicker{font-size:11px;letter-spacing:.12em;color:#2667c9;font-weight:800}.wn161-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px;border-bottom:1px solid #d8e3f4;padding-bottom:12px}.wn161-tabs button{border:1px solid #d4e1f3;border-radius:10px;padding:10px 15px;background:white;color:#375779;cursor:pointer;font-weight:650}.wn161-tabs button.active{background:#2364c5;color:white;border-color:#2364c5}.wn161-feedback{min-height:21px;font-size:13px;margin:4px 0 10px}.wn161-panel{border:1px solid #d7e2f0;border-radius:16px;background:#fff;margin-bottom:16px;overflow:hidden}.wn161-section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 20px;border-bottom:1px solid #e1eaf5}.wn161-section-head h3{margin:0 0 3px;font-size:17px;color:#17355a}.wn161-section-head p{margin:0;color:#6c8099;font-size:13px}.wn161-inner{padding:20px;border-bottom:1px solid #e5ecf6}.wn161-inner:last-child{border-bottom:0}.wn161-inner h4{margin:0 0 16px;font-size:15px}.wn161-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.wn161-grid label{font-size:12px;font-weight:700;color:#445e81;display:flex;flex-direction:column;gap:7px}.wn161-grid select,.wn161-grid input{width:100%;min-height:42px;padding:8px 12px;border:1px solid #c9daed;border-radius:10px;font-size:14px;background:white;color:#142d50}.wn161-grid .wn161-check{flex-direction:row;align-items:center;gap:9px}.wn161-grid .wn161-check input{width:auto;min-height:auto}.wn161-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0}.wn161-muted{font-size:12px;line-height:1.5;color:#687f9d}.wn161-rule-list{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}.wn161-rule{padding:15px;border:1px solid #d8e3f4;border-radius:12px;background:#fbfdff}.wn161-rule strong{display:block;color:#163b68}.wn161-preview{padding:15px;border:1px solid #d1dff0;border-radius:12px;background:#f6faff}.wn161-preview pre{max-height:440px;overflow:auto;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;color:#23415c}.wn161-history{font-size:12px;width:100%}.wn161-history th,.wn161-history td{padding:10px;text-align:left;border-bottom:1px solid #e5edf5;overflow-wrap:anywhere}.wn161-history th{background:#f5f9fd}#view-telegram [hidden]{display:none!important}#view-telegram .wn130-settings{margin:0;max-width:none}#view-telegram .wn153-panel{margin:0;max-width:none}#view-telegram .wn130-settings .wn153-panel{display:none}
@media(max-width:750px){.wn161-grid,.wn161-rule-list{grid-template-columns:1fr}.wn161-section-head{padding:14px}.wn161-inner{padding:14px}.wn161-tabs{gap:5px}.wn161-tabs button{padding:9px 11px;font-size:12px}}

/* v162 Manual Telegram late report period filter */
#view-telegram .wn162-period-selector{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-bottom:10px}
#view-telegram .wn162-period-selector label{display:flex;flex-direction:column;gap:7px;min-width:195px;max-width:300px;flex:1;font-size:12px;font-weight:700;color:#445e81}
#view-telegram .wn162-period-selector select,#view-telegram .wn162-period-selector input{min-height:42px;width:100%;padding:8px 12px;border:1px solid #c9daed;border-radius:10px;font-size:14px;background:white;color:#142d50}
#view-telegram .wn162-active-period{display:inline-flex;padding:8px 12px;margin-bottom:15px;background:#eef5ff;border:1px solid #d5e5fa;border-radius:9px;color:#285784;font-size:12px;font-weight:650}
#view-telegram .wn162-period-selector [hidden]{display:none!important}

/* v163: separate early and late report selectors in one Telegram Center panel. */
.wn163-type-switch{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.wn163-type-switch .btn{white-space:normal;text-align:center}
.wn161-preview pre{white-space:pre-wrap;word-break:break-word;line-height:1.55}

/* v165: HR verified missing IN, separately labeled from raw fingerprint. */
.wn165-manual-in{border:1px solid #d4e0f5;background:#f0f6ff;border-radius:12px;padding:12px 14px;margin:12px 0;display:grid;gap:9px;color:#203d61}.wn165-manual-in[hidden]{display:none}.wn165-manual-check{display:flex;align-items:flex-start;gap:9px;cursor:pointer}.wn165-manual-check input{margin-top:4px;flex:none}.wn165-manual-check span{display:grid;gap:4px}.wn165-manual-check small{font-weight:400;color:#5c738f}.wn165-manual-in label[for=reviewManualInTime]{font-size:12px;font-weight:700;display:grid;gap:6px}.wn165-manual-in input[type=time]{width:min(200px,100%);padding:9px;border:1px solid #b9cbea;border-radius:8px;background:white}.wn165-manual-in p{font-size:11px;line-height:1.5;color:#506986;margin:0}.wn165-manual-in input:disabled{opacity:.55}

.wn165-hr-badge{display:block;margin-top:4px;color:#215a91;font-size:10px;font-weight:700;white-space:nowrap}

/* v166 regenerated attendance review modal */
#reviewModal .v82-review-dialog{width:min(1180px,calc(100vw - 28px));max-height:calc(100dvh - 28px);border-radius:24px;overflow:hidden}
#reviewModal .v82-modal-header{padding:22px 26px}
#reviewModal .v82-modal-actions{padding:18px 26px}
#reviewModal .v82-review-body{padding:22px 26px;background:#f8fbff}
#reviewModal .v106-review-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:18px;align-items:start}
#reviewModal .v106-review-column{border:1px solid #dde7f3;border-radius:20px;background:#fff;padding:18px;box-shadow:0 8px 24px rgba(16,43,76,.04)}
#reviewModal .v106-column-label{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:#4b6ca7;margin-bottom:12px}
#reviewModal .v82-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#reviewModal .v82-compare-item{border:1px solid #e2ebf6;border-radius:15px;background:#f7fbff;padding:14px}
#reviewModal .v82-compare-item small{display:block;font-size:11px;color:#5b7595}
#reviewModal .v82-compare-item strong{display:block;margin-top:7px;color:#12345b;font-size:18px;line-height:1.3}
#reviewModal .v82-current,#reviewModal .v82-history,#reviewModal .v82-review-reason{border-radius:15px;border:1px solid #e4edf8;background:#f8fbff;padding:14px}
#reviewModal .v82-history-empty{margin:0;color:#617b9a;font-size:12px}
#reviewModal .v82-table-scroll{max-height:280px;overflow:auto;border:1px solid #e1e9f5;border-radius:15px;background:#fff}
#reviewModal .v82-table{width:100%;border-collapse:collapse}
#reviewModal .v82-table th{position:sticky;top:0;background:#133764;color:#fff;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:11px 12px;z-index:1}
#reviewModal .v82-table td{padding:11px 12px;border-top:1px solid #ecf1f7;font-size:12px;color:#27405f;vertical-align:top}
#reviewModal .v118-review-action{display:grid;gap:12px}
#reviewModal #reviewReasonTemplate,#reviewModal #reviewConfirmedShift,#reviewModal #reviewManualInTime,#reviewModal #reviewDecisionReason{width:100%;border:1px solid #c9d8ea;border-radius:12px;background:#fff;color:#17385f}
#reviewModal #reviewReasonTemplate,#reviewModal #reviewConfirmedShift,#reviewModal #reviewManualInTime{padding:11px 12px}
#reviewModal #reviewDecisionReason{padding:12px 13px;min-height:100px}
#reviewModal .v118-review-readonly{margin:14px 0 0;padding:13px 14px;border-radius:13px;border:1px solid #f0dfba;background:#fff8ea;color:#8a6830}
#reviewModal .v82-modal-header p{max-width:720px}
@media(max-width:900px){#reviewModal .v106-review-layout{grid-template-columns:1fr}#reviewModal .v82-compare{grid-template-columns:1fr 1fr}}
@media(max-width:640px){#reviewModal .v82-review-body{padding:14px}#reviewModal .v82-modal-header,#reviewModal .v82-modal-actions{padding:14px 16px}#reviewModal .v106-review-column{padding:13px}#reviewModal .v82-compare{grid-template-columns:1fr}}
