*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#1f2937;background:linear-gradient(135deg,#1e3a8a,#2563eb 55%,#38bdf8);min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{background:#fff;border-radius:12px;width:100%;max-width:420px;padding:32px 28px;box-shadow:0 20px 40px #0003}.auth-card h1{text-align:center;margin:0 0 6px;font-size:24px}.subtitle{text-align:center;color:#6b7280;margin:0 0 24px;font-size:14px}label{margin:16px 0 6px;font-size:14px;font-weight:600;display:block}input,select{background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:10px 12px;font-size:15px}input:focus,select:focus{border-color:#0000;outline:2px solid #2563eb}button,.button{color:#fff;text-align:center;cursor:pointer;background:#2563eb;border:none;border-radius:999px;width:100%;margin-top:24px;padding:11px;font-size:15px;font-weight:600;text-decoration:none;display:block}button:hover,.button:hover{background:#1d4ed8}button:disabled{opacity:.6;cursor:not-allowed}button.link{color:#2563eb;background:0 0;width:auto;margin:0;padding:0;font-weight:400;display:inline}a{color:#2563eb}.footer{text-align:center;margin:20px 0 0;font-size:14px}.alert,.success{border-radius:8px;margin-bottom:8px;padding:10px 12px;font-size:14px}.alert{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.details{grid-template-columns:auto 1fr;gap:6px 12px;margin:0 0 8px;font-size:14px;display:grid}.details dt{color:#6b7280}.details dd{overflow-wrap:anywhere;margin:0}.panel{color:#fff;background:#222f4b;min-height:100vh}.panel a{color:inherit}.panel button{border-radius:4px;width:auto;margin:0;display:inline-block}.panel-header{background:#0f111d;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.panel-header-left{align-items:center;gap:12px;display:flex;position:relative}.logo{height:40px;display:block}.menu-toggle{flex-direction:column;justify-content:center;gap:4px;height:46px;background:0 0!important;width:46px!important;padding:12px!important;display:flex!important}.menu-toggle span{background:#fff;border-radius:1px;height:2px;transition:transform .3s ease-in-out,opacity .3s;display:block}.menu-toggle.open span:first-child{transform:translateY(6px)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.menu-dropdown{z-index:50;background:#1f233f;width:250px;margin:0;padding:0;list-style:none;position:absolute;top:56px;left:0}.menu-dropdown a{border-bottom:1px solid #515151;padding:14px 10px;text-decoration:none;display:block}.menu-dropdown a:hover{background:#c0504e}.panel .logout{background:0 0;align-items:center;gap:6px;padding:10px 4px;font-weight:400;display:flex}.panel .logout:hover{background:0 0;text-decoration:underline}.panel-main{padding:0 15px 30px}.panel-main.with-footer{padding-bottom:90px}.panel-footer{z-index:10;background:#0f111d;width:100%;padding:19px 16px;position:fixed;bottom:0;left:0}.panel-message,.panel-error{margin:30px 0 0;font-size:18px}.panel-error{color:#b91c1c;background:#fef2f2;border-radius:6px;padding:10px 14px;font-size:15px}.tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:0 30px;display:grid}.tile{align-items:center;min-height:150px;margin-top:30px;padding:30px;text-decoration:none;transition:box-shadow .2s;display:flex;position:relative;overflow:hidden;color:#fff!important}.tile:hover{box-shadow:0 0 19px 5px #000}.tile h3{z-index:1;text-transform:uppercase;overflow-wrap:break-word;margin:0;font-size:25px;font-weight:300;position:relative}.tile img{opacity:.2;width:45%;max-width:120px;position:absolute;top:50%;right:30px;transform:translateY(-50%)}.first{background:linear-gradient(90deg,#f6d064 0%,#ff7b0d 100%)}.secend{background:linear-gradient(90deg,#d6d024 0%,#72c223 100%)}.therd{background:linear-gradient(90deg,#63a1f6 0%,#1167d2 100%)}.coming-soon{text-align:center;max-width:480px;margin:60px auto 0}.attendance{grid-template-columns:minmax(200px,1fr) 5fr;gap:30px;display:grid}@media (width<=800px){.attendance{grid-template-columns:1fr;gap:0}}.filter-box{background:#0f111d;border-radius:7px 7px 0 0;margin-top:30px}.filter-box h3,.analysis h3,.list-header{text-align:center;background:#c0504e;border-radius:5px 5px 0 0;margin:0;padding:8px;font-size:22px;font-weight:500}.filter-box ul{max-height:320px;margin:0;padding:10px 20px;list-style:none;overflow-y:auto}.filter-box li{line-height:30px}.filter-box label{cursor:pointer;margin:0;font-size:15px;font-weight:400;display:inline}.filter-box input{width:auto;margin-right:4px}.analysis{padding-top:30px}.analysis h3{justify-content:center;align-items:center;gap:12px;display:flex}.analysis h3 button{color:#000;background:#f0f0f0;padding:2px 12px;font-weight:700}.analysis h3 button:hover{background:#fff}.count-table,.data-table{border-collapse:collapse;color:#000;background:#fff;width:100%}.count-table th,.data-table th{color:#fff;text-align:center;background:#4f81bc;border:1px solid #dee2e6;padding:8px}.count-table th,.count-table td{font-size:20px}.count-table td,.data-table td{text-align:center;border:1px solid #dee2e6;padding:8px}.count-table a{text-decoration:none;display:block;color:#000!important}.count-table a:hover{text-decoration:underline}.chart-box{color:#000;background:#fff;border:1px solid gray;margin-top:16px;padding:16px}.chart{text-align:center;margin:0}.chart figcaption{margin-bottom:8px;font-size:20px;font-weight:600}.chart svg{width:220px;height:220px}.chart-empty{color:#6b7280;padding:60px 0}.chart-legend{flex-wrap:wrap;justify-content:center;gap:8px 24px;margin:8px 0 0;padding:0;list-style:none;display:flex}.swatch{vertical-align:middle;width:12px;height:12px;margin-right:6px;display:inline-block}.loading-overlay{z-index:9999;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-overlay h3{background:#fff3;border-radius:5px;padding:20px;font-size:24px}.list-page{padding-top:30px}.list-header{text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.list-header h2{margin:0;font-size:20px;font-weight:500}.list-header .back{text-decoration:none}.list-header input{color:#000;width:220px;max-width:100%;padding:6px 10px;font-size:14px}.list-count{margin:10px 0;font-size:14px}.table-scroll{overflow-x:auto}.data-table{font-size:14px}.data-table tbody tr:nth-child(odd){background:#f2f2f2}.data-table .nowrap{white-space:nowrap}.data-table .wide{text-align:left;min-width:180px}.update-time{font-size:16px}.update-remark{color:red;margin-top:8px;display:block}.badge{color:#fff;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.badge.danger{background:#dc3545}.badge.warning{color:#000;background:#ffc107}.badge.success{background:#28a745}.badge.info{background:#17a2b8}.admin{color:#212121;background:#f4f4f4;min-height:100vh}.admin-topbar{z-index:40;background:#fff;align-items:center;gap:16px;height:66px;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 1px 4px #00000026}.admin-brand{color:#212121;font-size:22px;font-weight:700;text-decoration:none}.admin-menu-button{background:0 0;flex-direction:column;gap:4px;width:40px;margin:0;padding:10px;display:none}.admin-menu-button:hover{background:#f0f0f0}.admin-menu-button span{background:#212121;height:2px;display:block}.admin-logout{color:#212121;background:0 0;border-radius:4px;width:auto;margin:0 0 0 auto;padding:8px 14px;font-weight:500}.admin-logout:hover{background:#f0f0f0}.admin-sidebar{z-index:30;background:#fff;border-right:1px solid #dedede;width:225px;padding-bottom:20px;position:fixed;top:66px;bottom:0;left:0;overflow-y:auto;box-shadow:0 5px 5px #00000026}.admin-profile{flex-direction:column;align-items:center;gap:6px;margin:28px 0 10px;font-weight:600;display:flex}.admin-profile img{border-radius:50%;width:70px;height:70px}.admin-nav-header{letter-spacing:.08em;text-transform:uppercase;color:#878787;margin:0;padding:11px 15px;font-size:11px;font-weight:600}.admin-sidebar a{color:#212121;padding:7px 15px;font-size:14px;text-decoration:none;display:block}.admin-sidebar a:hover{background:#2121210d}.admin-sidebar a.active{color:#f742aa;font-weight:600}.admin-sidebar hr{border:none;border-top:1px solid #eee;margin:10px 15px}.admin-content{margin-left:225px;padding:86px 20px 30px}@media (width<=800px){.admin-menu-button{display:flex}.admin-sidebar{transition:transform .3s;transform:translate(-100%)}.admin-sidebar.open{transform:none}.admin-content{margin-left:0;padding:80px 16px 30px}}.admin-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.admin-heading h1{margin:0;font-size:18px;font-weight:600}.breadcrumb{flex-wrap:wrap;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.breadcrumb li+li:before{content:"/";color:#aaa;padding:0 8px}.breadcrumb a{color:#635bd6;text-decoration:none}.breadcrumb span{color:#878787}.admin-panel{background:#fff;border-radius:3px;padding:20px;box-shadow:0 1px 11px #00000017}.admin-alert{color:#fff;border-radius:3px;margin-bottom:16px;padding:12px 16px}.admin-alert.success{background:#76c880}.admin-alert.danger{background:#f73414}.admin-alert ul{margin:0;padding-left:18px}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-toolbar input{border-radius:3px;width:240px;max-width:100%;padding:7px 10px;font-size:14px}.admin-btn{cursor:pointer;border:none;border-radius:3px;justify-content:center;align-items:center;gap:6px;width:auto;margin:0;padding:9px 18px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex;color:#fff!important}.admin-btn.small{padding:6px 9px}.admin-btn.danger{background:#f73414}.admin-btn.primary{background:#635bd6}.admin-btn.success{background:#76c880;margin-top:8px}.admin-btn:hover{filter:brightness(.92)}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border:1px solid #dedede;padding:10px 12px}.admin-table th{color:#212121;font-weight:600}.admin-table tbody tr:nth-child(odd){background:#f9f9f9}.admin-table .actions{white-space:nowrap}.admin-table .actions>*+*{margin-left:6px}.admin-badge{color:#fff;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.admin-badge.active{background:#76c880}.admin-badge.inactive{background:#aaa}.admin-form{max-width:900px}.admin-field{margin-bottom:16px}.admin-field label,.admin-field legend{margin:0 0 8px;font-size:14px;font-weight:600;display:block}.admin-field input,.admin-field select,.admin-field textarea{width:100%;font:inherit;background:#fff;border:1px solid #d1d5db;border-radius:3px;padding:9px 12px;font-size:14px}.admin-field input[readonly],.admin-field select:disabled{color:#666;background:#f1f1f1}.admin-field .with-prefix{display:flex}.admin-field .prefix{background:#f1f1f1;border:1px solid #d1d5db;border-right:none;border-radius:3px 0 0 3px;padding:9px 10px;font-size:14px}.admin-field .with-prefix input{border-radius:0 3px 3px 0}.admin-field.status{border:none;margin:0 0 16px;padding:0}.admin-field.status label{align-items:center;gap:6px;margin-right:20px;font-weight:400;display:inline-flex}.admin-field.status input{width:auto}.admin-toolbar-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-btn.light{background:#f0f0f0;border:1px solid #dedede;color:#212121!important}.admin-btn.warning{background:#f8b32d}.admin-btn.info{background:#2e9fcc}.admin-btn:disabled{opacity:.6;cursor:not-allowed}.admin-field-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 16px;display:grid}.admin-btn.success-solid{background:#76c880}.admin-toolbar select{background:#fff;border:1px solid #d1d5db;border-radius:3px;width:auto;padding:8px 10px;font-size:14px}.admin-hint{color:#6b7280;margin:4px 0 8px;font-size:13px}.admin-inline-error{color:#f73414;font-size:13px}.admin-panel-title{margin:0;font-size:16px;font-weight:600}.admin-subtitle{margin:24px 0 8px;font-size:15px}.admin-instructions{margin:0;padding-left:20px;font-size:14px;line-height:1.8}.upload-box{background:#fafafa;border:1px dashed #c9c9c9;border-radius:4px;max-width:480px;padding:20px}.upload-box label{margin-bottom:8px;font-weight:600;display:block}.upload-box input[type=file]{margin-bottom:12px;display:block}.checkbox-grid{border:none;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 16px;padding:0;display:grid}.checkbox-grid legend{grid-column:1/-1}.checkbox-grid label,.access-group label{align-items:center;gap:6px;margin:0;font-weight:400;display:flex}.checkbox-grid input,.access-group input{width:auto}.access-groups{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;max-height:360px;display:grid;overflow-y:auto}.access-group{border:1px solid #e5e5e5;border-radius:4px;padding:10px}.access-group .access-client{margin-bottom:6px;font-weight:600}.access-group .access-project{margin-left:18px;font-size:13px}.admin-note{color:#f73414;margin:0 0 12px;font-size:14px}.report-filters{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-items:end;gap:0 16px;margin:16px 0;display:grid}.report-filters>.admin-btn{justify-self:start;margin-bottom:16px}.report-filters .user-filter,.report-filters .layout-choice,.report-filters .report-buttons{grid-column:1/-1}.user-filter,.layout-choice{border:none;padding:0}.user-filter small,.layout-choice small{color:#6b7280;font-weight:400}.user-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 16px;max-height:200px;display:grid;overflow-y:auto}.user-list label,.layout-choice label{align-items:center;gap:6px;margin:0 0 4px;font-size:13px;font-weight:400;display:flex}.user-list input,.layout-choice input{width:auto}.report-buttons{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.report-table td{font-size:13px}.report-table .wide{min-width:180px}.report-table .nowrap{white-space:nowrap}.report-table .update-remark{color:#f73414;margin-top:6px;display:block}.day-status{color:#fff;white-space:nowrap;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.day-status.present{background:#76c880}.day-status.absent{background:#f73414}.day-status.other{background:#2e9fcc}.leave-tabs{border-bottom:2px solid #eee;flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.admin .leave-tab{color:#555;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;width:auto;margin:0 0 -2px;padding:10px 16px;font-size:14px;font-weight:500;display:inline-flex}.admin .leave-tab:hover{background:#f7f7f7}.admin .leave-tab.active{color:#f742aa;border-bottom-color:#f742aa}.leave-count{color:#333;background:#eee;border-radius:10px;padding:1px 7px;font-size:12px}.leave-filters{flex-wrap:wrap;align-items:flex-end;gap:0 12px;display:flex}.leave-filters .admin-field{width:170px}.leave-filters>.admin-btn{margin-bottom:16px}.leave-filters-right{gap:8px;margin:0 0 16px auto;display:flex}.leave-filters-right input{width:220px;padding:7px 10px;font-size:14px}.leave-table td{font-size:13px}.leave-table .nowrap{white-space:nowrap}.leave-table .wide{min-width:200px}.leave-status{color:#fff;text-transform:capitalize;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.leave-status.pending{background:#f8b32d}.leave-status.approved{background:#76c880}.leave-status.declined{background:#f73414}.admin-dialog-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.admin-dialog{color:#212121;background:#fff;border-radius:4px;width:100%;max-width:480px;padding:20px;box-shadow:0 10px 30px #0000004d}.admin-dialog h2{margin:0 0 6px;font-size:17px}.admin-dialog-buttons{justify-content:flex-end;gap:8px;display:flex}.label-row{justify-content:space-between;align-items:baseline;display:flex}.label-row a{font-size:12px}.list-links{margin:0 0 12px;font-size:14px}.ticket-tag{color:#fff;white-space:nowrap;background:#878787;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.ticket-tag.priority-high,.ticket-tag.status-rejected{background:#f73414}.ticket-tag.priority-low{background:#2e9fcc}.ticket-tag.status-pending{background:#f8b32d}.ticket-tag.status-active,.ticket-tag.status-done{background:#76c880}.ticket-tag.status-progress{background:#2e9fcc}.report-table .lines{white-space:pre-line}.legacy-mapping{margin-top:20px}.claim-status{color:#fff;white-space:nowrap;background:#878787;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.claim-status.pending_approval{background:#f8b32d}.claim-status.needs_correction{background:#2e9fcc}.claim-status.approved{background:#76c880}.claim-status.rejected,.claim-status.notification_failed{background:#f73414}.claim-details{grid-template-columns:max-content 1fr;gap:8px 20px;margin:16px 0;font-size:14px;display:grid}.claim-details dt{color:#6b7280;font-weight:600}.claim-details dd{margin:0}.claim-files{padding-left:0;font-size:14px;list-style:none}.claim-files li{margin-bottom:6px}.pager{justify-content:center;align-items:center;gap:12px;margin-top:16px;font-size:14px;display:flex}@media (width<=600px){.claim-details{grid-template-columns:1fr}}
