.ds-btn{justify-content:center;align-items:center;gap:var(--spacing-2);font-family:inherit;font-weight:var(--font-weight-medium);white-space:nowrap;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast);border:1px solid #0000;line-height:1;display:inline-flex}.ds-btn:focus-visible{box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.ds-btn:disabled,.ds-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.ds-btn__icon{align-items:center;font-size:1em;display:inline-flex}.ds-btn--full{width:100%}.ds-btn--sm{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);min-height:28px}.ds-btn--md{padding:var(--spacing-2) var(--spacing-5);font-size:var(--font-size-sm);min-height:34px}.ds-btn--lg{padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base);min-height:40px}.ds-btn--primary{color:var(--color-primary-700);background:#1d4ed814;border-color:#1d4ed84d}.ds-btn--primary:hover:not(:disabled){background:#1d4ed826;border-color:#1d4ed880}.ds-btn--secondary{color:var(--color-text-secondary);background:#64748b0f;border-color:#64748b4d}.ds-btn--secondary:hover:not(:disabled){background:#64748b1f;border-color:#64748b80}.ds-btn--success{color:var(--color-success-700);background:#16653414;border-color:#1665344d}.ds-btn--success:hover:not(:disabled){background:#16653426;border-color:#16653480}.ds-btn--danger{color:var(--color-danger-600);background:var(--color-danger-50);border-color:var(--color-danger-200)}.ds-btn--danger:hover:not(:disabled){background:var(--color-danger-100);border-color:var(--color-danger-300)}.ds-btn--outline{color:var(--color-text-secondary);border-color:var(--color-border);background:0 0}.ds-btn--outline:hover:not(:disabled){color:var(--color-primary-700);background:#1d4ed80d;border-color:#1d4ed840}.ds-btn--ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.ds-btn--ghost:hover:not(:disabled){background:var(--color-bg-muted);color:var(--color-text)}.ds-btn--filled-primary{color:var(--color-text-inverse);background:var(--color-primary-700);border-color:var(--color-primary-700)}.ds-btn--filled-primary:hover:not(:disabled){background:var(--color-primary-800);border-color:var(--color-primary-800)}.ds-btn--filled-danger{color:var(--color-text-inverse);background:var(--color-danger-600);border-color:var(--color-danger-600)}.ds-btn--filled-danger:hover:not(:disabled){background:var(--color-danger-700);border-color:var(--color-danger-700)}.ds-input,.ds-textarea,.ds-select{width:100%;color:var(--color-text);background:var(--color-neutral-0);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);box-sizing:border-box;font-family:inherit}.ds-input:focus,.ds-textarea:focus,.ds-select:focus{border-color:var(--color-primary-700);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.ds-input:disabled,.ds-textarea:disabled,.ds-select:disabled{background:var(--color-bg-muted);color:var(--color-text-disabled);cursor:not-allowed}.ds-input--invalid,.ds-textarea--invalid,.ds-select--invalid{border-color:var(--color-danger-300)}.ds-input--invalid:focus,.ds-textarea--invalid:focus,.ds-select--invalid:focus{border-color:var(--color-danger-600);box-shadow:0 0 0 2px #dc26262e}.ds-input--sm,.ds-select--sm{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-sm);min-height:28px}.ds-input--md,.ds-select--md{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-base);min-height:34px}.ds-textarea{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-base);resize:vertical;min-height:6rem;line-height:var(--line-height-normal)}.ds-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-3) center;padding-right:var(--spacing-8);cursor:pointer}.ds-checkbox{align-items:center;gap:var(--spacing-2);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);display:inline-flex}.ds-checkbox__input{width:16px;height:16px;accent-color:var(--color-primary-700);cursor:pointer}.ds-checkbox__input:disabled{cursor:not-allowed}.ds-checkbox__label{-webkit-user-select:none;user-select:none}.ds-switch{align-items:center;gap:var(--spacing-2);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);display:inline-flex}.ds-switch__track{background:var(--color-neutral-300);border-radius:var(--radius-pill);width:36px;height:20px;transition:background-color var(--transition-fast);display:inline-block;position:relative}.ds-switch__input{opacity:0;width:0;height:0;position:absolute}.ds-switch__thumb{background:var(--color-neutral-0);width:16px;height:16px;transition:transform var(--transition-fast);pointer-events:none;border-radius:50%;position:absolute;top:2px;left:2px}.ds-switch__input:checked+.ds-switch__thumb{transform:translate(16px)}.ds-switch__track:has(.ds-switch__input:checked){background:var(--color-primary-700)}.ds-switch__track:has(.ds-switch__input:focus-visible){box-shadow:0 0 0 3px var(--color-focus-ring)}.ds-switch__track:has(.ds-switch__input:disabled){opacity:.5;cursor:not-allowed}.ds-switch__label{-webkit-user-select:none;user-select:none}.ds-field{gap:var(--spacing-1);margin-bottom:var(--spacing-4);flex-direction:column;display:flex}.ds-field:last-child{margin-bottom:0}.ds-field--inline{align-items:center;gap:var(--spacing-3);flex-direction:row}.ds-field--inline .ds-field__label{min-width:6rem}.ds-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.ds-field__required{color:var(--color-danger-600);margin-left:var(--spacing-1)}.ds-field__control{gap:var(--spacing-1);flex-direction:column;flex:1;min-width:0;display:flex}.ds-field__error{font-size:var(--font-size-xs);color:var(--color-danger-600);margin:0}.ds-field__hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.ds-modal-overlay{z-index:var(--z-modal);padding:var(--spacing-4);background:#00000080;justify-content:center;align-items:center;animation:.15s ds-modal-fade-in;display:flex;position:fixed;inset:0}.ds-modal{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);flex-direction:column;max-width:90vw;max-height:90vh;animation:.2s ds-modal-slide-in;display:flex;overflow:hidden}.ds-modal--sm{width:380px}.ds-modal--md{width:560px}.ds-modal--lg{width:800px}.ds-modal__header{padding:var(--spacing-5) var(--spacing-6) var(--spacing-3);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.ds-modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.ds-modal__close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-neutral-400);font-size:var(--font-size-xl);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.ds-modal__close:hover{background:var(--color-bg-muted);color:var(--color-text)}.ds-modal__body{padding:var(--spacing-5) var(--spacing-6);flex:auto;overflow-y:auto}.ds-modal__footer{justify-content:flex-end;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}@keyframes ds-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ds-modal-slide-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.ds-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ds-card--raised{box-shadow:var(--shadow-sm);border-color:#0000}.ds-card--p-none{padding:0}.ds-card--p-sm{padding:var(--spacing-3)}.ds-card--p-md{padding:var(--spacing-5)}.ds-card--p-lg{padding:var(--spacing-6)}.ds-card__header{justify-content:space-between;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4);display:flex}.ds-card__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.ds-card__actions{align-items:center;gap:var(--spacing-2);display:flex}.ds-badge{padding:2px var(--spacing-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;justify-content:center;align-items:center;line-height:1.4;display:inline-flex}.ds-badge--pill{border-radius:var(--radius-pill)}.ds-badge--rounded{border-radius:var(--radius-sm)}.ds-badge--neutral{background:var(--color-bg-muted);color:var(--color-text-secondary)}.ds-badge--primary{background:var(--color-primary-100);color:var(--color-primary-800)}.ds-badge--success{background:var(--color-success-100);color:var(--color-success-700)}.ds-badge--warning{background:var(--color-warning-100);color:var(--color-warning-700)}.ds-badge--danger{background:var(--color-danger-100);color:var(--color-danger-700)}.ds-badge--info{background:var(--color-primary-50);color:var(--color-primary-700)}.ds-alert{align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-sm);font-size:var(--font-size-sm);line-height:var(--line-height-normal);border:1px solid #0000;display:flex}.ds-alert--slim{align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-3);line-height:var(--line-height-tight)}.ds-alert--slim .ds-alert__close{width:20px;height:20px;font-size:.95rem}.ds-alert__body{flex:1;min-width:0}.ds-alert__title{font-weight:var(--font-weight-semibold);margin-bottom:2px}.ds-alert__message{font-weight:var(--font-weight-regular)}.ds-alert__close{border-radius:var(--radius-sm);width:24px;height:24px;color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.ds-alert__close:hover{opacity:1}.ds-alert--info{background:var(--color-primary-50);color:var(--color-primary-800);border-color:var(--color-primary-200)}.ds-alert--success{background:var(--color-success-50);color:var(--color-success-700);border-color:var(--color-success-200)}.ds-alert--warning{background:var(--color-warning-50);color:var(--color-warning-700);border-color:var(--color-warning-200)}.ds-alert--danger{background:var(--color-danger-50);color:var(--color-danger-700);border-color:var(--color-danger-200)}.ds-tabs{border-bottom:1px solid var(--color-border);gap:0;display:flex}.ds-tab{cursor:pointer;color:var(--color-text-secondary);transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;align-items:flex-start;gap:2px;font-family:inherit;text-decoration:none;display:inline-flex}.ds-tab:hover:not(:disabled){color:var(--color-text);background:var(--color-bg-subtle)}.ds-tab--active{color:var(--color-primary-700);border-bottom-color:var(--color-primary-700);font-weight:var(--font-weight-semibold)}.ds-tab:disabled{opacity:.5;cursor:not-allowed}.ds-tab__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.ds-tab__meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.ds-tabs--sm .ds-tab{padding:6px var(--spacing-3)}.ds-tabs--md .ds-tab{padding:10px var(--spacing-6)}.ds-tabs--lg .ds-tab{padding:var(--spacing-2) var(--spacing-4)}.ds-toolbar{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.ds-toolbar--start{justify-content:flex-start}.ds-toolbar--end{justify-content:flex-end}.ds-toolbar--between{justify-content:space-between}.ds-toolbar__group{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.ds-filter-bar{align-items:flex-end;gap:var(--spacing-4);padding:var(--spacing-3) 0;flex-wrap:wrap;display:flex}.ds-filter-field{gap:var(--spacing-1);flex-direction:column;min-width:0;display:flex}.ds-filter-field__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.ds-filter-field__control{align-items:center;gap:var(--spacing-2);display:flex}.ds-table-container{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow-x:auto}.ds-table-container--fill{flex:1;min-height:0;overflow-y:auto}.ds-table-container--fill .ds-table thead th{z-index:1;position:sticky;top:0}.ds-table{border-collapse:collapse;width:100%}.ds-table th,.ds-table td{text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm)}.ds-table th{background:var(--color-bg-subtle);color:var(--color-neutral-600);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);white-space:nowrap}.ds-table tr:last-child td{border-bottom:none}.ds-table--comfortable th,.ds-table--comfortable td{padding:var(--spacing-3) var(--spacing-4)}.ds-table--compact th,.ds-table--compact td{padding:var(--spacing-2) var(--spacing-3)}.ds-table--dense th,.ds-table--dense td{padding:var(--spacing-1) var(--spacing-3);line-height:1.3}.ds-table--dense th{padding-top:6px;padding-bottom:6px}.ds-table--hover tbody tr:hover td,.ds-table--striped tbody tr:nth-child(2n) td{background:var(--color-bg-subtle)}.ds-table td.ds-num,.ds-table th.ds-num{text-align:right;font-variant-numeric:tabular-nums}.ds-table-empty{padding:var(--spacing-10) var(--spacing-6);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-base)}.ds-pagination{padding:var(--spacing-3) var(--spacing-4);justify-content:center;align-items:center;gap:4px;display:flex}.ds-pagination__btn{width:32px;height:32px;font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.ds-pagination__btn:hover:not(:disabled):not(.ds-pagination__btn--active){background:var(--color-bg-muted);border-color:var(--color-border)}.ds-pagination__btn--active{color:var(--color-primary-700);font-weight:var(--font-weight-semibold);background:#1d4ed814;border-color:#1d4ed84d}.ds-pagination__btn:disabled{opacity:.4;cursor:not-allowed}.ds-pagination__gap{width:24px;color:var(--color-text-secondary);justify-content:center;align-items:center;display:inline-flex}.ds-icon-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--color-neutral-500);transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.ds-icon-btn:focus-visible{box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.ds-icon-btn:disabled{opacity:.4;cursor:not-allowed}.ds-icon-btn--sm{width:28px;height:28px;font-size:var(--font-size-sm)}.ds-icon-btn--md{width:32px;height:32px;font-size:var(--font-size-base)}.ds-icon-btn--neutral{border-color:var(--color-border)}.ds-icon-btn--neutral:hover:not(:disabled){background:var(--color-bg-muted);color:var(--color-primary-700);border-color:var(--color-border-strong)}.ds-icon-btn--danger{color:var(--color-danger-600);border-color:var(--color-danger-200)}.ds-icon-btn--danger:hover:not(:disabled){background:var(--color-danger-100);border-color:var(--color-danger-300)}.ds-empty{text-align:center;padding:var(--spacing-10) var(--spacing-6);align-items:center;gap:var(--spacing-2);flex-direction:column;display:flex}.ds-empty__icon{color:var(--color-neutral-400);margin-bottom:var(--spacing-2)}.ds-empty__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.ds-empty__desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:32rem}.ds-empty__action{margin-top:var(--spacing-3)}.ds-spinner{align-items:center;gap:var(--spacing-2);color:var(--color-text-secondary);display:inline-flex}.ds-spinner--block{justify-content:center;align-items:center;gap:var(--spacing-3);padding:var(--spacing-10) var(--spacing-6);flex-direction:column;width:100%;display:flex}.ds-spinner__ring{border-radius:var(--radius-pill);border-style:solid;border-color:var(--color-neutral-200);border-top-color:var(--color-primary);flex-shrink:0;animation:.7s linear infinite ds-spinner-rotate;display:inline-block}.ds-spinner__ring--sm{border-width:2px;width:16px;height:16px}.ds-spinner__ring--md{border-width:2.5px;width:24px;height:24px}.ds-spinner__ring--lg{border-width:3px;width:36px;height:36px}.ds-spinner__label{font-size:var(--font-size-base);color:var(--color-text-secondary)}.ds-spinner__sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes ds-spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ds-spinner__ring{animation-duration:2.4s}}.ds-drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-8) var(--spacing-6);text-align:center;cursor:pointer;background:var(--color-bg-subtle);min-height:140px;color:var(--color-text);transition:background-color var(--transition-base), border-color var(--transition-base);flex-direction:column;justify-content:center;align-items:center;display:flex}.ds-drop-zone:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.ds-drop-zone:hover:not(.ds-drop-zone--disabled),.ds-drop-zone--over{border-color:var(--color-primary-700);background:var(--color-primary-50)}.ds-drop-zone--disabled{opacity:.5;cursor:not-allowed}.ds-drop-zone__icon{color:var(--color-neutral-400);margin-bottom:var(--spacing-3)}.ds-drop-zone__prompt{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-1)}.ds-drop-zone__hint{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.sidebar{color:#1e293b;background-color:#fafbfc;border-right:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;width:260px;height:100vh;transition:width .3s;display:flex;position:sticky;top:0}.sidebar.collapsed{width:64px}.sidebar-header{background-color:#fafbfc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;height:64px;padding:0 16px;display:flex;overflow:hidden}.sidebar.collapsed .sidebar-header{justify-content:center;padding:0}.sidebar-logo{letter-spacing:.05em;color:#1e293b;white-space:nowrap;align-items:center;gap:10px;font-size:1.1rem;font-weight:700;display:flex;overflow:hidden}.logo-text{opacity:1;transition:opacity .2s}.sidebar.collapsed .logo-text{opacity:0;display:none}.sidebar.collapsed .sidebar-logo>svg,.sidebar.collapsed .sidebar-logo{display:none}.collapse-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.collapse-btn:hover{color:#475569;background:#f1f5f9}.sidebar.collapsed .collapse-btn{width:64px;height:64px}.nav-menu{flex:1;padding:16px 0;overflow-x:hidden}.nav-item{color:#64748b;white-space:nowrap;border-left:3px solid #0000;align-items:center;padding:14px 24px;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .1s;display:flex;overflow:hidden}.sidebar.collapsed .nav-item{justify-content:center;padding:14px 0}.nav-item:hover{color:#1e293b;background-color:#f1f5f9}.nav-item.active{color:#1d4ed8;background-color:#eff6ff;border-left-color:#1d4ed8;font-weight:600}.sidebar.collapsed .nav-item.active{border-left-color:#0000;position:relative}.sidebar.collapsed .nav-item.active:after{content:"";background-color:#1d4ed8;width:3px;position:absolute;top:0;bottom:0;left:0}.nav-icon{width:20px;min-width:20px;height:20px;color:inherit;opacity:.7;flex-shrink:0;justify-content:center;align-items:center;margin-right:12px;display:inline-flex}.sidebar.collapsed .nav-icon{margin-right:0}.nav-text{opacity:1;transition:opacity .2s}.sidebar.collapsed .nav-text{opacity:0;display:none}.nav-item:hover .nav-icon,.nav-item.active .nav-icon{opacity:1}.user-section{background-color:#fafbfc;border-top:1px solid #e2e8f0}.user-profile{color:#64748b;white-space:nowrap;align-items:center;padding:16px 24px 8px;font-size:.85rem;display:flex;overflow:hidden}.sidebar.collapsed .user-profile{justify-content:center;padding:16px 0 8px}.user-avatar{color:#fff;background-color:#1d4ed8;border-radius:4px;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;margin-right:12px;font-size:.8rem;font-weight:600;display:flex}.sidebar.collapsed .user-avatar{margin-right:0}.user-info{transition:opacity .2s}.sidebar.collapsed .user-info{display:none}.user-name{color:#1e293b;font-weight:600}.user-role{font-size:.75rem}.logout-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:10px 24px 16px;font-size:.8rem;transition:color .1s;display:flex}.logout-btn:hover{color:#ef4444}.sidebar.collapsed .logout-btn{justify-content:center;padding:10px 0 16px}.sidebar.collapsed .logout-text{display:none}.logout-icon{flex-shrink:0}.layout-container{height:100vh;display:flex}.main-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow-x:hidden}.content-body{flex-direction:column;flex:1;min-height:0;padding:16px 24px;display:flex;overflow-y:auto}.ds-page{flex-direction:column;flex:1;min-height:0;display:flex}.login-container{background:linear-gradient(135deg, var(--color-neutral-100) 0%, var(--color-neutral-200) 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-bg-card);width:100%;max-width:400px;padding:var(--spacing-10);border-radius:var(--radius-lg);animation:.5s ease-out loginFadeIn;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:var(--spacing-8)}.login-logo{background:var(--color-neutral-900);border-radius:var(--radius-lg);width:48px;height:48px;margin:0 auto var(--spacing-4);color:var(--color-text-inverse);justify-content:center;align-items:center;display:flex}.login-logo--success{background:var(--color-success-600)}.login-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.login-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-top:var(--spacing-2)}.login-card form>.ds-field,.login-alert{margin-bottom:var(--spacing-5)}.login-submit{margin-top:var(--spacing-2)}.login-footer{margin-top:var(--spacing-5);text-align:center}.login-link{font-size:var(--font-size-base);color:var(--color-text-secondary);transition:color var(--transition-base);text-decoration:none}.login-link:hover{color:var(--color-neutral-900);text-decoration:underline}.login-link-button{margin-top:var(--spacing-6);text-decoration:none}.login-password-wrapper{position:relative}.login-password-input{padding-right:var(--spacing-10)}.login-password-toggle{right:var(--spacing-3);color:var(--color-neutral-400);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.login-password-toggle:hover{color:var(--color-neutral-500)}.section-title-group{flex-direction:column;gap:4px;display:flex}.section-title-main{color:var(--color-text);margin:0;font-size:1.35rem;font-weight:700;line-height:1}.section-title-sub{color:var(--color-text-secondary);margin:0;font-size:.85rem}.section-title-group.section-title-sm .section-title-main{font-size:1rem;font-weight:600}.section-title-group.section-title-sm .section-title-sub{font-size:.8rem}.page-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:4px;padding:20px 0 24px;display:flex}.page-header-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.integration-page{width:100%}.btn-import{color:#1d4ed8;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:#1d4ed814;border:1px solid #1d4ed84d;align-items:center;gap:8px;padding:10px 24px;font-size:.9rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-import:hover{background:#1d4ed826;border-color:#1d4ed880}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.15s modal-fade-in;display:flex;position:fixed;inset:0}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-bg-card);border-radius:var(--radius-lg);flex-direction:column;width:560px;max-width:90vw;max-height:80vh;animation:.2s modal-slide-in;display:flex;box-shadow:0 20px 60px #0000004d}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.modal-title{color:var(--color-text);margin:0;font-size:1.15rem;font-weight:700}.modal-close{border-radius:var(--radius-sm);color:#94a3b8;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;transition:all .15s;display:inline-flex}.modal-close:hover{color:var(--color-text);background:#f1f5f9}.modal-body{padding:20px 24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.modal-options{gap:16px;margin-bottom:20px;display:flex}.modal-options .form-group{flex:1;margin:0}.modal-options .form-group label{color:var(--color-text);margin-bottom:4px;font-size:.85rem;font-weight:500;display:block}.modal-options .form-control{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);appearance:none;cursor:pointer;box-sizing:border-box;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M6 8L1 3h10z'/%3E%3C/svg%3E") right 10px center no-repeat;padding:8px 32px 8px 12px;font-size:.9rem;line-height:1.4}.modal-options .form-control:focus{border-color:var(--accent-color);outline:none;box-shadow:0 0 0 2px #3b82f626}.drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;cursor:pointer;background-color:#f8fafc;flex-direction:column;justify-content:center;align-items:center;min-height:140px;padding:32px 24px;transition:all .2s;display:flex}.drop-zone:hover,.drop-zone.dragover{border-color:var(--accent-color);background-color:#eff6ff}.drop-zone-icon{color:#94a3b8;margin-bottom:12px}.drop-zone-icon svg{width:40px;height:40px}.drop-zone-text{color:var(--color-text);margin-bottom:4px;font-size:.95rem;font-weight:500}.drop-zone-subtext{color:var(--color-text-secondary);font-size:.8rem}.drop-zone.has-files .drop-zone-prompt{display:none}.selected-files{text-align:left;width:100%}.selected-file-item{color:var(--color-text);border-radius:var(--radius-sm);background:#fff;border:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding:8px 12px;font-size:.875rem;display:flex}.selected-file-item:last-child{margin-bottom:0}.selected-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.selected-file-size{color:var(--color-text-secondary);flex-shrink:0;font-size:.8rem}.selected-file-remove{color:#94a3b8;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.1rem;transition:color .2s,background .2s;display:inline-flex}.selected-file-remove:hover{color:#dc2626;background:#fee2e2}.btn-upload{color:#1d4ed8;border-radius:var(--radius-sm);cursor:pointer;background:#1d4ed814;border:1px solid #1d4ed84d;padding:8px 24px;font-size:.9rem;font-weight:500;transition:all .15s}.btn-upload:hover:not(:disabled){background:#1d4ed826;border-color:#1d4ed880}.btn-upload:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:#64748b0f;border:1px solid #64748b4d;padding:8px 24px;font-size:.9rem;font-weight:500;transition:all .15s}.btn-cancel:hover{background:#64748b1f;border-color:#64748b80}.upload-error{color:#991b1b;border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;margin-top:12px;padding:8px 12px;font-size:.85rem}.section-header{justify-content:space-between;align-items:center;margin:24px 0 12px;display:flex}.section-title{color:var(--color-text);font-size:1rem;font-weight:600}.table-container{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow-x:auto}.table-container table{border-collapse:collapse;width:100%;font-size:.85rem}.table-container th{color:#475569;text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;background-color:#f8fafc;padding:10px 16px;font-size:.8rem;font-weight:600}.table-container td{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:10px 16px;font-size:.8rem}.table-container tr:last-child td{border-bottom:none}.table-container tr:hover td{background-color:#f8fafc}.table-empty{text-align:center;color:var(--color-text-secondary);padding:40px;font-size:.9rem}.status-badge{border-radius:var(--radius-sm);justify-content:center;align-items:center;min-width:56px;padding:3px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.status-success{color:#166534;background:#dcfce7}.status-error{color:#991b1b;background:#fee2e2}.status-processing{color:#92400e;background:#fef3c7}.pagination{border-top:1px solid var(--color-border);justify-content:center;align-items:center;gap:4px;padding:12px 16px;display:flex}.pagination-btn{width:32px;height:32px;color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.8rem;transition:all .15s;display:inline-flex}.pagination-btn:hover:not(:disabled):not(.active){border-color:var(--color-border);background:#f1f5f9}.pagination-btn.active{color:#1d4ed8;background:#1d4ed814;border-color:#1d4ed84d;font-weight:600}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.action-icon{border-radius:var(--radius-sm);color:#64748b;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;transition:all .2s;display:inline-flex}.action-icon:hover{color:var(--accent-color);background:#f1f5f9}.btn-back{color:#64748b;border-radius:var(--radius-sm);background:#f1f5f9;border:1px solid #e2e8f0;align-items:center;gap:.25rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-back:hover{color:#475569;background:#e2e8f0;border-color:#cbd5e1}.job-detail-summary-table{width:100%}.job-detail-errors{border-radius:var(--radius-md);background:#fef2f2;border:1px solid #fecaca;margin-bottom:1.5rem;padding:1rem 1.25rem}.job-detail-errors-title{color:#dc2626;margin:0 0 .5rem;font-size:.875rem;font-weight:600}.job-detail-errors-list{margin:0;padding-left:1.25rem;list-style:outside}.job-detail-errors-list li{color:#374151;font-size:.8125rem;line-height:1.6}.job-detail-errors-row{color:#dc2626;font-weight:600}.job-detail-errors-msg{color:#6b7280}.job-detail-row-error{background:#fff5f5!important}.job-detail-row-error:hover{background:#fee2e2!important}.job-detail-edit-cell{color:#1e293b;box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:4px;width:100%;min-width:80px;padding:.25rem .5rem;font-size:.8125rem;transition:border-color .2s}.job-detail-edit-cell:focus{border-color:var(--accent-color);outline:none;box-shadow:0 0 0 2px #1d4ed81f}.job-detail-row-error .job-detail-edit-cell{border-color:#fecaca}.save-message{border-radius:var(--radius-sm);margin-bottom:1rem;padding:.625rem 1rem;font-size:.8125rem;font-weight:500}.save-message.success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.save-message.error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.btn-delete{color:#dc2626;border-radius:var(--radius-sm);cursor:pointer;background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:.25rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-delete:hover{background:#fee2e2;border-color:#f87171}.btn-delete-line{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #fecaca;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-delete-line:hover{background:#fee2e2;border-color:#f87171}.job-detail-footer{justify-content:flex-end;margin-top:1rem;display:flex}.status-highlight{animation:.5s ease-in-out 3 status-pulse}@keyframes status-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15);box-shadow:0 0 8px #1d4ed84d}}.operation-page{width:100%}.operation-tabs{border-bottom:1px solid var(--color-border);gap:0;margin-bottom:20px;display:flex}.operation-tab{color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid #0000;padding:10px 24px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s}.operation-tab:hover{color:var(--color-text);background:#f8fafc}.operation-tab.active{color:var(--accent-color);border-bottom-color:var(--accent-color);font-weight:600}.filter-bar{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px;padding:12px 0;display:flex}.filter-item{flex-direction:column;gap:4px;display:flex}.filter-label{color:var(--color-text-secondary);font-size:.75rem;font-weight:500}.filter-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);box-sizing:border-box;background:#fff;padding:6px 10px;font-size:.8rem;transition:border-color .2s}.filter-input:focus{border-color:var(--accent-color);outline:none;box-shadow:0 0 0 2px #1d4ed81f}.filter-date-range{align-items:center;gap:6px;display:flex}.filter-date-range .filter-separator{color:var(--color-text-secondary);font-size:.8rem}.toggle-container{align-items:center;gap:8px;height:32px;display:flex}.toggle-switch{width:36px;height:20px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#cbd5e1;border-radius:20px;transition:all .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;bottom:2px;left:2px}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent-color)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.toggle-label{color:var(--color-text);font-size:.8rem}.btn-search{color:#1d4ed8;border-radius:var(--radius-sm);cursor:pointer;background:#1d4ed814;border:1px solid #1d4ed84d;align-self:flex-end;padding:6px 20px;font-size:.8rem;font-weight:500;transition:all .15s}.btn-search:hover{background:#1d4ed826;border-color:#1d4ed880}.grid-toolbar{justify-content:flex-end;gap:8px;margin-bottom:8px;display:flex}.btn-bulk-confirm{color:#166534;border-radius:var(--radius-sm);cursor:pointer;background:#16653414;border:1px solid #1665344d;align-items:center;gap:4px;padding:6px 14px;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-bulk-confirm:hover:not(:disabled){background:#16653426;border-color:#16653480}.btn-bulk-confirm:disabled,.btn-bulk-delete:disabled{opacity:.4;cursor:not-allowed}.btn-bulk-delete{color:#991b1b;border-radius:var(--radius-sm);cursor:pointer;background:#991b1b0f;border:1px solid #991b1b40;align-items:center;gap:4px;padding:6px 14px;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-bulk-delete:hover:not(:disabled){background:#991b1b1f;border-color:#991b1b66}.confirm-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.15s modal-fade-in;display:flex;position:fixed;inset:0}.confirm-box{background:var(--color-bg-card);border-radius:var(--radius-lg);width:440px;max-width:90vw;padding:24px;animation:.2s modal-slide-in;box-shadow:0 20px 60px #0000004d}.confirm-message{color:var(--color-text);margin:0 0 8px;font-size:.95rem;font-weight:600}.confirm-sub{color:var(--color-text-secondary);margin:0 0 20px;font-size:.85rem}.confirm-job-list{border-radius:var(--radius-sm);background:#f8fafc;max-height:200px;margin-bottom:20px;padding:8px;font-size:.8rem;overflow-y:auto}.confirm-job-item{color:var(--color-text);padding:3px 0}.confirm-actions{justify-content:flex-end;gap:12px;display:flex}.btn-confirm-cancel{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:#64748b0f;border:1px solid #64748b4d;padding:8px 20px;font-size:.85rem;font-weight:500;transition:all .15s}.btn-confirm-cancel:hover{background:#64748b1f}.btn-confirm-ok{color:#fff;background:var(--accent-color);border:1px solid var(--accent-color);border-radius:var(--radius-sm);cursor:pointer;padding:8px 20px;font-size:.85rem;font-weight:500;transition:all .15s}.btn-confirm-ok:hover{background:var(--color-primary-hover)}.btn-confirm-danger{color:#fff;background:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;padding:8px 20px;font-size:.85rem;font-weight:500;transition:all .15s}.btn-confirm-danger:hover{background:var(--color-danger-hover)}.btn-register{color:#1d4ed8;border-radius:var(--radius-sm);cursor:pointer;background:#1d4ed814;border:1px solid #1d4ed84d;align-items:center;gap:6px;padding:8px 20px;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-register:hover{background:#1d4ed826;border-color:#1d4ed880}.detail-summary{margin-bottom:24px}.detail-summary-table{width:100%}.detail-actions{justify-content:flex-end;gap:8px;margin-bottom:16px;display:flex}.btn-detail-save{color:#1d4ed8;border-radius:var(--radius-sm);cursor:pointer;background:#1d4ed814;border:1px solid #1d4ed84d;padding:8px 20px;font-size:.8rem;font-weight:500;transition:all .15s}.btn-detail-save:hover{background:#1d4ed826}.btn-detail-save:disabled{opacity:.5;cursor:not-allowed}.btn-detail-confirm{color:#166534;border-radius:var(--radius-sm);cursor:pointer;background:#16653414;border:1px solid #1665344d;padding:8px 20px;font-size:.8rem;font-weight:500;transition:all .15s}.btn-detail-confirm:hover{background:#16653426}.btn-detail-delete{color:#dc2626;border-radius:var(--radius-sm);cursor:pointer;background:#fef2f2;border:1px solid #fecaca;padding:8px 20px;font-size:.8rem;font-weight:500;transition:all .15s}.btn-detail-delete:hover{background:#fee2e2;border-color:#f87171}.detail-footer{justify-content:flex-end;margin-top:16px;display:flex}.job-detail-total td{font-weight:var(--font-weight-semibold);background:var(--color-neutral-50)}.job-detail-total .total-label{text-align:right}.job-detail-total .total-amount{text-align:right;white-space:nowrap}.job-detail-total--grand td{font-weight:var(--font-weight-bold);background:var(--color-neutral-100)}.monthly-page{width:100%}.monthly-results{margin-top:var(--spacing-4)}.client-table{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow-x:auto}.client-list-header,.client-summary,.client-total-row{gap:var(--spacing-2);grid-template-columns:22px 84px minmax(120px,1fr) repeat(5,80px) 98px 106px 52px 172px;align-items:center;display:grid}.client-list-header{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.client-list-header .num,.client-list-header .status-col,.client-list-header .action-col{text-align:left}.client-card{border-bottom:1px solid var(--color-border)}.client-table>.client-card:last-child{border-bottom:none}.client-summary{width:100%;padding:var(--spacing-2) var(--spacing-4);text-align:left;font-size:var(--font-size-sm);color:var(--color-text);transition:background var(--transition-fast)}.client-summary.is-clickable{cursor:pointer}.client-summary.is-clickable:hover{background:var(--color-bg-subtle)}.client-summary .caret{color:var(--color-text-secondary);justify-content:center;align-items:center;display:inline-flex}.client-summary .client-code{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.client-summary .client-name{font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.client-summary .amount-cell{text-align:right;font-variant-numeric:tabular-nums}.client-summary .cat-cell{color:var(--color-text-secondary)}.client-summary .status-col{justify-content:center;display:flex}.client-summary .action-cell{align-items:center;gap:var(--spacing-1);display:flex}.client-summary .action-cell .action-confirm{justify-content:center;min-width:96px}.client-total-row{padding:var(--spacing-2) var(--spacing-4);border-top:2px solid var(--color-border-strong);background:var(--color-bg-subtle);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.client-total-row .amount-cell{text-align:right;font-variant-numeric:tabular-nums}.client-total-row .total-label{color:var(--color-text-secondary)}.client-card.is-parent>.client-summary .client-code{color:var(--color-warning-700)}.parent-child-count{margin-left:var(--spacing-2);padding:0 var(--spacing-2);border-radius:var(--radius-pill);background:var(--color-warning-100);color:var(--color-warning-700);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);vertical-align:middle;display:inline-block}.client-summary.is-child{background:var(--color-warning-50);border-top:1px solid var(--color-warning-100);box-shadow:inset 3px 0 0 var(--color-warning-200)}.client-summary.is-child .client-code{color:var(--color-text-secondary)}.client-summary.is-child .client-name:before{content:"└";margin-right:var(--spacing-2);color:var(--color-text-secondary)}.client-body{border-top:1px solid var(--color-border);padding:var(--spacing-3) var(--spacing-4) var(--spacing-4);background:var(--color-bg-subtle)}.category-tabs{gap:var(--spacing-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-3);flex-wrap:wrap;display:flex}.category-tab{align-items:baseline;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;display:inline-flex}.category-tab:hover{color:var(--color-text);background:var(--color-bg-muted)}.category-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.category-tab .tab-amount{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.category-content{flex-direction:column;display:flex}.product-list-header,.product-header{gap:var(--spacing-3);grid-template-columns:22px 150px minmax(0,1fr) 90px 130px;align-items:center;display:grid}.product-list-header{padding:var(--spacing-2) var(--spacing-5);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-bg-subtle)}.product-list-header .num{text-align:right}.product-block{border-top:1px solid var(--color-border)}.product-header{width:100%;padding:var(--spacing-2) var(--spacing-5);cursor:pointer;text-align:left;font-size:var(--font-size-sm);color:var(--color-text);transition:background var(--transition-fast);background:0 0;border:none}.product-header:hover{background:var(--color-bg-subtle)}.product-header .caret{color:var(--color-text-secondary);font-size:.7rem;line-height:1}.product-header .product-code{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.product-header .num{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.product-header .product-subtotal{color:var(--color-text);font-weight:var(--font-weight-semibold)}.product-header .product-attr{color:var(--color-text)}.product-header .product-extras{margin-left:var(--spacing-2);padding:0 var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-subtle);font-weight:var(--font-weight-medium);white-space:nowrap}.product-detail-table{border-top:1px solid var(--color-border);overflow-x:auto}.table-empty{padding:var(--spacing-4);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.statement{margin-top:var(--spacing-4);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.statement-header{justify-content:space-between;align-items:center;gap:var(--spacing-6);padding:var(--spacing-3) var(--spacing-5);border-bottom:1px solid var(--color-border);display:flex}.statement-header__client{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);display:flex}.statement-header__tag{padding:1px var(--spacing-2);border-radius:var(--radius-sm);background:var(--color-warning-100);color:var(--color-warning-700);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.statement-header__sub{gap:var(--spacing-2) var(--spacing-5);margin-top:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.statement-header__totals{flex-direction:column;gap:2px;min-width:220px;display:flex}.statement-total-row{justify-content:space-between;gap:var(--spacing-6);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.statement-total-row span:last-child{color:var(--color-text);font-variant-numeric:tabular-nums}.statement-total-row--grand{padding-top:var(--spacing-1);border-top:1px solid var(--color-border);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text);margin-top:2px}.statement-total-row--grand span:last-child{color:var(--color-primary-800)}.statement .category-tabs{padding:0 var(--spacing-5);margin:0}.category-subtotal{padding:var(--spacing-2) var(--spacing-5);border-bottom:1px solid var(--color-border);justify-content:flex-end;align-items:baseline;display:flex}.category-subtotal__amount{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);color:var(--color-text)}.category-subtotal__method{margin-left:var(--spacing-3);font-size:var(--font-size-xs);color:var(--color-text-muted)}.invoicing-page{width:100%}.invoicing-actions{align-items:center;gap:var(--spacing-1);display:flex}.invoice-preview__toolbar{margin-bottom:var(--spacing-5);justify-content:space-between;align-items:center;display:flex}.invoice-preview__toolbar-right{align-items:center;gap:var(--spacing-3);display:flex}.invoice-a4{box-sizing:border-box;background:var(--color-neutral-0);border:1px solid var(--color-border);width:210mm;min-height:297mm;box-shadow:var(--shadow-md);color:var(--color-text);margin:0 auto;padding:15mm}.invoice-sheet{font-size:var(--font-size-base);line-height:var(--line-height-normal)}.invoice-sheet__title{text-align:center;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:.4em;margin:0 0 var(--spacing-6);padding-left:.4em}.invoice-sheet__meta{justify-content:flex-end;gap:var(--spacing-6);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-6);display:flex}.invoice-sheet__parties{justify-content:space-between;gap:var(--spacing-8);margin-bottom:var(--spacing-8);display:flex}.invoice-sheet__bill-to{flex:1}.invoice-sheet__client-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);border-bottom:2px solid var(--color-neutral-800);padding-bottom:var(--spacing-2);margin-bottom:var(--spacing-2)}.invoice-sheet__honorific{font-size:var(--font-size-base);font-weight:var(--font-weight-regular);margin-left:var(--spacing-2)}.invoice-sheet__client-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.invoice-sheet__from{text-align:right;font-size:var(--font-size-sm);color:var(--color-text-secondary);min-width:280px;position:relative}.invoice-sheet__company-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-1)}.invoice-sheet__seal{border:1px solid var(--color-danger-300);border-radius:var(--radius-sm);width:44px;height:44px;color:var(--color-danger-600);font-size:var(--font-size-xs);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.invoice-sheet__summary{gap:var(--spacing-6);margin-bottom:var(--spacing-8);align-items:stretch;display:flex}.invoice-sheet__amount-box{border:1px solid var(--color-border);background:var(--color-neutral-0);align-items:stretch;min-width:420px;display:flex}.invoice-sheet__amount-label{padding:var(--spacing-3) var(--spacing-5);background:var(--color-neutral-100);border-right:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:.15em;white-space:nowrap;align-items:center;display:flex}.invoice-sheet__amount-value{padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex:1;justify-content:flex-end;align-items:center;display:flex}.invoice-sheet__terms{gap:var(--spacing-2);font-size:var(--font-size-sm);flex-direction:column;display:flex}.invoice-sheet__payment{margin-bottom:var(--spacing-4)}.invoice-sheet__payment .invoice-sheet__notes-body{color:var(--color-text)}.invoice-sheet__terms>div{gap:var(--spacing-3);display:flex}.invoice-sheet__terms span{min-width:88px;color:var(--color-text-secondary);display:inline-block}.invoice-sheet__table{border-collapse:collapse;width:100%;margin-bottom:var(--spacing-6);font-size:var(--font-size-sm)}.invoice-sheet__table th{background:var(--color-neutral-100);border:1px solid var(--color-border);padding:var(--spacing-2) var(--spacing-3);text-align:left;font-weight:var(--font-weight-semibold)}.invoice-sheet__table td{border:1px solid var(--color-border);padding:var(--spacing-2) var(--spacing-3)}.invoice-sheet__table .num{text-align:right}.invoice-sheet__totals{align-items:flex-end;gap:var(--spacing-1);margin-bottom:var(--spacing-8);flex-direction:column;display:flex}.invoice-sheet__totals-row{justify-content:space-between;gap:var(--spacing-8);min-width:320px;font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-2);display:flex}.invoice-sheet__totals-row span:last-child{font-variant-numeric:tabular-nums}.invoice-sheet__totals-row--grand{border-top:2px solid var(--color-neutral-800);margin-top:var(--spacing-1);padding-top:var(--spacing-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text)}.invoice-sheet__notes{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.invoice-sheet__notes-label{background:var(--color-neutral-100);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.invoice-sheet__notes-body{padding:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.invoice-detail-loading{width:210mm;margin:var(--spacing-6) auto 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.invoice-detail-sheet{margin-top:var(--spacing-6)}.invoice-detail-sheet__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-2)}.invoice-detail-sheet__meta{gap:var(--spacing-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-bottom:2px solid var(--color-neutral-800);padding-bottom:var(--spacing-2);margin-bottom:var(--spacing-4);flex-wrap:wrap;display:flex}.invoice-detail-sheet__subtotal{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-left:auto}.invoice-detail-block{margin-bottom:var(--spacing-5)}.invoice-detail-block__title{justify-content:space-between;align-items:baseline;gap:var(--spacing-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);padding:var(--spacing-1) 0;margin-bottom:var(--spacing-1);display:flex}.invoice-detail-block__subtotal{font-variant-numeric:tabular-nums}.invoice-detail-table{font-size:var(--font-size-xs);margin-bottom:0}.invoice-detail-table__total td{font-weight:var(--font-weight-semibold);background:var(--color-neutral-50)}.invoice-detail-table__total .total-label{text-align:right}.invoice-detail-table__total--grand td{font-weight:var(--font-weight-bold);background:var(--color-neutral-100)}.invoice-detail-table th,.invoice-detail-table td{padding:4px var(--spacing-2);line-height:1.4}@media print{@page{size:A4;margin:0}.sidebar,.invoice-preview__toolbar,.invoice-detail-loading{display:none!important}.invoice-a4{box-shadow:none;border:none;margin:0}.invoice-detail-sheet{page-break-before:always;margin-top:0}}.master-grid{gap:var(--spacing-4);margin-top:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.master-card{align-items:center;gap:var(--spacing-4);padding:var(--spacing-5);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:inherit;transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);text-decoration:none;display:flex}.master-card--ready:hover{border-color:var(--color-primary-700);box-shadow:var(--shadow-md);transform:translateY(-1px)}.master-card--ready:focus-visible{border-color:var(--color-primary-700);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.master-card--disabled{opacity:.55;cursor:not-allowed}.master-card__icon{border-radius:var(--radius-md);background:var(--color-primary-50);width:44px;height:44px;color:var(--color-primary-700);flex-shrink:0;justify-content:center;align-items:center;display:flex}.master-card--disabled .master-card__icon{background:var(--color-bg-muted);color:var(--color-text-secondary)}.master-card__icon svg{width:24px;height:24px}.master-card__body{flex:1;min-width:0}.master-card__title-row{align-items:center;gap:var(--spacing-2);margin-bottom:2px;display:flex}.master-card__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.master-card__desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin:0}.master-card__arrow{color:var(--color-text-secondary);transition:transform var(--transition-base), color var(--transition-base);flex-shrink:0}.master-card--ready:hover .master-card__arrow{color:var(--color-primary-700);transform:translate(2px)}:root{--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-500:#3b82f6;--color-primary-600:#2563eb;--color-primary-700:#1d4ed8;--color-primary-800:#1e40af;--color-success-50:#f0fdf4;--color-success-100:#dcfce7;--color-success-200:#bbf7d0;--color-success-600:#16a34a;--color-success-700:#166534;--color-danger-50:#fef2f2;--color-danger-100:#fee2e2;--color-danger-200:#fecaca;--color-danger-300:#f87171;--color-danger-600:#dc2626;--color-danger-700:#991b1b;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-700:#92400e;--color-neutral-0:#fff;--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-200:#e2e8f0;--color-neutral-300:#cbd5e1;--color-neutral-400:#94a3b8;--color-neutral-500:#64748b;--color-neutral-600:#475569;--color-neutral-700:#334155;--color-neutral-800:#1e293b;--color-neutral-900:#0f172a;--color-primary:var(--color-primary-700);--color-primary-hover:var(--color-primary-800);--color-danger:var(--color-danger-600);--color-danger-hover:var(--color-danger-700);--color-success:var(--color-success-600);--color-warning:var(--color-warning-700);--accent-color:var(--color-primary-700);--color-text:var(--color-neutral-800);--color-text-secondary:var(--color-neutral-500);--color-text-disabled:var(--color-neutral-400);--color-text-inverse:var(--color-neutral-0);--color-bg:#fafbfc;--color-bg-card:var(--color-neutral-0);--color-bg-subtle:var(--color-neutral-50);--color-bg-muted:var(--color-neutral-100);--color-border:var(--color-neutral-200);--color-border-strong:var(--color-neutral-300);--color-focus-ring:#1d4ed833;--font-family:"Inter", "Noto Sans JP", sans-serif;--font-family-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--font-size-xs:.72rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:.95rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.6;--spacing-0:0;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-xs:var(--spacing-1);--spacing-sm:var(--spacing-2);--spacing-md:var(--spacing-4);--spacing-lg:var(--spacing-6);--spacing-xl:var(--spacing-8);--spacing-2xl:var(--spacing-12);--radius-sm:4px;--radius-md:6px;--radius-lg:12px;--radius-pill:999px;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 2px 8px #0f172a14;--shadow-lg:0 4px 16px #0f172a1a;--shadow-overlay:0 20px 60px #0000004d;--transition-fast:.15s ease;--transition-base:.2s ease;--z-dropdown:100;--z-overlay:900;--z-modal:1000;--z-toast:1100;--sidebar-width:260px;--header-height:56px;--brand-primary:#fafbfc;--brand-secondary:#f1f5f9}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}html{-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);line-height:1.6;overflow:hidden}a{color:var(--color-primary);text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;font-weight:500;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#1d4ed8;background-color:#1d4ed814;border:1px solid #1d4ed84d}.btn-primary:hover:not(:disabled){background-color:#1d4ed826;border-color:#1d4ed880}.btn-danger{color:#991b1b;background-color:#dc262614;border:1px solid #dc26264d}.btn-danger:hover:not(:disabled){background-color:#dc262626;border-color:#dc262680}.btn-outline{color:var(--color-text-secondary);border:1px solid var(--color-border);background-color:#0000}.btn-outline:hover:not(:disabled){color:#1d4ed8;background-color:#1d4ed80d;border-color:#1d4ed840}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-xs)}.data-table{border-collapse:collapse;background-color:var(--color-bg-card);border-radius:var(--radius-md);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.data-table th,.data-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.data-table th{color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;background-color:#f1f3f4}.data-table tr:hover{background-color:#1a73e80a}.data-table--striped tbody tr:nth-child(2n){background-color:#fafafa}.form-group{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.form-input,.form-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);transition:border-color .15s}.form-input:focus,.form-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #1a73e833}.form-input--error{border-color:var(--color-danger)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger)}.app-layout{min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-width);color:#fff;padding:var(--spacing-lg) 0;background-color:#1a1a2e;flex-shrink:0}.app-main{flex-direction:column;flex:1;display:flex}.app-header{height:var(--header-height);background-color:var(--color-bg-card);border-bottom:1px solid var(--color-border);padding:0 var(--spacing-xl);box-shadow:var(--shadow-sm);align-items:center;display:flex}.app-content{padding:var(--spacing-xl);flex:1;overflow-y:auto}.page-card{background-color:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--spacing-xl);box-shadow:var(--shadow-sm)}.page-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg);font-weight:700}
