@layer tokens,base,vendors,vendor-theme,layout,components,utilities;@layer vendors{.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:hsl(0,0%,70%) #ccc hsl(0,0%,85%)}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:rgba(0,0,0,0) rgba(0,0,0,0) #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid hsl(0,0%,90%)}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid rgb(183.6,218.88,255)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid rgb(183.6,218.88,255);border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid rgb(183.6,218.88,255)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid rgb(183.6,218.88,255)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}}@layer tokens{:root{--primary: #ffffff;--secondary: #ffffff;--third: #ffffff;--primary-strong: var(--gray-700);--secondary-strong: var(--gray-700);--third-strong: var(--gray-700);--primary-hover: color-mix(in srgb, var(--primary-strong) 88%, #000);--primary-active: color-mix(in srgb, var(--primary-strong) 78%, #000);--primary-soft: color-mix(in srgb, var(--primary) 10%, #fff);--primary-softer: color-mix(in srgb, var(--primary) 5%, #fff);--primary-border: color-mix(in srgb, var(--primary) 30%, #fff);--secondary-soft: color-mix(in srgb, var(--secondary) 12%, #fff);--secondary-border: color-mix(in srgb, var(--secondary) 40%, #fff);--third-soft: color-mix(in srgb, var(--third) 12%, #fff);--third-hover: color-mix(in srgb, var(--third-strong) 88%, #000);--on-primary: #ffffff;--on-secondary: #ffffff;--on-third: #ffffff;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--white: #ffffff;--black: #000000;--text: var(--gray-900);--text-strong: var(--gray-700);--text-muted: var(--gray-600);--text-subtle: var(--gray-500);--text-disabled: var(--gray-400);--opacity-disabled: .55;--text-inverse: var(--white);--border: var(--gray-200);--border-medium: var(--gray-300);--border-strong: var(--gray-400);--surface: var(--white);--surface-alt: var(--gray-50);--surface-hover: var(--gray-100);--surface-sunken: var(--gray-100);--surface-inverse: var(--gray-800);--bg-app: #f8f9fa;--overlay: rgb(15 23 42 / .45);--overlay-dark: rgb(0 0 0 / .8);--overlay-medium: rgb(0 0 0 / .5);--overlay-subtle: rgb(0 0 0 / .08);--overlay-faint: rgb(0 0 0 / .04);--overlay-faint-strong: rgb(0 0 0 / .05);--overlay-light: rgb(255 255 255 / .7);--surface-alpha-60: rgb(255 255 255 / .6);--surface-alpha-78: rgb(255 255 255 / .78);--surface-alpha-85: rgb(255 255 255 / .85);--surface-alpha-90: rgb(255 255 255 / .9);--surface-alpha-92: rgb(255 255 255 / .92);--surface-alpha-95: rgb(255 255 255 / .95);--surface-alpha-96: rgb(255 255 255 / .96);--surface-alpha-98: rgb(255 255 255 / .98);--surface-alpha-05: rgb(255 255 255 / .05);--surface-alpha-08: rgb(255 255 255 / .08);--surface-alpha-10: rgb(255 255 255 / .1);--surface-alpha-12: rgb(255 255 255 / .12);--surface-alpha-15: rgb(255 255 255 / .15);--surface-alpha-18: rgb(255 255 255 / .18);--surface-alpha-20: rgb(255 255 255 / .2);--surface-alpha-22: rgb(255 255 255 / .22);--surface-alpha-30: rgb(255 255 255 / .3);--surface-gradient: linear-gradient(180deg, var(--surface) 0%, var(--surface-alt) 100%);--info-gradient: linear-gradient(180deg, var(--info-bg) 0%, var(--primary-soft) 100%);--map-background: linear-gradient(180deg, var(--gray-900) 0%, var(--surface-inverse) 100%);--map-glow: radial-gradient(circle at top left, color-mix(in srgb, var(--primary) 14%, transparent), transparent 26%);--scrim-hero: linear-gradient(rgb(0 0 0 / .45), rgb(0 0 0 / .25));--success: #15803d;--success-bg: #ecfdf5;--success-border: #a7f3d0;--success-solid: #16a34a;--warning: #b45309;--warning-bg: #fff7ed;--warning-border: #fed7aa;--warning-solid: #d97706;--caution-solid: #eab308;--danger: #b91c1c;--danger-bg: #fef2f2;--danger-border: #fca5a5;--danger-solid: #dc2626;--info: #1d4ed8;--info-bg: #eff6ff;--info-border: #bfdbfe;--info-solid: #2563eb;--accent: #6d28d9;--accent-bg: #f5f3ff;--accent-border: #ddd6fe;--teal: #0f766e;--teal-bg: #ecfeff;--teal-border: #a5f3fc;--brand-stripe: #635bff;--brand-stripe-hover: #5144d3;--font-base: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-2xs: .786rem;--fs-xs: .857rem;--fs-sm: .929rem;--fs-base: 1rem;--fs-md: 1.143rem;--fs-lg: 1.286rem;--fs-xl: 1.571rem;--fs-2xl: 2rem;--fs-3xl: 2.429rem;--fs-display: clamp(2rem, 4vw + 1rem, 3.429rem);--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.2;--lh-snug: 1.35;--lh-normal: 1.5;--tracking-caps: .04em;--space-0: 0;--space-px: 1px;--space-0-5: 2px;--space-1: 4px;--space-1-5: 6px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--radius-round: 50%;--border-w: 1px;--border-w-thick: 2px;--border-w-accent: 4px;--shadow-sm: 0 1px 2px rgb(0 0 0 / .05), 0 1px 3px rgb(0 0 0 / .04);--shadow: 0 2px 8px rgb(0 0 0 / .06), 0 8px 24px rgb(0 0 0 / .06);--shadow-lg: 0 12px 32px rgb(0 0 0 / .12);--shadow-overlay: 0 18px 38px rgb(15 23 42 / .18);--shadow-inset: inset 0 1px 2px rgb(0 0 0 / .06);--shadow-drop-soft: 0 -2px 2px rgb(0 0 0 / .08);--focus-ring: none;--focus-ring-danger: 0 0 0 3px color-mix(in srgb, var(--danger-solid) 30%, transparent);--focus-ring-on-brand: 0 0 0 3px color-mix(in srgb, var(--on-primary) 45%, transparent);--focus-outline: 2px solid var(--primary-strong);--z-below: -1;--z-base: 1;--z-raised: 2;--z-sticky-local: 10;--z-map-controls: 40;--z-dropdown: 100;--z-sticky: 200;--z-floating: 800;--z-header: 900;--z-sidebar: 950;--z-overlay: 1000;--z-modal: 1100;--z-modal-nested: 1150;--z-dropdown-overlay: 1180;--z-toast: 1200;--z-tooltip: 1300;--z-skip-link: 1400;--control-h: 40px;--control-h-sm: 32px;--control-h-lg: 48px;--tap-size: 40px;--icon-sm: 14px;--icon: 16px;--icon-lg: 20px;--icon-xl: 32px;--header-h: 60px;--sidebar-w: 220px;--sidebar-w-collapsed: 65px;--content-padding: var(--space-5);--content-max: 1440px;--chart-height: 380px;--ease: cubic-bezier(.2, 0, 0, 1);--dur-fast: .12s;--dur: .2s;--dur-slow: .3s;--sidebar-tooltip-text: #000000;--sidebar-text: #f6f6f6;--calendar-selected-bg: var(--primary-strong);--calendar-selected-shadow: rgb(255 255 255 / .4);--calendar-hover-bg: var(--surface-hover);--calendar-disabled-color: var(--text-disabled);--calendar-border-radius: var(--radius-lg);--chart-color-1: #8ecae6;--chart-color-2: #f6bd60;--chart-color-3: #84a59d;--chart-color-4: #f28482;--chart-color-5: #cdb4db;--chart-color-6: #d4a373;--chart-color-7: #f4acb7;--chart-color-8: #b8c0c8;--chart-color-9: #ccd5ae;--chart-color-10: #94d2bd;--chart-color-11: #98c1d9;--chart-color-12: #a5a0d6;--chart-color-13: #d8a7ca;--chart-color-14: #ffb4a2;--chart-color-15: #ffd6a5;--chart-color-16: #95d5b2;--chart-color-17: #e9afa3;--chart-color-18: #a8dadc;--chart-color-19: #f7c59f;--chart-color-20: #e9d8a6;--chart-positive-strong: #52b788;--chart-positive: #95d5b2;--chart-neutral: #b8c0c8;--chart-negative: #f28482;--chart-negative-strong: #e05a5a;--chart-level-low: #95d5b2;--chart-level-mid: #f6bd60;--chart-level-high: #f28482;--chart-level-low-soft: #cfe8d8;--chart-level-mid-soft: #ffd39c;--chart-level-high-soft: #f5c7d0;--chart-quality-none: #9e9e9e;--chart-quality-excellent: #1e88e5;--chart-quality-good: #43a047;--chart-quality-moderate: #fb8c00;--chart-quality-poor: #e53935;--chart-quality-very-poor: #8e24aa;--chart-quality-extreme: #c62828;--chart-reference-line: #f28482;--chart-map-marker: var(--primary);--chart-highlight: var(--primary);--chart-muted: #cbd5e1;--chart-grid-color: #e2e8f0;--chart-card-bg: var(--surface);--chart-card-radius: var(--radius-lg);--chart-card-shadow: var(--shadow-sm);--chart-card-border: var(--border);--chart-title-size: var(--fs-lg);--chart-title-weight: var(--fw-semibold);--chart-title-color: var(--text);--chart-axis-color: #64748b}@media(max-width:768px){:root{--content-padding: var(--space-4)}}@media(max-width:576px){:root{--content-padding: var(--space-3);--header-h: 55px}}}@layer base{@font-face{font-family:Inter;src:url(/assets/fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--space-4));overflow-x:clip}body{position:relative;min-height:100dvh;overflow-x:clip;font-family:var(--font-base);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}body.has-modal-open{overflow:hidden}html:has(body.has-modal-open){overflow:hidden;overscroll-behavior:none}@media(max-width:768px){:is(input:not([type=checkbox],[type=radio],[type=range]),textarea,select){font-size:var(--fs-md)}}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-semibold);line-height:var(--lh-tight);color:inherit;text-wrap:balance;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}h1{font-size:var(--fs-2xl);margin-bottom:var(--space-3)}h2{font-size:var(--fs-xl);margin-bottom:var(--space-4)}h3{font-size:var(--fs-lg);line-height:var(--lh-snug);margin-bottom:var(--space-3)}h4{font-size:var(--fs-md);line-height:var(--lh-snug);margin-bottom:var(--space-2)}h5,h6{font-size:var(--fs-base)}p{text-wrap:pretty}small{font-size:var(--fs-xs)}strong,b{font-weight:var(--fw-semibold)}a{color:var(--primary-strong);text-underline-offset:.15em}a:hover{color:var(--primary-active)}ul,ol{list-style-position:inside}img,svg,video,canvas{max-width:100%}img,video{height:auto}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}input[type=checkbox],input[type=radio]{accent-color:var(--primary-strong);width:var(--icon);height:var(--icon);flex-shrink:0;cursor:pointer}fieldset{border:0;min-width:0}hr{border:0;border-top:var(--border-w) solid var(--border)}code,pre,kbd,samp{font-family:var(--font-mono)}::placeholder{color:var(--text-subtle);opacity:1}::selection{background:var(--primary-soft);color:var(--text)}select:not([multiple],[size],.monthselect,.yearselect){min-height:var(--control-h);padding:0 var(--space-8) 0 var(--space-3);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius);appearance:none;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%2364748b'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right var(--space-3) center / var(--icon);color:var(--text);font-size:var(--fs-base);cursor:pointer}select:not([multiple],[size],.monthselect,.yearselect):focus-visible{outline:none;border-color:var(--primary-strong);box-shadow:var(--focus-ring)}.fa,.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands{vertical-align:middle}@media(pointer:coarse){input:not([type=checkbox],[type=radio],[type=range]),select,textarea{font-size:max(16px,1em)}}:focus-visible{outline:var(--focus-outline);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-60px;left:var(--space-2);z-index:var(--z-skip-link);padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--gray-900);color:var(--white);font-weight:var(--fw-semibold);text-decoration:none;transition:top var(--dur-fast) var(--ease)}.skip-link:focus{top:0;color:var(--white)}#main-content:focus{outline:none}@keyframes ls-fade-in{0%{opacity:0}}@keyframes ls-scale-in{0%{opacity:0;transform:scale(.97) translateY(-6px)}}@keyframes ls-slide-in{0%{transform:translate(100%)}}@keyframes ls-slide-up{0%{opacity:0;transform:translateY(12px)}}@keyframes ls-spin{to{transform:rotate(360deg)}}@keyframes ls-shimmer{to{background-position:-200% 0}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}}@keyframes modalSlideIn{0%{transform:translate(100%)}}@keyframes modalToastIn{0%{opacity:0;transform:translate(-50%,-60%)}}@keyframes badgePulse{0%{opacity:0;transform:scale(.8)}}}@layer layout{.main-container{position:relative;display:flex;min-height:100dvh;padding-top:var(--header-h);overflow:clip}.content-container{flex:1;min-width:0;display:flex;flex-direction:column;min-height:calc(100dvh - var(--header-h));padding:var(--content-padding);background:var(--bg-app);transition:margin-left var(--dur-slow) var(--ease)}.with-sidebar .content-container{margin-left:var(--sidebar-w)}body.sidebar-collapsed .with-sidebar .content-container,body.sidebar-collapsed .content-container,body.sidebar-collapsed .main-content{margin-left:var(--sidebar-w-collapsed)}.content-container:has(app-board){padding:0}@media(max-width:768px){.main-container{flex-direction:column}.with-sidebar .content-container,body.sidebar-collapsed .with-sidebar .content-container,body.sidebar-collapsed .content-container,body.sidebar-collapsed .main-content,.content-container{margin-left:0;width:100%}}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3) var(--space-6);margin-bottom:var(--space-6)}.page-header__text{flex:1 1 320px;min-width:0}.page-header__title,.page-header>h1,.page-header>h2,.page-header__text>h1,.dashboard-title,.module-header{margin:0;font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text)}.page-header__subtitle{margin-top:var(--space-1);color:var(--text-muted);font-size:var(--fs-base);max-width:72ch}.page-header__back,.dashboard-back-link{display:inline-flex;align-items:center;gap:var(--space-1-5);margin-bottom:var(--space-2);padding:0;border:0;background:none;color:var(--text-muted);font:var(--fw-medium) var(--fs-sm) / var(--lh-normal) var(--font-base);text-decoration:none;cursor:pointer;transition:color var(--dur) var(--ease)}.page-header__back:hover,.dashboard-back-link:hover{color:var(--primary-strong)}.page-header__back i,.dashboard-back-link i{font-size:var(--fs-xs)}.page-header__actions,.page-header .header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.dashboard-title{margin-bottom:var(--space-6)}.module-header{margin:var(--space-10) 0 var(--space-5);text-align:center}@media(max-width:576px){.page-header__title,.page-header>h1,.page-header>h2,.page-header__text>h1,.dashboard-title{font-size:var(--fs-xl)}.page-header__actions,.page-header .header-actions{width:100%}.page-header__actions>.btn,.page-header .header-actions>.btn{flex:1 1 auto}}.page-header__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1-5);margin-top:var(--space-2)}.page-header__meta:empty,.page-header__tabs:empty{display:none}.page-header__tabs>.tabs{margin-bottom:var(--space-6)}app-page-header:has(.page-header__tabs>*) .page-header{margin-bottom:var(--space-4)}.page-header__report{display:inline-flex;margin-left:var(--space-1)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.toolbar__search{flex:1 1 260px;max-width:360px}.toolbar__filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.toolbar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-left:auto}.toolbar--stacked{align-items:stretch}.toolbar--stacked>.toolbar__search{flex-basis:100%;max-width:none}.toolbar--stacked>.toolbar__actions{width:100%;margin-left:0}.toolbar--stacked>.toolbar__actions>.btn{width:100%}@media(max-width:576px){.toolbar__search,.toolbar__filters,.toolbar__filters>*{flex:1 1 100%;max-width:none}.toolbar__actions{width:100%;margin-left:0}.toolbar__actions>.btn{flex:1}}.section-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-6) 0 var(--space-4);color:var(--text)}.section-header__title,.section-header>h2,.section-header>h3{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.section-header__subtitle{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.stack{display:flex;flex-direction:column;gap:var(--stack-gap, var(--space-4))}.stack--sm{--stack-gap: var(--space-2)}.stack--lg{--stack-gap: var(--space-6)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cluster-gap, var(--space-2))}.cluster--between{justify-content:space-between}.cluster--end{justify-content:flex-end}.grid{display:grid;gap:var(--grid-gap, var(--space-5));grid-template-columns:repeat(auto-fit,minmax(min(var(--grid-min, 320px),100%),1fr))}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--tight{--grid-gap: var(--space-3)}@media(max-width:1024px){.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}.span-full{grid-column:1 / -1}.span-2{grid-column:span 2}@media(max-width:768px){.span-2{grid-column:auto}}.split{display:grid;grid-template-columns:minmax(320px,var(--split-left, 45%)) minmax(0,1fr);min-height:0;height:100%}@media(max-width:768px){.split{grid-template-columns:1fr;height:auto}}.embed-frame{flex:1;width:100%;min-height:70vh;border:0;border-radius:var(--radius-lg);background:var(--surface)}.powered-by{position:fixed;bottom:var(--space-2);left:var(--space-2);z-index:var(--z-floating);max-width:200px;padding:var(--space-1) var(--space-1-5);border:var(--border-w) solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-sm);color:var(--text-muted);font-size:var(--fs-2xs)}.powered-by a{color:inherit;font-weight:var(--fw-bold);text-decoration:none}.powered-by a:hover{color:var(--primary-strong);text-decoration:underline}@media(max-width:768px){body.has-planner-tabbar{padding-bottom:calc(64px + env(safe-area-inset-bottom))}body.has-planner-tabbar .powered-by{bottom:calc(74px + env(safe-area-inset-bottom))}body.has-planner-tabbar .cart-icon{bottom:calc(76px + env(safe-area-inset-bottom));right:var(--space-3);width:52px;height:52px}}.page-title{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.section-title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.subsection-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-snug)}.text-small{font-size:var(--fs-xs)}.caption{font-size:var(--fs-2xs)}}@layer components{.btn{--_bg: transparent;--_fg: var(--text);--_bd: transparent;--_bg-hover: var(--surface-hover);--_fg-hover: var(--_fg);--_bd-hover: var(--_bd);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-h);padding:0 var(--space-4);border:var(--border-w) solid var(--_bd);border-radius:var(--radius);background:var(--_bg);color:var(--_fg);font-family:var(--font-base);font-size:var(--fs-base);font-weight:var(--fw-medium);line-height:var(--lh-tight);text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn:hover{background:var(--_bg-hover);border-color:var(--_bd-hover);color:var(--_fg-hover)}.btn:focus-visible{outline:var(--focus-outline);outline-offset:2px}.btn:is(:disabled,.is-disabled,.disabled,[aria-disabled=true]){opacity:.55;cursor:not-allowed;pointer-events:none;box-shadow:none}.btn.is-loading{pointer-events:none}.btn>i,.btn>svg{flex-shrink:0}.btn--primary{--_bg: var(--primary-strong);--_fg: var(--on-primary);--_bg-hover: var(--primary-hover);--_fg-hover: var(--on-primary)}.btn--primary:active{--_bg: var(--primary-active);--_bg-hover: var(--primary-active)}.btn--accent{--_bg: var(--third-strong);--_fg: var(--on-third);--_bg-hover: var(--third-hover);--_fg-hover: var(--on-third)}.btn--secondary{--_bg: var(--surface);--_fg: var(--text);--_bd: var(--border-strong);--_bg-hover: var(--surface-hover);--_bd-hover: var(--gray-500)}.btn--ghost{--_bg: transparent;--_fg: var(--text-muted);--_bg-hover: var(--surface-hover);--_fg-hover: var(--text)}.btn--danger{--_bg: var(--danger-solid);--_fg: var(--white);--_bg-hover: var(--danger);--_fg-hover: var(--white)}.btn--danger-ghost{--_bg: transparent;--_fg: var(--danger);--_bg-hover: var(--danger-bg);--_fg-hover: var(--danger)}.btn--link{--_bg: transparent;--_fg: var(--primary-strong);--_bg-hover: transparent;--_fg-hover: var(--primary-active);min-height:auto;padding:0;border:0;text-decoration:underline;text-underline-offset:.15em}.btn--inverse{--_bg: var(--surface);--_fg: var(--text-strong);--_bg-hover: var(--primary-softer);--_fg-hover: var(--text);font-weight:var(--fw-semibold)}.btn--on-brand{--_bg: transparent;--_fg: var(--on-primary);--_bd: color-mix(in srgb, var(--on-primary) 55%, transparent);--_bg-hover: color-mix(in srgb, var(--on-primary) 14%, transparent);--_fg-hover: var(--on-primary)}.btn--sm{min-height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--fs-sm)}.btn--lg{min-height:var(--control-h-lg);padding:0 var(--space-6);font-size:var(--fs-md)}.btn--block{width:100%}.btn--pill{border-radius:var(--radius-pill)}.btn--icon{width:var(--tap-size);min-width:var(--tap-size);padding:0}.btn--icon.btn--sm{width:var(--control-h-sm);min-width:var(--control-h-sm);min-height:var(--control-h-sm)}.btn--round{border-radius:var(--radius-round)}.btn-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.btn-group--end{justify-content:flex-end}.btn-group--nowrap{flex-wrap:nowrap}@media(max-width:576px){.btn--collapse-sm{width:var(--control-h-sm);min-width:var(--control-h-sm);padding:0}.btn--collapse-sm .btn__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.contador{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3)}.contador-value,.contador>span{min-width:25px;font-size:var(--fs-md);font-weight:var(--fw-bold);text-align:center;font-variant-numeric:tabular-nums}}@layer components{.form-field{display:flex;flex-direction:column;gap:var(--space-1-5);min-width:0;margin-bottom:var(--space-4)}.form-field--inline{flex-direction:row;align-items:center;gap:var(--space-3)}.form-field:last-child{margin-bottom:0}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.form-row>.form-field{margin-bottom:0}.form-row>.span-full,.form-row>.full-width{grid-column:1 / -1}.date-range{display:flex;align-items:center;gap:var(--space-2)}.date-range input{flex:1;min-width:0}.date-range span{color:var(--text-muted);font-size:var(--fs-sm)}.form-section{display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:var(--space-5);margin-bottom:var(--space-5);border-bottom:var(--border-w) solid var(--border)}.form-section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}.form-section__title{margin:0;font-size:var(--fs-md);font-weight:var(--fw-semibold)}.form-label{display:inline-flex;align-items:center;gap:var(--space-1);margin:0;color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:var(--lh-snug)}.form-label--caps{display:inline-flex;align-items:center;gap:var(--space-1-5);margin:0;color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;white-space:nowrap}.filter-icon{flex-shrink:0;width:var(--icon);height:var(--icon);color:var(--primary-strong);stroke-width:2.5}.form-label .required,.required-mark{color:var(--danger);margin-left:var(--space-0-5)}.form-hint,.required-fields-note{display:block;color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.required-fields-note{margin-bottom:var(--space-4);font-size:var(--fs-sm)}.form-error{display:flex;align-items:center;gap:var(--space-1);color:var(--danger);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.form-control{width:100%;min-height:var(--control-h);padding:0 var(--space-3);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius);background-color:var(--surface);color:var(--text);font-family:inherit;font-size:var(--fs-base);line-height:var(--lh-normal);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background-color var(--dur) var(--ease)}:where(.form-field)>:where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range]),textarea){width:100%;min-height:var(--control-h);padding:0 var(--space-3);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius);background-color:var(--surface);color:var(--text);font:inherit}:where(.form-field)>textarea:not(.form-control){min-height:96px;padding:var(--space-2) var(--space-3);resize:vertical}:where(.form-field)>:where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range]),textarea):focus-visible{outline:none;border-color:var(--primary-strong);box-shadow:var(--focus-ring)}.form-control::placeholder{color:var(--text-subtle)}.form-control:hover:not(:disabled):not(:focus){border-color:var(--gray-500)}.form-control:focus,.form-control:focus-visible{outline:none;border-color:var(--primary-strong);box-shadow:var(--focus-ring)}.form-control:disabled,.form-control[readonly]{background-color:var(--surface-alt);color:var(--text-muted)}.form-control:disabled{color:var(--text-disabled);cursor:not-allowed}textarea.form-control{min-height:96px;padding:var(--space-2) var(--space-3);line-height:var(--lh-normal);resize:vertical}select.form-control{appearance:none;padding-right:var(--space-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%2364748b'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;background-size:var(--icon);cursor:pointer}select[multiple].form-control{padding:var(--space-2) var(--space-3)}@media(max-width:768px){.form-control,:where(.form-field)>:where(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=range]),textarea){font-size:var(--fs-md)}}.form-control.is-invalid,.form-control.ng-invalid.ng-touched:not(form){border-color:var(--danger-solid)}.form-control.is-invalid:focus,.form-control.ng-invalid.ng-touched:not(form):focus{border-color:var(--danger-solid);box-shadow:var(--focus-ring-danger)}.form-control--sm{min-height:var(--control-h-sm);font-size:var(--fs-sm)}.form-control--search{padding-left:var(--space-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:var(--space-3) center;background-size:var(--icon)}.form-control--date,input[type=month].form-control,input[type=date].form-control,input[type=time].form-control{cursor:pointer}.input-group{display:flex;align-items:stretch;min-width:0}.input-group>.form-control{flex:1;min-width:0}.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0}@media(pointer:coarse){.form-control{font-size:var(--fs-md)}}.check{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);color:var(--text);font-size:var(--fs-base);cursor:pointer}.check-list{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.choice-tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2);min-width:0}.choice-tag{position:relative;display:inline-flex;align-items:center;min-height:var(--control-h-sm);padding:0 var(--space-3);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-tight);cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.choice-tag:hover{border-color:var(--primary);background:var(--primary-softer);color:var(--primary-strong)}.choice-tag:has(input:checked),.choice-tag.is-selected,.choice-tag[aria-selected=true]{border-color:var(--primary-strong);background:var(--primary-strong);color:var(--on-primary)}.choice-tag:has(input:focus-visible){outline:var(--focus-outline);outline-offset:2px}.choice-tag:has(input:disabled),.choice-tag[aria-disabled=true]{opacity:var(--opacity-disabled);cursor:not-allowed}.choice-tag:has(input:disabled):hover,.choice-tag[aria-disabled=true]:hover{border-color:var(--border-strong);background:var(--surface);color:var(--text-muted)}.choice-tag:has(input:checked:disabled):hover{border-color:var(--primary-strong);background:var(--primary-strong);color:var(--on-primary)}.choice-tag>input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.switch{position:relative;display:inline-flex;flex-shrink:0;width:44px;height:24px;vertical-align:middle}.switch:has(>.switch__label){align-items:center;width:auto;min-height:24px;padding-left:calc(44px + var(--space-2));color:var(--text);font-size:var(--fs-sm);line-height:var(--lh-snug)}.switch:has(>.switch__label)>input{width:44px}.switch:has(>.switch__label)>.switch__track{right:auto;width:44px}.switch__label{white-space:normal}.switch input{position:absolute;inset:0;z-index:var(--z-base);width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.switch__track{position:absolute;inset:0;border-radius:var(--radius-pill);background:var(--gray-400);cursor:pointer;transition:background-color var(--dur) var(--ease)}.switch__track:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:var(--radius-round);background:var(--white);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease)}.switch input:checked+.switch__track{background:var(--success-solid)}.switch input:checked+.switch__track:before{transform:translate(20px)}.switch input:focus-visible+.switch__track{outline:var(--focus-outline);outline-offset:2px}.switch input:disabled+.switch__track{opacity:.5;cursor:not-allowed}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-6) var(--space-4);border:var(--border-w-thick) dashed var(--border-strong);border-radius:var(--radius);text-align:center;cursor:pointer;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.dropzone:is(:hover,.is-dragover,:focus-within){border-color:var(--primary-strong);background:var(--primary-softer)}.dropzone--static,.dropzone--static:hover{border-color:var(--border-medium);background:transparent;cursor:default}.dropzone__icon{color:var(--text-subtle);font-size:var(--fs-xl);line-height:1}.dropzone__title{color:var(--text);font-size:var(--fs-base);font-weight:var(--fw-semibold)}.dropzone__hint{color:var(--text-muted);font-size:var(--fs-xs)}.document-upload-group{width:100%}.document-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.document-upload-meta{display:flex;align-items:center;gap:var(--space-1-5);margin-top:var(--space-2);color:var(--text-strong);font-size:var(--fs-sm)}.document-upload-filename{color:var(--primary-strong);font-weight:var(--fw-medium)}.bulk-upload-template-copy{margin-bottom:var(--space-4);color:var(--text-strong);font-size:var(--fs-sm)}.bulk-upload-template-link{padding:0;border:0;background:transparent;font:inherit;color:var(--primary-strong);font-weight:var(--fw-semibold);text-decoration:underline;cursor:pointer}.bulk-upload-template-link--loading{color:var(--text-muted);text-decoration:none;cursor:not-allowed}.bulk-upload-row-errors-hint{margin-bottom:var(--space-1-5);font-weight:var(--fw-semibold)}.imagen-preview-list{display:flex;flex-wrap:wrap;gap:var(--space-3)}.imagen-preview-card{position:relative;display:flex;flex-direction:column;gap:var(--space-2)}.imagen-preview-card img{width:160px;height:120px;border:var(--border-w) solid var(--border);border-radius:var(--radius);object-fit:cover}.imagen-portada-badge{position:absolute;top:var(--space-1-5);left:var(--space-1-5);padding:var(--space-0-5) var(--space-1-5);border-radius:var(--radius-sm);background:var(--primary-strong);color:var(--on-primary);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.03em;pointer-events:none}.autocomplete{position:relative}.autocomplete__list{position:absolute;top:calc(100% + var(--space-1));left:0;right:0;z-index:var(--z-dropdown);max-height:240px;margin:0;padding:var(--space-1) 0;overflow-y:auto;list-style:none;border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.autocomplete__option,.autocomplete__list li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);color:var(--text);font-size:var(--fs-sm);cursor:pointer}:is(.autocomplete__option,.autocomplete__list li):is(:hover,[aria-selected=true],.is-active){background:var(--surface-hover)}:is(.autocomplete__option,.autocomplete__list li) i{flex-shrink:0;color:var(--primary-strong);font-size:var(--fs-xs)}app-date-range{display:block;min-width:0}.date-field{position:relative}.date-field__icon{position:absolute;top:50%;left:var(--space-3);color:var(--text-muted);pointer-events:none;transform:translateY(-50%)}.date-field__input.form-control{padding-left:var(--space-8);background-color:var(--surface);cursor:pointer}.date-field--disabled .date-field__input.form-control{cursor:not-allowed}}@layer components{.table-wrap{position:relative;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.table-wrap--scroll{max-height:480px;overflow:auto}.table-wrap--flat{border:0;border-radius:0;box-shadow:none}.table{width:100%;border-collapse:collapse;color:var(--text);font-family:var(--font-base);font-size:var(--fs-base);font-variant-numeric:tabular-nums}.table caption{padding:var(--space-3) var(--space-4);font-weight:var(--fw-semibold);text-align:left}.table thead th{position:sticky;top:0;z-index:var(--z-raised);padding:var(--space-3) var(--space-4);background:var(--primary-strong);color:var(--on-primary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:var(--lh-snug);text-align:left;vertical-align:middle;white-space:nowrap}.table tbody td{padding:var(--space-3) var(--space-4);border-bottom:var(--border-w) solid var(--border);color:var(--text);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background-color var(--dur-fast) var(--ease)}.table tbody tr:hover{background:var(--surface-alt)}.table tbody tr.is-selected{background:var(--primary-soft)}.table tfoot td{padding:var(--space-3) var(--space-4);border-top:var(--border-w) solid var(--border-medium);font-weight:var(--fw-semibold)}.table--striped tbody tr:nth-child(2n){background:var(--surface-alt)}.table--striped tbody tr:nth-child(2n):hover{background:var(--surface-hover)}.table.table--compact :is(thead th,tbody td,tfoot td){padding:var(--space-2) var(--space-3);font-size:var(--fs-sm)}.table--light thead th{background:var(--surface-alt);color:var(--text);border-bottom:var(--border-w) solid var(--border)}.table--fixed{table-layout:fixed}.table--wrap thead th{white-space:normal}.table .col-center{text-align:center}.table :is(.col-num,.col-right){text-align:right;font-variant-numeric:tabular-nums}.table .col-actions{width:1%;white-space:nowrap;text-align:right}.table .col-nowrap{white-space:nowrap}.table .col-truncate{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table__actions{display:inline-flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:var(--space-1)}.table .table__empty{padding:var(--space-10) var(--space-4);color:var(--text-muted);text-align:center;white-space:normal}.table th:has(>.table__sort){padding:0}.table__sort{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:var(--space-1);width:100%;padding:var(--space-3) var(--space-4);cursor:pointer}.table__sort:after{content:"\2195";font-size:var(--fs-xs);opacity:.55}.table th[aria-sort=ascending]>.table__sort:after{content:"\2191";opacity:1}.table th[aria-sort=descending]>.table__sort:after{content:"\2193";opacity:1}.table__sort:focus-visible{outline:var(--border-w-thick) solid var(--on-primary);outline-offset:-4px}@media(max-width:768px){.table :is(thead th,tbody td){padding:var(--space-2) var(--space-3)}}@media(max-width:576px){.table--stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.table--stack tr{display:block;padding:var(--space-3);border-bottom:var(--border-w) solid var(--border)}.table--stack tbody td{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-1) 0;border:0;text-align:right}.table--stack td:before{content:attr(data-label);color:var(--text-muted);font-weight:var(--fw-semibold);text-align:left}.table--stack td:is(.col-actions,.table__empty){justify-content:flex-end;width:auto}.table--stack td:is(.col-actions,.table__empty):before{content:none}}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2) var(--space-3);margin:var(--space-4) 0}.pagination__info{color:var(--text-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.pagination .btn[aria-current=page]{--_bg: var(--primary-strong);--_fg: var(--on-primary);--_bd: transparent;--_bg-hover: var(--primary-hover);--_fg-hover: var(--on-primary)}}@layer components{.badge{--_bg: var(--surface-alt);--_bd: var(--border);--_fg: var(--text-muted);display:inline-flex;align-items:center;gap:var(--space-1);max-width:100%;min-height:22px;padding:var(--space-0-5) var(--space-2);overflow:hidden;border:var(--border-w) solid var(--_bd);border-radius:var(--radius-pill);background:var(--_bg);color:var(--_fg);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:var(--lh-snug);text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.badge>i{font-size:.9em}.badge--success{--_bg: var(--success-bg);--_bd: var(--success-border);--_fg: var(--success)}.badge--warning{--_bg: var(--warning-bg);--_bd: var(--warning-border);--_fg: var(--warning)}.badge--danger{--_bg: var(--danger-bg);--_bd: var(--danger-border);--_fg: var(--danger)}.badge--info{--_bg: var(--info-bg);--_bd: var(--info-border);--_fg: var(--info)}.badge--accent{--_bg: var(--accent-bg);--_bd: var(--accent-border);--_fg: var(--accent)}.badge--teal{--_bg: var(--teal-bg);--_bd: var(--teal-border);--_fg: var(--teal)}.badge--brand{--_bg: var(--primary-soft);--_bd: var(--primary-border);--_fg: var(--primary-strong)}.badge--neutral{--_bg: var(--surface-alt);--_bd: var(--border);--_fg: var(--text-muted)}.badge--solid.badge--brand{--_bg: var(--primary-strong);--_bd: transparent;--_fg: var(--on-primary)}.badge--count{justify-content:center;min-width:20px;min-height:20px;padding:0 var(--space-1-5);border:0;background:var(--primary-strong);color:var(--on-primary);font-size:var(--fs-2xs);font-weight:var(--fw-bold);line-height:20px}.badge--square{border-radius:var(--radius-sm)}.badge--lg{justify-content:center;min-width:92px;min-height:26px;padding:var(--space-1) var(--space-3)}.badge-list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);min-width:0}}@layer components{.card{position:relative;display:flex;flex-direction:column;min-width:0;border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text)}.card--elevated{border-color:transparent;box-shadow:var(--shadow)}.card--flat{box-shadow:none}.card--muted{background:var(--surface-alt);box-shadow:none}.card--padded{padding:var(--space-5)}.card--hover,.card--interactive{transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.card--interactive{cursor:pointer}@media(hover:hover){:is(.card--hover,.card--interactive):hover{border-color:var(--primary-border);box-shadow:var(--shadow-lg);transform:translateY(-2px)}}:is(.card--hover,.card--interactive):focus-within{border-color:var(--primary-border)}.resources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));align-items:stretch;gap:24px}.resource-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;border:var(--border-w) solid color-mix(in srgb,var(--primary) 18%,var(--gray-200));border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.resource-preview{width:100%;height:clamp(150px,11vw,190px);overflow:hidden;background:var(--surface-sunken)}.resource-thumb{display:block;width:100%;height:100%;border:0;border-radius:0;background:var(--surface-sunken);object-fit:cover}.resource-thumb--placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:var(--fs-3xl);background:var(--surface-alt)}.resource-main{min-width:0;padding:18px 18px 0}.resource-head{margin-bottom:8px}.resource-title{margin:0;color:var(--text);font-size:var(--fs-lg);font-weight:700;line-height:1.25;text-transform:none}.resource-desc{min-height:42px;margin:0;color:var(--text-subtle);font-size:var(--fs-sm);line-height:1.5}.resource-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 18px 0}.resource-badges{display:flex;flex:1 1 0;flex-wrap:wrap;gap:4px;width:100%;margin:0}.badge-categoria{display:inline-block;padding:2px 8px;border-radius:var(--radius-lg);background:var(--primary-soft);color:var(--primary-strong);font-size:var(--fs-2xs);font-weight:500;white-space:nowrap}.resource-divider{height:1px;margin:16px 18px 0;background:var(--gray-200)}.resource-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%;padding:16px 18px 18px;margin-top:auto}.resource-actions-row{display:flex;align-items:center;gap:10px;width:100%}.resource-actions-row--primary .resource-action-btn{flex:1 1 0}.resource-actions-row--secondary{justify-content:space-between}.resource-action-btn{min-height:38px}.resource-status-control{display:inline-flex;flex-shrink:0;align-items:center;gap:8px;padding:4px 10px;border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface-alt)}.resource-status-label{color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.resource-switch{flex-shrink:0}.stats-btn{min-width:138px}@media(max-width:768px){.resource-preview{height:165px}.resource-actions-row,.resource-actions-row--secondary{flex-wrap:wrap}.resource-actions-row--primary .resource-action-btn,.resource-actions-row--secondary .resource-action-btn,.resource-status-control{width:100%}.resource-actions-row--secondary{justify-content:stretch}.resource-status-control{justify-content:space-between}}.card__link{color:inherit;text-decoration:none}.card__link:after{content:"";position:absolute;inset:0;border-radius:inherit}.card:has(.card__link) :is(button,a,input,select,label):not(.card__link){position:relative;z-index:var(--z-raised)}.card__link:focus-visible{outline:none}.card__link:focus-visible:after{outline:var(--focus-outline);outline-offset:2px}.card--accent-left{border-left:var(--border-w-accent) solid var(--card-accent, var(--primary))}.card__media{display:block;width:100%;aspect-ratio:16 / 9;border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;background:var(--surface-sunken);object-fit:cover}.card__media-wrap{position:relative}.card__media-badges{position:absolute;inset:var(--space-2) var(--space-2) auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-1)}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5) 0}.card__title,.project-title{margin:0;color:var(--text);font-size:var(--fs-md);font-weight:var(--fw-semibold);line-height:var(--lh-snug);overflow-wrap:anywhere}.card__subtitle{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.card__body{display:flex;flex:1;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-5);color:var(--text-strong)}.card__meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);color:var(--text-muted);font-size:var(--fs-sm)}.card__price{color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.card__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:var(--border-w) solid var(--border)}.card__footer--between{justify-content:space-between}.project-card{padding:var(--space-5);overflow:hidden}.project-title{margin-bottom:var(--space-1-5);font-size:var(--fs-lg)}.project-divider{height:var(--border-w);margin:var(--space-3) 0 var(--space-4);background:var(--border)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--card-min, 300px),100%),1fr));gap:var(--space-5)}.card-grid--sm{--card-min: 220px}.card-grid--lg{--card-min: 360px}}@layer components{.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-4);overflow-y:auto;background:var(--overlay);pointer-events:auto;animation:ls-fade-in var(--dur) var(--ease);overscroll-behavior:contain}.modal-overlay--nested{z-index:var(--z-modal-nested)}.modal{--modal-w: 560px;position:relative;display:flex;flex-direction:column;width:min(var(--modal-w),100%);max-height:min(90dvh,var(--modal-visual-height, 100dvh),960px);overflow:hidden;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);color:var(--text);animation:ls-scale-in var(--dur) var(--ease)}html .modal:has(>.ng-dropdown-panel){overflow:visible}.modal--sm{--modal-w: 420px}.modal--md{--modal-w: 720px}.modal--lg{--modal-w: 960px}.modal--xl{--modal-w: 1200px}.modal__header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-bottom:var(--border-w) solid var(--border)}.modal__title{margin:0;color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-snug)}.modal__subtitle{margin:var(--space-0-5) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.modal__header-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2)}.modal__tabs{flex-shrink:0;padding:0 var(--space-6);border-bottom:var(--border-w) solid var(--border)}.modal__body{flex:1;min-height:0;padding:var(--space-6);overflow-y:auto;overscroll-behavior:contain}.modal__footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:var(--border-w) solid var(--border);background:var(--surface)}.modal__footer--between{justify-content:space-between}.modal__section{padding-bottom:var(--space-5);margin-bottom:var(--space-5);border-bottom:var(--border-w) solid var(--border)}.modal__section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}.modal__section>:is(h3,h4,.section-title){margin-bottom:var(--space-3);color:var(--text);font-size:var(--fs-md);font-weight:var(--fw-semibold)}.modal--confirm .modal__body{padding:var(--space-8) var(--space-6) var(--space-4);text-align:center}.modal--confirm .modal__body :is(h2,h3){margin:0 0 var(--space-3);font-size:var(--fs-lg);font-weight:var(--fw-bold)}.modal--confirm .modal__body p:not(.modal__title){margin:0 0 var(--space-2);color:var(--text-muted)}.modal--confirm .modal__footer{justify-content:center;border-top:0}.modal__icon{display:inline-grid;place-items:center;width:48px;height:48px;margin-bottom:var(--space-3);border-radius:var(--radius-round);background:var(--danger-bg);color:var(--danger);font-size:var(--fs-xl)}.side-panel{--panel-w: 900px;position:fixed;top:0;right:0;bottom:0;z-index:var(--z-modal);display:flex;flex-direction:column;width:min(var(--panel-w),100vw);border-left:var(--border-w) solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);animation:ls-slide-in var(--dur-slow) var(--ease)}.side-panel--narrow{--panel-w: 600px}.side-panel--wide{--panel-w: 1100px}.side-panel__header,.side-panel__footer{display:flex;flex-shrink:0;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6)}.side-panel__header{justify-content:space-between;border-bottom:var(--border-w) solid var(--border)}.side-panel__title{margin:0;color:var(--text);font-size:var(--fs-xl);font-weight:var(--fw-semibold)}.side-panel__body{flex:1;min-height:0;padding:var(--space-6);overflow-y:auto;overscroll-behavior:contain}.side-panel__footer{justify-content:flex-end;gap:var(--space-2);border-top:var(--border-w) solid var(--border)}.config-bar{border-left:var(--border-w) solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg)}.detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:var(--space-3);width:100%;margin:0}.detail-list>:is(.detail-list__item--full,.full-width,.span-full){grid-column:1 / -1}.detail-list__item{min-width:0;margin:0;padding:var(--space-3) var(--space-4);border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface-alt);line-height:var(--lh-normal)}.detail-list dt{display:block;margin-bottom:var(--space-1);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.detail-list dd{display:block;margin:0;color:var(--text);line-height:var(--lh-normal);overflow-wrap:anywhere}.item-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface-alt);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.item-card:hover{border-color:var(--primary-border);box-shadow:var(--shadow-sm)}.item-card-row{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--fs-sm)}.item-card-row>strong{min-width:100px;color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.item-card-row>:is(span,input){flex:1;min-width:0;color:var(--text)}.item-card-actions{display:flex;gap:var(--space-2);padding-top:var(--space-2);margin-top:var(--space-2);border-top:var(--border-w) solid var(--border)}@media(max-width:768px){.modal-overlay{background:var(--surface)}:is(.modal__header,.modal__body,.modal__footer){padding-inline:var(--space-4)}.modal__body{padding-block:var(--space-4)}}@media(max-width:576px){.modal-overlay{place-items:end center;padding:0;overflow-x:hidden}.modal{width:100vw;max-width:100vw;max-height:min(92dvh,var(--modal-visual-height, 100dvh));border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation-name:ls-slide-up}.modal__footer{flex-direction:row;align-items:stretch;padding-block:var(--space-3);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom))}.modal__footer>.btn{flex:1 1 0;min-width:0;white-space:normal}.modal__footer>.btn:only-child{flex-basis:100%}.modal__body{overflow-x:hidden}.modal__body :is(.table-wrap,.table-scroll,.table-responsive){overflow-x:auto}.side-panel{top:0;width:100vw}}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal,.side-panel{animation:none}}}@layer components{.tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-6);padding:0;overflow-x:auto;overflow-y:hidden;list-style:none;border-bottom:var(--border-w) solid var(--border);scroll-snap-type:x proximity;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-2);min-height:var(--control-h);margin-bottom:calc(var(--border-w) * -1);padding:0 var(--space-4);border:0;border-bottom:var(--border-w-thick) solid transparent;background:none;color:var(--text-muted);font-family:var(--font-base);font-size:var(--fs-base);font-weight:var(--fw-medium);text-decoration:none;white-space:nowrap;cursor:pointer;scroll-snap-align:start;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.tab:hover{color:var(--text)}.tab:is([aria-selected=true],.is-active){border-bottom-color:var(--primary-strong);color:var(--primary-strong);font-weight:var(--fw-semibold)}.tab:focus-visible{outline-offset:-2px}.tab>:is(i,svg){flex-shrink:0;font-size:.95em}.tab__count{margin-left:var(--space-0-5)}.tabs--pill{width:fit-content;max-width:100%;padding:var(--space-1);border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.tabs--pill .tab{min-height:var(--control-h-sm);margin:0;padding:0 var(--space-4);border:0;border-radius:var(--radius)}.tabs--pill .tab:hover{background:var(--surface-hover)}.tabs--pill .tab:is([aria-selected=true],.is-active){background:var(--primary-strong);color:var(--on-primary)}.tabs--compact{gap:0;margin-bottom:var(--space-4)}.tabs--compact .tab{min-height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--fs-sm)}.tabs--full{width:100%}.tabs--full .tab{flex:1 1 0;justify-content:center}}@layer components{.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:200px;padding:var(--space-8) var(--space-5);border:var(--border-w) dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-alt);color:var(--text-muted);font-size:var(--fs-base);text-align:center}.empty-state__icon{color:var(--text-subtle);font-size:var(--fs-2xl)}.empty-state__title{margin:0;color:var(--text);font-size:var(--fs-md);font-weight:var(--fw-semibold)}.empty-state__text{max-width:48ch;margin:0;color:var(--text-muted);font-size:var(--fs-sm)}.empty-state__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.empty-state:not(:has(>i,>.empty-state__icon,>svg,>img)):before{content:"\f49e";color:var(--text-subtle);font-family:"Font Awesome 7 Free";font-size:var(--fs-2xl);font-weight:900;line-height:1}.empty-state--error{border-color:var(--danger-border);background:var(--danger-bg)}.empty-state--error .empty-state__icon{color:var(--danger)}.empty-state--success{border-color:var(--success-border);background:var(--success-bg)}.empty-state--success .empty-state__icon{color:var(--success)}.empty-state--compact{min-height:0;margin:var(--space-2) 0;padding:var(--space-4);border:var(--border-w) dashed var(--border-medium);border-radius:var(--radius);background:var(--surface-alt);color:var(--text-muted);font-size:var(--fs-sm);text-align:center}.empty-state--plain{min-height:0;padding:var(--space-5);border:0;background:none;color:var(--text-muted);text-align:center}.alert{--_bg: var(--info-bg);--_bd: var(--info-border);--_fg: var(--info);display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:var(--border-w) solid var(--_bd);border-radius:var(--radius);background:var(--_bg);color:var(--_fg);font-size:var(--fs-sm);line-height:var(--lh-normal)}.alert>i{margin-top:.15em;flex-shrink:0}.alert--success{--_bg: var(--success-bg);--_bd: var(--success-border);--_fg: var(--success)}.alert--warning{--_bg: var(--warning-bg);--_bd: var(--warning-border);--_fg: var(--warning)}.alert--danger{--_bg: var(--danger-bg);--_bd: var(--danger-border);--_fg: var(--danger)}.alert--brand{--_bg: var(--primary-softer);--_bd: var(--primary-border);--_fg: var(--text)}.alert__body{flex:1;min-width:0}.alert__title{display:block;margin-bottom:var(--space-0-5);font-weight:var(--fw-semibold)}.alert__actions{display:flex;flex-shrink:0;gap:var(--space-2)}.toast-region{position:fixed;top:calc(var(--header-h) + var(--space-4));right:var(--space-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);width:min(380px,calc(100vw - 2 * var(--space-4)));pointer-events:none}.toast{--_c: var(--info-solid);display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-w) solid var(--border);border-left:var(--border-w-accent) solid var(--_c);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium);pointer-events:auto;animation:ls-slide-up var(--dur) var(--ease)}.toast__icon{flex-shrink:0;margin-top:.2em;color:var(--_c);font-size:var(--fs-md)}.toast__message{flex:1;min-width:0;padding-top:var(--space-0-5);line-height:var(--lh-normal);overflow-wrap:anywhere}.toast__close{flex-shrink:0;margin:calc(var(--space-1) * -1) calc(var(--space-2) * -1) calc(var(--space-1) * -1) 0}.toast.is-leaving{opacity:0;transform:translate(var(--space-4));transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.toast--success{--_c: var(--success-solid)}.toast--warning{--_c: var(--warning-solid)}.toast--danger{--_c: var(--danger-solid)}.toast--info{--_c: var(--info-solid)}.loading-overlay,.loading-spinner{position:fixed;inset:0;z-index:var(--z-overlay);display:grid;place-items:center;background:var(--overlay-light);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-overlay--local{position:absolute;z-index:var(--z-sticky-local)}.spinner{width:40px;height:40px;border:var(--border-w-accent) solid var(--gray-200);border-top-color:var(--primary-strong);border-radius:var(--radius-round);animation:ls-spin .9s linear infinite}.spinner--sm{display:inline-block;width:var(--icon);height:var(--icon);border-width:var(--border-w-thick);vertical-align:middle}.spinner--on-brand{border-color:color-mix(in srgb,var(--on-primary) 35%,transparent);border-top-color:var(--on-primary)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--gray-100),var(--gray-200),var(--gray-100));background-size:200% 100%;animation:ls-shimmer 1.2s infinite}[data-tooltip]{position:relative}.tooltip-layer{position:fixed;z-index:var(--z-tooltip);max-width:260px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--gray-800);box-shadow:var(--shadow-sm);color:var(--white);font-family:var(--font-base);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:var(--lh-snug);text-align:center;overflow-wrap:anywhere;pointer-events:none;animation:ls-fade-in var(--dur-fast) var(--ease)}.tooltip-layer[hidden]{display:none}.popover{position:absolute;z-index:var(--z-dropdown);min-width:220px;max-width:320px;padding:var(--space-3) var(--space-4);border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--text);font-size:var(--fs-sm)}.menu{position:absolute;z-index:var(--z-dropdown);min-width:180px;margin:0;padding:var(--space-1);list-style:none;border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.menu__item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--control-h-sm);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font-size:var(--fs-sm);text-align:left;cursor:pointer}.menu__item:hover,.menu__item:focus-visible{background:var(--surface-hover)}.menu__item--danger{color:var(--danger)}}@layer components{.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-4);width:100%;margin-bottom:var(--space-6);padding:var(--space-5);border:var(--border-w) solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-sm)}.filters--compact{gap:var(--space-3);padding:var(--space-4)}.filters--flat{padding:0;border:0;background:none;box-shadow:none}.filters__field{position:relative;display:flex;flex:1 1 200px;flex-direction:column;gap:var(--space-1-5);min-width:min(180px,100%);max-width:100%}.filters__field:has(app-year-range-picker){flex-basis:280px}.filters__field--sm{flex:0 1 150px}.filters__field--lg{flex:1 1 300px}.filters__field--full{flex:1 1 100%}.filters__actions{display:flex;flex:0 0 auto;flex-direction:row;align-items:flex-end;gap:var(--space-2);min-width:auto;margin-left:auto}.filters__actions .btn{white-space:nowrap}.full-width{flex:1 1 100%}.filters-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;min-height:var(--control-h-sm);padding:0 var(--space-3);border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface-alt);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-align:left;cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.filters-toggle:hover{border-color:var(--border-medium);background:var(--surface-hover)}.filters-toggle span:last-child{font-size:var(--fs-lg);line-height:1}@media(max-width:768px){.filters{padding:var(--space-4);border-radius:var(--radius-lg)}.filters__field,.filters__field--sm,.filters__field--lg{flex-basis:100%}.filters__actions{width:100%;margin-left:0;flex-wrap:wrap}.filters__actions .btn{flex:1 1 min(160px,100%);min-width:0;white-space:normal}.filters.is-collapsed>:not(.filters-toggle){display:none}}.toolbar__filters>:is(select,.form-control,app-date-range,ng-select){flex:0 1 auto;width:auto;min-width:200px}.toolbar__filters>input.form-control[ngxdaterangepickermd],.toolbar__filters>app-date-range{min-width:240px}@media(max-width:576px){.toolbar__filters>:is(select,.form-control,app-date-range,ng-select){flex:1 1 100%}}}@layer components{.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--space-5);margin-bottom:var(--space-8)}.kpi-grid--compact{margin-bottom:var(--space-3)}.kpi-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:576px){.kpi-grid--2{grid-template-columns:minmax(0,1fr)}}.kpi-stack{display:flex;flex:1;flex-direction:column;gap:var(--space-4);min-width:0}.impact-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr))}.impact-kpi-row .kpi{grid-column:span 2}.impact-kpi-row .kpi:nth-child(4),.impact-kpi-row .kpi:nth-child(5){grid-column:span 3}.kpi{position:relative;display:flex;flex-direction:column;gap:var(--space-1);min-width:0;padding:var(--space-5) var(--space-6);overflow:hidden;border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--border-w-accent);background:var(--kpi-accent, var(--primary))}.kpi__label{display:inline-flex;align-items:center;gap:var(--space-1-5);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.kpi__value{color:var(--text);font-size:var(--fs-3xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.kpi__meta{color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.kpi__icon{margin-bottom:var(--space-1);color:var(--text-muted);font-size:var(--fs-lg)}.kpi__delta{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.kpi__delta--up{color:var(--success)}.kpi__delta--down{color:var(--danger)}.kpi--1{--kpi-accent: var(--chart-color-1)}.kpi--2{--kpi-accent: var(--chart-color-3)}.kpi--3{--kpi-accent: var(--chart-color-2)}.kpi--4{--kpi-accent: var(--chart-color-4)}.kpi--5{--kpi-accent: var(--chart-color-5)}.kpi--6{--kpi-accent: var(--chart-color-6)}.kpi--plain:before{content:none}.kpi--wide{grid-column:span 2}@media(max-width:768px){.kpi--wide{grid-column:auto}}@media(max-width:1024px){.impact-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.impact-kpi-row .kpi,.impact-kpi-row .kpi:nth-child(4),.impact-kpi-row .kpi:nth-child(5){grid-column:span 1}}@media(max-width:576px){.kpi-grid{gap:var(--space-3);margin-bottom:var(--space-6)}.kpi{padding:var(--space-4)}.kpi__value{font-size:var(--fs-2xl)}.impact-kpi-row{grid-template-columns:1fr}}}@layer components{.chart-title-note{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--text-muted)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--chart-min, 420px),100%),1fr));gap:var(--space-5);width:100%;margin-bottom:var(--space-6)}.chart-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.chart-grid--dense{--chart-min: 220px}.chart-grid--2-1-1{grid-template-columns:2fr 1fr 1fr}.chart-grid--1-3{grid-template-columns:1fr 3fr}.chart-grid--tight{gap:var(--space-3)}@media(max-width:1280px){:is(.chart-grid--4,.chart-grid--2-1-1){grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid--2-1-1>:first-child{grid-column:1 / -1}}@media(max-width:1024px){.chart-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid--1-3{grid-template-columns:1fr}}@media(max-width:768px){:is(.chart-grid--2,.chart-grid--3,.chart-grid--4,.chart-grid--2-1-1){grid-template-columns:1fr}}.chart-card{--chart-h: var(--chart-height);display:flex;flex-direction:column;min-width:0}.chart-card:not(graphic-library){height:var(--chart-h);padding:var(--space-4);border:var(--border-w) solid var(--chart-card-border);border-radius:var(--chart-card-radius);background:var(--chart-card-bg);box-shadow:var(--chart-card-shadow)}.chart-card--tall{--chart-h: var(--chart-height)}.chart-card--auto{--chart-h: auto}:is(.chart-card--auto):not(graphic-library){height:auto}.span-full{grid-column:1 / -1}.chart-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.chart-card__title{margin:0;color:var(--chart-title-color);font-size:var(--chart-title-size);font-weight:var(--chart-title-weight);line-height:var(--lh-snug)}.chart-card__actions{display:flex;flex-shrink:0;gap:var(--space-1)}.chart-card__body{position:relative;flex:1;min-height:0}.chart-card__legend{max-height:120px;overflow-y:auto}.chart-card__source{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--fs-xs)}.unified-chart-container{container-type:inline-size;padding:var(--space-5);margin-top:var(--space-2);margin-bottom:var(--space-6);border-radius:var(--radius);background:var(--surface-alt)}.unified-charts-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:var(--space-4)}.unified-charts-grid>:is(graphic-library,.empty-state){width:100%;min-width:0;max-width:none;height:var(--chart-height);min-height:var(--chart-height);max-height:var(--chart-height)}@container (min-width: 560px){.unified-charts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 900px){.unified-charts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width: 1440px){:is(.comparative-charts-grid,.audience-distribution-grid,.impact-charts-grid){grid-template-columns:repeat(6,minmax(0,1fr))}}.unified-chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-8);padding-top:var(--space-1);margin-top:var(--space-5);border:0}.unified-chart-legend .legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-base);font-weight:var(--fw-medium)}.unified-chart-legend .legend-color{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-sm)}.unified-chart-legend .legend-color.instagram{background:var(--chart-color-1)}.unified-chart-legend .legend-color.facebook{background:var(--chart-color-2)}.map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);color:var(--text-muted);font-size:var(--fs-sm)}.map-legend .legend-dot{display:inline-block;width:var(--space-3);height:var(--space-3);margin-left:var(--space-4);border-radius:var(--radius-round)}.map-legend .legend-low{margin-left:0;background:var(--chart-level-low)}.map-legend .legend-high{background:var(--chart-level-high)}@media(max-width:576px){:root,.chart-card{--chart-height: 320px;--chart-h: 320px}}}@layer components{.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3);padding:0 var(--space-1)}.month-title{margin:0;color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-bold);text-transform:capitalize}.cal-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap-size);height:var(--tap-size);border:0;border-radius:var(--radius-round);background:transparent;color:var(--primary-strong);font-size:var(--fs-xl);cursor:pointer;transition:background-color var(--dur) var(--ease)}.cal-btn:hover{background:var(--surface-hover)}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:var(--space-1);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-align:center;text-transform:uppercase}.calendar-grid{display:grid;grid-template-rows:repeat(6,1fr)}.week-row{display:grid;grid-template-columns:repeat(7,1fr)}.day{display:flex;align-items:center;justify-content:center;min-height:var(--control-h-sm);margin:var(--space-0-5);padding:var(--space-1) 0;border:0;border-radius:var(--calendar-border-radius);background:transparent;color:var(--text);font-size:var(--fs-md);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.day:hover{background:var(--calendar-hover-bg)}.day.dimmed{color:var(--text-disabled)}.day:is(.disabled-day,:disabled){color:var(--calendar-disabled-color);opacity:.45;pointer-events:none}.day:is(.selected,.selected-day,[aria-pressed=true],[aria-selected=true]){background:var(--calendar-selected-bg);color:var(--on-primary);font-weight:var(--fw-bold)}.day:is(.range-start,.range-end){background:var(--calendar-selected-bg);color:var(--on-primary);font-weight:var(--fw-bold)}.day.in-range{background:var(--secondary-soft);color:var(--text)}.day.today{outline:var(--border-w) solid var(--primary-border);outline-offset:-1px}}@layer components{.hero{--hero-h: 420px;--hero-content-w: 960px;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-height:var(--hero-h);padding:var(--space-12) var(--space-6);overflow:clip;background:var(--gray-800) var(--hero-img, none) center / cover no-repeat;color:var(--white);text-align:center}.hero:before,.hero:after{content:"";position:absolute;inset:0;z-index:var(--z-below)}.hero:before{background:inherit;filter:blur(6px) brightness(.75);transform:scale(1.08)}.hero:after{background:var(--scrim-hero)}.hero--lg{--hero-h: 480px;--hero-content-w: 1020px}.hero--sm{--hero-h: 280px}.hero--sharp:before{filter:none;transform:none}.hero__content{width:min(100%,var(--hero-content-w));margin-inline:auto}.hero__title{margin:0;color:var(--white);font-size:var(--fs-display);font-weight:var(--fw-bold);line-height:var(--lh-tight);text-wrap:balance}.hero__subtitle{max-width:72ch;margin:var(--space-4) auto 0;color:color-mix(in srgb,var(--white) 92%,transparent);font-size:var(--fs-lg);line-height:var(--lh-normal);text-wrap:pretty}.hero__content>:is(.hero__title,.hero__subtitle)+:not(.hero__subtitle){margin-top:var(--space-6)}@media(max-width:768px){.hero{--hero-h: 340px;padding:var(--space-10) var(--space-4)}.hero--lg{--hero-h: 420px}.hero--sm{--hero-h: 220px}.hero__subtitle{font-size:var(--fs-md)}}@media(max-width:576px){.hero{--hero-h: 300px}.hero--sm{--hero-h: 200px}}}@layer components{.listing-page{min-height:60vh;padding-bottom:var(--space-10);background:var(--surface-hover)}.listing-page__content{display:flex;flex-direction:column;gap:var(--space-8);width:min(100%,1180px);margin-inline:auto;padding:var(--space-10) var(--space-6) 0}.listing-section__header{margin-bottom:var(--space-5)}.listing-section__title{margin:0;color:var(--text);font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.listing-section__subtitle{margin:var(--space-1-5) 0 0;color:var(--text-muted);font-size:var(--fs-md)}.listing-results{margin:0;color:var(--text-muted);font-size:var(--fs-base);font-weight:var(--fw-semibold);text-align:right}.listing-search{width:min(100%,540px);margin-inline:auto;text-align:left}.listing-search__input{min-height:56px;padding-inline:var(--space-12) var(--space-6);border-color:transparent;border-radius:var(--radius-pill);background-position:var(--space-5) center;background-size:var(--icon-lg);box-shadow:var(--shadow-lg);font-size:var(--fs-lg)}.listing-search .autocomplete__list{max-height:280px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.listing-search .autocomplete__option{justify-content:space-between;min-height:var(--tap-size);padding-inline:var(--space-4);font-size:var(--fs-base)}.listing-search__meta{flex-shrink:0;color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.listing-hero-actions{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:var(--space-4)}.listing-hero-actions>.listing-search{margin-inline:0}.listing-hero-actions>.btn{min-height:56px;box-shadow:var(--shadow-lg)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip-list--center{justify-content:center}.chip{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-size);padding:var(--space-2) var(--space-4);border:var(--border-w-thick) solid var(--primary-border);border-radius:var(--radius-pill);background:var(--surface);color:var(--primary-strong);font-family:var(--font-base);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:var(--lh-tight);cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.chip:hover{border-color:var(--primary);background:var(--primary-softer)}.chip:focus-visible{outline:var(--focus-outline);outline-offset:2px}.chip:is([aria-pressed=true],.is-active){border-color:var(--primary-strong);background:var(--primary-strong);color:var(--on-primary)}.chip--sm{min-height:var(--control-h-sm);padding:var(--space-1) var(--space-3);border-width:var(--border-w);font-size:var(--fs-xs)}.product-card{overflow:hidden}.product-card .card__media-badges .badge{box-shadow:var(--shadow-sm)}.product-card__price{--_bg: var(--surface);--_fg: var(--text);--_bd: var(--border);margin-left:auto}.product-card__placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-subtle);font-size:var(--fs-3xl)}.product-card .card__body{gap:var(--space-3)}.product-card__description{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:var(--lh-normal)}.product-card__note{margin:0;color:var(--text-muted);font-size:var(--fs-sm)}.product-card__cta{margin-top:auto}.card-stretch:after{content:"";position:absolute;inset:0;border-radius:inherit}.card-stretch--text{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit;cursor:pointer}.card-stretch--text:focus-visible{outline:none}.card-stretch--text:focus-visible:after{outline:var(--focus-outline);outline-offset:2px}@media(max-width:768px){.listing-page__content{gap:var(--space-6);padding:var(--space-8) var(--space-4) 0}.listing-section__title{font-size:var(--fs-xl)}.listing-hero-actions{flex-direction:column;align-items:center}.listing-hero-actions>:is(.listing-search,.btn){width:min(100%,540px)}}@media(prefers-reduced-motion:reduce){.chip{transition:none}}}@layer components{.chat-popup-overlay{position:fixed;bottom:20px;right:20px;width:350px;height:500px;border-radius:var(--radius-xl);background-color:var(--surface);box-shadow:var(--shadow-lg);z-index:var(--z-modal);display:flex;flex-direction:column;overflow:hidden;animation:ls-chat-slide-up .3s ease-out}.chat-popup-overlay .chat-popup{display:flex;flex-direction:column;height:100%}.chat-popup-overlay .chat-popup.fullscreen-layout{flex-direction:row}.chat-popup-overlay .history-tab{width:20px;flex-shrink:0;display:flex;align-items:flex-start;justify-content:flex-end;background:transparent;cursor:pointer;overflow:visible;position:relative}.chat-popup-overlay .history-tab__handle{padding:0;cursor:pointer;position:absolute;top:18px;right:0;width:28px;height:80px;background:var(--surface);border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));border-right:none;border-radius:var(--radius) 0 0 var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--primary-strong);font-size:var(--fs-sm);transition:background .2s,box-shadow .2s,color .2s;z-index:var(--z-sticky-local)}.chat-popup-overlay .history-tab__handle i:last-child{font-size:var(--fs-2xs);opacity:.65}.chat-popup-overlay .history-tab:hover .history-tab__handle{background:color-mix(in srgb,var(--primary) 7%,var(--surface));box-shadow:var(--shadow)}.chat-popup-overlay .history-tab.tab-open .history-tab__handle{background:var(--primary-strong);color:var(--white);border-color:var(--primary);box-shadow:var(--shadow)}.chat-popup-overlay .history-tab.tab-open .history-tab__handle i:last-child{opacity:.85}.chat-popup-overlay .chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.chat-popup-overlay .chat-popup-header{background-color:var(--primary-strong);color:var(--white);padding:15px 20px;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:var(--fs-lg)}.chat-popup-overlay .chat-popup-header h3{margin:0;font-size:var(--fs-lg)}.chat-popup-overlay .close-chat-button{background:none;border:none;color:var(--white);font-size:var(--fs-xl);cursor:pointer}.chat-popup-overlay .chat-popup-content{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:15px;background-color:var(--surface)}.chat-popup-overlay .chat-message{padding:12px 16px;border-radius:var(--radius-xl);max-width:80%;font-size:var(--fs-md);line-height:1.4;word-wrap:break-word}.chat-popup-overlay .chat-message p{margin:0 0 4px}.chat-popup-overlay .chat-message p:last-child{margin-bottom:0}.chat-popup-overlay .chat-message ul,.chat-popup-overlay .chat-message ol{margin:4px 0;padding-left:18px}.chat-popup-overlay .chat-message li{margin-bottom:2px;line-height:1.4}.chat-popup-overlay .chat-message h1{margin:8px 0 2px;font-size:var(--fs-md);font-weight:700}.chat-popup-overlay .chat-message h2{margin:6px 0 2px;font-size:var(--fs-md);font-weight:700}.chat-popup-overlay .chat-message h3{margin:6px 0 2px;font-size:var(--fs-base);font-weight:700}.chat-popup-overlay .chat-message h4{margin:4px 0 2px;font-size:var(--fs-sm);font-weight:600;color:var(--text-muted)}.chat-popup-overlay .chat-message.bot{align-self:flex-start;background-color:var(--gray-200);color:var(--text-strong);max-width:95%}.chat-popup-overlay .chat-message table{display:block;overflow-x:auto;border-collapse:collapse;max-width:100%;font-size:var(--fs-xs);margin:4px 0}.chat-popup-overlay .chat-message th,.chat-popup-overlay .chat-message td{border:1px solid var(--border-strong);padding:5px 10px;text-align:left;white-space:nowrap}.chat-popup-overlay .chat-message th{background-color:var(--gray-300);font-weight:600}.chat-popup-overlay .chat-message tr:nth-child(2n) td{background-color:var(--gray-100)}.chat-popup-overlay .chat-message code{background:var(--overlay-subtle);border-radius:var(--radius-sm);padding:1px 4px;font-family:var(--font-mono);font-size:var(--fs-sm)}.chat-popup-overlay .chat-message.user{align-self:flex-end;background-color:var(--third-strong);color:var(--white)}.chat-popup-overlay .chat-popup-footer{padding:10px 15px;border-top:1px solid var(--border);flex-shrink:0}.chat-popup-overlay .chat-input-wrapper{display:flex;flex-direction:column;gap:6px;width:100%}.chat-popup-overlay .chat-input-row{display:flex;align-items:center;gap:10px;width:100%}.chat-popup-overlay .chat-input{flex:1;min-width:0;min-height:44px;max-height:140px;padding:12px;border:1px solid var(--border-medium);border-radius:var(--radius);font-size:var(--fs-base);line-height:1.4;resize:none;overflow-y:auto}.chat-popup-overlay .send-button{background-color:var(--primary);border:none;border-radius:var(--radius);padding:10px;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-popup-overlay .send-button:hover:not(:disabled){background-color:var(--secondary)}.chat-popup-overlay .send-button:disabled{opacity:.55;cursor:not-allowed}.chat-popup-overlay .send-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-lg);height:var(--icon-lg);font-size:var(--fs-xl);line-height:1;color:var(--white)}.chat-popup-overlay .chat-disclaimer{font-size:var(--fs-2xs);line-height:1.35;color:var(--text-muted);padding:0 2px;text-align:center}.chat-bubble{position:fixed;bottom:20px;right:20px;width:60px;height:60px;background-color:var(--primary);border-radius:var(--radius-round);display:flex;justify-content:center;align-items:center;cursor:pointer;box-shadow:var(--shadow);z-index:var(--z-floating)}.chat-bubble:hover{background-color:var(--secondary)}.chat-bubble .chat-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-xl);height:var(--icon-xl);font-size:var(--fs-2xl);line-height:1}.chat-popup-overlay .fullscreen-button{background:none;border:none;color:var(--white);font-size:var(--fs-lg);cursor:pointer;padding:0;margin:0}.chat-popup-overlay.fullscreen{position:fixed;top:60px;left:220px;width:calc(100vw - 220px);height:calc(100vh - 60px);border-radius:0;margin:0;z-index:var(--z-floating);transition:left .3s ease,width .3s ease}body.sidebar-collapsed .chat-popup-overlay.fullscreen{left:65px;width:calc(100vw - 65px)}.chat-popup-overlay .expand-button{background:none;border:none;color:var(--white);font-size:var(--fs-2xl);font-weight:700;cursor:pointer;padding:0 6px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.chat-popup-overlay .expand-button:hover{color:var(--text-subtle)}.chat-popup-overlay .chat-header-button{background:none;border:none;color:var(--white);font-size:var(--fs-xl);font-weight:700;cursor:pointer;padding:0 4px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.chat-popup-overlay .chat-header-button:hover{color:var(--text-subtle)}.chat-popup-overlay .header-buttons{display:flex;align-items:center;gap:8px}.chat-popup-overlay .chat-message.error{border-left:3px solid var(--danger-solid)}.chat-popup-overlay .retry-button{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:4px 10px;font-size:var(--fs-xs);border:1px solid var(--danger-solid);border-radius:var(--radius);background:var(--surface);color:var(--danger);cursor:pointer;transition:background .2s,color .2s}.chat-popup-overlay .retry-button:hover{background:var(--danger-solid);color:var(--white)}.chat-popup-overlay .typing-indicator{display:flex;align-items:center;gap:6px;padding:12px 16px;background-color:var(--gray-200);color:var(--text-strong);border-radius:var(--radius-xl);max-width:80%;font-size:var(--fs-md);line-height:1.4;word-wrap:break-word;width:fit-content;align-self:flex-start}.chat-popup-overlay .typing-indicator .dot{width:8px;height:8px;background-color:var(--gray-600);border-radius:var(--radius-round);animation:ls-chat-blink 1.4s infinite ease-in-out both}.chat-popup-overlay .typing-indicator .dot:nth-child(2){animation-delay:.2s}.chat-popup-overlay .typing-indicator .dot:nth-child(3){animation-delay:.4s}.chat-popup-overlay .status-message{margin-left:6px;font-size:var(--fs-sm);color:var(--text-muted);animation:ls-chat-fade-in .4s ease}@keyframes ls-chat-fade-in{0%{opacity:0}to{opacity:1}}.chat-popup-overlay .chat-mode-selector{display:flex;justify-content:space-between;padding:10px 15px;background-color:var(--surface-alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.chat-popup-overlay .mode-button{flex:1;margin:0 3px;padding:3px 8px;border:1px solid var(--border-medium);background-color:var(--surface);color:var(--text-strong);font-size:var(--fs-md);border-radius:var(--radius);cursor:pointer;transition:all .2s ease}@keyframes ls-chat-blink{0%,80%,to{opacity:0}40%{opacity:1}}@keyframes ls-chat-slide-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.chat-popup-overlay .chat-history-sidebar,.chat-popup-overlay .chat-history-panel{display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.chat-popup-overlay .chat-history-sidebar{width:260px;flex-shrink:0;border-left:1px solid var(--border);animation:ls-chat-slide-in-right .22s ease-out}@keyframes ls-chat-slide-in-right{0%{width:0;opacity:0}to{width:260px;opacity:1}}.chat-popup-overlay .chat-history-panel{flex:1}.chat-popup-overlay .history-sidebar-header,.chat-popup-overlay .history-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;font-size:var(--fs-sm);font-weight:600;color:var(--text);flex-shrink:0;border-bottom:1px solid var(--border)}.chat-popup-overlay .history-header-actions{display:flex;align-items:center;gap:4px}.chat-popup-overlay .chat-header-button.history-close-btn{color:var(--text-subtle);font-size:var(--fs-md);transition:color .15s}.chat-popup-overlay .chat-header-button.history-close-btn:hover{color:var(--text-muted)}.chat-popup-overlay .history-btn-active{opacity:.75;background:var(--surface-alpha-15);border-radius:var(--radius)}.chat-popup-overlay .new-chat-btn{margin:10px 10px 6px;padding:9px 12px;border:1.5px dashed color-mix(in srgb,var(--primary) 40%,var(--border-medium));background:transparent;color:var(--primary-strong);border-radius:var(--radius);font-size:var(--fs-sm);font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .18s,border-color .18s,color .18s;flex-shrink:0}.chat-popup-overlay .new-chat-btn:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface));border-color:var(--primary)}.chat-popup-overlay .history-list{flex:1;overflow-y:auto;padding:4px 0 12px;scrollbar-width:thin;scrollbar-color:var(--gray-200) transparent}.chat-popup-overlay .history-list::-webkit-scrollbar{width:4px}.chat-popup-overlay .history-list::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:var(--radius-sm)}.chat-popup-overlay .history-group-label{padding:14px 14px 5px;font-size:var(--fs-2xs);font-weight:600;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.5px}.chat-popup-overlay .history-item{position:relative;display:flex;align-items:center;gap:6px;padding:8px 12px;margin:1px 6px;border-radius:var(--radius);cursor:pointer;transition:background .15s;overflow:hidden}.chat-popup-overlay .history-item:hover{background:var(--surface-hover)}.chat-popup-overlay .history-item.active{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.chat-popup-overlay .history-item.active:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--primary)}.chat-popup-overlay .history-item-title{padding:0;border:0;background:none;font:inherit;text-align:left;cursor:pointer;flex:1;font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}.chat-popup-overlay .history-item.active .history-item-title{color:var(--text);font-weight:500}.chat-popup-overlay .rename-btn{flex-shrink:0;background:none;border:none;padding:3px 5px;cursor:pointer;color:var(--text-subtle);font-size:var(--fs-2xs);border-radius:var(--radius-sm);opacity:0;transition:opacity .15s,color .15s,background .15s}.chat-popup-overlay .history-item:hover .rename-btn{opacity:1}.chat-popup-overlay .rename-btn:hover{color:var(--primary-strong);background:color-mix(in srgb,var(--primary) 10%,var(--surface))}.chat-popup-overlay .rename-wrapper{display:flex;align-items:center;gap:4px;width:100%}.chat-popup-overlay .rename-input{flex:1;min-width:0;padding:4px 7px;font-size:var(--fs-sm);border:1px solid var(--primary);border-radius:var(--radius);outline:none;font-weight:400;color:var(--text);background:var(--surface)}.chat-popup-overlay .rename-action-btn{flex-shrink:0;width:24px;height:24px;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xs);transition:background .15s,color .15s}.chat-popup-overlay .rename-action-btn--confirm{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary-strong)}.chat-popup-overlay .rename-action-btn--confirm:hover{background:var(--primary-strong);color:var(--white)}.chat-popup-overlay .rename-action-btn--cancel{background:var(--surface-hover);color:var(--text-subtle)}.chat-popup-overlay .rename-action-btn--cancel:hover{background:var(--gray-200);color:var(--text-muted)}.chat-popup-overlay .history-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;text-align:center}.chat-popup-overlay .history-empty i{font-size:var(--fs-2xl);color:var(--gray-300);margin-bottom:4px}.chat-popup-overlay .history-empty-title{font-size:var(--fs-base);font-weight:600;color:var(--text-muted)}.chat-popup-overlay .history-empty-sub{font-size:var(--fs-xs);color:var(--text-subtle);line-height:1.55}.chat-popup-overlay .history-empty-cta{margin-top:10px;padding:8px 16px;border:1.5px dashed color-mix(in srgb,var(--primary) 40%,var(--border-medium));background:transparent;color:var(--primary-strong);border-radius:var(--radius);font-size:var(--fs-sm);font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .18s,border-color .18s}.chat-popup-overlay .history-empty-cta:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface));border-color:var(--primary)}@media(max-width:1024px){.chat-popup-overlay{width:320px;height:450px}.chat-popup-overlay.fullscreen{top:60px;left:220px;width:calc(100vw - 220px);height:calc(100vh - 60px);transition:left .3s ease,width .3s ease}body.sidebar-collapsed .chat-popup-overlay.fullscreen{left:65px;width:calc(100vw - 65px)}.chat-popup-overlay .chat-popup-header{padding:12px 16px}.chat-popup-overlay .chat-popup-header h3{font-size:var(--fs-md)}.chat-popup-overlay .chat-popup-content{padding:15px;gap:12px}.chat-popup-overlay .chat-message{font-size:var(--fs-base);padding:10px 14px}}@media(max-width:1024px){.chat-popup-overlay.fullscreen{top:60px;left:0;width:100vw;height:calc(100vh - 60px)}}@media(max-width:768px){.chat-popup-overlay{bottom:10px;right:10px;width:calc(100vw - 20px);max-width:400px;height:60vh;max-height:500px}.chat-popup-overlay.fullscreen{top:60px;left:0;width:100vw;height:calc(100dvh - 60px);border-radius:0}.chat-popup-overlay .chat-popup-header{padding:12px 15px}.chat-popup-overlay .chat-popup-header h3{font-size:var(--fs-md)}.chat-popup-overlay .expand-button{font-size:var(--fs-xl)}.chat-popup-overlay .chat-header-button{font-size:var(--fs-lg)}.chat-popup-overlay .chat-popup-content{padding:12px;gap:10px}.chat-popup-overlay .chat-message{max-width:85%;font-size:var(--fs-base);padding:10px 12px;border-radius:var(--radius-lg)}.chat-popup-overlay .chat-popup-footer{padding:8px 12px}.chat-popup-overlay .chat-input{padding:10px;font-size:var(--fs-md)}.chat-popup-overlay .send-button{padding:8px}.chat-bubble{bottom:15px;right:15px;width:55px;height:55px}.chat-popup-overlay .typing-indicator{padding:10px 12px;font-size:var(--fs-base)}.chat-popup-overlay .typing-indicator .dot{width:7px;height:7px}.chat-popup-overlay .mode-button{font-size:var(--fs-sm);padding:6px 8px}.chat-popup-overlay .chat-mode-selector{padding:8px 12px;flex-wrap:wrap;gap:6px}}@media(max-width:576px){.chat-popup-overlay{bottom:0;right:0;width:100vw;max-width:100vw;height:70vh;max-height:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.chat-popup-overlay.fullscreen{top:55px;left:0;width:100vw;height:calc(100dvh - 55px);border-radius:0}.chat-popup-overlay .chat-popup-header{padding:10px 12px}.chat-popup-overlay .chat-popup-header h3{font-size:var(--fs-base)}.chat-popup-overlay .expand-button{font-size:var(--fs-xl)}.chat-popup-overlay .chat-header-button{font-size:var(--fs-md)}.chat-popup-overlay .chat-popup-content{padding:10px;gap:8px}.chat-popup-overlay .chat-message{max-width:88%;font-size:var(--fs-sm);padding:8px 10px}.chat-popup-overlay .chat-popup-footer{padding:8px 10px;gap:8px}.chat-popup-overlay .chat-input{padding:8px 10px;font-size:var(--fs-sm);border-radius:var(--radius)}.chat-popup-overlay .send-button{padding:8px;border-radius:var(--radius)}.chat-bubble{bottom:10px;right:10px;width:50px;height:50px}.chat-popup-overlay .mode-button{font-size:var(--fs-xs);padding:5px 6px}}.chat-popup-overlay .chat-message__chart{display:block;max-width:100%;margin-top:var(--space-2);border-radius:var(--radius)}.chat-popup-overlay .history-item-title:after{content:"";position:absolute;inset:0;border-radius:inherit}.chat-popup-overlay .history-item-title:focus-visible{outline:none}.chat-popup-overlay .history-item:has(.history-item-title:focus-visible){outline:var(--focus-outline);outline-offset:-2px}.chat-popup-overlay .history-item .rename-btn{position:relative;z-index:var(--z-raised)}.chat-popup-overlay .chat-popup.has-history-sidebar{flex-direction:row}.chat-popup-overlay .history-item-title-row{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-0-5)}.chat-popup-overlay .history-item-meta{display:flex;justify-content:space-between;gap:var(--space-2);color:var(--text-muted);font-size:var(--fs-2xs)}}@layer utilities{[hidden]{display:none!important}.chart-host canvas,.qr-thumb canvas,.qr-thumb img,.qrp-preview-box canvas,.qrp-preview-box img{width:100%!important;height:100%!important}.visually-hidden,.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}.text-muted{color:var(--text-muted)!important}.text-danger{color:var(--danger)!important}.text-success{color:var(--success)!important}.text-sm{font-size:var(--fs-sm)!important}.text-xs{font-size:var(--fs-xs)!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.fw-semibold{font-weight:var(--fw-semibold)!important}.nowrap{white-space:nowrap!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.tabular-nums{font-variant-numeric:tabular-nums!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mt-2{margin-top:var(--space-2)!important}.mb-2{margin-bottom:var(--space-2)!important}.mt-4{margin-top:var(--space-4)!important}.mb-4{margin-bottom:var(--space-4)!important}.mt-6{margin-top:var(--space-6)!important}.mb-6{margin-bottom:var(--space-6)!important}.ml-auto{margin-left:auto!important}.w-100{width:100%!important}.hidden{display:none!important}@media(pointer:coarse){:is(input:not([type=checkbox],[type=radio],[type=range],[type=hidden]),select,textarea,[contenteditable=true]){font-size:max(16px,var(--fs-md))!important}}@media(max-width:768px){.hide-md{display:none!important}}@media(max-width:576px){.hide-sm{display:none!important}}@media(min-width:577px){.only-sm{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}html .md-drppicker{z-index:var(--z-dropdown);max-width:calc(100vw - (2 * var(--space-4)));overflow-x:auto;border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);color:var(--text);font-family:var(--font-base);font-size:var(--fs-sm)}.cdk-overlay-container .md-drppicker,body>.md-drppicker{z-index:var(--z-modal-nested)}@media(max-width:768px){html .md-drppicker{position:fixed!important;top:auto!important;bottom:var(--space-2)!important;left:var(--space-2)!important;right:var(--space-2)!important;width:auto;min-width:0;max-height:calc(100dvh - var(--header-h) - (2 * var(--space-2)));overflow-y:auto}}html .md-drppicker .ranges ul li button{border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-base);font-size:var(--fs-sm)}html .md-drppicker .ranges ul li button:hover{background:var(--surface-hover)}html .md-drppicker .ranges ul li button.active{background:var(--primary-strong);color:var(--on-primary)}html .md-drppicker td.available:hover,html .md-drppicker th.available:hover{background:var(--surface-hover)}html .md-drppicker td.in-range{background:var(--primary-soft);color:var(--text)}html .md-drppicker td.active,html .md-drppicker td.active:hover{background:var(--primary-strong);color:var(--on-primary)}html .md-drppicker .btn{min-height:var(--control-h-sm);padding:0 var(--space-3);border:0;border-radius:var(--radius);background:var(--primary-strong);box-shadow:none;color:var(--on-primary);font-family:var(--font-base);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--control-h-sm);text-transform:none}html .md-drppicker .btn:hover{background:var(--primary-hover)}html .md-drppicker .btn.btn-default{border:var(--border-w) solid var(--border-strong);background:var(--surface);color:var(--text)}html .md-drppicker .btn.btn-default:hover{background:var(--surface-hover)}html .md-drppicker select.monthselect,html .md-drppicker select.yearselect{border:var(--border-w) solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-base)}html .md-drppicker th.month{color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap}html .md-drppicker .dropdowns{position:relative;display:inline-block;width:auto;margin:0 var(--space-1);padding-right:var(--space-4);background-size:9px;cursor:pointer}html .md-drppicker .dropdowns select.monthselect,html .md-drppicker .dropdowns select.yearselect{width:100%;height:100%}html .md-drppicker th.available.prev,html .md-drppicker th.available.next{color:var(--text-muted)}html .md-drppicker .buttons{clear:both;float:none;width:auto;margin:var(--space-2)}html .md-drppicker .buttons_input{display:flex;justify-content:flex-end;gap:var(--space-2)}html .md-drppicker .btn svg{display:none}html .md-drppicker .btn.btn-default.clear{color:var(--danger)}html .ng-select .ng-select-container{min-height:var(--control-h);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--fs-base);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}html .ng-select.ng-select-single .ng-select-container{height:var(--control-h)}html .ng-select:not(.ng-select-disabled):hover .ng-select-container{border-color:var(--gray-500);box-shadow:none}html .ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container,html .ng-select.ng-select-opened>.ng-select-container{border-color:var(--primary-strong);box-shadow:var(--focus-ring);z-index:var(--z-base)}html .ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}html .ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:var(--radius);border-top-left-radius:var(--radius)}html .ng-select.ng-invalid.ng-touched .ng-select-container{border-color:var(--danger-solid);box-shadow:none}html .ng-select.ng-select-disabled>.ng-select-container{background:var(--surface-alt);color:var(--text-disabled)}html .ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:var(--space-3)}html .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--text-subtle)}html .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:50%;padding-left:var(--space-3);transform:translateY(-50%)}html .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:var(--space-1);padding-left:var(--space-2)}html .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{display:inline-flex;flex-direction:row-reverse;align-items:center;margin:var(--space-0-5);padding:var(--space-0-5) 0 var(--space-0-5) var(--space-2);border:var(--border-w) solid var(--primary-border);border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium)}html .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{padding:0 var(--space-1-5);color:var(--text-muted)}html .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background:var(--primary-border);color:var(--text)}html .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}html .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 var(--space-1) 0 0}html .ng-select .ng-value:has(.ng-value-label:empty){display:none}html .ng-select .ng-arrow-wrapper{width:var(--space-8);padding-right:var(--space-2)}html .ng-select .ng-arrow-wrapper .ng-arrow{border-top-color:var(--text-muted)}html .ng-select .ng-clear-wrapper{display:inline-flex;align-items:center;justify-content:center;width:24px;margin-right:var(--space-1);color:var(--text-muted)}html .ng-select .ng-clear-wrapper:hover .ng-clear{color:var(--danger)}html .ng-select .ng-clear-wrapper .ng-clear{font-size:var(--fs-lg)}.ng-dropdown-panel{z-index:var(--z-dropdown);overflow:hidden;border:var(--border-w) solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}html .ng-dropdown-panel.ng-select-bottom{margin-top:var(--space-1);border-radius:var(--radius)}html .ng-dropdown-panel.ng-select-top{margin-bottom:var(--space-1);border-radius:var(--radius)}html .ng-dropdown-panel .ng-dropdown-panel-items{max-height:280px;padding:var(--space-1)}html .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--fs-base);white-space:normal}html .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background:var(--surface-hover);color:var(--text)}html .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,html .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{background:var(--primary-soft);color:var(--primary-strong);font-weight:var(--fw-medium)}html .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:var(--text-disabled)}html .ng-select-multiple .ng-dropdown-panel .ng-option:before,html .ng-dropdown-panel.ng-select-multiple .ng-option:before{content:"";flex-shrink:0;width:var(--icon);height:var(--icon);border:var(--border-w-thick) solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface) no-repeat center / 12px}html .ng-select-multiple .ng-dropdown-panel .ng-option.ng-option-selected:before,html .ng-dropdown-panel.ng-select-multiple .ng-option.ng-option-selected:before{border-color:var(--primary-strong);background-color:var(--primary-strong);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}html .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{padding:var(--space-2) var(--space-3) var(--space-1);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase}html .ng-dropdown-panel .ng-dropdown-header,html .ng-dropdown-panel .ng-dropdown-footer{padding:var(--space-2) var(--space-3);border-color:var(--border)}html .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label{flex:1;min-width:0}html .ng-select.ng-select--sm .ng-select-container{min-height:var(--control-h-sm);font-size:var(--fs-sm)}html .ng-select.ng-select-single.ng-select--sm .ng-select-container{height:var(--control-h-sm)}html body>.ng-dropdown-panel{z-index:var(--z-dropdown)}html body:has(.modal-overlay)>.ng-dropdown-panel{z-index:var(--z-dropdown-overlay)}@media(max-width:768px){html body :is(input:not([type=checkbox],[type=radio],[type=range]),textarea,select){font-size:var(--fs-md)}html .ng-select .ng-select-container,html .ng-dropdown-panel .ng-dropdown-panel-items .ng-option,html .ng-select .ng-select-container .ng-value-container .ng-input>input{font-size:16px}}html body :is(button,a).btn--primary{border-color:var(--primary-strong);background:var(--primary-strong);color:var(--on-primary)}html body :is(button,a).btn--primary:hover{border-color:var(--primary-hover);background:var(--primary-hover);color:var(--on-primary)}html body :is(button,a).btn--secondary{border-color:var(--border-strong);background:var(--surface);color:var(--text)}html body :is(button,a).btn--secondary:hover{border-color:var(--gray-500);background:var(--surface-hover);color:var(--text)}html body :is(button,a).btn--danger{border-color:var(--danger-solid);background:var(--danger-solid);color:var(--white)}html body :is(button,a).btn--danger:hover{border-color:var(--danger);background:var(--danger);color:var(--white)}html body :is(button,a).btn--accent{border-color:var(--third-strong);background:var(--third-strong);color:var(--on-third)}html body :is(button,a).btn--accent:hover{border-color:var(--third-hover);background:var(--third-hover);color:var(--on-third)}html body :is(button,a):is(.btn--edit,.btn--delete,.btn--view){display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-h-sm);padding:0 var(--space-3);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:none;color:var(--text);font-family:var(--font-base);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-tight);text-decoration:none}html body :is(button,a).btn--edit{border-color:var(--primary-border);color:var(--primary-strong)}html body :is(button,a).btn--delete{border-color:var(--danger-border);color:var(--danger)}html body :is(button,a).btn--edit:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-active)}html body :is(button,a).btn--delete:hover{border-color:var(--danger-solid);background:var(--danger-bg);color:var(--danger)}html body :is(button,a).btn--view:hover{border-color:var(--gray-500);background:var(--surface-hover);color:var(--text)}html body :is(button,a).product-card__cta.btn--accent.btn--view{border-color:var(--third-strong);background:var(--third-strong);color:var(--on-third)}html body :is(button,a).product-card__cta.btn--accent.btn--view:hover{border-color:var(--third-hover);background:var(--third-hover);color:var(--on-third)}html body :is(button,a):is(.btn--edit,.btn--delete,.btn--view):focus-visible{outline:var(--focus-outline);outline-offset:2px}html body :is(button,a):is(.btn--edit,.btn--delete,.btn--view):is(:disabled,[aria-disabled=true]){opacity:.55;cursor:not-allowed}
