:root{--bg: #F5F8FC;--panel: #ffffff;--ink: #0d1b2a;--accent: #0a5d49;--brand: #1F5FAD;--brand-2: #0E8FA3;--brand-rgb: 31, 95, 173;--brand-light: #E8F0FB;--brand-tint: #E8F0FB;--brand-border: #D6E0EE;--brand-border-2: #D6E0EE;--brand-surface: #F5F8FC;--brand-faint: #F5F8FC;--nav-active: #2A6FC4;--amber: #bb7b16;--red: #a93826;--line: #D6E0EE;--soft: #EEF3F9;--muted: #716e62}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}h1,h2,h3{font-family:Sora,Inter,sans-serif;margin:0}.mono{font-family:JetBrains Mono,Courier New,monospace}.shell{min-height:100vh}.sidebar{position:fixed;top:0;left:0;height:100vh;width:230px;background:var(--ink);color:#e9e6df;padding:22px 16px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;transform:translate(-100%);transition:transform .22s ease;z-index:50}.sidebar.open{transform:translate(0)}.drawer-backdrop{display:none}.sidebar .brand{font-family:Sora,sans-serif;font-weight:700;font-size:16px;color:#fff;margin-bottom:4px}.sidebar .sub{font-size:11px;color:#9aa5a0;margin-bottom:22px}.sidebar .brand-co{margin-bottom:18px}.sidebar .brand-co .sub{margin-bottom:0;margin-top:5px}.co-switch{width:100%;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:9px 30px 9px 11px;font-family:Sora,sans-serif;font-weight:700;font-size:15px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%239aa5a0' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}.co-switch:hover{border-color:var(--brand)}.co-switch:focus{outline:none;border-color:var(--brand)}.co-switch option{color:#16281f;background:#fff}.sidebar .appfooter{font-size:10px;color:#7f8a84;line-height:1.6;border-top:1px solid rgba(255,255,255,.1);padding-top:12px;margin-top:12px}.sidebar .appfooter div:first-child{color:#9aa5a0;font-weight:600}.navitem{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:9px;cursor:pointer;color:#c9cfca;font-weight:500;font-size:13.5px;transition:background .12s}.navitem svg{flex-shrink:0;opacity:.85}.navitem:hover{background:#ffffff0f}.navitem.active{background:var(--nav-active);color:#fff}.navitem.active svg{opacity:1}.sidebar .spacer{flex:1}.sidebar .userbox{font-size:12px;color:#9aa5a0;border-top:1px solid rgba(255,255,255,.1);padding-top:14px}.sidebar .userbox b{color:#fff}.main{padding:26px 32px;overflow-x:auto;min-height:100vh;transition:margin-left .22s ease}.shell.drawer-open .main{margin-left:230px}.topbar{display:flex;align-items:center;gap:12px;margin-bottom:22px;flex-wrap:wrap}.topbar h2{font-size:22px}.topbar .grow{flex:1}.company{font-family:Sora,sans-serif;font-weight:600;font-size:12.5px;color:var(--muted);white-space:nowrap}.drawer-toggle{display:flex;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;flex-shrink:0}.drawer-toggle:hover{border-color:var(--brand)}.drawer-toggle span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:background .12s}.drawer-toggle:hover span{background:var(--brand)}select,input,button{font-family:inherit;font-size:13px}select,input[type=text],input[type=password],input[type=date]{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.btn{padding:9px 16px;border:none;border-radius:10px;background:var(--brand);color:#fff;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.06)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--red)}.btn:disabled{opacity:.5;cursor:not-allowed}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:20px}.panel .ph{padding:16px 20px;border-bottom:1px solid var(--soft);display:flex;align-items:center;gap:12px}.panel .ph h3{font-size:15px}.panel .ph .desc{font-size:12px;color:var(--muted)}.panel .pb{padding:18px 20px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:20px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:16px 18px}.kpi.dk{background:var(--ink);color:#fff;border-color:var(--ink)}.kpi.am{background:#fbf2dd;border-color:#e6c98a}.kpi .lab{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.kpi.dk .lab{color:#9aa5a0}.kpi .val{font-family:Sora,sans-serif;font-weight:700;font-size:26px;margin-top:4px}.kpi .note{font-size:11px;color:var(--muted);margin-top:2px}.kpi.dk .note{color:#9aa5a0}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12.5px}thead th{background:var(--soft);text-align:left;padding:10px 12px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#6a6658;white-space:nowrap;position:sticky;top:0}th.num,td.num{text-align:right}.tbl-scroll{max-height:calc(100vh - 290px);overflow:auto}.tbl-scroll thead th{z-index:2;box-shadow:inset 0 -1px 0 var(--line)}.sort-ind{font-size:9px;margin-left:4px;color:#c8c1b1}.sort-ind.on{color:var(--brand)}thead th:hover .sort-ind{color:var(--muted)}thead th:hover .sort-ind.on{color:var(--brand)}tbody td{padding:9px 12px;border-top:1px solid var(--soft);white-space:nowrap}tbody tr:hover{background:#faf9f5}.money{font-family:JetBrains Mono,monospace}.tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600}.tag.ok{background:#e4f1ec;color:var(--accent)}.tag.brand{background:var(--brand-light);color:var(--brand)}.tag.cap{background:#fbf2dd;color:var(--amber)}.tag.bad{background:#fbe9e6;color:var(--red)}tr.invalid td{text-decoration:line-through;opacity:.55;background:#faf0ee}tr.invalid td .tag{text-decoration:none}tr.pfwage-warn td{background:#fdf6e3}.remark-warn{color:var(--amber);font-size:11.5px;font-weight:600}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 32px;width:360px;box-shadow:0 10px 40px #0000000f}.login-card h1{font-size:20px;margin-bottom:4px}.login-card .sub{font-size:12.5px;color:var(--muted);margin-bottom:22px}.login-card label{display:block;font-size:12px;font-weight:600;margin:12px 0 5px}.login-card input{width:100%}.login-card .btn{width:100%;margin-top:20px;padding:11px}.err{color:var(--red);font-size:12.5px;margin-top:12px}.drop{border:2px dashed var(--line);border-radius:12px;padding:30px;text-align:center;color:var(--muted);background:#fcfbf8}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;font-weight:600;color:#6a6658;text-transform:uppercase;letter-spacing:.4px}.empty{padding:50px;text-align:center;color:var(--muted);font-style:italic}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.search-select{position:relative;display:inline-block;min-width:200px}.ss-control{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;text-align:left}.ss-control:hover{border-color:var(--brand)}.ss-value{font-size:13px}.ss-placeholder{font-size:13px;color:var(--muted)}.ss-caret{color:var(--muted);font-size:11px}.panel.sel-host{overflow:visible}.ss-menu{position:absolute;z-index:70;top:calc(100% + 4px);left:0;right:0;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 34px #0000001f;overflow:hidden}.ss-search{width:100%;border:none!important;border-bottom:1px solid var(--soft)!important;border-radius:0!important;padding:10px 12px}.ss-search:focus{outline:none}.ss-list{max-height:260px;overflow-y:auto}.ss-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;cursor:pointer;font-size:13px}.ss-opt.hi{background:var(--soft)}.ss-opt.sel{color:var(--brand);font-weight:600}.ss-sub{font-size:11px;color:var(--muted)}.ss-empty{padding:12px;text-align:center;color:var(--muted);font-style:italic;font-size:12.5px}.table-search{display:flex;align-items:center;gap:8px;margin-left:auto}.table-search input{min-width:220px}.table-search .count{font-size:11.5px;color:var(--muted);white-space:nowrap}.cols-wrap{position:relative;display:inline-block}.cols-wrap .btn.ghost{display:inline-flex;align-items:center;gap:6px}.cols-panel{position:absolute;z-index:40;right:0;top:calc(100% + 6px);width:250px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 38px #00000024;overflow:hidden}.cols-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--soft);font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#6a6658;font-weight:700}.cols-list{max-height:320px;overflow-y:auto;padding:6px}.cols-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:grab}.cols-item:hover{background:var(--soft)}.cols-item .grip{color:var(--muted);font-size:12px;letter-spacing:-2px;-webkit-user-select:none;user-select:none}.cols-label{display:flex;align-items:center;gap:7px;flex:1;font-size:13px;cursor:pointer}.cols-move button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:9px;line-height:1;padding:1px 2px}.cols-move button:disabled{opacity:.25;cursor:default}.cols-item.drop{background:var(--brand-light);box-shadow:inset 0 2px 0 var(--brand)}th.draggable-th{cursor:grab}th.draggable-th:hover{color:var(--brand)}th.drop{box-shadow:inset 2px 0 0 var(--brand);background:var(--brand-light)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-bottom:20px}.dash-grid .panel{margin-bottom:0}.trend{display:flex;align-items:flex-end;gap:16px;padding:8px 4px 0;min-height:180px;position:relative;flex-wrap:wrap}.trend-col{display:flex;flex-direction:column;align-items:center;gap:6px}.trend-bars{display:flex;align-items:flex-end;gap:4px;height:150px}.trend-bar{width:16px;border-radius:4px 4px 0 0}.trend-bar.gross{background:var(--ink)}.trend-bar.net{background:var(--brand)}.trend-label{font-size:10.5px;color:var(--muted);font-family:JetBrains Mono,monospace}.trend-legend{display:flex;gap:14px;font-size:11px;color:var(--muted);width:100%;margin-top:6px}.trend-legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}.trend-legend .sw.gross{background:var(--ink)}.trend-legend .sw.net{background:var(--brand)}.barrow{margin-bottom:11px}.barrow-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.barrow-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}.barrow-track{height:8px;background:var(--soft);border-radius:6px;overflow:hidden}.barrow-fill{height:100%;border-radius:6px}.hist{display:flex;align-items:flex-end;justify-content:space-around;gap:10px;height:160px;padding-top:10px}.hist-col{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}.hist-bar{width:100%;max-width:46px;background:var(--brand);border-radius:5px 5px 0 0;position:relative;min-height:3px;display:flex;justify-content:center}.hist-count{position:absolute;top:-16px;font-size:11px;font-weight:600;color:var(--ink)}.hist-label{font-size:11px;color:var(--muted)}.exc-item{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--soft);font-size:13px}.exc-item:first-child{border-top:none}.acc-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#6a6658;font-weight:700;margin-bottom:8px}.acc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.acc-chk{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer}.note-box{background:var(--soft);border-radius:10px;padding:11px 14px;font-size:12.5px;color:#6a6658}.alias-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.alias-row{display:flex;align-items:center;gap:8px}.alias-orig{font-size:12px;color:#6a6658;min-width:92px;text-align:right}.alias-row input{flex:1;min-width:0}.alias-x{background:none;border:none;color:var(--red);cursor:pointer;opacity:.6;width:22px}.alias-x:hover{opacity:1}.ci-badge{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:#fff;background:linear-gradient(90deg,var(--brand),var(--brand-2));vertical-align:middle}.scan-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0d1b2a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:scanfade .25s ease}@keyframes scanfade{0%{opacity:0}to{opacity:1}}.scan-card{background:#fff;border-radius:18px;padding:34px 40px;width:430px;max-width:92vw;text-align:center;box-shadow:0 30px 80px #00000059}.scan-doc{position:relative;width:150px;height:192px;margin:0 auto 24px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 8px 22px #0000001a;display:flex;align-items:center;justify-content:center}.scan-doc:before{content:"";position:absolute;top:18px;left:16px;right:16px;bottom:16px;background:repeating-linear-gradient(to bottom,#e7e3d8 0 5px,transparent 5px 15px);border-radius:2px}.scan-doc.ok:before{opacity:.25}.scan-beam{position:absolute;left:0;right:0;height:38px;top:-38px;z-index:2;background:linear-gradient(to bottom,rgba(var(--brand-rgb),0),rgba(var(--brand-rgb),.2));border-bottom:2px solid var(--brand);box-shadow:0 0 20px 5px rgba(var(--brand-rgb),.35);animation:scanmove 2.1s ease-in-out infinite}@keyframes scanmove{0%{top:-38px}50%{top:100%}to{top:-38px}}.scan-corner{position:absolute;width:16px;height:16px;border:2px solid var(--brand);z-index:3}.scan-corner.tl{top:7px;left:7px;border-right:none;border-bottom:none}.scan-corner.tr{top:7px;right:7px;border-left:none;border-bottom:none}.scan-corner.bl{bottom:7px;left:7px;border-right:none;border-top:none}.scan-corner.br{bottom:7px;right:7px;border-left:none;border-top:none}.scan-check{z-index:3}.scan-check circle,.scan-check path{stroke-dasharray:200;stroke-dashoffset:200;animation:scandraw .7s ease forwards}.scan-check path{animation-delay:.25s}@keyframes scandraw{to{stroke-dashoffset:0}}.scan-status{font-family:Sora,sans-serif;font-weight:600;font-size:16px;color:var(--ink);min-height:22px}.scan-caret{display:inline-block;width:2px;height:15px;margin-left:2px;background:var(--brand);vertical-align:-2px;animation:scanblink 1s step-end infinite}@keyframes scanblink{50%{opacity:0}}.scan-sub{font-size:12px;color:var(--muted);margin-top:5px;min-height:16px}.scan-track{height:8px;background:var(--soft);border-radius:6px;overflow:hidden;margin:20px 0 16px}.scan-fill{height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,var(--brand),var(--brand-2));transition:width linear}.scan-steps{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.scan-step{font-size:10px;padding:3px 9px;border-radius:20px;background:var(--soft);color:var(--muted);font-weight:600;transition:all .2s}.scan-step.active{background:var(--brand);color:#fff}.scan-step.done{background:var(--brand-light);color:var(--brand)}.report-card{border-color:var(--brand-border-2)}.report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.rstat{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--brand-faint)}.rstat.am{background:#fbf2dd;border-color:#e6c98a}.rstat-val{font-family:Sora,sans-serif;font-weight:700;font-size:22px}.rstat-lab{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-top:2px}.rstat-sub{font-size:10.5px;color:var(--muted);font-style:italic}.sheet-summary{display:flex;flex-wrap:wrap;gap:5px}.chip{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:600;background:var(--soft);color:#5c5849;white-space:nowrap}.chip.am{background:#fbf2dd;color:var(--amber)}.chip.bad{background:#fbe9e6;color:var(--red)}.chip.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}.conflict-card{border-color:#e6c98a}.conflict-card .ph{background:#fbf2dd}.conflict-card p{font-size:13.5px;line-height:1.5}@media (max-width: 720px){.shell.drawer-open .main{margin-left:0}.shell.drawer-open .drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000006b;z-index:45}.main{padding:18px 16px}.company{display:none}}.att-legend{display:flex;flex-wrap:wrap;gap:14px;padding:8px 16px 2px}.att-leg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}.att-grid-wrap{overflow-x:auto}table.att-grid{border-collapse:separate;border-spacing:0}table.att-grid th,table.att-grid td{white-space:nowrap}.att-grid th.att-day{padding:4px 0;min-width:30px;text-align:center;font-weight:600}.att-grid th.att-weekend{background:#f4efe4}.att-grid th.att-holiday{background:#fbe2de}.att-grid th.att-holiday .att-dnum,.att-grid th.att-holiday .att-dwd{color:var(--red)}.att-cellwrap.att-holiday-cell{background:#fdeeeb}.att-dnum{font-size:12px}.att-dwd{font-size:9px;color:var(--muted);font-weight:500}.att-cellwrap{text-align:center;padding:2px}.att-cell{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 4px;border-radius:5px;font-size:10.5px;font-weight:700;cursor:default}.att-p{background:#e4f1ec;color:var(--accent)}.att-a{background:#fbe9e6;color:var(--red)}.att-wo{background:#eceae3;color:var(--muted)}.att-h{background:#e9eef7;color:#2f5ca9}.att-hw{background:#e7f0d8;color:#5d7d23}.att-m{background:#fbf2dd;color:#bb7b16}.att-nt{background:#e4e8f4;color:#33488a}.att-l{background:#fbf2dd;color:var(--amber)}.att-hd{background:#f3ead8;color:var(--amber)}.att-none{color:#cfc8b8;background:transparent}.att-sticky{position:sticky;left:0;z-index:2;background:var(--panel)}.att-grid thead th.att-sticky{z-index:3}.att-grid th:first-child,.att-grid td:first-child{width:64px;min-width:64px}.att-grid td.att-day{text-align:center;padding:2px 1px}.att-grid .att-day-hol{background:#fdeeeb}.att-grid tr.att-flagged td.att-sticky{background:#fdf3f1}.att-wd{display:block;font-size:8px;line-height:1;color:var(--muted);font-weight:400}.f28-card{border:1px solid var(--ink);background:#fff;padding:14px 16px;font-size:12px}.f28-head{text-align:center;border-bottom:1.5px solid var(--ink);padding-bottom:6px;margin-bottom:8px}.f28-title{font-family:Sora,sans-serif;font-weight:700;font-size:15px}.f28-rule{font-size:10.5px;color:var(--muted)}.f28-fields{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px;margin-bottom:10px}.f28-field{display:flex;gap:6px;font-size:11.5px;border-bottom:1px dotted var(--line);padding:2px 0}.f28-lab{color:var(--muted);min-width:130px}.f28-val{font-weight:600;flex:1}.f28-body{display:flex;gap:14px;align-items:flex-start}.f28-body>.f28-grid{flex:1}table.f28-grid{border-collapse:collapse;width:100%;font-size:11px}table.f28-grid th,table.f28-grid td{border:1px solid var(--line);padding:2px 5px;text-align:center;height:20px}table.f28-grid th{background:var(--soft);font-size:9.5px;text-transform:uppercase;letter-spacing:.3px}table.f28-grid td:first-child{font-weight:600}.f28-wd{color:var(--muted);font-size:9px;margin-left:3px}.f28-grid .f28-hol td{background:#fdeeeb}.f28-grid .f28-wknd td{background:#faf7f0}.f28-summary{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.f28-summary .chip{background:var(--soft);border-radius:14px;padding:3px 10px;font-size:11.5px}.f28-summary .chip.bad{background:#fbe9e6;color:var(--red)}.f28-foot{font-size:10px;font-style:italic;color:#777;margin-bottom:16px}.f28-sign{display:flex;justify-content:space-between;gap:30px;font-size:11.5px}.f28-sign .f28-line{display:inline-block;min-width:130px;border-bottom:1px solid var(--ink);margin-left:6px}.f28-card.print{border:none}.att-emp{min-width:190px;max-width:240px}.att-emp-btn{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit;padding:2px 0}.att-emp-btn:hover b{color:var(--brand);text-decoration:underline}.att-code{font-size:10.5px;color:var(--muted)}tr.att-flagged .att-sticky{background:#fdf3f1}tr.att-flagged:hover .att-sticky{background:#fbe9e6}.att-restbad{color:var(--red);font-weight:700}.att-tag.att-p{background:#e4f1ec;color:var(--accent)}.att-modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b2a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:60;display:flex;align-items:center;justify-content:center;padding:24px}.att-modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(680px,100%);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 18px 50px #00000047;overflow:hidden}.att-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.att-modal-body{overflow:auto}.att-x{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:var(--muted);padding:0 4px}.att-x:hover{color:var(--ink)}.att-weekend-row td{background:#faf7f0}.att-holiday-row td{background:#fdeeeb}.ml-text{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.5}.danger-panel{border-color:#e6b3a8}.danger-panel .ph{background:#fbe9e6}.reset-modal{width:min(560px,100%)}.disclaimer-list{margin:4px 0 14px;padding-left:20px}.disclaimer-list li{margin-bottom:10px;font-size:13px;line-height:1.5}.reset-step{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px}.reset-step-num{flex:none;width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.captcha-code{font-family:JetBrains Mono,monospace;font-size:20px;font-weight:700;letter-spacing:6px;color:var(--red);background:#f7f3ea;border:1px dashed var(--line);border-radius:6px;padding:4px 10px;display:inline-block;margin-top:4px;-webkit-user-select:none;user-select:none}.reset-input{width:130px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:14px}.agree-box{display:flex;gap:10px;align-items:flex-start;background:#fbf7ef;border:1px solid var(--line);border-radius:8px;padding:12px;font-size:12.5px;line-height:1.5;margin-top:6px;cursor:pointer}.agree-box input{margin-top:3px;flex:none}.reset-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.reset-hint{text-align:right;font-size:12px;color:var(--amber);margin-top:6px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--soft)}.seg-btn{border:none;background:none;padding:6px 14px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer}.seg-btn.on{background:var(--ink);color:#fff}.shift-select{padding:4px 8px;border:1px solid var(--line);border-radius:6px;font-size:12.5px;background:#fff}.shift-default{color:var(--muted)}.emp-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.emp-f{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}.emp-f:last-child,.emp-f:has(textarea){grid-column:1 / -1}.emp-f input,.emp-f textarea{border:1px solid var(--line);border-radius:6px;padding:7px 8px;font-size:13px;font-family:inherit;text-transform:none;letter-spacing:0;color:var(--ink)}.emp-f input:focus,.emp-f textarea:focus{outline:none;border-color:var(--brand)}.ps-namelink{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.ps-namelink:hover b{color:var(--brand);text-decoration:underline}.ps-scroll{overflow-x:auto}.ps-slip{border:1.5px solid var(--ink);background:#fff;color:var(--ink);padding:14px 16px;min-width:900px}.ps-slip.ps-ml{font-family:Noto Sans Malayalam,Manjari,Nirmala UI,Inter,sans-serif}.payslip-grid{width:100%;border-collapse:collapse;table-layout:fixed}.payslip-grid th,.payslip-grid td{border:1px solid var(--ink);padding:8px 6px;text-align:center;overflow-wrap:anywhere;word-break:break-word;min-width:0;overflow:hidden}.ps-title{font-weight:800;font-size:20px;letter-spacing:.3px;padding:12px 6px!important}.ps-period{font-size:13.5px;padding:8px 6px!important}.ps-att-lab{font-weight:700;font-size:11.5px;line-height:1.25;text-transform:uppercase;letter-spacing:.2px;background:var(--soft);text-align:left!important;padding-left:8px!important}.ps-att-val{font-size:15px;font-weight:600}.ps-info-lab{font-weight:700;font-size:12px;line-height:1.25;text-align:left!important;padding-left:8px!important;background:#fbfaf7}.ps-info-val{font-size:14px;font-weight:600;text-align:right!important;padding-right:12px!important}.ps-section th{font-weight:800;font-size:15px;padding:9px;background:#fff;color:var(--ink);letter-spacing:.4px;text-transform:uppercase}.ps-subhead th{font-weight:700;font-size:12px;line-height:1.2;vertical-align:middle;background:#f4f1ea}.ps-ml .ps-att-lab,.ps-ml .ps-info-lab{font-size:11px;text-transform:none}.ps-ml .ps-subhead th{font-size:10.5px;line-height:1.15}.ps-ml .ps-title{font-size:18px}.ps-subhead th.ps-drag{cursor:grab}.ps-subhead th.ps-drag:hover{background:var(--soft)}.ps-tot-h{background:#ebe6da!important}.ps-data td{font-size:13.5px;text-align:right;padding:11px 8px}.ps-data td.ps-tot{font-weight:800}.ps-netval{font-family:Sora,sans-serif;font-weight:800;font-size:16px}.ps-pad{background:inherit}.ps-perday{font-weight:800;font-size:14px;text-align:left!important;padding:10px 12px!important}.ps-foot{font-size:11.5px;color:#555;margin-top:8px}.shift-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.shift-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}.shift-card-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.shift-name{flex:1;font-family:Sora,sans-serif;font-weight:700;font-size:14px;border:none;border-bottom:1px solid transparent;background:transparent;padding:2px 0;color:var(--ink)}.shift-name:focus{outline:none;border-bottom-color:var(--brand)}.shift-fields{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end}.shift-f{display:flex;flex-direction:column;gap:4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}.shift-f.short{width:68px}.shift-times{display:flex;gap:4px}.shift-times input,.shift-mark,.shift-f input[type=number]{border:1px solid var(--line);border-radius:6px;padding:5px 6px;font-size:12.5px;font-family:inherit}.shift-mark{width:100%;text-align:center;font-weight:700;text-transform:uppercase}.shift-chk{display:flex;align-items:center;gap:6px;font-size:12px;width:100%;text-transform:none;letter-spacing:0;color:var(--ink)}.shift-chk input{flex:none}.shift-tbl th{white-space:nowrap;font-size:10.5px}.shift-tbl td{vertical-align:middle}.shift-tbl input[type=time],.shift-num{border:1px solid var(--line);border-radius:6px;padding:5px 6px;font-size:12.5px;font-family:inherit;background:#fff}.shift-num{width:68px;text-align:right}.shift-tbl .shift-mark{width:46px}.shift-tbl input:disabled{background:var(--soft);color:var(--muted)}.shift-tbl tr.shift-off td{opacity:.55}.shift-nolimit{color:var(--muted)}.att-lock{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}.att-stale{border:1px solid #e3b96a;background:#fdf6e7;border-radius:8px;padding:10px 12px;margin:0 16px 12px;font-size:12.5px}.att-infeasible{border:1px solid #d9a49a;background:#fdeeeb;border-radius:8px;padding:12px 14px;font-size:12.5px}.att-infeasible ul{margin:8px 0 0;padding-left:18px}.att-infeasible li{margin-bottom:4px}.restday-actions{display:flex;gap:10px;padding:0 16px 8px}.btn.sm{padding:4px 10px;font-size:12px}.worked-btn{background:var(--brand-tint);border:1px solid var(--brand-border);color:var(--brand);font-weight:700;border-radius:6px;padding:2px 12px;cursor:pointer;font-size:13px}.worked-btn:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.att-drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b2a61;z-index:60;display:flex;justify-content:flex-end}.att-drawer{width:min(540px,100%);height:100%;background:var(--panel);box-shadow:-14px 0 40px #00000038;display:flex;flex-direction:column;animation:drawerIn .18s ease-out}@keyframes drawerIn{0%{transform:translate(40px);opacity:.4}to{transform:none;opacity:1}}.att-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.att-drawer-head>div{display:flex;align-items:center;gap:8px}.att-drawer-body{overflow:auto;padding:16px}.att-card{border:1px solid var(--line);border-radius:10px;overflow:hidden}.att-card-head{padding:14px 18px;border-bottom:2px solid var(--ink)}.att-card-head h3{font-size:16px}.att-card-sub{font-size:11.5px;color:var(--muted);margin-top:2px}.att-card-meta{display:flex;justify-content:space-between;padding:12px 18px;gap:12px}.att-card-meta .muted{color:var(--muted)}.att-card-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 12px}.att-card-chips .chip{background:var(--soft);border-radius:14px;padding:3px 10px;font-size:11.5px}.att-card-chips .chip b{margin-left:3px}.att-card-chips .chip.bad{background:#fbe9e6;color:var(--red)}.att-card-chips .chip.am{background:#fbf2dd;color:var(--amber)}.att-card-table{width:100%}.att-card-table th,.att-card-table td{padding:5px 10px;font-size:12.5px}.att-card-foot{font-size:10.5px;font-style:italic;color:#777;padding:10px 18px 14px}.att-card-sign{padding:14px 18px 18px}.att-sign-date{font-size:12px;margin-bottom:26px}.att-sign-line{display:inline-block;min-width:120px;border-bottom:1px dotted var(--line)}.att-sign-row{display:flex;justify-content:space-between;gap:24px}.att-sign-cell{flex:1;text-align:center;font-size:11px;color:var(--muted)}.att-sign-rule{border-top:1px solid var(--ink);margin:0 6px 5px}.print-area{display:none}.conflict-box{border-color:#e6b3a8;background:#fdf3f1}.conflict-tbl{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px;background:#fff}.conflict-tbl th,.conflict-tbl td{border:1px solid var(--line);padding:4px 8px;text-align:left;vertical-align:top}.conflict-tbl th{background:var(--soft);font-weight:600}.dates-preview{background:#fff}.card-edit{border:1px solid var(--brand);border-radius:8px;padding:12px;margin-bottom:14px;background:var(--brand-surface)}.card-edit-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.card-cal{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed}.card-cal th{font-size:11px;color:#6b6458;font-weight:600}.card-cal td{height:46px;border:1px solid var(--line);border-radius:6px;background:#fff;position:relative;vertical-align:top;padding:2px 4px}.card-cal td.cc-empty{border:none;background:transparent}.card-cal td.cc-hol{background:#fdf1e7}.card-cal td.cc-blank{background:repeating-linear-gradient(45deg,#f7f5f0,#f7f5f0 4px,#efebe2 4px,#efebe2 8px)}.card-cal td.cc-sel{outline:2px solid var(--brand)}.card-cal td.cc-day{cursor:pointer}.cc-num{font-size:10.5px;color:#6b6458}.cc-mark{display:block;text-align:center;font-weight:700;font-size:14px;margin-top:2px;border-radius:4px;background:#e4f1ec;color:var(--accent)}.cc-mark.half{background:#fff3d6;color:#8a5a00}.cc-mark.hol{background:#fbe4d2;color:#8a4a12}.card-cal td.cc-move .cc-mark{cursor:grab}.card-edit-msg{margin-top:8px;font-size:13px;color:var(--brand)}.card-edit-msg.bad{color:var(--red);font-weight:600}.card-hist{margin-top:12px;font-size:12.5px}.card-hist ul{margin:4px 0 0;padding-left:18px}.confirm-box{background:#fff;border-radius:10px;padding:18px 20px;width:min(460px,calc(100% - 32px));margin:18vh auto 0;box-shadow:0 12px 40px #00000040}.confirm-box h3{margin:0 0 8px}@media (max-width: 560px){.card-cal td{height:38px}.cc-mark{font-size:12px}}.pl-tbl{width:100%;border-collapse:collapse;font-size:12.5px}.pl-tbl th,.pl-tbl td{border-bottom:1px solid var(--line);padding:4px 8px;text-align:left;white-space:nowrap}.pl-tbl th{background:var(--soft);position:sticky;top:0;font-weight:600}.pl-tbl tr.pl-ns td{color:#7a7366}@media print{html,body{background:#fff!important}#root,.att-drawer-back,.att-modal-back,.no-print{display:none!important}body>.print-area{display:block!important}tr.invalid{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}@page{size:A4 portrait;margin:12mm}.print-card{padding:0}.att-card{border:none;border-radius:0;width:100%;font-size:11.5px;color:#0d1b2a}.att-card-head{padding:0 0 8px;border-bottom:2px solid #0d1b2a}.att-card-head h3{font-size:17px}.att-card-meta{padding:10px 0}.att-card-chips{padding:0 0 10px}.att-card-chips .chip{border:1px solid #d9d3c6}.att-card-table{width:100%;border-collapse:collapse}.att-card-table th,.att-card-table td{border:1px solid #c9c2b2;padding:3px 8px;font-size:11px}.att-card-table thead th{background:#ece7dc}.att-card-table .tag{border:none;padding:0;background:none!important;font-weight:700}.att-card-foot{padding:8px 0 0}.att-card-sign{padding:18px 0 0}.att-sign-date{margin-bottom:34px}.att-sign-rule{border-top:1px solid #0d1b2a}@page pslandscape{size:A4 landscape;margin:9mm}.ps-print-land{page:pslandscape}.ps-slip{border:1.5px solid #0d1b2a;padding:10px 14px;min-width:0;width:100%}.payslip-grid{table-layout:fixed;width:100%}.ps-slip .payslip-grid th,.ps-slip .payslip-grid td{border:1px solid #0d1b2a;overflow:hidden}.ps-section th{background:#fff!important;color:#0d1b2a!important}.ps-subhead th{background:#f4f1ea!important}.ps-tot-h{background:#ebe6da!important}.ps-att-lab,.ps-info-lab{background:#f4f1ea!important}.ps-bulk .ps-slip{break-inside:avoid;margin-bottom:6mm;padding:8px 12px}.ps-bulk .ps-slip:nth-child(2n):not(:last-child){break-after:page;margin-bottom:0}.ps-bulk .ps-title{font-size:16px;padding:7px 6px!important}.ps-bulk .ps-period{font-size:11.5px;padding:5px 6px!important}.ps-bulk .ps-netval{font-size:14px}.ps-bulk .payslip-grid th,.ps-bulk .payslip-grid td{padding:5px}.ps-bulk .ps-data td{padding:7px 6px}.ps-bulk .ps-foot{display:none}@page attlandscape{size:A4 landscape;margin:8mm}.att-print-land,.pl-print{page:attlandscape}.pl-print .pl-print-head{font-weight:700;font-size:13px;margin-bottom:6px}.pl-print .pl-tbl{font-size:10px}.pl-print .pl-tbl th{position:static}.att-print-land .att-print-head{margin-bottom:6px}.att-print-land .att-print-title{font-family:Sora,sans-serif;font-weight:800;font-size:15px;color:#0d1b2a}.att-print-land .att-print-sub{font-size:11px;color:#444;margin-top:2px}.att-print-land table{width:100%;border-collapse:collapse}.att-print-land thead{display:table-header-group}.att-print-land tr{break-inside:avoid}.att-print-land th,.att-print-land td{border:1px solid #b8b1a2;padding:2px 3px;font-size:8.5px;text-align:center;color:#0d1b2a}.att-print-land thead th{background:#ece7dc!important;font-weight:700}.att-print-land .att-p-name{text-align:left;font-weight:600;white-space:nowrap}.att-print-land .att-p-hol{background:#fdeeeb!important}.att-print-land .att-p-num{font-weight:700}}
