:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#17212b;font-synthesis:none;text-rendering:optimizelegibility;background:#eef3f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.accordion-grid{gap:10px;display:grid}.accordion-panel{background:#ffffffeb;border:1px solid #d7e0df;border-radius:10px;transition:box-shadow .2s;overflow:hidden;box-shadow:0 4px 16px #12343b0f}.accordion-panel:hover{box-shadow:0 6px 24px #12343b1a}.accordion-panel.open{border-color:#c0d4d2;box-shadow:0 8px 32px #12343b1f}.accordion-header{color:#142f36;cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:background .15s;display:flex}.accordion-header:hover{background:#0f766e0a}.accordion-header-left{align-items:center;gap:10px;min-width:0;display:flex}.accordion-icon{color:#0f766e;background:#e8f4f0;border-radius:7px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.accordion-header strong{color:#142f36;font-size:14px;font-weight:700}.accordion-count{color:#7f9aa0;text-align:center;background:#edf3f2;border-radius:999px;min-width:22px;padding:1px 9px;font-size:12px;font-weight:700}.accordion-arrow{color:#9ab3b7;flex-shrink:0;transition:transform .2s}.accordion-arrow.open{transform:rotate(90deg)}.accordion-body{border-top:1px solid #e8f0ef;padding:16px}*{box-sizing:border-box}body{background:linear-gradient(#f5f7f3f5,#e9f0f1f5),#eef3f3;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f8fafc;background:linear-gradient(#0f2e35 0%,#12343b 40%,#0f2a30 100%);border-right:1px solid #ffffff0a;flex-direction:column;gap:20px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand-block{cursor:pointer;border-radius:10px;align-items:center;gap:12px;min-height:52px;padding:6px 10px;transition:background .2s;display:flex;position:relative}.brand-block:hover{background:#ffffff0f}.brand-info{flex:1;min-width:0}.brand-info strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:16px;line-height:1.25;display:block;overflow:hidden}.brand-info span{color:#9ab5b9;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12px;display:block;overflow:hidden}.brand-edit-icon{color:#6f9196;opacity:0;flex-shrink:0;transition:opacity .2s}.brand-block:hover .brand-edit-icon{opacity:1}.brand-mark{color:#14242a;background:#d99b32;border-radius:10px;flex-shrink:0;place-items:center;display:grid;position:relative}.sab-logo{color:#102f36;background:linear-gradient(135deg,#f5c15c,#83d4cf)}.logo-flake{color:#fff;filter:drop-shadow(0 1px 2px #12343b40);position:absolute;bottom:3px;right:3px}.nav-list{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav-group{flex-direction:column;gap:2px;margin-top:12px;display:flex}.nav-group:first-child{margin-top:0}.nav-group-label{text-transform:uppercase;letter-spacing:.08em;color:#5f858b;padding:4px 10px 2px;font-size:10px;font-weight:700}.nav-item{color:#b6cdd0;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:0 10px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{color:#e6f0f1;background:#ffffff0f}.nav-item.active{color:#fff;background:#ffffff14;font-weight:600;box-shadow:inset 3px 0 #f5c15c}.nav-icon-wrap{color:currentColor;border-radius:7px;flex-shrink:0;place-items:center;width:30px;height:30px;transition:background .2s,color .2s;display:grid}.nav-item.active .nav-icon-wrap{color:#fff}.main-area{min-width:0;padding:22px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.topbar span{color:#62727a;font-size:13px}.topbar h1{color:#122d35;margin:2px 0 0;font-size:28px;line-height:1.15}.content-grid,.work-grid{gap:16px;display:grid}.work-grid{grid-template-columns:minmax(320px,.86fr) minmax(0,1.34fr);align-items:start}.split-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.metric-card,.panel{background:#ffffffeb;border:1px solid #d7e0df;border-radius:8px;box-shadow:0 14px 34px #12343b14}.metric-card{min-height:120px;padding:16px}.metric-card span{color:#65757c;margin-top:12px;font-size:13px;display:block}.metric-card strong{color:#102f36;overflow-wrap:anywhere;margin-top:6px;font-size:22px;line-height:1.12;display:block}.metric-icon{color:#0f766e;background:#e8f4f0;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.panel{min-width:0;padding:16px}.section-title{justify-content:space-between;align-items:center;gap:14px;min-height:38px;margin-bottom:14px;display:flex}.section-title>div{color:#16515b;align-items:center;gap:8px;min-width:0;display:flex}.section-title h2{color:#142f36;margin:0;font-size:17px;line-height:1.2}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end}.filter-bar{margin-bottom:12px}.filter-bar select{background:#fff;border:1px solid #dae3e3;border-radius:6px;padding:6px 10px;font-size:13px}.search-input-wrap{max-width:320px;margin-bottom:12px;position:relative}.search-input-wrap input{color:#182a30;background:#fff;border:1px solid #d7e0df;border-radius:8px;outline:none;width:100%;min-height:38px;padding:0 34px 0 12px;font-size:13px;transition:border-color .15s}.search-input-wrap input:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e1a}.search-clear{color:#9ab3b7;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:4px;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.search-clear:hover{color:#52666d;background:#edf3f2}.master-form{margin-bottom:16px}.form-actions{align-items:end;gap:8px;display:flex}.field{gap:6px;min-width:0;display:grid}.field span{color:#52666d;font-size:12px;font-weight:700}.field input,.field select{color:#182a30;background:#fff;border:1px solid #cbd8d7;border-radius:8px;outline:none;width:100%;min-height:40px;padding:0 10px}.field input:focus,.field select:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e24}.total-box{background:#fff8e8;border:1px solid #e2d3b0;border-radius:8px;align-content:center;gap:5px;min-height:70px;padding:10px 12px;display:grid}.total-box span{color:#7a6233;font-size:12px;font-weight:700}.total-box strong{color:#31250f;overflow-wrap:anywhere;font-size:21px}.primary-button,.secondary-button,.icon-text-button,.danger-button,.muted-button{cursor:pointer;white-space:nowrap;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:#0f766e;align-self:end;font-weight:800}.primary-button:hover{background:#0d5f59}.secondary-button{color:#173942;background:#fff;border:1px solid #cbd8d7;font-weight:750}.secondary-button:hover{background:#f7fbfa;border-color:#94b7b4}.secondary-button.as-button{min-width:102px}.icon-text-button{color:#0f766e;background:#edf8f5;border:1px solid #b8d8cf;min-height:32px;font-size:13px;font-weight:800}.danger-button{color:#a33a20;background:#fff2ef;border:1px solid #f0c1b8;min-height:32px;font-size:13px;font-weight:800}.muted-button{color:#53666d;background:#f8fbfb;border:1px solid #cbd8d7;font-weight:800}.table-actions{justify-content:flex-end;gap:8px;display:flex}.classification-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.classification-card{background:#fbfdfd;border:1px solid #dce6e4;border-radius:8px;padding:14px}.classification-head{color:#164e63;align-items:center;gap:8px;margin-bottom:12px;display:flex}.classification-row{border-top:1px solid #edf2f2;justify-content:space-between;align-items:center;gap:12px;min-height:34px;display:flex}.classification-row span{color:#52666d;font-size:13px}.print-layer{z-index:30;background:#0b1e23b8;padding:22px;position:fixed;inset:0;overflow:auto}.print-controls{background:#fff;border-radius:8px;grid-template-columns:minmax(170px,1fr) auto auto;align-items:end;gap:10px;width:min(760px,100%);margin:0 auto 14px;padding:12px;display:grid}.invoice-sheet{color:#17212b;background:#fff;width:148mm;min-height:210mm;margin:0 auto;padding:12mm;box-shadow:0 22px 60px #00000047}.invoice-sheet.paper-a4{width:210mm;min-height:297mm}.invoice-sheet.paper-thermal80{width:80mm;min-height:180mm;padding:5mm;font-size:11px}.invoice-notes{background:#fffcf0;border-left:3px solid #d99b32;margin-top:14px;padding:8px 12px}.invoice-notes span{color:#7a6233;font-size:12px;font-weight:700}.invoice-notes p{color:#3f4f50;margin:4px 0 0;font-size:13px}.invoice-header,.invoice-info,.invoice-total,.invoice-signatures{justify-content:space-between;gap:18px;display:flex}.invoice-header{border-bottom:2px solid #12343b;align-items:flex-start;padding-bottom:12px}.invoice-brand{align-items:center;gap:10px;display:flex}.invoice-brand strong,.invoice-title strong{color:#12343b;font-size:22px;display:block}.invoice-brand span,.invoice-title span,.invoice-info span,.invoice-total span,.invoice-signatures span{color:#61727a;font-size:12px;display:block}.invoice-title{text-align:right}.invoice-info{margin:16px 0}.invoice-info p{color:#52666d;margin:4px 0 0}.invoice-table{min-width:0;margin-top:10px}.invoice-table th,.invoice-table td{padding:8px 6px}.invoice-total{flex-direction:column;align-items:flex-end;margin-top:14px}.invoice-total div{border-bottom:1px solid #edf2f2;justify-content:space-between;gap:14px;width:min(280px,100%);padding:6px 0;display:flex}.invoice-signatures{margin-top:34px}.po-sheet{color:#17212b;background:#fff;width:180mm;min-height:210mm;margin:0 auto;padding:10mm 12mm;box-shadow:0 22px 60px #00000047}.po-sheet.paper-a5{width:148mm;min-height:200mm;padding:7mm 9mm;font-size:13px}.po-header{border-bottom:2px solid #0f766e;justify-content:space-between;align-items:flex-start;margin-bottom:18px;padding-bottom:12px;display:flex}.po-brand{align-items:center;gap:10px;display:flex}.po-brand strong{color:#12343b;font-size:20px;display:block}.po-brand span{color:#61727a;font-size:12px;display:block}.po-title{text-align:right}.po-title strong{color:#0f766e;letter-spacing:1px;font-size:24px;display:block}.po-title span{color:#4f6f76;margin-top:4px;font-size:13px;font-weight:600;display:block}.po-supplier{background:#f8fcfb;border:1px solid #e2eceb;border-radius:6px;margin-bottom:18px;padding:10px 14px}.po-supplier span{color:#6d878b;text-transform:uppercase;font-size:11px;font-weight:700}.po-supplier strong{color:#12343b;margin:4px 0;font-size:16px;display:block}.po-supplier p{color:#52666d;margin:2px 0;font-size:13px}.po-total{justify-content:flex-end;margin-top:14px;display:flex}.po-total div{border-top:2px solid #12343b;justify-content:space-between;width:min(260px,100%);padding:8px 0;font-size:17px;display:flex}.po-total span{color:#4f6f76}.po-total strong{color:#12343b}.po-notes{background:#fffcf0;border-left:3px solid #d99b32;margin-top:14px;padding:8px 12px}.po-notes span{color:#7a6233;font-size:12px;font-weight:700}.po-notes p{color:#3f4f50;margin:4px 0 0;font-size:13px}.po-status-badge{text-align:right;color:#61727a;margin-top:14px;font-size:13px}.po-status-badge strong{color:#0f766e}.financial-table{border-collapse:collapse;width:100%;font-size:14px}.financial-table th{text-align:left;color:#4f6f76;text-transform:uppercase;border-bottom:2px solid #dae3e3;padding:8px 12px;font-size:12px}.financial-table td{color:#17212b;border-bottom:1px solid #eef3f3;padding:6px 12px}.financial-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.financial-table .section-row td{color:#0f766e;border-bottom:1px solid #dae3e3;padding-top:14px;font-weight:700}.financial-table .indent{color:#3f5a5f;padding-left:28px}.financial-table .total-row td{border-top:1px solid #cbd5d5;font-weight:700}.financial-table .grand-total td{border-top:2px solid #17212b;padding-top:10px;font-size:16px}.financial-table .grand-total.profit td{color:#0f766e}.financial-table .grand-total.loss td{color:#b91c1c}.po-footer-text{text-align:center;color:#84989d;border-top:1px solid #e2eceb;margin-top:30px;padding-top:14px;font-size:12px}.invoice-signatures div{text-align:center;border-top:1px solid #9aabb0;width:42%;padding-top:8px}.table-shell{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;min-width:680px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e4eceb;padding:11px 10px;font-size:13px}th{color:#50656c;background:#f8fbfb;font-weight:800}td{color:#1b2c32}tr:hover td{background:#fbf8ef}.align-right{text-align:right}.badge{border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.badge.success{color:#13795b;background:#e3f5ed}.badge.warning{color:#8a5d0a;background:#fff2cf}.badge.neutral{color:#55656b;background:#edf1f2}.badge-admin{color:#92400e;background:#fef3c7}.badge-owner{color:#3730a3;background:#e0e7ff}.badge-teknisi{color:#1e40af;background:#dbeafe}.badge-sales{color:#065f46;background:#d1fae5}.badge-hadir{color:#16a34a;background:#dcfce7}.badge-sakit{color:#d97706;background:#fef3c7}.badge-izin{color:#2563eb;background:#dbeafe}.report-toolbar{grid-template-columns:minmax(220px,1fr) 170px 170px auto;align-items:end;gap:12px;margin-bottom:14px;display:grid}.alert,.loading-state,.empty-state{border-radius:8px;padding:12px 14px;font-weight:700}.alert{margin-bottom:14px}.alert.success{color:#126348;background:#ecf8f2;border:1px solid #b9dfcf}.alert.error{color:#9a3412;background:#fff1ee;border:1px solid #f2c4bb}.loading-state,.empty-state{color:#66787f;background:#ffffffad;border:1px dashed #c7d3d2}.login-page{background:radial-gradient(at 30% 20%,#d6e9e7,#bdd5d1);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #c8dbd8;border-radius:12px;width:min(400px,100%);padding:32px;box-shadow:0 20px 60px #12343b2e}.login-brand{text-align:center;margin-bottom:28px}.login-brand .brand-mark{width:64px;height:64px;margin:0 auto 12px}.login-brand strong{color:#12343b;font-size:22px;display:block}.login-brand span{color:#61727a;margin-top:4px;font-size:13px;display:block}.login-form{gap:16px;display:grid}.login-form .primary-button{min-height:46px;font-size:16px}.sidebar-footer{border-top:1px solid #ffffff0f;gap:8px;margin-top:auto;padding-top:12px;display:grid}.sidebar-user{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;transition:background .2s;display:flex}.sidebar-user:hover{background:#ffffff0f}.sidebar-avatar{color:#1a2f35;background:linear-gradient(135deg,#d99b32,#e8b44a);border-radius:8px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:grid}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-info strong{color:#e6f0f1;white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.sidebar-user-role{color:#8aabaf;text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.sidebar-logout{color:#9ab5b9;cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:36px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.sidebar-logout:hover{color:#f0f6f7;background:#ffffff14;border-color:#ffffff26}.dashboard-grid{gap:16px;display:grid}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.chart-section{min-height:280px}.chart-wide{grid-column:1/-1}.modal-card{background:#fff;border-radius:12px;width:min(400px,100%);margin:60px auto;padding:24px;box-shadow:0 20px 60px #0000004d}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-head strong{color:#12343b;font-size:18px}.modal-card .login-form{gap:14px}.brand-image{object-fit:cover;border-radius:8px;width:44px;height:44px}.logo-upload{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.logo-preview{background:#f8fbfb;border:2px dashed #cbd8d7;border-radius:10px;place-items:center;width:64px;height:64px;display:grid;overflow:hidden}.logo-preview img{object-fit:contain;width:100%;height:100%}.logo-hint{color:#84989d;width:100%;font-size:12px}.backup-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.reset-checkbox-grid{flex-wrap:wrap;gap:6px 14px;margin-bottom:8px;display:flex}.reset-checkbox,.reset-checkbox-all{cursor:pointer;color:#3f5a5f;align-items:center;gap:4px;font-size:13px;display:flex}.reset-checkbox-all{color:#0f766e;width:100%;margin-top:4px;font-weight:700}.reset-checkbox-all:first-child{margin-top:0}.reset-checkbox input,.reset-checkbox-all input{accent-color:#0f766e;cursor:pointer;width:16px;height:16px}.schedule-form{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.schedule-input{color:#182a30;min-height:40px;font:inherit;background:#fff;border:1px solid #cbd8d7;border-radius:8px;padding:0 10px}.schedule-info{color:#126348;background:#ecf8f2;border:1px solid #b9dfcf;border-radius:8px;margin-bottom:10px;padding:12px}.schedule-info p{margin:4px 0;font-size:13px}.schedule-info strong{color:#0f766e}@media (width<=1180px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.work-grid,.split-grid,.classification-grid{grid-template-columns:1fr}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.app-shell{grid-template-columns:1fr}.sidebar{gap:12px;height:auto;padding:14px;position:static}.nav-list{flex-flow:wrap;gap:4px}.nav-group{flex-flow:wrap;gap:4px;margin-top:0}.nav-group-label{display:none}.nav-item{flex-direction:column;flex:1;justify-content:center;gap:4px;min-width:60px;min-height:52px;padding:0 6px}.nav-item span:last-child{font-size:10px}.brand-edit-icon{display:none}.main-area{padding:14px}.topbar{align-items:flex-start}.topbar h1{font-size:24px}.metric-grid,.form-grid,.form-grid.compact,.report-toolbar{grid-template-columns:1fr}.section-title{flex-direction:column;align-items:flex-start}.primary-button,.secondary-button,.secondary-button.as-button,.danger-button,.muted-button{width:100%}.form-actions{flex-direction:column;align-items:stretch}.table-actions{justify-content:flex-start}.print-controls{grid-template-columns:1fr}}@media print{body *{visibility:hidden}.print-layer,.print-layer *{visibility:visible}.print-layer{background:#fff;padding:0;position:absolute;inset:0;overflow:visible}.print-controls{display:none}.invoice-sheet{width:100%;min-height:auto;box-shadow:none;margin:0;padding:0}.report-print-area,.report-print-area *{visibility:visible!important}.report-print-area .report-toolbar,.report-print-area .section-title-action,.report-print-area .sidebar,.report-print-area .topbar{display:none!important}@page{margin:10mm}}.absensi-container{flex-direction:column;align-items:center;gap:16px;max-width:420px;min-height:calc(100vh - 120px);margin:0 auto;padding:16px;display:flex}.absensi-login-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 4px 24px #00000014}.absensi-logo{color:#0d9488;margin-bottom:12px}.absensi-header{background:#fff;border-radius:12px;align-items:center;gap:12px;width:100%;max-width:400px;padding:14px 16px;display:flex;box-shadow:0 2px 12px #0000000f}.absensi-user-avatar{color:#fff;background:linear-gradient(135deg,#0d9488,#14b8a6);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:18px;font-weight:700;display:flex}.absensi-user-info{flex-direction:column;flex:1;gap:2px;display:flex}.absensi-user-info strong{color:#12343b;font-size:15px}.absensi-user-info span{color:#6b7280;font-size:12px}.absensi-logout{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px;transition:all .2s}.absensi-logout:hover{color:#ef4444;background:#f3f4f6}.absensi-main-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:400px;padding:32px 20px;box-shadow:0 4px 24px #00000014}.absensi-status{flex-direction:column;align-items:center;gap:8px;display:flex}.absensi-status h2{color:#12343b;margin:0;font-size:22px}.absensi-status p{color:#6b7280;margin:0;font-size:14px}.absensi-check-icon{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:8px;display:flex}.absensi-btn{cursor:pointer;border:none;border-radius:12px;width:100%;max-width:280px;margin-top:16px;padding:14px 40px;font-size:17px;font-weight:600;transition:all .2s}.absensi-btn:disabled{opacity:.6;cursor:not-allowed}.absensi-btn-in{color:#fff;background:linear-gradient(135deg,#0d9488,#14b8a6);box-shadow:0 4px 16px #0d948859}.absensi-btn-in:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #0d948873}.absensi-btn-in:active:not(:disabled){transform:translateY(0)}.absensi-btn-out{color:#fff;background:linear-gradient(135deg,#ea580c,#f97316);box-shadow:0 4px 16px #ea580c59}.absensi-btn-out:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #ea580c73}.absensi-week-chart{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:16px;box-shadow:0 2px 12px #0000000f}.absensi-week-chart h3{color:#374151;margin:0 0 12px;font-size:14px}.absensi-week-grid{gap:4px;display:flex}.absensi-week-item{background:#f9fafb;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 2px;transition:all .2s;display:flex}.absensi-week-item.active{background:#f0fdf4}.absensi-week-day{color:#6b7280;text-transform:uppercase;font-size:10px}.absensi-week-date{color:#374151;font-size:11px;font-weight:600}.absensi-week-time{color:#0d9488;font-size:10px;font-weight:500}.absensi-history{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:16px;box-shadow:0 2px 12px #0000000f}.absensi-history h3{color:#374151;margin:0 0 12px;font-size:14px}.absensi-history-item{border-bottom:1px solid #f3f4f6;align-items:center;gap:8px;padding:10px 8px;display:flex}.absensi-history-item:last-child{border-bottom:none}.absensi-history-date{color:#374151;min-width:88px;font-size:13px}.absensi-history-time{color:#6b7280;flex:1;font-size:13px}.absensi-history-status{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.absensi-history-status.status-hadir{color:#16a34a;background:#dcfce7}.absensi-history-status.status-sakit{color:#d97706;background:#fef3c7}.absensi-history-status.status-izin{color:#2563eb;background:#dbeafe}
