:root{--color-surface: #f4f6fb;--color-surface-muted: #eef2f7;--color-bg: #ffffff;--color-border: rgba(15, 23, 42, .08);--color-text: #111827;--color-text-secondary: #556173;--color-text-muted: #9098b1;--color-primary: #044D7C;--color-primary-dark: #033a5c;--color-accent: #FF9933;--color-success: #10b981;--color-danger: #dc2626;--color-warning: #f59e0b;--color-info: #0ea5e9;--color-icon-success: #34d399;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", SFMono-Regular, Menlo, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 18px;--shadow-sm: 0 10px 30px rgba(15, 23, 42, .08);--shadow-md: 0 20px 40px rgba(15, 23, 42, .12);--transition-base: all .2s ease}*{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text)}.app-container{width:100%;min-height:100vh;padding:var(--space-6);background:var(--color-surface)}.dashboard-grid{display:grid;gap:24px;margin-bottom:var(--space-6);grid-template-columns:minmax(0,1fr)}.section-title{font-size:1.35rem;font-weight:600;color:var(--color-text);margin:0}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.card-heading{font-size:1.25rem;font-weight:600;margin:0}.card-subtitle{color:var(--color-text-secondary);font-size:.9rem;margin:0}.text-label{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.text-value{font-size:1.75rem;font-weight:600;color:var(--color-text)}.text-metric{font-size:1.35rem;font-weight:600}.text-small{font-size:.85rem;color:var(--color-text-secondary)}.change-indicator{font-size:.9rem}.change-indicator.positive{color:var(--color-success)}.change-indicator.negative{color:var(--color-danger)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.metric-item{display:flex;flex-direction:column;gap:var(--space-1)}.metric-row{display:flex;align-items:baseline;gap:var(--space-1);flex-wrap:wrap}.kpi-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-4);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.kpi-item{display:flex;flex-direction:column;gap:var(--space-1)}.kpi-label{display:flex;align-items:center;gap:var(--space-1);font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.kpi-value-large{font-size:2.25rem;font-weight:700;color:var(--color-text);line-height:1.1;letter-spacing:-.02em}.kpi-change{font-size:.875rem;font-weight:500;margin-top:2px}.kpi-change.positive{color:var(--color-success)}.kpi-change.negative{color:var(--color-danger)}.chart-wrapper{width:100%;overflow-x:auto}.chart-legend{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.chart-legend-item{display:flex;align-items:center;gap:var(--space-1)}.chart-color-box{width:12px;height:12px;border-radius:3px}.chart-axis{stroke:#6b72804d;stroke-width:1}.chart-axis-label{fill:#6b728066;font-size:11px}.btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;background:#fff;color:var(--color-text, #202223);font-size:.9rem;font-weight:600;cursor:pointer;transition:var(--transition-base)}.btn:hover:not(:disabled){background:#f5f5f5}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;border-color:var(--color-border);color:var(--color-text)}.status-bar{width:100%;padding:var(--space-2);border-radius:var(--radius-md);font-size:.85rem;margin-bottom:var(--space-4)}.status-success{background:#dcfce7;color:#166534}.status-error{background:#fee2e2;color:#991b1b}.status-warning{background:#fef3c7;color:#92400e}.split-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--color-surface-muted)}:root{--color-primary: #044D7C;--color-accent: #FF9933;--color-orange: #FF9933;--color-success: #10B981;--color-danger: #EF4444;--color-bg: rgba(241, 241, 241, 1);--color-bg-subtle: #F2F4F7;--color-text: #1E1E1E;--color-text-secondary: #4B5563;--color-border: #E5E7EB;--gradient-primary: linear-gradient(135deg, #044D7C 0%, #FF9933 100%);--gradient-subtle: linear-gradient(135deg, #F8FAFB 0%, #E8EEF7 100%);--radius-lg: 16px;--radius-md: 10px;--radius-sm: 6px;--shadow-soft: 0 4px 12px rgba(0, 0, 0, .06);--shadow-hover: 0 8px 20px rgba(0, 0, 0, .08);--shadow-subtle: 0 1px 3px rgba(0, 0, 0, .05);--shadow-button: 0 2px 4px rgba(0, 0, 0, .08);--transition-base: all .25s ease-in-out;--transition-fast: all .15s ease-in-out;--transition-slow: all .4s ease-in-out;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-base: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px}html,body{font-family:var(--font-primary);background:var(--color-bg);color:var(--color-text);margin:0;padding:0;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-weight:600;margin-bottom:var(--spacing-md);line-height:1.4;letter-spacing:-.01em}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}p,span,label{color:var(--color-text-secondary);font-weight:400;line-height:1.5;letter-spacing:-.005em}a{color:var(--color-accent);text-decoration:none;transition:var(--transition-base)}a:hover{text-decoration:underline;color:var(--color-primary)}.card{background:#fff;border:1px solid rgba(229,231,235,.8);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);padding:var(--spacing-lg);transition:var(--transition-base);animation:fadeInUp .4s ease-out both}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:#e5e7eb}.card:active{transform:translateY(0);box-shadow:var(--shadow-subtle)}.card-static{animation:none!important;transform:none!important;will-change:auto}.card-static:hover,.card-static:active{transform:none;box-shadow:var(--shadow-subtle)}.dashboard-widget{padding:var(--spacing-lg)!important}.widget-container{background:#fff;border:1px solid rgba(229,231,235,.8);border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);padding:var(--spacing-lg);transition:var(--transition-base)}.widget-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text);line-height:1.4;letter-spacing:-.01em}.widget-content{margin-top:var(--spacing-base)}.text-label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);line-height:1.5}.text-value{font-size:1.75rem;font-weight:600;color:var(--color-text);line-height:1.2;letter-spacing:-.02em}.text-metric{font-size:1.5rem;font-weight:600;color:var(--color-text);line-height:1.2}.text-subdued{font-size:.875rem;color:var(--color-text-secondary);line-height:1.5}.text-strong{font-weight:600;color:var(--color-text)}.text-small{font-size:.875rem;line-height:1.5}.text-large{font-size:1.125rem;line-height:1.5}.metric-row{display:flex;align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap}.grid{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin-bottom:var(--spacing-xl, 32px);width:100%}@media(min-width:768px)and (max-width:1199px){.dashboard-grid{max-width:700px;margin-left:auto;margin-right:auto}}@media(min-width:1200px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.metric-group{display:flex;flex-direction:column;gap:var(--spacing-lg)}.metric-item{display:flex;align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap}.chart-container{width:100%;overflow-x:auto;margin-top:var(--spacing-base)}.product-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-border);gap:var(--spacing-base)}.product-row:last-child{border-bottom:none}.product-row-info{flex:1;min-width:0}.product-row-title{font-weight:600;font-size:.875rem;color:var(--color-text);margin-bottom:4px}.product-row-subtitle{font-size:.875rem;color:var(--color-text-secondary)}.stat-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--spacing-sm)}.change-indicator{font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:4px}.change-indicator.positive{color:#2e856e}.change-indicator.negative{color:#d72c0d}.bar-chart{width:100%;overflow-x:auto}.chart-legend{display:flex;align-items:center;gap:var(--spacing-md);font-size:.875rem;color:var(--color-text)}.chart-legend-item{display:flex;align-items:center;gap:var(--spacing-sm)}.chart-legend-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.split-bar{display:flex;height:8px;border-radius:999px;background:var(--color-bg-subtle);overflow:hidden;margin-top:var(--spacing-sm)}.split-bar span{height:100%;transition:width .3s ease}.empty-state{padding:var(--spacing-lg);text-align:center;color:var(--color-text-secondary);font-size:.875rem}.widget-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:nowrap;width:100%}.widget-header .widget-title{flex:0 0 auto;font-size:1.25rem;font-weight:600;margin:0;white-space:nowrap;letter-spacing:-.01em;display:inline;line-height:1.4}.widget-header h3{display:inline;margin:0}.widget-header>div:last-child,.widget-header>*:last-child{flex-shrink:0;display:inline-flex;align-items:center;vertical-align:middle}.widget-header>div[style*="position: relative"]{display:inline-flex!important;position:relative;vertical-align:middle}button,.btn{background:#fff!important;color:var(--color-text, #202223)!important;border:1px solid transparent;border-radius:999px;padding:8px 16px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .15s ease;font-family:var(--font-primary);box-shadow:none;letter-spacing:normal;height:auto;display:inline-block}button:hover,.btn:hover{background:#f5f5f5!important;transform:none;box-shadow:none}button.primary,.btn.primary{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:.75rem 1.5rem;font-weight:500;font-size:.875rem;box-shadow:var(--shadow-button);height:40px;display:inline-flex;align-items:center;justify-content:center}button.primary:hover,.btn.primary:hover{background:var(--gradient-primary);transform:scale(1.02);box-shadow:0 4px 14px #044d7c4d}.range-button,.comparison-button{border:1px solid var(--color-border, #e5e7eb);border-radius:999px;padding:11px 16px;background:var(--color-bg-surface, #fff);color:var(--color-text, #202223);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000d;height:40px;display:inline-flex;align-items:center;justify-content:center}.range-button:hover,.comparison-button:hover{background:var(--color-bg-surface-subdued, #f5f5f5);border-color:var(--color-border, #e5e7eb);transform:none;box-shadow:0 1px 2px #0000000d}.range-button:disabled,.comparison-button:disabled{opacity:.5;cursor:not-allowed;background:var(--color-bg-surface, #fff)}.range-button:disabled:hover,.comparison-button:disabled:hover{background:var(--color-bg-surface, #fff)}.range-button.active{background:#ff993326!important;border-color:var(--color-orange, #FF9933)!important;color:var(--color-orange, #FF9933)!important;box-shadow:0 1px 2px #0000000d,inset 0 0 0 1px #ff993340}.comparison-button.active{background:#044d7c1a!important;border-color:var(--color-border-brand, #044D7C)!important;color:var(--color-text-brand, #044D7C)!important;box-shadow:0 1px 2px #0000000d,inset 0 0 0 1px #044d7c40}.comparison-button{min-width:140px;text-align:center}s-button[variant=primary][size=small],s-button[variant=primary]{border:1px solid var(--color-border, #e5e7eb)!important;border-radius:999px!important;padding:11px 16px!important;background:var(--color-bg-surface, #fff)!important;color:var(--color-text, #202223)!important;font-size:14px!important;font-weight:600!important;box-shadow:0 1px 2px #0000000d!important;height:40px!important;min-height:40px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}s-button[variant=primary][size=small]:hover:not(:disabled),s-button[variant=primary]:hover:not(:disabled){background:var(--color-bg-surface-subdued, #f5f5f5)!important;border-color:var(--color-border, #e5e7eb)!important;box-shadow:0 1px 2px #0000000d!important}s-button[variant=primary][size=small]:disabled,s-button[variant=primary]:disabled{opacity:.5!important;cursor:not-allowed!important;background:var(--color-bg-surface, #fff)!important}.range-button.primary,.save-all-button{background:var(--color-bg-surface-active, rgba(4, 77, 124, .08));border-color:var(--color-border-brand, rgba(4, 77, 124, .4));color:var(--color-text-brand, #044D7C);font-weight:600;box-shadow:0 1px 3px #044d7c26}.range-button.primary:hover,.save-all-button:hover{background:var(--color-bg-surface-active, rgba(4, 77, 124, .12));border-color:var(--color-border-brand, rgba(4, 77, 124, .5));box-shadow:0 2px 6px #044d7c33;transform:translateY(-1px)}.range-button.primary:disabled,.save-all-button:disabled{background:var(--color-bg-surface-active, rgba(4, 77, 124, .08));opacity:.6;cursor:not-allowed;transform:none}.range-button.primary:disabled:hover,.save-all-button:disabled:hover{background:var(--color-bg-surface-active, rgba(4, 77, 124, .08));transform:none;box-shadow:0 1px 3px #044d7c26}.range-button.dark{background:#1a1a2e!important;border-color:#1a1a2e!important;color:#fff!important;font-weight:600!important;box-shadow:0 2px 4px #1a1a2e40!important}.range-button.dark:hover{background:#16213e!important;border-color:#16213e!important;box-shadow:0 4px 8px #1a1a2e4d!important;transform:translateY(-1px)!important}.range-button.dark:disabled{background:#1a1a2e!important;opacity:.6!important;cursor:not-allowed!important;transform:none!important}.range-button.dark:disabled:hover{background:#1a1a2e!important;transform:none!important;box-shadow:0 2px 4px #1a1a2e40!important}.custom-cost-tabs .range-button{height:40px!important;min-height:40px!important;max-height:40px!important;padding:8px 16px!important;outline:none!important;border:none!important;border-bottom:2px solid transparent!important;border-radius:0!important;box-shadow:none!important;margin:0!important;line-height:1!important;box-sizing:border-box!important}.custom-cost-tabs .range-button:hover{height:40px!important;min-height:40px!important;max-height:40px!important;padding:8px 16px!important;background:var(--color-bg-subtle, #f5f5f5)!important;border:none!important;border-bottom:2px solid transparent!important;box-shadow:none!important;outline:none!important;margin:0!important;line-height:1!important;box-sizing:border-box!important;transform:none!important}.custom-cost-tabs .range-button.active{height:40px!important;min-height:40px!important;max-height:40px!important;padding:8px 16px!important;background:var(--color-bg-surface-active, rgba(4, 77, 124, .08))!important;border:none!important;border-bottom:2px solid #ffffff!important;box-shadow:none!important;outline:none!important;margin:0 0 -1px!important;line-height:1!important;box-sizing:border-box!important;transform:none!important}.custom-cost-tabs .range-button:focus{outline:none!important;box-shadow:none!important}button:active,.btn:active{transform:scale(.98);box-shadow:var(--shadow-button)}button:disabled,.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}button.size-small,.btn.size-small{height:36px;padding:.625rem 1.25rem;font-size:.8125rem}button.size-large,.btn.size-large{height:44px;padding:.875rem 1.75rem;font-size:.9375rem}input,select,textarea{width:100%;border:1px solid rgba(229,231,235,.6);border-radius:var(--radius-sm);padding:.75rem 1rem;font-family:var(--font-primary);transition:var(--transition-base);background:#fff;color:var(--color-text);font-size:.875rem;line-height:1.5;height:40px;box-sizing:border-box}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #044d7c1a;transform:scale(1.01)}input::placeholder,textarea::placeholder{color:#4b556380}input:disabled,select:disabled,textarea:disabled{background:var(--color-bg-subtle);opacity:.6;cursor:not-allowed}input.error,select.error,textarea.error{border-color:var(--color-danger);background:#ef44440d}input.success,select.success,textarea.success{border-color:var(--color-success);background:#10b9810d}table{width:100%;border-collapse:collapse;border:1px solid rgba(229,231,235,.5);border-radius:var(--radius-sm);overflow:hidden;background:#fff}th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid rgba(229,231,235,.5)}th{background:var(--color-bg-subtle);font-weight:600;color:var(--color-text);font-size:.875rem;letter-spacing:-.005em}tbody tr{transition:var(--transition-fast)}tbody tr:hover{background:#f8fafbcc}tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;border-radius:12px;padding:.25rem .75rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.badge-success{background:#10b9811a;color:var(--color-success)}.badge-danger{background:#ef44441a;color:var(--color-danger)}.badge-accent{background:#3b7af01a;color:var(--color-accent)}.badge-primary{background:#044d7c1a;color:var(--color-primary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#f2f4f7 25%,#e5e7eb,#f2f4f7 75%);background-size:400% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton-circle{border-radius:50%}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-text:last-child{margin-bottom:0;width:60%}.fade-in-up{animation:fadeInUp .4s ease-out both}.fade-in-up-delay-1{animation:fadeInUp .4s ease-out .05s both}.fade-in-up-delay-2{animation:fadeInUp .4s ease-out .1s both}.fade-in-up-delay-3{animation:fadeInUp .4s ease-out .15s both}.scale-in{animation:scaleIn .3s ease-out both}.shake{animation:shake .2s ease-in-out both}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.mt-2{margin-top:var(--spacing-sm)}.mt-4{margin-top:var(--spacing-base)}.mb-4{margin-bottom:var(--spacing-base)}.p-4{padding:var(--spacing-base)}.rounded{border-radius:var(--radius-md)}.loading-spinner{border:2px solid rgba(4,77,124,.2);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:spin .8s linear infinite}.loading-wave{width:120px;height:40px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;transform:translateZ(0);will-change:transform}.loading-wave svg{width:100%;height:100%;display:block}.loading-wave .wave-path{fill:none;stroke:none}.loading-wave .wave-group{animation:waveFlow 2s cubic-bezier(.4,0,.2,1) infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.loading-wave .wave-group-primary{filter:drop-shadow(0 2px 4px rgba(4,77,124,.2))}.loading-wave .wave-group-secondary{opacity:.6;animation-delay:.3s}.loading-wave .wave-gradient{stop-color:#044d7c}.loading-wave .wave-gradient-stop{stop-color:#f93}@keyframes waveFlow{0%{transform:translate(0)}to{transform:translate(-120px)}}.spinner-inline{display:inline-flex;align-items:center;justify-content:center}.spinner-svg-inline{animation:rotate 1.1s cubic-bezier(.4,0,.2,1) infinite;transform-origin:center;transform-box:fill-box}.spinner-svg-inline .spinner-circle{transform-origin:center;transform-box:fill-box}.loading-spinner-gradient{width:48px;height:48px;border-radius:50%;position:relative;background:var(--color-bg-subtle);animation:spinnerPulse 2s cubic-bezier(.4,0,.2,1) infinite}.loading-spinner-gradient:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:50%;background:conic-gradient(from 0deg,#044d7c,#044d7c,#f93,#f93,#044d7c 360deg);animation:spinnerRotate 1.2s cubic-bezier(.4,0,.2,1) infinite;filter:drop-shadow(0 2px 4px rgba(4,77,124,.2));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px))}.loading-spinner-gradient:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32px;height:32px;border-radius:50%;background:var(--color-bg);box-shadow:inset 0 1px 2px #0000000d}.loading-spinner-gradient-small{width:24px;height:24px;border-radius:50%;position:relative;background:var(--color-bg-subtle);animation:spinnerPulseSmall 2s cubic-bezier(.4,0,.2,1) infinite}.loading-spinner-gradient-small:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border-radius:50%;background:conic-gradient(from 0deg,#044d7c,#044d7c,#f93,#f93,#044d7c 360deg);animation:spinnerRotate 1.2s cubic-bezier(.4,0,.2,1) infinite;filter:drop-shadow(0 1px 2px rgba(4,77,124,.15));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px))}.loading-spinner-gradient-small:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;background:var(--color-bg);box-shadow:inset 0 1px 1px #0000000d}.integration-spinner{width:12px;height:12px;border:2px solid #3b82f6;border-top-color:transparent;border-radius:50%;display:inline-block;flex-shrink:0;animation:integration-spinner-rotate .9s linear infinite}@keyframes integration-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinnerRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinnerPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.95}}@keyframes spinnerPulseSmall{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.95}}.success-message{background:#10b9811a;border:1px solid var(--color-success);border-radius:var(--radius-md);padding:var(--spacing-base);color:var(--color-success);animation:scaleIn .3s ease-out both}.error-message{background:#ef44441a;border:1px solid var(--color-danger);border-radius:var(--radius-md);padding:var(--spacing-base);color:var(--color-danger);animation:shake .2s ease-in-out both}@media(max-width:768px){.card{padding:var(--spacing-base)}button,.btn{width:100%}table{font-size:.8125rem}th,td{padding:.5rem .75rem}}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}input[type=radio]:focus-visible,input[type=checkbox]:focus-visible{outline:none;box-shadow:none}input[type=radio],input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;box-sizing:border-box;margin:0;padding:0;min-width:18px;min-height:18px;flex-shrink:0}input[type=radio]{width:18px;height:18px;border:2px solid var(--color-border, #d1d5db);border-radius:50%;background-color:#fff;position:relative;cursor:pointer;transition:border-color .2s ease}input[type=radio]:hover{border-color:var(--color-primary, #044d7c)}input[type=radio]:checked{border-color:var(--color-primary, #044d7c);background-color:#fff}input[type=radio]:checked:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background-color:var(--color-primary, #044d7c)}input[type=checkbox]{width:18px;height:18px;border:2px solid var(--color-border, #d1d5db);border-radius:4px;background-color:#fff;position:relative;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}input[type=checkbox]:hover{border-color:var(--color-primary, #044d7c)}input[type=checkbox]:checked{border-color:var(--color-primary, #044d7c);background-color:var(--color-primary, #044d7c)}input[type=checkbox]:checked:after{content:"";position:absolute;top:2px;left:5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}button:focus-visible,.btn:focus-visible{outline:2px solid #FF9933;outline-offset:2px;box-shadow:0 0 0 3px #f933}input:focus-visible:not([type=radio]):not([type=checkbox]),select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 3px #044d7c26}s-link:hover{text-decoration:underline;color:var(--color-primary);transition:var(--transition-base)}tbody tr:hover{background:#f8fafbcc;transform:translate(2px);transition:var(--transition-fast)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .2s ease-out both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-text-fade{animation:loadingTextFade 2s ease-in-out infinite}@keyframes loadingTextFade{0%,to{opacity:.6}50%{opacity:1}}.skeleton-text-line{height:1em;margin-bottom:.5em;border-radius:var(--radius-sm)}.skeleton-text-line:last-child{margin-bottom:0;width:60%}.skeleton-avatar{width:40px;height:40px;border-radius:50%}.skeleton-card{border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-base)}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#f1f1f1;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:9999}.loading-overlay.active{opacity:1;pointer-events:auto}.spinner-svg{filter:drop-shadow(0 2px 6px rgba(29,66,138,.15))}.spinner-circle{animation:rotate 1.1s cubic-bezier(.4,0,.2,1) infinite;transform-origin:center;transform-box:fill-box}@keyframes rotate{to{transform:rotate(360deg)}}@media print{.card{box-shadow:none;border:1px solid var(--color-border)}button,.btn,.loading-overlay{display:none}}
