.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;border:1px solid transparent;border-radius:var(--radius-md);padding:0 var(--space-4);cursor:pointer;font-weight:700;box-shadow:var(--shadow-subtle);white-space:nowrap;transition:background var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) ease}.button:hover:not(:disabled){box-shadow:var(--shadow-panel)}.button:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-subtle)}.button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.buttonSmall{min-height:34px;padding:0 var(--space-3);font-size:13px}.buttonPrimary{background:var(--color-primary);color:var(--color-surface)}.buttonPrimary:hover{background:var(--color-primary-hover)}.buttonSecondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.buttonSecondary:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-muted)}.buttonGhost{background:var(--color-surface-muted);color:var(--color-text-muted)}.buttonGhost:hover:not(:disabled){color:var(--color-text)}.buttonDanger{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.button:disabled{cursor:not-allowed;opacity:.55}.iconButton{display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-subtle);transition:background var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) ease}.iconButtonSmall{width:30px;height:30px}.iconButton:hover:not(:disabled){box-shadow:var(--shadow-panel)}.iconButton:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-subtle)}.iconButton:focus-visible{outline:none;box-shadow:var(--focus-ring)}.iconButtonGhost{background:var(--color-surface-muted);color:var(--color-text-muted)}.iconButtonGhost:hover:not(:disabled),.iconButtonSecondary{color:var(--color-text)}.iconButtonSecondary{border-color:var(--color-border);background:var(--color-surface)}.iconButtonDanger{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.iconButton:disabled{cursor:not-allowed;opacity:.55}.metricCard{padding:var(--space-5)}.metricHeader{display:flex;align-items:center;justify-content:space-between;color:var(--color-text-muted);font-size:14px}.metricValue{margin-top:var(--space-4);font-size:30px;font-weight:800;line-height:1}.metricMeta{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);color:var(--color-text-muted);font-size:13px}.statusBadge{display:inline-flex;align-items:center;min-height:24px;border:1px solid transparent;border-radius:var(--radius-sm);padding:0 var(--space-2);font-size:12px;font-weight:700;white-space:nowrap}.statusInfo{border-color:var(--color-info-border);background:var(--color-info-soft);color:var(--color-info)}.statusSuccess{border-color:var(--color-success-border);background:var(--color-success-soft);color:var(--color-success)}.statusWarning{border-color:var(--color-warning-border);background:var(--color-warning-soft);color:var(--color-warning)}.statusDanger{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.statusMuted{border-color:var(--color-border);background:var(--color-surface-muted);color:var(--color-text-muted)}.dataTableWrap{max-height:min(620px,calc(100vh - 260px));overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.dataTable{width:100%;border-collapse:collapse;font-size:14px}.dataTable th{position:-webkit-sticky;position:sticky;top:0;z-index:2;height:44px;background:var(--color-surface-muted);color:var(--color-text-muted);font-size:12px;font-weight:700;text-align:left}.dataTable td,.dataTable th{border-bottom:1px solid var(--color-border)}.dataTable td{height:52px;color:var(--color-text);transition:background var(--motion-fast) ease}.dataTable td,.dataTable th{padding:0 var(--space-4);white-space:nowrap}.dataTable .tableActionCell{position:-webkit-sticky;position:sticky;right:0;z-index:3;width:1%;background:var(--color-surface);box-shadow:var(--shadow-subtle);text-align:left;white-space:nowrap}.dataTable th.tableActionCell{z-index:4;background:var(--color-surface-muted)}.dataTableRowActive .tableActionCell,.dataTableRowActive:hover .tableActionCell,.dataTableRowSelected .tableActionCell,.dataTableRowSelected:hover .tableActionCell{background:var(--color-primary-soft)}.dataTable .tableActionCell .button,.dataTable .tableActionCell .iconButton{box-shadow:var(--shadow-subtle)}.dataTable .tableTextCell{max-width:320px;overflow:hidden;text-overflow:ellipsis}.dataTableRowInteractive{cursor:pointer}.dataTableRowInteractive:hover{background:var(--color-row-hover)}.dataTableRowSelected{background:var(--color-row-selected)}.dataTableRowActive{box-shadow:var(--shadow-nav-active)}.dataTableRowActive,.dataTableRowActive:hover,.dataTableRowSelected:hover{background:var(--color-primary-soft)}.dataTable tbody tr:last-child td{border-bottom:0}.tableCheckbox{width:16px;height:16px;accent-color:var(--color-primary)}.tableCheckbox:focus-visible{outline:none;box-shadow:var(--focus-ring)}.stepIndicator{display:grid;grid-template-columns:repeat(var(--step-count),minmax(0,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.stepItem{position:relative;min-height:74px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--space-4);box-shadow:var(--shadow-subtle);transition:border-color var(--motion-fast) ease,background var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.stepItemActive{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:var(--shadow-panel)}.stepIndex{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:12px;font-weight:700}.stepItemActive .stepIndex{background:var(--color-primary);color:var(--color-surface)}.stepTitle{margin-top:var(--space-3);font-weight:700}.progressTrack{height:8px;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-surface-muted)}.progressFill{height:100%;border-radius:inherit;background:var(--color-primary);transition:width var(--motion-slow) ease}@media (max-width:900px){.stepIndicator{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.stepIndicator{grid-template-columns:1fr}}.toastViewport{position:fixed;right:var(--space-6);top:var(--space-6);z-index:50;width:min(360px,calc(100vw - 48px))}.toast{display:grid;grid-template-columns:18px minmax(0,1fr);grid-gap:var(--space-3);gap:var(--space-3);align-items:start;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-floating);padding:var(--space-4);color:var(--color-text);font-size:14px;animation:toastIn var(--motion-slow) ease both}.toastSuccess{border-color:var(--color-success);color:var(--color-success)}.toastInfo{border-color:var(--color-info);color:var(--color-info)}.toastWarning{border-color:var(--color-warning);color:var(--color-warning)}.toastDanger{border-color:var(--color-danger);color:var(--color-danger)}.toast span{color:var(--color-text)}.dialogBackdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:var(--color-overlay);padding:var(--space-6);animation:overlayIn var(--motion-base) ease both}.dialog{width:min(440px,100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-panel);padding:var(--space-5);animation:dialogIn var(--motion-slow) ease both}.dialogTitle{margin:0;font-size:18px}.dialogText{margin:var(--space-3) 0 var(--space-5);color:var(--color-text-muted);line-height:1.6}.dialogActions{gap:var(--space-3)}.dialogActions,.drawerBackdrop{display:flex;justify-content:flex-end}.drawerBackdrop{position:fixed;inset:0;z-index:55;background:var(--color-overlay);opacity:0;transition:opacity var(--motion-base) ease}.drawerBackdropOpen{opacity:1}.drawerBackdropClosing{opacity:0}.drawer{width:min(520px,100%);height:100%;overflow:auto;border-left:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-5);box-shadow:var(--shadow-floating);transform:translateX(24px);transition:transform var(--motion-base) ease}.drawerOpen{transform:translateX(0)}.drawerClosing{transform:translateX(24px)}.drawerHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.drawerTitle{margin:0;font-size:20px}.formStack{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.formSummary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);padding:var(--space-3);color:var(--color-text-muted);font-size:13px}.formField{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.formLabel{color:var(--color-text-muted);font-size:13px;font-weight:700}.formInput{width:100%;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:0 var(--space-3);color:var(--color-text);font-size:14px;outline:none;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background var(--motion-fast) ease}.formInput::placeholder{color:var(--color-text-subtle)}.formInput:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.formInput:hover{border-color:var(--color-border-strong)}.formTextarea{min-height:88px;padding:var(--space-3);line-height:1.5;resize:vertical}.formHint{color:var(--color-text-subtle);font-size:12px;line-height:1.5}.formActions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2)}.emptyState{display:grid;place-items:center;min-height:180px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-muted);color:var(--color-text-muted);text-align:center;padding:var(--space-6)}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes dialogIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}