@layer components{.tabular-table{padding:var(--space-16)0}.tabular-table .container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-4)}.table-title{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-4);color:var(--color-text-primary)}.table-introduction{font-family:var(--font-body);font-size:var(--text-lg);line-height:var(--leading-relaxed);margin-bottom:var(--space-8);color:var(--color-text-secondary);max-width:65ch}.table-controls{display:flex;gap:.5rem;margin-bottom:.75rem!important;justify-content:flex-end}.btn-export{padding:.5rem!important;background-color:var(--color-olive-transparent);border:1px solid var(--color-olive);border-radius:var(--radius-base);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base)}.btn-export:hover{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.btn-export:focus{outline:2px solid var(--color-primary);outline-offset:2px}.btn-export:active{transform:translateY(1px)}.btn-export-pdf{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important;color:var(--color-text-inverse)!important;font-weight:var(--font-weight-semibold)!important;box-shadow:0 2px 4px rgba(0,0,0,.1)}.btn-export-pdf:hover{background-color:var(--color-olive)!important;border-color:var(--color-olive)!important;color:var(--color-text-inverse)!important;box-shadow:0 4px 8px rgba(0,0,0,.15);transform:translateY(-1px)}.btn-export-pdf:active{transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,.1)}.mobile-pdf-download{display:none}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-6);scrollbar-width:thin;scrollbar-color:var(--color-border-dark)var(--color-neutral-100)}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:var(--radius-base)}.table-wrapper::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-base)}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.data-table{width:100%;min-width:600px;border-collapse:collapse;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);font-family:var(--font-body)}.data-table caption{padding:var(--space-4);margin-top:var(--space-2);font-size:var(--text-sm);font-style:normal;color:var(--color-text-muted);text-align:left;caption-side:bottom}.data-table thead{background-color:var(--color-olive-transparent);border-bottom:2px solid var(--color-border-dark)}.data-table thead th{padding:1.5rem 2rem!important;text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--color-text-primary);white-space:nowrap;vertical-align:middle;position:relative}.data-table thead th[data-sortable=true]{cursor:pointer;user-select:none;padding-right:var(--space-10)}.data-table thead th[data-sortable=true]:hover{background-color:var(--color-neutral-200)}.data-table thead th[data-sortable=true]:focus{outline:2px solid var(--color-primary);outline-offset:-2px}.sort-indicator{position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--color-text-muted)}.sort-indicator::before{content:'↕';display:inline-block}.data-table thead th[aria-sort=ascending] .sort-indicator::before{content:'↑';color:var(--color-primary)}.data-table thead th[aria-sort=descending] .sort-indicator::before{content:'↓';color:var(--color-primary)}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-base)}.data-table tbody tr:nth-child(even){background-color:var(--color-olive-transparent)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background-color:var(--color-neutral-50)}.data-table tbody th,.data-table tbody td{padding:1.5rem 2rem!important;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-primary);vertical-align:top;text-align:left}.data-table tbody th[scope=row]{font-weight:var(--font-weight-medium)}.data-table tbody a,.data-table thead a{color:var(--color-text-primary);text-decoration:underline}.data-table tbody a:hover,.data-table thead a:hover{color:var(--color-primary);text-decoration:none}.data-table tbody td.empty-state{text-align:center;padding:var(--space-12);font-style:italic;color:var(--color-text-muted)}.tabular-table--error{padding:var(--space-8)0}.error-state{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-lg);padding:var(--space-6)}.error-message{color:var(--color-error-text);font-size:var(--text-base);margin-bottom:var(--space-4)}.error-message strong{font-weight:var(--font-weight-bold)}.error-message code{background-color:var(--color-neutral-200);padding:.125rem .375rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm)}.error-details{margin-top:var(--space-4)}.error-details summary{cursor:pointer;font-weight:var(--font-weight-medium);color:var(--color-error-text);margin-bottom:var(--space-2)}.error-details pre{background-color:var(--color-neutral-100);padding:var(--space-4);border-radius:var(--radius-base);overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-primary)}@media(max-width:768px){.tabular-table{padding:var(--space-12)0}.data-table thead th,.data-table tbody th,.data-table tbody td{padding:1.5rem 1rem!important;font-size:var(--text-sm)}.table-title{font-size:var(--text-2xl)}.table-introduction{font-size:var(--text-base)}.table-controls{gap:.5rem!important;margin-bottom:.75rem!important}.btn-export{padding:.5rem!important}}@media(max-width:480px){.tabular-table{padding:var(--space-8)0}.data-table{min-width:500px}.data-table thead th,.data-table tbody th,.data-table tbody td{padding:1.5rem .75rem!important;font-size:var(--text-xs)}}@media(max-width:640px){.table-wrapper{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.table-controls{display:none}.mobile-pdf-download{display:flex!important;justify-content:flex-end;margin-bottom:1rem!important}.btn-mobile-pdf{display:flex;align-items:center;background:0 0;border:none;cursor:pointer;padding:.5rem;transition:transform var(--transition-base);-webkit-tap-highlight-color:transparent}.btn-mobile-pdf:hover,.btn-mobile-pdf:active{transform:scale(1.1)}.pdf-icon{width:32px;height:32px;stroke:var(--color-primary);stroke-width:2}.table-cards{display:block;margin-top:var(--space-6)}.table-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-base)!important;padding:0!important;margin-bottom:1rem!important;box-shadow:var(--shadow-sm);overflow:hidden}.table-card-header{font-family:var(--font-heading);font-weight:var(--font-weight-bold);font-size:var(--text-lg)!important;color:var(--color-bg-primary);background-color:var(--color-primary);margin:0!important;padding:.75rem 1rem!important;border-bottom:none}.table-card-row{display:flex;justify-content:space-between;align-items:baseline;padding:.75rem 1rem!important;border-bottom:1px solid var(--color-border-light);gap:1rem;transition:background-color var(--transition-base)}.table-card-row:nth-child(even){background-color:var(--color-olive-transparent)}.table-card-row:last-child{border-bottom:none}.table-card-label{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--text-base)!important;flex-shrink:0;max-width:45%}.table-card-value{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--text-base)!important;text-align:right;flex:1;word-wrap:break-word}}@media(max-width:480px){.table-card-label,.table-card-value{font-size:var(--text-sm)!important}}@media(min-width:641px){.table-cards{display:none}}@media print{.tabular-table{padding:0}.table-controls{display:none}.table-wrapper{overflow:visible}.data-table{box-shadow:none;border:1px solid #000}.data-table thead{background-color:#f0f0f0}.data-table tbody tr{page-break-inside:avoid}.sort-indicator{display:none}}}