#root,body,html{height:100%;margin:0;overflow:hidden;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.dashboard-container{margin:0 auto;max-width:1400px;padding:1rem;padding:var(--size-spacing,1rem)}.stats-grid{grid-gap:1.5rem;grid-gap:calc(var(--size-spacing, 1rem)*1.5);gap:1.5rem;gap:calc(var(--size-spacing, 1rem)*1.5);grid-template-columns:repeat(4,1fr);margin-bottom:2rem;margin-bottom:calc(var(--size-spacing, 1rem)*2)}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}}.stat-card{background:#fff;background:var(--color-cardBackground,#fff);border:2px solid #0000;border:2px solid var(--color-cardBorder,#0000);border-radius:12px;border-radius:var(--size-borderRadius,12px);box-shadow:0 4px 20px #0000001a;display:flex;flex-direction:column;justify-content:space-between;padding:1.5rem;padding:calc(var(--size-spacing, 1rem)*1.5);transition:all .3s}.stat-card:hover{border-color:#667eea;border-color:var(--color-primary,#667eea);box-shadow:0 8px 30px #00000026;transform:translateY(-4px)}.stat-icon{align-items:center;border-radius:10px;border-radius:calc(var(--size-borderRadius, 8px) + 2px);color:#fff;display:flex;flex-shrink:0;height:50px;justify-content:center;width:50px}.stat-icon,.stat-value{background:linear-gradient(135deg,var(--color-primary),var(--color-accent))}.stat-value{-webkit-text-fill-color:#0000;-webkit-background-clip:text;background-clip:text;font-size:28px;font-size:calc(var(--size-baseFontSize, 14px)*2);font-weight:700;margin-bottom:.25rem}.stat-label{color:#666;color:var(--color-textSecondary,#666);font-size:.9rem;margin-bottom:.5rem}.stat-change{align-items:center;display:flex;font-size:.85rem;font-weight:600;gap:.25rem}.stat-change.positive{color:#10b981;color:var(--color-success,#10b981)}.stat-change.negative{color:#ef4444;color:var(--color-error,#ef4444)}.mode-card{background:linear-gradient(135deg,#3b82f60d,#8b5cf60d);border:2px solid #3b82f633}.mode-card:hover{background:linear-gradient(135deg,#3b82f614,#8b5cf614);border-color:#3b82f666}.mode-header{align-items:center;display:flex;gap:1rem;margin-bottom:.5rem}.mode-icon{background:#0000!important;height:60px;width:60px}.site-summaries{grid-gap:1.5rem;grid-gap:calc(var(--size-spacing, 1rem)*1.5);display:grid;gap:1.5rem;gap:calc(var(--size-spacing, 1rem)*1.5);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:2rem;margin-bottom:calc(var(--size-spacing, 1rem)*2)}.site-summary-card{background:#fff;background:var(--color-cardBackground,#fff);border:2px solid #0000;border:2px solid var(--color-cardBorder,#0000);border-radius:12px;border-radius:var(--size-borderRadius,12px);box-shadow:0 4px 20px #0000001a;overflow:hidden;padding:1.5rem;padding:calc(var(--size-spacing, 1rem)*1.5);position:relative;transition:all .3s}.site-summary-card:hover{border-color:#667eea;border-color:var(--color-primary,#667eea);box-shadow:0 8px 30px #00000026;transform:translateY(-4px)}.site-summary-card:before{background:linear-gradient(90deg,var(--color-primary),var(--color-accent));content:"";height:4px;left:0;position:absolute;right:0;top:0}.site-summary-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem;margin-bottom:var(--size-spacing,1rem)}.site-summary-title{color:#333;color:var(--color-text,#333);font-size:1rem;font-weight:700;margin-bottom:.5rem}.site-connection-badge{align-items:center;background:#3b82f61a;border-radius:20px;border-radius:calc(var(--size-borderRadius, 8px)*2.5);color:var(--color-primary);display:flex;font-size:.75rem;font-weight:600;gap:.5rem;padding:.4rem .8rem}.site-status-indicator{animation:pulse 2s infinite;border-radius:50%;height:12px;width:12px}.site-status-indicator.active{background:#10b981;background:var(--color-success,#10b981)}.site-status-indicator.warning{background:#f59e0b;background:var(--color-warning,#f59e0b)}.site-summary-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1rem}.site-stat{text-align:center}.site-stat-value{color:var(--color-primary);font-size:1.5rem;font-weight:700}.site-stat-label{color:#666;color:var(--color-textSecondary,#666);font-size:.75rem;margin-top:.25rem}.site-quality-bar{background:#e5e7eb;background:var(--color-background,#e5e7eb);border-radius:4px;height:8px;margin-bottom:.5rem;overflow:hidden;width:100%}.site-quality-fill{background:linear-gradient(90deg,#10b981,var(--color-primary));background:linear-gradient(90deg,var(--color-success,#10b981),var(--color-primary));border-radius:4px;height:100%;transition:width .3s}.site-data-period{color:#666;color:var(--color-textSecondary,#666);font-size:.75rem;font-weight:500;margin-bottom:.25rem}.site-last-update{color:#999;color:var(--color-textSecondary,#999);font-size:.75rem;text-align:right}.sync-details-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin-bottom:2rem;padding:1.5rem}.sync-details-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:700}.sync-details-title,.sync-phase{margin-bottom:1.5rem}.sync-phase-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.sync-phase-label{color:#333;font-weight:600}.sync-phase-count{color:#666;font-size:.9rem}.sync-progress-bar{background:#e5e7eb;border-radius:6px;height:12px;overflow:hidden;width:100%}.sync-progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:6px;height:100%;transition:width .3s}.current-report{align-items:center;background:#667eea1a;border-radius:8px;display:flex;gap:.5rem;margin-top:1rem;padding:.75rem}.current-report-label{color:#667eea;font-weight:600}.current-report-info{color:#666;font-size:.9rem}.sync-errors{background:#fee2e2;border-radius:8px;margin-top:1rem;padding:1rem}.sync-errors-title{color:#dc2626;font-weight:600;margin-bottom:.5rem}.sync-errors-list{list-style:none;margin:0;padding:0}.sync-error-item{color:#991b1b;font-size:.85rem;padding:.25rem 0}.welcome-card{background:#fff;background:var(--color-cardBackground,#fff);border-radius:12px;border-radius:var(--size-borderRadius,12px);box-shadow:0 4px 20px #0000001a;padding:2rem}.welcome-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.welcome-section,.welcome-title{margin-bottom:1.5rem}.welcome-subtitle{color:#333;color:var(--color-text,#333);font-size:1.1rem;font-weight:600;margin-bottom:.75rem}.welcome-text{color:#666;color:var(--color-textSecondary,#666);font-size:.95rem;line-height:1.6;margin-bottom:.75rem}.welcome-text strong{color:var(--color-primary);font-weight:600}.welcome-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--color-border,#e2e8f0);color:#666;color:var(--color-textSecondary,#666);font-size:.85rem;margin-top:2rem;padding-top:1rem}.site-table-card{background:#fff;background:var(--color-cardBackground,#fff);border-radius:12px;border-radius:var(--size-borderRadius,12px);box-shadow:0 4px 20px #0000001a;margin-bottom:2rem;margin-bottom:calc(var(--size-spacing, 1rem)*2);padding:1.5rem;padding:calc(var(--size-spacing, 1rem)*1.5)}.site-table-title{border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--color-border,#e2e8f0);color:#333;color:var(--color-text,#333);font-size:1.25rem;font-weight:700;margin-bottom:1rem;margin-bottom:var(--size-spacing,1rem);padding-bottom:1rem;padding-bottom:var(--size-spacing,1rem)}.site-table-wrapper{overflow-x:auto}.site-table{border-collapse:collapse;font-size:.9rem;width:100%}.site-table thead{background:#f8fafc;background:var(--color-background,#f8fafc)}.site-table th{border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--color-border,#e2e8f0);color:#1e293b;color:var(--color-text,#1e293b);font-weight:600;padding:.75rem 1rem;text-align:left;white-space:nowrap}.site-table tbody tr{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border,#e2e8f0);transition:background-color .2s}.site-table tbody tr:hover{background:#f8fafc;background:var(--color-background,#f8fafc)}.site-table td{color:#1e293b;color:var(--color-text,#1e293b);padding:1rem}.site-name-cell{font-weight:500}.site-name{color:#1e293b;color:var(--color-text,#1e293b)}.site-code-cell{color:#64748b;color:var(--color-textSecondary,#64748b);font-family:var(--font-monospace);font-size:.85rem}.status-badge{border-radius:4px;border-radius:calc(var(--size-borderRadius, 8px)/2);font-size:.75rem;font-weight:600;white-space:nowrap}.status-active{background:#10b9811a;color:#10b981;color:var(--color-success,#10b981)}.status-inactive{background:#ef44441a;color:#ef4444;color:var(--color-error,#ef4444)}.count-cell{color:#3b82f6;color:var(--color-primary,#3b82f6);font-weight:500;text-align:center}.date-cell,.date-range-cell{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.85rem}.actions-cell{text-align:right}.table-btn{border:none;border-radius:8px;border-radius:var(--size-borderRadius,8px);cursor:pointer;font-family:var(--font-primary);font-size:.85rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.table-btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff}.table-btn-primary:hover{box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.skeleton-card{pointer-events:none}.skeleton{animation:skeleton-loading 1.5s ease-in-out infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background:linear-gradient(90deg,var(--color-background,#f0f0f0) 25%,#e0e0e0 50%,var(--color-background,#f0f0f0) 75%);background-size:200% 100%;border-radius:4px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-title{height:1.2rem;margin-bottom:.5rem;width:60%}.skeleton-badge{height:1.5rem;width:80px}.skeleton-indicator{border-radius:50%;height:12px;width:12px}.skeleton-value{height:2rem;margin-bottom:.25rem;width:50px}.skeleton-label{height:.9rem;width:80px}.skeleton-bar{height:8px;margin:1rem 0;width:100%}.skeleton-text{height:1rem;margin-bottom:.5rem;width:100%}@media (max-width:768px){.site-table{font-size:.8rem}.site-table td,.site-table th{padding:.5rem}}.site-list-container{background:#f9f9f9;background:var(--color-surface,#f9f9f9);border-right:1px solid #ddd;border-right:1px solid var(--color-border,#ddd);height:100%;overflow:auto}.site-list-header{background:#fff;background:var(--color-surface,#fff);border-bottom:1px solid #ddd;border-bottom:1px solid var(--color-border,#ddd);color:#333;color:var(--color-text,#333);font-size:14px;font-weight:700;padding:15px}.site-list{list-style:none;margin:0;padding:0}.site-list-item{background:#0000;border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border,#eee);color:#333;color:var(--color-text,#333);cursor:pointer;font-size:13px;padding:12px 15px;transition:background .2s,color .2s}.site-list-item:hover{background:#f0f0f0;background:var(--color-cardBackground,#f0f0f0)}.site-list-item.selected{color:#fff}.site-list-item.selected,.site-list-item.selected:hover{background:#007bff;background:var(--color-accent,#007bff)}.site-list-item.selected:hover{opacity:.95}.site-code{color:#333;color:var(--color-text,#333);font-weight:700}.site-name{color:#666;color:var(--color-textSecondary,#666);font-size:11px;margin-top:2px}.site-list-error,.site-list-loading{padding:20px}.site-list-loading{color:#666;color:var(--color-textSecondary,#666)}.site-list-error{color:red;color:var(--color-error,red)}.gdg-mnuv029{-webkit-touch-callout:default;padding-top:6px;word-break:break-word}.gdg-mnuv029>*{margin:0}.gdg-mnuv029 :last-child{margin-bottom:0}.gdg-mnuv029 p img{width:100%}.gdg-d19meir1{--overlay-top:var(--d19meir1-0);box-sizing:border-box;display:flex;flex-direction:column;font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);left:var(--d19meir1-1);max-height:calc(100vh - var(--d19meir1-4));max-width:400px;min-height:var(--d19meir1-3);min-width:var(--d19meir1-2);overflow:hidden;position:absolute;text-align:start;top:var(--d19meir1-0);width:-webkit-max-content;width:max-content}@keyframes glide_fade_in-gdg-d19meir1{0%{opacity:0}to{opacity:100%}}.gdg-d19meir1.gdg-style{animation:glide_fade_in-gdg-d19meir1 60ms 1;background-color:var(--gdg-bg-cell);border-radius:2px;box-shadow:0 0 0 1px var(--gdg-accent-color),0 0 1px #3e415666,0 6px 12px #3e415626}.gdg-d19meir1.gdg-pad{padding:var(--d19meir1-5) 8.5px 3px}.gdg-d19meir1 .gdg-clip-region{border-radius:2px;display:flex;flex-direction:column;flex-grow:1;overflow-x:hidden;overflow-y:auto}.gdg-d19meir1 .gdg-clip-region .gdg-growing-entry{height:100%}.gdg-d19meir1 .gdg-clip-region input.gdg-input{border:0;outline:none;width:100%}.gdg-d19meir1 .gdg-clip-region textarea.gdg-input{border:0;outline:none}.gdg-b1ygi5by{display:flex;flex-wrap:wrap;margin-bottom:auto;margin-top:auto}.gdg-b1ygi5by .boe-bubble{align-items:center;background-color:var(--gdg-bg-bubble);border-radius:10px;border-radius:var(--gdg-rounding-radius,10px);color:var(--gdg-text-dark);display:flex;height:20px;justify-content:center;margin:2px;padding:0 8px}.gdg-b1ygi5by textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0}.gdg-n15fjm3e{color:var(--gdg-text-dark);display:flex;margin:6px 0 3px}.gdg-n15fjm3e>input{background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);padding:0}.gdg-d4zsq0x{display:flex;flex-wrap:wrap}.gdg-d4zsq0x .doe-bubble{align-items:center;background-color:var(--gdg-bg-cell);border-radius:6px;border-radius:var(--gdg-rounding-radius,6px);box-shadow:0 0 1px #3e415666,0 1px 3px #3e415666;color:var(--gdg-text-dark);display:flex;height:24px;justify-content:center;margin:2px;padding:0 8px}.gdg-d4zsq0x .doe-bubble img{height:16px;margin-right:4px;object-fit:contain}.gdg-d4zsq0x textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0}.gdg-i2iowwq{display:flex;height:100%}.gdg-i2iowwq .gdg-centering-container{align-items:center;display:flex;height:100%;justify-content:center}.gdg-i2iowwq .gdg-centering-container canvas,.gdg-i2iowwq .gdg-centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;-webkit-user-select:none;user-select:none}.gdg-i2iowwq .gdg-centering-container canvas{max-width:380px}.gdg-i2iowwq .gdg-edit-icon{align-items:center;color:var(--gdg-accent-color);cursor:pointer;display:flex;height:48px;justify-content:center;position:absolute;right:0;top:12px;width:48px}.gdg-i2iowwq .gdg-edit-icon>*{height:24px;width:24px}.gdg-i2iowwq textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0}.gdg-u1rrojo{align-items:center;display:flex;flex-grow:1;min-height:21px}.gdg-u1rrojo .gdg-link-area{color:var(--gdg-link-color);cursor:pointer;flex-grow:1;flex-shrink:1;margin-right:8px;overflow:hidden;-webkit-text-decoration:underline!important;text-decoration:underline!important;text-overflow:ellipsis;white-space:nowrap}.gdg-u1rrojo .gdg-edit-icon{align-items:center;color:var(--gdg-accent-color);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;width:32px}.gdg-u1rrojo .gdg-edit-icon>*{height:24px;width:24px}.gdg-u1rrojo textarea{height:0;left:0;opacity:0;position:absolute;top:0;width:0}.gdg-m1pnx84e{align-items:flex-start;color:var(--gdg-text-dark);display:flex;justify-content:space-between;min-width:var(--m1pnx84e-0);position:relative;width:100%}.gdg-m1pnx84e .gdg-g1y0xocz{flex-shrink:1;min-width:0}.gdg-m1pnx84e .gdg-spacer{flex:1 1}.gdg-m1pnx84e .gdg-edit-icon{align-items:center;border-radius:6px;color:var(--gdg-accent-color);cursor:pointer;display:flex;flex-shrink:0;height:24px;justify-content:center;padding:0;position:relative;transition:all "0.125s ease";width:24px}.gdg-m1pnx84e .gdg-edit-icon>*{height:16px;width:16px}.gdg-m1pnx84e .gdg-edit-hover:hover{background-color:var(--gdg-accent-light);transition:background-color .15s}.gdg-m1pnx84e .gdg-checkmark-hover:hover{background-color:var(--gdg-accent-color);color:#fff}.gdg-m1pnx84e .gdg-md-edit-textarea{height:0;left:0;margin-top:25px;opacity:0;padding:0;position:relative;top:0;width:0}.gdg-m1pnx84e .gdg-ml-6{margin-left:6px}.gdg-s1dgczr6 .dvn-scroller{overflow:var(--s1dgczr6-0);transform:translateZ(0)}.gdg-s1dgczr6 .dvn-hidden{visibility:hidden}.gdg-s1dgczr6 .dvn-scroll-inner{display:flex;pointer-events:none}.gdg-s1dgczr6 .dvn-scroll-inner>*{flex-shrink:0}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-spacer{flex-grow:1}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-stack{display:flex;flex-direction:column}.gdg-s1dgczr6 .dvn-underlay>*{left:0;position:absolute;top:0}.gdg-s1dgczr6 canvas{outline:none}.gdg-s1dgczr6 canvas *{height:0}.gdg-izpuzkl{-webkit-text-fill-color:var(--gdg-text-dark);background-color:initial;border:0;border-radius:0;bottom:0;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);height:100%;left:0;line-height:16px;margin:0;min-width:100%;overflow:hidden;padding:0;position:absolute;resize:none;right:0;top:0;white-space:pre-wrap;width:100%}.gdg-izpuzkl::placeholder{color:var(--gdg-text-light)}.gdg-invalid .gdg-izpuzkl{-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration-color:#d60606;text-decoration-color:#d60606}.gdg-s69h75o{word-wrap:break-word;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);line-height:16px;margin:0;max-width:100%;min-width:100%;padding:0 0 2px;visibility:hidden;white-space:pre-wrap;width:-webkit-max-content;width:max-content}.gdg-g1y0xocz{margin-top:6px;position:relative}.gdg-seveqep{animation:gdg-search-fadein-gdg-seveqep .15s forwards;background-color:var(--gdg-bg-cell);border:1px solid var(--gdg-border-color);border-radius:6px;color:var(--gdg-text-dark);font-size:var(--gdg-editor-font-size);padding:8px;position:absolute;right:20px;top:4px}.gdg-seveqep.out{animation:gdg-search-fadeout-gdg-seveqep .15s forwards}.gdg-seveqep .gdg-search-bar-inner{display:flex}.gdg-seveqep .gdg-search-status{font-size:11px;padding-top:4px}.gdg-seveqep .gdg-search-progress{background-color:var(--gdg-text-light);bottom:0;height:4px;left:0;position:absolute}.gdg-seveqep input{background-color:var(--gdg-bg-cell);border:0;color:var(--gdg-textDark);outline:none;width:220px}.gdg-seveqep button{align-items:center;background:none;border:none;color:var(--gdg-text-medium);cursor:pointer;display:flex;height:24px;justify-content:center;outline:none;padding:0;width:24px}.gdg-seveqep button:hover{color:var(--gdg-text-dark)}.gdg-seveqep button .button-icon{height:16px;width:16px}.gdg-seveqep button:disabled{opacity:.4;pointer-events:none}@keyframes gdg-search-fadeout-gdg-seveqep{0%{transform:translateX(0)}to{transform:translateX(400px)}}@keyframes gdg-search-fadein-gdg-seveqep{0%{transform:translateX(400px)}to{transform:translateX(0)}}.gdg-wmyidgi{direction:ltr;height:var(--wmyidgi-1);max-height:100%;max-width:100%;min-height:10px;min-width:10px;overflow:hidden;overflow:clip;position:relative;width:var(--wmyidgi-0)}.gdg-wmyidgi>:first-child{height:100%;left:0;position:absolute;top:0;width:100%}.gdg-r17m35ur{background-color:var(--gdg-bg-header-has-focus);border:none;border-radius:9px;box-shadow:0 0 0 1px var(--gdg-border-color);color:var(--gdg-text-group-header);flex-grow:1;font:var(--gdg-header-font-style) var(--gdg-font-family);min-height:var(--r17m35ur-0);outline:none;padding:0 8px}.gdg-c1tqibwd{align-items:center;background-color:var(--gdg-bg-header);display:flex;padding:0 8px}.column-selector-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.column-selector-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column;height:80vh;max-width:1000px;width:90%}.column-selector-header{align-items:center;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding:16px 20px}.column-selector-header h2{font-size:20px;font-weight:600;margin:0}.column-selector-close-btn{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:24px;line-height:1;padding:4px 8px;transition:all .2s}.column-selector-close-btn:hover{background:#f0f0f0;color:#000}.column-selector-preset-bar{align-items:center;background:#f8f9fa;border-bottom:1px solid #ddd;display:flex;gap:16px;justify-content:space-between;padding:12px 20px}.column-selector-preset-label{color:#333;font-size:14px;font-weight:500}.column-selector-preset-actions,.column-selector-preset-label{align-items:center;display:flex;gap:8px}.column-selector-preset-dropdown{background:#fff;border:1px solid #ccc;border-radius:4px;font-size:14px;min-width:250px;padding:6px 12px}.column-selector-btn-save-preset{background:#fff;border:1px solid #06c;border-radius:4px;color:#06c;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s}.column-selector-btn-save-preset:hover:not(:disabled){background:#06c;color:#fff}.column-selector-btn-save-preset:disabled{cursor:not-allowed;opacity:.5}.column-selector-btn-edit-preset{background:#fff;border:1px solid #ffc107;border-radius:4px;color:#ffc107;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s}.column-selector-btn-edit-preset:hover{background:#ffc107;color:#000}.column-selector-btn-delete-preset{background:#fff;border:1px solid #dc3545;border-radius:4px;color:#dc3545;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s}.column-selector-btn-delete-preset:hover{background:#dc3545;color:#fff}.column-selector-body{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:1fr 1fr;overflow:hidden;padding:16px}.column-selector-panel{background:#f9f9f9;border:1px solid #ddd;border-radius:4px;display:flex;flex-direction:column;overflow:hidden}.column-selector-panel-header{background:#f0f0f0;border-bottom:1px solid #ddd;display:flex;flex-direction:column;gap:8px;padding:12px}.column-selector-panel-header h3{font-size:16px;font-weight:600;margin:0}.column-selector-search{border:1px solid #ccc;border-radius:4px;font-size:14px;padding:6px 10px;width:100%}.column-selector-list{flex:1 1;overflow-y:auto;padding:8px}.column-selector-item{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;margin-bottom:4px;padding:8px 12px;transition:all .2s}.column-selector-item:hover{background:#f0f8ff;border-color:#06c}.column-selector-item-selected{cursor:default}.column-selector-item-selected:hover{background:#fff;border-color:#ddd}.column-selector-item-label{flex:1 1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-selector-item-id{color:#666;font-size:12px;margin-right:8px}.column-selector-item-btn{background:#06c;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:14px;padding:4px 10px}.column-selector-item-btn:hover{background:#0052a3}.column-selector-item-actions{display:flex;gap:4px}.column-selector-item-btn-small{background:#f0f0f0;border:1px solid #ccc;border-radius:3px;cursor:pointer;font-size:12px;padding:2px 6px}.column-selector-item-btn-small:hover:not(:disabled){background:#e0e0e0}.column-selector-item-btn-small:disabled{cursor:not-allowed;opacity:.3}.column-selector-item-btn-remove{background:#f44;border-color:#f44;color:#fff}.column-selector-item-btn-remove:hover{background:#d00}.column-selector-footer{align-items:center;border-top:1px solid #ddd;display:flex;justify-content:space-between;padding:16px 20px}.column-selector-footer-left,.column-selector-footer-right{display:flex;gap:8px}.column-selector-btn-secondary{background:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 16px}.column-selector-btn-secondary:hover{background:#e0e0e0}.column-selector-btn-cancel{background:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 16px}.column-selector-btn-cancel:hover{background:#f0f0f0}.column-selector-btn-apply{background:#06c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 20px}.column-selector-btn-apply:hover{background:#0052a3}.column-selector-dialog-overlay{align-items:center;background:#0000004d;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.column-selector-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000004d;min-width:400px;padding:24px}.column-selector-dialog h3{font-size:18px;margin:0 0 16px}.column-selector-dialog-input{border:1px solid #ccc;border-radius:4px;font-size:14px;margin-bottom:16px;padding:8px 12px;width:100%}.column-selector-dialog-actions{display:flex;gap:8px;justify-content:flex-end}.validation-panel{animation:slideInRight .25s ease-out;background:#fff;background:var(--color-cardBackground,#fff);border-left:2px solid #e2e8f0;border-left:2px solid var(--color-border,#e2e8f0);bottom:0;box-shadow:-4px 0 12px #00000014;display:flex;flex-direction:column;font-family:var(--font-primary);pointer-events:auto;position:fixed;right:0;top:60px;width:400px;z-index:10}.validation-panel.closing{animation:slideOutRight .25s ease-in}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideOutRight{0%{transform:translateX(0)}to{transform:translateX(100%)}}.validation-panel-header{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--color-border,#e2e8f0);color:#fff;padding:1.25rem 1.5rem}.validation-panel-title-row{align-items:center;display:flex;gap:1rem;margin-bottom:0}.validation-panel-header h3{font-size:1.1rem;font-weight:600;margin:0}.validation-panel-subtitle{font-size:.85rem;font-weight:400;margin:0;opacity:.95}.selection-info{background:#ffffff26;border-radius:6px;font-size:.8rem;margin-top:1rem;padding:.75rem}.selection-detail{line-height:1.5;margin:.35rem 0}.selection-detail strong{font-weight:600;margin-right:.5rem}.validation-panel-body{flex:1 1;overflow-y:auto;padding:1.25rem 1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{font-size:.85rem}.form-group .required{color:#ef4444;color:var(--color-error,#ef4444);margin-left:.25rem}.form-control{background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#1e293b;color:var(--color-text,#1e293b);font-family:var(--font-primary);font-size:.9rem;padding:.6rem .85rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-control:focus{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-control::placeholder{color:#94a3b8;color:var(--color-textSecondary,#94a3b8)}textarea.form-control{min-height:70px;resize:vertical}.custom-dropdown{position:relative}.dropdown-trigger{align-items:center;cursor:pointer;display:flex!important;justify-content:space-between!important;-webkit-user-select:none;user-select:none}.dropdown-trigger .selected-status{align-items:center;display:flex;flex:1 1;justify-content:space-between}.dropdown-trigger .placeholder{color:#94a3b8;color:var(--color-textSecondary,#94a3b8)}.dropdown-arrow{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.7rem;margin-left:.5rem}.dropdown-options{background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);box-shadow:0 4px 12px #0000001a;left:0;margin-top:.25rem;max-height:250px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.dropdown-option{align-items:center;cursor:pointer;display:flex!important;justify-content:space-between!important;padding:.6rem .75rem;transition:background .15s}.dropdown-option:hover{background:#f8fafc;background:var(--color-background,#f8fafc)}.dropdown-option.selected{background:#3b82f61a}.dropdown-option .status-name{flex:1 1}.status-color{border:1px solid #0003;border-radius:4px;display:inline-block!important;flex-shrink:0;height:20px!important;min-height:20px!important;min-width:20px!important;width:20px!important}.bg-purple-300{background-color:#d8b4fe}.bg-orange-300{background-color:#fdba74}.bg-pink-300{background-color:#f9a8d4}.bg-gray-300{background-color:#d1d5db}.bg-yellow-300{background-color:#fde047}.bg-sky-300{background-color:#7dd3fc}.bg-stone-300{background-color:#d6d3d1}.bg-lime-300{background-color:#bef264}.bg-green-300{background-color:#86efac}.bg-teal-300{background-color:#5eead4}.bg-indigo-300{background-color:#a5b4fc}.bg-white{background-color:#fff}.radio-group{align-items:stretch;display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;padding:.5rem 0}.radio-label{align-items:center;background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#1e293b;color:var(--color-text,#1e293b);cursor:pointer;display:flex;flex:1 1;font-size:.85rem;font-weight:500;height:100%;justify-content:center;min-width:0;padding:.6rem .85rem;transition:all .2s}.radio-label:hover{background:#f8fafc;background:var(--color-background,#f8fafc);border-color:#3b82f6;border-color:var(--color-primary,#3b82f6)}.radio-label:has(input[type=radio]:checked){background:#3b82f61a;border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);color:#3b82f6;color:var(--color-primary,#3b82f6);font-weight:600}.radio-label input[type=radio]{display:none}.radio-label span{display:block;line-height:1;text-align:center;-webkit-user-select:none;user-select:none;white-space:nowrap}.form-hint{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.8rem;font-style:italic;margin:.5rem 0 0}.char-counter{color:#94a3b8;color:var(--color-textSecondary,#94a3b8);font-size:.75rem;margin-top:.35rem;text-align:right}.validation-panel-footer{background:#f8fafc;background:var(--color-background,#f8fafc);border-top:2px solid #e2e8f0;border-top:2px solid var(--color-border,#e2e8f0);display:flex;gap:.75rem;padding:1.25rem 1.5rem}.btn{align-items:center;border-radius:8px;border-radius:var(--size-borderRadius,8px);display:inline-flex;flex:1 1;font-family:var(--font-primary);font-size:.9rem;justify-content:center;padding:.7rem 1.5rem;text-align:center}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-accent))}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.btn-primary:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-secondary{background:var(--color-surface,#fff)}.btn-secondary:hover:not(:disabled){background:#f8fafc;background:var(--color-background,#f8fafc);border-color:#3b82f6;border-color:var(--color-primary,#3b82f6)}.btn-secondary:disabled{cursor:not-allowed;opacity:.6}.validation-tabs{border-bottom:2px solid #fff3;display:flex;gap:0;margin-top:1rem}.validation-tab{background:#0000;border:none;border-top:3px solid #0000;color:#ffffffb3;cursor:pointer;font-family:var(--font-primary);font-size:.9rem;font-weight:500;padding:.75rem 1.5rem;position:relative;top:-2px;transition:all .2s}.validation-tab:hover{background:#ffffff0d;color:#fff}.validation-tab.active{background:#ffffff1a;border-top-color:#fff;color:#fff;font-weight:600}.selection-info-box{background:#fffffff2;border-radius:0;margin:0;padding:1rem}.selection-info-row{align-items:baseline;display:flex;font-size:.85rem;margin-bottom:.5rem}.selection-info-row:last-child{margin-bottom:0}.info-label{flex-shrink:0;min-width:110px}.history-empty,.history-loading{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.9rem;padding:2rem 1rem;text-align:center}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-item{background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);overflow:hidden;transition:box-shadow .2s}.history-item:hover{box-shadow:0 2px 8px #00000014}.history-item-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:.75rem 1rem;transition:background .15s;-webkit-user-select:none;user-select:none}.history-item-header:hover{background:#f8fafc;background:var(--color-background,#f8fafc)}.history-item-summary{align-items:flex-start;display:flex;flex:1 1;gap:.75rem}.sync-icon{flex-shrink:0;font-size:1rem;margin-top:.1rem}.sync-icon.synced{color:#10b981;color:var(--color-success,#10b981)}.sync-icon.unsynced{color:#f59e0b;color:var(--color-warning,#f59e0b)}.history-summary-content{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.history-summary-text{color:#1e293b;color:var(--color-text,#1e293b);font-size:.85rem;font-weight:500;line-height:1.4}.history-timestamp{font-size:.75rem;font-weight:400}.expand-arrow,.history-timestamp{color:#64748b;color:var(--color-textSecondary,#64748b)}.expand-arrow{flex-shrink:0;font-size:.7rem;margin-left:.5rem}.history-item-details{background:#f8fafc;background:var(--color-background,#f8fafc);border-top:1px solid #e2e8f0;border-top:1px solid var(--color-border,#e2e8f0);padding:0 1rem .75rem}.history-detail-row{color:#1e293b;color:var(--color-text,#1e293b);font-size:.8rem;line-height:1.5;margin:.5rem 0}.history-detail-row strong{color:#64748b;color:var(--color-textSecondary,#64748b);font-weight:600;margin-right:.5rem}.history-time-range{align-items:flex-start;display:flex;flex-direction:column}.time-range-block{display:flex;flex-direction:column;gap:.15rem;margin-top:.25rem}.time-range-line{display:flex;gap:.5rem}.time-range-label{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.75rem;font-weight:600;min-width:40px;text-align:right}.time-range-value{color:#1e293b;color:var(--color-text,#1e293b);font-family:monospace}.history-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--color-border,#e2e8f0);display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem}.btn-sm{font-size:.8rem;padding:.5rem 1rem}.btn-danger{background:#ef4444;background:var(--color-error,#ef4444);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 2px 8px #ef44444d;transform:translateY(-1px)}@media (max-width:768px){.validation-panel{width:100%}}.measurement-grid-container{background-color:#f8fafc;background-color:var(--color-background,#f8fafc);display:flex;height:100%}.measurement-sidebar{background:#fff;background:var(--color-surface,#fff);border-right:1px solid #e2e8f0;border-right:1px solid var(--color-border,#e2e8f0);overflow-y:auto;width:300px}.measurement-main{display:grid;flex:1 1;grid-template-rows:auto 1fr auto;height:100%;overflow:hidden}.measurement-filter-bar{align-items:flex-end;background:#fff;background:var(--color-cardBackground,#fff);border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--color-border,#e2e8f0);display:flex;flex-wrap:wrap;gap:1.5rem;gap:calc(var(--size-spacing, 1rem)*1.5);overflow:visible;padding:1.5rem;padding:calc(var(--size-spacing, 1rem)*1.5);transition:margin-right .25s ease-out}.measurement-main.with-validation-panel .measurement-filter-bar{margin-right:400px}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{display:block;font-size:.85rem;font-weight:600}.filter-group input[type=datetime-local],.filter-group label{color:#1e293b;color:var(--color-text,#1e293b);font-family:var(--font-primary)}.filter-group input[type=datetime-local]{background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);font-size:.9rem;padding:.6rem 1rem;transition:border-color .2s;width:200px}.filter-group input[type=datetime-local]:focus{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.period-shortcuts{display:flex;flex-wrap:wrap;gap:.5rem}.period-shortcut-btn{background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:5.33333px;border-radius:calc(var(--size-borderRadius, 8px)/1.5);color:#1e293b;color:var(--color-text,#1e293b);cursor:pointer;font-family:var(--font-primary);font-size:.8rem;font-weight:500;padding:.5rem .75rem;transition:all .2s;white-space:nowrap}.period-shortcut-btn:hover{background:#3b82f6;background:var(--color-primary,#3b82f6);border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);box-shadow:0 2px 8px #3b82f633;color:#fff;transform:translateY(-1px)}.fetch-mode-buttons{background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:8px;border-radius:var(--size-borderRadius,8px);display:flex;gap:.5rem;padding:.25rem}.fetch-mode-btn{background:#0000;border:none;border-radius:6px;border-radius:calc(var(--size-borderRadius, 8px) - 2px);color:#64748b;color:var(--color-textSecondary,#64748b);cursor:pointer;font-family:var(--font-primary);font-size:.85rem;font-weight:500;padding:.6rem 1.2rem;transition:all .2s}.fetch-mode-btn.active{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));box-shadow:0 2px 8px #3b82f64d;color:#fff;font-weight:600}.fetch-mode-btn:hover:not(.active){background:#fff;background:var(--color-surface,#fff);color:#1e293b;color:var(--color-text,#1e293b)}.show-status-toggle{align-items:center;background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);cursor:pointer;display:flex;gap:.75rem;padding:.6rem 1.2rem;transition:all .2s}.show-status-toggle:hover{background:#3b82f60d;border-color:#3b82f6;border-color:var(--color-primary,#3b82f6)}.show-status-toggle input[type=checkbox]{accent-color:#3b82f6;accent-color:var(--color-primary,#3b82f6);cursor:pointer;height:18px;width:18px}.show-status-toggle label{color:#1e293b;color:var(--color-text,#1e293b);cursor:pointer;font-size:.85rem;font-weight:500;margin:0}.load-button{align-self:flex-end;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border:none;border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#fff;cursor:pointer;font-family:var(--font-primary);font-size:.9rem;font-weight:600;padding:.6rem 1.5rem;transition:all .2s}.load-button:hover{box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.load-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.column-selector-button{align-self:flex-end;background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#1e293b;color:var(--color-text,#1e293b);cursor:pointer;font-family:var(--font-primary);font-size:.85rem;font-weight:500;padding:.6rem 1.2rem;transition:all .2s;white-space:nowrap}.column-selector-button:hover{background:#3b82f60d;border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);transform:translateY(-1px)}.raw-data-toggle{align-self:flex-end;background:#fff;background:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#1e293b;color:var(--color-text,#1e293b);cursor:pointer;font-family:var(--font-primary);font-size:.85rem;font-weight:500;padding:.6rem 1.2rem;transition:all .2s;white-space:nowrap}.raw-data-toggle:hover:not(:disabled){background:#3b82f60d;border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);transform:translateY(-1px)}.raw-data-toggle.active{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;box-shadow:0 2px 8px #10b9814d;color:#fff;font-weight:600}.raw-data-toggle.active:hover{box-shadow:0 4px 12px #10b98166;transform:translateY(-1px)}.raw-data-toggle:disabled{cursor:not-allowed;opacity:.5;transform:none}.unsynced-indicator{align-self:flex-end;animation:pulse-glow 2s ease-in-out infinite;background:linear-gradient(135deg,#f59e0b,#f97316);border:none;border-radius:8px;border-radius:var(--size-borderRadius,8px);box-shadow:0 2px 8px #f59e0b4d;color:#fff;cursor:pointer;font-family:var(--font-primary);font-size:.85rem;font-weight:500;padding:.6rem 1.2rem;transition:all .2s;white-space:nowrap}.unsynced-indicator:hover{animation:none;background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 4px 16px #f59e0b80;transform:translateY(-1px)}.unsynced-indicator:active{box-shadow:0 2px 8px #f59e0b66;transform:translateY(0)}@keyframes pulse-glow{0%,to{box-shadow:0 2px 8px #f59e0b4d}50%{box-shadow:0 4px 16px #f59e0b80}}.measurement-table-container{flex:1 1;isolation:isolate;overflow:hidden}.measurement-status-bar,.measurement-table-container{background:#fff;background:var(--color-cardBackground,#fff)}.measurement-status-bar{align-items:center;border-top:2px solid #e2e8f0;border-top:2px solid var(--color-border,#e2e8f0);color:#64748b;color:var(--color-textSecondary,#64748b);display:flex;font-family:var(--font-primary);font-size:.85rem;justify-content:space-between;padding:1.25rem;padding:calc(var(--size-spacing, 1rem)*1.25)}.status-left{gap:1.5rem}.status-item,.status-left{align-items:center;display:flex}.status-item{gap:.5rem}.status-label{color:#1e293b;color:var(--color-text,#1e293b);font-weight:600}.status-value{color:#3b82f6;color:var(--color-primary,#3b82f6);font-weight:500}.error-message{background:#ef44441a;border-left:4px solid #ef4444;border-left:4px solid var(--color-error,#ef4444);border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#ef4444;color:var(--color-error,#ef4444);font-family:var(--font-primary);margin:1rem;padding:1rem 1.5rem}@media (max-width:1024px){.measurement-grid-container{flex-direction:column}.measurement-sidebar{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border,#e2e8f0);border-right:none;max-height:200px;width:100%}.measurement-filter-bar{flex-wrap:wrap}.filter-group input[type=datetime-local]{width:100%}}.report-builder{background:#f9fafb;height:100vh;position:relative}.ai-toggle-btn{background:#2563eb;border:none;border-radius:6px;box-shadow:0 2px 8px #2563eb4d;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;position:fixed;right:16px;top:16px;transition:background .2s;z-index:1000}.ai-toggle-btn:hover{background:#1d4ed8}.report-builder-layout{grid-gap:16px;box-sizing:border-box;display:grid;gap:16px;grid-template-columns:360px 1fr;height:100%;padding:60px 16px 16px}.builder-panel,.preview-panel{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;overflow:hidden}.panel-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px}.panel-header h2{color:#111827;font-size:18px;font-weight:600;margin:0}.header-actions{display:flex;gap:8px}.panel-content{flex:1 1;overflow-y:auto;padding:16px}.search-section{margin-bottom:16px}.search-input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:8px 12px;width:100%}.search-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.section{border-radius:6px}.section-header{background:#f3f4f6;padding:8px 12px}.section-actions{background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;font-size:12px;gap:8px;padding:8px 12px}.btn-action,.btn-link{background:none;border:none;border-radius:4px;color:#2563eb;cursor:pointer;font-size:12px;padding:4px 8px;text-decoration:none;transition:all .15s}.btn-action:hover,.btn-link:hover{background:#eff6ff;color:#1d4ed8}.section-content{padding:12px}.badge{background:#e5e7eb;color:#6b7280;font-weight:500;padding:2px 8px}.placeholder-text{color:#9ca3af;font-size:13px;font-style:italic;margin:0}.time-inputs{gap:12px}.input-group,.time-inputs{display:flex;flex-direction:column}.input-group{gap:4px}.input-group label{color:#6b7280;font-size:12px;font-weight:500}.input-group input,.input-group select{border:1px solid #d1d5db;border-radius:4px;font-size:13px;padding:6px 10px}.input-group input:focus,.input-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.checkbox-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.checkbox-label{align-items:center;border-radius:4px;color:#374151;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 8px;transition:background .15s}.checkbox-label:hover{background:#f3f4f6}.checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;height:16px;width:16px}.checkbox-label span{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkbox-label .unit{color:#6b7280;font-size:12px}.btn-primary,.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.btn-primary{background:#2563eb}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:#fff;border:1px solid #d1d5db;color:#374151}.btn-secondary:hover{background:#f9fafb}.status-message{color:#6b7280;font-size:14px;padding:40px 20px;text-align:center}.status-message.error{color:#dc2626}.preview-table-container{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.table-info{background:#f9fafb;border-bottom:1px solid #e5e7eb;color:#6b7280;font-size:12px;padding:8px 12px}.table-count{font-weight:600}.table-wrapper{max-height:calc(100vh - 300px);overflow:auto}.preview-table{border-collapse:collapse;font-size:13px;width:100%}.preview-table thead{background:#f3f4f6;z-index:1}.preview-table th{border-bottom:2px solid #e5e7eb;color:#374151;padding:10px 12px;white-space:nowrap}.preview-table tbody tr{border-bottom:1px solid #e5e7eb}.preview-table tbody tr:hover{background:#f9fafb}.preview-table td{color:#1f2937;padding:8px 12px}.preview-table .timestamp-cell{color:#6b7280;font-family:monospace;font-size:12px;white-space:nowrap}.preview-table .value-cell{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.ai-panel{background:#fff;border-left:1px solid #e5e7eb;box-shadow:-4px 0 16px #0000001a;display:flex;flex-direction:column;height:100vh;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .3s ease-in-out;width:400px;z-index:999}.ai-panel.open{transform:translateX(0)}.ai-panel-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px}.ai-panel-header h3{color:#111827;font-size:16px;font-weight:600;margin:0}.close-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:20px;line-height:1;padding:4px 8px}.close-btn:hover{color:#111827}.ai-panel-content{flex:1 1;overflow-y:auto;padding:16px}@media (max-width:1200px){.report-builder-layout{grid-template-columns:300px 1fr}.ai-panel{width:350px}}@media (max-width:900px){.report-builder-layout{grid-template-columns:1fr}.builder-panel{max-height:400px}}.site-item{border-bottom:1px solid #f3f4f6;padding:8px 0}.site-item:last-child{border-bottom:none}.site-header{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:6px 8px;transition:background .15s}.site-header:hover{background:#f9fafb}.site-toggle{align-items:center;color:#6b7280;display:flex;flex-shrink:0;font-size:10px;height:16px;justify-content:center;width:16px}.site-name{color:#374151;flex:1 1;font-size:13px;font-weight:500}.report-list{border-left:2px solid #f3f4f6;margin-left:24px;margin-top:6px;padding-left:12px}.report-item{border-radius:4px;cursor:pointer;margin-bottom:4px;padding:6px 8px;transition:all .15s}.report-item:hover{background:#f3f4f6}.report-item.selected{background:#eff6ff;color:#2563eb;font-weight:500}.report-name{font-size:13px}.section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px;overflow:hidden}.section-header{align-items:center;background:linear-gradient(180deg,#f9fafb,#f3f4f6);border-bottom:1px solid #e5e7eb;color:#374151;font-size:13px;font-weight:600;justify-content:space-between;padding:10px 12px}.badge{background:#e0e7ff;border-radius:12px;color:#4f46e5;font-size:11px;font-weight:600;padding:3px 8px}.badge:empty{display:none}.checkbox-list::-webkit-scrollbar,.panel-content::-webkit-scrollbar{width:8px}.checkbox-list::-webkit-scrollbar-track,.panel-content::-webkit-scrollbar-track{background:#f9fafb;border-radius:4px}.checkbox-list::-webkit-scrollbar-thumb,.panel-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.checkbox-list::-webkit-scrollbar-thumb:hover,.panel-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.settings-container{background-color:#f8fafc;background-color:var(--color-background,#f8fafc);margin:0 auto;max-width:1400px;min-height:100vh;padding:1rem;padding:var(--size-spacing,1rem)}.settings-header{margin-bottom:2rem}.settings-header h1{color:#1e293b;color:var(--color-text,#1e293b);font-family:var(--font-heading);font-size:2rem;font-weight:600;margin:0 0 .5rem}.settings-header p{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.95rem;margin:0}.settings-tabs{display:flex;gap:0;margin-bottom:0}.tab-button{background:#0000;border:none;border-radius:8px 8px 0 0;border-top:3px solid #0000;color:#64748b;color:var(--color-textSecondary,#64748b);cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.tab-button:hover{background:#3b82f60d;background:var(--color-surface,#3b82f60d);color:var(--color-primary)}.tab-button.active{background:#fff;background:var(--color-cardBackground,#fff);border-top:3px solid var(--color-primary);color:var(--color-primary);font-weight:600}.settings-content{display:flex;flex-direction:column;gap:2rem}.settings-section{background:#fff;background:var(--color-cardBackground,#fff);border:1px solid #e5e7eb;border:1px solid var(--color-cardBorder,#e5e7eb);border-radius:8px;border-radius:var(--size-borderRadius,8px);padding:1.5rem}.section-header{align-items:flex-start;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border,#e2e8f0);display:flex;flex-direction:row;gap:1rem;justify-content:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;text-align:left}.section-header svg{color:#3b82f6;color:var(--color-primary,#3b82f6);flex-shrink:0;order:0}.section-header>div{order:1;text-align:left}.section-header h2{color:#1e293b;color:var(--color-text,#1e293b);font-size:1.25rem;font-weight:600;margin:0 0 .25rem}.section-header p{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.875rem;margin:0}.theme-category{margin-bottom:2rem}.theme-category:last-child{margin-bottom:0}.theme-category h3{color:#1e293b;color:var(--color-text,#1e293b);font-size:1rem;font-weight:600;margin:0 0 1rem}.theme-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.theme-card{background:#fff;background:var(--color-surface,#fff);border:2px solid #e2e8f0;border:2px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);cursor:pointer;overflow:hidden;transition:all .2s ease}.theme-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.theme-card.active,.theme-card:hover{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6)}.theme-card.active{box-shadow:0 0 0 3px #3b82f61a}.theme-preview{background:#f8fafc;background:var(--color-background,#f8fafc);height:100px;position:relative}.theme-color-bar{height:60px;width:100%}.theme-colors{display:flex;gap:.5rem;justify-content:center;padding:.75rem}.theme-color-dot{border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0000001a;height:24px;width:24px}.theme-info{align-items:center;display:flex;justify-content:space-between;padding:.75rem 1rem}.theme-name{color:#1e293b;color:var(--color-text,#1e293b);font-size:.9rem;font-weight:500}.theme-check{color:#10b981;color:var(--color-success,#10b981);flex-shrink:0}.theme-details{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.detail-group{display:flex;flex-direction:column;gap:.75rem}.detail-group h4{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border,#e2e8f0);color:#1e293b;color:var(--color-text,#1e293b);font-size:.95rem;font-weight:600;margin:0;padding-bottom:.5rem}.color-palette{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.color-item{align-items:center;display:flex;flex-direction:column;gap:.5rem}.color-swatch{border:2px solid #e2e8f0;border:2px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);box-shadow:0 2px 4px #0000001a;height:48px;width:48px}.color-item span{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.75rem;text-align:center}.layout-preview,.typography-preview{display:flex;flex-direction:column;gap:.5rem}.layout-preview p,.typography-preview p{background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:4px;color:#1e293b;color:var(--color-text,#1e293b);font-size:.875rem;margin:0;padding:.5rem}.dashboard-config{gap:2rem;gap:calc(var(--size-spacing, 1rem)*2)}.config-item,.dashboard-config{display:flex;flex-direction:column}.config-item{gap:1rem;gap:var(--size-spacing,1rem)}.config-item label{color:#1e293b;color:var(--color-text,#1e293b);font-size:1rem;font-weight:600}.config-control{align-items:center;display:flex;gap:1rem;gap:var(--size-spacing,1rem)}.card-range-slider{-webkit-appearance:none;appearance:none;background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:4px;flex:1 1;height:8px;outline:none}.card-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:20px;width:20px}.card-range-slider::-moz-range-thumb{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border:none;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:20px;width:20px}.card-count-badge{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#fff;font-size:1rem;font-weight:600;min-width:40px;padding:.5rem 1rem;text-align:center}.site-selection-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.site-selection-actions{display:flex;gap:1rem;gap:var(--size-spacing,1rem)}.btn-link{background:none;border:none;color:#3b82f6;color:var(--color-primary,#3b82f6);cursor:pointer;font-size:.9rem;font-weight:500;padding:.25rem .5rem;transition:color .2s}.btn-link:hover{color:#06b6d4;color:var(--color-accent,#06b6d4);text-decoration:underline}.site-selection-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.site-checkbox-card{align-items:center;background:#fff;background:var(--color-surface,#fff);border:2px solid #e2e8f0;border:2px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem;transition:all .2s}.site-checkbox-card:hover{box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}.site-checkbox-card.selected,.site-checkbox-card:hover{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6)}.site-checkbox-card.selected{background:#3b82f60d}.checkbox-indicator{align-items:center;border:2px solid #e2e8f0;border:2px solid var(--color-border,#e2e8f0);border-radius:4px;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:all .2s;width:20px}.site-checkbox-card.selected .checkbox-indicator{background:#10b981;background:var(--color-success,#10b981);border-color:#10b981;border-color:var(--color-success,#10b981);color:#fff}.site-checkbox-info{flex:1 1;min-width:0}.site-checkbox-name{color:#1e293b;color:var(--color-text,#1e293b);font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-checkbox-code{font-family:var(--font-monospace);font-size:.75rem}.selection-hint,.site-checkbox-code{color:#64748b;color:var(--color-textSecondary,#64748b)}.selection-hint{background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:8px;border-radius:var(--size-borderRadius,8px);font-size:.85rem;margin-top:.5rem;padding:.75rem;text-align:center}@media (max-width:768px){.site-selection-grid,.theme-details,.theme-grid{grid-template-columns:1fr}.site-selection-header{align-items:flex-start;flex-direction:column;gap:.5rem}}.data-config{display:flex;flex-direction:column;gap:1rem}.toggle-label{align-items:center;border-radius:8px;border-radius:var(--size-borderRadius,8px);display:flex;gap:1rem;padding:1rem;transition:background-color .2s}.toggle-label:hover{background-color:#f1f5f9;background-color:var(--color-hover,#f1f5f9)}.toggle-checkbox{accent-color:#3b82f6;accent-color:var(--color-primary,#3b82f6);cursor:pointer;height:20px;width:20px}.toggle-text{display:flex;flex-direction:column;gap:.25rem}.toggle-text strong{color:#1e293b;color:var(--color-text,#1e293b);font-size:.95rem}.toggle-text small{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.85rem}.cache-config{display:flex;flex-direction:column;gap:1.5rem}.cache-option{align-items:flex-start;background-color:#f8fafc;background-color:var(--color-surface,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);display:flex;gap:2rem;justify-content:space-between;padding:1.5rem}.cache-option-info{flex:1 1}.cache-option-info label{color:#1e293b;color:var(--color-text,#1e293b);display:block;font-size:1rem;font-weight:600;margin-bottom:.5rem}.cache-option-description{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.875rem;line-height:1.5;margin:0}.mode-selector{display:flex;flex-direction:column;gap:1rem}.mode-option{align-items:flex-start;background-color:#f8fafc;background-color:var(--color-surface,#f8fafc);border:2px solid #e2e8f0;border:2px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);cursor:pointer;display:flex;gap:1rem;padding:1.25rem;transition:all .2s ease}.mode-option:hover{background-color:#3b82f605}.mode-option.selected,.mode-option:hover{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6)}.mode-option.selected{background-color:#3b82f60d;box-shadow:0 0 0 3px #3b82f61a}.mode-option input[type=radio]{accent-color:#3b82f6;accent-color:var(--color-primary,#3b82f6);cursor:pointer;flex-shrink:0;height:18px;margin-top:.25rem;width:18px}.mode-icon{align-items:center;display:flex;flex-shrink:0;height:48px;justify-content:center;margin-top:.25rem;width:48px}.mode-details{flex:1 1}.mode-title{color:#1e293b;color:var(--color-text,#1e293b);font-size:1.1rem;font-weight:600;margin-bottom:.25rem}.mode-subtitle{font-weight:500;margin-bottom:.5rem}.mode-description,.mode-subtitle{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.875rem}.mode-description{line-height:1.5;margin:0 0 .75rem}.mode-features{list-style-type:disc;margin:0;padding-left:1.25rem}.mode-features li{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.8125rem;line-height:1.6;margin-bottom:.25rem}.mode-features li:last-child{margin-bottom:0}.toggle-switch{flex-shrink:0;height:26px;position:relative;width:50px}.toggle-checkbox{height:0;opacity:0;width:0}.toggle-label{background-color:#ccc;border-radius:26px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-label:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:20px;left:3px;position:absolute;transition:.3s;width:20px}.toggle-checkbox:checked+.toggle-label{background-color:#3b82f6;background-color:var(--color-primary,#3b82f6)}.toggle-checkbox:checked+.toggle-label:before{transform:translateX(24px)}.cache-info-box{background-color:#eff6ff;border-left:4px solid #3b82f6;border-left:4px solid var(--color-primary,#3b82f6);border-radius:4px;margin-top:1rem;padding:1rem}.cache-info-box strong{color:#1e293b;color:var(--color-text,#1e293b);display:block;margin-bottom:.5rem}.cache-info-box ul{list-style:disc;margin:0;padding-left:1.5rem}.cache-info-box li{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.875rem;margin:.25rem 0}.duckdb-test-panel{background-color:#f8fafc;border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);margin-top:1rem;padding:1.5rem}.duckdb-test-panel h4{font-size:1rem;margin:0 0 1rem}.duckdb-test-panel h4,.duckdb-test-panel h5{color:#1e293b;color:var(--color-text,#1e293b);font-weight:600}.duckdb-test-panel h5{font-size:.9rem;margin:0 0 .5rem}.test-status{background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:4px}.test-error,.test-status{font-family:monospace;font-size:.875rem;margin-bottom:1rem;padding:.75rem}.test-error{background-color:#fee;border:1px solid #fcc;border-radius:4px;color:#c00}.test-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.btn-test{background-color:#3b82f6;background-color:var(--color-primary,#3b82f6);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s}.btn-test:hover{background-color:#2563eb;background-color:var(--color-primaryHover,#2563eb)}.btn-test.btn-danger{background-color:#ef4444}.btn-test.btn-danger:hover{background-color:#dc2626}.test-stats{background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:4px;padding:1rem}.test-stats h5{color:#1e293b;color:var(--color-text,#1e293b);margin:0 0 .75rem}.stats-grid{grid-gap:.75rem;display:grid;gap:.75rem;margin-bottom:1rem}.stat-item{background-color:#f8fafc;border-radius:4px;padding:.5rem}.stat-item strong{color:#64748b;color:var(--color-text-secondary,#64748b);display:block;font-size:.85rem;margin-bottom:.25rem}.test-stats details{margin-top:.75rem}.test-stats summary{color:#3b82f6;color:var(--color-primary,#3b82f6);cursor:pointer;font-size:.9rem;font-weight:500}.test-stats pre{color:#1e293b;color:var(--color-text,#1e293b);font-family:monospace;font-size:.75rem;margin:.5rem 0 0;overflow-x:auto}.sync-status-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.status-badge{border-radius:12px;display:inline-block;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.status-success{background-color:#d1fae5;color:#065f46}.status-warning{background-color:#fef3c7;color:#92400e}.status-syncing{animation:pulse 2s ease-in-out infinite;background-color:#dbeafe;color:#1e40af}.status-idle{background-color:#e5e7eb;color:#374151}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.shard-stats,.storage-stats{margin-bottom:1.5rem}.shard-stats h5,.storage-stats h5{color:#1e293b;color:var(--color-text,#1e293b);font-size:.95rem;font-weight:600;margin:0 0 .75rem}.btn-test:disabled{cursor:not-allowed;opacity:.5}.sync-message{border-radius:4px;font-size:.875rem;font-weight:500;margin-bottom:1rem;padding:.75rem}.sync-message.success{background-color:#d1fae5;border:1px solid #a7f3d0;color:#065f46}.sync-message.error{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b}.account-info{display:flex;flex-direction:column;gap:1rem}.info-row{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:6px;display:flex;padding:.75rem 1rem}.info-label{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.9rem;font-weight:600;min-width:120px}.info-value{color:#1e293b;color:var(--color-text,#1e293b);font-size:.95rem;font-weight:500}.chart-container{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:8px;margin:1em 0;padding:1em}.chart-description{color:#666;color:var(--text-secondary,#666);font-size:14px;font-style:italic;margin:0 0 1em}.chart-wrapper{height:auto;max-width:100%;min-height:300px;position:relative;width:100%}.chart-error{background:#fee;background:var(--danger-bg,#fee);border:1px solid #f44336;border:1px solid var(--danger-color,#f44336);border-radius:4px;color:#f44336;color:var(--danger-color,#f44336);padding:1em;text-align:center}@media (max-width:768px){.chart-wrapper{min-height:250px}}.ai-chat-container{background:#fff;background:var(--bg-primary,#fff);display:flex;flex-direction:column;height:calc(100vh - 80px);margin:0 auto;max-width:1200px;padding:20px}.chat-header{align-items:center;border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--border-color,#e0e0e0);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.chat-header h2{color:#333;color:var(--text-primary,#333);margin:0}.chat-controls{align-items:center;display:flex;gap:10px}.webhook-input{background:#f5f5f5;background:var(--bg-secondary,#f5f5f5);border:1px solid #ccc;border:1px solid var(--border-color,#ccc);border-radius:4px;color:#333;color:var(--text-primary,#333);font-size:13px;padding:8px 12px;width:300px}.clear-btn{background:#dc3545;background:var(--danger-color,#dc3545);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.clear-btn:hover{background:#c82333;background:var(--danger-hover,#c82333)}.chat-messages{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-radius:8px;flex:1 1;min-height:0;overflow-y:auto;padding:20px}.welcome-message{color:#666;color:var(--text-secondary,#666);padding:40px 20px;text-align:center}.welcome-message h3{color:#333;color:var(--text-primary,#333);margin-bottom:20px}.welcome-message ul{display:inline-block;margin-top:15px;text-align:left}.welcome-message li{color:#666;color:var(--text-secondary,#666);margin:8px 0}.message{border-radius:8px;margin-bottom:20px;max-width:80%;padding:15px}.message.user{background:#007bff;background:var(--primary-color,#007bff);color:#fff;margin-left:auto}.message.assistant{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0)}.message-header{align-items:center;display:flex;font-size:12px;justify-content:space-between;margin-bottom:8px;opacity:.8}.message-role{font-weight:700;text-transform:uppercase}.message-time{font-size:11px}.message-content{font-size:14px;line-height:1.6}.message-content pre{word-wrap:break-word;font-family:inherit;margin:0;white-space:pre-wrap}.message.assistant .message-content pre{background:#f5f5f5;background:var(--bg-secondary,#f5f5f5);border-radius:4px;font-family:Courier New,monospace;overflow-x:auto;padding:10px}.markdown-content{line-height:1.6}.markdown-content p{margin:.5em 0}.markdown-content table{border-collapse:collapse;display:block;font-size:13px;margin:1em 0;max-width:100%;overflow-x:auto;width:100%}.markdown-content thead{background:#f5f5f5;background:var(--bg-secondary,#f5f5f5)}.markdown-content th{color:#333;color:var(--text-primary,#333);font-weight:600}.markdown-content td,.markdown-content th{border:1px solid #ddd;border:1px solid var(--border-color,#ddd);padding:8px 12px;text-align:left}.markdown-content tr:nth-child(2n){background:#f9f9f9;background:var(--bg-secondary,#f9f9f9)}.markdown-content tr:hover{background:#f0f0f0;background:var(--bg-hover,#f0f0f0)}.markdown-content code{border-radius:3px;font-family:Courier New,monospace;font-size:.9em;padding:2px 6px}.markdown-content code,.markdown-content pre{background:#f5f5f5;background:var(--bg-secondary,#f5f5f5)}.markdown-content pre{border-radius:4px;margin:1em 0;overflow-x:auto;padding:12px}.markdown-content pre code{background:none;padding:0}.markdown-content ol,.markdown-content ul{margin:.5em 0;padding-left:2em}.markdown-content li{margin:.25em 0}.message-content.loading{font-style:italic;opacity:.7}.loading-dots:after{animation:dots 1.5s steps(4) infinite;content:"..."}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.chat-input-container{align-items:flex-end;display:flex;gap:10px}.chat-input{background:#fff;background:var(--bg-primary,#fff);border:2px solid #ccc;border:2px solid var(--border-color,#ccc);border-radius:8px;color:#333;color:var(--text-primary,#333);flex:1 1;font-family:inherit;font-size:14px;min-height:60px;padding:12px;resize:vertical}.chat-input:focus{border-color:#007bff;border-color:var(--primary-color,#007bff);outline:none}.chat-input:disabled{cursor:not-allowed;opacity:.6}.send-btn{background:#007bff;background:var(--primary-color,#007bff);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;height:60px;padding:12px 24px;transition:background .2s}.send-btn:hover:not(:disabled){background:#0056b3;background:var(--primary-hover,#0056b3)}.send-btn:disabled{cursor:not-allowed;opacity:.5}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#f1f1f1;background:var(--bg-secondary,#f1f1f1);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb{background:#888;background:var(--border-color,#888);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#555;background:var(--text-secondary,#555)}.help-btn{background:#007bff;background:var(--primary-color,#007bff);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:background .2s}.help-btn:hover{background:#0056b3;background:var(--primary-hover,#0056b3)}.chat-main-container{flex:1 1;flex-direction:row}.chat-content,.chat-main-container{display:flex;gap:20px;overflow:hidden}.chat-content{flex:1 1;flex-direction:column}.guide-panel{background:#fff;background:var(--bg-primary,#fff);border:2px solid #007bff;border:2px solid var(--primary-color,#007bff);border-radius:8px;flex-shrink:0;overflow-y:auto;padding:20px;width:50%}.guide-panel h3{color:#007bff;color:var(--primary-color,#007bff);margin:0 0 10px}.guide-intro{color:#666;color:var(--text-secondary,#666);font-size:14px;margin-bottom:20px}.guide-categories{display:flex;flex-direction:column;gap:15px}.guide-section{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;padding:10px}.guide-section summary{border-radius:4px;cursor:pointer;font-weight:600;padding:5px;transition:background .2s;-webkit-user-select:none;user-select:none}.guide-section summary:hover{background:#e9ecef;background:var(--bg-hover,#e9ecef)}.guide-section summary h4{color:#333;color:var(--text-primary,#333);display:inline;font-size:16px;margin:0}.guide-section ul{margin:10px 0 5px;padding-left:25px}.guide-section li{color:#555;color:var(--text-secondary,#555);font-size:14px;line-height:1.5;margin:6px 0}.guide-section li strong{color:#333;color:var(--text-primary,#333)}.guide-section li ul{margin-bottom:0;margin-top:5px}.guide-section li ul li{color:#666;color:var(--text-secondary,#666);font-size:13px}.feature-highlight{background:#d4edda;background:var(--success-light,#d4edda);border-left:3px solid #28a745;border-left:3px solid var(--success-color,#28a745);border-radius:4px;color:#155724;color:var(--success-dark,#155724);font-size:13px;font-weight:500;margin:10px 0;padding:8px 12px}.tip{background:#d1ecf1;background:var(--info-light,#d1ecf1);border-left:3px solid #17a2b8;border-left:3px solid var(--info-color,#17a2b8);color:#0c5460;color:var(--info-dark,#0c5460);font-size:14px;margin:10px 0 5px;padding:10px 15px}.tip,.tip-small{border-radius:4px}.tip-small{background:#e7f3ff;background:var(--info-light,#e7f3ff);color:#004085;color:var(--info-dark,#004085);font-size:12px;font-style:italic;margin:8px 0 0;padding:6px 10px}.guide-footer{border-top:2px solid #e0e0e0;border-top:2px solid var(--border-color,#e0e0e0);margin-top:20px;padding-top:15px}.guide-footer ul{margin:10px 0;padding-left:25px}.guide-footer li{color:#666;color:var(--text-secondary,#666);font-size:13px;margin:5px 0}.guide-panel::-webkit-scrollbar{width:8px}.guide-panel::-webkit-scrollbar-track{background:#f1f1f1;background:var(--bg-secondary,#f1f1f1);border-radius:4px}.guide-panel::-webkit-scrollbar-thumb{background:#888;background:var(--border-color,#888);border-radius:4px}.guide-panel::-webkit-scrollbar-thumb:hover{background:#555;background:var(--text-secondary,#555)}.calculated-channels{height:calc(100vh - 80px);padding:20px}.calculated-channels,.cc-header{display:flex;flex-direction:column}.cc-header{border-bottom:2px solid #e0e0e0;margin-bottom:20px;padding-bottom:15px}.cc-header h1{font-size:24px;margin:0 0 15px}.cc-tabs{display:flex;gap:10px}.cc-tab{background:#f5f5f5;border:1px solid #ddd;border-bottom:none;border-radius:6px 6px 0 0;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.cc-tab:hover{background:#e8e8e8;color:#333}.cc-tab.active{background:#fff;border-color:#2563eb;color:#2563eb;font-weight:600}.report-selector{align-items:center;display:flex;gap:10px}.report-selector label{font-weight:600}.report-selector select{border:1px solid #ccc;border-radius:4px;font-size:14px;min-width:200px;padding:8px 12px}.cc-panels{grid-gap:20px;display:grid;flex:1 1;gap:20px;grid-template-columns:1fr 1.5fr 1fr;overflow:hidden}.cc-panel{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow-y:auto;padding:20px}.cc-panel h3{border-bottom:2px solid #4caf50;color:#333;font-size:18px;margin-bottom:15px;margin-top:0;padding-bottom:8px}.cc-left-panel{display:flex;flex-direction:column;gap:15px}.collapsible-section{flex-shrink:0}.collapsible-header{align-items:center;border-bottom:1px solid #4caf50;color:#333;cursor:pointer;display:flex;font-size:16px;gap:8px;margin:0 0 10px;padding-bottom:6px;transition:color .2s;-webkit-user-select:none;user-select:none}.collapsible-header:hover{color:#4caf50}.collapse-icon{color:#666;display:inline-block;font-size:10px;width:12px}.collapsible-content,.period-presets{margin-bottom:10px}.period-presets{display:flex;flex-wrap:wrap;gap:6px}.btn-preset{background:#fff;border:1px solid #ddd;border-radius:4px;color:#555;cursor:pointer;flex:1 1;font-size:11px;font-weight:600;min-width:70px;padding:6px 8px;transition:all .2s;white-space:nowrap}.btn-preset:hover{background:#f5f5f5;border-color:#4caf50}.btn-preset:active{background:#e8f5e9;border-color:#4caf50}.period-custom{align-items:center;display:flex;gap:8px}.period-custom input[type=datetime-local]{border:1px solid #ccc;border-radius:4px;flex:1 1;font-family:inherit;font-size:11px;padding:6px 8px}.period-custom input[type=datetime-local]:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a;outline:none}.period-separator{color:#999;font-size:14px;font-weight:600}.site-report-tree{flex-shrink:0}.tree-view{border:1px solid #e0e0e0;border-radius:4px;max-height:300px;overflow-y:auto}.tree-site{border-bottom:1px solid #f0f0f0}.tree-site:last-child{border-bottom:none}.tree-site-header{align-items:center;background:#fafafa;cursor:pointer;display:flex;gap:8px;padding:10px 12px;transition:background .2s}.tree-site-header:hover{background:#f0f0f0}.tree-icon{color:#666;display:inline-block;font-size:10px;width:12px}.tree-site-name{color:#333;font-weight:600}.tree-site-code{color:#888;font-size:12px;margin-left:4px}.tree-reports{background:#fff}.tree-report{border-left:3px solid #0000;cursor:pointer;padding:8px 12px 8px 36px;transition:all .2s}.tree-report:hover{background:#f5f5f5;border-left-color:#4caf50}.tree-report.selected{background:#e8f5e9;border-left-color:#4caf50;font-weight:600}.tree-report-name{color:#555;font-size:13px}.tree-report.selected .tree-report-name{color:#2e7d32}.saved-ccs-section{display:flex;flex:0 0 auto;flex-direction:column;max-height:30%;min-height:0}.channel-refs-section{display:flex;flex:1 1;flex-direction:column;min-height:0}.channel-refs-list,.saved-ccs-list{flex:1 1;overflow-y:auto}.saved-cc-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:10px;padding:12px}.cc-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.cc-item-actions{display:flex;gap:6px}.cc-formula{background:#fff;border-radius:4px;color:#555;font-family:Monaco,Courier New,monospace;font-size:12px;padding:6px;word-break:break-word}.cc-unit{color:#888;font-size:11px;margin-top:6px}.cc-name-with-status{align-items:center;display:flex;gap:8px}.cc-status-badge{border-radius:3px;font-size:14px;font-weight:700;padding:2px 6px}.cc-status-badge.cc-applied{background:#4caf50;color:#fff}.cc-template-info{background:#e8f5e9;border-left:3px solid #4caf50;border-radius:3px;font-size:11px;margin-top:8px;padding:6px}.cc-template-deps,.cc-template-labels{color:#2e7d32;margin:2px 0}.cc-template-deps strong,.cc-template-labels strong{font-weight:600;margin-right:4px}.cc-applied-count{color:#666;font-size:10px;font-style:italic;margin-top:6px}.btn-apply{background:#4caf50;color:#fff}.btn-apply:hover:not(:disabled){background:#45a049}.btn-apply:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.btn-remove{background:#ff9800;color:#fff}.btn-remove:hover{background:#e68900}.channel-ref-item{background:#f5f5f5;border:1px solid #ddd;border-radius:4px;display:flex;flex-direction:column;gap:4px;margin-bottom:8px;padding:10px}.ref-label{font-size:13px;font-weight:600}.ref-identifier{background:#fff;border-radius:3px;color:#666;font-family:Monaco,Courier New,monospace;font-size:11px;padding:4px}.form-group{margin-bottom:20px}.form-group label{margin-bottom:6px}.form-group input,.form-group textarea{border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:14px;padding:10px;width:100%}.form-group textarea{font-family:Monaco,Courier New,monospace;resize:vertical}.formula-help{color:#666;font-size:11px;line-height:1.5;margin-top:6px}.validation-message{border-radius:4px;font-size:14px;margin-bottom:15px;padding:12px}.validation-message.valid{background:#e8f5e9;border:1px solid #4caf50;color:#2e7d32}.validation-message.invalid{background:#ffebee;border:1px solid #f44336;color:#c62828}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-validate{background:#2196f3;color:#fff}.btn-validate:hover{background:#1976d2}.btn-save{background:#4caf50;color:#fff}.btn-save:hover{background:#45a049}.btn-clear{background:#9e9e9e;color:#fff}.btn-clear:hover{background:#757575}.btn-small{border:none;border-radius:3px;cursor:pointer;font-size:12px;font-weight:500;padding:4px 10px;transition:all .2s}.btn-load{background:#2196f3;color:#fff}.btn-load:hover{background:#1976d2}.btn-delete{background:#f44336;color:#fff}.btn-delete:hover{background:#d32f2f}.btn-insert{background:#4caf50;color:#fff;margin-top:6px}.btn-insert:hover{background:#45a049}.preview-placeholder{background:#f9f9f9;border:2px dashed #ccc;border-radius:6px;color:#666;padding:20px;text-align:center}.preview-placeholder ul{margin:20px auto;max-width:300px;text-align:left}.preview-placeholder .note{color:#999;font-size:12px;font-style:italic;margin-top:20px}.empty-message{color:#999;font-style:italic;padding:20px;text-align:center}.monaco-editor-wrapper{border:1px solid #d0d0d0;border-radius:4px;overflow:visible;position:relative}.monaco-editor .suggest-widget{z-index:1000!important}.monaco-editor .suggest-widget .monaco-list{max-height:300px!important;overflow-y:auto!important}.monaco-editor .overflow-guard{overflow:visible!important}.monaco-editor .margin{margin-right:8px!important}.channel-ref-info{background:#f0f7ff;border:1px solid #b3d9ff;border-radius:4px;font-size:12px;margin-bottom:10px;padding:10px}.channel-ref-info-header{align-items:center;color:#1976d2;display:flex;font-weight:600;gap:6px;margin-bottom:6px}.channel-ref-info-content{display:flex;flex-direction:column;gap:4px}.channel-ref-info-row{align-items:center;display:flex;gap:6px}.channel-ref-info-label{color:#555;font-weight:600;min-width:60px}.channel-ref-info-value{color:#333;font-family:Monaco,Courier New,monospace;font-size:11px}.preview-loading{color:#666;font-style:italic;padding:40px;text-align:center}.preview-error{background:#ffebee;border:1px solid #f44336;border-radius:4px;color:#c62828;margin-bottom:15px;padding:12px}.preview-results h4{color:#333;font-size:14px;margin:0 0 10px}.preview-chart{background:#fff;margin-bottom:20px;padding:10px}.preview-chart,.preview-table{border:1px solid #e0e0e0;border-radius:4px}.preview-table{max-height:300px;overflow:auto}.preview-table table{border-collapse:collapse;font-size:12px;width:100%}.preview-table thead{background:#f5f5f5;border-bottom:2px solid #ddd;position:-webkit-sticky;position:sticky;top:0;z-index:10}.preview-table th{font-weight:600;padding:8px;text-align:left}.preview-table td{border-bottom:1px solid #eee;padding:6px 8px}.preview-table tbody tr:nth-child(2n){background:#fafafa}.preview-table tbody tr:hover{background:#f0f7ff}.syntax-guide-section{border:1px solid #e0e0e0;border-radius:4px;margin-top:10px;overflow:hidden}.syntax-guide-toggle{align-items:center;background:#f5f5f5;border:none;color:#333;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;padding:10px 12px;text-align:left;transition:background .2s;width:100%}.syntax-guide-toggle:hover{background:#ebebeb}.syntax-guide-content{background:#fafafa;font-size:12px;line-height:1.6;max-height:400px;overflow-y:auto;padding:15px}.syntax-section{border-bottom:1px solid #e0e0e0;margin-bottom:15px;padding-bottom:12px}.syntax-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.syntax-section strong{color:#2e7d32;display:block;font-size:13px;margin-bottom:8px}.syntax-section ul{list-style-type:disc;margin:0;padding-left:20px}.syntax-section li{color:#555;margin-bottom:6px}.syntax-section code{background:#fff;border:1px solid #e0e0e0;border-radius:3px;color:#d32f2f;font-family:Monaco,Courier New,monospace;font-size:11px;padding:2px 6px}.mapping-preview-panel{background:#f8f9fa;border:2px solid #007bff;border-radius:8px;box-shadow:0 4px 6px #0000001a;margin-top:20px;padding:20px}.mapping-header{align-items:center;border-bottom:2px solid #007bff;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.mapping-header h3{color:#007bff;font-size:18px;margin:0}.btn-close{background:none;border:none;color:#666;cursor:pointer;font-size:24px;height:30px;line-height:1;padding:0;width:30px}.btn-close:hover{color:#d32f2f}.mapping-formula-section{margin-bottom:20px}.mapping-formula-section h4{color:#555;font-size:14px;margin:0 0 8px}.formula-display{background:#fff;border:1px solid #ddd;border-radius:4px;color:#333;font-family:Monaco,Courier New,monospace;font-size:13px;padding:12px}.mapping-mappings-section{margin-bottom:20px}.mapping-mappings-section h4{color:#555;font-size:14px;margin:0 0 12px}.mapping-item{align-items:flex-start;background:#fff;border-left:4px solid;border-radius:4px;display:flex;gap:12px;margin-bottom:8px;padding:12px}.mapping-item.mapping-ok{border-left-color:#28a745}.mapping-item.mapping-ambiguous{border-left-color:#ffc107}.mapping-item.mapping-missing{border-left-color:#d32f2f}.mapping-label{color:#007bff;flex-shrink:0;font-family:Monaco,Courier New,monospace;font-weight:600;min-width:100px}.mapping-arrow{color:#999;flex-shrink:0;font-weight:700}.mapping-channels{flex:1 1}.mapping-success{color:#28a745;font-weight:500}.mapping-error{color:#d32f2f;font-weight:600}.mapping-ambiguous{color:#856404}.mapping-warning{color:#856404;display:block;font-weight:600;margin-bottom:8px}.mapping-match{background:#f8f9fa;border:1px solid #ddd;border-radius:3px;margin:4px 0;padding:6px 10px}.mapping-match.mapping-selected{background:#fff3cd;border-color:#ffc107;font-weight:600}.mapping-comment-section{margin-bottom:20px}.mapping-comment-section label{color:#555;display:block;font-weight:600;margin-bottom:6px}.mapping-comment-section textarea{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:13px;padding:10px;resize:vertical;width:100%}.mapping-actions{display:flex;gap:10px;justify-content:flex-end}.btn-apply-template{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:background .2s}.btn-apply-template:hover:not(:disabled){background:#0056b3}.btn-apply-template:disabled{background:#ccc;cursor:not-allowed}.btn-save-as-new{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:background .2s}.btn-save-as-new:hover:not(:disabled){background:#218838}.btn-save-as-new:disabled{background:#ccc;cursor:not-allowed}.btn-cancel{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:15px;padding:12px 24px;transition:background .2s}.btn-cancel:hover{background:#5a6268}.mapping-label-header{align-items:center;display:flex;flex-shrink:0;gap:8px;min-width:100px}.user-modified-badge{background:#17a2b8;border-radius:3px;color:#fff;cursor:help;font-size:11px;font-weight:600;padding:2px 6px}.mapping-selector{display:flex;flex:1 1;flex-direction:column;gap:6px}.mapping-dropdown{background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-family:Monaco,Courier New,monospace;font-size:13px;padding:8px 12px;transition:all .2s;width:100%}.mapping-dropdown:hover{border-color:#999}.mapping-dropdown:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.mapping-ok-select{border-color:#28a745}.mapping-ambiguous-select{background:#fffbf0;border-color:#ffc107}.mapping-note{color:#856404;font-size:12px;font-style:italic}.cc-status-badge.cc-global{background:#10b981;border-radius:3px;color:#fff;font-size:11px;margin-left:8px;padding:2px 6px}.global-cc-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin-bottom:20px;padding:15px}.global-cc-info p{color:#1e40af;font-size:13px;margin:5px 0}.global-cc-info code{background:#dbeafe;border-radius:3px;color:#1e3a8a;font-family:Monaco,Courier New,monospace;padding:2px 6px}.cc-description{color:#666;font-size:13px;font-style:italic;margin-top:5px}.channel-refs-note{background:#f9fafb;border-top:1px solid #e5e7eb;color:#6b7280;font-size:12px;padding:10px;text-align:center}.user-management-container{background-color:#f8fafc;background-color:var(--color-background,#f8fafc);margin:0 auto;max-width:1400px;min-height:100vh;padding:1rem;padding:var(--size-spacing,1rem)}.user-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.user-management-header h1{color:#1e293b;color:var(--color-text,#1e293b);font-family:var(--font-heading);font-size:2rem;font-weight:600;margin:0 0 .5rem}.user-management-header p{color:#64748b;color:var(--color-textSecondary,#64748b);font-size:.95rem;margin:0}.users-table-container{background:#fff;background:var(--color-cardBackground,#fff);border:1px solid #e5e7eb;border:1px solid var(--color-cardBorder,#e5e7eb);border-radius:8px;border-radius:var(--size-borderRadius,8px);overflow:hidden}.users-table{border-collapse:collapse;width:100%}.users-table thead{background:#f8fafc;background:var(--color-background,#f8fafc);border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--color-border,#e2e8f0)}.users-table th{font-size:.875rem;font-weight:600;letter-spacing:.05em;text-align:left;text-transform:uppercase}.users-table td,.users-table th{color:#1e293b;color:var(--color-text,#1e293b);padding:1rem}.users-table td{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border,#e2e8f0)}.users-table tbody tr:hover{background:#3b82f605;background:var(--color-surface,#3b82f605)}.users-table tbody tr:last-child td{border-bottom:none}.email-cell,.user-cell{align-items:center;display:flex;gap:.5rem}.user-cell svg{color:#3b82f6;color:var(--color-primary,#3b82f6)}.email-cell svg,.text-muted{color:#64748b;color:var(--color-textSecondary,#64748b)}.text-muted{font-size:.875rem}.role-badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:600;gap:.375rem;padding:.375rem .75rem;text-transform:capitalize}.role-admin{background:#fee2e2;color:#991b1b}.role-editor{background:#dbeafe;color:#1e40af}.role-viewer{background:#e0e7ff;color:#4338ca}.action-buttons{display:flex;gap:.5rem}.btn-icon{align-items:center;background:#0000;border:none;border-radius:6px;border-radius:var(--size-borderRadius,6px);color:#64748b;color:var(--color-textSecondary,#64748b);cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s}.btn-icon:hover{background:#3b82f61a;background:var(--color-surface,#3b82f61a);color:#3b82f6;color:var(--color-primary,#3b82f6)}.btn-icon.btn-danger:hover{background:#dc26261a;color:#dc2626}.btn-primary{align-items:center;background:#3b82f6;background:var(--color-primary,#3b82f6);border:none;border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#fff;cursor:pointer;display:inline-flex;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s}.btn-primary:hover{background:#2563eb;background:var(--color-primaryHover,#2563eb);box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.btn-secondary{background:#f1f5f9;background:var(--color-background,#f1f5f9);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#1e293b;color:var(--color-text,#1e293b);cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-secondary:hover{background:#e2e8f0;background:var(--color-surface,#e2e8f0)}.loading-state{font-size:1.1rem}.empty-state,.loading-state{color:#64748b;color:var(--color-textSecondary,#64748b);padding:4rem 2rem;text-align:center}.empty-state svg{color:#cbd5e1;color:var(--color-textTertiary,#cbd5e1);margin-bottom:1rem}.empty-state p{font-size:1.1rem;margin-bottom:1.5rem}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.modal-content{background:#fff;background:var(--color-cardBackground,#fff);border-radius:12px;border-radius:var(--size-borderRadius,12px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border,#e2e8f0);display:flex;justify-content:space-between;padding:1.5rem}.modal-header h2{color:#1e293b;color:var(--color-text,#1e293b);font-size:1.5rem;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#64748b;color:var(--color-textSecondary,#64748b);cursor:pointer;display:flex;font-size:2rem;height:2rem;justify-content:center;line-height:1;padding:0;transition:all .2s;width:2rem}.modal-close:hover{background:#0000000d;background:var(--color-surface,#0000000d);color:#1e293b;color:var(--color-text,#1e293b)}form{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#1e293b;color:var(--color-text,#1e293b);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select{background:#fff;background:var(--color-cardBackground,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:6px;border-radius:var(--size-borderRadius,6px);color:#1e293b;color:var(--color-text,#1e293b);font-size:1rem;padding:.75rem;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.modal-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--color-border,#e2e8f0);display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem}.login-container{align-items:center;background:#3a4a48;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:40px;width:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:32px;text-align:center}.login-header h1{color:#2d403c;font-size:36px;font-weight:700;letter-spacing:1px;margin:0 0 8px}.login-header p{color:#666;font-size:14px;margin:0}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#333;font-size:14px;font-weight:600}.form-group input{border:2px solid #e1e8ed;border-radius:8px;font-size:15px;padding:12px 16px;transition:border-color .2s}.form-group input:focus{border-color:#2d403c;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:14px;padding:12px;text-align:center}.login-button{background:linear-gradient(135deg,#2d403c,#3d504c);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:8px;padding:14px;transition:transform .1s,box-shadow .2s}.login-button:hover:not(:disabled){box-shadow:0 4px 12px #2d403c66;transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6}.login-footer{border-top:1px solid #e1e8ed;margin-top:32px;padding-top:24px;text-align:center}.login-footer p{color:#999;font-size:13px;margin:0}.login-page-logo{align-items:center;bottom:24px;display:flex;justify-content:center;left:0;position:fixed;right:0;z-index:10}.login-page-logo img{display:block;height:40px;mix-blend-mode:lighten;width:auto}@media (prefers-color-scheme:dark){.login-container{background:linear-gradient(135deg,#1a202c,#2d3748)}.login-box{background:#2d3748;color:#e2e8f0}.login-header h1{color:#90cdf4}.login-header p{color:#cbd5e0}.form-group label{color:#e2e8f0}.form-group input{background:#1a202c;border-color:#4a5568;color:#e2e8f0}.form-group input:focus{border-color:#90cdf4}.login-footer{border-top-color:#4a5568}.login-footer p{color:#a0aec0}}.mode-badge{align-items:center;border:1px solid #fff3;border-radius:5px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;font-weight:500;height:30px;justify-content:center;letter-spacing:.02em;outline:none;padding:5px 14px;transition:all .2s ease}.mode-badge:hover{box-shadow:0 3px 8px #0003;filter:brightness(1.1);transform:translateY(-1px)}.mode-badge:active{box-shadow:0 1px 2px #0000001a;transform:translateY(0)}.mode-badge:focus{outline:2px solid #fff6;outline-offset:2px}.mode-label{line-height:1;white-space:nowrap}.mode-cloud{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.mode-sync{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.mode-offline{background:linear-gradient(135deg,#10b981,#059669);color:#fff}@media (prefers-color-scheme:dark){.mode-badge{box-shadow:0 1px 3px #0000004d}.mode-badge:hover{box-shadow:0 2px 6px #0006}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f8fafc;background-color:var(--color-background,#f8fafc);color:#1e293b;color:var(--color-text,#1e293b);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-primary,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif);font-size:14px;font-size:var(--size-baseFontSize,14px)}.App{display:flex;flex-direction:column;height:100vh}.navbar{background-color:#1e293b;background-color:var(--color-navBackground,#1e293b);box-shadow:0 2px 4px #0000001a;color:#f1f5f9;color:var(--color-navText,#f1f5f9);height:60px;justify-content:space-between;left:0;padding:0 20px;pointer-events:auto;position:fixed;right:0;top:0;z-index:9999}.nav-brand,.navbar{align-items:center;display:flex}.nav-brand{gap:24px}.nav-brand h1{font-family:var(--font-heading);font-size:20px;font-weight:600}.nav-links{gap:30px;list-style:none}.nav-links,.nav-links li{align-items:center;display:flex}.nav-links a{border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#f1f5f9;color:var(--color-navText,#f1f5f9);font-weight:500;padding:8px 16px;pointer-events:auto;position:relative;text-decoration:none;transition:background-color .2s;z-index:1001}.nav-links a:hover{background-color:#334155;background-color:var(--color-navHover,#334155)}.nav-logout-button{background:none;border:none;border-radius:8px;border-radius:var(--size-borderRadius,8px);color:#f1f5f9;color:var(--color-navText,#f1f5f9);font-size:inherit;font-weight:500;padding:8px 16px;pointer-events:auto;position:relative;text-decoration:none;transition:background-color .2s;z-index:1001}.nav-logout-button:hover{background-color:#334155;background-color:var(--color-navHover,#334155)}.main-content{background-color:#f8fafc;background-color:var(--color-background,#f8fafc);flex:1 1;margin-top:60px;overflow:auto}button{border-radius:8px;border-radius:var(--size-borderRadius,8px);cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}
/*# sourceMappingURL=main.7bc72725.css.map*/