:root{--sap-brand:#0854A0;--sap-brand-hover:#074A8A;--sap-brand-active:#053C6D;--sap-shell:#354A5F;--sap-shell-hover:#2C3E50;--sap-positive:#107E3E;--sap-positive-light:#D5F0DE;--sap-critical:#E9730C;--sap-critical-light:#FDF1E3;--sap-negative:#BB0000;--sap-negative-light:#FCEAEA;--sap-informative:#0854A0;--sap-informative-light:#E5F0FA;--sap-neutral:#6A6D70;--sap-neutral-light:#F5F5F5;--sap-data-background:#F7F7F7;--sap-data-surface:#FFFFFF;--sap-data-surface-hover:#FAFAFA;--sap-data-border:#E5E5E5;--sap-data-separator:#C4C4C4;--sap-data-divider:#EDEDED;--sap-data-header-bg:#E8F4FC;--sap-text-primary:#32363A;--sap-text-secondary:#6A6D70;--sap-text-tertiary:#8A8D8F;--sap-text-link:#0854A0;--sap-text-link-hover:#074A8A;--sap-text-inverse:#FFFFFF;--sap-shadow-level-0:0 0 0 1px rgba(0,0,0,0.05);--sap-shadow-level-1:0 1px 4px rgba(0,0,0,0.08);--sap-shadow-level-2:0 2px 8px rgba(0,0,0,0.12);--sap-shadow-level-3:0 4px 16px rgba(0,0,0,0.16);--sap-chart-1:#0854A0;--sap-chart-2:#107E3E;--sap-chart-3:#E9730C;--sap-chart-4:#BB0000;--sap-chart-5:#5B738B;--sap-chart-6:#D4AF37;--sap-chart-7:#8B5CF6;--sap-chart-8:#EC4899;--sap-chart-actual:#0854A0;--sap-chart-predicted:#107E3E;--sap-chart-variance-positive:#107E3E;--sap-chart-variance-negative:#BB0000;--sap-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--sap-font-size-xs:0.6875rem;--sap-font-size-sm:0.75rem;--sap-font-size-md:0.875rem;--sap-font-size-lg:1rem;--sap-font-size-xl:1.125rem;--sap-font-size-2xl:1.25rem;--sap-font-size-3xl:1.5rem;--sap-space-xs:0.25rem;--sap-space-sm:0.5rem;--sap-space-md:0.75rem;--sap-space-lg:1rem;--sap-space-xl:1.5rem;--sap-space-2xl:2rem;--sap-radius-sm:0.25rem;--sap-radius-md:0.375rem;--sap-radius-lg:0.5rem}.sap-data-table{width:100%;border-collapse:collapse;font-family:var(--sap-font-family);font-size:var(--sap-font-size-md);background:var(--sap-data-surface);border:1px solid var(--sap-data-border);border-radius:var(--sap-radius-lg);overflow:hidden}.sap-data-table-header{background:var(--sap-data-header-bg);border-bottom:2px solid var(--sap-data-border)}.sap-data-table-header th{padding:var(--sap-space-md) var(--sap-space-lg);text-align:left;font-weight:600;font-size:var(--sap-font-size-sm);color:var(--sap-brand);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.sap-data-table-header th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sap-data-table-header th.sortable:hover{background:var(--sap-data-divider)}.sap-data-table-body tr{border-bottom:1px solid var(--sap-data-border);transition:background-color .15s ease}.sap-data-table-body tr:hover{background:var(--sap-data-surface-hover)}.sap-data-table-body tr:last-child{border-bottom:none}.sap-data-table-body.striped tr:nth-child(2n){background:rgba(99,102,241,.04)}.sap-data-table-body td{padding:var(--sap-space-md) var(--sap-space-lg);color:var(--sap-text-primary);vertical-align:middle}.sap-data-table-link{color:var(--sap-text-link);text-decoration:none;font-weight:500}.sap-data-table-link:hover{color:var(--sap-text-link-hover);text-decoration:underline}.sap-data-table-totals{background:var(--sap-data-background);border-top:2px solid var(--sap-data-border);font-weight:600}.sap-data-table-totals td{padding:var(--sap-space-md) var(--sap-space-lg);color:var(--sap-text-primary)}.sap-data-table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--sap-space-md) var(--sap-space-lg);background:var(--sap-data-surface);border-bottom:1px solid var(--sap-data-border)}.sap-data-table-toolbar-title{font-size:var(--sap-font-size-lg);font-weight:600;color:var(--sap-text-primary)}.sap-data-table-toolbar-count{color:var(--sap-text-secondary);font-weight:400;margin-left:var(--sap-space-sm)}.sap-data-table-toolbar-actions{display:flex;align-items:center;gap:var(--sap-space-sm)}.sap-data-table-toolbar-btn{width:32px;height:32px;border:1px solid var(--sap-data-border);border-radius:var(--sap-radius-sm);background:var(--sap-data-surface);color:var(--sap-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.sap-data-table-toolbar-btn:hover{background:var(--sap-data-background);color:var(--sap-text-primary);border-color:var(--sap-data-separator)}.sap-chart-container{background:var(--sap-data-surface);border:1px solid var(--sap-data-border);border-radius:var(--sap-radius-lg);padding:var(--sap-space-lg)}.sap-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sap-space-lg)}.sap-chart-title{font-size:var(--sap-font-size-lg);font-weight:600;color:var(--sap-text-primary)}.sap-chart-subtitle{font-size:var(--sap-font-size-sm);color:var(--sap-text-secondary);margin-top:var(--sap-space-xs)}.sap-chart-legend{display:flex;align-items:center;gap:var(--sap-space-lg);margin-top:var(--sap-space-md);padding-top:var(--sap-space-md);border-top:1px solid var(--sap-data-divider)}.sap-chart-legend-item{display:flex;align-items:center;gap:var(--sap-space-sm);font-size:var(--sap-font-size-sm);color:var(--sap-text-secondary)}.sap-chart-legend-color{width:12px;height:12px;border-radius:2px}.sap-chart-tooltip{background:var(--sap-data-surface);border:1px solid var(--sap-data-border);border-radius:var(--sap-radius-sm);padding:var(--sap-space-md);box-shadow:var(--sap-shadow-level-2);font-family:var(--sap-font-family)}.sap-chart-tooltip-label{font-size:var(--sap-font-size-sm);color:var(--sap-text-secondary);margin-bottom:var(--sap-space-xs)}.sap-chart-tooltip-value{font-size:var(--sap-font-size-lg);font-weight:600;color:var(--sap-text-primary)}.sap-filter-bar{display:flex;align-items:center;gap:var(--sap-space-md);padding:var(--sap-space-md) var(--sap-space-lg);border:1px solid var(--sap-data-border);border-radius:var(--sap-radius-lg)}.sap-filter-bar,.sap-filter-input{background:var(--sap-data-surface)}.sap-filter-input{height:36px;padding:0 var(--sap-space-md);border:1px solid var(--sap-data-border);border-radius:var(--sap-radius-sm);font-family:var(--sap-font-family);font-size:var(--sap-font-size-md);color:var(--sap-text-primary);transition:border-color .15s ease}.sap-filter-input:focus{outline:none;border-color:var(--sap-brand);box-shadow:0 0 0 1px var(--sap-brand)}.sap-filter-input::-moz-placeholder{color:var(--sap-text-tertiary)}.sap-filter-input::placeholder{color:var(--sap-text-tertiary)}.sap-filter-select{height:36px;padding:0 var(--sap-space-2xl) 0 var(--sap-space-md);border:1px solid var(--sap-data-border);border-radius:var(--sap-radius-sm);background:var(--sap-data-surface);font-family:var(--sap-font-family);font-size:var(--sap-font-size-md);color:var(--sap-text-primary);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;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='%236A6D70' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.sap-filter-select:focus{outline:none;border-color:var(--sap-brand)}.sap-filter-go-btn{height:36px;padding:0 var(--sap-space-lg);background:var(--sap-brand);color:var(--sap-text-inverse);border:none;border-radius:var(--sap-radius-sm);font-family:var(--sap-font-family);font-size:var(--sap-font-size-md);font-weight:500;cursor:pointer;transition:background-color .15s ease}.sap-filter-go-btn:hover{background:var(--sap-brand-hover)}.sap-filter-go-btn:active{background:var(--sap-brand-active)}.sap-filter-adapt-link{color:var(--sap-text-link);font-size:var(--sap-font-size-md);text-decoration:none;cursor:pointer}.sap-filter-adapt-link:hover{text-decoration:underline}.sap-status{display:inline-flex;align-items:center;gap:var(--sap-space-xs);padding:var(--sap-space-xs) var(--sap-space-sm);border-radius:var(--sap-radius-sm);font-size:var(--sap-font-size-sm);font-weight:500}.sap-status-positive{background:var(--sap-positive-light);color:var(--sap-positive)}.sap-status-critical{background:var(--sap-critical-light);color:var(--sap-critical)}.sap-status-negative{background:var(--sap-negative-light);color:var(--sap-negative)}.sap-status-informative{background:var(--sap-informative-light);color:var(--sap-informative)}.sap-status-neutral{background:var(--sap-neutral-light);color:var(--sap-neutral)}.sap-kpi-mini-chart{display:flex;flex-direction:column;gap:var(--sap-space-xs)}.sap-kpi-mini-bar{display:flex;align-items:center;gap:var(--sap-space-sm)}.sap-kpi-mini-bar-label{font-size:var(--sap-font-size-xs);color:var(--sap-text-secondary);width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sap-kpi-mini-bar-track{flex:1;height:16px;background:var(--sap-data-background);border-radius:var(--sap-radius-sm);overflow:hidden}.sap-kpi-mini-bar-fill{height:100%;border-radius:var(--sap-radius-sm);transition:width .3s ease}.sap-kpi-mini-bar-value{font-size:var(--sap-font-size-sm);font-weight:600;color:var(--sap-text-primary);min-width:48px;text-align:right}.sap-text-link{color:var(--sap-text-link);text-decoration:none}.sap-text-link:hover{text-decoration:underline}.sap-text-positive{color:var(--sap-positive)}.sap-text-negative{color:var(--sap-negative)}.sap-text-critical{color:var(--sap-critical)}.sap-bg-data{background:var(--sap-data-background)}.sap-border-data{border:1px solid var(--sap-data-border)}.sap-rounded-data{border-radius:var(--sap-radius-lg)}@media (max-width:768px){.sap-data-table-body td,.sap-data-table-header th,.sap-data-table-totals td{padding:var(--sap-space-sm) var(--sap-space-md);font-size:var(--sap-font-size-sm)}.sap-data-table-toolbar{flex-direction:column;align-items:flex-start;gap:var(--sap-space-md)}.sap-filter-bar{flex-wrap:wrap}}.sap-data-table-header.sticky{position:sticky;top:0;z-index:10;background:var(--sap-data-header-bg);box-shadow:0 1px 2px rgba(0,0,0,.08)}.sap-data-table.density-compact .sap-data-table-body tr{height:36px}.sap-data-table.density-compact .sap-data-table-body td{padding:var(--sap-space-xs) var(--sap-space-md);font-size:13px}.sap-data-table.density-comfortable .sap-data-table-body tr{height:44px}.sap-data-table.density-comfortable .sap-data-table-body td{padding:var(--sap-space-sm) var(--sap-space-md);font-size:14px}.sap-data-table.density-cozy .sap-data-table-body tr{height:52px}.sap-data-table.density-cozy .sap-data-table-body td{padding:var(--sap-space-md) var(--sap-space-md);font-size:14px}.sap-data-table-body.zebra tr:nth-child(2n){background-color:rgba(240,245,255,.4)}.sap-data-table-body.zebra tr:nth-child(2n):hover{background-color:rgba(230,240,255,.6)}.sap-toolbar-actions{display:flex;align-items:center;gap:8px}.sap-toolbar-icon-group{display:inline-flex;gap:0;border:1px solid var(--sap-data-border);border-radius:4px;overflow:hidden;background:white}.sap-toolbar-icon-group button{display:flex;align-items:center;justify-content:center;padding:6px 8px;border:none;border-radius:0;background:transparent;color:var(--sap-text-secondary);cursor:pointer;transition:all .15s ease}.sap-toolbar-icon-group button:not(:last-child){border-right:1px solid var(--sap-data-border)}.sap-toolbar-icon-group button:hover{background:var(--sap-data-header-bg);color:var(--sap-brand)}.sap-toolbar-icon-group button:focus-visible{outline:2px solid var(--sap-brand);outline-offset:-2px;z-index:1}.sap-toolbar-icon-group button.active{background:var(--sap-brand);color:white}.sap-status-dot{display:inline-flex;align-items:center;gap:6px;font-size:14px}.sap-status-dot:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.sap-status-dot.ACTIVE:before,.sap-status-dot.active:before{background-color:#107e3e}.sap-status-dot.INACTIVE:before,.sap-status-dot.inactive:before{background-color:#6a6d70}.sap-status-dot.PENDING:before,.sap-status-dot.pending:before{background-color:#e9730c}.sap-status-dot.BLOCKED:before,.sap-status-dot.blocked:before{background-color:#bb0000}.sap-status-dot.DRAFT:before,.sap-status-dot.draft:before{background-color:#6a6d70}.sap-status-dot.APPROVED:before,.sap-status-dot.approved:before{background-color:#107e3e}.sap-status-dot.REJECTED:before,.sap-status-dot.rejected:before{background-color:#bb0000}.sap-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.sap-row-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--sap-text-secondary);cursor:pointer;transition:all .15s ease}.sap-row-action-btn:hover{background:var(--sap-data-header-bg);color:var(--sap-brand)}.sap-row-action-btn:focus-visible{outline:2px solid var(--sap-brand);outline-offset:-2px}.sap-kebab-menu-trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--sap-text-secondary);cursor:pointer;transition:all .15s ease}.sap-kebab-menu-trigger:hover{background:var(--sap-data-header-bg);color:var(--sap-text-primary)}.sap-kebab-menu-trigger:focus-visible{outline:2px solid var(--sap-brand);outline-offset:-2px}.sap-segmented-button{display:inline-flex;border:1px solid var(--sap-data-border);border-radius:4px;overflow:hidden;background:white}.sap-segmented-button button{padding:6px 12px;border:none;border-radius:0;background:transparent;color:var(--sap-text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.sap-segmented-button button:not(:last-child){border-right:1px solid var(--sap-data-border)}.sap-segmented-button button:hover:not(.active){background:var(--sap-data-header-bg)}.sap-segmented-button button.active{background:var(--sap-brand);color:white}.sap-segmented-button button:focus-visible{outline:2px solid var(--sap-brand);outline-offset:-2px;z-index:1}.sap-data-table-cell-pinned-left,.sap-data-table-cell-pinned-right{position:sticky;z-index:2;background:inherit}.sap-data-table-header .sap-data-table-cell-pinned-left,.sap-data-table-header .sap-data-table-cell-pinned-right{z-index:12;background:var(--sap-data-header-bg)}.sap-data-table-body tr .sap-data-table-cell-pinned-left,.sap-data-table-body tr .sap-data-table-cell-pinned-right{background:var(--sap-data-surface)}.sap-data-table-body tr:hover .sap-data-table-cell-pinned-left,.sap-data-table-body tr:hover .sap-data-table-cell-pinned-right{background:var(--sap-data-surface-hover)}.sap-data-table-cell-pinned-left-last:after{content:"";position:absolute;top:0;right:-4px;bottom:0;width:4px;background:linear-gradient(90deg,rgba(0,0,0,.06),transparent);pointer-events:none}.sap-data-table-cell-pinned-right-first:before{content:"";position:absolute;top:0;left:-4px;bottom:0;width:4px;background:linear-gradient(270deg,rgba(0,0,0,.06),transparent);pointer-events:none}.sap-data-table-cell-editable{cursor:text;position:relative}.sap-data-table-cell-editable:hover:after{content:"";position:absolute;inset:2px;border:1px dashed var(--sap-data-border);border-radius:2px;pointer-events:none}.sap-data-table-cell-editing{padding:2px!important}.sap-data-table-edit-input{width:100%;height:100%;padding:4px 8px;border:2px solid var(--sap-brand);border-radius:3px;font-family:var(--sap-font-family);font-size:inherit;color:var(--sap-text-primary);background:white;outline:none;box-shadow:0 0 0 2px rgba(99,102,241,.15)}.sap-data-table-edit-input:focus{border-color:var(--sap-brand)}.sap-data-table-edit-input.error{border-color:#bb0000;box-shadow:0 0 0 2px rgba(187,0,0,.15)}.sap-data-table-edit-error{position:absolute;bottom:-18px;left:2px;font-size:11px;color:#bb0000;white-space:nowrap;z-index:5}.sap-data-table-edit-select{width:100%;height:100%;padding:4px 8px;border:2px solid var(--sap-brand);border-radius:3px;font-family:var(--sap-font-family);font-size:inherit;color:var(--sap-text-primary);background:white;outline:none;cursor:pointer}.sap-data-table-expand-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--sap-text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.sap-data-table-expand-toggle:hover{background:var(--sap-data-header-bg);color:var(--sap-brand)}.sap-data-table-expand-toggle svg{transition:transform .2s ease}.sap-data-table-expand-toggle.expanded svg{transform:rotate(90deg)}.sap-data-table-detail-panel{background:var(--sap-data-header-bg);border-top:1px dashed var(--sap-data-border);border-bottom:1px dashed var(--sap-data-border)}.sap-data-table-detail-panel td{padding:var(--sap-space-lg)!important}.sap-data-table-row-depth-1>td:first-child{padding-left:2rem!important}.sap-data-table-row-depth-2>td:first-child{padding-left:3.5rem!important}.sap-data-table-row-depth-3>td:first-child{padding-left:5rem!important}.sap-data-table-virtual-container{overflow-y:auto;overflow-x:auto;position:relative}.sap-data-table-virtual-container .sap-data-table{border:none;border-radius:0}