/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-tracking:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-600:oklch(62.7% .194 149.214);--color-green-800:oklch(44.8% .119 151.328);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-gray-50:#f8f9fa;--color-gray-100:#f1f3f5;--color-gray-200:#e9ecef;--color-gray-300:#dee2e6;--color-gray-600:#6c757d;--color-gray-700:#495057;--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#2196f3;--color-success:#28a745}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.me-1{margin-inline-end:calc(var(--spacing)*1)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-right{text-align:right}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.page-container{max-width:var(--container-6xl);padding-inline:calc(var(--spacing)*5);margin-inline:auto}h1{color:#495057;margin-top:0;margin-bottom:.5rem;font-size:30px;font-weight:700;line-height:1.2}.page-title{margin-bottom:calc(var(--spacing)*2);font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-gray-700)}.page-subtitle{color:var(--color-gray-600)}.section-title{margin-bottom:calc(var(--spacing)*2);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-gray-700)}.card-title{margin-top:calc(var(--spacing)*0);margin-bottom:calc(var(--spacing)*5);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-gray-700)}.card-subtitle{margin-top:calc(var(--spacing)*0);margin-bottom:calc(var(--spacing)*4);border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--color-gray-200);padding-bottom:calc(var(--spacing)*2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-gray-700)}.section-card{margin-bottom:calc(var(--spacing)*8);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-300);background-color:var(--color-white);padding:calc(var(--spacing)*5);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inner-card{border-radius:var(--radius-md);background-color:var(--color-gray-50);padding:calc(var(--spacing)*5)}.flash-container{margin-bottom:calc(var(--spacing)*4);gap:calc(var(--spacing)*3);flex-direction:column;display:flex}.flash-container:empty{display:none}.flash-message{align-items:center;gap:calc(var(--spacing)*3);border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*3);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);opacity:0;border-width:1px;transition:opacity .3s,transform .3s;display:flex;transform:translateY(-10px)}.flash-message.flash-show{opacity:1;transform:translateY(0)}.flash-message.flash-hiding{opacity:0;transform:translateY(-10px)}.flash-icon{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));flex-shrink:0}.flash-text{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);flex-grow:1}.flash-close{cursor:pointer;padding:calc(var(--spacing)*1);opacity:.7;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));color:inherit;background:0 0;border:none;border-radius:.25rem;flex-shrink:0}.flash-close:hover{opacity:1}.flash-success{border-color:var(--color-green-200);background-color:var(--color-green-50);color:var(--color-green-800)}.flash-success .flash-icon{color:var(--color-green-600)}.flash-info{border-color:var(--color-blue-200);background-color:var(--color-blue-50);color:var(--color-blue-800)}.flash-info .flash-icon{color:var(--color-blue-600)}.flash-warning{border-color:var(--color-yellow-200);background-color:var(--color-yellow-50);color:var(--color-yellow-800)}.flash-warning .flash-icon{color:var(--color-yellow-600)}.flash-danger{border-color:var(--color-red-200);background-color:var(--color-red-50);color:var(--color-red-800)}.flash-danger .flash-icon{color:var(--color-red-600)}.stat-card{border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding:calc(var(--spacing)*4);text-align:center;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;background:linear-gradient(135deg,var(--stat-bg-from,#f8f9fa)0%,var(--stat-bg-to,#f1f3f5)100%);border-width:1px;border-color:var(--stat-border,#dee2e6);transition-duration:.2s;position:relative;overflow:hidden}.stat-card:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transform:translateY(-2px)}.stat-card .stat-icon{top:calc(var(--spacing)*3);right:calc(var(--spacing)*3);opacity:.15;color:var(--stat-accent,#6c757d);font-size:2.5rem;position:absolute}.stat-number{margin-bottom:calc(var(--spacing)*1);font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--stat-number,#212529)}.stat-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--stat-label,#6c757d)}.stat-percentage{margin-top:calc(var(--spacing)*2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));opacity:.75;color:var(--stat-label,#6c757d)}.stat-card-primary{--stat-bg-from:#e7f1ff;--stat-bg-to:#cfe2ff;--stat-border:#9ec5fe;--stat-number:#0a58ca;--stat-label:#084298;--stat-accent:#0d6efd}.stat-card-success{--stat-bg-from:#d1e7dd;--stat-bg-to:#badbcc;--stat-border:#a3cfbb;--stat-number:#146c43;--stat-label:#0f5132;--stat-accent:#198754}.stat-card-info{--stat-bg-from:#cff4fc;--stat-bg-to:#b6effb;--stat-border:#9eeaf9;--stat-number:#087990;--stat-label:#055160;--stat-accent:#0dcaf0}.stat-card-warning{--stat-bg-from:#fff3cd;--stat-bg-to:#ffecb5;--stat-border:#ffe69c;--stat-number:#997404;--stat-label:#664d03;--stat-accent:#ffc107}.stat-card-danger{--stat-bg-from:#f8d7da;--stat-bg-to:#f5c2c7;--stat-border:#f1aeb5;--stat-number:#b02a37;--stat-label:#842029;--stat-accent:#dc3545}.stat-card-secondary{--stat-bg-from:#e2e3e5;--stat-bg-to:#d3d6d8;--stat-border:#c4c8cb;--stat-number:#41464b;--stat-label:#41464b;--stat-accent:#6c757d}.stat-card-dark{--stat-bg-from:#343a40;--stat-bg-to:#212529;--stat-border:#495057;--stat-number:#fff;--stat-label:#adb5bd;--stat-accent:#6c757d}.stat-card-light{--stat-bg-from:#fff;--stat-bg-to:#f8f9fa;--stat-border:#e9ecef;--stat-number:#212529;--stat-label:#6c757d;--stat-accent:#adb5bd}.stat-card-purple{--stat-bg-from:#e2d9f3;--stat-bg-to:#d3c4eb;--stat-border:#c5b3e6;--stat-number:#59359a;--stat-label:#432874;--stat-accent:#6f42c1}.stat-card-teal{--stat-bg-from:#d2f4ea;--stat-bg-to:#c1efe0;--stat-border:#a7e9d4;--stat-number:#13795b;--stat-label:#0d5a44;--stat-accent:#20c997}.card{background-color:#fff;border:1px solid #0000002d;border-radius:.375rem}.card-body{padding:1rem}.btn{text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:.375rem;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:inline-block}.btn-primary{color:#fff;background-color:#0d6efd;border:1px solid #0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;outline:0;box-shadow:0 0 0 .25rem #3184fd80}.btn-primary:active{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-sm{border-radius:.25rem;padding:.25rem .5rem;font-size:.875rem}.stats-grid{gap:calc(var(--spacing)*8);flex-direction:column;display:flex}.stats-list{gap:calc(var(--spacing)*4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:40rem){.stats-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:48rem){.stats-list{grid-template-columns:repeat(6,minmax(0,1fr))}}.quick-links-grid{gap:calc(var(--spacing)*4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:40rem){.quick-links-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:48rem){.quick-links-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.quick-link-card{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);background-color:var(--color-gray-50);padding:calc(var(--spacing)*6);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;flex-direction:column;justify-content:center;align-items:center;text-decoration-line:none;transition-duration:.2s;display:flex}.quick-link-card:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y);transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,);border-color:var(--color-gray-300);background-color:var(--color-gray-100);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.quick-link-card i{margin-bottom:calc(var(--spacing)*2);font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height));color:var(--color-gray-600)}.quick-link-card span{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-gray-700)}.flex-row-wrap{gap:calc(var(--spacing)*8);flex-wrap:wrap;display:flex}.flex-card{flex:1;min-width:300px}.data-table{margin-top:calc(var(--spacing)*2);border-collapse:collapse;width:100%}.data-table th{top:calc(var(--spacing)*0);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-gray-300);background-color:var(--color-gray-200);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);text-align:left;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-gray-700);position:sticky}.data-table td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-gray-300);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2)}.data-table tbody tr:hover{background-color:var(--color-gray-50)}.data-table .cell-label{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-gray-700)}.data-table .cell-value{text-align:center;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.data-table .cell-success{text-align:center;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-success)}.data-table .cell-total{background-color:var(--color-gray-200);text-align:center;--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-primary)}.data-table .row-total{border-top-style:var(--tw-border-style);border-top-width:2px;border-color:var(--color-gray-300);background-color:var(--color-gray-50)}.data-table .row-total td{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.venn-container{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-300);background-color:var(--color-gray-50);min-height:200px;padding:calc(var(--spacing)*5);justify-content:center;align-items:center;display:flex}.is-hidden{display:none}.is-visible{display:block}.loading-state{padding-block:calc(var(--spacing)*10);text-align:center;color:var(--color-gray-600)}.error-state{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-red-300);background-color:var(--color-red-50);padding:calc(var(--spacing)*4);color:var(--color-red-700)}.scroll-x{overflow-x:auto}html{height:100%}body{color:#212529;box-sizing:border-box;flex-direction:column;min-height:100%;margin:0;padding:2em 2em 0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;display:flex}body>:not(.app-footer):not(script){flex-shrink:0}body:after{content:"";flex-grow:1}#filters{margin-bottom:1em}#pagination button{margin:0 2px}table{border-collapse:collapse;background:#fff;width:100%;box-shadow:0 2px 8px #0000000a}th,td{white-space:nowrap;text-overflow:ellipsis;border:1px solid #e0e0e0;padding:.75em 1em;font-size:.88em;overflow:hidden}td a[href]{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:200px;display:inline-block;overflow:hidden}td a[href]:hover{white-space:normal;word-wrap:break-word;z-index:10;background:#fff;border:1px solid #ccc;border-radius:4px;max-width:none;padding:.5em;position:relative;overflow:visible;box-shadow:0 2px 8px #00000026}.table-header-controls{justify-content:flex-end;align-items:center;margin-bottom:.5em;padding:.5em 0;display:flex}.font-resizer{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:.5em;padding:.5em 1em;display:flex;box-shadow:0 1px 3px #0000001a}.font-resizer label{color:#495057;margin:0;font-size:.9em;font-weight:500}.font-resizer button{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2em;font-weight:700;transition:background-color .2s;display:flex}.font-resizer button:hover{background:#0056b3}.font-resizer button:active{background:#004085}.font-resizer button:disabled{cursor:not-allowed;background:#6c757d}.font-resizer input[type=number]{text-align:center;border:1px solid #ced4da;border-radius:4px;width:60px;height:32px;padding:.25em;font-size:.9em}.font-resizer input[type=number]:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 2px #007bff40}.column-toggle-btn{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:4px;justify-content:center;align-items:center;width:40px;height:32px;margin-left:.5em;font-size:1.2em;transition:background-color .2s;display:flex}.column-toggle-btn:hover{background:#0056b3}.column-toggle-btn:active{background:#004085}.font-resizer .export-csv-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#28a745;border:none;border-radius:4px;justify-content:center;align-items:center;gap:6px;width:auto;height:32px;margin-left:.75em;padding:6px 14px;font-size:.85em;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 1px 2px #0000001a}.font-resizer .export-csv-btn:hover{background:#218838;box-shadow:0 2px 4px #00000026}.font-resizer .export-csv-btn:active{background:#1e7e34;box-shadow:0 1px 2px #0000001a}.font-resizer .export-csv-btn:disabled{cursor:not-allowed;box-shadow:none;background:#6c757d}.font-resizer .export-csv-btn i{font-size:1em}.column-dropdown{z-index:1000;background:#fff;border:1px solid #e0e0e0;border-radius:6px;min-width:300px;max-height:400px;margin-top:.5em;padding:1em;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.font-resizer{position:relative}.column-header-container{border-bottom:1px solid #e0e0e0;margin-bottom:.75em;padding-bottom:.75em}.column-header-container h4{color:#495057;margin:0 0 .5em;font-size:1em}.column-select-buttons{gap:1em;display:flex}.font-resizer .column-select-btn{color:#007bff;cursor:pointer;background:0 0;border:none;width:auto;height:auto;padding:0;font-size:.85em;text-decoration:underline;display:inline}.font-resizer .column-select-btn:hover{color:#0056b3;background:0 0}.font-resizer .column-select-btn:active{color:#004085;background:0 0}.column-dropdown h4{color:#495057;border-bottom:1px solid #e0e0e0;margin:0 0 .5em;padding-bottom:.5em;font-size:1em}.column-checkbox-group{margin-bottom:.5em}.column-checkbox-group label{cursor:pointer;color:#495057;align-items:center;gap:.5em;padding:.25em 0;font-size:.9em;display:flex}.column-checkbox-group label:hover{background:#f8f9fa;border-radius:4px;margin:0 -.5em;padding:.25em .5em}.column-checkbox-group input[type=checkbox]{cursor:pointer;margin:0}.column-checkbox-group input[type=checkbox]:checked+span{color:#007bff;font-weight:500}th{text-align:left;z-index:2;background:#f5f7fa;font-weight:600;position:sticky;top:0}tbody tr:nth-child(2n){background:#f9fbfd}tbody tr:nth-child(odd){background:#fff}tbody tr:hover{background:#e6f0fa;transition:background .2s}td:last-child:not(.source-cell),th:last-child:not(.source-header){text-align:right}select{background:#f5f7fa;border:1px solid #ccc;border-radius:4px;padding:.2em .5em}#pagination-controls,#pagination-controls-top{align-items:center;gap:1.5em;margin-top:1em;display:flex}#pagination-controls-top{margin-top:0;margin-bottom:1em}.pagination-controls{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;justify-content:space-between;align-items:center;margin-top:20px;padding:15px;display:flex}.pagination{gap:5px;display:flex}.pagination-btn{color:#495057;cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:8px 12px;transition:all .2s}.pagination-btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.pagination-btn:disabled{color:#6c757d;cursor:not-allowed;background:#f8f9fa}.pagination-btn.active{color:#fff;background:#2196f3;border-color:#2196f3}.pagination-page-input{color:#495057;align-items:center;gap:8px;font-size:14px;display:flex}.pagination-page-input input{text-align:center}.pagination-page-input button:hover{background:#e9ecef;border-color:#adb5bd}.pagination-per-page{align-items:center;gap:8px;display:flex}.pagination-per-page select{border:1px solid #dee2e6;border-radius:4px;padding:6px 10px;font-size:14px}.table-controls{justify-content:flex-end;align-items:center;margin-left:auto;display:flex}.table-controls .table-header-controls{margin:0;padding:0}.table-controls .font-resizer{box-shadow:none;background:0 0;border:none;padding:0}.sort-icon{cursor:pointer;color:#888;-webkit-user-select:none;user-select:none;margin-left:.3em;font-size:.95em}.sort-icon.active{color:#1976d2;font-weight:700}.sort-icon.asc:after{content:"▲";margin-left:.1em}.sort-icon.desc:after{content:"▼";margin-left:.1em}.sort-order-indicator{color:#1976d2;margin-left:.3em;font-size:.98em;font-weight:700}#tree-container ul{border-left:1px solid #e0e0e0;margin-left:1.2em;padding-left:.5em;list-style:none}#tree-container li{margin:.2em 0;font-size:.96em}.tree-toggle{color:#1976d2;margin-right:.2em;font-weight:700}.tree-label{border-radius:3px;padding:2px 4px;transition:background-color .2s;display:inline-block}.tree-label:hover{background-color:#f0f0f0}.entity-prefix{color:#9ca3af;font-weight:500}.entity-count{color:#6b7280;font-size:.9em;font-style:italic}.tree-root{margin:0;padding:0;list-style:none}.tree-children{margin-left:20px}.loading-indicator{color:#666;margin:2px 0;padding:5px 10px;font-style:italic}.tree-node{margin:2px 0}.product-external-link{color:#1976d2;vertical-align:middle;margin-left:8px;font-size:.85em;text-decoration:none}.product-external-link:hover{color:#1565c0}.product-external-link i{vertical-align:middle}.product-url-link{color:#1976d2;word-break:break-all;text-decoration:none}.product-url-link:hover{color:#1565c0;text-decoration:underline}.product-url-link i{margin-left:4px;font-size:.85em}.main-header{box-sizing:border-box;background:#f5f7fa;border-bottom:1px solid #e0e0e0;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:1em;width:calc(100% + 4rem);margin:-2rem -2rem 1.2em;padding:.7em 2rem;display:flex}.logo-container{color:inherit;align-items:center;margin-right:2em;text-decoration:none;display:flex}.logo-container:hover{opacity:.85;text-decoration:none}.glisse-logo{color:#2c3e50;white-space:pre;text-align:left;background:0 0;border:none;margin:0;padding:0;font-family:Courier New,monospace;font-size:.8em;line-height:1.2}.main-header .nav{flex-wrap:wrap;align-items:center;display:flex}.main-header .nav-list{flex-wrap:wrap;gap:.25rem;margin-bottom:0;padding-left:0;list-style:none;display:flex}.main-header .nav-item{align-items:center;display:flex}.main-header .nav-link{color:#0d6efd;background:0 0;border:0;padding:.5rem .75rem;font-size:1rem;font-weight:400;text-decoration:none;transition:color .15s ease-in-out;display:block}.main-header .nav-link:hover,.main-header .nav-link:focus{color:#0a58ca;text-decoration:underline}.main-header .nav-link.active{color:#0d6efd;font-weight:600}.user-dropdown{margin-left:auto;position:relative}.user-dropdown-toggle{cursor:pointer;color:#495057;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:.5em;padding:.4em .8em;font-size:1em;transition:all .15s ease-in-out;display:flex}.user-dropdown-toggle:hover{background:#0000000d;border-color:#dee2e6}.user-dropdown-toggle .bi-person-circle{color:#0d6efd;font-size:1.3em}.user-dropdown-toggle .user-name{font-weight:500}.user-dropdown-toggle .dropdown-chevron{font-size:.75em;transition:transform .2s}.user-dropdown.show .dropdown-chevron{transform:rotate(180deg)}.user-dropdown-menu{z-index:1000;background:#fff;border:1px solid #00000026;border-radius:8px;min-width:200px;margin-top:.5rem;padding:.5rem 0;display:none;position:absolute;top:100%;right:0;box-shadow:0 .5rem 1rem #00000026}.user-dropdown.show .user-dropdown-menu{animation:.15s ease-out dropdownFadeIn;display:block}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.dropdown-avatar{color:#6c757d;font-size:2rem}.dropdown-user-info{flex-direction:column;display:flex}.dropdown-username{color:#212529;font-weight:600}.dropdown-email{color:#6c757d;font-size:.85em}.dropdown-divider{border-top:1px solid #e9ecef;height:0;margin:.5rem 0;overflow:hidden}.dropdown-item{color:#212529;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;font-size:.95em;text-decoration:none;transition:background .15s ease-in-out;display:flex}.dropdown-item:hover{background:#f8f9fa;text-decoration:none}.dropdown-item i{width:1.25em;font-size:1.1em}.dropdown-item-danger{color:#dc3545}.dropdown-item-danger:hover{color:#b02a37;background:#f8d7da}.nav-dropdown{position:relative}.nav-dropdown-toggle{cursor:pointer;color:#495057;background:0 0;border:none;border-radius:4px;align-items:center;gap:.35em;padding:.5em .75em;font-size:.95em;font-weight:500;transition:all .15s ease-in-out;display:flex}.nav-dropdown-toggle:hover{color:#0d6efd;background:#0d6efd14}.nav-dropdown-toggle.active{color:#0d6efd}.nav-dropdown-toggle .dropdown-chevron{font-size:.7em;transition:transform .2s}.nav-dropdown.show .nav-dropdown-toggle .dropdown-chevron{transform:rotate(180deg)}.nav-dropdown-menu{z-index:1000;background:#fff;border:1px solid #00000026;border-radius:8px;min-width:180px;margin-top:.25rem;padding:.5rem 0;display:none;position:absolute;top:100%;left:0;box-shadow:0 .5rem 1rem #00000026}.nav-dropdown.show .nav-dropdown-menu{animation:.15s ease-out dropdownFadeIn;display:block}.nav-dropdown-item{color:#495057;align-items:center;gap:.6rem;padding:.5rem 1rem;font-size:.9em;text-decoration:none;transition:all .15s ease-in-out;display:flex}.nav-dropdown-item:hover{color:#0d6efd;background:#f8f9fa;text-decoration:none}.nav-dropdown-item.active{color:#0d6efd;background:#0d6efd1a}.nav-dropdown-item i{text-align:center;width:1.25em;font-size:1em}.database-selector{align-items:center;gap:8px;font-size:14px;display:flex}.database-selector label{color:#495057;font-weight:500}.database-selector select{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:4px 8px;font-size:14px}.database-selector select:hover{border-color:#adb5bd}.database-selector select:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 2px #007bff40}.db-info-icon{color:#fff;cursor:pointer;background-color:#007bff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-left:8px;font-size:12px;font-weight:700;line-height:1;transition:background-color .2s;display:inline-flex}.db-info-icon:hover{background-color:#0056b3}.db-info-modal{z-index:10000;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.db-info-content{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:80vh;padding:24px;overflow-y:auto;box-shadow:0 4px 20px #00000026}.db-info-header{border-bottom:1px solid #e9ecef;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.db-info-title{color:#212529;margin:0;font-size:18px;font-weight:600}.db-info-close{cursor:pointer;color:#6c757d;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:24px;transition:background-color .2s;display:flex}.db-info-close:hover{color:#495057;background-color:#f8f9fa}.db-info-section{margin-bottom:16px}.db-info-label{color:#495057;margin-bottom:4px;font-weight:600;display:block}.db-info-value{color:#212529;word-break:break-all;background:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;margin-bottom:8px;padding:8px 12px;font-family:Courier New,monospace}.db-info-engine{color:#007bff;background:#e3f2fd;border-left:4px solid #007bff;border-radius:4px;margin-bottom:16px;padding:8px 12px;font-size:16px;font-weight:600}.db-table{border-collapse:collapse;background:#fff;width:100%;margin-top:10px}.db-table-container{max-width:100%;overflow-x:auto}.db-table th,.db-table td{text-align:left;vertical-align:top;white-space:nowrap;border:1px solid #ddd;padding:8px 12px}.db-table th{z-index:10;background:#f8f9fa;font-weight:600;position:sticky;top:0}.shortened{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fk-header .fk-icon{color:#007bff;cursor:help;margin-left:4px;font-size:12px}.fk-cell{cursor:pointer;color:#007bff}.fk-cell:hover{background-color:#f8f9fa;text-decoration:underline}.fk-cell:before,.fk-cell:after{content:none!important}.fk-cell{position:relative}.fk-cell:before,.fk-cell:after{content:none!important;display:none!important}.url-icon{color:#007bff;cursor:pointer;margin-left:4px;font-size:14px;font-weight:700}.url-icon:hover{color:#0056b3;transform:scale(1.1)}.db-table th,.db-table td{font-family:inherit!important}.datetime-cell{font-family:inherit}#tree-layout{flex-direction:row;align-items:flex-start;gap:2.5em;display:flex}#tree-container{flex:60%;min-width:320px}#trip-details,#product-details{background:#f9fbfd;border:1px solid #e0e0e0;border-radius:6px;flex:35%;align-self:flex-start;min-width:260px;max-height:calc(100vh - 40px);padding:1.2em 1.5em;position:sticky;top:20px;overflow-y:auto;box-shadow:0 2px 8px #00000008}#trip-details table,#product-details table{border-collapse:collapse;width:100%;margin-top:.5em}#trip-details th,#trip-details td,#product-details th,#product-details td{text-align:left;border-bottom:1px solid #e0e0e0;padding:.3em .6em;font-size:.97em}#trip-details th,#product-details th{background:#f5f7fa;width:40%;font-weight:600}.selected-trip{background:#e3f2fd;border:1px solid #90caf9;border-radius:4px}#product-details h2{color:#212529;margin-bottom:.75em;font-size:1.25em;font-weight:700}#product-details h3{color:#333;border-bottom:1px solid #e0e0e0;margin-top:1.5em;margin-bottom:.5em;padding-bottom:.3em;font-size:1.1em;font-weight:600}#product-details .observations-table{border-collapse:collapse;width:100%;margin-top:.5em;font-size:.9em}#product-details .observations-table thead th{text-align:left;background:#e8f4fc;border-bottom:2px solid #b8d4e8;width:auto;padding:.5em .6em;font-weight:600}#product-details .observations-table tbody td{border-bottom:1px solid #e0e0e0;padding:.4em .6em}#product-details .observations-table tbody tr:hover{background:#f5f9fc}#product-details .error{color:#d32f2f;font-style:italic}.collect-toggle-section{background:#f5f7fa;border:1px solid #e0e0e0;border-radius:6px;margin:1.2em 0;padding:.8em 1em}.collect-toggle-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;display:flex;position:relative}.collect-toggle-label input[type=checkbox]{display:none}.collect-toggle-slider{background:#ccc;border-radius:24px;flex-shrink:0;width:44px;height:24px;transition:background .25s;position:relative}.collect-toggle-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .25s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.collect-toggle-label input[type=checkbox]:checked+.collect-toggle-slider{background:#4caf50}.collect-toggle-label input[type=checkbox]:checked+.collect-toggle-slider:before{transform:translate(20px)}.collect-toggle-text{color:#333;font-size:.95em}.collect-toggle-label.loading{opacity:.6;pointer-events:none}.collect-toggle-label.loading .collect-toggle-slider:after{content:"";border:2px solid #0000;border-top-color:#fff;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite toggle-spin;position:absolute;top:6px;left:16px}@keyframes toggle-spin{to{transform:rotate(360deg)}}#filter-builder{background:#f5f7fa;border:1px solid #e0e0e0;border-radius:6px;flex-direction:column;gap:.7em;margin-bottom:1.2em;padding:.7em 1em;display:flex}.filter-chain{flex-wrap:wrap;align-items:center;gap:1em;display:flex}.filter-item{background:#fff;border:1px solid #e0e0e0;border-radius:4px;align-items:center;gap:.3em;padding:.3em .7em;display:flex}.filter-item select,.filter-item input{border:1px solid #ccc;border-radius:3px;margin-left:.2em;padding:.1em .4em}.filter-item button{color:#d32f2f;cursor:pointer;background:0 0;border:none;margin-left:.3em;font-size:1.1em}.filter-item button.move{color:#1976d2;margin-left:.1em;font-size:1em}#add-filter-select{border:1px solid #ccc;border-radius:3px;min-width:140px;padding:.2em .5em}#sort-builder{background:#f5f7fa;border:1px solid #e0e0e0;border-radius:6px;flex-direction:column;gap:.7em;margin-bottom:1.2em;padding:.7em 1em;display:flex}.sort-chain{flex-wrap:wrap;align-items:center;gap:1em;display:flex}.sort-item{background:#fff;border:1px solid #e0e0e0;border-radius:4px;align-items:center;gap:.3em;padding:.3em .7em;display:flex}.sort-item select{border:1px solid #ccc;border-radius:3px;margin-left:.2em;padding:.1em .4em}.sort-item button{color:#d32f2f;cursor:pointer;background:0 0;border:none;margin-left:.3em;font-size:1.1em}.sort-item button.move{color:#1976d2;margin-left:.1em;font-size:1em}#add-sort-select{border:1px solid #ccc;border-radius:3px;min-width:140px;padding:.2em .5em}.sort-dir-toggle{cursor:pointer;color:#1976d2;background:0 0;border:none;margin-left:.2em;font-size:1.05em;font-weight:700}#filter-sort-row{flex-direction:row;gap:2.5em;margin-bottom:1.2em;display:flex}#filter-block,#sort-block,#column-block{box-sizing:border-box;background:#f5f7fa;border:1px solid #e0e0e0;border-radius:6px;flex:33%;min-width:220px;padding:1em 1.2em 1.2em}#column-builder{flex-direction:column;gap:.6em;transition:max-height .3s,opacity .3s;display:flex;overflow:hidden}.column-item{background:#fff;border:1px solid #e0e0e0;border-radius:4px;align-items:center;gap:.5em;padding:.3em .7em;display:flex}.column-item label{flex:auto;font-size:1em}.column-item button.move{color:#1976d2;cursor:pointer;background:0 0;border:none;margin-left:.1em;font-size:1em}.block-header{color:#1976d2;letter-spacing:.01em;margin-bottom:.7em;font-size:1.02em;font-weight:600}.filter-chain,.sort-chain{flex-direction:column;align-items:flex-start;gap:.7em;display:flex}.add-btn{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:50%;justify-content:center;align-items:center;width:2em;height:2em;margin-top:.7em;font-size:1.2em;transition:background .15s;display:flex;box-shadow:0 1px 4px #1976d214}.add-btn:hover{background:#0d47a1}.modal{z-index:1000;background:#0000002e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.add-list{background:#fff;border-radius:8px;min-width:220px;margin:0;padding:1.2em 1.5em;list-style:none;box-shadow:0 2px 16px #00000021}.add-list li{cursor:pointer;border-bottom:1px solid #e0e0e0;padding:.5em .2em;font-size:1.02em;transition:background .13s}.add-list li:last-child{border-bottom:none}.add-list li:hover{color:#1976d2;background:#e3f2fd}.filter-dropdown{background:#fff;border:1px solid #ccc;border-radius:4px;min-width:150px;box-shadow:0 2px 8px #00000026}.filter-dropdown-list{margin:0;padding:0;list-style:none}.filter-dropdown-list li{cursor:pointer;border-bottom:1px solid #f0f0f0;padding:8px 12px;font-size:14px;transition:background-color .2s}.filter-dropdown-list li:last-child{border-bottom:none}.filter-dropdown-list li:hover{color:#007bff;background:#f8f9fa}.sort-dropdown{background:#fff;border:1px solid #ccc;border-radius:4px;min-width:150px;box-shadow:0 2px 8px #00000026}.sort-dropdown-list{margin:0;padding:0;list-style:none}.sort-dropdown-list li{cursor:pointer;border-bottom:1px solid #f0f0f0;padding:8px 12px;font-size:14px;transition:background-color .2s}.sort-dropdown-list li:last-child{border-bottom:none}.sort-dropdown-list li:hover{color:#007bff;background:#f8f9fa}.filter-table{border-collapse:collapse;table-layout:fixed;background:#fff;border:1px solid #e0e0e0;border-radius:4px;width:100%;margin-bottom:15px;overflow:hidden}.filter-table th{text-align:left;color:#495057;background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:12px 8px;font-weight:600;display:table-cell}.filter-table tr{display:table-row}.filter-table thead,.filter-table tbody{display:table-header-group}.filter-table tbody{display:table-row-group}.filter-table th:first-child,.filter-table td:first-child{width:28%}.filter-table th:nth-child(2),.filter-table td:nth-child(2){width:22%}.filter-table th:nth-child(3),.filter-table td:nth-child(3){width:35%}.filter-table th:nth-child(4),.filter-table td:nth-child(4){text-align:center;width:15%}.filter-table td{vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:8px;display:table-cell}.filter-table tr:last-child td{border-bottom:none}.filter-table tr:hover{background:#f8f9fa}.filter-field-select,.filter-operation-select{background:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px 8px;font-size:14px}.filter-field-select:focus,.filter-operation-select:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 2px #007bff40}.filter-value-container{align-items:center;gap:8px;display:flex}.filter-value-input{border:1px solid #ddd;border-radius:4px;flex:1;padding:6px 8px;font-size:14px}.filter-value-input:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 2px #007bff40}.filter-value-placeholder,.filter-value-info{color:#6c757d;font-size:13px;font-style:italic}.filter-actions{align-items:center;gap:4px;display:flex}.remove-filter-btn,.move-filter-btn{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:3px;padding:4px 8px;font-size:12px;transition:all .2s}.remove-filter-btn:hover{color:#fff;background:#dc3545;border-color:#dc3545}.move-filter-btn:hover{color:#fff;background:#007bff;border-color:#007bff}.add-filter-btn{color:#fff;cursor:pointer;background:#28a745;border:none;border-radius:4px;width:fit-content;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.add-filter-btn:hover{background:#218838}.sort-table{border-collapse:collapse;table-layout:fixed;background:#fff;border:1px solid #e0e0e0;border-radius:4px;width:100%;margin-bottom:15px;overflow:hidden}.sort-table th{text-align:left;color:#495057;background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:12px 8px;font-weight:600;display:table-cell}.sort-table tr{display:table-row}.sort-table thead,.sort-table tbody{display:table-header-group}.sort-table tbody{display:table-row-group}.sort-table th:first-child,.sort-table td:first-child{width:45%}.sort-table th:nth-child(2),.sort-table td:nth-child(2){width:35%}.sort-table th:nth-child(3),.sort-table td:nth-child(3){text-align:center;width:20%}.sort-table td{vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:8px;display:table-cell}.sort-table tr:last-child td{border-bottom:none}.sort-table tr:hover{background:#f8f9fa}.sort-field-select,.sort-direction-select{background:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px 8px;font-size:14px}.sort-field-select:focus,.sort-direction-select:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 2px #007bff40}.sort-actions{align-items:center;gap:4px;display:flex}.remove-sort-btn,.move-sort-btn{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:3px;padding:4px 8px;font-size:12px;transition:all .2s}.remove-sort-btn:hover{color:#fff;background:#dc3545;border-color:#dc3545}.move-sort-btn:hover{color:#fff;background:#007bff;border-color:#007bff}.add-sort-btn{color:#fff;cursor:pointer;background:#28a745;border:none;border-radius:4px;width:fit-content;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.add-sort-btn:hover{background:#218838}.custom-multiselect{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;min-width:7em;padding:.2em .5em;font-size:1em;position:relative}.custom-multiselect .selected-values{flex-wrap:wrap;gap:.2em;min-height:1.5em;display:flex}.custom-multiselect .dropdown{z-index:10;background:#fff;border:1px solid #ccc;border-radius:0 0 4px 4px;min-width:100%;max-height:220px;margin-top:2px;padding:.3em .2em;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 2px 8px #00000014}.custom-multiselect .dropdown label{cursor:pointer;align-items:center;gap:.5em;padding:.2em .5em;font-size:.98em;display:flex}.custom-multiselect .dropdown label:hover{background:#e3f2fd}.custom-multiselect .dropdown input[type=checkbox]{margin-right:.3em}.custom-multiselect .dropdown{box-sizing:border-box}.heatmap-cell-available{color:#fff!important;text-align:center!important;background:#4caf50!important;font-weight:700!important}.heatmap-controls{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:15px;margin-bottom:20px;padding:15px;display:flex}.heatmap-controls label{color:#333;font-weight:600}.heatmap-controls select{background:#fff;border:1px solid #ccc;border-radius:4px;min-width:150px;padding:8px 12px;font-size:14px}.heatmap-controls select:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 2px #007bff40}.heatmap-controls .toggle-label{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #ccc;border-radius:4px;align-items:center;gap:8px;margin-left:20px;padding:6px 12px;display:flex}.heatmap-controls .toggle-label:hover{background:#f0f0f0}.heatmap-controls .toggle-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.heatmap-controls .toggle-label span{font-weight:400}.heatmap-cell-count{font-size:12px}.heatmap-table{border-collapse:collapse;background:#fff;width:auto;margin-top:20px}.heatmap-table th,.heatmap-table td{text-align:center;vertical-align:middle;border:1px solid #ddd;padding:8px}.heatmap-table th.entity-column,.heatmap-table td.entity-column{text-align:left;white-space:nowrap;background:#f8f9fa;width:auto;padding:8px 12px;font-size:14px;font-weight:600}.heatmap-table th.source-header,.heatmap-table td.source-cell{text-align:center;width:45px;min-width:45px;max-width:45px}.heatmap-table th.source-header{vertical-align:bottom;background:#f8f9fa;width:45px;min-width:45px;max-width:45px;height:120px;padding:0;position:relative;overflow:visible}.vertical-text{transform-origin:0 100%;color:#333;white-space:nowrap;margin-left:8px;font-size:14px;font-weight:600;position:absolute;bottom:12px;left:50%;transform:rotate(-90deg)}.heatmap-table tbody tr:hover{background:#f5f5f5}.heatmap-table tbody tr.heatmap-row-full-coverage,.heatmap-table tbody tr.heatmap-row-full-coverage:hover{background:#90ee90!important}.group-header-row{background:linear-gradient(90deg,#1e3a8a 0%,#3b82f6 50%,#60a5fa 100%);border-bottom:3px solid #1e40af}.group-header{color:#fff;text-shadow:0 1px 2px #0000004d;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(135deg,#1e40af 0%,#3b82f6 100%);border-right:2px solid #ffffff4d;height:40px;padding:8px 10px;font-weight:700;line-height:24px;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff3;text-align:left!important}.group-header:last-child{border-right:none}.group-header:first-child{background:linear-gradient(135deg,#1e3a8a 0%,#1e40af 100%)}.group-header:nth-child(2){background:linear-gradient(135deg,#1e40af 0%,#2563eb 100%)}.group-header:nth-child(3){background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%)}.group-header:nth-child(4){background:linear-gradient(135deg,#3b82f6 0%,#60a5fa 100%)}.group-header:nth-child(5){background:linear-gradient(135deg,#60a5fa 0%,#93c5fd 100%)}.group-header:nth-child(6){background:linear-gradient(135deg,#93c5fd 0%,#bfdbfe 100%)}.group-toggle-btn{cursor:pointer;color:#fff;text-shadow:0 1px 1px #0000004d;background:#fff3;border:1px solid #ffffff4d;border-radius:4px;margin-right:6px;padding:3px 6px;font-size:11px;font-weight:700;transition:all .3s}.group-toggle-btn:hover{background:#fff6;border-color:#fff9;transform:scale(1.05);box-shadow:0 2px 4px #0003}.group-toggle-btn:active{background:#fff9;transform:scale(.95)}.group-header-row{z-index:10;position:sticky;top:0}.group-header-row+tr{z-index:9;position:sticky;top:40px}.group-header-row+tr th[style*="position: sticky"]{background:#f7fafc!important;border-right:2px solid #d1d5db!important}.group-header[style*="position: sticky"]{background:inherit!important}.group-header-row+tr th{background:#f7fafc;border-top:2px solid #4a5568}.sticky-primary{z-index:5;border-right:2px solid #e5e7eb;box-shadow:2px 0 4px #0000001a;background:#fff!important;position:sticky!important}.table-container{border:1px solid #e0e0e0;border-radius:4px;width:calc(100vw - 4em);margin-bottom:1em;margin-left:calc(50% - 50vw + 2em);overflow-x:auto;box-shadow:0 2px 8px #0000001a}#trips-table{width:auto;min-width:100%;margin:0}.table-container::-webkit-scrollbar{height:12px}.table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:6px}.table-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:6px}.table-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.filter-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:5px;flex-wrap:wrap;align-items:center;gap:20px;margin:20px 0;padding:15px;display:flex}.filter-group{flex-direction:column;gap:5px;min-width:200px;display:flex}.filter-group label{color:#495057;font-size:14px;font-weight:700}.filter-section select{background:#fff;border:1px solid #ced4da;border-radius:4px;min-width:150px;padding:8px 12px;font-size:14px}.filter-buttons{align-items:flex-end;gap:10px;display:flex}.filter-section button{color:#fff;cursor:pointer;background:#007bff;border:1px solid #007bff;border-radius:4px;padding:8px 16px;font-size:14px;transition:background-color .2s}.filter-section button:hover{background:#0056b3}.filter-section button#clear-filter{background:#6c757d;border-color:#6c757d}.filter-section button#clear-filter:hover{background:#545b62}.matching-summary{color:#1976d2;background:#e3f2fd;border:1px solid #bbdefb;border-radius:4px;margin:15px 0;padding:10px;font-weight:500}.matching-summary p{margin:0}.loading,.error,.no-data{text-align:center;color:#666;padding:20px;font-size:16px}.no-data{color:#666;font-style:italic}.matches-list{flex-direction:column;gap:5px;display:flex}.match-item{background:#f8f9fa;border-left:3px solid #dee2e6;border-radius:4px;align-items:center;gap:10px;padding:5px 8px;font-size:12px;display:flex}.match-source{color:#495057;min-width:80px;font-weight:700}.match-confidence{color:#007bff;min-width:50px;font-weight:700}.match-status{text-transform:uppercase;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:700}.status-confirmed{color:#155724;background:#d4edda}.status-rejected{color:#721c24;background:#f8d7da}.status-pending{color:#856404;background:#fff3cd}.match-algorithm{color:#6c757d;font-size:11px;font-style:italic}.no-matches{color:#6c757d;font-style:italic}.match-matched-value{color:#333;opacity:.85;margin-left:6px;margin-right:6px;font-style:italic}#trips-table tbody td.sticky-primary{background:#f9fafb!important}#trips-table tbody tr:nth-child(2n) td.sticky-primary{background:#f3f4f6!important}#trips-table tbody td.sticky-primary{border-right:2px solid #d1d5db}.primary-column{background:#e3f2fd!important}.primary-column-alt{background:#bbdefb!important}#trips-table tbody td.primary-column{background:#e3f2fd!important}#trips-table tbody td.primary-column-alt{background:#bbdefb!important}#trips-table tbody tr:nth-child(2n) td.primary-column{background:#e3f2fd!important}#trips-table tbody tr:nth-child(2n) td.primary-column-alt{background:#bbdefb!important}.text-right{text-align:right!important}.width-5em{width:5em!important}.width-3em{width:3em!important}.margin-left-07em{margin-left:.7em!important}.margin-0-4px{margin:0 4px!important}.display-none{display:none!important}.display-block{display:block!important}.cursor-pointer{cursor:pointer!important}.width-100{width:100%!important}.sticky-group-header{z-index:15!important;position:sticky!important}.sticky-column-header{z-index:12!important;border-right:2px solid #d1d5db!important;position:sticky!important}.sticky-data-cell{z-index:5!important;position:sticky!important}.primary-header-light{background:#e3f2fd!important}.primary-header-dark{background:#bbdefb!important}.matching2-table{border-collapse:collapse;background:#fff;width:100%;margin-top:15px;box-shadow:0 2px 4px #0000001a}.matching2-table th,.matching2-table td{text-align:left;border-bottom:1px solid #e0e0e0;padding:12px 8px}.matching2-table th{color:#333;z-index:10;background:#f5f5f5;font-weight:600;position:sticky;top:0}.matching2-table tbody tr:hover{background:#f8f9fa}.matching2-table tbody tr{cursor:pointer;transition:background-color .2s}.matching2-table tbody tr:active{background:#e9ecef}.match-row{transition:background-color .2s}.matching2-table tbody tr.match-row.status-confirmed,.matching2-table tbody tr:nth-child(2n).match-row.status-confirmed,.matching2-table tbody tr:nth-child(odd).match-row.status-confirmed{background-color:#d4edda!important;border-left:4px solid #28a745!important}.match-row.status-pending{border-left:4px solid #ffc107}.matching2-table tbody tr.match-row.status-rejected,.matching2-table tbody tr:nth-child(2n).match-row.status-rejected,.matching2-table tbody tr:nth-child(odd).match-row.status-rejected{background-color:#f8d7da!important;border-left:4px solid #dc3545!important}.match-row.status-manual_review{border-left:4px solid #17a2b8}.match-row.status-update-success{animation:2s ease-in-out statusUpdateSuccess}.match-row.status-update-reject{animation:2s ease-in-out statusUpdateReject}@keyframes statusUpdateSuccess{0%,to{background-color:#d4edda}50%{background-color:#c3e6cb}}@keyframes statusUpdateReject{0%,to{background-color:#f8d7da}50%{background-color:#f5c6cb}}.entity-type-badge{text-transform:uppercase;color:#fff;border-radius:12px;padding:4px 8px;font-size:11px;font-weight:700}.entity-type-badge.product{background:#007bff}.entity-type-badge.variant{background:#6f42c1}.entity-type-badge.trip{background:#fd7e14}.entity-type-badge.country{background:#28a745}.entity-type-badge.region{background:#20c997}.entity-type-badge.destination{background:#17a2b8}.source-entity,.target-entity{max-width:300px}.entity-name{color:#212529;border-bottom:1px solid #e9ecef;margin-bottom:4px;padding-bottom:2px;font-size:14px;font-weight:700;line-height:1.2;position:relative}.matching2-table td{vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;padding:8px 6px;overflow:hidden}.matching2-table .entity-comparison{max-width:300px}.matching2-table .source-entity,.matching2-table .target-entity{margin-bottom:8px}.matching2-table .source-entity:last-child,.matching2-table .target-entity:last-child{margin-bottom:0}.matching2-table .entity-name{border-bottom:none;margin-bottom:0;padding-bottom:0;font-size:13px}.entity-name{color:#212529;border-bottom:1px solid #e9ecef;margin-bottom:4px;padding-bottom:2px;font-size:14px;font-weight:700;position:relative}.entity-id{color:#495057;margin-bottom:2px;font-size:11px;font-weight:700}.entity-table{color:#6c757d;margin-bottom:4px;font-size:11px}.entity-details{color:#333;font-size:11px;line-height:1.3}.confidence-bar{background:#e9ecef;border-radius:10px;width:100px;height:20px;position:relative;overflow:hidden}.confidence-fill{background:linear-gradient(90deg,#dc3545 0%,#ffc107 50%,#28a745 100%);height:100%;transition:width .3s}.confidence-fill.exact-match{background:#28a745}.confidence-text{color:#333;text-shadow:0 0 2px #fffc;font-size:11px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.status-badge{text-transform:uppercase;border-radius:12px;padding:4px 8px;font-size:11px;font-weight:700}.status-badge.confirmed{color:#155724;background:#d4edda}.status-badge.pending{color:#856404;background:#fff3cd}.status-badge.rejected{color:#721c24;background:#f8d7da}.status-badge.manual_review{color:#0c5460;background:#d1ecf1}.summary-stats{flex-wrap:wrap;gap:20px;display:flex}.stat-item{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:8px 12px;font-size:14px}.stat-item strong{color:#007bff}.match-details-expansion{background:#f8f9fa;border-left:4px solid #007bff}.match-details-expansion td{border-top:none;border-bottom:1px solid #dee2e6;padding:20px}.expansion-content{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:100%;display:grid}.match-row.expanded{background:#e3f2fd;border-left:4px solid #007bff}.match-row.expanded td{border-bottom:none}.expand-indicator{color:#007bff;margin-right:8px;font-size:12px;transition:transform .3s;display:inline-block}.match-row.expanded .expand-indicator{transform:rotate(90deg)}.detail-section{margin-bottom:20px}.detail-section:last-child{margin-bottom:0}.detail-section h4{color:#495057;border-bottom:1px solid #e9ecef;margin:0 0 10px;padding-bottom:5px;font-size:14px}.detail-item{margin-bottom:8px;font-size:13px;line-height:1.4}.detail-item:last-child{margin-bottom:0}.detail-item strong{color:#495057;margin-right:5px}.action-buttons{justify-content:center;align-items:center;gap:8px;display:flex}.action-btn{cursor:pointer;background:0 0;border:2px solid #dee2e6;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:16px;transition:all .2s;display:flex}.action-btn:hover{transform:scale(1.1);box-shadow:0 2px 4px #0000001a}.approve-btn{color:#fff;background:#28a745;border-color:#28a745}.approve-btn:hover{background:#218838;border-color:#218838}.reject-btn{color:#fff;background:#dc3545;border-color:#dc3545}.reject-btn:hover{background:#c82333;border-color:#c82333}.matching2-table th:last-child,.matching2-table td:last-child{text-align:center;width:100px}.source-tag{color:#fff;text-transform:uppercase;letter-spacing:.375px;background:#6c757d;border-radius:7.5px;padding:1.5px 4.5px;font-size:7.5px;font-weight:700;position:absolute;top:0;right:0}.source-tag.source-chalet{background:#007bff}.source-tag.source-sunweb{background:#28a745}.source-tag.source-summittravel{background:#fd7e14}.pk-indicator{color:#fff;background:#dc3545;border-radius:3px;margin-right:4px;padding:2px 6px;font-size:10px;font-weight:700}.fk-indicator{color:#fff;background:#007bff;border-radius:3px;margin-right:4px;padding:2px 6px;font-size:10px;font-weight:700}.unique-indicator{color:#fff;background:#ff9800;border-radius:3px;margin-right:4px;padding:2px 6px;font-size:10px;font-weight:700}.idx-indicator{color:#fff;background:#6c757d;border-radius:3px;margin-right:4px;padding:2px 6px;font-size:10px;font-weight:700}.constraint-indicator{color:#fff;background:#17a2b8;border-radius:3px;margin-right:4px;padding:2px 6px;font-size:10px;font-weight:700}.app-footer{color:#6c757d;box-sizing:border-box;text-align:left;background:#f8f9fa;border-top:1px solid #dee2e6;flex-shrink:0;order:9999;width:calc(100% + 4rem);margin:2rem -2rem 0;padding:.75rem 2rem;font-size:.85rem}.footer-line{line-height:1.5}.footer-line-1 .app-name{color:#495057;font-weight:600}.footer-line-1 .app-version{color:#495057}.footer-line-1 .version-date{color:#6c757d}.footer-line-2{color:#6c757d;font-size:.8rem}.db-container{height:calc(100vh - 120px);margin:0;padding:0 20px 20px;display:flex}.sidebar{background:#f8f9fa;border-right:1px solid #dee2e6;flex-direction:column;width:280px;display:flex;overflow-y:auto}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.table-list{flex:1;padding:20px}.table-list h2{color:#495057;margin:0 0 15px;font-size:18px;font-weight:600}.table-order-controls{background:#fff;border:1px solid #dee2e6;border-radius:6px;margin-bottom:15px;padding:12px;box-shadow:0 1px 3px #0000001a}.table-order-controls label{cursor:pointer;color:#495057;margin:6px 0;font-size:14px;display:block}.table-order-controls input[type=radio]{margin-right:8px}.table-item{cursor:pointer;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:6px;margin:3px 0;padding:10px 12px;font-size:14px;transition:all .2s}.table-item:hover{background:#e3f2fd;border-color:#2196f3;transform:translate(2px)}.table-item.active{color:#fff;background:#2196f3;border-color:#1976d2;box-shadow:0 2px 4px #2196f34d}.table-content{flex:1;padding:20px;overflow:auto}.table-header{border-bottom:2px solid #e9ecef;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;display:flex}.table-title{color:#212529;font-size:24px;font-weight:600}.table-stats{color:#6c757d;background:#f8f9fa;border-radius:20px;padding:6px 12px;font-size:14px}.table-tabs{border-bottom:1px solid #dee2e6;margin-bottom:20px;display:flex}.table-tab{cursor:pointer;color:#495057;background:#f8f9fa;border:1px solid #dee2e6;border-bottom:none;padding:12px 24px;font-weight:500;transition:all .2s}.table-tab:first-child{border-top-left-radius:6px}.table-tab:last-child{border-top-right-radius:6px}.table-tab:hover{background:#e9ecef}.table-tab.active{color:#2196f3;background:#fff;border-color:#2196f3 #2196f3 #fff;border-bottom-style:solid;border-bottom-width:2px;margin-bottom:-1px}.db-table-container{-webkit-overflow-scrolling:touch;border:1px solid #dee2e6;border-radius:6px;max-height:calc(100vh - 200px);position:relative;overflow:auto;box-shadow:0 2px 4px #0000001a}.db-table{border-collapse:collapse;background:#fff;width:100%}.db-table th{text-align:left;color:#495057;z-index:10;vertical-align:top;-webkit-backdrop-filter:blur(8px);background:#f8f9fa;border-bottom:2px solid #dee2e6;padding:12px 8px 8px;font-weight:600;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.db-table th:hover{background:#e9ecef;transition:background-color .2s}.db-table td{vertical-align:top;border-bottom:1px solid #dee2e6;padding:10px 8px}.db-table tr:hover{background:#f8f9fa}.db-table tbody tr{cursor:pointer;transition:background-color .2s}.db-table tbody tr:nth-child(2n){background:#f8f9fa}.db-table tbody tr:nth-child(odd){background:#fff}.db-table tbody tr:hover{background:#e3f2fd!important}.db-table thead{z-index:10;position:sticky;top:0}.db-table thead th{background:#f8f9fa;border-bottom:2px solid #dee2e6;box-shadow:0 2px 4px #0000001a}.db-table th,.db-table td{transform:translateZ(0)}.fk-header{color:#28a745}.fk-icon{margin-left:4px;font-size:12px}.url-cell{justify-content:space-between;align-items:center;max-width:300px;display:flex}.url-text{text-overflow:ellipsis;white-space:nowrap;color:#333;flex:1;overflow:hidden}.db-page .url-icon{cursor:pointer;color:#6c757d;border-radius:3px;margin-left:8px;padding:2px;font-size:14px;transition:background-color .2s}.db-page .url-icon:hover{color:#2196f3;background:#e9ecef}.datetime-cell{white-space:nowrap;font-family:monospace}.column-header{z-index:1;justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative}.column-name{flex:1;min-width:0}.sort-btn{cursor:pointer;color:#6c757d;-webkit-user-select:none;user-select:none;pointer-events:auto;z-index:5;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:4px 6px;font-size:12px;transition:all .2s;display:flex}.sort-btn:hover{color:#495057;background:#e9ecef;transform:scale(1.05)}.sort-btn.active{color:#fff;background:#2196f3}.sort-btn.active:hover{background:#1976d2}.sort-btn:focus{outline-offset:2px;outline:2px solid #2196f3}.db-page .sort-icon{font-weight:700;line-height:1}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal-content{text-align:left;background:#fff;border-radius:8px;flex-direction:column;width:800px;max-width:90vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 4px 20px #0000004d}.modal-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{color:#495057;margin:0;font-size:18px;font-weight:600}.modal-close{cursor:pointer;color:#6c757d;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:4px;font-size:24px;transition:all .2s;display:flex}.modal-close:hover{color:#495057;background:#e9ecef}.modal-body{flex:1;max-height:calc(90vh - 80px);padding:0;overflow-y:auto}.record-detail-table{border-collapse:collapse;text-align:left;width:100%;font-family:inherit;font-size:13px}.record-detail-table th{color:#495057;vertical-align:top;background:#f8f9fa;border-bottom:1px solid #dee2e6;width:180px;padding:8px 12px;font-weight:600;text-align:left!important}.record-detail-table td{vertical-align:top;word-break:break-word;border-bottom:1px solid #dee2e6;max-width:400px;padding:8px 12px;text-align:left!important}.record-detail-table tr:hover{background:#f8f9fa}.record-detail-table tr:last-child td,.record-detail-table tr:last-child th{border-bottom:none}.record-value.null{color:#6c757d;font-style:italic}.record-value.url{color:#2196f3;cursor:pointer;text-decoration:underline}.record-value.url:hover{color:#1976d2}.record-value.fk{color:#28a745;cursor:pointer}.record-value.fk:hover{color:#1e7e34}.no-table-selected{text-align:center;color:#6c757d;padding:60px 20px;font-style:italic}.no-table-selected h3{color:#495057;margin-bottom:10px}.schema-table{border-collapse:collapse;background:#fff;width:100%;box-shadow:0 2px 4px #0000001a}.schema-table th{text-align:left;color:#495057;background:#f8f9fa;border-bottom:2px solid #dee2e6;padding:12px 8px;font-weight:600}.schema-table td{vertical-align:top;border-bottom:1px solid #dee2e6;padding:10px 8px}.schema-table tr:hover{background:#f8f9fa}.column-type{background:#e9ecef;border-radius:4px;padding:4px 8px;font-family:monospace;font-size:12px}.column-constraints{color:#6c757d;font-size:12px}.db-page .pk-indicator{color:#fff;background:#2196f3;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:700}.db-page .fk-indicator{color:#fff;background:#28a745;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:700}.db-page .unique-indicator{color:#fff;background:#ff9800;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:700}.db-page .idx-indicator,.db-page .constraint-indicator{color:#fff;background:#6c757d;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:700}.constraint-ref{color:#fff;background:#17a2b8;border-radius:3px;margin-left:4px;padding:2px 6px;font-size:10px;font-weight:700}.constraint-legend{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;margin-top:20px;padding:15px}.constraint-legend h4{color:#495057;margin:0 0 10px;font-size:16px}.constraint-legend-item{align-items:center;margin-bottom:8px;font-size:14px;display:flex}.constraint-legend-ref{color:#fff;text-align:center;background:#17a2b8;border-radius:3px;min-width:20px;margin-right:8px;padding:2px 6px;font-size:10px;font-weight:700}.constraint-legend-type{min-width:80px;margin-right:8px;font-weight:700}.constraint-legend-name{color:#495057;margin-right:8px;font-family:monospace}.constraint-legend-description{color:#6c757d;font-style:italic}.filter-controls{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;margin-bottom:20px;padding:15px}.filter-row{align-items:center;gap:15px;margin-bottom:10px;display:flex}.filter-row:last-child{margin-bottom:0}.filter-label{color:#495057;min-width:80px;font-weight:500}.filter-input{border:1px solid #dee2e6;border-radius:4px;padding:6px 10px;font-size:14px}.filter-input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 2px #2196f340}.filter-btn{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:4px;padding:6px 12px;font-size:14px;transition:background-color .2s}.filter-btn:hover{background:#1976d2}.filter-btn:disabled{cursor:not-allowed;background:#6c757d}.header-filter{align-items:center;gap:4px;margin-top:8px;display:flex}.header-filter input{border:1px solid #dee2e6;border-radius:3px;flex:1;min-width:60px;padding:4px 6px;font-size:12px}.header-filter input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 1px #2196f340}.header-filter .clear-filter{color:#fff;cursor:pointer;opacity:.7;background:#dc3545;border:none;border-radius:3px;padding:2px 4px;font-size:10px;transition:opacity .2s}.header-filter .clear-filter:hover{opacity:1}.header-filter .clear-filter:disabled{opacity:.3;cursor:not-allowed}.header-filter .filter-select{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:3px;flex:1;min-width:60px;padding:4px 6px;font-size:12px}.header-filter .filter-select:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 1px #2196f340}.header-filter .filter-select option{padding:4px 8px}.report-container{padding:0 20px 20px}.report-header{margin-bottom:20px}.report-header p{color:#6c757d;margin:0}.source-selector{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:20px}.source-selector h3{color:#495057;margin-bottom:15px}.source-controls{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.source-control{flex-direction:column;gap:5px;display:flex}.source-control label{color:#495057;font-size:14px;font-weight:600}.source-control select{border:1px solid #dee2e6;border-radius:4px;min-width:150px;padding:8px 12px;font-size:14px}.generate-btn{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:4px;padding:10px 20px;font-size:14px;font-weight:600}.generate-btn:hover{background:#1976d2}.generate-btn:disabled{cursor:not-allowed;background:#6c757d}.report-content{display:none}.report-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:20px;box-shadow:0 2px 4px #0000001a}.report-section h3{color:#495057;margin-top:0;margin-bottom:20px}.venn-diagrams{flex-wrap:wrap;gap:30px;display:flex}.venn-diagram-container{flex:1;min-width:300px}.venn-diagram{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;justify-content:center;align-items:center;min-height:200px;padding:20px;display:flex}.venn-circle{color:#fff;text-align:center;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;margin:10px;font-size:12px;font-weight:700;display:flex;position:relative}.venn-overlap{color:#333;text-align:center;background:#ffffffe6;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute}.totals-row{background-color:#f8f9fa;border-top:2px solid #dee2e6}.total-cell{background-color:#e9ecef;font-weight:700}.report-section h4{color:#495057;border-bottom:2px solid #e9ecef;margin-top:0;margin-bottom:15px;padding-bottom:10px}.stats-overview{grid-template-columns:1fr 2fr;gap:30px;display:grid}.total-stats,.source-breakdown{background:#f8f9fa;border-radius:6px;padding:20px}.stats-table-container{overflow-x:auto}.stats-table{border-collapse:collapse;width:100%;margin-top:10px}.stats-table th,.stats-table td{text-align:left;border-bottom:1px solid #dee2e6;padding:10px 12px}.stats-table th{color:#495057;background:#e9ecef;font-weight:600;position:sticky;top:0}.stats-table tr:hover{background:#f8f9fa}.stats-table .source-name{color:#495057;font-weight:600}.stats-table .count-cell{text-align:center;color:#2196f3;font-weight:600}.report-summary{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:20px;box-shadow:0 2px 4px #0000001a}.report-page .summary-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:20px;display:grid}.stat-card{text-align:center;background:#f8f9fa;border-radius:6px;padding:15px}.stat-number{color:#2196f3;margin-bottom:5px;font-size:24px;font-weight:700}.stat-label{color:#6c757d;font-size:14px}.comparison-tables{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px;display:grid}.comparison-table{background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.report-page .table-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;padding:15px 20px}.report-page .table-header h3{color:#495057;margin:0}.report-page .table-content{padding:0}.coverage-table{border-collapse:collapse;width:100%}.coverage-table th,.coverage-table td{text-align:left;border-bottom:1px solid #dee2e6;padding:12px 15px}.coverage-table th{color:#495057;background:#f8f9fa;font-weight:600}.coverage-table tr:hover{background:#f8f9fa}.coverage-count{color:#2196f3;font-weight:700}.coverage-percentage{color:#6c757d;font-size:12px}.missing-data{color:#dc3545}.present-data{color:#28a745}@media (max-width:768px){.comparison-tables{grid-template-columns:1fr}.source-controls{flex-direction:column;align-items:stretch}.stats-overview{grid-template-columns:1fr;gap:20px}.stats-table-container{font-size:12px;overflow-x:auto}.stats-table th,.stats-table td{padding:8px 6px}}.price-grid-container{padding:0 20px 20px}.price-grid-header{margin-bottom:20px}.price-grid-header p{color:#6c757d;margin:0}.price-grid-controls{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:20px}.price-grid-controls h3{color:#495057;margin-bottom:15px}.controls-row{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:15px;display:flex}.control-group{flex-direction:column;gap:5px;display:flex}.control-group label{color:#495057;font-size:14px;font-weight:600}.control-group select,.control-group input{border:1px solid #dee2e6;border-radius:4px;min-width:150px;padding:8px 12px;font-size:14px}.price-grid-content{display:none}.price-grid-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:20px;box-shadow:0 2px 4px #0000001a}.price-grid-section h3{color:#495057;margin-top:0;margin-bottom:20px}.pivot-table-container{-webkit-overflow-scrolling:touch;border:1px solid #dee2e6;max-width:100%;max-height:600px;overflow:auto}.pivot-table{border-collapse:collapse;width:100%;font-size:12px;position:relative}.pivot-table th,.pivot-table td{text-align:left;vertical-align:top;white-space:nowrap;border:1px solid #dee2e6;padding:6px 8px}.pivot-table th{z-index:10;background-color:#f8f9fa;font-weight:600;position:sticky;top:0;box-shadow:0 2px 4px #0000001a}.pivot-table .row-header{z-index:5;background-color:#e9ecef;min-width:200px;padding-left:8px;font-weight:600;position:sticky;left:0;box-shadow:2px 0 4px #0000001a}.row-header .hierarchy-item{margin-bottom:2px;display:block}.row-header .hierarchy-item:last-child{margin-bottom:0}.row-header .hierarchy-level-0{padding-left:0}.row-header .hierarchy-level-1{padding-left:8px}.row-header .hierarchy-level-2{padding-left:16px}.row-header .hierarchy-level-3{padding-left:24px}.row-header .hierarchy-level-4{padding-left:32px}.row-header .tree-hook{color:#6c757d;margin-right:4px;font-family:monospace}.row-header .tree-hook:before{content:"└─ "}.row-header .hierarchy-level-0 .tree-hook:before{content:""}.row-header .hierarchy-level-1 .tree-hook:before,.row-header .hierarchy-level-2 .tree-hook:before,.row-header .hierarchy-level-3 .tree-hook:before,.row-header .hierarchy-level-4 .tree-hook:before{content:"└─ "}.pivot-table .corner-cell{z-index:15;background-color:#dee2e6;font-weight:700;position:sticky;top:0;left:0;box-shadow:2px 2px 4px #0000001a}.pivot-table th,.pivot-table .row-header,.pivot-table .corner-cell{transform:translateZ(0)}.price-cell{text-align:right;font-family:monospace;position:relative;padding-right:35px!important}.price-cell .price-content{text-align:right;display:block}.price-cell .source-label{color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:3px;padding:2px 4px;font-family:Arial,sans-serif;font-size:10px;font-weight:700;position:absolute;top:2px;right:4px}.source-label.chalet{background-color:#1976d2}.source-label.chatelreservation{background-color:#c62828}.source-label.summittravel{background-color:#7b1fa2}.source-label.sunweb{background-color:#388e3c}.price-cell.no-data{color:#999;background-color:#f5f5f5;font-style:italic;padding-right:8px!important}.stats-info{color:#0c5460;background:#d1ecf1;border:1px solid #bee5eb;border-radius:4px;margin-bottom:20px;padding:15px}.unmatched-container{max-width:1400px;margin:0 auto;padding:20px}.page-header{margin-bottom:30px}.page-header h1{color:#495057;margin-bottom:10px}.page-header p{color:#6c757d;font-size:16px}.filters-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:20px;box-shadow:0 2px 4px #0000001a}.unmatched-page .filter-row{flex-wrap:wrap;align-items:flex-end;gap:20px;display:flex}.unmatched-page .filter-group{flex-direction:column;gap:5px;min-width:150px;display:flex}.unmatched-page .filter-group label{color:#495057;font-size:14px;font-weight:600}.unmatched-page .filter-group select{background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:8px 12px;font-size:14px}.unmatched-page .filter-btn{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:4px;height:38px;padding:10px 24px;font-size:14px;font-weight:600}.unmatched-page .filter-btn:hover{background:#1976d2}.unmatched-page .filter-btn:disabled{cursor:not-allowed;background:#6c757d}.stats-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:20px;box-shadow:0 2px 4px #0000001a}.unmatched-page .stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:15px;display:grid}.unmatched-page .stat-card{text-align:center;background:#f8f9fa;border-radius:6px;padding:15px}.unmatched-page .stat-number{color:#dc3545;margin-bottom:5px;font-size:32px;font-weight:700}.unmatched-page .stat-label{color:#6c757d;font-size:14px}.stat-percentage{color:#6c757d;margin-top:5px;font-size:12px}.results-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a}.results-header{border-bottom:2px solid #dee2e6;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;display:flex}.results-header h3{color:#495057;margin:0}.results-count{color:#fff;background:#dc3545;border-radius:20px;padding:6px 12px;font-size:14px;font-weight:600}.results-table-container{overflow-x:auto}.results-table{border-collapse:collapse;width:100%}.results-table th,.results-table td{text-align:left;border-bottom:1px solid #dee2e6;padding:12px}.results-table th{color:#495057;z-index:10;background:#f8f9fa;font-weight:600;position:sticky;top:0}.results-table tr:hover{background:#f8f9fa}.unmatched-page .entity-name{color:#2196f3;font-weight:600}.source-badge{color:#fff;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-block}.source-badge.chalet{background-color:#4caf50}.source-badge.chatelreservation{background-color:#c62828}.source-badge.summittravel{background-color:#ff9800}.source-badge.sunweb{background-color:#2196f3}.empty-state{text-align:center;color:#6c757d;padding:60px 20px}.empty-state-icon{opacity:.3;margin-bottom:20px;font-size:64px}.empty-state h3{color:#495057;margin-bottom:10px}.loading-spinner{border:4px solid #f3f3f3;border-top-color:#2196f3;border-radius:50%;width:40px;height:40px;margin:0 auto 20px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.unmatched-page .pagination{border-top:1px solid #dee2e6;justify-content:center;align-items:center;gap:10px;margin-top:20px;padding-top:20px;display:flex}.unmatched-page .pagination button{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:8px 16px;font-size:14px}.unmatched-page .pagination button:hover:not(:disabled){background:#f8f9fa}.unmatched-page .pagination button:disabled{opacity:.5;cursor:not-allowed}.unmatched-page .pagination .page-info{color:#6c757d;font-size:14px}@media (max-width:768px){.unmatched-page .filter-row{flex-direction:column}.unmatched-page .filter-group{width:100%}.stats-grid{grid-template-columns:1fr}}.users-container{padding:0 20px 20px}.users-header{justify-content:flex-end;align-items:center;margin-bottom:1em;display:flex}.users-filters{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;flex-wrap:wrap;align-items:flex-end;gap:1em;margin-bottom:1.5em;padding:1em;display:flex}.users-filters .filter-group{flex-direction:column;gap:.3em;display:flex}.users-filters .filter-group label{color:#495057;font-size:.85em;font-weight:500}.users-filters .filter-group select,.users-filters .filter-group input{border:1px solid #ced4da;border-radius:4px;min-width:150px;padding:.5em .75em;font-size:.9em}.users-filters .filter-group input{min-width:200px}.users-table-container{margin-bottom:1em;overflow-x:auto}#users-table{border-collapse:collapse;width:100%}#users-table th{text-align:left;background:#f8f9fa;border-bottom:2px solid #dee2e6;padding:.75em 1em;font-weight:600}#users-table td{vertical-align:middle;border-bottom:1px solid #e9ecef;padding:.75em 1em}#users-table tbody tr:hover{background:#f8f9fa}.actions-cell{white-space:nowrap}.actions-cell .btn{margin-right:.25em}.event-log-container{padding:0 20px 20px}.event-log-header{justify-content:flex-end;align-items:center;margin-bottom:1em;display:flex}.event-log-filters{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;flex-wrap:wrap;align-items:flex-end;gap:1em;margin-bottom:1.5em;padding:1em;display:flex}.event-log-filters .filter-group{flex-direction:column;gap:.25em;display:flex}.event-log-filters .filter-group label{color:#555;font-size:.85em;font-weight:500}.event-log-filters .filter-group select,.event-log-filters .filter-group input{border:1px solid #ced4da;border-radius:4px;padding:.5em .75em;font-size:.9em}.event-log-filters .filter-group input{min-width:150px}.event-log-table-container{margin-bottom:1em;overflow-x:auto}#event-log-table{border-collapse:collapse;width:100%}#event-log-table th{text-align:left;white-space:nowrap;background:#f8f9fa;border-bottom:2px solid #dee2e6;padding:.75em 1em;font-weight:600}#event-log-table td{vertical-align:middle;border-bottom:1px solid #e9ecef;padding:.75em 1em}#event-log-table tbody tr:hover{background:#f8f9fa}#event-log-table .user-agent{text-overflow:ellipsis;white-space:nowrap;color:#666;max-width:200px;font-size:.85em;overflow:hidden}#event-log-table code{background:#e9ecef;border-radius:3px;padding:.15em .4em;font-size:.85em}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:.25em .6em;font-size:.8em;font-weight:600;display:inline-block}.badge-info{color:#0c5460;background:#d1ecf1}.badge-download{color:#3d3d9e;background:#e2e3f3}.pagination-controls{justify-content:space-between;align-items:center;padding:1em 0;display:flex}.pagination-info{color:#666;font-size:.9em}.pagination-buttons{align-items:center;gap:.5em;display:flex}.page-info{color:#666;padding:0 .5em;font-size:.9em}.btn{text-align:center;cursor:pointer;border:none;border-radius:4px;padding:.5em 1em;font-size:.9em;font-weight:500;text-decoration:none;transition:background-color .15s,box-shadow .15s;display:inline-block}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{color:#fff;background:#007bff}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-secondary{color:#fff;background:#6c757d}.btn-secondary:hover:not(:disabled){background:#545b62}.btn-danger{color:#fff;background:#dc3545}.btn-danger:hover:not(:disabled){background:#c82333}.btn-small{padding:.3em .6em;font-size:.8em}.badge{text-transform:uppercase;border-radius:3px;padding:.25em .6em;font-size:.75em;font-weight:600;display:inline-block}.badge-admin{color:#fff;background:#6f42c1}.badge-user{color:#fff;background:#17a2b8}.badge-viewer{color:#fff;background:#6c757d}.badge-success{color:#fff;background:#28a745}.badge-warning{color:#212529;background:#ffc107}.badge-danger{color:#fff;background:#dc3545}.badge-default{color:#495057;background:#e9ecef}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.active{display:flex}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.modal-small{max-width:400px}.modal-header{border-bottom:1px solid #e9ecef;justify-content:space-between;align-items:center;padding:1em 1.25em;display:flex}.modal-header h3{color:#333;margin:0;font-size:1.1em}.modal-close{color:#6c757d;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5em;line-height:1}.modal-close:hover{color:#333}.modal-body{padding:1.25em}.form-group{margin-bottom:1em}.form-group label{color:#333;margin-bottom:.4em;font-size:.9em;font-weight:500;display:block}.form-group input,.form-group select{box-sizing:border-box;border:1px solid #ced4da;border-radius:4px;width:100%;padding:.6em .75em;font-size:.95em}.form-group input:focus,.form-group select:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 2px #007bff40}.form-hint{color:#6c757d;margin-top:.3em;font-size:.8em;display:block}.form-actions{border-top:1px solid #e9ecef;justify-content:flex-end;gap:.5em;margin-top:1.5em;padding-top:1em;display:flex}.warning-text{color:#dc3545;font-size:.9em}.loading,.error,.no-data{text-align:center;color:#6c757d;padding:2em!important}.error{color:#dc3545}.pagination-controls{flex-wrap:wrap;align-items:center;gap:.5em;margin-top:1em;display:flex}.pagination-controls .btn{min-width:2.5em}.pagination-info{color:#6c757d;margin-left:1em;font-size:.9em}.pagination-ellipsis{color:#6c757d;padding:0 .25em}@media (max-width:768px){.users-header{flex-direction:column;align-items:flex-start;gap:1em}.users-filters{flex-direction:column}.users-filters .filter-group select,.users-filters .filter-group input{width:100%}.modal-content{width:95%;margin:1em}}.login-page{background:linear-gradient(135deg,#f5f7fa 0%,#e4e8ec 100%);flex-direction:column;min-height:100vh;display:flex}.login-container{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.login-card{width:100%;max-width:420px;padding:2.5rem}.login-logo{justify-content:center;margin-bottom:1.5rem;display:flex}.login-logo .glisse-logo{color:#495057;text-align:left;font-size:.7em;display:inline-block}.login-title{text-align:center;margin-bottom:1.5rem}.login-error{margin-bottom:1.5rem}#login-form .form-group{margin-bottom:1.25rem}#login-form .form-group label{color:#495057;margin-bottom:.5rem;font-weight:500;display:block}#login-form .form-group input{box-sizing:border-box;border:1px solid #dee2e6;border-radius:.375rem;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}#login-form .form-group input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f326}#login-form .form-group input::placeholder{color:#adb5bd}.login-actions{justify-content:center;margin-top:1.5rem}.btn-login{width:100%;padding:.875rem 1.5rem;font-size:1.1rem}.login-hint{text-align:center;color:#6c757d;margin-top:1.25rem;font-size:.875rem}.optional-label{color:#6c757d;font-size:.875em;font-weight:400}#magic-link-form .form-group{margin-bottom:1.25rem}#magic-link-form .form-group label{color:#495057;margin-bottom:.5rem;font-weight:500;display:block}#magic-link-form .form-group input{box-sizing:border-box;border:1px solid #dee2e6;border-radius:.375rem;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}#magic-link-form .form-group input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f326}#magic-link-form .form-group input::placeholder{color:#adb5bd}.login-success{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb;border-radius:.375rem;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;font-size:.9375rem;display:flex}.login-success i{font-size:1.25rem}.login-divider{align-items:center;margin:1.5rem 0;display:flex}.login-divider:before,.login-divider:after{content:"";border-bottom:1px solid #dee2e6;flex:1}.login-divider span{color:#6c757d;padding:0 1rem;font-size:.875rem;font-weight:500}.login-alternative{text-align:center}.login-alternative .btn-secondary{color:#495057;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:.375rem;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem 1.5rem;font-size:1rem;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.login-alternative .btn-secondary:hover{color:#212529;background-color:#e9ecef;border-color:#ced4da}.login-alternative .btn-secondary i{font-size:1.125rem}.downloads-container{max-width:1200px;margin:0 auto;padding:1.25rem}.downloads-card{background-color:#fff;border:1px solid #0000002d;border-radius:.375rem;margin-bottom:1.5rem;overflow:hidden}.downloads-card .files-table{box-shadow:none;border:none;border-radius:0}.downloads-card .empty-state{border:none;border-radius:0}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:1.875rem;display:grid}.summary-card{text-align:center;background:#fff;border:1px solid #0000002d;border-radius:.375rem;padding:1.5rem}.summary-card .value{color:#212529;font-size:2.5rem;font-weight:700}.summary-card:first-child .value{color:#0d6efd}.summary-card:nth-child(2) .value{color:#198754}.summary-card .label{color:#6c757d;text-transform:uppercase;letter-spacing:.5px;margin-top:.5rem;font-size:.875rem}.data-dir-info{background:#f8f9fa;border:1px solid #0000002d;border-radius:.375rem;padding:1rem 1.5rem;font-size:.875rem}.data-dir-info .label{color:#6c757d;margin-bottom:.25rem;font-weight:500}.data-dir-info .path{color:#0d6efd;word-break:break-all;background:#e9ecef;border-radius:.25rem;padding:.25rem .5rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;display:inline-block}.data-dir-info .source{color:#6c757d;margin-top:.5rem;font-size:.8125rem}.files-table{border-collapse:collapse;background:#fff;width:100%}.files-table th,.files-table td{text-align:left;border-bottom:1px solid #dee2e6;padding:.75rem 1rem}.files-table th{color:#495057;text-transform:uppercase;letter-spacing:.5px;background:#f8f9fa;font-size:.75rem;font-weight:600}.files-table tr:last-child td{border-bottom:none}.files-table tbody tr:hover td{background:#f8f9fa}.file-name{color:#212529;font-weight:500}.file-size{color:#198754;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem}.file-date{color:#6c757d;font-size:.875rem}.loading{text-align:center;color:#6c757d;padding:3.75rem 2.5rem;font-size:1.1rem}.empty-state{text-align:center;color:#6c757d;background:#f8f9fa;border:1px solid #0000002d;border-radius:.375rem;padding:3.75rem 2.5rem}.empty-state .icon{color:#adb5bd;margin-bottom:1rem;font-size:3rem}.alert{border:1px solid #0000;border-radius:.375rem;margin-bottom:1rem;padding:.75rem 1.25rem;position:relative}.alert i{margin-right:.5rem}.alert-info{color:#055160;background-color:#cff4fc;border-color:#9eeaf9}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.pagination-controls{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e0e0e0);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;padding:12px 16px;display:flex}.page-size-selector{color:var(--text-secondary,#666);align-items:center;gap:8px;font-size:14px;display:flex}.page-size-selector select{border:1px solid var(--border-color,#ddd);background:var(--input-bg,#fff);color:var(--text-primary,#333);cursor:pointer;border-radius:4px;padding:6px 10px;font-size:14px}.page-size-selector select:hover{border-color:var(--primary-color,#4a90d9)}.page-navigation{align-items:center;gap:4px;display:flex}.page-btn{border:1px solid var(--border-color,#ddd);background:var(--card-bg,#fff);min-width:36px;height:36px;color:var(--text-primary,#333);cursor:pointer;border-radius:4px;padding:0 10px;font-size:14px;transition:all .2s}.page-btn:hover:not(:disabled){background:var(--primary-color,#4a90d9);border-color:var(--primary-color,#4a90d9);color:#fff}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-btn.active{background:var(--primary-color,#4a90d9);border-color:var(--primary-color,#4a90d9);color:#fff;font-weight:600}.page-ellipsis{color:var(--text-secondary,#666);padding:0 8px}.page-info{color:var(--text-secondary,#666);font-size:14px}@media (max-width:768px){.pagination-controls{flex-direction:column;align-items:stretch}.page-size-selector,.page-navigation,.page-info{justify-content:center}.page-navigation{flex-wrap:wrap}}.page-description{color:var(--text-secondary,#666);margin-bottom:20px;font-size:14px}.stats-container{margin-bottom:24px}.queue-stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.queue-stat-card{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e0e0e0);border-radius:8px;padding:16px;transition:box-shadow .2s}.queue-stat-card:hover{box-shadow:0 2px 8px #00000014}.queue-stat-card .stat-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.queue-stat-card .stat-header-label{color:var(--text-secondary,#666);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.queue-stat-card .stat-header .source-tag,.queue-table .source-tag{border-radius:4px;padding:4px 10px;font-size:13px;position:static}.queue-stat-card .stat-body{flex-direction:column;gap:6px;display:flex}.queue-stat-card .stat-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.queue-stat-card .stat-row.highlight{color:var(--success-color,#28a745);font-weight:500}.queue-stat-card .stat-row.cooldown{color:var(--warning-color,#f59e0b)}.queue-stat-card .stat-label{color:var(--text-secondary,#666)}.queue-stat-card .stat-value{color:var(--text-primary,#333);font-weight:500}.queue-stat-card .stat-bar{background:var(--border-color,#e0e0e0);border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.queue-stat-card .stat-bar-fill{background:var(--success-color,#28a745);border-radius:3px;height:100%;transition:width .3s}.queue-summary{margin-bottom:12px}.queue-summary .summary-stats{color:var(--text-secondary,#666);flex-wrap:wrap;gap:20px;font-size:14px;display:flex}.queue-table{border-collapse:collapse;background:var(--card-bg,#fff);border:1px solid var(--border-color,#e0e0e0);border-radius:8px;width:100%;font-size:14px;overflow:hidden}.queue-table thead{background:var(--table-header-bg,#f8f9fa)}.queue-table th{text-align:left;color:var(--text-primary,#333);border-bottom:2px solid var(--border-color,#e0e0e0);white-space:nowrap;padding:12px 16px;font-weight:600}.queue-table td{border-bottom:1px solid var(--border-color,#eee);vertical-align:middle;padding:12px 16px}.queue-table tbody tr:last-child td{border-bottom:none}.queue-table tbody tr:hover{background:var(--table-hover-bg,#f8f9fa)}.queue-row.in-cooldown{background:#f59e0b0d}.priority-badge{border-radius:12px;justify-content:center;align-items:center;min-width:32px;height:24px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.priority-badge.high{background:var(--success-color,#28a745);color:#fff}.priority-badge.medium{background:var(--primary-color,#2196f3);color:#fff}.priority-badge.low{background:var(--border-color,#e0e0e0);color:var(--text-secondary,#666)}.col-name{align-items:center;gap:8px;display:flex}.product-name{color:var(--text-primary,#333);font-weight:500}.product-url{color:var(--primary-color,#2196f3);opacity:.7;font-size:12px;transition:opacity .2s}.product-url:hover{opacity:1}.location-text,.time-since{color:var(--text-secondary,#666);font-size:13px}.time-since.never{color:var(--success-color,#28a745);font-weight:500}.cooldown-badge{background:var(--warning-color,#f59e0b);color:#fff;text-transform:uppercase;border-radius:3px;margin-left:8px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.blocked-badge{background:var(--danger-color,#dc3545);color:#fff;text-transform:uppercase;border-radius:3px;margin-left:8px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.queue-row.is-blocked{opacity:.7;background:#dc35450d}.queue-row.is-blocked:hover{opacity:1}.queue-table .status-badge{text-transform:uppercase;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:500;display:inline-block}.queue-table .status-badge.status-available{color:var(--success-color,#28a745);background:#28a7451a}.queue-table .status-badge.status-unavailable{color:var(--danger-color,#dc3545);background:#dc35451a}.queue-table .status-badge.status-blocked{color:var(--danger-color,#dc3545);background:#dc354526}.queue-table .status-badge.status-in_run{color:var(--primary-color,#007bff);background:#007bff1a}.queue-table .status-badge.status-disabled{color:var(--text-secondary,#6c757d);background:#6c757d1a}.col-priority{width:60px}.col-source{width:100px}.col-queued,.col-scraped{width:140px}.col-status{width:100px}@media (max-width:1024px){.queue-table{font-size:13px}.queue-table th,.queue-table td{padding:10px 12px}.col-location{display:none}}@media (max-width:768px){.queue-stats-grid{grid-template-columns:1fr}.queue-table th,.queue-table td{padding:8px}.col-scraped{display:none}}.trip-unavailable{opacity:.6;text-decoration:line-through}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}