:root{color:#172033;background:#eef2f7;font-family:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.app{background:#eef2f7;grid-template-rows:auto minmax(0,1fr);min-height:100vh;display:grid}.app-header{z-index:10;background:#fff;border-bottom:1px solid #d8dee9;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:12px 20px;display:grid;position:sticky;top:0;box-shadow:0 8px 22px #1720330f}.app-body{grid-template-columns:280px minmax(0,1fr);min-width:0;display:grid}.sidebar{color:#fff;background:#172033;align-self:start;min-height:calc(100vh - 67px);max-height:calc(100vh - 67px);padding:18px 16px;position:sticky;top:67px;overflow:auto}.brand{align-items:center;gap:12px;min-width:220px;display:flex}.app-header .brand{margin-bottom:0}.brand.compact{margin-bottom:20px}.brand-mark{color:#fff;background:#3a8f6b;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.brand-name{font-weight:700}.brand-subtitle,.muted,.topbar p,.app-header .brand-subtitle{color:#6b7280}.module-tabs{align-items:center;gap:6px;min-width:0;padding:2px;display:flex;overflow-x:auto}.module-tab{color:#344054;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;padding:10px 14px}.module-tab:hover{background:#f1f5f9}.module-tab.active{color:#fff;background:#172033;border-color:#172033}.app-user{align-items:center;gap:10px;display:flex}.user-name{text-overflow:ellipsis;white-space:nowrap;color:#344054;max-width:180px;font-weight:600;overflow:hidden}.context-menu{align-content:start;gap:14px;display:grid}.context-title{color:#fff;padding:8px 10px 6px;font-size:18px;font-weight:700}.nav-group{gap:5px;display:grid}.nav-group-title{color:#9fb0c8;padding:0 10px 4px;font-size:13px;font-weight:600}.nav-item{text-align:left;color:#e8edf5;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;border-left:3px solid #0000;border-radius:6px;padding:10px 12px}.nav-item:hover{color:#fff;background:#ffffff1a}.nav-item.active{color:#fff;background:#ffffff29;border-left-color:#42b883}.content{min-width:0;padding:24px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.breadcrumb{color:#6b7280;margin-bottom:6px;font-size:13px}h1,h2,p{margin-top:0}h1{margin-bottom:4px;font-size:26px}h2{font-size:18px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.dashboard-section{gap:14px;display:grid}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.metric-card{background:#fff;border:1px solid #d8dee9;border-radius:8px;gap:6px;min-height:92px;padding:14px;display:grid;box-shadow:0 8px 24px #1720330d}.metric-value{color:#172033;overflow-wrap:anywhere;font-size:24px;font-weight:700;line-height:1.15}.metric-label{color:#516079;font-size:13px}.dashboard-status-panel{box-shadow:none}.status-point-list{gap:8px;display:grid}.status-point{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.status-point:last-child{border-bottom:0}.panel{background:#fff;border:1px solid #d8dee9;border-radius:8px;padding:20px;box-shadow:0 10px 30px #1720330f}.wide{grid-column:1/-1}.login{gap:14px;width:min(420px,100%);display:grid}label{color:#344054;gap:6px;display:grid}input{border:1px solid #c7cfdd;border-radius:6px;width:100%;padding:10px 12px}select{background:#fff;border:1px solid #c7cfdd;border-radius:6px;width:100%;min-height:40px;padding:8px 10px}textarea{resize:vertical;width:100%;min-height:92px;font:inherit;border:1px solid #c7cfdd;border-radius:6px;padding:10px 12px}.primary,.secondary,.actions button{cursor:pointer;border:0;border-radius:6px;padding:10px 14px}.primary{color:#fff;background:#2f7d5e}.primary:disabled{opacity:.7;cursor:default}.secondary{color:#172033;background:#e5eaf2}.actions button{color:#172033;white-space:nowrap;background:#edf2f7}button:disabled,.actions button:disabled{opacity:.55;cursor:default}.error{color:#a33232;background:#fff0f0;border:1px solid #f1b8b8;border-radius:6px;padding:10px 12px}dl{grid-template-columns:150px minmax(0,1fr);gap:10px 14px;margin:0;display:grid}dt{color:#6b7280}dd{overflow-wrap:anywhere;margin:0}.workspace{gap:14px;min-width:0;display:grid}.filters{grid-template-columns:minmax(220px,320px) minmax(260px,1fr) auto;align-items:end;gap:12px;display:grid}.filters-with-scope{grid-template-columns:minmax(220px,320px) minmax(260px,1fr) minmax(220px,320px) auto}.weekly-entry-screen{gap:8px}.weekly-filter-shell{grid-template-columns:minmax(0,1fr) 128px;align-items:start;gap:12px;display:grid}.weekly-filter-grid{grid-template-columns:minmax(210px,1fr) minmax(320px,2fr) minmax(220px,1fr);align-items:end;gap:8px 12px;display:grid}.weekly-filter-grid label{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;display:grid}.weekly-filter-grid .wide-field{grid-template-columns:118px minmax(0,1fr)}.contract-name-field{grid-column:span 1}.weekly-selected-summary{color:#516079;align-items:center;min-height:38px;font-size:13px;display:flex}.weekly-action-stack{gap:7px;display:grid}.weekly-action-stack button{justify-content:center;min-height:30px}.manage-filters{grid-template-columns:minmax(220px,320px) minmax(260px,1fr) auto}.editor-grid{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;padding:14px;display:grid}.editor-grid input[type=checkbox]{justify-self:start;width:auto;min-height:22px}.editor-actions{grid-column:1/-1}.password-form{gap:14px;max-width:460px;display:grid}.detail-editor{border-top:1px solid #d8dee9;grid-column:1/-1;gap:12px;padding-top:12px;display:grid}.user-permission-editor{background:#fff;border:1px solid #d8dee9;border-radius:8px;padding:14px}.permission-checklist{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px;display:grid}.password-reset-grid{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:12px;display:grid}.user-account-view{min-height:calc(100vh - 230px)}.user-account-toolbar{align-items:end;gap:8px;margin-bottom:6px}.search-field{gap:4px;min-width:240px}.user-account-toolbar input{min-height:34px;padding:6px 10px}.user-account-toolbar .primary,.user-account-toolbar .secondary{min-height:34px;padding:7px 12px;line-height:1}.user-account-layout{grid-template-columns:minmax(0,1fr) 390px;align-items:start;gap:16px;display:grid}.user-account-editor-section{gap:8px;min-width:0;display:grid}.account-editor-title{color:#172033;gap:2px;padding:0 2px;display:grid}.account-editor-title strong{font-size:15px}.account-editor-title span{color:#667085;font-size:12px}.user-account-table-wrap{background:#fff;border:1px solid #d8dee9;border-radius:8px;max-height:calc(100vh - 285px)}.user-account-table{min-width:1180px;font-size:13px}.user-account-table th,.user-account-table td{padding:6px 7px}.user-account-table th:first-child,.user-account-table td:first-child{text-align:center;width:28px}.user-account-table th:nth-child(2),.user-account-table td:nth-child(2),.user-account-table th:nth-child(8),.user-account-table td:nth-child(8),.user-account-table th:nth-child(9),.user-account-table td:nth-child(9){text-align:center;white-space:nowrap}.user-account-table .selected-row{background:#d9ebfb}.user-account-mobile-list{display:none}.user-account-card{color:#172033;text-align:left;background:#fff;border:1px solid #d8dee9;border-radius:8px;width:100%;padding:9px 10px}.user-account-card.selected-row{background:#d9ebfb;border-color:#8bbce8}.account-card-main{justify-content:space-between;gap:10px;font-weight:600;display:flex}.account-card-meta{color:#667085;margin-top:4px;font-size:12px;display:block}.check-cell input{width:16px;min-height:16px}.empty-cell{color:#667085;text-align:center;padding:16px}.user-account-editor{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;gap:7px;padding:12px;display:grid}.user-account-editor>label:not(.account-active-check){color:#24324b;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:8px;font-size:13px;display:grid}.user-account-editor input,.user-account-editor select{min-height:28px;padding:4px 8px;font-size:13px}.user-permission-box{gap:6px;padding-top:4px;display:grid}.user-permission-list{background:#fff;border:1px solid #cfd7e6;max-height:420px;overflow:auto}.user-permission-row{color:#24324b;border-bottom:1px solid #edf1f7;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:6px;padding:5px 6px;font-size:13px;line-height:1.25;display:grid}.user-permission-row:hover{background:#eef6ff}.user-permission-row input{width:14px;min-height:14px;margin-top:1px}.account-active-check{align-items:center;gap:6px;margin-top:2px;display:flex}.permission-filters{grid-template-columns:minmax(260px,1fr) repeat(4,auto)}.permission-scope-wrap{max-height:460px}.permission-scope-table{min-width:980px}.permission-scope-table input[type=checkbox]{width:auto;min-height:18px}.import-filters{grid-template-columns:minmax(240px,360px) minmax(280px,1fr) auto}.import-file-table{min-width:1120px}.import-file-table input{min-width:90px;padding:7px 8px}.sheet-picker{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 12px;min-width:360px;display:grid}.inline-check{color:#344054;align-items:center;gap:6px;display:flex}.inline-check input[type=checkbox]{width:auto;min-height:18px}.import-mapping-wrap,.import-preview-wrap,.import-file-wrap{max-height:520px}.table-wrap>h2{margin:0;padding:12px 12px 0}.load-button{min-height:40px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.data-tabs{gap:12px;min-width:0;display:grid}.data-tab-list{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;flex-wrap:wrap;gap:6px;padding:6px;display:flex}.data-tab{color:#344054;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:8px 12px}.data-tab:hover{background:#edf2f7}.data-tab.active{color:#fff;background:#172033;border-color:#172033}.secondary-tabs .data-tab-list,.secondary-tab-list{background:#fff}.data-tab-panel{min-width:0}.empty-state{color:#516079;background:#f8fafc;border:1px dashed #c7cfdd;border-radius:8px;padding:14px}.scope-tabs,.issue-panel,.review-note{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;gap:10px;padding:12px;display:grid}.scope-hint{color:#516079;font-size:13px}.issue-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.issue-panel.collapsed{justify-content:flex-start;display:flex}.review-detail-grid{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);align-items:start;gap:14px;display:grid}.review-detail-grid h2{margin-bottom:8px}.selected-row{background:#eef7f2}.history-table{min-width:720px}.status-text{color:#516079}.table-wrap{background:#fff;border:1px solid #d8dee9;border-radius:8px;width:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:1080px;font-size:14px}.data-table th,.data-table td{vertical-align:top;border-bottom:1px solid #e5eaf2;padding:9px 10px}.data-table th{z-index:1;color:#344054;text-align:left;background:#f6f8fb;font-weight:600;position:sticky;top:0}.data-table tbody tr:hover{background:#f9fbfd}.report-table td:nth-child(3){min-width:300px}.weekly-table-wrap{max-height:calc(100vh - 360px)}.weekly-report-table{min-width:1680px;font-size:13px}.weekly-report-table th,.weekly-report-table td{border-right:1px solid #e5eaf2;padding:6px 7px}.weekly-report-table th{text-align:center;white-space:normal}.weekly-report-table td:first-child{text-align:center;white-space:nowrap;width:80px}.weekly-report-table td:nth-child(2){min-width:520px}.weekly-report-table .editable-cell input{text-align:right;min-width:92px;padding:5px 6px}.weekly-report-table .note-cell input{text-align:left;min-width:160px}.weekly-grid-footer{color:#516079;background:#f8fafc;border-top:1px solid #d8dee9;padding:5px 8px;font-size:13px;position:sticky;left:0}.manage-table{min-width:960px}.manage-table td{overflow-wrap:anywhere;max-width:360px}.title-row{background:#f3f6fb;font-weight:700}.summary-row{background:#fffaf0;font-weight:600}.number{text-align:right;white-space:nowrap}.editable-cell input{min-width:96px;padding:7px 8px}.note-cell input{min-width:180px}.actions{gap:8px;display:flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 8px;font-size:12px;display:inline-flex}.status-DaGui{color:#7a4b00;background:#fff4d6}.status-DaDuyet{color:#106238;background:#dcf7e7}.status-TuChoi{color:#a33232;background:#ffe3e3}.status-Nhap{color:#344054;background:#e9eef7}@media (width<=860px){.app-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:8px 12px}.app-header .brand{gap:8px;min-width:0}.app-header .brand-mark{border-radius:7px;width:34px;height:34px;font-size:14px}.app-header .brand-name{font-size:15px;line-height:1.15}.app-header .brand-subtitle{font-size:13px;line-height:1.15}.module-tabs{order:3;grid-column:1/-1;gap:5px;width:100%;padding:0 0 1px}.module-tab{padding:7px 10px;font-size:14px}.app-user{justify-content:flex-end;gap:6px}.app-user .secondary{border-radius:6px;min-height:32px;padding:7px 10px;line-height:1}.user-name{display:none}.app-body{grid-template-columns:1fr}.sidebar{min-height:0;max-height:none;padding:16px;position:static;overflow:visible}.context-menu{grid-template-columns:1fr;gap:12px}.grid,.issue-grid,.review-detail-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.filters,.weekly-filter-shell,.weekly-filter-grid,.weekly-filter-grid label,.weekly-filter-grid .wide-field{grid-template-columns:1fr}.weekly-action-stack{grid-template-columns:repeat(3,minmax(0,1fr))}.permission-filters,.password-reset-grid{grid-template-columns:1fr}.user-account-layout{grid-template-columns:1fr;gap:10px}.account-editor-title{padding:2px 0 0}.user-account-toolbar{align-items:stretch}.search-field{min-width:0}.user-account-table-wrap{display:none}.user-account-mobile-list{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;gap:8px;padding:10px;display:grid}.account-card-main{flex-direction:column;gap:2px}.user-account-editor{padding:10px}.user-account-editor>label:not(.account-active-check){grid-template-columns:1fr;gap:4px}.editor-grid{grid-template-columns:1fr}}@media (width<=520px){.app-header{padding:7px 10px}.app-header .brand-mark{width:30px;height:30px}.app-header .brand-name{font-size:14px}.app-header .brand-subtitle{font-size:12px}.module-tab{padding:6px 9px;font-size:13px}.app-user .secondary{min-height:30px;padding:6px 9px;font-size:13px}}
