.language-switcher{display:inline-block;position:relative}.language-switcher-button{align-items:center;background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-xs);color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:8px;justify-content:space-between;min-width:120px;padding:10px 16px;transition:all .2s cubic-bezier(.4,0,.2,1)}.language-switcher-button:hover{background:var(--background-secondary);border-color:var(--primary-color);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.language-switcher-button:active{transform:translateY(0)}.dropdown-arrow{color:var(--text-tertiary);font-size:.75rem;transition:transform .2s ease}.language-dropdown{animation:dropdownSlide .2s cubic-bezier(.4,0,.2,1);background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);min-width:140px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.language-option{background:#0000;border:none;color:var(--text-primary);cursor:pointer;display:block;font-size:.875rem;font-weight:500;padding:12px 16px;position:relative;text-align:left;transition:all .15s ease;width:100%}.language-option:hover{background:var(--background-secondary);color:var(--primary-color)}.language-option.active{background:var(--primary-color);color:var(--text-white);font-weight:600}.language-option.active:after{content:"✓";font-size:.75rem;position:absolute;right:12px}.language-switcher.login .language-switcher-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--login-glass-bg);border:1px solid var(--login-glass-border);box-shadow:var(--shadow-md);color:var(--text-white)}.language-switcher.login .language-switcher-button:hover{background:var(--login-glass-hover-bg);border-color:var(--login-glass-hover-border);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.language-switcher.login .dropdown-arrow{color:var(--login-dropdown-arrow)}.app-footer{background:var(--surface-primary);border-top:1px solid var(--border-color);margin-top:32px;padding:24px}.footer-content{flex-direction:column;gap:12px;margin:0 auto;max-width:1200px}.footer-content,.footer-links{align-items:center;display:flex}.footer-links{gap:16px}.footer-link{color:var(--text-secondary);font-size:.875rem;text-decoration:none;transition:color .2s ease}.footer-link:hover{color:var(--primary-color);text-decoration:underline}.footer-separator{color:var(--text-tertiary);font-size:.875rem}.footer-copyright{color:var(--quaternary-color);font-size:.875rem;text-align:center}@media (max-width:768px){.app-footer{padding:20px 16px}.footer-links{flex-direction:column;gap:8px}.footer-separator{display:none}}.login-container{align-items:center;background:var(--background-primary);display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:24px;position:relative}.login-language-switcher{position:absolute;right:24px;top:24px;z-index:10}.logout-announcement-banner{animation:slideDown .4s cubic-bezier(.4,0,.2,1);background:var(--surface-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-md);margin-bottom:24px;max-width:440px;width:100%}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.announcement-content{align-items:flex-start;display:flex;gap:16px;padding:20px 24px}.announcement-icon{flex-shrink:0;margin-top:4px}.announcement-text{flex:1 1;min-width:0}.announcement-text h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;line-height:1.3;margin:0 0 8px}.announcement-text p{color:var(--text-primary);font-size:.95rem;line-height:1.5;margin:0 0 8px}.announcement-actions{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:8px}.announcement-close-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s ease}.announcement-close-btn:hover{background:var(--background-secondary);color:var(--text-secondary)}.logout-announcement-banner.session-expired{border-left:4px solid var(--error-color)}.logout-announcement-banner.session-expired .announcement-icon,.logout-announcement-banner.session-expired .announcement-text h3{color:var(--error-color)}.login-card{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-lg);max-width:440px;padding:48px;width:100%}.login-header{margin-bottom:32px;text-align:center}.login-brand-logo{display:block;height:60px;margin:0 auto 16px;width:auto}.login-subtitle{color:var(--text-secondary);font-size:1rem;font-weight:500;margin:0}.login-form{gap:24px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-label{font-size:.875rem;font-weight:600;letter-spacing:.01em}.form-input,.form-label{color:var(--text-primary)}.form-input{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;font-family:inherit;font-size:1rem;padding:14px 16px;transition:all .2s ease}.form-input:focus{border-color:var(--primary-color);box-shadow:var(--primary-focus-shadow);outline:none}.form-input.error{background:var(--error-bg-005);border-color:var(--error-color)}.form-input:-webkit-autofill{-webkit-text-fill-color:var(--text-primary)!important;-webkit-box-shadow:0 0 0 1000px var(--surface-primary) inset!important;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.form-input:-webkit-autofill:focus,.form-input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text-primary)!important;background-color:var(--surface-primary)!important;-webkit-box-shadow:0 0 0 1000px var(--surface-primary) inset!important}.form-input:-webkit-autofill:focus{border-color:var(--primary-color);box-shadow:var(--primary-focus-shadow)}.form-input:-webkit-autofill{background-color:var(--surface-primary)!important;color:var(--text-primary)!important}.form-input:autofill{background-color:var(--surface-primary)!important;color:var(--text-primary)!important}.field-error{color:var(--error-color);font-size:.875rem;font-weight:500}.login-button{align-items:center;background:var(--gradient-primary);border:none;border-radius:8px;color:var(--text-white);cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:center;margin-top:8px;padding:14px 24px;position:relative;transition:all .2s ease}.login-button:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.login-button:disabled{cursor:not-allowed;opacity:.7}.error-message{background:var(--error-bg-005);border-left:4px solid var(--error-color);border-radius:6px;color:var(--error-medium);font-size:.875rem;font-weight:600;padding:12px 16px}@media (max-width:768px){.login-container{align-items:center;justify-content:center;padding:80px 16px 16px}.login-language-switcher{right:16px;top:16px}.logout-announcement-banner{margin-bottom:20px;max-width:400px}.announcement-content{gap:12px;padding:16px 20px}.announcement-text h3{font-size:1rem}.announcement-text p{font-size:.9rem}.announcement-actions{align-items:center}.login-card{max-width:400px;padding:40px 32px}.login-brand-logo{height:50px}}@media (max-width:480px){.login-container{padding-top:70px}.login-language-switcher{right:12px;top:12px}.logout-announcement-banner{max-width:380px}.announcement-content{flex-direction:column;text-align:center}.announcement-actions{align-items:center;flex-direction:row;justify-content:center;margin-top:12px;width:100%}.login-card{max-width:380px;padding:32px 28px}.login-brand-logo{height:48px}}.contract-summary{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-sm);margin-bottom:24px;overflow:hidden}.summary-title{background:var(--gradient-primary);color:var(--text-white);font-size:1.25rem;font-weight:600;margin:0;padding:20px 28px}.usage-summary{background:var(--surface-primary);padding:20px 16px}.main-usage-card{background:var(--table-row-bg);border-radius:12px;padding:10px 4px 4px;text-align:center;transition:all .2s ease}.main-usage-card h3{align-items:center;display:flex;flex-wrap:wrap;font-size:1rem;font-weight:600;gap:0;justify-content:center;letter-spacing:.08em;margin:0 0 8px;text-transform:uppercase}.title-used{opacity:.9}.title-separator{color:var(--text-secondary);margin:0 4px}.title-contract{color:var(--primary-dark);opacity:.9}.fraction-container{align-items:center;display:flex;flex-direction:column;gap:10px;margin:14px 0}.horizontal-fraction{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.fraction-numerator{font-size:2.5rem;font-weight:700;letter-spacing:-.02em;line-height:1;max-width:100%;word-break:break-all}.fraction-divider{color:var(--text-secondary);font-size:2rem;font-weight:300;opacity:.6}.fraction-denominator{color:var(--primary-dark);font-size:1.75rem;font-weight:500;letter-spacing:-.01em;line-height:1;max-width:100%;word-break:break-all}.usage-rate-badge{border-radius:8px;display:inline-block;font-size:1.25rem;font-weight:600;padding:2px 16px}.usage-rate-badge.normal{background:var(--success-bg-01);border:1px solid var(--success-medium);color:var(--success-dark)}.usage-rate-badge.warning{background:var(--warning-bg-01);border:1px solid var(--warning-color);color:var(--warning-dark)}.excess-badge{align-items:center;background:var(--warning-bg-005);border:1px solid var(--warning-color);border-radius:8px;color:var(--warning-dark);display:inline-block;display:inline-flex;font-size:1.125rem;font-weight:500;gap:6px;padding:2px 16px}.inner-card{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;margin-top:20px;padding:18px 14px}.inner-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.inner-card-excess{background:var(--warning-bg-005);border:2px solid var(--warning-color)}.inner-card h4{align-items:center;color:var(--text-secondary);display:flex;font-size:1rem;font-weight:600;gap:6px;justify-content:center;letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}.inner-title-excess{color:var(--warning-dark)!important}.inner-alert-icon{font-size:1rem!important;vertical-align:middle}.inner-value{font-size:2.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;max-width:100%;overflow-wrap:break-word;word-break:break-all}.inner-value.excess{color:var(--warning-dark)}.data-notice{align-items:flex-start;background:var(--notice-bg-normal);border-top:1px solid var(--notice-border-normal);display:flex;gap:12px;margin:0;overflow:hidden;padding:20px 28px;position:relative;transition:all .3s ease}.data-notice:hover{background:var(--notice-bg-normal-hover);transform:translateY(-1px)}.notice-icon{align-items:center;background:var(--notice-icon-normal);border-radius:50%;box-shadow:var(--notice-icon-shadow-normal);color:#fff;display:inline-flex;flex-shrink:0;font-size:14px;font-weight:600;height:24px;justify-content:center;margin-top:2px;width:24px}.notice-content{flex:1 1}.notice-text{color:var(--notice-text-normal);font-size:.875rem;font-weight:500;letter-spacing:.01em;line-height:1.6;margin:0}.notice-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.notice-list li{color:var(--notice-text-normal);font-size:.875rem;font-weight:500;letter-spacing:.01em;line-height:1.6;padding-left:12px;position:relative}.notice-list li:before{color:var(--primary-color);content:"•";font-weight:700;left:0;position:absolute}.data-notice.error-state{background:var(--notice-bg-error);border-top-color:var(--notice-border-error)}.data-notice.error-state .notice-icon{background:var(--notice-icon-error);box-shadow:var(--notice-icon-shadow-error)}.data-notice.error-state .notice-list li,.data-notice.error-state .notice-text{color:var(--notice-text-error)}.data-notice.error-state .notice-list li:before{color:var(--warning-color)}.data-notice.error-state:hover{background:var(--notice-bg-error-hover)}@media (max-width:768px){.usage-summary{padding:14px 10px}.excess-badge,.usage-rate-badge{font-size:1rem;font-weight:500}.data-notice{padding:16px 20px}.notice-text{font-size:.8rem}.notice-icon{font-size:12px;height:20px;width:20px}.fraction-numerator{font-size:2rem}.fraction-denominator{font-size:1.5rem}.inner-value{font-size:1.875rem}}@media (max-width:480px){.data-notice{padding:14px 16px}.notice-text{font-size:.75rem;line-height:1.5}.main-usage-card h3{font-size:.875rem}.usage-legend{font-size:.7rem}.fraction-numerator{font-size:1.75rem}.fraction-denominator{font-size:1.375rem}.inner-value{font-size:1.625rem}.excess-badge,.usage-rate-badge{font-size:.9rem}}.usage-trends{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-sm);margin-bottom:24px;padding:28px}.trends-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.trends-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.view-controls{gap:16px}.back-button,.view-controls{align-items:center;display:flex}.back-button{background:var(--gradient-primary);border:none;border-radius:6px;box-shadow:var(--shadow-xs);color:var(--text-white);cursor:pointer;font-size:.875rem;font-weight:500;gap:4px;padding:8px 16px;transition:all .2s ease}.back-button:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.chart-display-toggle{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:8px;padding:4px}.chart-display-toggle button{background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.chart-display-toggle button.active{background:var(--primary-dark);color:#fff;font-weight:600}.chart-display-toggle button:hover:not(.active){background:var(--background-tertiary);color:var(--text-primary)}.chart-container{background:var(--table-row-bg);border:1px solid var(--border-color);border-radius:8px;margin:24px 0;padding:20px;position:relative}.chart-hint{color:var(--quaternary-color);font-size:.875rem;font-style:italic;margin-top:12px;text-align:center}.chart-error-message{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;min-height:300px;text-align:center}.chart-error-message h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 8px}.chart-error-message p{color:var(--quaternary-color);font-size:.875rem;margin:0}.chart-loading-message{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;min-height:300px;text-align:center}.chart-loading-message p{color:var(--text-secondary);font-size:.875rem;margin:0}.custom-tooltip{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-md);padding:12px}.tooltip-label{color:var(--text-primary);font-weight:600;margin-bottom:8px}.tooltip-entry{font-size:.875rem;font-weight:500;margin:4px 0}@media (max-width:768px){.trends-header{align-items:stretch;flex-direction:column;text-align:center}.trends-header h2{font-size:1.125rem}.view-controls{flex-wrap:wrap;justify-content:center}.chart-container{padding:16px}}.usage-table{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-sm);padding:28px}.usage-table h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 20px;padding-bottom:12px}.table-container{border:1px solid var(--border-color);border-radius:8px;margin:0 auto;max-width:1200px;overflow-x:auto}.table-container:focus{outline:2px solid var(--primary-color);outline-offset:2px}.table-container:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.usage-table-content{background:var(--surface-primary);border-collapse:collapse;font-size:.875rem;width:100%}.usage-table-content thead tr th:first-child{min-width:100px;width:15%}.usage-table-content thead tr th:nth-child(2),.usage-table-content thead tr th:nth-child(3){width:42.5%}.usage-table-content thead tr:has(th:nth-child(2):last-child) th:first-child{width:25%}.usage-table-content thead tr:has(th:nth-child(2):last-child) th:nth-child(2){width:75%}.usage-table-content th{background:var(--table-header-bg);border-bottom:2px solid var(--border-color);color:var(--table-header-text);font-size:.875rem;font-weight:600;letter-spacing:.05em;padding:16px}.month-header{text-align:left;text-transform:uppercase}.usage-header{text-align:right}.header-main,.header-sub{display:inline}.usage-table-content td{border-bottom:1px solid var(--border-color);padding:12px 16px;transition:all .2s ease}.usage-table-content tbody tr{background:var(--table-row-bg);transition:all .2s ease}.usage-table-content tbody tr:hover{background:var(--table-row-hover);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.clickable-row{cursor:pointer}.month-cell{color:var(--text-primary);font-weight:600;text-align:left;white-space:nowrap}.value-cell{text-align:right}.value-cell .number{font-feature-settings:"tnum";color:var(--text-primary);font-size:1rem;font-variant-numeric:tabular-nums;min-width:130px}.value-cell .number,.value-cell .percentage{display:inline-block;font-weight:700;text-align:right}.value-cell .percentage{font-feature-settings:"tnum";font-size:.875rem;font-variant-numeric:tabular-nums;min-width:80px;white-space:nowrap}.percentage.normal{color:var(--success-dark)}.percentage.danger,.percentage.warning{color:var(--warning-dark)}.value-cell.cumulative{background:var(--primary-bg-008)}.value-cell.cumulative .percentage.danger,.value-cell.cumulative .percentage.warning{color:var(--warning-dark)}.table-hint{color:var(--text-quaternary);font-size:.875rem;font-style:italic;margin-top:12px;text-align:center}.table-error-message{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:40px 20px;text-align:center}.table-error-message h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 8px}.table-error-message p{color:var(--quaternary-color);font-size:.875rem;margin:0}.table-loading-message{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:40px 20px;text-align:center}.table-loading-message p{color:var(--text-secondary);font-size:.875rem;margin:0}.usage-table-content tbody tr{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.usage-table{padding:20px}.table-container{overflow-x:auto}.usage-table-content{font-size:.875rem;min-width:400px}.usage-table-content td,.usage-table-content th{padding:12px}.usage-table-content tbody tr:hover{transform:none}.header-main{display:block;font-size:.875rem;margin-bottom:4px}.header-sub{display:block;font-size:.75rem;font-weight:500;opacity:.8}.value-cell .number{margin-bottom:4px;margin-right:0}.value-cell .number,.value-cell .percentage{display:block;min-width:auto;width:100%}}@media print{.usage-table-content tbody tr:hover{background:#0000!important;box-shadow:none!important;transform:none!important}.table-hint{display:none}}.contract-controls{align-items:center;background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-sm);display:flex;gap:24px;justify-content:flex-start;padding:20px 28px}.tenant-info{align-items:center;background:#0000;border:none;border-right:1px solid var(--border-color);display:inline-flex;flex-shrink:0;gap:8px;margin-right:0;padding:0 24px 0 0}.tenant-id,.tenant-label{color:var(--text-primary);font-size:.875rem;font-weight:600;white-space:nowrap}.tenant-id{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:6px;max-width:200px;overflow:hidden;padding:8px 12px;text-overflow:ellipsis}.contract-selector{align-items:center;display:flex;flex:1 1;gap:12px}.contract-selector label{font-weight:600;white-space:nowrap}.contract-select,.contract-selector label{color:var(--text-primary);font-size:.875rem}.contract-select{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;flex:1 1;font-weight:500;max-width:500px;min-width:300px;padding:8px 12px;transition:border-color .2s ease}.contract-select:focus{border-color:var(--primary-color);outline:none}.contract-select:disabled{background:var(--surface-secondary);cursor:not-allowed;opacity:.6}.comparison-label,.comparison-toggle{align-items:center;display:flex}.comparison-label{cursor:pointer;gap:8px;-webkit-user-select:none;user-select:none}.comparison-checkbox{accent-color:var(--primary-color);cursor:pointer;height:16px;width:16px}.comparison-text{color:var(--text-secondary);font-size:.875rem;font-weight:500}@media (max-width:768px){.contract-controls{align-items:stretch;flex-direction:column;gap:16px;padding:16px 20px}.tenant-info{border-bottom:1px solid var(--border-color);border-right:none;margin-bottom:4px;padding-bottom:12px;padding-right:0}.tenant-id,.tenant-info{max-width:100%}.contract-selector{align-items:stretch;flex-direction:column;gap:8px}.contract-selector label{margin-bottom:4px}.contract-select{max-width:100%;min-width:auto;width:100%}.comparison-toggle{justify-content:center}}.dashboard-header{background:var(--surface-primary);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);margin-bottom:32px;padding:20px 32px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{justify-content:space-between}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:16px}.header-brand-logo{height:36px;width:auto}.header-divider{background:var(--border-color);height:24px;width:1px}.header-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.header-actions{align-items:center;display:flex;gap:16px}.logout-button{background:var(--gradient-primary);border:none;border-radius:6px;box-shadow:var(--shadow-xs);color:var(--text-white);cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.logout-button:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.hamburger-menu{position:relative}.hamburger-button{align-items:center;background:#0000;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s ease}.hamburger-button:hover{background:var(--background-secondary)}.hamburger-dropdown{animation:slideDown .2s ease-out;background:var(--surface-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);min-width:180px;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}.menu-item{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;gap:12px;padding:12px 16px;text-align:left;transition:all .2s ease;width:100%}.menu-item:hover{background:var(--background-secondary)}.menu-item-icon{align-items:center;color:var(--text-secondary);display:flex}.menu-divider{background:var(--border-color);height:1px;margin:8px 0}.menu-language-switcher{padding:8px 16px}@media (max-width:768px){.dashboard-header{padding:16px 20px}.header-left{gap:12px}.header-brand-logo{height:30px}.header-title{font-size:1rem}.header-divider{height:20px}}@media (max-width:480px){.dashboard-header{padding:12px 16px}.header-left{gap:8px}.header-brand-logo{height:26px}.header-title{font-size:.875rem}.header-divider{display:none}}.dashboard{background-color:var(--background-primary);margin:0 auto;min-height:100vh;padding:0}.dashboard-content{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1400px;padding:0 24px 24px}.dashboard-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh}.dashboard-loading p{color:var(--text-secondary);font-size:1rem;font-weight:500;margin:0}@media (max-width:768px){.dashboard-content{gap:20px;padding:0 16px 16px}}@media (max-width:480px){.dashboard-content{gap:16px;padding:0 12px 12px}}.error-boundary{align-items:center;background:var(--background-primary);display:flex;justify-content:center;min-height:100vh;padding:24px}.error-content{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-lg);max-width:600px;padding:48px;text-align:center}.error-content h2{color:var(--error-color);font-size:1.5rem;margin-bottom:16px}.error-content p{color:var(--text-secondary);margin-bottom:24px}.error-details{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-tertiary);font-family:monospace;font-size:.875rem;margin-bottom:24px;padding:16px;text-align:left}.error-reload-button{background:var(--gradient-primary);border:none;border-radius:8px;color:var(--text-white);cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .2s ease}.error-reload-button:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app,.app-loading{min-height:100vh}.app-loading{align-items:center;background:var(--background-primary);display:flex;flex-direction:column;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--border-color);border:4px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fade-in{animation:fadeIn .3s ease-in-out}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}body{background-color:var(--background-primary);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;margin:0}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin:0}p{margin:0 0 1rem}ol,ul{list-style:none;margin:0;padding:0}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--primary-dark)}button{cursor:pointer}button,input,select,textarea{background:none;border:none;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;outline:none;padding:0}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.bg-primary{background-color:var(--primary-color)}.bg-secondary{background-color:var(--secondary-color)}.bg-success{background-color:var(--success-color)}.bg-warning{background-color:var(--warning-color)}.bg-error{background-color:var(--error-color)}.focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--background-tertiary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--secondary-color)}@media print{*{background:#0000!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}body{font-size:12pt;line-height:1.4}h1,h2,h3,h4,h5,h6{page-break-after:avoid}li,p,table{page-break-inside:avoid}thead{display:table-header-group}tr{page-break-inside:avoid}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.container{margin:0 auto;max-width:1200px;padding:0 20px}.container-fluid{padding:0 20px;width:100%}.grid{grid-gap:1rem;display:grid;gap:1rem}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}