.billing-overview{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);max-width:1200px;margin:0 auto;width:100%}.bo-header{display:flex;align-items:center;justify-content:space-between}.bo-header-left{display:flex;align-items:center;gap:var(--space-3)}.bo-header h1{font-size:var(--text-xl);font-weight:800}.bo-header-actions{display:flex;gap:var(--space-2)}.bo-month-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.bo-month-label{font-size:var(--text-xl);font-weight:800;min-width:140px;text-align:center}.bo-summary{display:flex;gap:var(--space-4);flex-wrap:wrap}.bo-summary-card{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.bo-bulk-form{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.bo-bulk-form h3{font-size:var(--text-base);font-weight:700}.bo-bulk-settings{display:flex;gap:var(--space-3);flex-wrap:wrap}.bo-bulk-settings .input-field{flex:1;min-width:120px}.bo-bulk-table{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.bo-bulk-row{display:flex;align-items:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);gap:var(--space-3)}.bo-bulk-row:last-child{border-bottom:none}.bo-bulk-head{background:var(--surface-2);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;color:var(--text-tertiary)}.bo-bulk-check{width:30px;min-width:30px;display:flex;align-items:center;justify-content:center}.bo-bulk-check input{width:16px;height:16px;accent-color:var(--primary-500);cursor:pointer}.bo-bulk-name{flex:1;font-size:var(--text-sm);font-weight:500}.bo-bulk-grade{width:50px;font-size:var(--text-xs);color:var(--text-tertiary);text-align:center}.bo-bulk-qty{width:80px;text-align:center}.bo-bulk-amount{width:100px;text-align:right;font-weight:700;font-size:var(--text-sm)}.bo-bulk-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.bo-table{border-radius:var(--radius-xl);overflow:hidden}.bo-table-head{display:flex;align-items:center;padding:var(--space-3) var(--space-4);background:var(--surface-2);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;color:var(--text-tertiary);gap:var(--space-3);border-bottom:1px solid var(--border-subtle)}.bo-table-row{display:flex;align-items:center;padding:var(--space-3) var(--space-4);gap:var(--space-3);border-bottom:1px solid var(--bg-primary);font-size:var(--text-sm);transition:background var(--transition-fast)}.bo-table-row:hover{background:var(--surface-2)}.bo-table-row:last-child{border-bottom:none}.bo-col-status{width:68px;min-width:68px;display:flex;align-items:center;justify-content:center}.bo-col-name{flex:1;font-weight:600}.bo-col-grade{width:50px;color:var(--text-tertiary);text-align:center}.bo-col-total{width:90px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.bo-col-paid{width:90px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.bo-col-unpaid{width:140px;min-width:140px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.bo-col-withdrawal{width:110px;min-width:110px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.bo-col-actions{width:120px;min-width:120px;display:flex;align-items:center;gap:4px;justify-content:flex-end}.bo-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.bo-email-result{font-size:12px;font-weight:700}.bo-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);color:var(--text-tertiary);font-size:var(--text-sm)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.et-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.et-edit-col{display:flex;flex-direction:column;gap:var(--space-4)}.et-placeholder-section{background:var(--surface-2);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.et-placeholder-label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);display:block;margin-bottom:var(--space-2)}.et-placeholder-badges{display:flex;gap:6px;flex-wrap:wrap}.et-badge{background:var(--primary-500);color:#fff;border:none;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);font-family:inherit}.et-badge:hover{background:var(--primary-600);transform:scale(1.05)}.et-section{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.et-section-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.et-section-icon{font-size:16px}.et-section-title{font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.et-textarea{font-family:Inter,monospace;font-size:13px!important;line-height:1.6;resize:vertical}.et-detail-indicator{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.et-detail-line{flex:1;height:1px;background:repeating-linear-gradient(to right,var(--border) 0,var(--border) 6px,transparent 6px,transparent 12px)}.et-detail-label{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;font-weight:600}.et-preview-col{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-primary)}.et-preview-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-2);font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.et-preview-email{padding:var(--space-3) var(--space-4);flex:1;overflow-y:auto;overflow-x:hidden;max-height:600px}.et-preview-to,.et-preview-subject{font-size:11px;color:var(--text-tertiary);padding:2px 0}.et-preview-subject{font-weight:600;color:var(--text-secondary)}.et-preview-divider{height:1px;background:var(--border-subtle);margin:var(--space-2) 0}.et-preview-body{font-size:12px;line-height:1.7;white-space:pre-wrap;word-break:break-word;color:var(--text-primary);font-family:inherit;margin:0}.ed-field{margin-bottom:var(--space-4)}.ed-label{display:block;font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1)}.ed-readonly{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-2) var(--space-3);background:var(--surface-2);border-radius:var(--radius-md)}.ed-month-display{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#6366f114,#6366f105);border-radius:var(--radius-md);border:1px solid rgba(99,102,241,.15)}.ed-closing{font-weight:400;color:var(--text-tertiary);font-size:var(--text-xs)}.ed-due-date-picker{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.ed-due-date-picker .input-field{max-width:180px;font-size:var(--text-sm);padding:var(--space-1) var(--space-2)}.ed-due-label{font-size:var(--text-sm);font-weight:600;color:var(--primary-600)}.ed-due-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:4px;padding-left:2px}.ed-bills-summary{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.ed-bill-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-bottom:1px solid var(--border-subtle)}.ed-bill-row:last-child{border-bottom:none}.ed-bill-amount{font-weight:600;color:var(--text-primary)}.ed-bill-total{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:700;background:var(--surface-2);border-top:2px solid var(--border)}.ed-preview-body{font-size:12px;line-height:1.7;white-space:pre-wrap;word-break:break-word;padding:var(--space-3) var(--space-4);background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--border-subtle);max-height:300px;overflow-y:auto;font-family:inherit;margin:0;color:var(--text-primary)}@media(max-width:768px){.billing-overview{padding:var(--space-3);gap:var(--space-3)}.bo-header,.bo-month-nav,.bo-summary{align-items:stretch;flex-direction:column}.bo-header-actions,.bo-bulk-actions{flex-direction:row;flex-wrap:wrap;gap:var(--space-2)}.bo-table{overflow:visible;border-radius:0;background:transparent;box-shadow:none}.bo-table-head{display:none}.bo-table-row{align-items:flex-start;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-1)}.bo-col-status{width:auto;min-width:max-content;flex:0 0 auto;justify-content:flex-start}.bo-col-name{flex:1 1 calc(100% - 54px);min-width:0}.bo-col-grade{width:auto;min-width:52px;text-align:left;order:3}.bo-col-total,.bo-col-paid,.bo-col-unpaid,.bo-col-withdrawal{display:flex;justify-content:space-between;align-items:center;width:calc(50% - var(--space-1));min-width:136px;padding:6px 8px;border-radius:var(--radius-md);background:var(--surface-2);text-align:right;order:4}.bo-col-total:before,.bo-col-paid:before,.bo-col-unpaid:before,.bo-col-withdrawal:before{font-size:11px;font-weight:600;color:var(--text-tertiary);margin-right:8px}.bo-col-total:before{content:"請求"}.bo-col-paid:before{content:"支払済"}.bo-col-unpaid:before{content:"未収"}.bo-col-withdrawal:before{content:"口座"}.bo-col-actions{width:100%;min-width:0;flex-wrap:wrap;justify-content:flex-end;order:5}.bo-bulk-row{flex-wrap:wrap}.bo-bulk-name{flex:1 1 calc(100% - 48px);min-width:0}.et-layout{grid-template-columns:1fr}}@media(max-width:430px){.bo-col-total,.bo-col-paid,.bo-col-unpaid,.bo-col-withdrawal{width:100%}}.salary-statement{display:flex;flex-direction:column;gap:14px;width:100%;color:var(--text-primary)}.salary-statement-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.salary-statement-title{display:flex;align-items:flex-start;gap:10px;min-width:0}.salary-statement-title h2{margin:0;font-size:18px;font-weight:800}.salary-statement-title p,.salary-statement-person{display:flex;align-items:center;gap:6px;margin:4px 0 0;color:var(--text-secondary);font-size:13px}.salary-statement-person{margin:0;padding:9px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-secondary);font-weight:700}.salary-statement-person small{color:var(--text-tertiary);font-weight:500}.salary-statement-status{flex:0 0 auto;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid rgba(99,102,241,.25);color:var(--primary-600);background:#6366f114}.salary-statement-status.finalized{color:#15803d;border-color:#16a34a40;background:#16a34a14}.salary-statement-warnings{display:flex;flex-direction:column;gap:6px}.salary-statement-warnings>div{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid rgba(245,158,11,.25);border-radius:8px;color:#92400e;background:#f59e0b14;font-size:12px;font-weight:700}.salary-statement-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.salary-statement-summary>div{padding:12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-1)}.salary-statement-summary span,.salary-statement-section h3{color:var(--text-tertiary);font-size:12px;font-weight:700}.salary-statement-summary strong{display:block;margin-top:4px;font-size:18px;font-weight:900;font-variant-numeric:tabular-nums}.salary-statement-summary .primary{border-color:#6366f152;background:#6366f10f}.salary-statement-summary .primary strong{color:var(--primary-600)}.salary-statement-section,.salary-statement-reports{padding:12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-1)}.salary-statement-section h3{margin:0 0 8px;color:var(--text-secondary)}.salary-statement-pending{display:flex;align-items:flex-start;gap:10px;border-color:#f59e0b40;background:#f59e0b14;color:#92400e}.salary-statement-pending h3{margin:0 0 4px;color:#92400e;font-size:14px}.salary-statement-pending p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.6}.salary-statement-row,.salary-statement-breakdown-row,.salary-statement-report-money{display:flex;align-items:center;justify-content:space-between;gap:10px}.salary-statement-row{padding:8px 0;border-bottom:1px solid var(--border-subtle);font-size:13px}.salary-statement-row:last-child{border-bottom:0}.salary-statement-row>span{color:var(--text-secondary)}.salary-statement-row strong,.salary-statement-breakdown-row strong,.salary-statement-report-money strong{font-weight:900;font-variant-numeric:tabular-nums}.salary-statement-row.strong{margin-top:6px;padding:12px;border-bottom:0;border-radius:8px;background:var(--bg-secondary)}.salary-statement-row.strong strong{color:var(--primary-600);font-size:18px}.salary-statement .danger{color:var(--danger, #dc2626)}.salary-statement-breakdown{display:flex;flex-direction:column;gap:4px;padding:2px 0 8px 12px}.salary-statement-breakdown-row{color:var(--text-tertiary);font-size:12px}.salary-statement-reports{overflow:hidden}.salary-statement-reports summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:800}.salary-statement-reports summary span{color:var(--primary-600);font-variant-numeric:tabular-nums}.salary-statement-report-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;margin-top:10px}.salary-statement-report-item{padding:10px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-secondary)}.salary-statement-report-main,.salary-statement-report-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.salary-statement-report-main .date{color:var(--primary-600);font-size:12px;font-weight:900}.salary-statement-report-main strong{overflow-wrap:anywhere}.salary-statement-report-main .late{padding:1px 6px;border-radius:999px;color:#b45309;background:#f59e0b1f;font-size:11px;font-weight:800}.salary-statement-report-meta,.salary-statement-report-money{margin-top:5px;color:var(--text-tertiary);font-size:12px}.salary-statement-report-money{padding-top:7px;border-top:1px dashed rgba(148,163,184,.35)}.salary-statement-report-money strong{color:var(--primary-600)}.salary-statement-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a7a}.salary-statement-modal{position:relative;width:min(760px,calc(100vw - 24px));max-height:min(88vh,860px);overflow:auto;padding:22px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-1);box-shadow:0 24px 60px #0f172a40}.salary-statement-modal-close{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-1);color:var(--text-secondary);cursor:pointer}@media(max-width:520px){.salary-statement-modal{padding:18px 12px 14px}.salary-statement-header,.salary-statement-row,.salary-statement-breakdown-row,.salary-statement-report-money{align-items:flex-start}.salary-statement-summary{grid-template-columns:1fr}.salary-statement-row,.salary-statement-breakdown-row,.salary-statement-report-money{flex-direction:column}}.salary-page{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6)}.salary-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3)}.salary-header-left{display:flex;align-items:center;gap:var(--space-3)}.salary-header h1{font-size:var(--text-xl);font-weight:800}.salary-controls{display:flex;align-items:center;gap:var(--space-3)}.salary-month-picker{display:flex;align-items:center;gap:var(--space-2)}.salary-month-picker .input-field{width:160px}.salary-closing-panel{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid rgba(99,102,241,.24);border-radius:var(--radius-lg);background:linear-gradient(135deg,#6366f114,#0ea5e90d)}.salary-closing-panel.finalized{border-color:#16a34a42;background:linear-gradient(135deg,#16a34a14,#0ea5e90a)}.salary-closing-main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.salary-closing-title{display:flex;align-items:flex-start;gap:var(--space-3)}.salary-closing-title h2{margin:0;font-size:var(--text-lg);font-weight:800}.salary-closing-title p{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6}.salary-closing-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);color:var(--text-tertiary);font-size:var(--text-xs)}.salary-status-chip{display:inline-flex;align-items:center;gap:4px;width:max-content;padding:4px 10px;border-radius:var(--radius-full);border:1px solid rgba(99,102,241,.24);color:var(--primary-600);background:#ffffffad;font-size:var(--text-xs);font-weight:700}.salary-closing-panel.finalized .salary-status-chip{color:#15803d;border-color:#16a34a3d}.salary-closing-note{display:flex;flex-direction:column;gap:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm);font-weight:700}.salary-closing-note textarea{min-height:72px;resize:vertical;font-weight:500}.salary-closing-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2)}.salary-backfill-panel{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid rgba(14,165,233,.22);border-radius:var(--radius-lg);background:#ffffffd1}.salary-backfill-main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.salary-backfill-title{display:flex;gap:var(--space-3);align-items:flex-start}.salary-backfill-title h2{margin:0;font-size:var(--text-base);font-weight:800}.salary-backfill-title p{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6}.salary-backfill-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.salary-backfill-result{display:flex;flex-direction:column;gap:var(--space-2)}.salary-backfill-summary{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary)}.salary-backfill-summary span{padding:4px 10px;border-radius:var(--radius-full);background:#6366f114;font-weight:700}.salary-backfill-items{display:grid;gap:var(--space-2)}.salary-backfill-item{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr);gap:var(--space-3);padding:var(--space-3);border:1px solid rgba(148,163,184,.22);border-radius:var(--radius-md);background:#fff;font-size:var(--text-xs)}.salary-backfill-item.matched{border-color:#6366f147;background:#6366f10a}.salary-backfill-item>div{display:flex;flex-direction:column;gap:4px;min-width:0}.salary-backfill-item strong,.salary-backfill-item span,.salary-backfill-item b{overflow-wrap:anywhere}.salary-backfill-item span{color:var(--text-secondary)}.salary-backfill-item b{color:var(--primary-600)}.salary-backfill-more{color:var(--text-tertiary);font-size:var(--text-xs);text-align:right}.salary-trash-panel{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid rgba(239,68,68,.18);border-radius:var(--radius-lg);background:#ffffffe0}.salary-trash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.salary-trash-title{display:flex;gap:var(--space-3);align-items:flex-start}.salary-trash-title-button{flex:1;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.salary-trash-title-button:hover h2{color:var(--primary-600)}.salary-trash-title svg{color:var(--danger)}.salary-trash-title h2{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;font-size:var(--text-base);font-weight:800}.salary-trash-count{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;background:#ef44441a;color:var(--danger);font-size:var(--text-xs);font-weight:800}.salary-trash-title p{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6}.salary-trash-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.salary-trash-toggle-icon{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;color:var(--text-tertiary)}.salary-trash-empty{padding:var(--space-3);border-radius:var(--radius-md);background:#94a3b814;color:var(--text-secondary);font-size:var(--text-sm);font-weight:700}.salary-trash-empty.compact{padding:var(--space-2) var(--space-3)}.salary-trash-collapsed-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px dashed rgba(239,68,68,.24);border-radius:var(--radius-md);background:#ef44440a;color:var(--text-secondary);font-size:var(--text-sm);font-weight:800;text-align:left;cursor:pointer}.salary-trash-collapsed-summary:hover{background:#ef444414;color:var(--danger)}.salary-trash-list{display:grid;gap:var(--space-2)}.salary-trash-item{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,.9fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid rgba(148,163,184,.22);border-radius:var(--radius-md);background:#fff}.salary-trash-item.expired{opacity:.68}.salary-trash-item-main,.salary-trash-item-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.salary-trash-item-main strong,.salary-trash-item-main span,.salary-trash-item-meta span{overflow-wrap:anywhere}.salary-trash-item-main strong{color:var(--text-primary);font-size:var(--text-sm)}.salary-trash-item-main span,.salary-trash-item-meta span{color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.salary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:var(--space-4)}.salary-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;transition:box-shadow var(--transition-fast)}.salary-card:hover{box-shadow:var(--shadow-md)}.salary-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);background:linear-gradient(135deg,var(--primary-600),var(--primary-700));color:#fff}.salary-card-title-group{display:flex;align-items:baseline;gap:4px;min-width:0}.salary-card-name{font-size:var(--text-lg);font-weight:700;overflow-wrap:anywhere}.salary-card-real-name{color:#ffffffad;font-size:var(--text-xs);white-space:nowrap}.salary-card-header-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2)}.salary-preview-button,.salary-report-add-button{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:4px 8px;border:1px solid rgba(255,255,255,.42);border-radius:var(--radius-full);background:#ffffff24;color:#fff;font-size:var(--text-xs);font-weight:800;cursor:pointer}.salary-report-add-button{background:#ffffff38}.salary-report-add-button:disabled{cursor:not-allowed;opacity:.45}.salary-preview-button:hover,.salary-preview-button:focus-visible,.salary-report-add-button:hover:not(:disabled),.salary-report-add-button:focus-visible{background:#ffffff3d;outline:none}.salary-card-badge{font-size:var(--text-xs);padding:2px 8px;background:#fff3;border-radius:var(--radius-full)}.salary-card-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.salary-admin-adjust{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid rgba(99,102,241,.18);border-radius:var(--radius-md);background:#6366f10a}.salary-admin-adjust.readonly{border-color:#16a34a2e;background:#16a34a0a}.salary-admin-adjust-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.salary-admin-adjust-head span:last-child{color:var(--text-tertiary);font-weight:500}.salary-admin-adjust-grid{display:grid;grid-template-columns:minmax(104px,.7fr) 1.3fr;gap:var(--space-2)}.salary-admin-adjust-grid label{display:flex;flex-direction:column;gap:4px;color:var(--text-tertiary);font-size:var(--text-xs);font-weight:700}.salary-admin-adjust-grid .input-field{width:100%}.salary-admin-adjust-readonly{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-sm)}.salary-admin-adjust-readonly span:first-child{font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums}.salary-detail-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.salary-detail-row:last-child{border-bottom:none}.salary-detail-label{color:var(--text-secondary);font-weight:500}.salary-detail-value{font-weight:700;font-variant-numeric:tabular-nums}.salary-detail-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-left:var(--space-1)}.salary-adjustment-row .salary-detail-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.salary-total-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-lg);font-size:var(--text-base)}.salary-total-row .salary-detail-label{font-weight:700;color:var(--text-primary)}.salary-total-row .salary-detail-value{font-size:var(--text-lg);color:var(--primary-600)}.salary-transport-detail{padding-left:var(--space-4);font-size:var(--text-xs);color:var(--text-tertiary)}.salary-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);margin-bottom:var(--space-2)}.salary-summary-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center}.salary-summary-value{font-size:var(--text-2xl);font-weight:800;color:var(--primary-600);font-variant-numeric:tabular-nums}.salary-summary-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.salary-empty{text-align:center;padding:var(--space-8);color:var(--text-tertiary)}.salary-empty-icon{font-size:48px;margin-bottom:var(--space-3)}.salary-lesson-breakdown{display:flex;flex-direction:column;gap:var(--space-1);padding-left:var(--space-3)}.salary-lesson-item{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-tertiary)}.salary-report-details{border:1px solid rgba(99,102,241,.18);border-radius:var(--radius-md);background:#6366f109;overflow:hidden}.salary-report-details summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--text-secondary);font-size:var(--text-xs);font-weight:800}.salary-report-details summary span{color:var(--primary-600);font-variant-numeric:tabular-nums}.salary-report-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:260px;overflow:auto;padding:0 var(--space-3) var(--space-3)}.salary-report-row{display:flex;flex-direction:column;gap:4px;width:100%;padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-1);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.salary-report-row:hover{border-color:#6366f16b;box-shadow:0 8px 18px #0f172a14;transform:translateY(-1px)}.salary-report-row:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}.salary-report-main,.salary-report-meta,.salary-report-counts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.salary-report-date{color:var(--primary-600);font-size:var(--text-xs);font-weight:800;font-variant-numeric:tabular-nums}.salary-report-title{min-width:0;color:var(--text-primary);font-size:var(--text-sm);font-weight:700;overflow-wrap:anywhere}.salary-report-late{padding:1px 6px;border-radius:var(--radius-full);color:#b45309;background:#f59e0b1f;font-size:10px;font-weight:800}.salary-report-meta,.salary-report-counts{color:var(--text-tertiary);font-size:var(--text-xs)}.salary-report-counts span:first-child{color:var(--text-secondary);font-weight:700}.salary-report-pay{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:2px;padding-top:6px;border-top:1px dashed rgba(148,163,184,.35);color:var(--text-tertiary);font-size:var(--text-xs)}.salary-report-pay strong{color:var(--primary-600);font-size:var(--text-sm);font-weight:900;font-variant-numeric:tabular-nums}.salary-report-open{margin-left:auto;color:var(--primary-600);font-weight:800}.salary-report-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0f172a6b}.salary-report-modal{width:min(720px,100%);max-height:min(86vh,780px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:0 24px 60px #0f172a40}.salary-report-create-modal{width:min(820px,100%)}.salary-report-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-subtle);background:linear-gradient(135deg,#6366f11a,#f0fdfab3)}.salary-report-modal-title{display:flex;align-items:center;gap:var(--space-2);min-width:0;color:var(--text-primary);font-weight:800}.salary-report-modal-title>div{min-width:0}.salary-report-modal-title span,.salary-report-modal-title small{display:block;overflow-wrap:anywhere}.salary-report-modal-title small{margin-top:2px;color:var(--text-tertiary);font-size:var(--text-xs);font-weight:600}.salary-report-modal-actions{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.salary-report-modal-close{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--surface-1);color:var(--text-secondary);cursor:pointer}.salary-report-modal-body{display:flex;flex-direction:column;gap:var(--space-3);overflow:auto;padding:var(--space-4)}.salary-report-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);background:var(--surface-1)}.salary-report-zero-notice{padding:var(--space-3);border:1px solid rgba(245,158,11,.28);border-radius:var(--radius-md);background:#f59e0b14;color:#92400e;font-size:var(--text-sm);font-weight:800}.salary-report-modal-grid,.salary-report-modal-counts,.salary-report-modal-split{display:grid;gap:var(--space-2)}.salary-report-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.salary-report-modal-counts{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.salary-report-modal-grid>div,.salary-report-modal-counts>div,.salary-report-modal-section{padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2)}.salary-report-modal-grid span,.salary-report-modal-counts span,.salary-report-modal-section>span{display:block;margin-bottom:4px;color:var(--text-tertiary);font-size:var(--text-xs);font-weight:800}.salary-report-modal-grid strong,.salary-report-modal-counts strong{color:var(--text-primary);font-size:var(--text-sm);overflow-wrap:anywhere}.salary-report-modal-section p{margin:0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.salary-report-modal-split{grid-template-columns:repeat(2,minmax(0,1fr))}.salary-report-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.salary-report-edit-grid-counts{grid-template-columns:repeat(3,minmax(0,1fr))}.salary-report-edit-grid label,.salary-report-edit-block{display:flex;flex-direction:column;gap:6px;min-width:0}.salary-report-edit-grid label>span,.salary-report-edit-block>span{color:var(--text-tertiary);font-size:var(--text-xs);font-weight:800}.salary-report-shift-picker{padding:var(--space-3);border:1px solid rgba(99,102,241,.22);border-radius:var(--radius-md);background:#6366f10a}.salary-report-shift-picker small{color:var(--text-tertiary);font-size:var(--text-xs);line-height:1.5}.salary-report-edit-block textarea{min-height:96px;resize:vertical}.salary-student-multiselect{min-height:140px}.salary-student-multiselect option{padding:6px 8px}@media(max-width:768px){.salary-page{padding:var(--space-3)}.salary-grid{grid-template-columns:1fr}.salary-header{flex-direction:column;align-items:stretch}.salary-controls,.salary-month-picker,.salary-closing-main,.salary-closing-actions,.salary-backfill-main,.salary-backfill-actions,.salary-trash-head,.salary-admin-adjust-readonly{align-items:stretch;flex-direction:column}.salary-month-picker .input-field,.salary-closing-actions .btn,.salary-backfill-actions .btn,.salary-trash-head .btn,.salary-trash-title-button,.salary-trash-actions{width:100%}.salary-trash-actions{justify-content:stretch}.salary-trash-actions .btn{flex:1}.salary-admin-adjust-grid{grid-template-columns:1fr}.salary-report-pay{align-items:flex-start;flex-direction:column}.salary-report-modal-overlay{align-items:flex-end;padding:var(--space-2)}.salary-report-modal{max-height:92vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.salary-report-modal-header,.salary-report-modal-body{padding:var(--space-3)}.salary-report-modal-grid,.salary-report-modal-counts,.salary-report-modal-split,.salary-report-edit-grid,.salary-report-edit-grid-counts{grid-template-columns:1fr}.salary-report-modal-actions,.salary-report-modal-footer{align-items:stretch;flex-direction:column}.salary-backfill-item{grid-template-columns:1fr}.salary-trash-item{grid-template-columns:1fr;align-items:stretch}}
