:root{--color-primary:#12305a;--color-primary-hover:#1c4177;--color-primary-light:#5a7ca8;--color-primary-dark:#0d2340;--color-secondary:#3f86c4;--color-secondary-hover:#316ea6;--color-secondary-active:#2f6fa8;--color-secondary-light:#7fb0d8;--color-secondary-dark:#2a5f8f;--color-danger:#f44336;--color-danger-hover:#da190b;--color-danger-light:#ef5350;--color-danger-dark:#c62828;--color-success:#4caf50;--color-warning:#ff9800;--color-error:#f44336;--color-success-bg:#d4edda;--color-success-text:#155724;--color-success-border:#c3e6cb;--color-error-bg:#f8d7da;--color-error-text:#721c24;--color-error-border:#f5c6cb;--color-white:#fff;--color-gray-50:#f8f8f8;--color-gray-100:#f5f5f5;--color-gray-200:#f9f9f9;--color-gray-300:#e0e0e0;--color-gray-400:#ddd;--color-gray-500:#ccc;--color-gray-600:#666;--color-gray-700:#555;--color-gray-800:#333;--color-gray-900:#2c3e50;--color-text-primary:var(--color-gray-800);--color-text-secondary:var(--color-gray-600);--spacing-xxxs:2px;--spacing-xxs:5px;--spacing-xs:8px;--spacing-sm:10px;--spacing-md:15px;--spacing-lg:20px;--spacing-xl:30px;--spacing-xxl:40px;--spacing-12:12px;--spacing-16:16px;--spacing-18:18px;--radius-sm:4px;--radius-md:8px;--font-family-primary:Arial, sans-serif;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:14px;--font-size-md:16px;--font-size-lg:1.2em;--font-size-xl:24px;--font-size-xxl:32px;--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--shadow-card:0 2px 4px rgba(0,0,0,.1);--shadow-lg:0 4px 12px rgba(0,0,0,.15);--color-surface:var(--color-white);--color-surface-secondary:#f8f9fa;--color-surface-alt:#f8f9fa;--color-surface-sunken:#edeff2;--color-border:#dee2e6;--shadow-md:0 4px 12px rgba(0,0,0,.15);--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--transition-fast:.3s;--z-index-navbar:1000;--z-index-navbar-menu:999;--z-index-modal:1050;--layout-max-width:1200px;--form-max-width:600px;--calculation-max-width:800px;--chart-height:400px;--chart-min-height:200px;--chart-max-height:1000px;--table-row-height:1;--table-resize-handle-width:4px;--table-resize-handle-color:var(--color-gray-400);--table-resize-handle-hover-color:var(--color-primary);--table-column-min-width:50px}[data-theme=dark]{--color-white:#1e1e2e;--color-gray-50:#181825;--color-gray-100:#1e1e2e;--color-gray-200:#27273a;--color-gray-300:#313244;--color-gray-400:#45475a;--color-gray-500:#585b70;--color-gray-600:#a6adc8;--color-gray-700:#bac2de;--color-gray-800:#cdd6f4;--color-gray-900:#cdd6f4;--color-primary:#6ea8de;--color-primary-hover:#5a9bd4;--color-primary-light:#a9c9e8;--color-primary-dark:#3f86c4;--color-secondary:#74c0fc;--color-secondary-hover:#4dabf7;--color-secondary-active:#339af0;--color-secondary-light:#a5d8ff;--color-secondary-dark:#1c7ed6;--color-danger:#ff6b6b;--color-danger-hover:#fa5252;--color-danger-light:#ffa8a8;--color-danger-dark:#e03131;--color-success:#69db7c;--color-warning:#ffd43b;--color-error:#ff6b6b;--color-success-bg:#1c3829;--color-success-text:#69db7c;--color-success-border:#2f9e44;--color-error-bg:#3b1219;--color-error-text:#ff6b6b;--color-error-border:#c92a2a;--shadow-card:0 2px 4px rgba(0,0,0,.5);--shadow-lg:0 4px 12px rgba(0,0,0,.5);--color-surface:var(--color-gray-200);--color-surface-secondary:var(--color-gray-50);--color-surface-alt:var(--color-gray-300);--color-surface-sunken:var(--color-gray-50);--color-border:var(--color-gray-500);--shadow-md:0 4px 12px rgba(0,0,0,.5)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-white:#1e1e2e;--color-gray-50:#181825;--color-gray-100:#1e1e2e;--color-gray-200:#27273a;--color-gray-300:#313244;--color-gray-400:#45475a;--color-gray-500:#585b70;--color-gray-600:#a6adc8;--color-gray-700:#bac2de;--color-gray-800:#cdd6f4;--color-gray-900:#cdd6f4;--color-primary:#69db7c;--color-primary-hover:#51cf66;--color-primary-light:#8ce99a;--color-primary-dark:#2f9e44;--color-secondary:#74c0fc;--color-secondary-hover:#4dabf7;--color-secondary-active:#339af0;--color-secondary-light:#a5d8ff;--color-secondary-dark:#1c7ed6;--color-danger:#ff6b6b;--color-danger-hover:#fa5252;--color-danger-light:#ffa8a8;--color-danger-dark:#e03131;--color-success:#69db7c;--color-warning:#ffd43b;--color-error:#ff6b6b;--color-success-bg:#1c3829;--color-success-text:#69db7c;--color-success-border:#2f9e44;--color-error-bg:#3b1219;--color-error-text:#ff6b6b;--color-error-border:#c92a2a;--shadow-card:0 2px 4px rgba(0,0,0,.5);--shadow-lg:0 4px 12px rgba(0,0,0,.5);--color-surface:var(--color-gray-200);--color-surface-secondary:var(--color-gray-50);--color-surface-alt:var(--color-gray-300);--color-surface-sunken:var(--color-gray-50);--color-border:var(--color-gray-500);--shadow-md:0 4px 12px rgba(0,0,0,.5)}}@media print{[data-theme=dark]{--color-white:#fff;--color-gray-50:#f8f8f8;--color-gray-100:#f5f5f5;--color-gray-200:#f9f9f9;--color-gray-300:#e0e0e0;--color-gray-400:#ddd;--color-gray-500:#ccc;--color-gray-600:#666;--color-gray-700:#555;--color-gray-800:#333;--color-gray-900:#2c3e50;--color-primary:#4caf50;--color-primary-hover:#45a049;--color-primary-light:#81c784;--color-primary-dark:#388e3c;--color-secondary:#2196f3;--color-secondary-hover:#0b7dda;--color-secondary-active:#3498db;--color-secondary-light:#64b5f6;--color-secondary-dark:#1976d2;--color-danger:#f44336;--color-danger-hover:#da190b;--color-danger-light:#ef5350;--color-danger-dark:#c62828;--color-success:#4caf50;--color-warning:#ff9800;--color-error:#f44336;--color-success-bg:#d4edda;--color-success-text:#155724;--color-success-border:#c3e6cb;--color-error-bg:#f8d7da;--color-error-text:#721c24;--color-error-border:#f5c6cb;--shadow-card:0 2px 4px rgba(0,0,0,.1);--shadow-lg:0 4px 12px rgba(0,0,0,.15);--color-surface:var(--color-white);--color-surface-secondary:#f8f9fa;--color-surface-alt:#f8f9fa;--color-surface-sunken:#edeff2;--color-border:#dee2e6;--shadow-md:0 4px 12px rgba(0,0,0,.15)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family-primary);background-color:var(--color-gray-100);color:var(--color-gray-800);font-size:var(--font-size-base);line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-lg)}a{text-decoration:none;color:var(--color-secondary)}a:hover{color:var(--color-secondary-hover)}h1,h2,h3,h4,h5,h6{color:var(--color-gray-800);font-weight:var(--font-weight-semibold);line-height:1.2}h1{font-size:var(--font-size-xxl)}h1,h2{margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}h4{font-size:var(--font-size-base)}h4,h5{margin-bottom:var(--spacing-sm)}h5{font-size:var(--font-size-sm)}h6{font-size:var(--font-size-xs);margin-bottom:var(--spacing-xs)}p{margin-bottom:var(--spacing-md);line-height:1.6}.app-text--primary{color:var(--color-primary)}.app-text--secondary{color:var(--color-secondary)}.app-text--danger{color:var(--color-danger)}.app-text--success{color:var(--color-success)}.app-text--muted{color:var(--color-gray-600)}.app-text--bold{font-weight:var(--font-weight-bold)}.app-text--semibold{font-weight:var(--font-weight-semibold)}.app-text--normal{font-weight:var(--font-weight-normal)}.app-container{max-width:var(--layout-max-width);margin:0 auto;background-color:var(--color-white);padding:var(--spacing-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.app-container--fluid{max-width:100%}.app-container--no-shadow{box-shadow:none}.app-container--no-background{background-color:transparent}.app-container--sunken{background-color:var(--color-surface-sunken)}.app-card{padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.app-card__title{margin-top:0;margin-bottom:var(--spacing-md);color:var(--color-gray-800);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.app-card__subtitle{margin:calc(var(--spacing-xxxs) - var(--spacing-md)) 0 var(--spacing-16);color:var(--color-text-secondary)}.app-card>:last-child{margin-bottom:0}.app-card__content{margin-bottom:var(--spacing-lg);color:var(--color-gray-600);line-height:1.6}.app-card--no-border{border:none}.app-card--no-shadow{box-shadow:none}.app-card--interactive{cursor:pointer;transition:box-shadow var(--transition-fast)}.app-card--interactive:hover{box-shadow:0 4px 12px #00000026}[data-theme=dark] .app-card--interactive:hover{box-shadow:0 4px 12px #00000080}.app-card-stack{display:flex;flex-direction:column;gap:var(--spacing-xxl)}.app-action-bar{display:flex;gap:var(--spacing-xs);justify-content:flex-end;flex-wrap:wrap;margin-bottom:var(--spacing-16)}.app-action-bar--bottom{margin-top:var(--spacing-16);margin-bottom:0;align-items:flex-start}.app-refresh{display:flex;flex-direction:column;align-items:center;gap:.25rem}.app-refresh--left{margin-right:auto}.app-refresh__time{font-size:.8rem;color:var(--color-text-secondary)}.app-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-16)}.app-tab{background:none;border:none;border-bottom:2px solid transparent;padding:var(--spacing-xs) var(--spacing-16);cursor:pointer;color:var(--color-text-secondary);font:inherit}.app-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.app-panel{margin-top:var(--spacing-xxl)}.app-panel__title{margin-bottom:var(--spacing-md);color:var(--color-gray-800);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.app-panel__content{margin-top:var(--spacing-md);border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);padding:var(--spacing-sm);background-color:var(--color-surface)}.app-panel--chart .app-panel__content{height:400px;min-height:200px;max-height:1000px;position:relative;resize:vertical;overflow:auto}.app-panel--compact{margin-top:var(--spacing-lg)}.app-panel--no-border .app-panel__content{border:none}.app-panel--flush .app-panel__content{padding:0}.app-button{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-base);font-family:var(--font-family-primary);transition:background-color var(--transition-fast);font-weight:var(--font-weight-normal);display:inline-flex;white-space:nowrap;align-items:center;justify-content:center;gap:var(--spacing-xs);text-align:center}.app-button--primary{background-color:var(--color-primary);color:var(--color-white)}.app-button--primary:hover{background-color:var(--color-primary-hover)}.app-button--secondary{background-color:var(--color-secondary);color:var(--color-white);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-base);transition:background-color var(--transition-fast)}.app-button--secondary:hover{background-color:var(--color-secondary-hover)}.app-button--danger{background-color:var(--color-danger);color:var(--color-white)}.app-button--danger:hover{background-color:var(--color-danger-hover)}.app-button--quiet{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.app-button--quiet:hover{background-color:var(--color-surface-secondary);color:var(--color-text-primary)}.app-button:disabled{background-color:var(--color-gray-300);color:var(--color-white);cursor:not-allowed;padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-base)}.app-button--compact{padding:var(--spacing-xs) var(--spacing-md)}.app-navbar{background-color:var(--color-primary);color:var(--color-white);padding:0;box-shadow:var(--shadow-card);position:sticky;top:0;z-index:var(--z-index-navbar);transition:all var(--transition-fast) ease-in-out}.app-navbar--compact{box-shadow:var(--shadow-lg)}.app-navbar--compact .app-navbar__container{padding:var(--spacing-xs) var(--spacing-lg)}.app-navbar--compact .app-navbar__title{font-size:var(--font-size-lg)}.app-navbar__container{max-width:var(--layout-max-width);margin:0 auto;padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);background-color:inherit;position:relative;z-index:calc(var(--z-index-navbar) + 2)}.app-navbar__title{margin:0;font-size:var(--font-size-xl);color:var(--color-white);font-weight:var(--font-weight-bold)}.app-hamburger{display:block;background:none;border:none;cursor:pointer;padding:.5rem;color:var(--color-white)}.app-hamburger .bar{display:block;width:25px;height:3px;margin:5px auto;background-color:var(--color-white);transition:all var(--transition-fast) ease-in-out}.app-hamburger.active .bar:nth-child(2){opacity:0}.app-hamburger.active .bar:first-child{transform:translateY(8px) rotate(45deg)}.app-hamburger.active .bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.app-navbar__menu{position:absolute;top:100%;left:auto;right:0;width:20vw;min-width:230px;max-width:230px;background-color:var(--color-primary-dark);display:flex;flex-direction:column;align-items:stretch;padding:0;margin:0;list-style:none;transform:translateY(-100%);opacity:0;pointer-events:none;transition:all var(--transition-fast) ease-in-out;z-index:var(--z-index-navbar-menu);border-bottom-left-radius:var(--radius-md)}.app-navbar__menu--open{transform:translateY(0);opacity:1;pointer-events:auto;padding:var(--spacing-md) 0;box-shadow:-4px 4px 6px #0000001a}.app-navbar__menu li{margin:var(--spacing-xxxs) 0;width:100%}.app-navbar__link{color:var(--color-white);text-decoration:none;font-size:1.1rem;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast);cursor:pointer;text-align:left;width:100%;box-sizing:border-box}.app-navbar__link--active,.app-navbar__link:hover,a.app-navbar__link:hover,button.app-navbar__link:hover{color:var(--color-white);background-color:var(--color-primary-hover);text-decoration:none}.app-navbar__user{display:flex;align-items:center;gap:var(--spacing-sm);margin:var(--spacing-md) 0;padding:0 var(--spacing-md)}.app-navbar__right{gap:var(--spacing-md)}.app-navbar__right,.app-navbar__username{display:flex;align-items:center;min-width:0}.app-navbar__username{color:var(--color-white);font-weight:var(--font-weight-bold);gap:var(--spacing-sm)}.app-navbar__username-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-navbar__username app-icon{flex-shrink:0}@media(max-width:640px){.app-navbar__container{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm);gap:var(--spacing-xs)}.app-navbar__right{gap:var(--spacing-xs)}.app-navbar__user{padding:0}.app-navbar__username-text{display:none}}button.app-navbar__link{background-color:transparent!important;background:none!important;border:none;font-family:inherit;color:var(--color-white);cursor:pointer}button.app-navbar__link:hover{color:var(--color-white)!important;background-color:var(--color-primary-hover)!important}.app-navbar__link--static{cursor:default}.app-navbar__link--static:hover{background-color:transparent}[data-theme=dark] .app-navbar,[data-theme=dark] .app-navbar__container{background-color:var(--color-gray-300)}[data-theme=dark] .app-navbar__menu{background-color:var(--color-gray-200)}[data-theme=dark] .app-navbar__link,[data-theme=dark] .app-navbar__title,[data-theme=dark] .app-navbar__username,[data-theme=dark] button.app-navbar__link{color:#fff}[data-theme=dark] .app-navbar__link--active,[data-theme=dark] .app-navbar__link:hover,[data-theme=dark] button.app-navbar__link:hover{color:#fff;background-color:var(--color-gray-400)}[data-theme=dark] button.app-navbar__link:hover{color:#fff!important;background-color:var(--color-gray-400)!important}[data-theme=dark] .app-navbar__menu--open{box-shadow:-4px 4px 6px #0006}[data-theme=dark] .app-hamburger .bar{background-color:#fff}[data-theme=dark] .app-hamburger .app-icon{color:#fff}.app-input,.app-select{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-family-primary);transition:border-color var(--transition-fast)}input[type=date].app-input{width:auto}.app-input:focus,.app-select:focus{outline:none;border-color:var(--color-primary)}.app-input:disabled,.app-select:disabled{background-color:var(--color-gray-100);cursor:not-allowed}.app-form-container{background-color:var(--color-gray-50);padding:var(--spacing-lg);border-radius:var(--radius-md)}.app-form-container--narrow{max-width:600px}.app-form-group{margin-bottom:var(--spacing-md)}.app-form-group label{display:block;margin-bottom:var(--spacing-xxs);font-weight:var(--font-weight-semibold);color:var(--color-gray-600);font-size:var(--font-size-sm)}.app-form-hint{color:var(--color-gray-500);font-size:var(--font-size-xs);margin-top:var(--spacing-xxs)}.app-form-error{color:var(--color-danger);font-size:.6rem;margin-top:var(--spacing-xxs);font-weight:var(--font-weight-semibold);display:block}.app-form-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.app-form-actions--equal button{flex:1}.app-form-row{display:flex;gap:var(--spacing-md)}.app-form-row .app-form-group{flex:1}.app-form-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-gray-200)}.app-form-section__title{color:var(--color-gray-700);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-top:0;margin-bottom:var(--spacing-md)}.app-date-range-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.app-date-range-row .app-form-group{margin-bottom:0;flex:0 0 auto}.app-date-range-row .app-input{height:38px;box-sizing:border-box}.app-date-range-row .app-button-group{display:flex;gap:var(--spacing-sm);flex:0 0 auto}.app-date-range-row .app-button{height:38px;box-sizing:border-box}[data-theme=dark] .app-input,[data-theme=dark] .app-select{background-color:var(--color-gray-200);color:var(--color-gray-800);border-color:var(--color-gray-400)}[data-theme=dark] .app-input:disabled,[data-theme=dark] .app-select:disabled{background-color:var(--color-gray-300);color:var(--color-gray-500)}@media(max-width:600px){.app-date-range-row{flex-direction:column;align-items:stretch}.app-date-range-row .app-button-group,.app-date-range-row .app-form-group,.app-date-range-row .app-form-group .app-input{width:100%}.app-date-range-row .app-button-group .app-button{flex:1}}.app-checkbox-group{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);background-color:var(--color-gray-50)}.app-checkbox-group--scrollable{max-height:300px;overflow-y:auto}.app-checkbox-item{display:flex;align-items:center;gap:var(--spacing-xs)}.app-checkbox-item input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary)}.app-checkbox-item label{cursor:pointer;margin:0;-webkit-user-select:none;user-select:none;font-size:var(--font-size-sm);color:var(--color-gray-800)}.app-checkbox-item input[type=checkbox]:disabled+label{color:var(--color-gray-400);cursor:not-allowed}.app-table{width:100%;border-collapse:collapse;margin-top:var(--spacing-lg)}.app-table tr{line-height:var(--table-row-height)}.app-table td,.app-table th{padding:var(--spacing-xxs);text-align:left;border-bottom:1px solid var(--color-gray-200)}.app-table th{position:relative;background-color:var(--color-gray-50);font-weight:var(--font-weight-semibold);color:var(--color-gray-800)}.app-table tr:hover{background-color:var(--color-gray-100)}.app-table--striped tbody tr:nth-child(odd){background-color:var(--color-gray-50)}.app-table-actions{display:flex;gap:var(--spacing-sm)}.app-table__header--sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.app-table__header--sortable:hover{background-color:var(--color-gray-100)}.app-table__sort-indicator{margin-left:var(--spacing-xxs);font-size:var(--font-size-xs);color:var(--color-primary)}.app-table__resize-handle{position:absolute;right:0;top:0;bottom:0;width:var(--table-resize-handle-width);background-color:var(--table-resize-handle-color);cursor:col-resize;z-index:1}.app-table__resize-handle--active,.app-table__resize-handle:hover{background-color:var(--table-resize-handle-hover-color)}.app-table--resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.app-table--resizing *{cursor:col-resize}.app-table-scroll{overflow-x:auto;padding-bottom:var(--spacing-xs)}.app-table__num{text-align:right;white-space:nowrap;width:1%;padding-left:var(--spacing-lg)}.app-table__total{font-weight:var(--font-weight-semibold);border-top:2px solid var(--color-border)}.app-message{position:fixed;top:50px;left:50%;transform:translate(-50%);z-index:1000;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-sm);border:1px solid transparent;box-shadow:0 4px 12px #00000026;min-width:300px;max-width:80%;text-align:center}.app-message--inline{position:static;left:auto;right:auto;transform:none;min-width:0;max-width:none;margin:0 0 var(--spacing-md);box-shadow:none;text-align:left}.app-message--success{background-color:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.app-message--error{background-color:var(--color-error-bg);color:var(--color-error-text);border-color:var(--color-error-border)}.app-message--warning{background-color:#fff3cd;color:#856404;border-color:#ffc107}.app-message--info{background-color:#d1ecf1;color:#0c5460;border-color:#17a2b8}[data-theme=dark] .app-message--warning{background-color:#3d2c00;color:#ffd43b;border-color:#e67700}[data-theme=dark] .app-message--info{background-color:#0d2d3a;color:#74c0fc;border-color:#1971c2}.app-message--dismissible{cursor:pointer;padding-right:var(--spacing-xl)}.app-message__dismiss{position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:700;opacity:.7}.app-message__dismiss:hover{opacity:1}.app-status-indicator{display:inline-flex;align-items:center;gap:8px}.app-status-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.app-status-dot--success{background-color:var(--color-success,#4caf50)}.app-status-dot--warning{background-color:var(--color-warning,#ff9800)}.app-status-dot--error{background-color:var(--color-error,#f44336)}.app-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:.85em}.app-status--success{background-color:#4caf5026;color:#2e7d32}.app-status--warning{background-color:#ff980026;color:#e65100}.app-status--error{background-color:#f4433626;color:#c62828}[data-theme=dark] .app-status--success{background-color:#69db7c33;color:#69db7c}[data-theme=dark] .app-status--warning{background-color:#ffd43b33;color:#ffd43b}[data-theme=dark] .app-status--error{background-color:#ff6b6b33;color:#ff6b6b}.app-status__time{font-size:.8rem;color:var(--color-text-secondary);margin-top:.25rem}.app-hint-anchor{position:relative;display:inline-block;cursor:default;outline:none}.app-hint{display:none;position:fixed;top:var(--app-hint-top,auto);left:var(--app-hint-left,auto);z-index:1000;width:max-content;max-width:320px;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:1.45;white-space:normal;text-align:left;pointer-events:none}.app-hint-anchor:focus-visible .app-hint,.app-hint-anchor:hover .app-hint{display:block}.app-modal{margin:auto;max-width:32rem;padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-lg)}.app-modal::backdrop{background-color:#00000073}.app-modal__title{margin:0 0 var(--spacing-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.app-modal__text{margin:0 0 var(--spacing-lg);line-height:1.5}.app-modal__actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;flex-wrap:wrap}.app-collapsible{margin-top:15px;border:1px solid var(--color-gray-300,#e0e0e0);border-radius:4px;overflow:hidden}.app-collapsible__header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 15px;background:var(--color-gray-50,#f5f5f5);color:var(--color-gray-800,#333);border:none;cursor:pointer;font-size:.95em;font-weight:500;text-align:left;transition:background-color .2s ease}.app-collapsible__header:hover{background:var(--color-gray-100,#eee)}.app-collapsible__icon{font-size:.8em;color:var(--color-gray-600,#666);transition:transform .2s ease}.app-collapsible--open .app-collapsible__icon{transform:rotate(90deg)}.app-collapsible__content{padding:15px;background:var(--color-white,#fff);border-top:1px solid var(--color-gray-300,#e0e0e0)}.app-collapsible__content>:first-child{margin-top:0}.app-collapsible__content>:last-child{margin-bottom:0}.app-collapsible__content>div+div{margin-top:15px}.app-info-row{display:flex;align-items:center;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-gray-300)}.app-info-row:last-child{border-bottom:none}.app-info-label{font-weight:var(--font-weight-semibold);min-width:200px}.app-info-value{flex:1}.app-panel--month{margin-top:var(--spacing-lg)}.app-panel__subtitle{font-size:.85em;font-weight:var(--font-weight-normal);color:var(--color-gray-600);margin-left:var(--spacing-sm)}.app-comparison-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-300)}.app-comparison-section h4{margin:0 0 var(--spacing-md) 0;font-size:1em}.app-comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.app-comparison-item{display:flex;flex-direction:column;gap:var(--spacing-xxs);padding:var(--spacing-sm);background:var(--color-gray-100);border-radius:var(--radius-sm)}.app-differenz{font-size:.9em;color:var(--color-danger)}.app-toleranz-info{font-size:.85em;color:var(--color-gray-600);margin:0 0 var(--spacing-sm) 0}.app-list{margin:var(--spacing-xxs) 0;padding-left:var(--spacing-lg)}.app-tag-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xxs);margin-top:var(--spacing-xxs)}.app-tag{display:inline-block;padding:2px var(--spacing-xs);background:var(--color-gray-300);border-radius:3px;font-size:.85em}.app-table--compact{font-size:.9em}.app-table--compact td,.app-table--compact th{padding:6px var(--spacing-sm)}.app-table--bars{table-layout:fixed}.app-table__label-col{width:220px}.app-table__bar-col{width:auto}.app-table__bar-cell{padding:var(--spacing-xs) var(--spacing-12)!important}.app-table__number{text-align:right}.app-table__row--producer{background-color:#4caf501a}.app-table__row--producer:hover{background-color:#4caf5026}.app-table__row--consumer{background-color:#2196f30d}.app-table__row--consumer:hover{background-color:#2196f31a}.app-bar-container{width:100%;height:20px;background-color:var(--color-gray-100);border-radius:3px;overflow:hidden}.app-bar{height:100%;border-radius:3px;transition:width var(--transition-fast) ease-out;min-width:2px}.app-einheit-summen-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-300)}.app-einheit-summen-section h4{margin:0 0 var(--spacing-md) 0;font-size:1em}.app-empty-state{text-align:center;padding:var(--spacing-xxl);color:var(--color-gray-600)}.app-quarter-selector{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.app-quarter-selector__label{width:100%;margin-bottom:var(--spacing-xxs);font-weight:var(--font-weight-semibold);color:var(--color-gray-600);font-size:var(--font-size-sm)}.app-quarter-button{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);background-color:var(--color-white);color:var(--color-gray-800);font-size:var(--font-size-sm);font-family:var(--font-family-primary);cursor:pointer;transition:all var(--transition-fast)}.app-quarter-button:hover{border-color:var(--color-primary);background-color:var(--color-gray-50)}.app-quarter-button--active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.app-quarter-button--active:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}@media(max-width:600px){.app-quarter-button{padding:var(--spacing-xs) var(--spacing-xs);font-size:var(--font-size-xs)}}.app-drop-zone{border:2px dashed var(--color-gray-500,#ccc);border-radius:8px;padding:2rem;text-align:center;cursor:pointer;transition:all .2s ease;background-color:var(--color-gray-50,#f8f9fa);min-height:150px;display:flex;align-items:center;justify-content:center}.app-drop-zone--active,.app-drop-zone:hover{border-color:var(--color-primary,#4caf50);background-color:#4caf501a}.app-drop-zone--active{border-style:solid}.app-drop-zone--has-file{border-style:solid;border-color:var(--color-success-border,#c3e6cb);background-color:var(--color-success-bg,#d4edda)}.app-drop-zone--error,.app-drop-zone--error:hover{border-style:solid;border-color:var(--color-error-border,#f5c6cb);background-color:var(--color-error-bg,#f8d7da)}.app-drop-zone--error .app-drop-zone__file-icon,.app-drop-zone--error:hover .app-drop-zone__icon{color:var(--color-error-text,#721c24)}.app-drop-zone__input{display:none}.app-drop-zone__content{display:flex;flex-direction:column;align-items:center;gap:.5rem}.app-drop-zone__icon{color:var(--color-gray-600,#6c757d);margin-bottom:.5rem}.app-drop-zone--active .app-drop-zone__icon,.app-drop-zone:hover .app-drop-zone__icon{color:var(--color-primary,#4caf50)}.app-drop-zone__text{font-size:1rem;font-weight:500;color:var(--color-gray-800,#333);margin:0}.app-drop-zone__hint{font-size:.875rem;color:var(--color-gray-600,#6c757d);margin:0}.app-drop-zone__file{display:flex;align-items:center;gap:1rem;width:100%;max-width:400px}.app-drop-zone__file-icon{color:var(--color-success-text,#28a745);flex-shrink:0}.app-drop-zone__file-info{display:flex;flex-direction:column;align-items:flex-start;flex-grow:1;min-width:0}.app-drop-zone__file-name{font-weight:500;color:var(--color-gray-800,#333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.app-drop-zone__file-size{font-size:.875rem;color:var(--color-gray-600,#6c757d)}.app-drop-zone__remove{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--color-gray-600,#6c757d);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.app-drop-zone__remove:hover{color:var(--color-danger,#dc3545);background-color:var(--color-error-bg,#f8d7da)}.app-kebab-container{position:relative;display:inline-block}.app-kebab-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.app-kebab-button:hover{background-color:var(--color-gray-300)}.app-kebab-button:focus{outline:2px solid var(--color-primary);outline-offset:2px}.app-kebab-button__dot{width:4px;height:4px;background-color:var(--color-gray-600);border-radius:50%}.app-kebab-button:hover .app-kebab-button__dot{background-color:var(--color-gray-800)}.app-kebab-menu{position:absolute;top:100%;right:0;min-width:140px;margin:0;padding:var(--spacing-xs) 0;list-style:none;background-color:var(--color-primary-dark);border-radius:var(--radius-md);box-shadow:var(--shadow-card),0 4px 12px #00000026;z-index:var(--z-index-modal);opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast),visibility var(--transition-fast)}.app-kebab-menu--open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.app-kebab-menu__item{display:block;width:100%;padding:var(--spacing-xs) var(--spacing-md);margin:0;background:transparent;border:none;color:var(--color-white);font-family:var(--font-family-primary);font-size:var(--font-size-base);text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.app-kebab-menu__item:focus,.app-kebab-menu__item:hover{background-color:var(--color-primary-hover)}.app-kebab-menu__item:focus{outline:none}.app-kebab-menu__item--danger{color:var(--color-danger-light)}.app-kebab-menu__item--danger:hover{background-color:var(--color-danger);color:var(--color-white)}.app-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--color-gray-200,#e5e7eb);border-top-color:var(--color-primary,#3b82f6);border-radius:50%;animation:app-spin .8s linear infinite}.app-spinner--small{width:14px;height:14px;border-width:2px}.app-spinner--large{width:32px;height:32px;border-width:3px}@keyframes app-spin{to{transform:rotate(1turn)}}.app-spinner-container{gap:var(--spacing-sm,8px);color:var(--color-gray-500,#6b7280);font-size:var(--font-size-sm,.875rem)}.app-icon,.app-spinner-container{display:inline-flex;align-items:center}.app-icon{justify-content:center;width:1em;height:1em;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.app-icon--sm{width:.875em;height:.875em}.app-icon--md{width:1em;height:1em}.app-icon--lg{width:1.25em;height:1.25em}.app-button .app-icon,.app-navbar__link .app-icon{margin-right:var(--spacing-xs)}.app-navbar__title .app-icon{margin-right:var(--spacing-sm)}.app-kebab-menu__item .app-icon{margin-right:var(--spacing-xs)}body{padding:var(--spacing-lg)}
