.alert-banner{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem 1rem;padding:.75rem 1rem;margin-bottom:1rem;border-radius:8px;border-left:5px solid #f39c12;background:#f39c121f;color:var(--text-primary, #1f2937)}.alert-banner--critical{border-left-color:#e74c3c;background:#e74c3c1f}.alert-banner--info{border-left-color:#2889c6;background:#2889c61a}.alert-banner-title{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.alert-banner-icon{font-size:1.2rem}.alert-banner-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:0}.alert-item{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;font-size:.9rem}.alert-item--acknowledged{opacity:.65}.alert-item-severity,.alert-severity{text-transform:uppercase;font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:.1rem .45rem;border-radius:4px;background:#f39c1240;color:#a15c00}.alert-item--critical .alert-item-severity,.alert-severity--critical{background:#e74c3c33;color:#b02a1b}.alert-item--info .alert-item-severity,.alert-severity--info{background:#2889c62e;color:#1d6a99}.alert-item-name{font-weight:600}.alert-item-detail{color:var(--text-secondary, #555)}.alert-item-since,.alert-item-ack{color:var(--text-secondary, #777);font-size:.8rem}.alert-banner--compact{padding:.4rem .75rem;margin-bottom:.5rem}.alert-banner--compact .alert-banner-list{flex-direction:row;flex-wrap:wrap;gap:.35rem 1.25rem}.widget-shell--alert>.widget{box-shadow:0 0 0 2px #f39c12 inset}.widget-shell--alert-critical>.widget{box-shadow:0 0 0 2px #e74c3c inset;animation:alert-pulse 2s ease-in-out infinite}@keyframes alert-pulse{0%,to{box-shadow:0 0 0 2px #e74c3c inset}50%{box-shadow:0 0 0 4px #e74c3c80 inset}}@media (prefers-reduced-motion: reduce){.widget-shell--alert-critical>.widget{animation:none}}.widget-alert-badge{position:absolute;top:.5rem;left:.75rem;z-index:3;font-size:.7rem;font-weight:700;text-transform:uppercase;padding:.1rem .45rem;border-radius:4px;background:#f39c12;color:#1f1300}.widget-alert-badge--critical{background:#e74c3c;color:#fff}.widget-alert-badge--info{background:#2889c6;color:#fff}.widget-sparkline{display:flex;justify-content:center;width:100%;opacity:.9}.gauge-sparkline{margin-top:.25rem}.alerts-table td{vertical-align:top}.alerts-row--inactive{opacity:.55}.alerts-actions{white-space:nowrap;display:flex;gap:.35rem;flex-wrap:wrap}.alerts-error{color:#c0392b;max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-state{display:inline-block;font-size:.75rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;background:#27ae6026;color:#1e8449;text-transform:capitalize}.alert-state--pending{background:#f39c1233;color:#a15c00}.alert-state--firing{background:#e74c3c2e;color:#b02a1b}.alert-state--off{background:#7f8c8d2e;color:#566573}.alerts-history-title{margin:2rem 0 .75rem}.alerts-history{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.alerts-history-item{display:flex;flex-wrap:wrap;gap:.4rem .75rem;align-items:center;padding:.5rem .75rem;border-radius:6px;background:var(--bg-secondary, #fff);font-size:.9rem}.alerts-history-time{color:var(--text-secondary, #777);font-size:.8rem;min-width:10rem}.dashboard-container--wall .widget-title{font-size:1.1rem}.dashboard-container--wall .widget-history-btn,.dashboard-container--wall .report-header-tools .report-tool{display:none}.wall-header{display:flex;align-items:baseline;gap:1rem;padding:.25rem 0 .75rem}.wall-header-name{font-size:1.6rem;font-weight:700;color:var(--kinspeed-blue, #2889c6)}.wall-header-rotate{font-size:.85rem;color:var(--text-secondary, #777)}.wall-header-clock{margin-left:auto;font-size:1.4rem;font-weight:600;color:var(--text-secondary, #555)}.wall-rotate-control{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-secondary, #666)}.scope-badges{display:flex;gap:.25rem;flex-wrap:wrap}.scope-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;background:#2889c626;color:#1d6a99}.dashboard-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin-top:.75rem}.dashboard-template-card{display:flex;flex-direction:column;gap:.4rem;padding:.9rem;border-radius:8px;border:1px solid var(--border-color, rgba(0, 0, 0, .1));background:var(--bg-secondary, #fff)}.dashboard-template-card p{margin:0;font-size:.85rem;color:var(--text-secondary, #666);flex:1}.dashboard-template-card button{width:auto;align-self:flex-start}.sidebar-alert-count{margin-left:auto;min-width:1.4rem;padding:0 .4rem;border-radius:999px;background:#e74c3c;color:#fff;font-size:.75rem;font-weight:700;text-align:center}.rollup-control{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.rollup-control select{width:auto}.api-key-scopes{border:none;padding:0;margin:0 0 1rem}.api-key-scopes legend{font-weight:600;margin-bottom:.35rem}.dashboard-templates{margin-bottom:1rem}.dashboard-templates summary{cursor:pointer;font-weight:600;color:var(--kinspeed-blue, #2889c6)}.query-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;margin:auto;padding:1rem;text-align:center;color:var(--text-secondary, #6c7a89)}.query-progress--dark{color:var(--widget-text-secondary, #b0b0b0)}.query-progress-spinner{width:26px;height:26px;border-radius:50%;border:3px solid rgba(127,140,160,.3);border-top-color:var(--kinspeed-blue, #2889c6);animation:query-progress-spin .8s linear infinite}.query-progress-text{font-size:.88rem;font-weight:600}.query-progress-time{font-weight:400;font-variant-numeric:tabular-nums}.query-progress-hint{font-size:.76rem;max-width:280px;line-height:1.4;opacity:.85}.query-progress-bar{position:absolute;top:0;left:0;right:0;height:3px;overflow:hidden;z-index:2;pointer-events:none}.query-progress-bar span{position:absolute;top:0;bottom:0;width:35%;background:var(--kinspeed-blue, #2889c6);border-radius:2px;animation:query-progress-slide 1.1s ease-in-out infinite}@keyframes query-progress-spin{to{transform:rotate(360deg)}}@keyframes query-progress-slide{0%{left:-35%}to{left:100%}}@media (prefers-reduced-motion: reduce){.query-progress-spinner{animation-duration:2.4s}.query-progress-bar span{animation:none;left:0;width:100%;opacity:.5}}.report-widget .report-body{position:relative}.rf-editor{--rf-accent: var(--kinspeed-blue, #2889c6);--rf-accent-soft: rgba(40, 137, 198, .1);--rf-surface: #ffffff;--rf-canvas: #f1f4f8;--rf-border: #e3e8ef;--rf-border-strong: #cfd7e2;--rf-text: #0f172a;--rf-muted: #64748b;--rf-subtle: #94a3b8;--rf-hover: #f5f8fb;--rf-measure: #0e8a63;--rf-measure-soft: rgba(14, 138, 99, .1);--rf-dimension: #2276ad;--rf-dimension-soft: rgba(34, 118, 173, .1);--rf-time: #7c4dbd;--rf-time-soft: rgba(124, 77, 189, .1);--rf-danger: #c0392b;--rf-warn-bg: #fff7e6;--rf-warn-border: #f5d48f;--rf-warn-text: #8a5a00;--rf-left-w: 300px;--rf-right-w: 348px;position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 2000);display:flex;flex-direction:column;background:var(--rf-canvas);color:var(--rf-text);font-size:14px}.rf-editor *,.rf-editor *:before,.rf-editor *:after{box-sizing:border-box}.rf-editor button{font:inherit;width:auto;margin:0}.rf-editor input,.rf-editor select,.rf-editor textarea{font:inherit;color:var(--rf-text);margin:0}.rf-editor select,.rf-editor input[type=number],.rf-editor textarea{width:100%;padding:.4rem .55rem;border:1px solid var(--rf-border-strong);border-radius:6px;background:#fff}.rf-editor select:focus,.rf-editor input:focus,.rf-editor textarea:focus{outline:none;border-color:var(--rf-accent);box-shadow:0 0 0 3px var(--rf-accent-soft)}.rf-editor :focus-visible{outline:2px solid var(--rf-accent);outline-offset:1px}.rf-editor mark{background:#f5c54273;color:inherit;border-radius:2px;padding:0 1px}.rf-muted{color:var(--rf-muted);font-size:.82rem}.rf-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .95rem;border-radius:7px;border:1px solid transparent;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.rf-btn--primary{background:var(--rf-accent);color:#fff}.rf-btn--primary:hover:not(:disabled){background:var(--kinspeed-blue-dark, #1e6fa3)}.rf-btn--primary:disabled{background:#b8cfe0;cursor:not-allowed}.rf-btn--ghost{background:transparent;color:var(--rf-text);border-color:var(--rf-border-strong)}.rf-btn--ghost:hover{background:var(--rf-hover)}.rf-btn--small{padding:.3rem .7rem;font-size:.8rem}.rf-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px!important;height:30px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--rf-muted);cursor:pointer;flex-shrink:0}.rf-icon-btn:hover:not(:disabled){background:var(--rf-hover);color:var(--rf-text)}.rf-icon-btn:disabled{opacity:.4;cursor:default}.rf-link-btn{background:none;border:none;padding:0;color:var(--rf-accent);cursor:pointer;font-size:.82rem;font-weight:600}.rf-link-btn:hover{text-decoration:underline}.rf-link-btn--danger{color:var(--rf-danger)}.rf-topbar{display:flex;align-items:center;gap:.75rem;padding:.55rem 1rem;background:var(--rf-surface);border-bottom:1px solid var(--rf-border);min-height:60px;flex-shrink:0}.rf-title-block{display:flex;flex-direction:column;min-width:0;flex:1;max-width:640px}.rf-eyebrow{margin:0;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rf-muted)}.rf-title-input{border:1px solid transparent;border-radius:6px;padding:.15rem .4rem;margin-left:-.4rem!important;font-size:1.15rem!important;font-weight:650;background:transparent;width:100%}.rf-title-input:hover{border-color:var(--rf-border)}.rf-title-input::placeholder{color:var(--rf-subtle);font-weight:500}.rf-save-state{font-size:.8rem;color:var(--rf-muted);white-space:nowrap;margin-left:auto}.rf-save-state.is-dirty:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#e0a100;margin-right:.4rem;vertical-align:1px}.rf-topbar-actions{display:flex;gap:.5rem}.rf-data-toggle{display:none}.rf-banners{padding:.5rem 1rem 0;display:flex;flex-direction:column;gap:.4rem}.rf-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;font-size:.85rem;border:1px solid}.rf-banner .rf-icon-btn{margin-left:auto;width:24px!important;height:24px}.rf-banner--error{background:#fdecea;border-color:#f5c2bc;color:#8e2a1f}.rf-banner--warn{background:var(--rf-warn-bg);border-color:var(--rf-warn-border);color:var(--rf-warn-text)}.rf-body{flex:1;min-height:0;display:grid;grid-template-columns:var(--rf-left-w) minmax(0,1fr) var(--rf-right-w)}.rf-pane{min-height:0;display:flex;flex-direction:column}.rf-pane--left,.rf-pane--right{background:var(--rf-surface)}.rf-pane--left{border-right:1px solid var(--rf-border)}.rf-pane--right{border-left:1px solid var(--rf-border)}.rf-pane-loading{display:flex;align-items:center;gap:.6rem;padding:1.25rem;color:var(--rf-muted)}.rf-pane-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem .9rem .25rem}.rf-pane-head h3{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rf-muted)}.rf-search{display:flex;align-items:center;gap:.45rem;margin:.4rem .9rem .6rem;padding:0 .6rem;border:1px solid var(--rf-border-strong);border-radius:8px;background:#fff;color:var(--rf-subtle)}.rf-search:focus-within{border-color:var(--rf-accent);box-shadow:0 0 0 3px var(--rf-accent-soft)}.rf-search input{flex:1;min-width:0;border:none!important;box-shadow:none!important;padding:.5rem 0!important;background:transparent;outline:none}.rf-search-clear{border:none;background:none;color:var(--rf-subtle);cursor:pointer;padding:2px;display:flex}.rf-search--small{margin:0 0 .5rem;border-radius:6px}.rf-search--small input{padding:.35rem 0!important;font-size:.85rem}.rf-browser{display:flex;flex-direction:column;min-height:0;height:100%}.rf-browser-scroll{flex:1;overflow-y:auto;padding:0 .5rem .75rem}.rf-empty{padding:1rem .75rem;color:var(--rf-muted);font-size:.85rem;line-height:1.45}.rf-group{margin-bottom:.5rem}.rf-group-title{display:flex;align-items:center;gap:.4rem;padding:.6rem .4rem .3rem;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rf-muted)}.rf-group-title span{font-weight:600;color:var(--rf-subtle)}.rf-group--muted .rf-cube-title{color:var(--rf-muted)}.rf-cube{border-radius:8px}.rf-cube-header{display:flex;align-items:center;gap:.4rem;width:100%!important;padding:.42rem .4rem;border:none;border-radius:7px;background:transparent;color:var(--rf-text);text-align:left;cursor:pointer}.rf-cube-header:hover{background:var(--rf-hover)}.rf-chevron{color:var(--rf-subtle);transition:transform .15s;flex-shrink:0}.rf-chevron--open{transform:rotate(90deg)}.rf-cube-icon{color:var(--rf-muted);display:flex}.rf-cube-title{flex:1;min-width:0;font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-cube-join{color:var(--rf-subtle);display:flex}.rf-count{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--rf-accent);color:#fff;font-size:.7rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.rf-cube-body{padding:.1rem 0 .4rem 1.35rem}.rf-subhead{font-size:.68rem;font-weight:600;color:var(--rf-subtle);text-transform:uppercase;letter-spacing:.05em;padding:.4rem .4rem .15rem}.rf-field-wrap{display:block}.rf-field{display:flex;align-items:center;gap:.5rem;width:100%!important;padding:.3rem .45rem;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--rf-text);text-align:left;cursor:pointer;font-size:.86rem;line-height:1.3}.rf-field:hover:not(:disabled){background:var(--rf-hover);border-color:var(--rf-border)}.rf-field:active:not(:disabled){cursor:grabbing}.rf-field:disabled{cursor:not-allowed;color:var(--rf-subtle)}.rf-field:disabled .rf-field-icon{opacity:.45}.rf-field-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;flex-shrink:0}.rf-field--measure .rf-field-icon,.rf-start-icon.rf-field--measure{color:var(--rf-measure);background:var(--rf-measure-soft)}.rf-field--dimension .rf-field-icon,.rf-start-icon.rf-field--dimension{color:var(--rf-dimension);background:var(--rf-dimension-soft)}.rf-field--time .rf-field-icon{color:var(--rf-time);background:var(--rf-time-soft)}.rf-field-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-field-blocked{color:var(--rf-subtle);flex-shrink:0}.rf-field-check{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--rf-border-strong);flex-shrink:0;opacity:0;transition:opacity .1s}.rf-field:hover:not(:disabled) .rf-field-check{opacity:1}.rf-field--selected{background:var(--rf-accent-soft)!important;font-weight:600}.rf-field--selected .rf-field-check{opacity:1;border-color:var(--rf-accent);background:var(--rf-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / 11px no-repeat}.rf-legend{display:flex;gap:.9rem;padding:.55rem .9rem;border-top:1px solid var(--rf-border);font-size:.74rem;color:var(--rf-muted)}.rf-legend span{display:inline-flex;align-items:center;gap:.3rem}.rf-canvas{display:flex;flex-direction:column;min-height:0;height:100%;padding:.9rem 1.1rem;gap:.7rem}.rf-canvas-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.rf-display-types{display:flex;gap:2px;padding:3px;background:var(--rf-surface);border:1px solid var(--rf-border);border-radius:10px;box-shadow:0 1px 2px #0f172a0a;flex-wrap:wrap}.rf-display-type{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-width:56px;padding:.35rem .5rem .3rem;border:none;border-radius:7px;background:transparent;color:var(--rf-muted);font-size:.7rem;font-weight:600;cursor:pointer}.rf-display-type:hover{background:var(--rf-hover);color:var(--rf-text)}.rf-display-type.is-on{background:var(--rf-accent-soft);color:var(--rf-accent)}.rf-display-type.is-recommended:not(.is-on):after{content:"";position:absolute;top:5px;right:9px;width:6px;height:6px;border-radius:50%;background:#e0a100}.rf-segmented{display:inline-flex;padding:2px;border-radius:8px;background:#e8edf3;gap:2px}.rf-segmented button{border:none;background:transparent;padding:.3rem .75rem;border-radius:6px;font-size:.8rem;font-weight:600;color:var(--rf-muted);cursor:pointer}.rf-segmented button.is-on{background:#fff;color:var(--rf-text);box-shadow:0 1px 2px #0f172a1f}.rf-segmented button:disabled{opacity:.45;cursor:default}.rf-canvas-notes{display:flex;flex-direction:column;gap:.4rem}.rf-note{display:flex;align-items:flex-start;gap:.5rem;padding:.45rem .7rem;border-radius:8px;background:var(--rf-surface);border:1px solid var(--rf-border);font-size:.82rem;color:var(--rf-muted)}.rf-note svg{flex-shrink:0;margin-top:2px}.rf-note strong{color:var(--rf-text);font-weight:600}.rf-note code{font-size:.78rem;background:#eef2f7;padding:0 4px;border-radius:4px}.rf-note--warn{background:var(--rf-warn-bg);border-color:var(--rf-warn-border);color:var(--rf-warn-text)}.rf-note--warn strong{color:var(--rf-warn-text)}.rf-canvas-body{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;border-radius:12px;background-color:#e9eef4;background-image:radial-gradient(rgba(100,116,139,.22) 1px,transparent 1px);background-size:20px 20px;overflow:hidden}.rf-canvas-body.is-refreshing:after{content:"";position:absolute;top:0;left:0;height:3px;width:40%;background:var(--rf-accent);animation:rf-progress 1s ease-in-out infinite}@keyframes rf-progress{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion: reduce){.rf-canvas-body.is-refreshing:after{animation:none;width:100%;opacity:.4}}.rf-canvas-status{margin:auto;display:flex;align-items:center;gap:.6rem;padding:1rem 1.25rem;max-width:560px;border-radius:10px;background:var(--rf-surface);border:1px solid var(--rf-border);color:var(--rf-muted);line-height:1.45}.rf-canvas-status--error{color:#8e2a1f;border-color:#f5c2bc;background:#fdf3f2}.rf-canvas-status svg{flex-shrink:0}.rf-widget-frame{flex:1;min-height:0;display:flex;padding:1.25rem}.rf-widget-frame--stat{align-items:center;justify-content:center}.rf-widget-frame--stat .rf-widget{width:min(420px,100%);height:260px;flex:none}.rf-widget{flex:1;min-width:0;min-height:0;height:auto!important;box-shadow:0 10px 30px #0f172a2e;overflow:hidden}.rf-widget .widget-body{min-height:0;overflow:auto;align-items:stretch}.rf-grid-scroll{flex:1;overflow:auto;margin:.75rem;border-radius:8px;background:#fff;border:1px solid var(--rf-border)}.rf-grid{width:100%;border-collapse:collapse;font-size:.84rem}.rf-grid th{position:sticky;top:0;background:#f6f8fb;text-align:left;font-weight:600;color:var(--rf-muted);padding:.5rem .75rem;border-bottom:1px solid var(--rf-border);white-space:nowrap}.rf-grid td{padding:.42rem .75rem;border-bottom:1px solid #f0f3f7;white-space:nowrap}.rf-grid td.is-num{text-align:right;font-variant-numeric:tabular-nums}.rf-grid tbody tr:hover td{background:#f8fafc}.rf-grid-total td{font-weight:700;background:#f6f8fb}.rf-sql{flex:1;margin:.75rem;padding:1rem;overflow:auto;border-radius:8px;background:#0f172a;color:#e2e8f0;font-family:var(--font-family-mono, monospace);font-size:.8rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.rf-canvas-foot{display:flex;align-items:center;gap:.9rem;font-size:.8rem;color:var(--rf-text);min-height:30px}.rf-canvas-foot .rf-muted{margin-left:auto;font-size:.78rem}.rf-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--rf-border-strong);border-top-color:var(--rf-accent);animation:rf-spin .8s linear infinite;display:inline-block;flex-shrink:0}@keyframes rf-spin{to{transform:rotate(360deg)}}.rf-start{margin:auto;padding:2rem 1.25rem;width:min(760px,100%);display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.rf-start-steps,.rf-start-library{background:var(--rf-surface);border:1px solid var(--rf-border);border-radius:12px;padding:1.25rem 1.4rem}.rf-start h3{margin:0 0 .75rem;font-size:1.05rem}.rf-start h4{margin:0 0 .75rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--rf-muted);display:flex;align-items:center;gap:.4rem}.rf-start ol{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.6rem}.rf-start li{display:flex;align-items:center;gap:.65rem;color:var(--rf-text)}.rf-start-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:var(--rf-accent-soft);color:var(--rf-accent);flex-shrink:0}.rf-start p{margin:0}.rf-start-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem}.rf-start-card{display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;border:1px solid var(--rf-border);border-radius:9px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.rf-start-card:hover{border-color:var(--rf-accent);box-shadow:0 2px 8px #2889c626}.rf-start-card-icon{color:var(--rf-accent);display:flex}.rf-start-card-text{display:flex;flex-direction:column;min-width:0}.rf-start-card-text strong{font-size:.86rem;color:var(--rf-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-start-card-text small{font-size:.75rem;color:var(--rf-muted)}.rf-tabs{display:flex;gap:.25rem;padding:.6rem .9rem 0;border-bottom:1px solid var(--rf-border)}.rf-tabs button{border:none;background:none;padding:.5rem .75rem;font-weight:600;font-size:.88rem;color:var(--rf-muted);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.rf-tabs button.is-on{color:var(--rf-accent);border-bottom-color:var(--rf-accent)}.rf-right-scroll{flex:1;overflow-y:auto;padding:.75rem .9rem 1.5rem}.rf-build{display:flex;flex-direction:column;gap:.7rem}.rf-shelf{border:1px solid var(--rf-border);border-radius:10px;background:#fbfcfd;padding:.55rem .6rem .6rem;transition:border-color .12s,background .12s,box-shadow .12s;position:relative}.rf-shelf--over{border-color:var(--rf-accent);border-style:dashed;background:var(--rf-accent-soft);box-shadow:0 0 0 3px var(--rf-accent-soft)}.rf-shelf-head{display:flex;align-items:center;gap:.45rem;margin-bottom:.4rem;min-height:26px}.rf-shelf-head h4{margin:0;font-size:.82rem;font-weight:700;color:var(--rf-text)}.rf-shelf-icon{display:flex;color:var(--rf-muted)}.rf-editor .rf-shelf-add{margin-left:auto;width:26px!important;height:26px}.rf-shelf-body{display:flex;flex-direction:column;gap:.35rem}.rf-shelf-hint{padding:.55rem .6rem;border:1px dashed var(--rf-border-strong);border-radius:7px;color:var(--rf-subtle);font-size:.8rem;line-height:1.35}.rf-shelf--plain{background:#fbfcfd}.rf-chip{display:flex;align-items:center;gap:.4rem;padding:.3rem .3rem .3rem .25rem;background:#fff;border:1px solid var(--rf-border-strong);border-left-width:3px;border-radius:7px;cursor:grab;min-height:36px}.rf-chip:active{cursor:grabbing}.rf-chip--measure{border-left-color:var(--rf-measure)}.rf-chip--dimension{border-left-color:var(--rf-dimension)}.rf-chip--time{border-left-color:var(--rf-time)}.rf-chip-grip{color:var(--rf-border-strong);display:flex}.rf-chip:hover .rf-chip-grip{color:var(--rf-subtle)}.rf-chip-icon{display:flex;color:var(--rf-muted)}.rf-chip--measure .rf-chip-icon{color:var(--rf-measure)}.rf-chip--dimension .rf-chip-icon{color:var(--rf-dimension)}.rf-chip--time .rf-chip-icon{color:var(--rf-time)}.rf-chip-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.rf-chip-label{font-weight:600;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-chip-cube{font-size:.7rem;color:var(--rf-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-chip-btn{display:inline-flex;align-items:center;justify-content:center;width:24px!important;height:24px;padding:0;border:none;border-radius:5px;background:transparent;color:var(--rf-subtle);cursor:pointer;flex-shrink:0;font-weight:700}.rf-chip-btn:hover{background:var(--rf-hover);color:var(--rf-text)}.rf-chip-sort--on{color:var(--rf-accent);background:var(--rf-accent-soft)}.rf-time-grid,.rf-sort-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.15rem}.rf-sort-grid{grid-template-columns:1fr}.rf-time-grid label,.rf-sort-grid label,.rf-format-field{display:flex;flex-direction:column;gap:.25rem}.rf-time-grid label>span,.rf-sort-grid label>span,.rf-format-field>span{font-size:.74rem;font-weight:600;color:var(--rf-muted)}.rf-sort-grid .rf-segmented{justify-self:start}.rf-switch{display:flex;align-items:center;gap:.5rem;font-size:.83rem;cursor:pointer;padding:.15rem 0}.rf-switch input{width:15px;height:15px;accent-color:var(--rf-accent);margin:0}.rf-field-note{font-size:.76rem;color:var(--rf-muted);line-height:1.4}.rf-filter-chip{display:flex;align-items:center;gap:.2rem;background:#fff;border:1px solid var(--rf-border-strong);border-radius:7px;padding-right:.25rem}.rf-filter-chip-main{flex:1;min-width:0;display:flex;align-items:center;gap:.45rem;padding:.45rem .55rem;border:none;background:none;text-align:left;cursor:pointer;font-size:.83rem;color:var(--rf-text)}.rf-filter-chip-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-filter-chip-main svg{color:var(--rf-muted);flex-shrink:0}.rf-filter-chip:hover{border-color:var(--rf-accent)}.rf-filter-editor{display:flex;flex-direction:column;gap:.5rem;padding:.65rem;background:#fff;border:1px solid var(--rf-accent);border-radius:8px;box-shadow:0 0 0 3px var(--rf-accent-soft)}.rf-filter-editor-head{display:flex;align-items:center;gap:.4rem;font-size:.86rem;color:var(--rf-muted)}.rf-filter-editor-head strong{color:var(--rf-text)}.rf-filter-editor-actions{display:flex;justify-content:space-between;align-items:center}.rf-checklist-list{max-height:210px;overflow-y:auto;border:1px solid var(--rf-border);border-radius:6px;padding:.25rem}.rf-checklist-list .rf-muted{padding:.35rem .4rem}.rf-check{display:flex;align-items:center;gap:.5rem;padding:.28rem .4rem;border-radius:5px;font-size:.84rem;cursor:pointer}.rf-check:hover{background:var(--rf-hover)}.rf-check input{width:14px;height:14px;accent-color:var(--rf-accent);margin:0}.rf-check span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-checklist-add{display:block;width:100%!important;text-align:left;border:none;background:var(--rf-accent-soft);color:var(--rf-accent);font-weight:600;font-size:.82rem;border-radius:5px;padding:.35rem .45rem;cursor:pointer;margin-bottom:.2rem}.rf-checklist-foot{display:flex;justify-content:space-between;font-size:.78rem;color:var(--rf-muted);padding-top:.35rem}.rf-tokens{display:flex;flex-wrap:wrap;gap:.3rem;padding:.3rem;border:1px solid var(--rf-border-strong);border-radius:6px;background:#fff}.rf-tokens:focus-within{border-color:var(--rf-accent);box-shadow:0 0 0 3px var(--rf-accent-soft)}.rf-tokens input{flex:1;min-width:80px;border:none!important;box-shadow:none!important;outline:none;padding:.2rem;font-size:.85rem}.rf-token{display:inline-flex;align-items:center;gap:.2rem;padding:.1rem .25rem .1rem .5rem;background:var(--rf-accent-soft);color:var(--rf-accent);border-radius:5px;font-size:.8rem;font-weight:600}.rf-token button{border:none;background:none;color:inherit;cursor:pointer;display:flex;padding:2px}.rf-picker{position:absolute;top:38px;left:.5rem;right:.5rem;z-index:10;padding:.5rem;background:#fff;border:1px solid var(--rf-border-strong);border-radius:10px;box-shadow:0 12px 32px #0f172a2e}.rf-picker-list{max-height:300px;overflow-y:auto}.rf-picker-cube{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--rf-subtle);padding:.45rem .35rem .2rem}.rf-picker-item{display:flex;align-items:center;gap:.45rem;width:100%!important;padding:.3rem .35rem;border:none;border-radius:6px;background:none;text-align:left;cursor:pointer;font-size:.85rem;color:var(--rf-text)}.rf-picker-item:hover,.rf-picker-item:focus-visible{background:var(--rf-hover)}.rf-format{display:flex;flex-direction:column;gap:.8rem}.rf-format-section{border:1px solid var(--rf-border);border-radius:10px;padding:.7rem;display:flex;flex-direction:column;gap:.6rem;background:#fbfcfd}.rf-format-section h4{margin:0;font-size:.82rem;font-weight:700}.rf-format-field textarea{resize:vertical;min-height:64px}.rf-pivot-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.85rem}.rf-pivot-row>span{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1.5rem}.rf-dialog{background:#fff;border-radius:14px;box-shadow:0 24px 64px #0f172a4d;max-height:100%;display:flex;flex-direction:column;width:min(560px,100%)}.rf-dialog--wide{width:min(1100px,100%)}.rf-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .75rem;border-bottom:1px solid var(--rf-border)}.rf-dialog-head h3{margin:0 0 .25rem;font-size:1.05rem}.rf-dialog-head p{margin:0;color:var(--rf-muted);font-size:.85rem;line-height:1.45;max-width:680px}.rf-map-scroll{overflow:auto;padding:1rem 1.25rem 1.25rem}.rf-map{display:block;max-width:none}.rf-map-node rect{fill:#fff;stroke:var(--rf-border-strong);stroke-width:1.2}.rf-map-node--on rect{fill:#eef6fc;stroke:var(--rf-accent);stroke-width:2}.rf-map-node-title{font-size:13px;font-weight:650;fill:var(--rf-text)}.rf-map-node-sub{font-size:11px;fill:var(--rf-muted)}.rf-map-edge path{fill:none;stroke:#b4c0cf;stroke-width:1.6}.rf-map-edge text{font-size:10.5px;fill:var(--rf-muted);font-family:var(--font-family-mono, monospace)}.rf-map-edge--on path{stroke:var(--rf-accent);stroke-width:2.4}.rf-map-edge--on text{fill:var(--rf-accent);font-weight:600}.rf-map-arrow{fill:#b4c0cf}.rf-map-arrow--on{fill:var(--rf-accent)}.rf-map-isolated{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:1rem;font-size:.82rem;color:var(--rf-muted)}.rf-map-pill{padding:.2rem .6rem;border-radius:999px;border:1px solid var(--rf-border-strong);color:var(--rf-text);background:#fff}.rf-map-pill--on{border-color:var(--rf-accent);background:#eef6fc}@media (max-width: 1280px){.rf-editor{--rf-left-w: 260px;--rf-right-w: 316px}}@media (max-width: 1080px){.rf-body{grid-template-columns:minmax(0,1fr) var(--rf-right-w);position:relative}.rf-data-toggle{display:inline-flex}.rf-pane--left{position:absolute;top:0;bottom:0;left:0;width:min(320px,85vw);z-index:5;transform:translate(-100%);transition:transform .18s ease;box-shadow:8px 0 24px #0f172a26}.rf-pane--left.is-open{transform:none}}@media (max-width: 760px){.rf-body{grid-template-columns:1fr;grid-template-rows:minmax(320px,1fr) auto;overflow-y:auto}.rf-pane--right{border-left:none;border-top:1px solid var(--rf-border)}.rf-right-scroll{overflow:visible}.rf-save-state{display:none}.rf-topbar{flex-wrap:wrap}.rf-display-type span{display:none}.rf-display-type{min-width:38px}.rf-canvas-foot .rf-muted{display:none}}.rf-limit-warn{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;color:var(--rf-warn-text);font-size:.78rem}.modal-content{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;width:100%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #00000080;display:flex;flex-direction:column}.modal-header h2{margin:0;color:var(--accent-blue)}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.widget-builder-form{padding:1.5rem;overflow-y:auto;flex:1;min-height:0}.form-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.form-section:last-of-type{border-bottom:none}.form-section h3{color:var(--text-primary);margin:0 0 1rem;font-size:1.1rem}.section-help{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem;font-style:italic}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group textarea{resize:vertical;font-family:Courier New,monospace;font-size:.9rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-blue)}.form-group small{display:block;margin-top:.25rem;color:var(--text-secondary);font-size:.8rem}.form-actions button{padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.form-actions button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.modal-overlay{padding:0}.modal-content{max-width:100%;max-height:100vh;border-radius:0}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}}:root{--editor-panel-width: 420px;--editor-accent: var(--kinspeed-blue, #2889c6);--editor-surface: #ffffff;--editor-border: rgba(15, 23, 42, .12);--editor-muted: #64748b}.edit-toolbar{position:sticky;top:0;z-index:50;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.75rem 1rem;margin-bottom:1rem;border-radius:10px;background:var(--editor-surface);border:1px solid var(--editor-border);box-shadow:0 4px 16px #0f172a14}.edit-toolbar-title{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.edit-toolbar-title strong{font-size:1.15rem;color:#0f172a}.edit-toolbar-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .5rem;border-radius:999px;background:#2889c61f;color:var(--editor-accent)}.edit-toolbar-status{font-size:.85rem;color:var(--editor-muted)}.edit-toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.edit-toolbar-actions button{width:auto;padding:.55rem 1rem}.edit-toolbar-snap{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--editor-muted);cursor:pointer;padding:0 .25rem}.edit-toolbar-done{min-width:5rem}.dashboard-container--editing .react-grid-layout{background-image:radial-gradient(rgba(100,116,139,.25) 1px,transparent 1px);background-size:24px 24px;border-radius:10px;min-height:320px}.dashboard-container--with-panel{margin-right:var(--editor-panel-width);transition:margin-right .15s ease}.widget-frame--editing>.widget,.widget-frame--editing>.widget-shell>.widget{outline:1px dashed rgba(40,137,198,.55);outline-offset:2px}.widget-frame--editing .widget-header{cursor:move}.widget-frame--selected>.widget,.widget-frame--selected>.widget-shell>.widget{outline:2px solid var(--editor-accent);outline-offset:2px}.widget-frame--new>.widget,.widget-frame--new>.widget-shell>.widget{animation:widget-new 2.4s ease-out}@keyframes widget-new{0%{box-shadow:0 0 #2889c6cc}70%{box-shadow:0 0 0 12px #2889c600}to{box-shadow:0 0 #2889c600}}@media (prefers-reduced-motion: reduce){.widget-frame--new>.widget,.widget-frame--new>.widget-shell>.widget{animation:none;outline:2px solid var(--editor-accent)}}.widget-edit-bar{position:absolute;top:-16px;right:10px;z-index:20;display:flex;align-items:center;gap:2px;padding:2px;border-radius:8px;background:var(--editor-surface);border:1px solid var(--editor-border);box-shadow:0 2px 8px #0f172a26}.widget-edit-bar button{width:30px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:#334155;font-size:.95rem;cursor:pointer}.widget-edit-bar button:hover,.widget-edit-bar button:focus-visible{background:#2889c61f;color:var(--editor-accent)}.widget-edit-bar button:last-child:hover{background:#e74c3c1f;color:#c0392b}.widget-edit-grip{padding:0 .35rem;color:#94a3b8;cursor:default;-webkit-user-select:none;user-select:none}.editor-drawer{position:fixed;top:0;right:0;bottom:0;z-index:950;max-width:100vw;display:flex;flex-direction:column;background:var(--editor-surface);color:#0f172a;border-left:1px solid var(--editor-border);box-shadow:-12px 0 32px #0f172a1f;outline:none;animation:drawer-in .15s ease-out}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.editor-drawer{animation:none}}.editor-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.25rem .75rem;border-bottom:1px solid var(--editor-border)}.editor-drawer-header h2{margin:0;font-size:1.15rem;color:#0f172a}.editor-drawer-subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--editor-muted)}.editor-drawer-close{width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;font-size:1.4rem;line-height:1;color:var(--editor-muted);cursor:pointer}.editor-drawer-close:hover{background:#0f172a0f;color:#0f172a}.editor-drawer-body{flex:1;overflow-y:auto;padding:1rem 1.25rem}.editor-drawer-footer{padding:.75rem 1.25rem;border-top:1px solid var(--editor-border)}.library-search{width:100%;margin-bottom:.75rem;padding:.6rem .75rem;border:1px solid var(--editor-border);border-radius:8px;font-size:.95rem}.library-categories{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}.library-category{width:auto;padding:.3rem .7rem;border:1px solid var(--editor-border);border-radius:999px;background:transparent;color:#334155;font-size:.8rem;cursor:pointer}.library-category.active{background:var(--editor-accent);border-color:var(--editor-accent);color:#fff}.library-category-count{opacity:.7;margin-left:.15rem}.library-build{display:flex;align-items:center;gap:.75rem;width:100%;margin-bottom:.75rem;padding:.75rem;border:1px dashed var(--editor-accent);border-radius:10px;background:#2889c60d;color:#0f172a;text-align:left;cursor:pointer}.library-build:hover{background:#2889c61a}.library-build strong,.library-text strong{display:block;font-size:.92rem}.library-build small,.library-text small{display:block;font-size:.78rem;color:var(--editor-muted);margin-top:.1rem}.library-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.library-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .7rem;border:1px solid var(--editor-border);border-radius:10px;transition:border-color .15s,background .15s}.library-item:hover{border-color:#2889c673}.library-item--added{background:#27ae6012;border-color:#27ae6066}.library-item button{width:auto;flex-shrink:0}.library-icon{flex-shrink:0;width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#2889c61a;color:var(--editor-accent);font-weight:700}.library-text{flex:1;min-width:0}.library-text strong{overflow-wrap:anywhere}.library-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-on-dashboard{color:#1e8449;font-weight:600}.library-empty{color:var(--editor-muted);font-size:.9rem}.inspector-form{display:flex;flex-direction:column;gap:1rem}.inspector-field{display:flex;flex-direction:column;gap:.3rem;border:none;padding:0;margin:0}.inspector-field>span,.inspector-field>legend{font-size:.85rem;font-weight:600;color:#0f172a}.inspector-field input,.inspector-field select{padding:.5rem .6rem;border:1px solid var(--editor-border);border-radius:6px;font-size:.92rem}.inspector-field small{color:var(--editor-muted);font-size:.78rem}.inspector-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.inspector-check{display:flex;align-items:flex-start;gap:.5rem;font-size:.9rem;cursor:pointer}.inspector-check input{margin-top:.2rem}.inspector-kpis{gap:.45rem}.inspector-shared{padding:.75rem;border-radius:8px;background:#f8fafc;border:1px solid var(--editor-border);font-size:.85rem;color:#334155}.inspector-shared p{margin:0 0 .6rem}.inspector-shared button{width:auto}.inspector-footer{display:flex;align-items:center;gap:.5rem}.inspector-footer button{width:auto}.inspector-spacer{flex:1}.inspector-confirm{font-size:.85rem;color:#c0392b;font-weight:600;margin-right:auto}.inspector-danger{margin-top:2rem;padding:1rem;border-radius:8px;border:1px solid rgba(231,76,60,.35);background:#e74c3c0a}.inspector-danger h3{margin:0 0 .35rem;font-size:.95rem;color:#b02a1b}.inspector-danger p{margin:0 0 .75rem;font-size:.85rem;color:#334155}.inspector-danger button{width:auto;margin-top:.5rem}.new-dashboard-dialog{max-width:640px}.new-dashboard-dialog form{display:flex;flex-direction:column;gap:1rem}.new-dashboard-choices{border:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem}.new-dashboard-choices legend{font-size:.85rem;font-weight:600;margin-bottom:.4rem}.new-dashboard-choice{position:relative;display:flex;flex-direction:column;gap:.3rem;padding:.85rem;border:1px solid var(--editor-border);border-radius:10px;cursor:pointer}.new-dashboard-choice input{position:absolute;opacity:0;pointer-events:none}.new-dashboard-choice:focus-within{outline:2px solid var(--editor-accent);outline-offset:2px}.new-dashboard-choice.selected{border-color:var(--editor-accent);background:#2889c60f;box-shadow:inset 0 0 0 1px var(--editor-accent)}.new-dashboard-choice.disabled{opacity:.5;cursor:not-allowed}.new-dashboard-choice small{font-size:.78rem;color:var(--editor-muted)}.new-dashboard-count{color:var(--editor-accent)!important;font-weight:600}.dashboard-option--new{border-top:1px solid var(--editor-border)!important;color:var(--editor-accent)!important;font-weight:600}.dashboard-empty{max-width:520px;margin:3rem auto;padding:2.5rem 2rem;text-align:center;border:2px dashed var(--editor-border);border-radius:14px;color:#334155}.dashboard-empty h2{margin:0 0 .5rem;color:#0f172a}.dashboard-empty p{margin:0 0 1.25rem;color:var(--editor-muted)}.dashboard-empty button{width:auto;padding:.75rem 1.5rem}.editor-toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%);z-index:1000;padding:.65rem 1.1rem;border-radius:8px;background:#0f172a;color:#fff;font-size:.9rem;box-shadow:0 8px 24px #0f172a40}.editor-toast--error{background:#b02a1b}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.settings-page .settings-section{margin-bottom:1.5rem}.settings-help{margin:0 0 1rem;color:var(--editor-muted);font-size:.9rem}.settings-toggle{display:flex;align-items:flex-start;gap:.6rem;padding:.85rem 1rem;border-radius:8px;background:var(--bg-secondary, #f8fafc);cursor:pointer;margin-top:.75rem}.settings-toggle input{margin-top:.25rem;width:18px;height:18px}.settings-toggle strong{display:block}.settings-toggle small{display:block;color:var(--editor-muted)}.company-settings-grid small{display:block;color:var(--editor-muted);font-size:.78rem;margin-top:.2rem}@media (max-width: 900px){:root{--editor-panel-width: 0px}.editor-drawer{width:100vw!important}}.inspector-hint{display:block;margin-top:-.7rem;color:var(--editor-muted);font-size:.78rem}.widget-frame--editing .widget,.widget-frame--editing .widget *{cursor:move!important}.widget-frame--editing .widget-edit-bar,.widget-frame--editing .widget-edit-bar *{cursor:pointer!important}.widget-frame--editing .widget-edit-grip{cursor:default!important}.widget-frame--editing .react-resizable-handle{cursor:se-resize!important}.widget-frame--editing .widget-history-btn,.widget-frame--editing .report-header-tools .report-tool{visibility:hidden}.library-note{margin:0 0 .85rem;padding:.6rem .75rem;border-radius:8px;background:#f8fafc;border:1px solid var(--editor-border);font-size:.82rem;color:#334155}.library-note a{color:var(--editor-accent);font-weight:600}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.count-value-container{display:inline-flex;align-items:baseline;font-size:clamp(2.5rem,8vw,4rem);font-weight:700;color:var(--kinspeed-blue);line-height:1;gap:.5rem}.count-value-container.long-content{flex-direction:column;align-items:center;font-size:clamp(2rem,6vw,3rem);gap:.25rem}.count-value-container.long-content .count-unit{font-size:.7em;margin-left:0}.count-value{display:inline-block;font-variant-numeric:tabular-nums}.count-value.slide-in{animation:slideUp .5s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.count-unit{font-size:.6em;color:var(--widget-text-secondary);display:inline-block}.freshness-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:500;letter-spacing:.2px;color:var(--widget-text-secondary, #9aa4b2);white-space:nowrap;line-height:1}.freshness-badge .freshness-dot{width:7px;height:7px;border-radius:50%;background:#51cf66;box-shadow:0 0 #51cf6699;animation:freshness-pulse 2s infinite}.freshness-badge.freshness-stale .freshness-dot{background:#ffc107;animation:none}.freshness-badge.freshness-none .freshness-dot{background:#ff6b6b;animation:none}.freshness-badge.freshness-stale,.freshness-badge.freshness-stale .freshness-text{color:#ffc107}.freshness-badge.freshness-none,.freshness-badge.freshness-none .freshness-text{color:#ff6b6b}.freshness-badge .freshness-clock{font-size:.75rem;opacity:.85}@keyframes freshness-pulse{0%{box-shadow:0 0 #51cf6699}70%{box-shadow:0 0 0 6px #51cf6600}to{box-shadow:0 0 #51cf6600}}.widget-shell{position:relative;height:100%}.widget-shell>.widget{height:100%}.widget-shell>.freshness-badge{position:absolute;top:.65rem;right:.9rem}.widget-shell>.freshness-live-hint:after{content:"Live · not affected by the date range";position:absolute;right:0;top:1.3rem;white-space:nowrap;font-size:.68rem;color:var(--widget-text-secondary, #9aa4b2);background:var(--widget-bg, #2b2d42);border:1px solid var(--widget-border, rgba(255, 255, 255, .1));border-radius:4px;padding:.15rem .4rem;opacity:0;pointer-events:none;transition:opacity .15s ease}.widget-shell:hover>.freshness-live-hint:after{opacity:1}.widget-history-btn{position:absolute;right:.9rem;bottom:.6rem;background:transparent;border:1px solid var(--widget-border, rgba(255, 255, 255, .15));color:var(--widget-text-secondary, #9aa4b2);border-radius:4px;font-size:.7rem;padding:.1rem .35rem;cursor:pointer;opacity:0;transition:opacity .15s ease}.widget-shell:hover>.widget-history-btn{opacity:1}.report-header-tools{display:inline-flex;align-items:center;gap:.5rem}.report-tool{background:transparent;border:1px solid var(--widget-border, rgba(255, 255, 255, .15));color:var(--widget-text-secondary, #9aa4b2);border-radius:4px;font-size:.65rem;padding:.1rem .4rem;cursor:pointer;opacity:0;transition:opacity .15s ease}.report-widget:hover .report-tool{opacity:1}.report-range{font-size:.68rem;color:#4a9eff;background:#4a9eff1f;padding:.1rem .45rem;border-radius:999px;white-space:nowrap}.report-tr--total td{font-weight:700;border-top:2px solid var(--widget-border, rgba(255, 255, 255, .2))}.report-tr--clickable{cursor:pointer}.report-tr--clickable:hover td{background:#4a9eff1f}.report-table-wrapper--compact .report-table td,.report-table-wrapper--compact .report-table th{padding:.35rem .5rem;font-size:.85rem}.report-more{font-size:.75rem;padding:.25rem .5rem}.report-stat-value--good{color:#51cf66}.report-stat-value--bad{color:#ff6b6b}.report-stat-delta{font-size:.85rem;color:var(--widget-text-secondary, #9aa4b2);margin-top:.25rem}.report-stat-delta.up{color:#51cf66}.report-stat-delta.down{color:#ff6b6b}.report-stat-target{font-size:.75rem;color:#ffc107;margin-top:.15rem}.date-range-control{display:inline-flex;align-items:center;gap:.4rem}.date-range-label{font-size:.8rem;color:var(--text-secondary, #b0b0b0)}.date-range-control select{padding:.45rem .6rem;border-radius:6px;font-size:.9rem}.drill-modal{max-width:1100px;width:95%}.drill-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.drill-body{height:420px;margin-bottom:1rem}.drill-body .widget-body{overflow:auto}.report-page{padding:2rem;max-width:1400px;margin:0 auto}.report-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.report-page h2{color:#4a9eff;margin:0 0 .25rem}.report-page .page-subtitle{color:var(--text-secondary, #b0b0b0);font-size:.9rem}.report-page .page-subtitle strong{color:#4a9eff}.report-page .page-actions{display:flex;gap:.5rem}.report-page .error-dismiss{float:right;background:none;border:none;color:inherit;cursor:pointer}.report-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px}.report-toolbar label{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary)}.report-toolbar-spacer{flex:1}.report-page .report-page-render{height:560px}.report-page .report-page-render .widget-body{overflow:auto}.pivot-config .member-option{padding:.15rem 0}.report-page .kpi-meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--text-secondary, #666);font-size:.9rem}.report-toolbar button{width:auto}.report-widget .report-table-wrapper{width:100%;align-self:stretch;min-width:0}.report-widget .widget-period{display:flex;flex-shrink:0;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.45rem 0 0;margin-top:.4rem;border-top:1px solid rgba(255,255,255,.08);font-size:.78rem;color:var(--widget-text-secondary, #b0b0b0)}.report-widget .widget-period label{display:flex;align-items:center;gap:.45rem;margin:0;font-size:.78rem;color:inherit}.report-widget .widget-period label span{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.report-widget .widget-period select{width:auto;max-width:15rem;padding:.2rem .4rem;font-size:.8rem;border-radius:5px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:var(--widget-text-primary, #fff)}.report-widget .widget-period select option,.report-widget .widget-period select optgroup{color:#0f172a;background:#fff}.report-widget .widget-period--changed select{border-color:var(--kinspeed-blue, #2889c6);background:#2889c62e}.report-widget .widget-period-range{opacity:.8}.scorecard-widget .widget-body{display:block;overflow:auto}.scorecard-body{display:flex;flex-direction:column;gap:.75rem;width:100%;min-height:0}.scorecard-group{display:flex;flex-direction:column;gap:.4rem}.scorecard-dept{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--widget-text-secondary, #9aa4b2)}.scorecard-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem}.scorecard-tile{position:relative;border-radius:8px;padding:.6rem .75rem .5rem;background:var(--widget-tile-bg, rgba(255, 255, 255, .04));border:1px solid var(--widget-border, rgba(255, 255, 255, .08));border-left-width:4px;cursor:pointer;display:flex;flex-direction:column;gap:.2rem;min-height:108px;transition:transform .15s ease,background .15s ease}.scorecard-tile:hover{background:#ffffff12;transform:translateY(-1px)}.scorecard-tile.status-good{border-left-color:#51cf66}.scorecard-tile.status-warn{border-left-color:#ffc107}.scorecard-tile.status-bad{border-left-color:#ff6b6b}.scorecard-tile.status-none{border-left-color:#6c7a89}.scorecard-name{font-size:.8rem;color:var(--widget-text-secondary, #9aa4b2);line-height:1.2}.scorecard-value-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.scorecard-value{font-size:1.6rem;font-weight:700;color:var(--widget-text, #fff);line-height:1.1}.scorecard-tile.status-good .scorecard-value{color:#51cf66}.scorecard-tile.status-warn .scorecard-value{color:#ffc107}.scorecard-tile.status-bad .scorecard-value{color:#ff6b6b}.scorecard-target{font-size:.72rem;color:var(--widget-text-secondary, #9aa4b2);white-space:nowrap}.scorecard-change{font-size:.75rem;color:var(--widget-text-secondary, #9aa4b2)}.scorecard-change.improving{color:#51cf66}.scorecard-change.worsening{color:#ff6b6b}.scorecard-spark{width:100%;height:26px;margin-top:auto}.scorecard-spark polyline{fill:none;stroke:#4a9eff;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.scorecard-spark line.target{stroke:#ffffff59;stroke-dasharray:3 3;stroke-width:1}.scorecard-error{font-size:.72rem;color:#ff6b6b}.scorecard-empty{color:var(--widget-text-secondary, #9aa4b2);font-size:.9rem;padding:1rem;text-align:center}.kpi-page{padding:2rem;max-width:1400px;margin:0 auto}.kpi-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.kpi-page h2{color:#4a9eff;margin:0 0 .25rem}.kpi-page .kpi-meta{color:var(--text-secondary, #b0b0b0);font-size:.9rem;display:flex;gap:1rem;flex-wrap:wrap}.kpi-grid{display:grid;grid-template-columns:320px 1fr;gap:1rem;margin-bottom:1rem}@media (max-width: 900px){.kpi-grid{grid-template-columns:1fr}}.kpi-panel{background:var(--bg-secondary);border-radius:8px;padding:1rem 1.25rem;box-shadow:0 2px 8px #0003}.kpi-panel h4{margin:0 0 .75rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.kpi-stat-value{font-size:2.6rem;font-weight:700;line-height:1.1}.kpi-stat-value.status-good{color:#51cf66}.kpi-stat-value.status-warn{color:#ffc107}.kpi-stat-value.status-bad{color:#ff6b6b}.kpi-stat-rows{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin-top:.75rem;font-size:.9rem}.kpi-stat-rows dt{color:var(--text-secondary)}.kpi-stat-rows dd{margin:0}.kpi-page .kpi-chart{height:260px;min-height:0}.kpi-page .kpi-chart .widget-body{min-height:0;height:100%}.kpi-breakdowns{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1rem}.kpi-page .kpi-breakdowns .kpi-chart{height:220px}.kpi-status-pill{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600}.kpi-status-pill.status-good{background:#51cf6626;color:#51cf66}.kpi-status-pill.status-warn{background:#ffc10726;color:#ffc107}.kpi-status-pill.status-bad{background:#ff6b6b26;color:#ff6b6b}.kpi-status-pill.status-none{background:var(--bg-tertiary);color:var(--text-secondary)}.statement{width:100%}.statement-scroll{overflow:auto;max-width:100%}.statement-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.85rem}.statement-table th,.statement-table td{padding:.35rem .6rem;text-align:left;white-space:nowrap}.statement-table thead th{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;opacity:.8;border-bottom:1px solid rgba(127,127,127,.35);vertical-align:bottom}.statement-table .statement-num{text-align:right}.statement-range{display:block;font-size:.68rem;font-weight:400;text-transform:none;letter-spacing:0;opacity:.75}.statement-label{font-weight:400}.statement-row--subtotal th,.statement-row--subtotal td{font-weight:600;border-top:1px solid rgba(127,127,127,.35)}.statement-row--total th,.statement-row--total td{font-weight:700;border-top:1px solid rgba(127,127,127,.5);border-bottom:3px double rgba(127,127,127,.6)}.statement-row--heading th{padding-top:.75rem;font-weight:700;text-transform:uppercase;font-size:.75rem;opacity:.8}.statement-row--child th,.statement-row--child td{font-size:.8rem;opacity:.8}.statement-child-label{padding-left:1.75rem!important}.statement-expand{background:none;border:none;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:left;width:auto}.statement-expand:hover{text-decoration:underline}.statement-favourable{color:#27ae60}.statement-adverse{color:#e74c3c}.statement-alert{color:#e74c3c;font-weight:600}.statement-emphasis{font-weight:600}.statement-warnings{list-style:none;margin:.75rem 0 0;padding:.5rem .75rem;border-radius:6px;background:#f39c1226;color:#a15c00;font-size:.8rem}.report-widget.statement-widget .statement-body{display:block;overflow:auto;color:var(--widget-text-primary, #fff)}.report-widget.statement-widget .statement-favourable{color:#51cf66}.report-widget.statement-widget .statement-adverse,.report-widget.statement-widget .statement-alert{color:#ff6b6b}.report-widget.statement-widget .statement-warnings{background:#f39c1233;color:#f8c471}.statement--compact .statement-table{font-size:1rem}.statement-page .statement-page-body{background:var(--bg-secondary, #fff);border-radius:8px;padding:1rem;box-shadow:0 1px 3px #00000014}.statement-page .statement-table{font-size:.95rem}.statements-list{margin-top:2rem}.statements-list h3{margin-bottom:.75rem}.ready-report-group{margin-top:1rem}.ready-report-group h4{margin:0 0 .5rem;font-size:.9rem;color:#334155}.settings-container{max-width:1200px;margin:0 auto;padding:2rem}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.settings-header h2{color:var(--accent-blue);margin:0}.settings-content{display:flex;flex-direction:column;gap:2rem}.settings-section{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem}.settings-section h3{color:var(--text-primary);margin:0 0 1.5rem;font-size:1.25rem}.empty-state{color:var(--text-secondary);text-align:center;padding:2rem;font-style:italic}.widget-kind-section .widget-kind-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.widget-kind-heading{display:flex;align-items:center;gap:.75rem}.widget-kind-title{margin:0!important;font-size:1.25rem;color:var(--text-primary)}.widget-kind-indicator{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.widget-kind-indicator--live{background-color:var(--accent-green);box-shadow:0 0 #27ae608c;animation:widget-kind-pulse 2.2s infinite}@keyframes widget-kind-pulse{0%{box-shadow:0 0 #27ae608c}70%{box-shadow:0 0 0 8px #27ae6000}to{box-shadow:0 0 #27ae6000}}.widget-kind-indicator--report{background-color:var(--accent-purple)}.widget-kind-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;padding:.1rem .5rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:.8rem;font-weight:600;color:var(--text-secondary);line-height:1.4}.widget-kind-subtitle{color:var(--text-secondary);font-size:.9rem;margin:.5rem 0 1.5rem}.report-empty{display:flex;gap:1.25rem;align-items:flex-start;padding:1.5rem;background:linear-gradient(135deg,#8e44ad0f,#2889c60a);border:1px dashed rgba(142,68,173,.35);border-radius:var(--radius-md)}.report-empty-icon{font-size:2rem;line-height:1;filter:saturate(.9);flex-shrink:0}.report-empty-body{flex:1;min-width:0}.report-empty-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.35rem}.report-empty-text{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.report-empty-text strong{color:var(--text-primary);font-weight:600}.widget-list{display:flex;flex-direction:column;gap:1rem}.widget-item{display:flex;align-items:center;gap:1rem;padding:1rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;transition:all .2s}.widget-item:hover{border-color:var(--accent-blue);transform:translate(2px)}.widget-item.on-dashboard{border-color:var(--accent-blue);background-color:#4a9eff0d}.widget-item-icon{font-size:2rem;min-width:50px;text-align:center}.widget-item-info{flex:1}.widget-item-name{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.widget-item-description{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem}.widget-item-type{font-size:.85rem;color:var(--text-secondary);font-family:monospace}.btn-secondary{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;transition:all .2s;font-size:1rem;font-weight:500}.btn-secondary:hover{background-color:var(--border-color);transform:translateY(-1px)}.btn-primary-small{background-color:var(--accent-blue);border:none;color:var(--text-primary);padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.9rem;font-weight:500;min-width:100px}.btn-primary-small:hover{background-color:#3a8eef;transform:translateY(-1px)}.btn-secondary-small{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.9rem;font-weight:500;min-width:70px}.btn-secondary-small:hover{background-color:var(--border-color);transform:translateY(-1px)}.btn-danger-small{background-color:var(--accent-red);border:none;color:var(--text-primary);padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.9rem;font-weight:500;min-width:100px}.btn-danger-small:hover{background-color:#d32f2f;transform:translateY(-1px)}.badge-on-dashboard{background-color:#4a9eff33;color:var(--accent-blue);padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;border:1px solid var(--accent-blue);text-transform:uppercase;letter-spacing:.5px}.btn-remove-small{background-color:#ff980033;border:1px solid #ff9800;color:#ff9800;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.9rem;font-weight:500;min-width:100px}.btn-remove-small:hover{background-color:#ff9800;color:#fff;transform:translateY(-1px)}.success-message{background-color:#4caf5033;color:var(--accent-green);padding:1rem;border-radius:4px;margin-bottom:1rem;text-align:center;border:1px solid var(--accent-green);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;overflow-y:auto}.modal-content{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #00000080;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1.25rem;border-bottom:1px solid var(--border-color);flex-shrink:0;background-color:var(--bg-secondary)}.modal-header h2{margin:0;color:var(--accent-blue);font-size:1.5rem}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;line-height:1}.modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.modal-content form{display:flex;flex-direction:column;padding:1.5rem;flex:1}.modal-content .form-group{margin-bottom:1.5rem}.modal-content .form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem;font-weight:500}.modal-content .form-group input,.modal-content .form-group select,.modal-content .form-group textarea{width:100%;padding:.75rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:1rem;font-family:inherit;transition:border-color .2s}.modal-content .form-group input:focus,.modal-content .form-group select:focus,.modal-content .form-group textarea:focus{outline:none;border-color:var(--accent-blue)}.modal-content .form-group small{display:block;margin-top:.5rem;color:var(--text-secondary);font-size:.85rem;line-height:1.4}.modal-content .form-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.25rem 1.5rem 1.5rem;border-top:1px solid var(--border-color);flex-shrink:0;background-color:var(--bg-secondary);margin-top:auto;margin-left:-1.5rem;margin-right:-1.5rem;margin-bottom:-1.5rem}.modal-content .form-actions button{padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}@media (max-width: 768px){.settings-container{padding:1rem}.settings-header{flex-direction:column;gap:1rem;align-items:flex-start}.widget-item{flex-direction:column;align-items:flex-start}.widget-item-icon{font-size:1.5rem}.btn-primary-small,.btn-secondary-small,.btn-danger-small,.btn-remove-small{width:100%}.modal-overlay{padding:0}.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-content .form-actions{flex-direction:column}.modal-content .form-actions button{width:100%}}.company-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem 1.25rem;padding:1rem;margin-top:.75rem;background:var(--bg-secondary);border-radius:8px}.company-settings-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--text-secondary)}.add-widget-dialog{max-width:820px;width:95%}.add-widget-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border-color);margin-bottom:.75rem}.add-widget-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);padding:.5rem .9rem;cursor:pointer;font-size:.95rem}.add-widget-tab.active{color:#4a9eff;border-bottom-color:#4a9eff}.add-widget-body{max-height:60vh;overflow:auto}.user-management-container{max-width:1400px;margin:0 auto;padding:2rem}.user-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.user-management-header h2{color:var(--accent-blue);margin:0}.user-form-section{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:2rem;margin-bottom:2rem}.user-form-section h3{color:var(--text-primary);margin:0 0 1.5rem}.user-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.users-section{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:2rem}.users-section h3{color:var(--text-primary);margin:0 0 1.5rem}.users-table-container{overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th{background-color:var(--bg-tertiary);padding:1rem;text-align:left;font-weight:600;font-size:.9rem;color:var(--text-secondary);border-bottom:2px solid var(--border-color);white-space:nowrap}.users-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.users-table tr:hover{background-color:var(--bg-tertiary)}.role-badge{padding:.35rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;display:inline-block}.role-badge.admin{background-color:#4a9eff33;color:var(--accent-blue);border:1px solid var(--accent-blue)}.role-badge.user{background-color:#b0b0b033;color:var(--text-secondary);border:1px solid var(--text-secondary)}.status-badge{padding:.35rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;display:inline-block}.status-badge.active{background-color:#4caf5033;color:var(--accent-green);border:1px solid var(--accent-green)}.status-badge.inactive{background-color:#f4433633;color:var(--accent-red);border:1px solid var(--accent-red)}@media (max-width: 968px){.user-management-container{padding:1rem}.user-management-header{flex-direction:column;gap:1rem;align-items:flex-start}.form-row{grid-template-columns:1fr}.users-table{font-size:.85rem}.users-table th,.users-table td{padding:.75rem .5rem}}.api-key-management{padding:2rem;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h2{color:#4a9eff;margin:0}.api-keys-table-container{background:var(--bg-secondary);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0003}.api-keys-table{width:100%;border-collapse:collapse}.api-keys-table thead{background:var(--bg-tertiary)}.api-keys-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.85rem;letter-spacing:.5px;border-bottom:2px solid var(--border-color)}.api-keys-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.api-keys-table tbody tr:hover{background:#4a9eff0d}.api-keys-table code{background:var(--bg-tertiary);padding:.25rem .5rem;border-radius:4px;font-family:monospace;font-size:.9rem;color:#4a9eff}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-badge.active{background:#4caf5033;color:#4caf50}.status-badge.inactive{background:#9e9e9e33;color:#9e9e9e}.action-buttons{display:flex;gap:.5rem}.btn-toggle{padding:.4rem .8rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-toggle:hover{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.btn-delete{padding:.4rem .8rem;background:#f443361a;color:var(--accent-red);border:1px solid rgba(244,67,54,.3);border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-delete:hover{background:var(--accent-red);border-color:var(--accent-red);color:#fff}.btn-secondary{padding:.5rem 1.5rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--border-color)}.api-key-management .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;overflow-y:auto}.api-key-management .modal-content{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;min-width:500px;max-width:600px;max-height:90vh;box-shadow:0 10px 40px #00000080;display:flex;flex-direction:column;overflow:hidden}.api-key-management .modal-content h3{margin:0;padding:1.5rem 1.5rem 1.25rem;color:var(--text-primary);font-size:1.5rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.api-key-management .modal-content>p,.api-key-management .modal-content>div:not(.api-key-display):not(.form-actions){padding:0 1.5rem}.api-key-display{background:var(--bg-tertiary);padding:1rem;border-radius:8px;margin:1rem 1.5rem}.api-key-display code{display:block;font-size:.95rem;color:#51cf66;word-wrap:break-word;word-break:break-all;background:none;padding:0 0 1rem;margin:0;font-family:Courier New,Courier,monospace;line-height:1.5}.api-key-display button{width:100%;white-space:nowrap}.api-key-management .modal-content button[onClick*=setCreatedKey],.api-key-management .modal-content button[onClick*=setShowCreateForm]{margin:0 1.5rem 1.5rem}@media (max-width: 768px){.api-key-management .modal-overlay{padding:0}.api-key-management .modal-content{min-width:auto;width:100%;max-height:100vh;border-radius:0}.api-key-management .form-actions{flex-direction:column}.api-key-management .form-actions button{width:100%}}.form-group input{width:100%;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--accent-blue)}.form-group small{display:block;margin-top:.5rem;color:var(--text-secondary);font-size:.85rem;line-height:1.4}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.25rem 1.5rem 1.5rem;border-top:1px solid var(--border-color);flex-shrink:0;background-color:var(--bg-secondary);margin-top:auto}.api-key-management form{display:flex;flex-direction:column;padding:1.5rem;flex:1}.info-section h4{color:var(--text-primary)}.info-section ul{margin-top:.5rem}.info-section ul li{margin-bottom:.25rem}.company-management-container{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.company-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);gap:var(--spacing-md);flex-wrap:wrap}.company-management-header h2{margin:0;color:var(--text-primary);font-size:1.8rem}.company-form-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.company-form-section h3{margin:0 0 var(--spacing-lg) 0;color:var(--text-primary)}.company-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.companies-section{margin-bottom:var(--spacing-lg)}.companies-section h3{margin:0 0 var(--spacing-lg) 0;color:var(--text-primary)}.companies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-md)}.company-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-lg);transition:transform .2s,box-shadow .2s}.company-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.company-card.inactive{opacity:.6;border-color:var(--accent-red)}.company-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.company-card-header h4{margin:0;color:var(--text-primary);font-size:1.2rem}.inactive-badge{background:var(--accent-red);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.company-slug{color:var(--text-secondary);font-family:monospace;margin:var(--spacing-sm) 0}.company-card-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.user-assignment-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.modal-content{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;width:100%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;color:var(--text-primary)}.close-button{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-sm);transition:color .2s}.close-button:hover{color:var(--text-primary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1}.assigned-users-section,.unassigned-users-section{margin-bottom:var(--spacing-lg)}.assigned-users-section h4,.unassigned-users-section h4{margin:0 0 var(--spacing-md) 0;color:var(--text-primary)}.users-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.user-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px}.user-info{display:flex;flex-direction:column;gap:.25rem}.user-info strong{color:var(--text-primary)}.user-info span{color:var(--text-secondary);font-size:.9rem}.companies-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:6px}.company-checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);cursor:pointer;border-radius:4px;transition:background .2s}.company-checkbox-label:hover{background:var(--bg-secondary)}.company-checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.company-checkbox-label span{color:var(--text-primary)}@media (max-width: 768px){.companies-grid{grid-template-columns:1fr}.company-management-header{flex-direction:column;align-items:stretch}.companies-checkbox-grid{grid-template-columns:1fr}}.dataset-management{padding:2rem;max-width:1400px;margin:0 auto}.dataset-management .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem}.dataset-management .page-header h2{color:#4a9eff;margin:0}.dataset-management .page-subtitle{color:var(--text-secondary, #b0b0b0);font-size:.9rem;margin-top:.5rem}.dataset-management .page-subtitle strong{color:#4a9eff}.dataset-management .page-actions{display:flex;gap:.5rem}.dataset-management .error-dismiss{float:right;background:none;border:none;color:inherit;cursor:pointer;font-size:1.1rem}.datasets-table-container{background:var(--bg-secondary);border-radius:8px;overflow-x:auto;box-shadow:0 2px 8px #0003}.datasets-table{width:100%;min-width:1040px;border-collapse:collapse}.dataset-relationships li code{white-space:nowrap}.datasets-table thead{background:var(--bg-tertiary)}.datasets-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.85rem;letter-spacing:.5px;border-bottom:2px solid var(--border-color)}.datasets-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle}.datasets-table tr.expanded td{border-bottom:none}.dataset-actions{display:flex;gap:.5rem;white-space:nowrap}.btn-small{padding:.35rem .75rem;font-size:.85rem}.dataset-badge{display:inline-block;margin-left:.5rem;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.3px;background:var(--bg-tertiary);color:var(--text-secondary)}.dataset-badge.ok,.dataset-badge.freshness-fresh{background:#51cf6626;color:#51cf66}.dataset-badge.warn,.dataset-badge.freshness-overdue{background:#ffc10726;color:#ffc107}.dataset-badge.freshness-never{background:#ff6b6b26;color:#ff6b6b}.dataset-badge.info{background:#4a9eff26;color:#4a9eff}.datasets-table td .dataset-badge.freshness-fresh,.datasets-table td .dataset-badge.freshness-overdue,.datasets-table td .dataset-badge.freshness-never{margin-left:0}.dataset-detail-row td{background:var(--bg-tertiary);padding:1.25rem 1.5rem 1.5rem}.dataset-detail h4{margin:0 0 .5rem;color:var(--text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.dataset-detail h4+h4,.dataset-detail ul+h4,.dataset-detail p+h4{margin-top:1.25rem}.dataset-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:1.25rem}@media (max-width: 900px){.dataset-detail-grid{grid-template-columns:1fr}}.dataset-columns,.dataset-relationships{list-style:none;margin:0;padding:0}.dataset-columns li,.dataset-relationships li{padding:.3rem 0;border-bottom:1px dashed var(--border-color);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.dataset-columns code,.dataset-relationships code{color:#4a9eff;background:#4a9eff14;padding:.1rem .4rem;border-radius:4px}.dataset-type{color:var(--text-secondary);font-size:.8rem}.dataset-pk{font-size:.7rem;text-transform:uppercase;color:#ffc107}.dataset-meta{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0}.dataset-meta dt{color:var(--text-secondary);font-size:.85rem}.dataset-meta dd{margin:0}.dataset-sample-wrapper{overflow-x:auto}.dataset-sample-table{width:100%;border-collapse:collapse;font-size:.85rem}.dataset-sample-table th,.dataset-sample-table td{padding:.4rem .6rem;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.dataset-sample-table th{color:var(--text-secondary);font-weight:600}.dataset-empty,.dataset-empty-state{color:var(--text-secondary, #b0b0b0)}.dataset-empty-state{text-align:center;padding:3rem}.dataset-template{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.dataset-template .dataset-badge{margin-left:0}.dataset-warnings{margin:0;padding-left:1rem;font-size:.8rem;color:#ffc107;flex-basis:100%}.measures-editor{margin:.5rem 0 1.25rem}.measures-editor .dataset-columns li{gap:.8rem}.measure-form{margin-top:.75rem;padding:.75rem;border:1px dashed var(--border-color);border-radius:6px;display:flex;flex-direction:column;gap:.6rem}.measure-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem}.measure-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-secondary)}.measure-form input,.measure-form select,.measure-form textarea{font-size:.9rem}.measure-form small{color:var(--text-secondary)}.measure-preview{font-size:.85rem;background:var(--bg-secondary);padding:.5rem .75rem;border-radius:6px}.measure-preview code{color:#4a9eff;white-space:pre-wrap}.widget-kind-indicator--kpi{background:#ffc107}.report-library{margin-bottom:1rem}.report-library summary{cursor:pointer;color:#4a9eff;font-size:.9rem;margin-bottom:.5rem}.source-filter{display:flex;gap:.4rem;flex-wrap:wrap;margin:0 0 1rem}.source-table .source-row{cursor:pointer}.source-table .source-row:hover td{background:#2889c60d}.source-table .source-row a{color:inherit;text-decoration:none}.source-table .source-row a:hover strong,.source-table .source-row a:focus-visible strong{text-decoration:underline}.breadcrumb{font-size:.85rem;color:#64748b;margin-bottom:.5rem}.breadcrumb a{color:var(--kinspeed-blue, #2889c6);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.source-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem;margin:0 0 1.25rem}.source-summary>div{padding:.85rem 1rem;border-radius:10px;background:var(--bg-secondary, #fff);border:1px solid rgba(15,23,42,.08)}.source-summary dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:.3rem}.source-summary dd{margin:0;font-weight:600;color:#0f172a}.source-summary-value{font-size:1.5rem}.data-source-detail .dataset-detail-grid{margin-bottom:1rem}.source-card{padding:1rem 1.25rem;margin-bottom:1rem;border-radius:10px;background:var(--bg-secondary, #fff);border:1px solid rgba(15,23,42,.08)}.source-card h3{margin:0 0 .75rem;font-size:1rem;color:#0f172a}.source-card h3:not(:first-child){margin-top:1.25rem}.source-card .measures-editor h4{margin-top:0;font-size:1rem}.source-hint{font-size:.82rem;color:#64748b;margin:.6rem 0 0}.used-by{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.used-by li{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.used-by a{color:var(--kinspeed-blue, #2889c6)}.used-by-kind{min-width:5.5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.data-source-detail .metric-history-chart.report-widget{height:280px}.data-source-detail .metric-history-chart .widget-body{height:100%}.dataset-management .page-actions button{white-space:nowrap;width:auto}.source-danger{border-color:#e74c3c59;background:#e74c3c08}.source-danger h3{color:#b02a1b}.source-danger p{font-size:.88rem;color:#334155;margin:0 0 .75rem}.source-danger label{display:flex;flex-direction:column;gap:.3rem;max-width:22rem;font-size:.85rem;margin-bottom:.6rem}.source-danger input{padding:.45rem .6rem;border:1px solid rgba(15,23,42,.15);border-radius:6px}.source-danger button{width:auto}.pack-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}.pack-card{display:flex;flex-direction:column;gap:.4rem;height:100%;padding:1rem 1.15rem;border-radius:10px;background:var(--bg-secondary, #fff);border:1px solid rgba(15,23,42,.1);color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}.pack-card:hover,.pack-card:focus-visible{border-color:var(--kinspeed-blue, #2889c6);box-shadow:0 2px 10px #2889c61f}.pack-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:1.05rem;color:#0f172a}.pack-card-category{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.pack-card-description{font-size:.88rem;color:#334155;line-height:1.45;flex:1}.pack-card-counts{font-size:.8rem;color:#64748b}.pack-dataset{border-top:1px solid rgba(15,23,42,.08);padding:.6rem 0}.pack-dataset:first-of-type{border-top:0}.pack-dataset summary{cursor:pointer;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;list-style-position:outside}.pack-dataset summary code{font-size:.8rem;color:#64748b;margin-left:.35rem}.pack-dataset-meta{font-size:.82rem;color:#64748b}.pack-dataset h4{margin:.9rem 0 .4rem;font-size:.9rem;color:#0f172a}.pack-columns{font-size:.85rem}.pack-columns td{vertical-align:top}.pack-list{margin:0;padding-left:1.1rem;font-size:.86rem;color:#334155;display:flex;flex-direction:column;gap:.25rem}.pack-kpis td{vertical-align:middle}.pack-target{display:inline-flex;align-items:center;gap:.3rem}.pack-target input{width:6.5rem;padding:.35rem .5rem;border:1px solid rgba(15,23,42,.15);border-radius:6px}.pack-install{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:.9rem}.pack-install .btn-primary{width:auto}.pack-install .source-hint{margin:0}.pack-result{border-color:#27ae6066;background:#27ae600a}.pack-result h4{margin:1rem 0 .3rem;font-size:.92rem}.pack-copy-field{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.45rem 0}.pack-copy-label{min-width:7.5rem;font-size:.8rem;font-weight:600;color:#334155}.pack-copy-field code{flex:1;min-width:0;overflow-wrap:anywhere;padding:.4rem .6rem;border-radius:6px;background:#0f172a0d;font-size:.82rem}.pack-copy-field button{width:auto}.source-danger .pack-checkbox{flex-direction:row;align-items:center;gap:.5rem;max-width:none}.dataset-management .page-actions a.btn-primary,.dataset-management .page-actions a.btn-secondary,.dataset-management .builder-section-head a.btn-secondary{display:inline-flex;align-items:center;white-space:nowrap;text-decoration:none;width:auto}.pack-columns.datasets-table,.pack-kpis.datasets-table{min-width:0}.pack-columns.datasets-table th,.pack-columns.datasets-table td{padding:.45rem .7rem}.pack-kpis.datasets-table th,.pack-kpis.datasets-table td{padding:.6rem .7rem}.pack-columns.datasets-table th,.pack-kpis.datasets-table th{font-size:.75rem}.data-source-detail .page-actions .dataset-badge{white-space:nowrap}.pack-kpis.datasets-table td{font-size:.88rem}.source-kind-grid{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem;max-width:900px}.source-kind{display:flex;flex-direction:column;gap:.45rem;width:100%;height:100%;padding:1.1rem 1.25rem;text-align:left;border-radius:10px;background:var(--bg-secondary, #fff);border:1px solid rgba(15,23,42,.12);color:#334155;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s}.source-kind strong{font-size:1.05rem;color:#0f172a}.source-kind span{font-size:.88rem;line-height:1.45}.source-kind:hover,.source-kind:focus-visible{border-color:var(--kinspeed-blue, #2889c6);box-shadow:0 2px 10px #2889c61f;outline:none}.field-error{color:#b02a1b;font-size:.8rem;margin:.25rem 0 0}.dataset-builder input[aria-invalid=true]{border-color:#e74c3c}.builder-start{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;margin-bottom:1rem}.builder-start-option{position:relative;display:flex;flex-direction:column;gap:.3rem;padding:.9rem 1.1rem;border-radius:10px;border:1px dashed rgba(40,137,198,.55);background:#2889c60a;cursor:pointer}.builder-start-option:focus-within,.builder-start-option:hover{border-style:solid;background:#2889c614}.builder-start-option strong{color:#0f172a}.builder-start-option span{font-size:.85rem;color:#475569}.builder-start-option--static{cursor:default;border-color:#0f172a1f;background:transparent}.builder-start-option--static:hover{border-style:dashed;background:transparent}.builder-start-option .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.builder-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1rem;align-items:start}.builder-summary{position:sticky;top:1rem;padding:1rem 1.1rem;border-radius:10px;background:var(--bg-secondary, #fff);border:1px solid rgba(15,23,42,.08)}.builder-summary h3{margin:0 0 .2rem;font-size:1rem;color:#0f172a;overflow-wrap:anywhere}.builder-summary>code{font-size:.78rem;color:#64748b}.builder-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.9rem 0}.builder-summary dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.builder-summary dd{margin:0;font-weight:600;color:#0f172a;overflow-wrap:anywhere}.builder-summary-columns{list-style:none;margin:0 0 .75rem;padding:0;max-height:260px;overflow-y:auto;font-size:.82rem}.builder-summary-columns li{display:flex;justify-content:space-between;gap:.5rem;padding:.25rem 0;border-bottom:1px solid rgba(15,23,42,.06)}.builder-type{color:#64748b;white-space:nowrap}.builder-submit{display:flex;align-items:center;gap:.9rem;margin-top:.75rem}.builder-submit .btn-primary{width:auto}.definition-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem}.definition-fields label,.builder-column label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:#334155}.definition-fields input,.definition-fields select,.builder-column input:not([type=checkbox]):not([type=radio]),.builder-column select,.builder-link select{padding:.45rem .6rem;border:1px solid rgba(15,23,42,.15);border-radius:6px;font:inherit;font-weight:400;background:#fff;min-width:0}.definition-fields small{font-weight:400;color:#64748b}.definition-wide{grid-column:1 / -1}.builder-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.builder-section-head h3{margin-bottom:.5rem}.builder-section-head a.btn-secondary{width:auto;text-decoration:none}.builder-key-none{font-size:.82rem;color:#475569;margin-bottom:.5rem}.builder-key-none label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.builder-columns{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.builder-column{display:grid;grid-template-columns:auto minmax(130px,1.1fr) minmax(110px,.7fr) minmax(140px,1.4fr) auto auto;align-items:end;gap:.6rem;padding:.6rem .7rem;border-radius:8px;border:1px solid rgba(15,23,42,.08);background:#0f172a04}.builder-column.has-error{border-color:#e74c3c8c;background:#e74c3c08}.builder-column>label span{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.builder-column-order{display:flex;flex-direction:column;gap:2px;align-self:center}.builder-column-order button,.builder-remove{width:1.7rem;height:1.5rem;padding:0;border:1px solid rgba(15,23,42,.12);border-radius:5px;background:#fff;color:#475569;cursor:pointer;font-size:.8rem;line-height:1}.builder-column-order button:disabled{opacity:.35;cursor:default}.builder-remove{align-self:center;height:1.8rem;font-size:1rem}.builder-remove:hover{border-color:#e74c3c;color:#b02a1b}.builder-column-flags{display:flex;flex-direction:column;gap:.3rem;padding-bottom:.2rem}.builder-column-flags label{flex-direction:row;align-items:center;gap:.35rem;font-weight:500;font-size:.8rem;cursor:pointer;white-space:nowrap}.builder-column-error{grid-column:2 / -1}.builder-link{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .7rem;margin-bottom:.5rem;border-radius:8px;border:1px solid rgba(15,23,42,.08);background:#0f172a04;font-size:.88rem;color:#334155}.builder-link.has-error{border-color:#e74c3c8c}.builder-link select{max-width:16rem}.builder-link-note{flex-basis:100%;margin:0;font-size:.8rem}.builder-link-warning{color:#8a5a00}.definition-view.datasets-table{min-width:0;font-size:.86rem}.definition-view.datasets-table th,.definition-view.datasets-table td{padding:.45rem .7rem}.data-source-detail .source-card h4{margin:1rem 0 .4rem;font-size:.9rem;color:#0f172a}.upload-check{margin-top:.75rem;padding:.75rem .9rem;border-radius:8px;background:#0f172a08;font-size:.88rem}.upload-check p{margin:0 0 .4rem}.upload-problem{color:#b02a1b;font-weight:600}.upload-actions{display:flex;align-items:end;gap:.9rem;flex-wrap:wrap;margin-top:.6rem}.upload-actions label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600}.upload-actions select{padding:.45rem .6rem;border:1px solid rgba(15,23,42,.15);border-radius:6px}.upload-actions .btn-primary{width:auto}.api-example summary{cursor:pointer;font-size:.85rem;color:var(--kinspeed-blue, #2889c6)}.api-example pre{margin:.5rem 0 0;padding:.75rem;border-radius:8px;background:#0f172a;color:#e2e8f0;font-size:.78rem;overflow-x:auto}@media (max-width: 900px){.builder-layout{grid-template-columns:1fr}.builder-summary{position:static;order:-1}.definition-fields{grid-template-columns:1fr}.builder-column{grid-template-columns:auto 1fr auto}.builder-column>label:not(.builder-column-name){grid-column:2 / -1}.builder-column-flags{grid-column:2 / 3;flex-direction:row;gap:1rem}}.connection-intro{margin:0 0 .75rem}.connection-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin-bottom:.75rem;font-size:.86rem;color:#334155}.connection-status{padding:.15rem .6rem;border-radius:999px;font-weight:600;font-size:.78rem}.connection-status-ok{background:#dcfce7;color:#166534}.connection-status-warn{background:#fef3c7;color:#92400e}.connection-status-bad{background:#fee2e2;color:#991b1b}.connection-error{white-space:pre-line;margin-bottom:.75rem}.connection-failed{color:#b91c1c;font-weight:600}.connection-reconnect{margin-bottom:1rem}.connection-datasets{margin-top:.25rem}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.9rem}.connection-confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.86rem;color:#334155}.connection-saved{margin:0}.connection-token{margin-top:.9rem;font-size:.88rem}.connection-token summary,.connection-settings-wrap summary{cursor:pointer;font-weight:600;color:#0f172a;font-size:.9rem}.connection-scopes{display:block;margin:.5rem 0;padding:.5rem .65rem;background:#f1f5f9;border-radius:6px;font-size:.78rem;overflow-wrap:anywhere}.connection-settings-wrap{margin-top:1.1rem;border-top:1px solid #e2e8f0;padding-top:.9rem}.connection-settings{display:flex;flex-direction:column;gap:1rem;margin-top:.9rem}.connection-field{display:block;border:0;padding:0;margin:.5rem 0 0;font-size:.88rem;color:#0f172a;min-width:0}.connection-field>span,.connection-field>legend{display:block;padding:0;font-weight:600;margin-bottom:.3rem}.connection-field input[type=password],.connection-field input[type=text],.connection-field select{display:block;width:100%;max-width:26rem;padding:.45rem .6rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.88rem;background:#fff}.connection-field .source-hint{margin:0 0 .45rem}.connection-token .btn-secondary{margin-top:.6rem}.connection-field-row{display:flex;flex-wrap:wrap;gap:1rem}.connection-field-row .connection-field{flex:1 1 14rem;margin-top:0}.connection-checks{display:flex;flex-wrap:wrap;gap:.3rem 1rem}.connection-checks label{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:#334155}.connection-stage-group{margin-top:.5rem}.connection-stage-pipeline{display:block;font-size:.78rem;color:#64748b;margin-bottom:.2rem}.connection-forms select{padding:.3rem .45rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.84rem;background:#fff}.connection-token .btn-primary,.connection-actions .btn-primary{width:auto;margin-top:.6rem}.kpi-management{padding:2rem;max-width:1400px;margin:0 auto}.kpi-management .page-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.kpi-management .page-header h2{color:#4a9eff;margin:0}.kpi-management .page-subtitle{color:var(--text-secondary, #b0b0b0);font-size:.9rem;margin-top:.35rem}.kpi-management .page-subtitle strong{color:#4a9eff}.kpi-management .page-actions{display:flex;gap:.5rem}.kpi-management .error-dismiss{float:right;background:none;border:none;color:inherit;cursor:pointer;font-size:1.1rem}.kpi-suggestions{background:var(--bg-secondary);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem;border-left:4px solid #4a9eff}.kpi-suggestions h3{margin:0;font-size:1rem}.kpi-suggestions ul{list-style:none;margin:.75rem 0 0;padding:0}.kpi-suggestions li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;border-top:1px dashed var(--border-color)}.kpi-suggestions li.unavailable{opacity:.65}.kpi-suggestion-meta,.kpi-suggestion-reason,.kpi-key{color:var(--text-secondary);font-size:.8rem}.kpi-suggestion-reason{color:#ffc107}.kpi-group{margin-bottom:1.5rem}.kpi-group h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0 0 .5rem}.kpi-table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0003}.kpi-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.8rem;letter-spacing:.5px;background:var(--bg-tertiary);border-bottom:2px solid var(--border-color)}.kpi-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);vertical-align:top}.kpi-table code{color:#4a9eff;font-size:.85rem}.kpi-modal{max-width:900px;width:95%}.user-profile-container{max-width:800px;margin:0 auto;padding:2rem}.page-title{color:var(--text-primary);font-size:2rem;margin-bottom:2rem;font-weight:600}.profile-section{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:2rem;margin-bottom:2rem}.section-title{color:var(--text-primary);font-size:1.5rem;margin-bottom:1.5rem;font-weight:600}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.info-item label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.info-value{color:var(--text-primary);font-size:1rem;padding:.75rem;background-color:var(--bg-tertiary);border-radius:4px;border:1px solid var(--border-color)}.role-badge{display:inline-block;padding:.5rem 1rem;border-radius:4px;font-weight:600;text-transform:capitalize}.role-super_admin{background-color:#ff6b6b33;color:#ff6b6b;border:1px solid rgba(255,107,107,.3)}.role-admin{background-color:#4a9eff33;color:#4a9eff;border:1px solid rgba(74,158,255,.3)}.role-user{background-color:#51cf6633;color:#51cf66;border:1px solid rgba(81,207,102,.3)}.password-form{max-width:400px}.form-group label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:600;margin-bottom:.5rem}.form-group input{width:100%;padding:.75rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--primary-color)}.form-group input:disabled{opacity:.5;cursor:not-allowed}.form-hint{display:block;color:var(--text-secondary);font-size:.75rem;margin-top:.25rem}.message{padding:.75rem 1rem;border-radius:4px;margin-bottom:1rem;font-weight:500}.success-message{background-color:#51cf6633;color:#51cf66;border:1px solid rgba(81,207,102,.3)}.error-message{background-color:#ff6b6b33;color:#ff6b6b;border:1px solid rgba(255,107,107,.3)}.btn-primary{background-color:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.user-profile-container{padding:1rem}.page-title{font-size:1.5rem}.profile-section{padding:1.5rem}.section-title{font-size:1.25rem}.info-grid{grid-template-columns:1fr}.password-form{max-width:100%}}:root{--kinspeed-blue: #2889C6;--kinspeed-blue-dark: #1e6fa3;--kinspeed-blue-light: #3a9dd6;--kinspeed-blue-subtle: rgba(40, 137, 198, .08);--kinspeed-blue-hover: rgba(40, 137, 198, .12);--bg-primary: #f5f6fa;--bg-secondary: #ffffff;--bg-tertiary: #eef0f4;--widget-bg: #3a3a4a;--widget-bg-hover: #44445a;--widget-border: #4a4a5a;--widget-text: #ffffff;--widget-text-secondary: #b0b0b0;--widget-header-bg: rgba(0, 0, 0, .15);--text-primary: #2c3e50;--text-secondary: #6c7a89;--text-tertiary: #95a5a6;--accent-blue: var(--kinspeed-blue);--accent-green: #27ae60;--accent-yellow: #f39c12;--accent-red: #e74c3c;--accent-orange: #e67e22;--accent-purple: #8e44ad;--status-success: #27ae60;--status-error: #e74c3c;--status-warning: #f39c12;--status-info: var(--kinspeed-blue);--status-healthy: #27ae60;--status-degraded: #f39c12;--status-unhealthy: #e74c3c;--status-unknown: #95a5a6;--border-color: #e0e0e0;--border-light: #ebebeb;--border-dark: #d0d0d0;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .15);--shadow-widget: 0 2px 8px rgba(0, 0, 0, .2);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--z-sidebar: 900;--z-dropdown: 1000;--z-modal: 2000;--z-tooltip: 3000;--z-toast: 4000;--transition-fast: .15s;--transition-base: .2s;--transition-slow: .3s;--transition-easing: cubic-bezier(.4, 0, .2, 1);--sidebar-width: 240px;--sidebar-collapsed-width: 0px;--max-width-content: 1400px;--max-width-narrow: 800px;--login-bg-start: #1a7ab5;--login-bg-end: #2d94d0}.container{max-width:var(--max-width-content);margin:0 auto;padding:var(--spacing-xl)}.container-narrow{max-width:var(--max-width-narrow);margin:0 auto;padding:var(--spacing-xl)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.m-0{margin:0}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.p-0{padding:0}.pt-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-xl)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--border-color)}.section{margin-bottom:var(--spacing-2xl)}.section-title{color:var(--accent-blue);font-size:var(--text-2xl);margin-bottom:var(--spacing-lg)}.table-container{overflow-x:auto;border-radius:var(--radius-md)}.table{width:100%;border-collapse:collapse;background-color:var(--bg-tertiary)}.table thead{background-color:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.table th{padding:1rem;text-align:left;font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:.05em}.table td{padding:1rem;border-bottom:1px solid var(--border-color)}.table tbody tr:hover{background-color:var(--bg-secondary)}.loading-container{display:flex;justify-content:center;align-items:center;min-height:300px}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}.hidden{display:none!important}.invisible{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.error-message{background:#ff6b6b1a;border-left:4px solid var(--accent-red);padding:1rem;border-radius:var(--radius-md);color:#f99;margin-bottom:1rem}.success-message{background:#51cf661a;border-left:4px solid var(--accent-green);padding:1rem;border-radius:var(--radius-md);color:#7fd98a;margin-bottom:1rem}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-medium);color:var(--text-primary);font-size:var(--text-sm)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);transition:border-color var(--transition-base) var(--transition-easing)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #4a9eff1a}.btn-primary,.btn-secondary,.btn-danger,.btn-secondary-small{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base) var(--transition-easing)}.btn-primary{background:linear-gradient(135deg,var(--accent-blue),#3a7ecc);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#3a7ecc,#2a5e9c);transform:translateY(-1px);box-shadow:0 4px 12px #4a9eff66}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-light)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-color)}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover:not(:disabled){background:#c00}.btn-secondary-small{padding:.4rem .8rem;font-size:var(--text-sm);background:var(--bg-tertiary);color:var(--text-primary)}button:disabled{opacity:.6;cursor:not-allowed}.role-badge,.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .75rem;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold)}.role-badge.admin{background:linear-gradient(135deg,#ffd70033,#ff8c0033);color:gold}.role-badge.user{background:#4a9eff26;color:var(--accent-blue)}.status-badge.active{background:#51cf6626;color:var(--accent-green)}.status-badge.inactive{background:#9ca3af26;color:var(--text-tertiary)}.member-option{display:flex;align-items:center;gap:.5rem;padding:.2rem 0;font-size:.9rem;cursor:pointer}.member-option code{margin-left:auto;font-size:.72rem;color:var(--text-secondary)}.member-option--disabled{cursor:not-allowed;opacity:.55}.selection-chip{font-size:.78rem;padding:.2rem .6rem;border-radius:999px;background:#4a9eff1f;color:#4a9eff;cursor:pointer}.selection-chip--measure{background:#51cf661f;color:#51cf66}.selection-chip--time{background:#ffc1071f;color:#ffc107;cursor:default}.filter-row{align-items:center;margin-bottom:.5rem}.filter-row select,.filter-row input{flex:1;min-width:0}.filter-row button{flex:0 0 auto}*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden;width:100%;height:100%;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);overflow-x:hidden;width:100%;height:100%}code{font-family:var(--font-family-mono)}#root{width:100%;min-height:100%;overflow-x:hidden}.app{min-height:100vh;display:flex;flex-direction:column;width:100%;overflow-x:hidden;background-color:var(--bg-primary);transition:background-color .5s ease}.app.app-with-sidebar{flex-direction:row}.app.app-stale{background-color:#f39c120f}.main-content{flex:1;padding:2rem;min-width:0}.sidebar{width:var(--sidebar-width);min-height:100vh;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:var(--z-sidebar)}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding:1.25rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color var(--transition-base)}.sidebar-brand:hover{background-color:var(--kinspeed-blue-subtle)}.sidebar-logo{width:36px;height:36px;border-radius:8px}.sidebar-brand-text{font-size:1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.3px}.sidebar-selectors{padding:1rem;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:.75rem}.sidebar-selector-group{display:flex;flex-direction:column;gap:.35rem}.sidebar-selector-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding-left:.25rem}.sidebar-nav{flex:1;padding:.75rem;display:flex;flex-direction:column;gap:.15rem}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem .75rem;border:none;background:none;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-base);text-align:left}.sidebar-nav-item svg{width:20px;height:20px;flex-shrink:0;stroke:var(--text-tertiary);transition:stroke var(--transition-base)}.sidebar-nav-item:hover{background-color:var(--kinspeed-blue-subtle);color:var(--kinspeed-blue)}.sidebar-nav-item:hover svg{stroke:var(--kinspeed-blue)}.sidebar-nav-item.active{background-color:var(--kinspeed-blue-hover);color:var(--kinspeed-blue);font-weight:600}.sidebar-nav-item.active svg{stroke:var(--kinspeed-blue)}.sidebar-nav-divider{height:1px;background-color:var(--border-color);margin:.5rem 0}.sidebar-nav-section{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:.5rem .75rem .25rem}.sidebar-nav-group{display:flex;flex-direction:column}.sidebar-nav-group+.sidebar-nav-group{margin-top:.4rem;padding-top:.25rem;border-top:1px solid var(--border-color)}.sidebar-status{padding:.75rem 1.25rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.4rem}.sidebar-status-row{display:flex;justify-content:space-between;align-items:center;font-size:.78rem}.sidebar-status-label{color:var(--text-tertiary);font-weight:500}.sidebar-status-value{color:var(--text-secondary);font-family:var(--font-family-mono);font-size:.72rem}.sidebar-connection{display:flex;align-items:center;gap:.4rem;color:var(--text-secondary)}.sidebar-status-dot{width:8px;height:8px;border-radius:50%}.sidebar-status-dot.connected{background-color:var(--accent-green)}.sidebar-status-dot.stale{background-color:var(--accent-orange);animation:pulse-slow 3s infinite}.sidebar-status-dot.disconnected{background-color:var(--accent-red);animation:pulse 2s infinite}.sidebar-footer{padding:1rem 1.25rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.5rem}.sidebar-role-badge{display:inline-block;padding:.2rem .5rem;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;text-align:center}.sidebar-role-badge.super-admin{background-color:var(--accent-red);color:#fff}.sidebar-role-badge.admin{background-color:var(--kinspeed-blue);color:#fff}.sidebar-user{display:flex;align-items:center;gap:.5rem}.sidebar-user-icon{width:18px;height:18px;stroke:var(--text-tertiary)}.sidebar-username{font-size:.85rem;font-weight:500;color:var(--text-primary)}.sidebar-logout{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem;border:none;background:none;color:var(--text-tertiary);font-size:.85rem;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-base)}.sidebar-logout svg{width:18px;height:18px}.sidebar-logout:hover{background-color:#e74c3c14;color:var(--accent-red)}.sidebar-mobile-toggle{display:none;position:fixed;top:1rem;left:1rem;z-index:calc(var(--z-sidebar) + 10);background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:1.5rem;width:44px;height:44px;border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-md);line-height:1}.sidebar-overlay{display:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-slow{0%,to{opacity:1}50%{opacity:.6}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fullscreen-exit-btn{position:fixed;top:20px;right:20px;z-index:9999;background-color:#000c;color:#fff;border:2px solid var(--accent-blue);padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fullscreen-exit-btn:hover{background-color:var(--accent-blue)}.widget{background-color:var(--widget-bg);border:1px solid var(--widget-border);border-radius:var(--radius-lg);padding:1.5rem;height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow-widget);transition:transform .2s,box-shadow .2s;color:var(--widget-text)}.widget:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000040}.widget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--widget-border);-webkit-user-select:none;user-select:none}.widget-title{font-size:.9rem;font-weight:600;color:var(--widget-text-secondary);text-transform:uppercase;letter-spacing:.5px}.widget-body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.table-widget{width:100%;overflow-y:auto}.table-widget .widget-header{position:sticky;top:0;background-color:var(--widget-bg);z-index:20}.table-widget .widget-body{overflow-y:auto;flex:1}.widget-table{width:100%;border-collapse:collapse}.widget-table th{background-color:#0003;padding:.75rem;text-align:left;font-weight:600;font-size:.85rem;color:var(--widget-text-secondary);border-bottom:2px solid var(--widget-border)}.widget-table td{padding:.75rem;border-bottom:1px solid rgba(255,255,255,.06);font-size:.9rem;color:var(--widget-text)}.widget-table tr:hover{background-color:#ffffff0a}.report-widget{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.report-widget .widget-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.report-widget .report-meta{font-size:.72rem;color:var(--widget-text-secondary);font-weight:400;letter-spacing:.02em;white-space:nowrap}.report-widget .widget-body{padding:0;overflow:hidden;flex:1;display:flex;flex-direction:column}.report-widget .report-table-wrapper{flex:1;overflow:auto}.report-widget .report-table{width:100%;border-collapse:collapse}.report-widget .report-table th{position:sticky;top:0;background-color:var(--widget-header-bg, rgba(0, 0, 0, .25));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1;white-space:nowrap}.report-widget .report-td--numeric{text-align:right;font-variant-numeric:tabular-nums}.report-widget .report-status{flex:1;display:flex;align-items:center;justify-content:center;color:var(--widget-text-secondary);font-size:.9rem;padding:1.5rem}.report-widget .report-status--error{color:var(--accent-red)}.report-stat{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.4rem;padding:1rem;min-height:0}.report-stat-label{font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--widget-text-secondary);font-weight:600}.report-stat-value{font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;font-variant-numeric:tabular-nums;color:var(--widget-text);line-height:1.1;word-break:break-word}.report-stat-hint{font-size:.7rem;color:var(--widget-text-secondary);font-style:italic;margin-top:.5rem}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.status-badge.running{background-color:#27ae6033;color:var(--accent-green)}.status-badge.stopped{background-color:#e74c3c33;color:var(--accent-red)}.status-badge.warning{background-color:#f39c1233;color:var(--accent-yellow)}.gauge-widget{position:relative;width:100%;height:100%;display:flex;flex-direction:column;container-type:size;container-name:gauge}.gauge-widget-content{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0}.gauge-chart-container{position:absolute;top:-80%;left:50%;transform:translate(-50%);width:120%;max-width:600px;bottom:-20%;min-height:100px;overflow:visible;aspect-ratio:2 / 1;pointer-events:none}.gauge-value-overlay{position:absolute;top:75%;left:50%;transform:translate(-50%,-50%);font-size:clamp(2rem,16cqh,8rem);font-weight:700;line-height:1;text-align:center;white-space:nowrap;pointer-events:none;z-index:10}.gauge-value-overlay.animated{transition:color .3s ease}.gauge-max-label{position:absolute;bottom:-.25rem;left:50%;transform:translate(-50%);font-size:clamp(.7rem,4.5cqh,1.4rem);color:var(--widget-text-secondary);text-align:center;white-space:nowrap;pointer-events:none;z-index:10}@container gauge (max-width: 150px){.gauge-chart-container{top:-75%;width:150%}.gauge-value-overlay{top:72%;font-size:clamp(1.5rem,14cqh,6rem)}.gauge-max-label{bottom:0;font-size:clamp(.6rem,3.5cqh,1.2rem)}}@container gauge (min-width: 151px) and (max-width: 250px){.gauge-chart-container{top:-85%;width:140%}.gauge-value-overlay{top:72%;font-size:clamp(1.75rem,15cqh,7rem)}}@container gauge (max-width: 250px) and (max-height: 180px){.gauge-chart-container{top:-65%;width:155%}.gauge-value-overlay{top:72%;font-size:clamp(1.25rem,12cqh,5rem)}.gauge-max-label{bottom:0;font-size:clamp(.55rem,3cqh,1rem)}}.react-grid-item.react-draggable .widget-header{cursor:grab}.react-grid-item.react-draggable .widget-header:active{cursor:grabbing}.overlapping-widget .widget{border:2px solid var(--accent-orange);box-shadow:0 0 20px #e67e2299;animation:pulse-overlap 2s ease-in-out infinite}@keyframes pulse-overlap{0%,to{box-shadow:0 0 20px #e67e2299}50%{box-shadow:0 0 30px #e67e22e6}}.grid-options-panel{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.5rem;margin-bottom:1rem;display:flex;gap:2rem;align-items:center;flex-wrap:wrap}.grid-options-section{display:flex;align-items:center;gap:.75rem}.grid-option-label{color:var(--text-secondary);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.grid-option-buttons{display:flex;gap:.5rem}.grid-option-btn{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.grid-option-btn:hover{border-color:var(--kinspeed-blue);color:var(--kinspeed-blue)}.grid-option-btn.active{background-color:var(--kinspeed-blue);border-color:var(--kinspeed-blue);color:#fff}.grid-option-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-primary);font-size:.875rem;font-weight:500}.grid-option-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--kinspeed-blue)}.login-container{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(to right,#21b2f0,#0069b0);margin:-2rem;padding:2rem;padding-top:8vh}.login-box{background-color:#fff;padding:1.5rem 3rem 1rem;border-radius:20px;box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;width:100%;max-width:440px}.login-logo{display:block;width:90px;height:90px;margin:0 auto 1rem}.login-greeting{font-family:Montserrat,sans-serif;font-size:2.125rem;font-weight:400;line-height:1.235;letter-spacing:.00735em;color:#424242;margin-bottom:2.5rem}.login-hello{font-weight:600;color:#0085ca}.login-error{font-size:.875rem;font-weight:500;color:#f44336;text-align:center;padding:.5rem 0;margin-bottom:.5rem}.login-field{position:relative;margin-bottom:1rem}.login-field input{width:100%;padding:.625rem 3rem .625rem .875rem;font-family:Montserrat,sans-serif;font-size:14px;font-weight:400;line-height:1.75;color:#424242;background:#fff;border:1px solid rgba(189,189,189,1);border-radius:4px;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.login-field input:focus,.login-field.focused input{border-color:#0085ca;border-width:2px;padding:calc(.625rem - 1px) calc(3rem - 1px) calc(.625rem - 1px) calc(.875rem - 1px)}.login-field label{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);font-family:Montserrat,sans-serif;font-size:14px;color:#0000008a;pointer-events:none;transition:all .15s ease;background:#fff;padding:0}.login-field.active label,.login-field.focused label{top:0;transform:translateY(-50%);font-size:.75rem;padding:0 .35rem;left:.6rem}.login-field.focused label{color:#0085ca}.login-field-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:#0085ca;display:flex;align-items:center;pointer-events:none}.login-field-icon svg{width:24px;height:24px}.login-remember{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin-top:.5rem;margin-left:-.25rem;font-family:Montserrat,sans-serif;font-size:1rem;color:#424242}.login-remember input[type=checkbox]{width:18px;height:18px;accent-color:#0085ca;cursor:pointer}.login-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:1rem}.login-spinner-container{visibility:hidden}.login-spinner-container.visible{visibility:visible}.login-spinner{width:36px;height:36px;border:3px solid transparent;border-top-color:#0085ca;border-radius:50%;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-btn{font-family:Montserrat,sans-serif;font-size:.875rem;font-weight:500;letter-spacing:.02857em;text-transform:none;line-height:1.75;padding:.375rem 1rem;color:#0085ca;background:transparent;border:1px solid rgba(0,133,202,.5);border-radius:4px;cursor:pointer;transition:background-color .2s,border-color .2s}.login-btn:hover:not(:disabled){background-color:#0085ca0f;border-color:#0085ca}.login-btn:disabled{color:#00000042;border-color:#0000001f;cursor:default}.login-footer{margin-top:1.5rem;text-align:center;color:#95a5a6;font-size:.85rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;background-color:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--kinspeed-blue);box-shadow:0 0 0 3px #2889c61f}.form-group small{display:block;margin-top:.35rem;color:var(--text-tertiary);font-size:.8rem}.btn-primary{width:100%;padding:.75rem;background-color:var(--kinspeed-blue);border:none;border-radius:var(--radius-sm);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--kinspeed-blue-dark)}.btn-primary:disabled{background-color:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed}.btn-secondary{padding:.75rem 1.5rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{border-color:var(--kinspeed-blue);color:var(--kinspeed-blue)}.btn-primary-small{padding:.5rem 1rem;background-color:var(--kinspeed-blue);border:none;border-radius:var(--radius-sm);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary-small:hover{background-color:var(--kinspeed-blue-dark)}.btn-secondary-small{padding:.5rem 1rem;background-color:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary-small:hover{border-color:var(--kinspeed-blue);color:var(--kinspeed-blue)}.btn-danger-small{padding:.5rem 1rem;background-color:transparent;border:1px solid var(--accent-red);border-radius:var(--radius-sm);color:var(--accent-red);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-danger-small:hover{background-color:var(--accent-red);color:#fff}.btn-danger-small:disabled{opacity:.4;cursor:not-allowed}.btn-remove-small{padding:.5rem 1rem;background-color:transparent;border:1px solid var(--accent-orange);border-radius:var(--radius-sm);color:var(--accent-orange);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-remove-small:hover{background-color:var(--accent-orange);color:#fff}.error-message{background-color:#e74c3c14;color:var(--accent-red);padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;text-align:center;border:1px solid rgba(231,76,60,.3)}.success-message{background-color:#27ae6014;color:var(--accent-green);padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;text-align:center;border:1px solid rgba(39,174,96,.3)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0006;display:flex;justify-content:center;align-items:center;z-index:var(--z-modal);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:2rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{font-size:1.3rem;color:var(--text-primary)}.modal-close{background:none;border:none;color:var(--text-tertiary);font-size:1.75rem;cursor:pointer;padding:.25rem;line-height:1;transition:color var(--transition-base)}.modal-close:hover{color:var(--text-primary)}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.form-actions .btn-primary{width:auto;padding:.75rem 2rem}.form-actions .btn-secondary{padding:.75rem 1.5rem}.react-grid-layout{position:relative}.react-grid-item{transition:all .2s ease}.react-grid-item.react-draggable-dragging{-webkit-user-select:none;user-select:none;transition:none!important;z-index:100}.react-grid-item.react-grid-placeholder{background:var(--kinspeed-blue);opacity:.2;transition-duration:.1s;z-index:2;border-radius:var(--radius-lg)}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid var(--widget-text-secondary);border-bottom:2px solid var(--widget-text-secondary)}.company-selector,.dashboard-selector{position:relative}.company-selector-button,.dashboard-selector-button{display:flex;align-items:center;gap:.5rem;background-color:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:.55rem .75rem;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-size:.85rem;white-space:nowrap;width:100%}.company-selector-button:hover,.dashboard-selector-button:hover{border-color:var(--kinspeed-blue)}.selector-icon{font-size:.9rem;line-height:1}.company-name,.dashboard-name{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis}.dropdown-arrow{font-size:.6rem;color:var(--text-tertiary);margin-left:auto}.company-dropdown,.dashboard-dropdown{position:absolute;top:calc(100% + .5rem);left:0;min-width:100%;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden;animation:dropdownFadeIn .2s ease}.company-option,.dashboard-option{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.65rem .75rem;border:none;background:none;color:var(--text-primary);text-align:left;cursor:pointer;transition:all .15s;font-size:.85rem;border-bottom:1px solid var(--border-light)}.company-option:last-child,.dashboard-option:last-child{border-bottom:none}.company-option:hover,.dashboard-option:hover{background-color:var(--kinspeed-blue-subtle);color:var(--kinspeed-blue)}.company-option.active,.dashboard-option.active{background-color:var(--kinspeed-blue);color:#fff;font-weight:600}.checkmark{font-weight:700;font-size:1rem}.role-badge{display:inline-block;padding:.2rem .5rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;margin-left:.5rem}.role-badge.super-admin,.role-badge.super_admin{background-color:var(--accent-red);color:#fff}.role-badge.admin{background-color:var(--kinspeed-blue);color:#fff}.role-badge.user{background-color:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.loading-spinner{display:inline-block;width:40px;height:40px;border:4px solid var(--border-color);border-radius:50%;border-top-color:var(--kinspeed-blue);animation:spin 1s linear infinite}.loading-container{display:flex;justify-content:center;align-items:center;min-height:400px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media (max-width: 768px){body{overflow-x:hidden;width:100vw}.app.app-with-sidebar{flex-direction:column}.sidebar{position:fixed;left:-100%;top:0;width:280px;transition:left .3s ease;box-shadow:none}.sidebar.sidebar-open{left:0;box-shadow:var(--shadow-xl)}.sidebar-mobile-toggle{display:flex;align-items:center;justify-content:center}.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0000004d;z-index:calc(var(--z-sidebar) - 1)}.main-content{padding:4rem .75rem .75rem;width:100%;max-width:100vw}.widget{padding:1rem!important}.widget-header{font-size:.85rem;margin-bottom:.5rem}.gauge-chart-container{top:-65%!important;width:115%!important}.gauge-value-overlay{font-size:clamp(1.5rem,8cqh,3rem)!important;top:65%!important}.gauge-max-label{font-size:clamp(.6rem,3cqh,.85rem)!important;bottom:.25rem!important}.table-widget table{font-size:.8rem}.table-widget th,.table-widget td{padding:.4rem}.login-container{padding:1rem}.login-box{padding:2rem 1.5rem;max-width:100%}.grid-options-panel{flex-direction:column;gap:.75rem;align-items:flex-start}.grid-option-btn{flex:1;padding:.5rem .75rem;font-size:.75rem}.layout{width:100%!important;margin:0!important}}
