:root{--bg:#f4f3ef;--surface:#fff;--sidebar-bg:#1c1c1e;--sidebar-hover:#2c2c2e;--sidebar-active:#3a3a3c;--accent:#4f6ef7;--accent-soft:#7080e8;--accent-dk:#3a56d4;--accent-bg:#eef1ff;--accent-txt:#3a56d4;--green:#18a058;--green-bg:#e8f7ef;--green-txt:#0f6638;--red:#e03a3a;--red-soft:#c97070;--red-bg:#fef0f0;--red-txt:#b02020;--amber:#d97706;--amber-bg:#fef3e2;--amber-txt:#92560a;--gray-bg:#f0efe9;--gray-txt:#6b6b6b;--leave-bg:#ebe9e2;--day-red-bg:#e03a3a17;--day-blue-bg:#4f6ef717;--bg-subtle:#fafaf8;--border:#e5e4df;--border-md:#d0cfca;--border-light:#d1d5db;--status-approve:#0a5c2e;--status-approve-bg:#c6edd8;--status-reject:#911a1a;--status-reject-bg:#facccc;--status-pending:#1558a0;--status-pending-bg:#c8e2fa;--attendance-office:#00875a;--attendance-office-dk:#064;--attendance-zaita:#ffab00;--attendance-kyuka:#de350b;--accent-light:#7b93ff;--cyan:#8dfaf5;--cyan-txt:#0d3535;--draft-bg:#dddcd6;--draft-txt:#4a4a4a;--red-dk:#b91c1c;--purple:#6d28d9;--purple-bg:#f3eeff;--teal:#0d9488;--teal-bg:#e6faf8;--waiting-bg:#f3f4f6;--waiting-border:#e5e7eb;--waiting-txt:#6b7280;--amber-icon:#f59e0b;--status-approve-border:#a0d8b8;--status-pending-border:#a0c8ee;--status-reject-border:#f0a8a8;--self-burden-bg:#9bc8eb;--text:#1a1a1a;--text-2:#5a5a5a;--text-3:#9a9a9a;--radius:10px;--radius-lg:14px;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000a;--font-ui:"DM Sans", "Noto Sans JP", sans-serif;--surface-2:#f0f9ff;--danger:#dc2626;--danger-bg:#fee2e2;--upload-required-bg:#fef9f9;--pill-warn-bg:#fddcaa;--pill-warn-txt:#7a3e04;--step-waiting-txt:#9ca3af;--amount-total-bg:#fef9cc;--attendance-zaita-txt:#253858;--black-a04:#0000000a;--black-a06:#0000000f;--black-a10:#0000001a;--black-a12:#0000001f;--black-a18:#0000002e;--black-a20:#0003;--black-a35:#00000059;--black-a45:#00000073;--accent-a10:#4f6ef71a;--accent-a12:#4f6ef71f;--accent-a18:#4f6ef72e;--accent-a22:#4f6ef738;--accent-light-a12:#7b93ff1f;--red-a35:#e03a3a59;--red-a50:#e03a3a80;--cyan-a20:#27f5eb33;--gray-a12:#7878821f;--gray-a50:#78788280}:root[data-theme=dark]{--bg:#15161b;--surface:#1d1e25;--sidebar-bg:#101013;--sidebar-hover:#1c1c20;--sidebar-active:#2a2a30;--accent:#5c79ff;--accent-soft:#7b8cf0;--accent-dk:#3a56d4;--accent-bg:#20253d;--accent-txt:#a9b8ff;--green:#36c281;--green-bg:#15301f;--green-txt:#5fd79a;--red:#f05656;--red-soft:#c97070;--red-bg:#3a1c1c;--red-txt:#f08a8a;--amber:#e0900e;--amber-bg:#3a2a12;--amber-txt:#f0b968;--gray-bg:#2a2b34;--gray-txt:#adadb6;--leave-bg:#2c2d36;--day-red-bg:#e03a3a2e;--day-blue-bg:#4f6ef733;--bg-subtle:#24252e;--border:#34353f;--border-md:#45464f;--border-light:#3b3c45;--status-approve:#7be0a8;--status-approve-bg:#14361f;--status-reject:#f0a0a0;--status-reject-bg:#3a1818;--status-pending:#8fc3f5;--status-pending-bg:#16293f;--attendance-office:#2dbf86;--attendance-office-dk:#1e9e6c;--attendance-zaita:#ffab00;--attendance-kyuka:#ef5a3a;--accent-light:#7b93ff;--cyan:#8dfaf5;--cyan-txt:#0d3535;--draft-bg:#2e2f38;--draft-txt:#c0c0c8;--red-dk:#d84545;--purple:#a78bfa;--purple-bg:#271c3d;--teal:#2dd4bf;--teal-bg:#123230;--waiting-bg:#242530;--waiting-border:#34353f;--waiting-txt:#9a9aa3;--amber-icon:#f59e0b;--status-approve-border:#2e6b45;--status-pending-border:#2e5680;--status-reject-border:#7a2e2e;--self-burden-bg:#1e3a52;--text:#e9e9ec;--text-2:#ababb4;--text-3:#74747d;--shadow:0 1px 3px #00000080, 0 1px 2px #0006;--shadow-md:0 4px 14px #0000008c, 0 2px 6px #0006;--surface-2:#182230;--danger:#f05656;--danger-bg:#3a1818;--upload-required-bg:#2e1e1e;--pill-warn-bg:#3a2a12;--pill-warn-txt:#f0b968;--step-waiting-txt:#74747d;--amount-total-bg:#3a3514;--attendance-zaita-txt:#253858}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-ui);background:var(--bg);color:var(--text);font-size:14px}#root{height:100%}.app-layout{height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);height:56px;box-shadow:0 1px 2px var(--black-a04);z-index:20;justify-content:space-between;align-items:center;gap:16px;padding:0 16px 0 20px;line-height:normal;display:flex;position:relative}.app-header-left{align-items:center;gap:14px;min-width:0;display:flex}.app-logo{flex-shrink:0;align-items:center;gap:10px;display:flex}.app-logo-img{flex-shrink:0;width:auto;height:24px;display:block}.app-logo-text{color:var(--text);letter-spacing:-.01em;white-space:nowrap;font-size:15px;font-weight:600}.app-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.app-user-btn{cursor:pointer;font-family:var(--font-ui);background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;padding:5px 8px;transition:background .12s;display:flex}.app-user-btn:hover{background:var(--bg-subtle)}.app-user-meta{flex-direction:column;align-items:flex-start;line-height:1.25;display:flex}.app-user-name{color:var(--text);font-size:12px;font-weight:500}.app-user-role{color:var(--text-3);font-size:11px}.app-user-chev{color:var(--text-3)}.app-body{flex:1;min-height:0;overflow:hidden}.app-sider{border-right:1px solid var(--border);position:relative;background:var(--surface)!important;overflow:visible!important}.app-sider .ant-layout-sider-children{flex-direction:column;display:flex;overflow:visible}.app-sider-scroll{flex:1;min-height:0;overflow-y:auto}.app-sider-scroll::-webkit-scrollbar{width:0}.sider-collapse-btn{z-index:30;background:var(--surface);border:1px solid var(--border);width:22px;height:22px;color:var(--text-2);cursor:pointer;box-shadow:0 2px 6px var(--black-a12);border-radius:50%;justify-content:center;align-items:center;transition:color .12s,border-color .12s;display:flex;position:absolute;top:14px;right:-11px}.sider-collapse-btn:hover{color:var(--accent);border-color:var(--accent)}.app-menu{padding:8px 6px;border-inline-end:none!important}.app-menu.ant-menu-inline{border-inline-end:none}.app-drawer .app-menu{padding:0}.app-menu.ant-menu-inline .ant-menu-item,.app-menu.ant-menu-inline .ant-menu-submenu-title,.app-menu.ant-menu-inline-collapsed .ant-menu-item,.app-menu.ant-menu-inline-collapsed .ant-menu-submenu-title{height:42px;margin-block:6px;margin-inline:0;line-height:42px}.app-menu.ant-menu-inline .ant-menu-submenu .ant-menu-item{height:38px;line-height:38px}.app-menu .ant-menu-item-group-title{padding-top:10px;padding-bottom:6px;line-height:1.3}.menu-label-badge{align-items:center;gap:6px;display:inline-flex}.avatar{background:linear-gradient(135deg, var(--accent-light), var(--accent));width:30px;height:30px;color:var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.badge-warn{background:var(--amber-bg);color:var(--amber-txt);border-radius:20px;padding:1px 6px;font-size:10px;font-weight:600}.btn{font-family:var(--font-ui);border-radius:var(--radius);border:1px solid var(--border-md);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{background:var(--bg);border-color:var(--border-md);color:var(--text)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.btn-primary:hover{background:var(--accent-dk);border-color:var(--accent-dk);color:var(--surface)}.btn-success{background:var(--green);border-color:var(--green);color:var(--surface)}.btn-success:hover{background:var(--green-txt);border-color:var(--green-txt);color:var(--surface)}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:10px 28px;font-size:14px}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-danger{background:var(--red);border-color:var(--red);color:var(--surface)}.btn-danger:hover{background:var(--red-dk);border-color:var(--red-dk);color:var(--surface)}.btn-danger-text{color:var(--red-txt)}.btn-danger-text:hover{background:var(--red-bg);border-color:var(--red);color:var(--red)}.btn-export{background:var(--surface);border-color:var(--accent);color:var(--accent)}.btn-export:hover{background:var(--accent);border-color:var(--accent);color:var(--surface)}.checkbox-label{cursor:pointer;color:var(--text);align-items:center;gap:6px;font-size:13px;display:inline-flex}.checkbox-label input[type=checkbox]{cursor:pointer}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.radio-label{cursor:pointer;color:var(--text);align-items:center;gap:6px;font-size:13px;display:inline-flex}.radio-label input[type=radio]{cursor:pointer}.radio-label input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.content{background:var(--bg);flex:1;min-width:0;padding:24px;overflow-y:auto}.page-title{letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;margin-bottom:4px;font-size:20px;font-weight:600;display:flex}.page-desc{color:var(--text-2);align-items:center;gap:8px;font-size:13px;display:flex}.form-page-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.form-page-header .page-desc{margin-bottom:0}.form-page-header .form-actions{border-top:none;margin-top:0;padding-top:0}.page-layout-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-layout-header .page-desc{margin-bottom:0}.page-layout-header .form-actions{border-top:none;margin-top:0;padding-top:0}.page-layout-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.form-loading-hidden{display:none}.form-card-stack{flex-direction:column;gap:24px;display:flex}.detail-stack{flex-direction:column;gap:16px;display:flex}.card-table .ant-card-body{padding:8px 16px 16px}.detail-card-title-icon{align-items:center;gap:7px;display:inline-flex}.tbl-muted{color:var(--text-2);font-size:12px}.achain{align-items:flex-start;padding:8px 4px 4px;display:flex}.achain-dot{border-radius:50%;flex:none;width:12px;height:12px;margin-top:6px}.achain-col{flex-direction:column;flex:1 1 0;align-items:center;min-width:0;display:flex}.achain-track{align-items:center;width:100%;height:24px;display:flex}.achain-seg{flex:auto;min-width:8px;height:2px}.achain-icon{width:24px;height:24px;color:var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.achain-cap{text-align:center;flex-direction:column;align-items:center;gap:4px;margin-top:8px;padding:0 4px;display:flex}.achain-name{color:var(--text);font-size:13px;font-weight:500}.achain-status-row{justify-content:center;align-items:center;gap:5px;display:inline-flex}.achain-date{color:var(--text-2);background:var(--bg-subtle);border-radius:6px;padding:2px 8px;font-size:11px}.achain-seg--green{background:var(--green)}.achain-seg--red{background:var(--red)}.achain-seg--gray{background:var(--border-md)}.achain-dot--green{background:var(--green)}.achain-dot--red{background:var(--red)}.achain-dot--gray{background:var(--border-md)}.achain-icon--approved{background:var(--green)}.achain-icon--rejected{background:var(--red)}.achain-icon--pending,.achain-icon--waiting{background:var(--border-md)}.form-card-stack.form-loading-hidden{display:none}.expense-total-label,.expense-amount-strong{color:var(--red);font-weight:700}.expense-self-label{background:var(--self-burden-bg);color:var(--text)}.expense-self-value{background:var(--self-burden-bg)}.form-no-approver-banner{background:var(--amber-bg);color:var(--text);border:1px solid var(--amber);border-radius:var(--radius-lg);margin-bottom:14px;padding:12px 16px;font-size:13px}.form-loading-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);height:110px;margin-bottom:14px;animation:1.4s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%,to{opacity:.9}50%{opacity:.35}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}.card-head{border-bottom:1px solid var(--border);background:var(--bg-subtle);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.card-title{color:var(--text);align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.card-title .card-icon{color:var(--accent);align-items:center;display:flex}.card-body{padding:16px 18px}.card-body fieldset{min-width:0}.card-body .tbl-wrap{max-width:100%}.form-row{gap:12px;margin-bottom:12px;display:grid}.c2{grid-template-columns:1fr 1fr}.c3{grid-template-columns:1fr 1fr 1fr}.w-full{width:100%}.card-nopad .ant-card-body{padding:0}.ant-card.card-nopad{border-radius:0}.ant-btn-ok{background:var(--green);border-color:var(--green);color:var(--surface)}.ant-btn-ok:hover{background:var(--green-txt)!important;border-color:var(--green-txt)!important;color:var(--surface)!important}.ant-btn-export{color:var(--accent-txt);border-color:var(--accent)}.tbl-btn-antd{height:auto;padding:2px 6px}.tbl-btn-ok.ant-btn{color:var(--green)}.tbl-btn-ok.ant-btn:hover{color:var(--green-txt)!important;background:var(--green-bg)!important}.pill-tag{border:none;margin:0}.preview-table-wrap{padding:0 2px;overflow-x:auto}.protable-card .ant-card-head{border-bottom:none;min-height:0;padding:16px 24px}.protable-card .ant-card-head-title,.protable-card .ant-card-extra{padding:0}.protable-card .ant-card-body{padding:0 24px 24px}.protable-title{color:var(--text);font-size:15px;font-weight:600}.protable-toolbar{align-items:center;gap:8px;display:flex}.protable-tool-btn{color:var(--text-2);justify-content:center;align-items:center;display:inline-flex}.protable-tool-btn:hover{color:var(--text);background:var(--bg-subtle)}.input-num-right{width:100%}.input-num-right .ant-input-number-input{text-align:right}.input-num-center{width:100%}.input-num-center .ant-input-number-input{text-align:center}.hidden-file-input{display:none}.form-add-btn{margin:6px 0 12px}.bt-period-picker{flex:1;min-width:0}.bt-period-sep{color:var(--text-3);flex-shrink:0}.unit-price-edit-cell{vertical-align:top;padding-top:8px;padding-bottom:8px}.unit-price-actions-cell{vertical-align:middle}.unit-price-date-error{color:var(--red);white-space:nowrap;text-align:left;margin-top:4px;font-size:11px}.unit-price-col-actions{width:96px}.unit-price-empty{text-align:center;border:none}.unit-price-row--editing{background:var(--accent-bg)}.unit-price-row--expired{background:var(--gray-bg)}.unit-price-add-btn{margin-top:12px}.th-project-name{min-width:140px}.add-role-modal-body{flex-direction:column;gap:12px;display:flex}.emp-sort-header{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;display:block}.emp-email-cell{color:var(--text-2);font-size:12px}.emp-stat-grid{grid-template-columns:1fr 1fr 1fr;margin-bottom:16px;display:grid}.emp-search-card{margin-bottom:16px}.emp-search{flex-wrap:wrap;align-items:center;gap:16px 20px;display:flex}.emp-search-field{align-items:center;gap:8px;display:flex}.emp-search-label{color:var(--text-2);white-space:nowrap;font-size:13px;font-weight:500}.emp-search-input{width:220px}.emp-search-field .ant-select{width:170px}.emp-search-field--wide .ant-select{width:280px}.emp-search-resigned{font-size:13px}.emp-search-actions{gap:8px;margin-left:auto;display:flex}.reject-comment-field{margin-bottom:12px}.reject-actions{justify-content:flex-end;gap:8px;display:flex}.dg-amount--red{color:var(--red)}.tbl-chk-del--visible{visibility:visible}.tbl-status-cell{justify-content:center;align-items:center;gap:4px;display:flex}.tbl-requester{font-size:13px}.tbl-amount-burden{color:var(--red);font-weight:700}.cpw-title{color:var(--accent);align-items:center;gap:8px;display:inline-flex}.cpw-success{color:var(--green)}@media (width<=768px){.preview-table-wrap{padding:0}.emp-stat-grid{grid-template-columns:1fr}.emp-filter-search,.emp-filter-dept,.emp-filter-type{width:100%}.ant-table-cell.tbl-col--portrait-hide{display:none}}.fg{flex-direction:column;gap:5px;min-width:0;display:flex;position:relative}.fg .ant-segmented{align-self:flex-start}.ant-segmented .ant-segmented-thumb,.ant-segmented .ant-segmented-item-selected{background:var(--accent-bg)}.ant-segmented .ant-segmented-thumb{transition-duration:80ms}.ant-segmented .ant-segmented-item-selected{color:var(--accent-txt);font-weight:600}.fg--gap{flex-direction:column;gap:5px;min-width:0;margin-top:12px;display:flex;position:relative}.fl{color:var(--text-2);font-size:12px;font-weight:500}.req{color:var(--red);margin-left:2px}.field-error-msg{color:var(--red);margin-top:2px;font-size:11px}.field-hint{color:var(--text-3);margin-top:4px;font-size:11px;display:block}.form-error-banner{background:var(--red-bg);color:var(--red-txt);border-radius:8px;margin-bottom:12px;padding:10px 16px;font-size:13px}.sex-radio-group{border-radius:var(--radius);border:1px solid #0000;gap:24px;padding:6px 8px;display:flex}.sex-radio-group.has-error{border-color:var(--red);background:var(--red-bg)}.input-with-btn{gap:6px;display:flex}.input-with-btn>:first-child{flex:1;min-width:0}input[type=text]:not([class*=ant-]),input[type=number]:not([class*=ant-]),input[type=date]:not([class*=ant-]),input[type=month]:not([class*=ant-]),input[type=email]:not([class*=ant-]),input[type=password]:not([class*=ant-]),input[type=tel]:not([class*=ant-]),select:not([class*=ant-]),textarea:not([class*=ant-]){font-family:var(--font-ui);border-radius:var(--radius);border:1px solid var(--border-md);background:var(--surface);color:var(--text);appearance:none;width:100%;padding:8px 11px;font-size:13px;transition:all .12s}select:not([class*=ant-]){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239A9A9A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}input:not([class*=ant-]):focus,select:not([class*=ant-]):focus,textarea:not([class*=ant-]):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-a12);outline:none}input:not([class*=ant-])::placeholder,textarea:not([class*=ant-])::placeholder{color:var(--text-3)}.ant-picker input{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}textarea{resize:vertical;min-height:72px;line-height:1.5}.upload-zone{border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.upload-zone-trigger{cursor:pointer;text-align:center;border:2px dashed var(--border-md);border-radius:var(--radius);background:var(--bg-subtle);aspect-ratio:1;flex-direction:column;justify-content:center;align-items:center;transition:all .15s;display:flex}.upload-zone-trigger:hover{border-color:var(--accent);background:var(--accent-bg)}.upload-zone-trigger:hover .upload-icon{color:var(--accent)}.upload-preview-list .upload-zone-trigger:only-child{aspect-ratio:unset;border-radius:var(--radius-lg);grid-column:1/-1;min-height:160px}.upload-zone:hover{border-color:var(--accent);background:var(--accent-bg)}.upload-zone-trigger .upload-icon{color:var(--text-3);transition:color .15s}.upload-title{color:var(--text-2);margin-top:8px;font-size:13px;font-weight:500}.upload-hint{color:var(--text-3);margin-top:4px;font-size:11px}.upload-zone.required .upload-zone-trigger{border-color:var(--red-a35);background:var(--upload-required-bg)}.upload-zone.required .upload-zone-trigger:hover{border-color:var(--red)}.upload-zone.required .upload-zone-trigger .upload-icon{color:var(--red-a50)}.upload-zone.required .upload-zone-trigger:hover .upload-icon{color:var(--red)}.upload-zone.drag-over .upload-zone-trigger{border-color:var(--accent);background:var(--accent-bg)}.upload-input-hidden{display:none}.upload-error--inline{color:var(--red-txt);padding:0 16px 10px;font-size:12px}.upload-preview-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:12px;display:grid}.upload-preview-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;position:relative;overflow:hidden}.upload-preview-item--pending{border-style:dashed}.upload-preview-thumb{aspect-ratio:1;background:var(--bg-subtle);justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.upload-preview-img{object-fit:cover;width:100%;height:100%}.upload-preview-icon{color:var(--text-3)}.upload-preview-info{flex-direction:column;flex:1;gap:2px;padding:6px 8px;display:flex}.upload-preview-name{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:11px;text-decoration:none;display:block;overflow:hidden}.upload-preview-name:hover{text-decoration:underline}.upload-preview-name--plain{color:var(--text-2)}.upload-preview-size{color:var(--text-3);font-size:10px}.upload-preview-delete{background:var(--black-a45);cursor:pointer;color:var(--surface);opacity:0;border:none;border-radius:4px;align-items:center;padding:3px;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.upload-preview-item:hover .upload-preview-delete{opacity:1}.upload-preview-delete:hover{background:var(--red)}.upload-file-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.upload-file-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.upload-file-icon{color:var(--text-3);flex-shrink:0}.upload-file-name{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;flex:1;text-decoration:none;overflow:hidden}.upload-file-name:hover{text-decoration:underline}.upload-file-size{color:var(--text-3);flex-shrink:0;font-size:11px}@media (width<=768px){.upload-preview-list{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;padding:8px}.upload-file-size{display:none}}.tbl-wrap{scrollbar-width:thin;scrollbar-color:var(--border-md) transparent;overflow-x:auto}.tbl-wrap::-webkit-scrollbar{width:6px;height:6px}.tbl-wrap::-webkit-scrollbar-track{background:0 0}.tbl-wrap::-webkit-scrollbar-thumb{background:var(--border-md);border-radius:3px}.tbl-wrap::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.tbl{border-collapse:collapse;table-layout:fixed;width:100%;min-width:860px;font-size:13px}.tbl thead tr{background:var(--bg-subtle)}.tbl th{color:var(--text-2);letter-spacing:0;text-transform:none;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 16px;font-size:13px;font-weight:600;position:relative}.tbl tbody tr{height:52px}.tbl td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;text-align:center;text-overflow:ellipsis;white-space:nowrap;padding:0 16px;overflow:hidden}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover td{background:var(--bg)}.tbl-row-clickable{cursor:pointer}.tbl-date{color:var(--text-3);white-space:nowrap;font-size:12px}.tbl-bold{font-weight:600}.tbl-amount{font-variant-numeric:tabular-nums;font-weight:600}.tbl-amount--accent{color:var(--accent)}.tbl-row--clickable:hover td{background:var(--accent-bg)!important}.tbl-align-left{text-align:left!important}.tbl-align-center{text-align:center!important}.tbl-align-right{text-align:right!important}.tbl-wrap,.tbl--wrap td{overflow-wrap:break-word;word-break:break-all;white-space:normal!important}.effort-project{margin-bottom:28px}.effort-project-actions{margin-top:8px}.effort-grid{table-layout:auto;white-space:nowrap;border-spacing:0;font-size:12px;min-width:unset!important;border-collapse:separate!important}.effort-grid tbody tr{height:auto}.effort-grid tfoot tr{background:var(--bg);height:auto}.effort-grid .th-key{color:var(--text);background:var(--bg-subtle);font-weight:700}.effort-grid .th-role{min-width:70px}.effort-grid .th-note{min-width:80px}.effort-grid .th-price{min-width:90px}.effort-grid .th-mm{min-width:70px}.effort-grid .th-amt{min-width:90px}.effort-grid .th-action{width:52px}.effort-grid .th-month{background:var(--bg-subtle);min-width:130px;color:var(--text);font-weight:700}.effort-grid .th-month--fy{background:var(--bg-subtle);color:var(--text)}.effort-grid .th-month-sub{background:var(--bg-subtle);color:var(--text-3);font-size:9px;font-weight:600}.effort-grid .th-month-sub--fy{background:var(--bg-subtle);color:var(--text-3)}.effort-grid thead tr:last-child th{border-bottom:2px solid var(--border-md)!important}.effort-grid .td-note{color:var(--text-2);font-size:11px}.effort-grid .td-total{color:var(--red-soft);text-align:right}.effort-grid tr.row--monthly td{color:var(--red);font-weight:700}.effort-grid .th-role{width:90px;min-width:90px;max-width:90px}.effort-grid .th-note{width:110px;min-width:110px;max-width:110px}.effort-grid .th-price{width:100px;min-width:100px;max-width:100px}.effort-grid th.th-role,.effort-grid td.col-role{z-index:2;position:sticky;left:0}.effort-grid th.th-note,.effort-grid td.col-note{z-index:2;position:sticky;left:90px}.effort-grid th.th-price,.effort-grid td.col-price{z-index:2;position:sticky;left:200px;border-right:2px solid var(--border-md)!important}.effort-grid thead th.th-role,.effort-grid thead th.th-note,.effort-grid thead th.th-price{background:var(--border);z-index:3}.effort-grid tbody td{background:var(--surface)}.effort-grid tbody tr:hover td,.effort-grid tfoot td{background:var(--bg)}.effort-grid tbody td.col-role,.effort-grid tbody td.col-note,.effort-grid tbody td.col-price{background:var(--surface)}.effort-grid tbody tr:hover td.col-role,.effort-grid tbody tr:hover td.col-note,.effort-grid tbody tr:hover td.col-price{background:var(--bg)}.effort-grid tfoot td.col-role{z-index:3}.effort-grid tfoot tr{height:auto}.effort-grid tfoot td{border-top:2px solid var(--border-md)!important;padding-top:10px!important;padding-bottom:10px!important}.effort-grid tfoot .td-label{color:var(--text);font-size:14px;font-weight:700;text-align:left!important}.effort-grid tfoot .td-subtotal{color:var(--text);font-size:15px;font-weight:700;text-align:right!important}.effort-grid tfoot .td-grand{color:var(--accent-dk);font-size:15px;font-weight:700;text-align:right!important}.effort-summary{z-index:20;background:var(--surface);border-top:2px solid var(--red);box-shadow:0 -4px 12px var(--black-a10);margin-top:16px;position:sticky;bottom:0}.effort-summary__tbl{font-size:13px!important}.effort-summary__th-label{min-width:90px}.effort-summary__label{color:var(--red);font-size:14px;font-weight:700;text-align:left!important}.effort-summary__num{color:var(--red);font-size:14px;font-weight:700;text-align:right!important}.effort-summary__grand{color:var(--red);font-size:18px;font-weight:700;text-align:right!important}.effort-mgmt-header{margin-bottom:16px}.effort-mgmt-header-right{align-items:center;gap:8px;display:flex}.effort-mgmt-filter-label{color:var(--text-2);white-space:nowrap;font-size:13px;font-weight:600}.effort-mgmt-loading{text-align:center;color:var(--text-3);padding:60px}.effort-mgmt-empty{text-align:center;color:var(--text-3);padding:40px 0}.effort-mgmt-empty-icon{margin-bottom:8px;font-size:32px}.effort-mgmt-empty-text{margin-bottom:16px;font-size:14px}.effort-detail-header{margin-bottom:16px}.effort-detail-name-edit{align-items:center;gap:6px;display:flex}.effort-detail-name-input{min-width:240px;font-size:18px;font-weight:700}.effort-detail-name-view{align-items:center;gap:8px;display:flex}.effort-detail-eye-btn{cursor:pointer;color:var(--text-3);background:0 0;border:none;border-radius:4px;align-items:center;padding:3px;display:flex}.effort-detail-eye-btn:hover{color:var(--text-2);background:var(--bg-subtle)}.effort-detail-header-right{align-items:center;gap:8px;display:flex}.effort-detail-state-msg{text-align:center;color:var(--text-3);padding:60px}.effort-detail-footer{margin-top:12px}.effort-detail-view .effort-project{margin-bottom:0}.effort-detail-view .effort-grid{font-size:13px!important}.effort-detail-view .effort-grid td{padding-top:10px!important;padding-bottom:10px!important;font-size:13px!important}.effort-detail-view .effort-grid .effort-editable-cell{vertical-align:middle!important;padding:10px 16px!important}.effort-detail-view .effort-grid th{font-size:12px!important}.effort-detail-view .effort-grid tfoot .td-label,.effort-detail-view .effort-grid tfoot .td-subtotal{font-size:16px!important}.effort-detail-view .effort-grid tfoot .td-grand{font-size:18px!important}.effort-grid--list{font-size:14px!important}.effort-grid--list th{padding:10px 16px!important;font-size:13px!important}.effort-grid--list td{font-size:14px;padding-top:12px!important;padding-bottom:12px!important}.effort-grid--list tfoot td{padding-top:14px!important;padding-bottom:14px!important}.effort-grid--list tfoot .td-label{font-size:18px!important}.effort-grid--list tfoot .td-subtotal{font-size:17px!important}.effort-grid--list tfoot .td-grand{font-size:20px!important}.effort-editable-cell{cursor:pointer;min-width:56px;padding:4px 8px!important}.effort-editable-cell--empty{color:var(--text-3)}.effort-editable-cell--filled{background:var(--surface-2)}.effort-editable-cell__input{box-sizing:border-box;text-align:right;width:100%;min-width:56px;padding:2px 4px;font-size:12px}.tbl--bordered th,.tbl--bordered td{border:1px solid var(--border)}.tbl--bordered th{border-color:var(--border-md)}.tbl--bordered.effort-grid th,.tbl--bordered.effort-grid td{border:none;border-right:1px solid var(--border-md);border-bottom:1px solid var(--border-md)}.tbl--bordered.effort-grid td{border-right-color:var(--border);border-bottom-color:var(--border)}.tbl--bordered.effort-grid th.th-role{border-left:1px solid var(--border-md)}.tbl--bordered.effort-grid td.col-role{border-left:1px solid var(--border)}.tbl--bordered.effort-grid thead tr:first-child th{border-top:1px solid var(--border-md)}.tbl--bordered.effort-grid tfoot td.col-role{border-right:2px solid var(--border-md)}.effort-grid tbody tr:last-child td,.effort-grid tfoot tr:last-child td{border-bottom:none}.role-page-header{margin-bottom:16px}.role-row-editing{background:var(--accent-bg)}.role-edit-cell{vertical-align:top;padding-top:8px!important;padding-bottom:8px!important}.role-edit-actions{vertical-align:middle!important}.role-col-order,.role-col-actions{width:96px}.role-desc-cell{color:var(--text-2)}.role-empty{text-align:center;border:none}.role-add-btn{margin-top:12px}@media (width<=768px){.role-add-btn{width:100%}}.effort-projects-header{margin-bottom:16px}.effort-projects-table{table-layout:fixed;width:100%}.effort-projects-col-name{width:28%}.effort-projects-col-div{width:9%}.effort-projects-col-customer{width:18%}.effort-projects-col-month{width:11%}.effort-projects-col-status{width:10%}.project-delete-error{background:var(--red-bg);color:var(--red-txt);border:1px solid var(--red-soft);border-radius:6px;margin-top:10px;padding:10px 14px;font-size:13px}.project-delete-success{background:var(--green-bg);color:var(--green-txt);border:1px solid var(--green);border-radius:6px;margin-top:10px;padding:10px 14px;font-size:13px}@media (width<=768px){.effort-projects-col-customer,.effort-projects-col-month{display:none}.project-delete-error{font-size:12px}}.customer-page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.customer-page-title-block{align-items:center;gap:10px;display:flex}.customer-page-icon{color:var(--text-2);flex-shrink:0}.customer-filter{min-width:200px}.customer-detail{flex-direction:column;gap:16px;display:flex}.customer-detail-header{align-items:center;gap:10px;margin-bottom:4px;display:flex}.customer-detail-back{width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.customer-detail-back:hover{background:var(--bg-subtle);color:var(--text)}.customer-detail-section-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:13px;font-weight:600}.customer-detail-info-actions{justify-content:flex-end;margin-top:12px;display:flex}.customer-detail-contacts-header{justify-content:space-between;align-items:center;padding:14px 16px 0;display:flex}.cd-col-namecard{text-align:center}.cd-furi{color:var(--text-3);font-size:12px}.cd-namecard-cell{justify-content:center;align-items:center;gap:4px;display:flex}.cd-namecard-link{color:var(--accent);font-size:12px;text-decoration:underline}.cd-namecard-thumb-wrap{display:inline-flex;position:relative}.cd-namecard-del-corner{background:var(--surface);color:var(--red);cursor:pointer;box-shadow:0 0 0 1px var(--surface);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:0;display:inline-flex;position:absolute;top:-7px;right:-7px}.cd-namecard-del-corner:hover:not(:disabled){color:var(--red-dk)}.cd-namecard-del-corner:disabled{color:var(--text-3);cursor:default}.cd-namecard-thumb{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.cd-namecard-thumb:hover{border-color:var(--accent)}.cd-namecard-thumb-img{object-fit:cover;width:64px;height:42px;display:block}.cd-namecard-thumb-pdf{width:64px;height:42px;color:var(--red);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:9px;display:inline-flex}.cd-namecard-del{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;display:flex}.cd-namecard-del:hover{color:var(--red)}.cd-namecard-upload{border:1px dashed var(--border-md);color:var(--text-3);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;display:inline-flex}.cd-namecard-upload:hover{border-color:var(--accent);color:var(--accent)}.cd-file-input{display:none}.effort-tree-name{cursor:pointer;align-items:center;gap:4px;display:flex}.effort-tree-parent>td{background:var(--bg-subtle)}.effort-tree-child{color:var(--text-3);padding-left:24px!important}.effort-phase-cell{white-space:nowrap}.effort-grp-cell{background:var(--bg-subtle)}.effort-grid tr.effort-tree-parent td.effort-grp-cell{border-right-color:#0000!important}.effort-grid--list th.th-project-name,.effort-grid--list td.col-project-name{z-index:2;background:var(--surface);width:240px;min-width:240px;position:sticky;left:0}.effort-grid--list th.th-phase,.effort-grid--list td.col-phase{z-index:2;background:var(--surface);width:140px;min-width:140px;position:sticky;left:240px}.effort-grid--list td.col-phase,.effort-grid--list th.th-phase{border-right:2px solid var(--border-md)!important}.effort-grid--list thead th.th-project-name,.effort-grid--list thead th.th-phase{z-index:4;background:var(--bg-subtle)}.effort-grid--list tbody tr:hover td.col-project-name,.effort-grid--list tbody tr:hover td.col-phase{background:var(--bg)}.effort-grid--list tr.effort-tree-parent td.col-project-name,.effort-grid--list tr.effort-tree-parent td.col-phase{background:var(--bg-subtle)}.effort-grid--list tfoot td.col-project-name{background:var(--bg);z-index:3}.add-role-empty{color:var(--text-2);padding:8px 2px;font-size:13px}.estimate-toggle-list{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.estimate-toggle-list .ant-checkbox-wrapper{margin-inline-start:0}.estimate-toggle-empty{color:var(--text-3);font-size:13px}.cd-info-tab{padding:8px 4px 4px}.cp-search{margin-bottom:12px}.cp-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.cp-search .emp-search-input{width:280px}.project-group-row>td.ant-table-cell{background:var(--bg-subtle)}.project-group-row:hover>td.ant-table-cell{background:var(--bg-subtle)!important}.cd-confirm-modal .ant-modal-body{min-height:0;padding:4px 0;font-size:14px}.cd-modal-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);justify-content:center;margin-bottom:8px;display:flex;overflow:hidden}.cd-modal-preview-img{object-fit:contain;max-width:100%;max-height:220px;display:block}.cd-modal-preview-pdf{border:none;width:100%;height:220px}.cd-modal-namecard{align-items:center;gap:8px;width:100%;display:flex}.cd-modal-namecard .cd-namecard-upload{flex:1;justify-content:center;padding:7px 8px}.cd-modal-namecard .cd-namecard-filename{flex:1}.cd-namecard-filename{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.cd-role-badge{background:var(--accent-bg);color:var(--accent-dk);border-radius:20px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.cd-role-create{color:var(--accent);font-size:13px}.cd-tab-card .ant-card-body{padding:12px 16px 16px}.cd-tab-card .ant-card-head{padding-inline:16px}.cd-tab-empty{text-align:center;color:var(--text-3);padding:40px 16px;font-size:13px}.cd-tab-card .ant-table-footer{background:0 0;padding:8px 0 0}.cd-add-btn{color:var(--text-2)}.cd-add-btn:hover{color:var(--accent);border-color:var(--accent)}@media (width<=768px){.customer-page-header{flex-direction:column;align-items:flex-start}.customer-filter{width:100%;min-width:unset}.customer-detail-header{flex-wrap:wrap}}.tbl-actions{white-space:nowrap;text-align:center;padding:0 8px!important}.tbl-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;transition:all .12s;display:inline-flex}.tbl-btn--edit{color:var(--text-3)}.tbl-btn--edit:hover{background:var(--accent-bg);color:var(--accent)}.tbl-btn--delete{color:var(--text-3)}.tbl-btn--delete:hover{background:var(--red-bg);color:var(--red)}.tbl-btn--approve{color:var(--text-3)}.tbl-btn--approve:hover{background:var(--green-bg);color:var(--green)}.tbl-btn--reject{color:var(--text-3)}.tbl-btn--reject:hover{background:var(--red-bg);color:var(--red)}.type-tag{white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;border-radius:20px;max-width:100%;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block;overflow:hidden}.type-tag--blue{background:var(--accent-bg);color:var(--accent-txt)}.type-tag--purple{background:var(--purple-bg);color:var(--purple)}.type-tag--teal{background:var(--teal-bg);color:var(--teal)}.type-tag--amber{background:var(--amber-bg);color:var(--amber-txt)}.tbl-filter-head{align-items:center;gap:4px;display:inline-flex}.tbl-filter-btn{cursor:pointer;width:18px;height:18px;color:var(--text-3);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .12s;display:inline-flex}.tbl-filter-btn:hover{background:var(--black-a06);color:var(--text-2)}.tbl-filter-btn--on{color:var(--accent);background:var(--accent-bg)}.tbl-filter-drop{background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 16px var(--black-a10);z-index:9999;border-radius:8px;overflow:hidden}.tbl-filter-opt{cursor:pointer;color:var(--text);white-space:nowrap;padding:7px 14px;font-size:13px}.tbl-filter-opt:hover{background:var(--bg)}.tbl-filter-opt--active{background:var(--accent-bg);color:var(--accent-txt);font-weight:600}.tbl-chk-head{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.tbl-chk-del{visibility:hidden;cursor:pointer;width:20px;height:20px;color:var(--text-3);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:all .12s;display:inline-flex;position:absolute;top:50%;left:calc(50% + 11px);transform:translateY(-50%)}.tbl-chk-del:hover{background:var(--red-bg);color:var(--red)}.tbl-chk{width:14px;height:14px;accent-color:var(--accent);cursor:pointer;margin:auto;padding:0;display:block}.tbl-chk:disabled{cursor:default;opacity:.3}.dash-header{margin-bottom:20px}.dash-summary-row{gap:12px;margin-bottom:20px;display:flex}.amount-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;flex:1;justify-content:center;gap:0;min-width:0;padding:20px 24px;display:flex}.amount-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px;padding:8px 0;display:flex}.amount-row--last{border-bottom:none}.amount-lbl{color:var(--text-2);white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:500}.amount-val{letter-spacing:-.02em;text-align:right;flex:1 0 auto;font-size:15px;font-weight:700}.amount-val--red{color:var(--red-soft)}.amount-val--accent{color:var(--accent-soft)}.amount-val--red-lg{color:var(--red);font-size:18px}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;flex:3;display:flex;overflow:hidden}.summary-circles{justify-content:center;align-items:center;gap:0;height:100%;padding:24px 28px 20px;display:flex;overflow-x:auto}.summary-item{border-right:1px solid var(--border);flex-direction:column;flex:1 0;align-items:center;gap:10px;min-width:70px;padding:0 12px;display:flex}.summary-item:last-child{border-right:none}.summary-circle{letter-spacing:-.03em;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;font-size:22px;font-weight:700;display:flex}.summary-circle--amber{background:var(--status-pending-bg);color:var(--status-pending)}.summary-circle--green{background:var(--status-approve-bg);color:var(--status-approve)}.summary-circle--gray{background:var(--draft-bg);color:var(--draft-txt)}.summary-circle--red{background:var(--status-reject-bg);color:var(--status-reject)}.summary-label{color:var(--text-2);font-size:12px;font-weight:500}.month-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:6px 10px;display:flex;position:relative}.month-card--inline{gap:4px;height:32px;padding:0 8px}.month-card-nav{border:1.5px solid var(--border);background:var(--bg);cursor:pointer;width:28px;height:28px;color:var(--text-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.month-card--inline .month-card-nav{width:22px;height:22px}.month-card-nav:hover{background:var(--accent);border-color:var(--accent);color:var(--surface)}.month-circle{background:var(--cyan);width:80px;height:80px;color:var(--cyan-txt);cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 4px 14px var(--cyan-a20);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:opacity .15s;display:flex}.month-circle:hover{opacity:.88}.month-circle-month{letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1}.month-circle-year{opacity:.82;margin-top:3px;font-size:12px;font-weight:500}.month-label{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius);align-items:center;gap:4px;padding:0 8px;transition:background .12s;display:flex}.month-label:hover{background:var(--bg)}.month-label-year,.month-label-month{color:var(--text);font-size:13px;font-weight:600}.month-popup{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:200;border-radius:16px;width:210px;padding:14px 16px 16px;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}.month-popup-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.month-popup-year{color:var(--text);font-size:14px;font-weight:700}.month-popup-year--btn{cursor:pointer;border-radius:6px;padding:2px 8px;transition:background .1s}.month-popup-year--btn:hover{background:var(--bg)}.month-popup-nav{cursor:pointer;width:28px;height:28px;color:var(--text-3);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .12s;display:flex}.month-popup-nav:hover{background:var(--bg);color:var(--text)}.month-popup-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.month-popup-btn{color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 4px;font-family:inherit;font-size:13px;font-weight:500;transition:all .12s}.month-popup-btn:hover{background:var(--bg);color:var(--text)}.month-popup-btn--active{background:var(--cyan);color:var(--cyan-txt);font-weight:600}.month-popup-btn--disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.month-popup-today{border:none;border-top:1px solid var(--border);width:100%;color:var(--accent);cursor:pointer;text-align:center;background:0 0;margin-top:12px;padding:10px 0 2px;font-family:inherit;font-size:13px;transition:color .12s}.month-popup-today:hover{color:var(--accent-dk)}.month-year-picker{width:100%;position:relative}.month-year-trigger{border-radius:var(--radius);border:1px solid var(--border-md);background:var(--surface);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;box-sizing:border-box;align-items:center;min-height:34px;padding:7px 11px;font-size:13px;transition:border-color .12s;display:flex}.month-year-trigger:hover{border-color:var(--accent)}.month-year-trigger--placeholder{color:var(--text-3)}.month-year-trigger.input-invalid{border-color:var(--red)}.month-year-popup{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:9999;box-sizing:border-box;border-radius:12px;padding:12px 14px 14px;position:fixed}.month-year-popup-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.month-year-popup-label{color:var(--text);font-size:14px;font-weight:700}.effort-grid td.td-inactive{color:var(--text-3);background:var(--border)!important}.effort-grid tr:hover td.td-inactive{background:var(--border-md)!important}.datepicker{width:100%;position:relative}.datepicker-trigger{border-radius:var(--radius);border:1px solid var(--border-md);background:var(--surface);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;justify-content:space-between;align-items:center;width:100%;padding:8px 11px;font-size:13px;transition:all .12s;display:flex}.datepicker-trigger:hover{border-color:var(--text-3)}.datepicker-trigger:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-a12);outline:none}.datepicker-trigger.input-invalid{border-color:var(--red);background:var(--red-bg)}.datepicker-trigger--disabled{opacity:.5;pointer-events:none;cursor:default}.datepicker-placeholder{color:var(--text-3)}.datepicker-icon{color:var(--text-3);flex-shrink:0}.datepicker-dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:9999;border-radius:14px;padding:10px 10px 12px}.datepicker-nav-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.datepicker-month-label{color:var(--text);font-size:13px;font-weight:700}.datepicker-month-label--btn{cursor:pointer;border-radius:6px;padding:2px 8px;transition:background .1s}.datepicker-month-label--btn:hover{background:var(--bg)}.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.datepicker-dow{text-align:center;color:var(--text-3);padding:2px 0 5px;font-size:11px;font-weight:500}.datepicker-dow--sun{color:var(--red)}.datepicker-dow--sat{color:var(--accent)}.datepicker-cell{cursor:pointer;height:30px;color:var(--text);border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:500;transition:background .1s;display:flex}.datepicker-cell:hover:not(.datepicker-cell--disabled):not(.datepicker-cell--selected){background:var(--bg)}.datepicker-cell--selected{background:var(--accent);color:var(--surface);font-weight:600}.datepicker-cell--today:not(.datepicker-cell--selected){box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent);font-weight:700}.datepicker-cell--disabled{opacity:.25;cursor:default;pointer-events:none}.datepicker-cell--other{color:var(--text-3);opacity:.35}.datepicker-cell--sun{color:var(--red)}.datepicker-cell--sat{color:var(--accent)}.dash-empty{text-align:center;color:var(--text-3);padding:36px 0;font-size:13px}.pill{white-space:nowrap;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:500;display:inline-block}.pill--lg{padding:5px 14px;font-size:13px}.pill-ok,.pill-approved{background:var(--status-approve-bg);color:var(--status-approve)}.pill-ng,.pill-rejected{background:var(--status-reject-bg);color:var(--status-reject)}.pill-warn{background:var(--pill-warn-bg);color:var(--pill-warn-txt)}.pill-draft{background:var(--draft-bg);color:var(--draft-txt)}.pill-pending{background:var(--status-pending-bg);color:var(--status-pending)}.step-badge{align-items:center;gap:2px;display:inline-flex}.step-badge-empty{color:var(--text-3);font-size:11px}.step-dot-wrap{align-items:center;gap:2px;display:inline-flex}.step-dot{border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.step-dot--approved{background:var(--status-approve-bg);color:var(--status-approve)}.step-dot--pending{background:var(--status-pending-bg);color:var(--status-pending)}.step-dot--rejected{background:var(--status-reject-bg);color:var(--status-reject)}.step-dot--waiting{background:var(--waiting-border);color:var(--step-waiting-txt)}.stat-grid{gap:12px;margin-bottom:18px;display:grid}.sc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:14px 16px}.sc-label{color:var(--text);letter-spacing:.03em;text-transform:uppercase;font-size:14px;font-weight:700}.sc-val{letter-spacing:-.02em;color:var(--text);margin-top:4px;font-size:22px;font-weight:600}.sc-accent{color:var(--accent)}.sc-green{color:var(--green)}.sc-amber{color:var(--amber)}.total-row{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:12px;margin-top:10px;padding-top:12px;display:flex}.total-label{color:var(--text-2);font-size:13px;font-weight:500}.total-val{color:var(--accent);letter-spacing:-.02em;font-size:22px;font-weight:600}.total-val.red{color:var(--red)}.total-row-sub{justify-content:flex-end;align-items:center;gap:12px;padding-top:8px;display:flex}.form-actions{justify-content:flex-end;gap:10px;display:flex}.form-actions .ant-btn{padding-inline:20px}.result-modal-body{text-align:center;flex-direction:column;align-items:center;padding:12px 8px 4px;display:flex}.result-modal-icon{line-height:0}.result-modal-icon--success{color:var(--green)}.result-modal-icon--error{color:var(--red)}.result-modal-title{color:var(--text);margin-top:12px;font-size:18px;font-weight:700}.result-modal-message{color:var(--text-2);white-space:pre-line;margin-top:6px;font-size:14px}.result-modal-btn{min-width:160px;height:40px;margin-top:20px}.login-bg{background:var(--sidebar-bg);background-image:radial-gradient(circle at 18% 50%, var(--accent-a18) 0%, transparent 52%), radial-gradient(circle at 82% 15%, var(--accent-light-a12) 0%, transparent 42%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);width:100%;max-width:400px;box-shadow:0 24px 48px var(--black-a35), 0 8px 16px var(--black-a20);border-radius:20px;padding:36px}.login-logo{flex-direction:column;align-items:center;gap:8px;margin-bottom:12px;display:flex}.login-logo-img{flex-shrink:0;width:auto;height:40px;display:block}.login-brand{color:var(--text);letter-spacing:-.02em;font-size:18px;font-weight:700}.login-sub{color:var(--text-3);margin-top:2px;font-size:12px}.input-icon-wrap{position:relative}.input-icon{color:var(--text-3);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.input-with-icon{padding-left:32px!important}.input-with-icon-right{padding-right:36px!important}.input-eye{cursor:pointer;color:var(--text-3);background:0 0;border:none;align-items:center;padding:2px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.input-eye:hover{color:var(--text-2)}.login-error{background:var(--red-bg);color:var(--red-txt);border-radius:var(--radius);margin-top:10px;padding:8px 12px;font-size:12px}.login-submit{justify-content:center;width:100%;margin-top:20px;padding:10px;font-size:14px}.c4{grid-template-columns:repeat(4,1fr)}.c7{grid-template-columns:repeat(7,1fr)}.mb-0{margin-bottom:0}.burden-wrap{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.burden-row{align-items:center;gap:12px;display:flex}.burden-label{color:var(--text-3);font-size:11px}.burden-val{letter-spacing:-.02em;font-size:17px;font-weight:600}.burden-val.lg{font-size:22px}.burden-val.accent{color:var(--accent)}.burden-val.accent-soft{color:var(--accent-soft)}.burden-val.red{color:var(--red)}.burden-val.red-soft{color:var(--red-soft)}.chain-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chain-sep{color:var(--accent);flex-shrink:0;font-size:13px;font-weight:700}.chain-item{flex:90px;min-width:80px;position:relative}.combobox{width:100%;position:relative}.combobox-input-wrap{align-items:center;display:flex;position:relative}.combobox-input-wrap input{width:100%;padding-right:28px}.combobox-input--value{color:#0000!important;caret-color:#0000!important}.combobox-value-overlay{pointer-events:none;align-items:center;padding-left:11px;display:flex;position:absolute;inset:0 28px 0 0}.combobox-arrow{pointer-events:none;color:var(--text-3);position:absolute;right:9px}.combobox-clear{z-index:1;cursor:pointer;color:var(--text-3);background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;display:flex;position:absolute;right:7px}.combobox-clear:hover{color:var(--text)}.combobox-dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 16px var(--black-a10);z-index:9999;border-radius:8px;max-height:240px;overflow-y:auto}.combobox-opt{cursor:pointer;color:var(--text);padding:8px 12px;font-size:13px}.combobox-opt:hover{background:var(--accent-bg)}.combobox-opt--empty{color:var(--text-3);cursor:default}.combobox-opt--empty:hover{background:0 0}.chain-remove{cursor:pointer;color:var(--text-3);background:0 0;border:none;padding:1px;font-size:13px;line-height:1;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.chain-remove:hover{color:var(--red)}.form-tbl-wrap{border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.form-tbl{table-layout:auto}.form-tbl thead tr{background:var(--bg-subtle)}.form-tbl th{color:var(--text);text-align:center;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--border);padding:12px 10px;font-size:13px;font-weight:600}.form-tbl td{white-space:normal;text-overflow:clip;vertical-align:middle;border-bottom:1px solid var(--border);padding:8px 6px;overflow:visible}.form-tbl tbody tr{height:auto}.form-tbl tbody tr:last-child td{border-bottom:none}.form-tbl tbody tr:hover td{background:var(--bg-subtle)}.form-cards{flex-direction:column;gap:10px;margin-bottom:4px;display:none}.route-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:12px;display:flex;position:relative}.route-card-del{position:absolute;top:0;right:8px;color:var(--red)!important}.route-card-del:hover{background:var(--red-bg)!important}.route-card-label{color:var(--text-3);letter-spacing:.03em;font-size:10px;font-weight:600}.route-card-field{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.route-card-row{gap:8px;display:flex}.route-card-field--days{flex:none;width:60px}.route-card-field--check{flex:none;align-items:center;width:44px}.route-card-field--check .rt-check{margin-top:6px}.route-card-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:2px;padding-top:8px;display:flex}.route-card-subtotal{color:var(--text);margin-left:auto;font-size:14px;font-weight:700}.route-card .ant-input,.route-card .ant-input-number,.route-card .ant-picker,.route-card .ant-select{width:100%}.rt-disabled{cursor:default;color:var(--text-3)!important}.rt-check{accent-color:var(--accent);cursor:pointer;width:auto!important}.rt-days{text-align:center!important}.rt-subtotal{text-align:right;color:var(--text);white-space:nowrap;font-size:13px;font-weight:700;padding-right:6px!important}.rt-dash{color:var(--text-3);padding:0 10px}.rt-center,.rt-del{text-align:center}.bt-daily-tbl tbody tr:only-child td{border-bottom:none}.route-totals{border-top:1px solid var(--border);flex-direction:column;align-items:flex-end;gap:2px;margin-top:16px;padding-top:14px;display:flex}.route-totals .total-row{border-top:none;margin-top:0;padding-top:0}.form-section-title{color:var(--text-2);background:var(--bg);border-radius:var(--radius);letter-spacing:.02em;align-items:center;gap:6px;margin:14px 0 10px;padding:7px 12px;font-size:12px;font-weight:600;display:flex}.form-section-title:before{content:"";background:var(--accent);border-radius:2px;flex-shrink:0;width:3px;height:13px}.radio-group{flex-wrap:wrap;align-items:center;gap:16px;padding:8px 0;display:flex}.radio-item,.check-item{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.radio-item input[type=radio],.check-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;border-radius:4px;flex-shrink:0;padding:0}.amount-tbl{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}.amount-tbl td{border:1px solid var(--border);padding:8px 12px}.amount-tbl .al{background:var(--bg-subtle);color:var(--text-2);width:55%}.amount-tbl .av{text-align:right;white-space:nowrap}.amount-tbl .av input[type=number]{text-align:right}.amount-tbl .at{background:var(--amount-total-bg);color:var(--text);font-weight:700}.field-static{color:var(--text-1);margin:0;font-size:13px;line-height:32px}.field-error{color:var(--red);white-space:nowrap;font-size:11px;position:absolute;top:100%;left:0}input.input-invalid,select.input-invalid,textarea.input-invalid{border-color:var(--red);background:var(--red-bg)}.form-note{color:var(--text-3);align-items:center;gap:5px;padding:6px 0 2px;font-size:11px;display:flex}.form-note:before{content:"※"}.display-field{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-2);align-items:center;min-height:36px;padding:8px 11px;font-size:13px;display:flex}.type-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.type-card{border:1.5px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;background:var(--surface);padding:12px 14px;transition:all .15s}.type-card:hover{border-color:var(--accent);background:var(--accent-bg)}.type-card.selected{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 3px var(--accent-a10)}.type-card-icon{color:var(--text-3);margin-bottom:6px;transition:color .15s}.type-card:hover .type-card-icon,.type-card.selected .type-card-icon{color:var(--accent)}.type-card-label{color:var(--text);font-size:12px;font-weight:600;line-height:1.3}.type-card-desc{color:var(--text-3);margin-top:3px;font-size:11px;line-height:1.4}.expense-section-header{color:var(--accent);border-bottom:2px solid var(--accent);letter-spacing:.01em;margin-bottom:0;padding:10px 0 7px;font-size:13px;font-weight:600}.attach-cell{cursor:pointer;color:var(--text-2);white-space:nowrap;align-items:center;gap:4px;padding:5px 6px;font-size:11px;display:flex;overflow:hidden}.attach-cell:hover{color:var(--accent)}.attach-name{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.modal-overlay{background:var(--black-a45);z-index:1000;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);width:90%;max-width:480px;box-shadow:0 12px 40px var(--black-a18);border-radius:18px;flex-direction:column;align-items:center;gap:10px;padding:44px 52px 36px;animation:.18s slide-up;display:flex}.modal-icon{line-height:1}.modal-icon--ok{color:var(--green)}.modal-icon--ng{color:var(--red)}.modal-title{color:var(--text);margin:4px 0 0;font-size:18px;font-weight:700}.modal-message{color:var(--text-2);text-align:center;margin:0 0 4px;font-size:13px;line-height:1.6}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.detail-page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.detail-page-header-left{align-items:flex-start;gap:14px;display:flex}.detail-page-actions{flex-shrink:0;gap:8px;padding-top:4px;display:flex}.detail-page-loading{text-align:center;color:var(--text-3);padding:48px;font-size:14px}.detail-grid{flex-direction:column;display:flex}.dg-row{border-bottom:1px solid var(--border);align-items:baseline;gap:16px;padding:10px 0;display:flex}.dg-row:last-child{border-bottom:none}.dg-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:100px;font-size:11px;font-weight:600}.dg-value{color:var(--text);font-size:13px;line-height:1.5}.dg-amount{font-variant-numeric:tabular-nums;font-weight:700}.dg-amount--accent{color:var(--accent)}.dash-bulk-approve-btn{font-weight:500}.commute-emp-combo{display:inline-block;position:relative}.commute-emp-display{border-radius:var(--radius);border:1px solid var(--border-md);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;min-width:160px;padding:5px 10px 5px 6px;transition:border-color .12s;display:flex}.commute-emp-display:hover{border-color:var(--accent)}.commute-emp-display .commute-emp-avatar{flex-shrink:0}.commute-emp-display .commute-emp-name{color:var(--text);flex:1;font-size:13px;font-weight:500}.commute-emp-caret{color:var(--text-3);flex-shrink:0;font-size:10px}.commute-emp-dropdown{z-index:200;background:var(--surface);border:1px solid var(--border-md);border-radius:var(--radius);min-width:100%;box-shadow:0 4px 16px var(--black-a12);position:absolute;top:calc(100% + 4px);left:0;overflow:hidden}.commute-emp-dropdown .commute-emp-item{cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:7px 12px;display:flex}.commute-emp-dropdown .commute-emp-item:hover{background:var(--bg)}.commute-emp-dropdown .commute-emp-item--active{background:var(--accent-bg)}.commute-emp-dropdown .commute-emp-item--active .commute-emp-name{color:var(--accent-txt);font-weight:600}.detail-modal{background:var(--surface);border-radius:var(--radius-lg);width:500px;max-width:95vw;box-shadow:0 12px 40px var(--black-a18);animation:.18s slide-up;overflow:hidden}.detail-modal-header{border-bottom:1px solid var(--border);background:var(--bg-subtle);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.detail-modal-title{color:var(--text);font-size:14px;font-weight:600}.detail-modal-close{cursor:pointer;color:var(--text-3);background:0 0;border:none;border-radius:6px;padding:4px;transition:all .12s;display:flex}.detail-modal-close:hover{background:var(--bg);color:var(--text)}.detail-modal-body{padding:8px 20px 4px}.add-project-modal-body{flex-direction:column;gap:12px;padding:16px 20px;display:flex}@media (width<=768px){.add-project-modal-body{padding:12px 16px}}.detail-row{border-bottom:1px solid var(--border);align-items:baseline;gap:14px;padding:10px 0;display:flex}.detail-row:last-child{border-bottom:none}.detail-row--comment{align-items:flex-start}.detail-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:80px;font-size:11px;font-weight:600}.detail-value{color:var(--text);font-size:13px;line-height:1.4}.detail-amount{font-variant-numeric:tabular-nums;font-weight:700}.detail-amount--accent{color:var(--accent)}.detail-modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.estimate-modal-body{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border-md) transparent;flex-direction:column;gap:12px;max-height:70vh;padding:16px 20px;display:flex;overflow-y:auto}.estimate-modal-body::-webkit-scrollbar{width:6px}.estimate-modal-body::-webkit-scrollbar-track{background:0 0}.estimate-modal-body::-webkit-scrollbar-thumb{background:var(--border-md);border-radius:3px}.estimate-modal-body::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.estimate-fg-row{gap:12px;display:flex}.estimate-fg-row .fg{flex:1;min-width:0}.estimate-fg-row .estimate-fg-narrow{flex:0 0 140px}.estimate-collapse-body{flex-direction:column;gap:12px;display:flex}.estimate-collapse-body .ant-divider-horizontal{margin:4px 0}.po-section{flex-direction:column;gap:12px;display:flex}.po-section-title{font-family:var(--font-ui);color:var(--text);font-size:14px;font-weight:600}.po-section-toggle{cursor:pointer;width:fit-content;font-family:var(--font-ui);color:var(--text);background:0 0;border:none;justify-content:flex-start;align-items:center;gap:4px;padding:0;font-size:14px;font-weight:600;display:flex}.po-section-toggle:hover{color:var(--accent)}.estimate-project-wrap{flex-direction:column;gap:6px;display:flex}.estimate-slot{align-items:center;gap:8px;display:flex}.estimate-slot .combobox{flex:1}.estimate-slot-remove{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:3px;display:flex}.estimate-slot-remove:hover{background:var(--danger-bg);color:var(--danger)}.estimate-project-add-btn{align-self:flex-start}.estimate-modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.estimate-period-wrap{flex-direction:column;gap:8px;display:flex}.estimate-period-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.estimate-month-controls{flex-direction:column;gap:8px;display:flex}.estimate-month-pickers{align-items:center;gap:8px;display:flex}.estimate-month-pickers .month-year-picker{width:150px}.estimate-month-sep{color:var(--text-3);flex-shrink:0;font-size:14px}@media (width<=768px){.estimate-period-controls{flex-direction:column;align-items:flex-start}.estimate-month-pickers{flex-wrap:wrap}}.detail-modal-reject{padding:12px 20px 0}.content:has(.commute-page){flex-direction:column;min-height:0;display:flex}.commute-page{flex-direction:column;flex:1;min-height:0;display:flex}.commute-header-row{flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-bottom:16px;display:grid}.commute-header-employee{align-items:center;gap:8px;display:flex}.commute-header-label{color:var(--text-2);white-space:nowrap;font-size:25px;font-weight:600}.commute-header-employee .ant-select{width:210px}.commute-combobox-opt{align-items:center;gap:8px;display:flex}.commute-toolbar-btns{justify-self:end;align-items:center;gap:8px;display:flex}.commute-toolbar-btn{min-width:96px;height:38px;font-weight:500}.commute-toolbar-btn--weekday{background:var(--attendance-office)!important;color:var(--surface)!important;border-color:var(--attendance-office)!important}.commute-toolbar-btn--weekday:hover{background:var(--attendance-office-dk)!important;border-color:var(--attendance-office-dk)!important}.commute-toolbar-btn--cancel{width:38px;height:38px;color:var(--text-2)}.commute-toolbar-btn--cancel:hover{color:var(--red)!important;border-color:var(--red)!important}.commute-calendar-col{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.commute-emp-item{border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:3px 8px;transition:all .12s;display:flex}.commute-emp-item:hover{background:var(--bg)}.commute-emp-item--active{background:var(--accent-bg)}.commute-emp-item--active .commute-emp-name{color:var(--accent-txt);font-weight:600}.commute-emp-item--active:hover{background:var(--accent-bg)}.commute-emp-avatar{width:24px;height:24px;color:var(--surface);background:var(--border-md);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;font-weight:700;display:flex}.commute-emp-name{color:var(--text);white-space:nowrap;font-size:12px;font-weight:500}.commute-cal-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:0;box-shadow:var(--shadow);flex-direction:column;flex:1;display:flex;overflow:hidden}.commute-cal{flex-direction:column;flex:1;min-height:0;font-size:14px;display:flex}@media (width>=1700px){.commute-cal{font-size:17.5px}}@media (width>=2100px){.commute-cal{font-size:21px}}@media (width>=2700px){.commute-cal{font-size:28px}}.commute-cal-header{flex-shrink:0;grid-template-columns:repeat(7,1fr);gap:0 8px;padding:8px 14px 2px;display:grid}.commute-dow{text-align:left;letter-spacing:.02em;color:var(--text-2);background:0 0;border:none;border-radius:0;padding:9px 10px;font-size:1.02em;font-weight:600;transition:background .12s,color .12s}.commute-dow--sun{color:var(--red);background:0 0}.commute-dow--sat{color:var(--accent);background:0 0}.commute-dow--clickable{cursor:pointer}.commute-dow--clickable:hover{background:var(--bg-subtle);color:var(--accent)}.commute-cal-body{flex-direction:column;flex:1;gap:8px;min-height:0;padding:4px 14px 14px;display:flex;overflow-y:auto}.commute-week{flex:1;grid-template-columns:repeat(7,1fr);gap:0 8px;display:grid}.commute-day{border:none;border-top:2px solid var(--border);background:var(--surface);cursor:default;border-radius:0;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:4px;padding:5px 8px;transition:background .12s,border-color .12s;display:flex;position:relative;overflow:hidden}.commute-day--empty{background:var(--bg-subtle);border-top-color:var(--border)}.commute-day:not(.commute-day--empty):hover{background:var(--bg-subtle);border-top-color:var(--accent)}.commute-day-num{color:var(--text);z-index:1;font-size:1.15em;font-weight:500;position:relative}.commute-day--sun:before,.commute-day--sat:before,.commute-day--today:before,.commute-day--selected:before,.commute-day--holiday:before,.commute-day--pending:before,.commute-day--kyuka:before,.commute-day--picking:before{content:"";z-index:0;border-radius:0;position:absolute;inset:0}.commute-day--sun:before{background:var(--day-red-bg)}.commute-day--sat:before{background:var(--day-blue-bg)}.commute-day--today:before{background:0 0}.commute-day--today{border-top-color:var(--accent)}.commute-day--selected:before{background:var(--accent-bg)}.commute-day--selected{border-top-color:var(--accent)}.commute-day--sun .commute-day-num{color:var(--red-txt);font-weight:600}.commute-day--sat .commute-day-num{color:var(--accent-txt);font-weight:600}.commute-day--today .commute-day-num{color:var(--accent);font-weight:700}.commute-day--pending:before{background:var(--accent-a12)}.commute-day--kyuka:before{background:var(--leave-bg)}.commute-day--kyuka .commute-day-num{color:var(--text-3)}.commute-day--picking{border-top-color:var(--accent)!important}.commute-day--picking:before{background:var(--accent-a22)}.commute-day--holiday:before{background:var(--day-red-bg)}.commute-day--holiday .commute-day-num{color:var(--red-txt);font-weight:600}.commute-day--selected .commute-day-num{color:var(--accent);font-weight:700}.commute-day-top{z-index:1;flex-wrap:wrap;align-items:center;gap:5px;display:flex;position:relative}.commute-day-option-tag,.commute-day-holiday-tag{word-break:break-word;border-radius:4px;padding:2px 7px;font-size:.8em;font-weight:700;line-height:1.4}.commute-day-option-tag,.commute-detail-badge{background-color:var(--opt-bg,var(--gray-a12));color:var(--opt-color,var(--text-2))}.commute-day-option-tag{z-index:1;position:relative}.commute-day-meta-wrap{display:inline-flex;position:relative}.commute-day-clear-btn{background:var(--red);width:14px;height:14px;color:var(--surface);cursor:pointer;z-index:2;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:8px;line-height:1;display:none;position:absolute;top:-5px;right:-5px}.commute-day-meta-wrap:hover .commute-day-clear-btn{display:flex}.commute-day-holiday-tag{background:var(--attendance-kyuka);color:var(--surface)}:is(.commute-day-option-tag,.commute-detail-badge)[data-value=出社]{background-color:var(--attendance-office);color:var(--surface)}:is(.commute-day-option-tag,.commute-detail-badge)[data-value=在宅]{background-color:var(--attendance-zaita);color:var(--attendance-zaita-txt)}.commute-option-btn[data-value=在宅]{color:var(--attendance-zaita)!important}:is(.commute-day-option-tag,.commute-detail-badge)[data-value=休暇]{background-color:var(--attendance-kyuka);color:var(--surface)}.commute-day-emps{z-index:1;flex-direction:column;gap:2px;margin-top:2px;display:flex;position:relative}.commute-day-emp-row{align-items:center;gap:4px;display:flex}.commute-day-emp-dot{width:1.15em;height:1.15em;color:var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.5em;font-weight:700;display:flex}.commute-day-emp-tag{white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:.72em;font-weight:600}.commute-day-emp-more{color:var(--text-3);padding-left:2px;font-size:.72em}.commute-day-office-count{color:var(--text-2);z-index:1;white-space:nowrap;font-size:.72em;font-weight:600;position:relative}.commute-detail-popover .ant-popover-container{border-radius:var(--radius-lg);padding:0;overflow:hidden}.commute-detail-panel{flex-direction:column;width:300px;max-height:360px;display:flex;overflow:hidden}.commute-detail-title{color:var(--text);border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 16px;font-size:14px;font-weight:700}.commute-detail-tabs{flex:1;min-height:0;overflow:hidden}.commute-detail-tabs.ant-tabs .ant-tabs-nav{flex-shrink:0;margin:0}.commute-detail-tabs.ant-tabs .ant-tabs-nav-list{width:100%}.commute-detail-tabs.ant-tabs .ant-tabs-tab{flex:1;justify-content:center;margin:0;padding:8px 4px;font-size:12px;font-weight:600}.commute-detail-tabs.ant-tabs .ant-tabs-tab+.ant-tabs-tab{margin:0}.commute-detail-tab-label{align-items:center;gap:4px;display:inline-flex}.commute-detail-tab-count{background:var(--bg-subtle);color:var(--text-3);border-radius:99px;padding:1px 5px;font-size:10px;font-weight:700}.commute-detail-tabs.ant-tabs .ant-tabs-tab-active .commute-detail-tab-count{background:var(--accent-bg);color:var(--accent)}.commute-detail-empty{text-align:center;color:var(--text-3);padding:20px 16px;font-size:13px}.commute-detail-list{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border-md) transparent;flex:1;max-height:210px;padding:8px 0;overflow-y:auto}.commute-detail-list::-webkit-scrollbar{width:6px}.commute-detail-list::-webkit-scrollbar-track{background:0 0}.commute-detail-list::-webkit-scrollbar-thumb{background:var(--border-md);border-radius:3px}.commute-detail-list::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.commute-detail-row{align-items:center;gap:10px;padding:7px 14px;transition:background .1s;display:flex}.commute-detail-name{color:var(--text);flex:1;min-width:0;font-size:13px}.commute-detail-badge{border-radius:99px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600}.commute-detail-group-label{letter-spacing:.06em;color:var(--text-3);text-transform:uppercase;padding:8px 14px 3px;font-size:10px;font-weight:700}.btn-outline{border:1px solid var(--border-md);color:var(--text-2);background:0 0;transition:all .12s}.btn-outline:hover{background:var(--bg)}.commute-option-picker{z-index:400;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);min-width:120px;padding:12px;position:fixed}.commute-option-picker-btns{flex-direction:column;gap:2px;display:flex}.commute-option-btn{border-radius:var(--radius);cursor:pointer;text-align:left;background:0 0;border:2px solid #0000;width:100%;padding:7px 12px;font-size:13px;font-weight:600;transition:background .1s,border-color .1s}.commute-option-btn:hover{background:var(--bg)}.commute-option-btn--active{border-color:currentColor}.commute-option-btn--kikoku{justify-content:space-between;align-items:center;display:flex}.commute-option-group-arrow{opacity:.5;font-size:14px}.commute-option-group-row{position:relative}.commute-option-submenu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:401;flex-direction:column;gap:2px;min-width:120px;padding:8px;display:none;position:absolute;top:-8px;left:100%}.commute-option-group-row:hover .commute-option-submenu{display:flex}.cpw-box{min-width:360px;align-items:stretch!important}.cpw-form{flex-direction:column;gap:14px;width:100%;margin-top:4px;display:flex}.cpw-error{color:var(--red);background:var(--red-bg);border-radius:var(--radius);padding:8px 12px;font-size:12px}.cpw-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.tbl-col--mobile-only,.dash-del-mobile{display:none}@media (width<=960px){.tbl-col--mobile-hide{display:none}.tbl col.tbl-col--mobile-hide{width:0!important}.tbl{table-layout:auto;min-width:0}.tbl-wrap{overflow-x:auto}.tbl th{letter-spacing:0;padding:8px 5px;font-size:10px}.tbl td{padding:4px 5px}.dash-del-mobile{display:inline-flex}}@media (width<=540px){.tbl-col--portrait-hide{display:none}.tbl col.tbl-col--portrait-hide{width:0!important}}.topbar-hamburger{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:6px;display:none}.topbar-hamburger:hover{background:var(--bg-subtle);color:var(--text)}.topbar-theme-btn{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:7px;transition:background .12s,color .12s;display:inline-flex}.topbar-theme-btn:hover{background:var(--bg-subtle);color:var(--text)}@media (width<=960px){.app-sider{display:none}.topbar-hamburger{display:inline-flex}.app-header{gap:8px;padding:0 10px}.app-user-meta{display:none}.content{padding:16px}.page-title{font-size:17px}}@media (width<=420px){.app-logo-text{display:none}}@media (width<=900px){.commute-header-row{flex-direction:column;gap:8px;display:flex}.commute-header-row .month-card{box-sizing:border-box;order:1;width:100%}.commute-header-employee{order:2;width:100%}.commute-header-employee .ant-select{width:100%}.commute-header-label,.commute-toolbar-btns{display:none}}@media (width<=768px){.tbl-col--mobile-only{display:table-cell}.tbl td{padding:0 5px}.tbl td.tbl-col--mobile-only{padding:0!important}.tbl-wrap{overflow-x:hidden}.c2,.c3,.c4,.c7{grid-template-columns:1fr!important}.dash-summary-row{flex-direction:column}.form-page-header{flex-direction:column;align-items:flex-start;gap:12px}.form-page-header .form-actions{justify-content:flex-end;width:100%}.page-layout-header{flex-direction:column;align-items:flex-start;gap:12px}.page-layout-actions{justify-content:flex-end}.type-grid{grid-template-columns:repeat(2,1fr)!important}.modal-box{padding:28px 20px 24px}.detail-page-header{flex-direction:column}.detail-page-actions{padding-top:0}.amount-card{padding:14px 16px}.summary-circles{gap:0;padding:14px 12px 10px}.summary-item{min-width:56px;padding:0 6px}.summary-circle{width:48px;height:48px;font-size:18px}.btn-lg{padding:9px 20px;font-size:13px}.commute-toolbar-btn{min-width:0;padding:6px 12px;font-size:12px}.commute-cal{font-size:11px}.commute-cal-header{gap:2px;padding:4px 4px 0}.commute-dow{padding:3px 0}.commute-cal-body{gap:2px;padding:2px 4px 4px}.commute-week{flex:none;gap:2px}.content:has(.commute-page){display:block}.commute-page{flex:none;height:auto}.commute-calendar-col{flex:none}.commute-cal-wrap{flex:none;height:auto}.commute-cal{flex:none}.commute-cal-body{overflow-y:visible}.commute-day{aspect-ratio:1;border-radius:6px;gap:1px;padding:4px 3px;overflow:hidden}.commute-day-top{flex-direction:column;gap:2px}.commute-day-holiday-tag,.commute-day-office-count{display:none}.commute-day-option-tag{background-color:var(--opt-dot,var(--gray-a50));border-radius:50%;flex-shrink:0;width:7px;height:7px;padding:0;font-size:0;display:inline-block}.commute-day-option-tag[data-value=出社]{background-color:var(--attendance-office)}.commute-day-option-tag[data-value=在宅]{background-color:var(--attendance-zaita)}.commute-day-option-tag[data-value=休暇]{background-color:var(--attendance-kyuka)}.commute-detail-panel{width:min(240px,100vw - 32px);max-height:40vh}.commute-detail-title{padding:8px 10px 7px;font-size:12px}.commute-detail-row{padding:5px 10px}.commute-detail-name{font-size:11px}.commute-detail-badge{padding:1px 6px;font-size:9px}.commute-detail-group-label{padding:5px 10px 2px;font-size:9px}.commute-option-picker{min-width:0;right:8px;width:auto!important;left:8px!important}.commute-option-submenu{box-shadow:none;border:1px solid var(--border);border-radius:var(--radius);min-width:0;margin-top:4px;position:static;display:flex!important}.form-tbl-wrap{display:none!important}.form-cards{display:flex}.hide-mobile{display:none!important}.c4:has(.hide-mobile){grid-template-columns:1fr 1fr!important}}.action-menu{display:inline-flex;position:relative}.action-menu-btn{padding-left:10px!important;padding-right:10px!important}.action-menu-dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 16px var(--black-a12);z-index:200;border-radius:10px;min-width:160px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.action-menu-item{cursor:pointer;color:var(--text);font-size:13px;font-family:var(--font-ui);text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:10px 14px;display:flex}.action-menu-item:not(:last-child){border-bottom:1px solid var(--border)}.action-menu-item:hover{background:var(--bg)}.action-menu-item-icon{color:var(--text-2);align-items:center;display:inline-flex}tr.approve-flow-row--editing>td.ant-table-cell,tr.approve-flow-row--editing:hover>td.ant-table-cell{background:var(--accent-bg)!important}.approve-flow-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.approve-flow-add-btn{padding:0 6px}.approve-flow-emp{align-items:center;gap:6px;display:inline-flex}.approve-flow-emp-name{color:var(--text);white-space:nowrap;font-size:12px;font-weight:500}.approve-flow-empty{color:var(--text-3);font-size:12px}.combobox-emp{align-items:center;gap:6px;padding:2px 0;display:flex}.combobox-emp-name{color:var(--text);font-size:12px}.combobox-opt-clear{color:var(--text-3);font-size:12px;font-style:italic}.acb-info-icon{color:var(--amber-icon);cursor:pointer;display:block}
