: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;--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;--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}*,: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{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--sidebar-bg);flex-direction:column;width:264px;min-width:264px;display:flex;position:relative;overflow:hidden}.sb-header{border-bottom:1px solid #ffffff0f;padding:20px 16px 16px}.sb-logo{color:#fff;letter-spacing:-.01em;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.sb-logo .logo-icon{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-light) 100%);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.sb-sub{color:#ffffff59;margin-top:2px;padding-left:38px;font-size:11px}.sb-nav{flex:1;padding:10px 8px;overflow-y:auto}.sb-nav::-webkit-scrollbar{display:none}.nav-label{letter-spacing:.08em;color:#ffffff4d;text-transform:uppercase;padding:12px 10px 5px;font-size:10px;font-weight:600}.nav-single{color:#ffffff8c;cursor:pointer;border-radius:8px;align-items:center;gap:9px;margin-bottom:1px;padding:8px 10px;font-size:13px;transition:all .12s;display:flex}.nav-single:hover{background:var(--sidebar-hover);color:#ffffffd9}.nav-single.active{background:var(--accent);color:#fff;font-weight:500}.nav-divider{background:#ffffff0f;height:1px;margin:8px 2px}.grp-btn{width:100%;font-family:var(--font-ui);color:#ffffff8c;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;margin-bottom:1px;padding:8px 10px;font-size:13px;transition:all .12s;display:flex}.grp-btn:hover{background:var(--sidebar-hover);color:#ffffffd9}.grp-btn.open{color:#ffffffe6;font-weight:500}.grp-chev{color:#ffffff40;margin-left:auto;transition:transform .15s}.grp-btn.open .grp-chev{color:#fff6;transform:rotate(180deg)}.sub-chev{color:#fff6;margin-left:auto;transition:transform .2s}.sub-chev.open{transform:rotate(180deg)}.nav-sub{padding:2px 0 4px 34px;overflow:hidden}.sub-item{color:#ffffff73;cursor:pointer;border-radius:7px;align-items:center;gap:7px;margin-bottom:1px;padding:6px 10px;font-size:12px;transition:all .12s;display:flex}.sub-item:hover{background:var(--sidebar-hover);color:#fffc}.sub-item.active{color:var(--accent-light);background:#4f6ef740;font-weight:500}.badge-warn{color:#fbbf24;background:#d9770640;border-radius:20px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:600}.sb-user{border-top:1px solid #ffffff0f;align-items:center;gap:9px;padding:12px 14px;display:flex;position:relative}.avatar{background:linear-gradient(135deg, var(--accent-light), var(--accent));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:600;display:flex}.sb-user-name{color:#fffc;font-size:12px;font-weight:500}.sb-user-role{color:#ffffff4d;font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;height:52px;padding:0 24px;display:flex}.breadcrumb{color:var(--text-3);align-items:center;gap:5px;font-size:12px;display:flex}.breadcrumb b{color:var(--text);font-weight:500}.breadcrumb-sep{color:var(--border-md);align-items:center;font-size:11px;display:flex}.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:#fff}.btn-primary:hover{background:var(--accent-dk);border-color:var(--accent-dk);color:#fff}.btn-success{background:var(--green);border-color:var(--green);color:#fff}.btn-success:hover{background:var(--green-txt);border-color:var(--green-txt);color:#fff}.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:#fff}.btn-danger:hover{background:var(--red-dk);border-color:var(--red-dk);color:#fff}.btn-danger-text{color:var(--red-txt)}.btn-danger-text:hover{background:var(--red-bg);border-color:var(--red);color:var(--red)}.btn-export{border-color:var(--accent);color:var(--accent);background:#fff}.btn-export:hover{background:var(--accent);border-color:var(--accent);color:#fff}.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;padding:24px;overflow-y:auto}.page-title{letter-spacing:-.02em;color:var(--text);align-items:baseline;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}.form-loading-hidden{display:none}.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}.fg{flex-direction:column;gap:5px;min-width:0;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],input[type=number],input[type=date],input[type=month],input[type=email],input[type=password],input[type=tel],select,textarea{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{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:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #4f6ef71f}input::placeholder,textarea::placeholder{color:var(--text-3)}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{background:#fef9f9;border-color:#e03a3a59}.upload-zone.required .upload-zone-trigger:hover{border-color:var(--red)}.upload-zone.required .upload-zone-trigger .upload-icon{color:#e03a3a80}.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{cursor:pointer;color:#fff;opacity:0;background:#00000073;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{overflow-x:auto}.tbl{border-collapse:collapse;table-layout:fixed;width:100%;min-width:860px;font-size:13px}.tbl thead tr{background:var(--border)}.tbl th{color:var(--text-3);letter-spacing:.05em;text-transform:uppercase;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 16px;font-size:11px;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-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-1);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{color:#fff;background:#1e3a5f;min-width:130px}.effort-grid .th-month--fy{background:#1a3a6e}.effort-grid .th-month-sub{color:#ffffffbf;background:#1a3558;font-size:9px}.effort-grid .th-month-sub--fy{background:#163060}.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:#fff}.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:#fff}.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{padding-top:10px!important;padding-bottom:10px!important}.effort-grid tfoot .td-label{color:var(--accent-soft);font-size:14px;font-weight:700;text-align:left!important}.effort-grid tfoot .td-subtotal{color:var(--accent-soft);font-size:15px;font-weight:700;text-align:right!important}.effort-grid tfoot .td-grand{color:var(--red);font-size:15px;font-weight:700;text-align:right!important}.effort-summary{z-index:20;background:var(--surface);border-top:2px solid var(--red);margin-top:16px;position:sticky;bottom:0;box-shadow:0 -4px 12px #0000001a}.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,#ccc)}.effort-editable-cell--filled{background:var(--surface-2,#f0f9ff)}.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:1px solid var(--border)}.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}@media (width<=768px){.customer-page-header{flex-direction:column;align-items:flex-start}.customer-filter{width:100%;min-width:unset}}.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{color:var(--text-2);background:#0000000f}.tbl-filter-btn--on{color:var(--accent);background:var(--accent-bg)}.tbl-filter-drop{background:var(--surface);border:1px solid var(--border);z-index:9999;border-radius:8px;overflow:hidden;box-shadow:0 4px 16px #0000001a}.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}.tbl-chk-del{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}.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-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-nav:hover{background:var(--accent);border-color:var(--accent);color:#fff}.month-circle{background:var(--cyan);width:80px;height:80px;color:var(--cyan-txt);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:opacity .15s;display:flex;box-shadow:0 4px 14px #27f5eb33}.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:baseline;gap:4px;padding:4px 8px;transition:background .12s;display:flex}.month-label:hover{background:var(--bg)}.month-label-year,.month-label-month{color:var(--text);font-size:18px;font-weight:700}.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-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(--bg-subtle)!important}.effort-grid tr:hover td.td-inactive{background:var(--bg)!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);outline:none;box-shadow:0 0 0 3px #4f6ef71f}.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:#fff;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{color:#7a3e04;background:#fddcaa}.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:#9ca3af}.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}.login-bg{background:var(--sidebar-bg);background-image:radial-gradient(circle at 18%,#4f6ef72e 0%,#0000 52%),radial-gradient(circle at 82% 15%,#7b93ff1f 0%,#0000 42%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border-radius:20px;width:100%;max-width:400px;padding:36px;box-shadow:0 24px 48px #00000059,0 8px 16px #0003}.login-logo{align-items:center;gap:12px;margin-bottom:28px;display:flex}.logo-icon-lg{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-light) 100%);color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.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);z-index:9999;border-radius:8px;max-height:240px;overflow-y:auto;box-shadow:0 4px 16px #0000001a}.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{margin-bottom:4px}.form-tbl{table-layout:auto}.form-tbl thead tr{border-bottom:2px solid var(--border-md)}.form-tbl th{color:var(--text-2);text-align:center;text-transform:none;letter-spacing:0;padding:8px 10px;font-size:11px;font-weight:600}.form-tbl td{white-space:normal;text-overflow:clip;padding:3px 4px;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-tbl input[type=text],.form-tbl input[type=number]{border:1px solid var(--border-md);background:var(--surface);width:100%;font-size:13px;font-family:var(--font-ui);border-radius:5px;padding:5px 7px}.form-tbl input[type=date]{border:1px solid var(--border-md);background:var(--surface);width:fit-content;font-size:13px;font-family:var(--font-ui);border-radius:5px;padding:5px 7px}.form-tbl input:focus{border-color:var(--accent);background:var(--accent-bg);outline:none;box-shadow:0 0 0 2px #4f6ef71f}.form-tbl input.input-invalid{background:var(--red-bg);border:1.5px solid var(--red)!important}.form-tbl .combobox-input-wrap input{width:100%;padding-right:28px}.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 input[type=text],.route-card input[type=number],.route-card input[type=date]{border:1px solid var(--border-md);background:var(--surface);box-sizing:border-box;width:100%;font-size:13px;font-family:var(--font-ui);border-radius:5px;padding:6px 8px}.route-card input:focus{border-color:var(--accent);background:var(--accent-bg);outline:none;box-shadow:0 0 0 2px #4f6ef71f}.route-card input.input-invalid{background:var(--red-bg);border:1.5px solid var(--red)!important}.route-card .combobox{width:100%;min-width:0}.route-card .combobox-input-wrap input{width:100%;padding-right:28px}.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{color:var(--text);background:#fef9cc;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 #4f6ef71a}.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{z-index:1000;background:#00000073;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:18px;flex-direction:column;align-items:center;gap:10px;width:90%;max-width:480px;padding:44px 52px 36px;animation:.18s slide-up;display:flex;box-shadow:0 12px 40px #0000002e}.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,#888);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-filter-bar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.dash-bulk-approve-btn{margin-left:auto}.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%;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.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{border-radius:var(--radius-lg);background:#fff;width:500px;max-width:95vw;animation:.18s slide-up;overflow:hidden;box-shadow:0 12px 40px #0000002e}.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{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.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,#fee2e2);color:var(--danger,#dc2626)}.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-format-tabs{border:1px solid var(--border);border-radius:8px;width:fit-content;display:flex;overflow:hidden}.estimate-format-tab{font-size:13px;font-family:var(--font-ui);border:none;border-right:1px solid var(--border);cursor:pointer;color:var(--text-2);background:0 0;padding:5px 16px}.estimate-format-tab:last-child{border-right:none}.estimate-format-tab--active{background:var(--accent-bg);color:var(--accent-txt);font-weight:600}.estimate-period-wrap{flex-direction:column;gap:8px;display:flex}.estimate-period-tabs{border:1px solid var(--border);border-radius:8px;width:fit-content;display:flex;overflow:hidden}.estimate-period-tab{font-size:13px;font-family:var(--font-ui);border:none;border-right:1px solid var(--border);cursor:pointer;color:var(--text-2);background:0 0;padding:5px 16px}.estimate-period-tab:last-child{border-right:none}.estimate-period-tab--active{background:var(--accent-bg);color:var(--accent-txt);font-weight:600}.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}.sb-avatar-btn{cursor:pointer;transition:opacity .12s}.sb-avatar-btn:hover{opacity:.8}.sb-user-menu{background:var(--sidebar-hover);border-radius:var(--radius-lg);z-index:100;border:1px solid #ffffff1a;min-width:180px;animation:.12s slide-up;position:absolute;bottom:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 8px 24px #0006}.sb-user-menu-item{color:#ffffffbf;cursor:pointer;width:100%;font-size:13px;font-family:var(--font-ui);text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:10px 14px;transition:background .1s;display:flex}.sb-user-menu-item:hover{color:#fff;background:#ffffff14}.commute-page{flex-direction:column;height:calc(100vh - 100px);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 .combobox{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:80px}.commute-toolbar-btn--weekday{background:var(--attendance-office)!important;color:#fff!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{min-width:0;padding:6px 10px;color:var(--text)!important;box-shadow:none!important;background:0 0!important;border:none!important;font-size:18px!important;font-weight:900!important}.commute-toolbar-btn--cancel:hover{color:var(--red)!important;background:0 0!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{color:#fff;background:var(--border-md);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;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:4px;padding:8px 8px 0;display:grid}.commute-dow{text-align:center;letter-spacing:.06em;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 0;font-size:1.3em;font-weight:800}.commute-dow--sun{color:var(--red);background:#e03a3a17}.commute-dow--sat{color:var(--accent);background:#4f6ef717}.commute-cal-body{flex-direction:column;flex:1;gap:4px;min-height:0;padding:4px 8px 8px;display:flex;overflow-y:auto}.commute-week{flex:1;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.commute-day{border:1px solid var(--border);background:var(--surface);cursor:default;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:4px;padding:8px 10px;display:flex;position:relative;overflow:hidden}.commute-day--empty{background:var(--gray-bg);border-color:var(--border)}.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{content:"";z-index:0;border-radius:7px;position:absolute;inset:0}.commute-day--sun:before{background:#e03a3a17}.commute-day--sat:before{background:#4f6ef717}.commute-day--today:before{background:#0ee8ab40}.commute-day--selected:before{background:#b9de5f59}.commute-day--selected{border-color:#b9de5f99}.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:#4f6ef71f}.commute-day--picking{border-color:var(--accent)!important}.commute-day--picking:before{background:#4f6ef738}.commute-day--holiday:before{background:#e03a3a17}.commute-day--holiday .commute-day-num{color:var(--red-txt);font-weight:600}.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,#7878821f);color:var(--opt-color,var(--text-2))}.commute-day-option-tag{z-index:1;position:relative}.commute-day-holiday-tag{background:var(--attendance-kyuka);color:#fff}:is(.commute-day-option-tag,.commute-detail-badge)[data-value=出社]{background-color:var(--attendance-office);color:#fff}:is(.commute-day-option-tag,.commute-detail-badge)[data-value=在宅]{background-color:var(--attendance-zaita);color:#253858}.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:#fff}.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{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.15em;height:1.15em;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-panel{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:300px;max-height:360px;box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:fixed;overflow:hidden}.commute-detail-title{color:var(--text);border-bottom:1px solid var(--border);flex-shrink:0;padding:14px 16px 12px;font-size:15px;font-weight:700}.commute-detail-close{display:none}.commute-detail-close:hover{background:var(--red-bg)}.commute-detail-list{flex:1;padding:8px 0;overflow-y:auto}.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}.commute-detail-panel--inline{width:100%;max-height:none;box-shadow:none;margin-top:12px;position:static}.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}.sb-close-btn{cursor:pointer;color:#ffffff59;background:0 0;border:none;border-radius:6px;padding:5px;line-height:0;transition:all .12s;display:none;position:absolute;top:14px;right:12px}.sb-close-btn:hover{color:#fffc;background:#ffffff14}.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}}.sidebar-backdrop{z-index:499;background:#00000080;display:none;position:fixed;inset:0}.sidebar-backdrop--visible{display:block}.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)}@media (width<=960px){.sidebar{z-index:500;box-shadow:none;transition:left .25s;position:fixed;top:0;bottom:0;left:-264px}.sidebar--open{left:0;box-shadow:4px 0 24px #00000040}.topbar-hamburger,.sb-close-btn{display:flex}.topbar{padding:0 16px}.content{padding:16px}.page-title{font-size:17px}}@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 .combobox{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%}.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}.dash-filter-bar{flex-wrap:wrap}.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}.commute-page{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,#78788280);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:not(.commute-detail-panel--inline){max-height:40vh;transform:translate(-50%);width:min(240px,100vw - 32px)!important;left:50%!important}.commute-detail-title{justify-content:space-between;align-items:center;padding:8px 10px 7px;font-size:12px;display:flex}.commute-detail-close{cursor:pointer;width:20px;height:20px;color:var(--red);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;transition:background .1s;display:flex}.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);z-index:200;border-radius:10px;min-width:160px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.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}.approve-flow-page{padding:0}.approve-flow-header{align-items:center;gap:12px;margin-bottom:20px;display:flex}.approve-flow-title{color:var(--text);margin:0;font-size:18px;font-weight:600}.approve-flow-table-wrap{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto}.approve-flow-table{border-collapse:collapse;width:100%;font-size:13px}.approve-flow-th{text-align:left;color:var(--text-2);background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-weight:600}.approve-flow-th--dept{min-width:120px}.approve-flow-th--add{text-align:center;width:44px}.approve-flow-th--actions{width:160px}.approve-flow-td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.approve-flow-td--dept{color:var(--text);white-space:nowrap;font-weight:500}.approve-flow-td--add{text-align:center}.approve-flow-td--actions{white-space:nowrap}.approve-flow-row--editing{background:var(--accent-bg)}.approve-flow-row--editing .approve-flow-td{border-color:var(--accent-border,var(--border))}.approve-flow-table tbody tr:last-child .approve-flow-td{border-bottom:none}.approve-flow-add-btn{padding:4px 6px;font-size:12px}.approve-flow-actions{align-items:center;gap:6px;display:flex}.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{align-items:center;gap:0;width:50%;padding:8px 0 4px;display:flex}.acb-node{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.acb-node--start,.acb-node--done{background:var(--status-approve)}.acb-node--rejected{background:var(--status-reject)}.acb-node--end{border:2px solid var(--border-light);background:var(--surface)}.acb-line{flex:1;min-width:16px;height:3px}.acb-line--approved{background:var(--status-approve)}.acb-line--pending{background:linear-gradient(to right, var(--status-pending) 50%, transparent 0%);background-position:50%;background-repeat:repeat-x;background-size:8px 2px}.acb-line--rejected{background:var(--status-reject)}.acb-line--waiting{background:linear-gradient(to right, var(--border-light) 50%, transparent 0%);background-position:50%;background-repeat:repeat-x;background-size:8px 2px}.acb-box{border-radius:var(--radius);text-align:center;border:1.5px solid;flex-direction:column;flex-shrink:0;justify-content:start;align-items:center;gap:3px;width:140px;min-height:72px;padding:10px 10px 8px;font-size:12px;display:flex;position:relative}.acb-box--approved{background:var(--status-approve-bg);border-color:var(--status-approve-border);color:var(--status-approve)}.acb-box--pending{background:var(--status-pending-bg);border-color:var(--status-pending-border);color:var(--status-pending)}.acb-box--rejected{background:var(--status-reject-bg);border-color:var(--status-reject-border);color:var(--status-reject)}.acb-box--waiting{background:var(--waiting-bg);border-color:var(--waiting-border);color:var(--waiting-txt)}.acb-box-name{word-break:break-word;font-size:13px;font-weight:600;line-height:1.3}.acb-box-status{font-size:11px;font-weight:500}.acb-box-date{font-size:14px;font-weight:600}.acb-info-wrap{cursor:pointer;z-index:1;position:absolute;top:0;right:0}.acb-info-icon{color:var(--amber-icon);display:block}.acb-comment-panel{width:260px;max-height:200px}@media (width<=768px){.acb{flex-direction:column;align-items:center;width:100%}.acb-line{width:3px;height:24px;min-width:unset;flex:none}.acb-line--pending{background:linear-gradient(to bottom, var(--status-pending) 50%, transparent 0%);background-position:50%;background-repeat:repeat-y;background-size:3px 8px}.acb-line--waiting{background:linear-gradient(to bottom, var(--border-light) 50%, transparent 0%);background-position:50%;background-repeat:repeat-y;background-size:3px 8px}.acb-box{width:100%;min-height:unset}}
