:root{--primary:#2f6fed;--primary-text:#fff;--sidebar-bg:#fff;--sidebar-text:#334d6e;--bg:#f3f8fb;--surface:#fff;--text:#16213a;--muted:#8595ab;--border:#e6ecf4;--radius:.875rem;--font:"Inter", system-ui, sans-serif;--green:#1c8f5b;--amber:#d98a06;--red:#dc3b3b;--blue:#2f6fed;--violet:#7c5cdb;--danger:var(--red);--success:var(--green)}:root,.theme-scope{--primary-soft:color-mix(in srgb, var(--primary) 10%, var(--surface));--primary-line:color-mix(in srgb, var(--primary) 30%, var(--surface));--primary-strong:color-mix(in srgb, var(--primary) 82%, #000);--r-lg:calc(var(--radius) + .375rem);--shadow:0 1px 2px #102a580d;--shadow-lg:0 .875rem 1.875rem #102a581f}html{font-size:80%}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:.875rem;line-height:1.5}h1,h2,h3,h4,p{margin:0}h1{letter-spacing:-.02em;font-size:1.5rem;font-weight:800;line-height:1.2}h2{letter-spacing:-.01em;font-size:1.0625rem;font-weight:700}h3{font-size:.875rem;font-weight:700}a{color:var(--primary)}.muted{color:var(--muted)}.small{font-size:.75rem}.strong{font-weight:700}.right{text-align:right}.center{text-align:center}.mt{margin-top:1rem}.mb{margin-bottom:1rem}.nowrap{white-space:nowrap}.btn{border-radius:var(--r-lg);height:2.5rem;font:inherit;cursor:pointer;color:var(--primary-text);white-space:nowrap;background:linear-gradient(135deg, var(--primary), var(--primary-strong));box-shadow:0 .5rem 1.125rem color-mix(in srgb, var(--primary) 28%, transparent);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1.125rem;font-size:.875rem;font-weight:700;text-decoration:none;transition:box-shadow .18s,transform .18s,filter .18s;display:inline-flex}.btn:hover:not(:disabled){box-shadow:0 .625rem 1.375rem color-mix(in srgb, var(--primary) 40%, transparent);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow)}.btn.secondary:hover:not(:disabled){border-color:var(--primary-line);background:var(--primary-soft);color:var(--primary);box-shadow:var(--shadow)}.btn.danger{background:linear-gradient(135deg,#e04848,#c32f2f);box-shadow:0 .5rem 1.125rem #dc3b3b40}.btn.success{background:linear-gradient(135deg,#2cab6f,#168050);box-shadow:0 .5rem 1.125rem #1c8f5b40}.btn.ghost{color:var(--primary);box-shadow:none;background:0 0;padding:0 .625rem}.btn.ghost:hover:not(:disabled){background:var(--primary-soft);box-shadow:none;transform:none}.btn.sm{border-radius:var(--radius);height:2rem;padding:0 .75rem;font-size:.75rem}.btn.block{width:100%}.icon-btn{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);width:2.5rem;height:2.5rem;color:var(--muted);cursor:pointer;box-shadow:var(--shadow);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--primary);border-color:var(--primary-line);background:var(--primary-soft)}input,select,textarea{width:100%;height:2.5rem;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:0 .75rem}textarea{resize:vertical;height:auto;padding:.625rem .75rem}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent);outline:none}input[type=checkbox],input[type=radio]{width:1rem;height:1rem;box-shadow:none;accent-color:var(--primary)}input[type=color]{cursor:pointer;width:3rem;padding:3px}input[type=range]{box-shadow:none;accent-color:var(--primary);padding:0}input[type=file]{height:auto;padding:.4375rem .625rem}.field{flex-direction:column;gap:.3125rem;min-width:0;margin-bottom:.875rem;display:flex}.field>label{color:var(--muted);font-size:.75rem;font-weight:700}.grid2{grid-template-columns:1fr 1fr;gap:0 .875rem;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}.row.nowrap{flex-wrap:nowrap}.spacer{flex:1}.search{width:18.75rem;max-width:100%;position:relative}.search svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:.8125rem;transform:translateY(-50%)}.search input{padding-left:2.375rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0;padding:1.25rem}.card.flat{box-shadow:none}.card.hover{cursor:pointer;transition:box-shadow .18s,transform .18s,border-color .18s}.card.hover:hover{border-color:var(--primary-line);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.card-head{flex-wrap:wrap;align-items:center;gap:.625rem;margin-bottom:.875rem;display:flex}.card-head .spacer{flex:1}.section-title:first-child{margin-top:0}.section-title select{font-size:.875rem;font-weight:600}.section-title{letter-spacing:-.01em;color:var(--text);flex-wrap:wrap;align-items:center;gap:.625rem;margin:1.75rem 0 .875rem;font-size:1.25rem;font-weight:800;display:flex}.section-title .spacer{flex:1}.grid{gap:1rem;display:grid}.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fill,minmax(16.25rem,1fr))}.grid.auto-sm{grid-template-columns:repeat(auto-fill,minmax(11.25rem,1fr))}.split{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:1rem;display:grid}.attendance-row{grid-template-columns:minmax(0,5fr) minmax(0,3.5fr) minmax(0,4fr);align-items:stretch;gap:1rem;display:grid}@media (width<=1100px){.grid.c4,.grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.attendance-row{grid-template-columns:1fr}}@media (width<=640px){.grid.c4,.grid.c3,.grid.c2,.grid2{grid-template-columns:1fr}}.tile{align-items:center;gap:1rem;padding:1.125rem 1.25rem;display:flex}.tile .ico{border-radius:.875rem;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}.tile .val{white-space:nowrap;letter-spacing:-.02em;font-size:1.625rem;font-weight:800;line-height:1}.tile .lbl{color:var(--muted);margin-top:.3125rem;font-size:.8125rem;font-weight:600}button.tile{font:inherit;color:inherit;text-align:left;width:100%}.ico{border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;width:2.625rem;height:2.625rem;display:flex}.tone-blue{color:#2f6fed;background:#eaf1ff}.tone-green{color:#1c8f5b;background:#e5f6ee}.tone-amber{color:#c27c00;background:#fff4dc}.tone-red{color:#dc3b3b;background:#fde9e9}.tone-violet{color:#7c5cdb;background:#f0eaff}.tone-gray{color:#64748b;background:#eef1f6}.tone-brand{background:var(--primary-soft);color:var(--primary)}.insight{flex-direction:column;justify-content:space-between;min-height:11.875rem;padding:1.25rem 1.25rem 1rem;display:flex}.insight .t{color:var(--text);font-size:.9375rem;font-weight:700}.insight .m{color:var(--muted);margin-bottom:.5rem;font-size:.8125rem;font-weight:500}.insight .body{flex:1;justify-content:space-between;align-items:flex-end;gap:.5rem;margin-bottom:.75rem;display:flex}.insight .big{letter-spacing:-.03em;font-size:2.75rem;font-weight:800;line-height:1}.insight .big small{font-size:1.5rem;font-weight:700}.insight .spark{flex-shrink:0;width:6.875rem;height:3.5rem}.insight .hms{align-items:baseline;gap:.875rem;display:flex}.insight .hms b{letter-spacing:-.02em;color:var(--text);font-size:1.75rem;font-weight:800}.insight .hms span{color:var(--muted);margin-left:3px;font-size:.75rem;font-weight:600}.delta{color:var(--muted);align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;display:flex}.delta .chip{border-radius:.375rem;justify-content:center;align-items:center;width:1.375rem;height:1.375rem;display:inline-flex}.delta.good .chip{color:var(--green);border:1.5px solid var(--green);background:#e5f6ee}.delta.bad .chip{color:var(--red);border:1.5px solid var(--red);background:#fde9e9}.delta.good b{color:var(--green)}.delta.bad b{color:var(--red)}.pill{white-space:nowrap;border-radius:62.4375rem;align-items:center;gap:.375rem;padding:3px .625rem;font-size:.6875rem;font-weight:700;display:inline-flex}.pill .d{background:currentColor;border-radius:50%;width:.4375rem;height:.4375rem}.pill.green{color:var(--green);background:#e5f6ee}.pill.amber{color:#c27c00;background:#fff4dc}.pill.red{color:var(--red);background:#fde9e9}.pill.blue{color:var(--blue);background:#eaf1ff}.pill.violet{color:var(--violet);background:#f0eaff}.pill.gray{color:#64748b;background:#eef1f6}.pill.brand{background:var(--primary-soft);color:var(--primary)}.code{color:var(--primary);background:var(--primary-soft);border-radius:.375rem;padding:2px .5rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6875rem;font-weight:700}.alert{border-radius:var(--radius);border:1px solid;margin-bottom:.875rem;padding:.6875rem .875rem;font-weight:500}.alert.error{color:#b42323;background:#fde9e9;border-color:#f5b8b8}.alert.info{background:var(--primary-soft);border-color:var(--primary-line)}.alert.warn{color:#8a5a00;background:#fff4dc;border-color:#f0d28a}.alert.ok{color:#137246;background:#e5f6ee;border-color:#a8dfc3}.empty{text-align:center;color:var(--muted);padding:2.25rem .75rem}.empty svg{opacity:.5;margin:0 auto .5rem;display:block}.skeleton{border-radius:var(--r-lg);background:linear-gradient(90deg,#eef1f6,#f6f8fb,#eef1f6) 0 0/200% 100%;min-height:5.625rem;animation:1.2s infinite sk}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.avatar{color:#fff;letter-spacing:.02em;border-radius:.875rem;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:.9375rem;font-weight:800;display:inline-flex}.avatar.sm{border-radius:.6875rem;width:2.125rem;height:2.125rem;font-size:.75rem}.avatar.lg{width:3.25rem;height:3.25rem;font-size:1.0625rem}.shell{min-height:100%;display:flex}.sidebar{background:var(--sidebar-bg);width:15.625rem;color:var(--sidebar-text);border-right:1px solid var(--border);z-index:30;flex-direction:column;flex-shrink:0;height:100vh;padding:1.125rem .875rem;transition:width .2s;display:flex;position:sticky;top:0;overflow:hidden}.sidebar.collapsed{width:4.75rem}.side-brand{letter-spacing:-.01em;align-items:center;gap:.75rem;min-height:3.25rem;padding:.25rem .5rem 1.25rem;font-size:1.0625rem;font-weight:800;display:flex}.side-brand img{object-fit:contain;max-width:9.375rem;max-height:2.25rem}.side-brand .mark{background:linear-gradient(135deg, var(--primary), var(--primary-strong));width:2.375rem;height:2.375rem;color:var(--primary-text);border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.side-brand span.name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav{flex-direction:column;flex:1;gap:3px;display:flex;overflow-y:auto}.nav a{color:var(--sidebar-text);border-radius:var(--r-lg);white-space:nowrap;align-items:center;gap:.75rem;padding:.6875rem .875rem;font-weight:600;text-decoration:none;display:flex}.nav a svg{opacity:.8;flex-shrink:0}.nav a:hover{background:color-mix(in srgb, var(--sidebar-text) 9%, transparent)}.nav a.active{background:var(--primary);color:var(--primary-text);box-shadow:0 .375rem .875rem color-mix(in srgb, var(--primary) 30%, transparent)}.nav a.active svg{opacity:1}.nav .nav-label{text-transform:uppercase;letter-spacing:.08em;opacity:.5;white-space:nowrap;padding:1rem .875rem .375rem;font-size:.6875rem;font-weight:700}.sidebar.collapsed .nav a{justify-content:center;padding:.75rem 0}.sidebar.collapsed .nav a span,.sidebar.collapsed .nav-label,.sidebar.collapsed .side-brand span.name,.sidebar.collapsed .side-brand img{display:none}.sidebar.collapsed .side-brand{justify-content:center;padding-inline:0}.content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:.875rem;height:4.125rem;padding:0 1.75rem;display:flex;position:sticky;top:0}.topbar .hello{font-weight:700}.topbar .who{position:relative}.who-btn{cursor:pointer;font:inherit;color:inherit;border-radius:var(--r-lg);background:0 0;border:0;align-items:center;gap:.625rem;padding:.25rem;display:flex}.who-btn:hover{background:var(--primary-soft)}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-width:13.125rem;box-shadow:var(--shadow-lg);z-index:40;padding:.375rem;position:absolute;top:calc(100% + .5rem);right:0}.menu .who-info{border-bottom:1px solid var(--border);margin-bottom:.25rem;padding:.625rem .75rem}.menu button,.menu a{width:100%;font:inherit;color:var(--text);text-align:left;border-radius:var(--radius);cursor:pointer;background:0 0;border:0;align-items:center;gap:.625rem;padding:.5625rem .75rem;font-weight:600;text-decoration:none;display:flex}.menu button:hover,.menu a:hover{background:var(--primary-soft);color:var(--primary)}.main{flex:1;width:100%;min-width:0;max-width:93.75rem;margin:0 auto;padding:1.75rem}.page-head{flex-wrap:wrap;align-items:center;gap:.875rem;margin-bottom:1.375rem;display:flex}.page-head .sub{color:var(--muted);margin-top:2px;font-weight:500}.scrim,.burger-only{display:none}@media (width<=860px){.sidebar{transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:16.25rem!important}.sidebar.mobile-open{box-shadow:var(--shadow-lg);transform:none}.sidebar.collapsed .nav a{justify-content:flex-start;padding:.6875rem .875rem}.sidebar.collapsed .nav a span,.sidebar.collapsed .nav-label,.sidebar.collapsed .side-brand span.name,.sidebar.collapsed .side-brand img{display:initial}.scrim.show{z-index:25;background:#0f172a73;display:block;position:fixed;inset:0}.main{padding:1.125rem .875rem}.topbar{padding:0 .875rem}.hide-mobile{display:none}}.overlay{z-index:60;background:#0f172a80;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:calc(var(--r-lg) + .25rem);width:100%;max-width:36.25rem;max-height:92vh;box-shadow:var(--shadow-lg);padding:1.5rem;overflow-y:auto}.modal h2{margin-bottom:1rem;font-size:1.1875rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.login-wrap{background:radial-gradient(circle at 15% 10%, var(--primary-soft), transparent 55%), var(--bg);justify-content:center;align-items:center;min-height:100%;padding:1.25rem;display:flex}.login-card{width:100%;max-width:25.625rem;box-shadow:var(--shadow-lg);padding:1.875rem}.login-card .logo{object-fit:contain;max-width:13.75rem;max-height:3.5rem;margin:0 auto .625rem;display:block}.login-card .mark{background:linear-gradient(135deg, var(--primary), var(--primary-strong));width:3.25rem;height:3.25rem;color:var(--primary-text);border-radius:1rem;justify-content:center;align-items:center;margin:0 auto .75rem;font-size:1.25rem;font-weight:800;display:flex}.login-card h1{text-align:center;margin-bottom:.25rem;font-size:1.375rem}.login-card .sub{text-align:center;margin-bottom:1.375rem}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--r-lg) + 2px);box-shadow:var(--shadow);flex-wrap:wrap;gap:.25rem;margin-bottom:1.25rem;padding:.25rem;display:inline-flex}.tabs button{font:inherit;color:var(--muted);cursor:pointer;border-radius:var(--r-lg);background:0 0;border:0;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:700;display:inline-flex}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--primary);color:var(--primary-text);box-shadow:0 .375rem .875rem color-mix(in srgb, var(--primary) 26%, transparent)}.tabs .count{background:#ffffff47;border-radius:62.4375rem;padding:0 .4375rem;font-size:.6875rem}.tabs button:not(.active) .count{background:var(--primary-soft);color:var(--primary)}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip-btn{border:1px solid var(--border);background:var(--surface);font:inherit;color:var(--muted);cursor:pointer;border-radius:62.4375rem;padding:.375rem .875rem;font-size:.8125rem;font-weight:700}.chip-btn:hover{border-color:var(--primary-line);color:var(--primary)}.chip-btn.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.emp-card{cursor:default;padding:1.25rem;position:relative}.emp-card .status{position:absolute;top:1rem;right:1rem}.emp-head{align-items:center;gap:.875rem;min-width:0;margin-bottom:1rem;padding-right:4.5rem;display:flex}.emp-name{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:800;overflow:hidden}.emp-meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.info-list{flex-direction:column;gap:.5625rem;display:flex}.info-row{color:#5b6b82;align-items:center;gap:.625rem;min-width:0;font-size:.8125rem;font-weight:600;display:flex}.info-row svg{color:#9aa8bd;flex-shrink:0}.info-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-actions{border-top:1px solid var(--border);gap:.375rem;margin-top:1rem;padding-top:.875rem;display:flex}.leave-card{border-radius:calc(var(--r-lg) + .25rem);cursor:pointer;text-align:left;font:inherit;color:inherit;border:0;align-items:center;gap:1.125rem;width:100%;padding:1.25rem;transition:transform .18s,box-shadow .18s;display:flex;box-shadow:0 .25rem 1.5rem #0000000f}.leave-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 .625rem 1.75rem #0000001a}.leave-card:disabled{opacity:.5;cursor:not-allowed}.leave-card .ring{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:3.375rem;height:3.375rem;display:flex;box-shadow:0 2px .5rem #00000014}.leave-card .ring i{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:2.375rem;height:2.375rem;display:flex}.leave-card .name{font-size:.9375rem;font-weight:800}.leave-card .nums{color:#5b6b82;margin-top:3px;font-size:.75rem;font-weight:600}.leave-card .avail{letter-spacing:-.02em;margin-top:.375rem;font-size:1.625rem;font-weight:800;line-height:1}.leave-card .avail small{color:#5b6b82;letter-spacing:0;font-size:.75rem;font-weight:600}.req{border-bottom:1px solid var(--border);align-items:flex-start;gap:.875rem;padding:1rem 0;display:flex}.req:last-child{border-bottom:0;padding-bottom:0}.req:first-child{padding-top:0}.req .grow{flex:1;min-width:0}.req .reason{color:#5b6b82;overflow-wrap:anywhere;margin-top:.25rem}.req .acts{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:.375rem;display:flex}.who-away{align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.cal-head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.cal-title{font-size:1rem;font-weight:800}.cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.cal .dow{color:var(--muted);padding:.25rem 0;font-size:.6875rem;font-weight:700}.cal .day{aspect-ratio:1;color:#5b6b82;border-radius:.625rem;flex-direction:column;justify-content:center;align-items:center;max-height:2.75rem;font-size:.8125rem;font-weight:600;display:flex;position:relative}.cal .day.blank{visibility:hidden}.cal .day.today{outline:2px solid var(--primary);outline-offset:-2px;color:var(--primary);font-weight:800}.cal .day.s-present{color:var(--green);background:#e5f6ee}.cal .day.s-late{color:#c27c00;background:#fff4dc}.cal .day.s-absent{color:var(--red);background:#fde9e9}.cal .day.s-leave{color:var(--blue);background:#eaf1ff}.cal .day.s-wfh{color:var(--violet);background:#f0eaff}.cal .day.s-weekly_off{color:#b4bfcf}.cal .day.s-holiday{color:var(--violet);background:#f4ecff}.legend{color:var(--muted);flex-wrap:wrap;gap:.625rem 1rem;margin-top:.875rem;font-size:.75rem;font-weight:600;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:.625rem;height:.625rem;margin-right:.375rem;display:inline-block}.clock-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.875rem;display:flex}.clock-digital{letter-spacing:1px;font-variant-numeric:tabular-nums;font-size:1.625rem;font-weight:800}.punch{text-align:center;flex-direction:column;justify-content:space-between;align-items:center;gap:.875rem;min-height:16.25rem;display:flex}.punch .badge-ring{border-radius:50%;justify-content:center;align-items:center;width:4.75rem;height:4.75rem;display:flex}.punch .quote{color:var(--green);font-size:.8125rem;font-style:italic;font-weight:500}.punch .elapsed{font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:1.875rem;font-weight:800}.times{justify-content:center;gap:1.375rem;display:flex}.times div{color:var(--muted);font-size:.75rem;font-weight:600}.times b{color:var(--text);font-size:1rem;display:block}.btn.punch-in{background:linear-gradient(135deg,#5fcf6d,#2fa04a);height:2.875rem;font-size:.9375rem;box-shadow:0 .5rem 1.125rem #2fa04a47}.btn.punch-out{background:linear-gradient(135deg,#ff7b7b,#e04848);height:2.875rem;font-size:.9375rem;box-shadow:0 .5rem 1.125rem #dc3b3b47}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.6875rem .75rem}th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.6875rem;font-weight:700}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:color-mix(in srgb, var(--primary) 4%, transparent)}.client-card{padding:0;overflow:hidden}.client-card .band{height:.5rem}.client-card .inner{padding:1.125rem 1.25rem 1.25rem}.client-card .top{align-items:center;gap:.875rem;margin-bottom:.875rem;display:flex}.client-card .logo-box{color:#fff;border-radius:.875rem;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;font-weight:800;display:flex;overflow:hidden}.client-card .logo-box img{object-fit:contain;background:#fff;width:100%;height:100%}.chips-sm{flex-wrap:wrap;gap:.375rem;display:flex}.stat-line{border-top:1px solid var(--border);gap:1.375rem;margin-top:.875rem;padding-top:.875rem;display:flex}.stat-line div{color:var(--muted);font-size:.75rem;font-weight:600}.stat-line b{color:var(--text);font-size:1.125rem;font-weight:800;display:block}.mod-card{cursor:pointer;border:2px solid var(--border);align-items:center;gap:.875rem;padding:1rem 1.125rem;transition:border-color .15s,background .15s;display:flex}.mod-card.on{border-color:var(--primary);background:var(--primary-soft)}.switch{background:#cfd8e5;border-radius:62.4375rem;flex-shrink:0;width:2.625rem;height:1.5rem;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:1.125rem;height:1.125rem;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch.on{background:var(--primary)}.switch.on:after{transform:translate(1.125rem)}.perm-card.off{opacity:.5}.perm-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.perm-actions .chip-btn{text-transform:capitalize}.perm-actions .chip-btn.na{opacity:.35;cursor:not-allowed}.color-grid{grid-template-columns:repeat(auto-fill,minmax(10.625rem,1fr));gap:.75rem;display:grid}.color-grid .field{margin:0}.color-grid .row{flex-wrap:nowrap;gap:.375rem}.theme-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}@media (width<=1100px){.theme-layout{grid-template-columns:1fr}}.preview{border:1px solid var(--border);border-radius:var(--r-lg);min-height:21.25rem;font-family:var(--font);background:var(--bg);color:var(--text);font-size:.75rem;display:flex;position:sticky;top:5.25rem;overflow:hidden}.preview .pv-side{background:var(--sidebar-bg);width:8.75rem;color:var(--sidebar-text);border-right:1px solid var(--border);padding:.75rem .5rem}.preview .pv-side .side-brand{min-height:0;padding:2px .375rem .75rem;font-size:.8125rem}.preview .pv-side .side-brand img{max-height:1.5rem}.preview .pv-side .side-brand .mark{border-radius:.5rem;width:1.625rem;height:1.625rem;font-size:.6875rem}.preview .pv-side .it{border-radius:var(--radius);margin-bottom:2px;padding:.4375rem .625rem;font-weight:600}.preview .pv-side .it.active{background:var(--primary);color:var(--primary-text)}.preview .pv-main{flex:1;min-width:0;padding:.875rem}.preview .card{padding:.75rem}.preview .btn{height:1.875rem;padding:0 .75rem;font-size:.75rem}.imp-bar{color:#7a5200;background:#fff4d6;border-bottom:1px solid #f0d58a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 1.75rem;font-size:.8125rem;display:flex}.asset-tag{letter-spacing:.04em;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;padding:.125rem .4375rem;font-size:.6875rem;font-weight:800}.asset-card{padding:1.25rem;position:relative}.asset-card .status{position:absolute;top:1rem;right:1rem}.asset-head{align-items:center;gap:.875rem;min-width:0;margin-bottom:1rem;padding-right:5rem;display:flex}.asset-icon{border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:flex}.asset-name{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:800;overflow:hidden}.asset-card .card-actions{flex-wrap:wrap}.holder{background:var(--bg);border-radius:var(--radius);align-items:center;gap:.625rem;min-width:0;margin-top:.75rem;padding:.5rem .625rem;display:flex}.holder .nm{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:700;overflow:hidden}.timeline{flex-direction:column;max-height:22rem;display:flex;overflow:auto}.timeline .ev{border-bottom:1px solid var(--border);gap:.75rem;padding:.625rem 0;display:flex}.timeline .ev:last-child{border-bottom:0}.timeline .dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:.625rem;height:.625rem;margin-top:.3125rem}.timeline .dot.returned{background:var(--green)}.timeline .dot.retired{background:var(--red)}.timeline .dot.created{background:var(--muted)}.wk-toggle{flex-wrap:wrap;gap:.5rem;display:flex}.holiday-row{border-bottom:1px solid var(--border);align-items:center;gap:.875rem;padding:.625rem 0;display:flex}.holiday-row:last-child{border-bottom:0}.holiday-row .when{text-align:center;border-radius:var(--radius);background:var(--primary-soft);width:3.25rem;color:var(--primary);flex-shrink:0;padding:.3125rem 0}.holiday-row .when b{font-size:1.125rem;line-height:1.1;display:block}.holiday-row .when span{text-transform:uppercase;font-size:.6875rem;font-weight:700}.holiday-row .grow{flex:1;min-width:0}.num{text-align:right;font-variant-numeric:tabular-nums}th.num{text-align:right}.clickable{cursor:pointer}.pay-month{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;flex-direction:column;gap:.25rem;display:flex}.pay-month .m{font-size:1.0625rem;font-weight:800}.pay-month .net{letter-spacing:-.02em;color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.625rem;font-weight:800}.pay-month .meta{justify-content:space-between;align-items:center;margin-top:.375rem;display:flex}.person{align-items:center;gap:.625rem;display:flex}.person .nm{font-weight:700}.person .cd{color:var(--muted);font-size:.75rem}.struct-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;display:grid}.check-row{align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600;display:flex}.pay-preview{background:color-mix(in srgb, var(--primary) 5%, transparent);border:1px solid var(--border);border-radius:var(--r-lg);align-self:start;padding:.875rem 1rem}.pay-preview h3{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.8125rem}.pay-preview .line{justify-content:space-between;gap:.75rem;padding:.3125rem 0;font-size:.875rem;display:flex}.pay-preview .line.sep{border-top:1px solid var(--border);margin-top:.375rem;padding-top:.625rem}.pay-preview .line b{font-variant-numeric:tabular-nums}.pay-preview .line.net{color:var(--primary);font-size:1.0625rem;font-weight:800}.pay-preview.stale{opacity:.55}.run-head{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.run-head h2{font-size:1.375rem}.bar-actions{flex-wrap:wrap;gap:.5rem;display:flex}.payslip{--primary:#2f6fed;--primary-text:#fff;--bg:#f3f8fb;--surface:#fff;--text:#16213a;--muted:#8595ab;--border:#e6ecf4;--radius:.875rem;--font:"Inter", system-ui, sans-serif;--primary-soft:color-mix(in srgb, var(--primary) 10%, var(--surface));--primary-line:color-mix(in srgb, var(--primary) 30%, var(--surface));--primary-strong:color-mix(in srgb, var(--primary) 82%, #000);--r-lg:calc(var(--radius) + .375rem);font-family:var(--font);color:var(--text);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:1.25rem 1.375rem}.ps-head{border-bottom:2px solid var(--primary);justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding-bottom:.875rem;display:flex}.ps-company{letter-spacing:-.01em;font-size:1.375rem;font-weight:800}.ps-person{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem 1rem;margin-bottom:1.125rem;display:grid}.ps-person span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.6875rem;font-weight:700;display:block}.ps-person b{overflow-wrap:anywhere;margin-top:.125rem;display:block}.ps-cols{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.ps-table{border:1px solid var(--border);border-radius:var(--r-lg);border-collapse:separate;border-spacing:0;width:100%;overflow:hidden}.ps-table th,.ps-table td{padding:.5rem .75rem}.ps-table tbody tr:hover td{background:0 0}.ps-table tr.total td{border-top:1px solid var(--border);background:color-mix(in srgb, var(--primary) 5%, transparent);border-bottom:0;font-weight:800}.ps-table tbody tr:last-child td{border-bottom:0}.ps-net{border-radius:var(--r-lg);background:var(--primary-soft);border:1px solid var(--primary-line);justify-content:space-between;align-items:center;margin-top:1rem;padding:.875rem 1.125rem;display:flex}.ps-net span{text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem;font-weight:700}.ps-net b{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:800}.ps-foot{margin-top:.875rem}@media (width<=720px){.struct-grid,.ps-cols{grid-template-columns:1fr}.ps-person{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{body *{visibility:hidden}.payslip-modal,.payslip-modal *{visibility:visible}.no-print,.no-print *{display:none!important}.overlay{background:0 0;padding:0;display:block;position:static}.payslip-modal{width:100%;max-height:none;box-shadow:none;padding:0;position:absolute;top:0;left:0;overflow:visible;max-width:none!important}.payslip{border:0;padding:0}}
