:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:#213547;background-color:#f5f5f5}#root{min-height:100vh}h1{font-size:1.75rem;line-height:1.2;margin:0 0 1rem;color:#1a1a2e}h2{font-size:1.5rem;line-height:1.2;margin:0 0 .75rem;color:#1a1a2e}a{font-weight:500;color:#646cff;text-decoration:none}a:hover{color:#535bf2}button{border-radius:6px;border:1px solid transparent;padding:.5rem 1rem;font-size:.875rem;font-weight:500;font-family:inherit;background-color:#646cff;color:#fff;cursor:pointer;transition:background-color .2s}button:hover{background-color:#535bf2}button:focus,button:focus-visible{outline:2px solid #646cff;outline-offset:2px}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;background-color:#1a1a2e;color:#fff;display:flex;flex-direction:column;flex-shrink:0;height:100vh}.sidebar-header{padding:.75rem 1rem;border-bottom:1px solid #2d2d44;flex-shrink:0}.sidebar-header h1{margin:0;font-size:1.1rem;font-weight:600;color:#fafafa}.nav-menu{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1;min-height:0}.nav-menu li{margin:0}.nav-menu a{display:block;padding:.625rem 1rem;color:#a0a0b0;text-decoration:none;transition:background-color .2s,color .2s;font-size:.875rem}.nav-menu a:hover{background-color:#2d2d44;color:#fff}.nav-menu a.active{background-color:#3d3d5c;color:#fff;border-left:3px solid #646cff}.nav-item-expandable{position:relative}.nav-item-header{display:flex;align-items:stretch}.nav-item-header>a{flex:1}.nav-expand-button{background:transparent;border:none;color:#a0a0b0;padding:0 1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s,color .2s}.nav-expand-button:hover{background-color:#2d2d44;color:#fff}.expand-icon{display:inline-block;transition:transform .2s;font-size:.75rem}.nav-expand-button.expanded .expand-icon{transform:rotate(180deg)}.nav-submenu{list-style:none;padding:0;margin:0;background-color:#151525}.nav-submenu li{margin:0}.nav-submenu a{display:block;padding:.5rem 1rem .5rem 2rem;color:#8080a0;text-decoration:none;font-size:.8125rem;transition:background-color .2s,color .2s}.nav-submenu a:hover{background-color:#2d2d44;color:#fff}.nav-submenu a.active{background-color:#3d3d5c;color:#fff;border-left:3px solid #646cff;padding-left:calc(2rem - 3px)}.sidebar-footer{padding:.75rem 1rem;border-top:1px solid #2d2d44;flex-shrink:0}.user-info{display:flex;flex-direction:column;gap:.5rem}.user-name{font-size:.875rem;color:#fafafa}.logout-button{background-color:transparent;border:1px solid #4d4d6d;color:#a0a0b0;padding:.5rem;font-size:.75rem;cursor:pointer;transition:background-color .2s,color .2s}.logout-button:hover{background-color:#2d2d44;color:#fff}.main-content{flex:1;padding:0;background-color:#f5f5f5;overflow-y:auto;overflow-x:hidden;height:100vh;min-width:0}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.125rem;color:#666}.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;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;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.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)}.configurable-dashboard{padding:0;width:100%;overflow-x:hidden}.dashboard-toolbar{display:flex;gap:.5rem;margin-bottom:.5rem;justify-content:flex-end}.dashboard-content{display:flex;gap:.5rem;width:100%;max-width:100%;overflow:hidden}.dashboard-grid-container{flex:1;min-width:0;overflow:hidden;max-width:100%}.dashboard-loading,.dashboard-empty,.dashboard-empty-widgets{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:#666;background:#f9fafb;border-radius:8px;min-height:200px}.dashboard-empty button{margin-top:1rem}.dashboard-grid{background:#f9fafb;border-radius:8px;min-height:400px}.configurable-dashboard.is-editing .dashboard-grid{background:repeating-linear-gradient(0deg,transparent,transparent 79px,#e5e7eb 79px,#e5e7eb 80px),repeating-linear-gradient(90deg,transparent,transparent calc(100% / 12 - 1px),#e5e7eb calc(100% / 12 - 1px),#e5e7eb calc(100% / 12))}.dashboard-widget{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;overflow:hidden}.configurable-dashboard.is-editing .dashboard-widget{border:2px dashed transparent}.configurable-dashboard.is-editing .dashboard-widget:hover{border-color:#3b82f6}.widget-header{display:flex;align-items:center;padding:.25rem .5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb;min-height:0}.widget-drag-handle{cursor:grab;padding:0 .25rem;color:#9ca3af;font-size:.875rem;-webkit-user-select:none;user-select:none;line-height:1}.widget-drag-handle:active{cursor:grabbing}.widget-title{flex:1;font-weight:500;font-size:.75rem;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.widget-actions{display:flex;gap:.125rem}.widget-action-btn{background:none;border:none;cursor:pointer;padding:.125rem .25rem;font-size:.875rem;color:#6b7280;border-radius:4px;line-height:1}.widget-action-btn:hover{background:#e5e7eb;color:#1f2937}.widget-action-delete:hover{background:#fee2e2;color:#dc2626}.widget-body{flex:1;overflow:auto;display:flex;flex-direction:column}.dashboard-widget.is-editing .widget-body{padding:.25rem}.widget-content{flex:1;min-height:0}.widget-loading,.widget-error,.widget-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#6b7280;font-size:.875rem}.widget-error{color:#dc2626}.widget-toolbox{width:160px;flex-shrink:0;background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;padding:.5rem;overflow-y:auto;max-height:calc(100vh - 150px)}.widget-toolbox-title{font-size:.75rem;font-weight:600;color:#374151;margin:0 0 .5rem}.widget-toolbox-list{display:flex;flex-direction:column;gap:.25rem}.widget-toolbox-item{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.375rem .5rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;text-align:left;width:100%}.widget-toolbox-item:hover{background:#eff6ff;border-color:#3b82f6}.widget-toolbox-item-icon{font-size:1rem}.widget-toolbox-item-label{font-size:.75rem;font-weight:500;color:#1f2937}.widget-toolbox-item-description{font-size:.625rem;color:#6b7280;line-height:1.3}.widget-toolbox-empty{color:#6b7280;font-size:.875rem;text-align:center;padding:1rem}.modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:600px;width:90%;max-height:90vh;display:flex;flex-direction:column}.widget-config-modal{width:500px}.modal-header h2{margin:0;font-size:1.125rem;font-weight:600;color:#1f2937}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:0;line-height:1}.modal-close:hover{color:#1f2937}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.config-field{margin-bottom:1rem}.config-field-label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.25rem}.config-field-label .required{color:#dc2626;margin-left:.25rem}.config-field-input,.config-field-textarea,.config-field-select{width:100%;padding:.5rem .75rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:6px;background:#fff}.config-field-input:focus,.config-field-textarea:focus,.config-field-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.config-field-input.has-error,.config-field-textarea.has-error,.config-field-select.has-error{border-color:#dc2626}.config-field-textarea{resize:vertical;min-height:80px}.config-field-error{display:block;font-size:.75rem;color:#dc2626;margin-top:.25rem}.config-field-checkbox{display:flex;align-items:center}.config-field-label-inline{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151;cursor:pointer}.query-editor{border:1px solid #d1d5db;border-radius:6px;overflow:hidden}.query-editor-header{background:#f3f4f6;padding:.25rem .75rem;border-bottom:1px solid #d1d5db}.query-editor-language{font-size:.75rem;font-weight:500;color:#6b7280}.query-editor-textarea{width:100%;padding:.75rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8125rem;line-height:1.5;border:none;resize:vertical;min-height:120px}.query-editor-textarea:focus{outline:none}.query-editor-textarea:disabled{background:#f9fafb;color:#9ca3af}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease}.btn-primary{background:#3b82f6;color:#fff;border:none}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#f9fafb}@media (max-width: 768px){.dashboard-content{flex-direction:column}.widget-toolbox{width:100%}.widget-toolbox-list{flex-direction:row;flex-wrap:wrap}.widget-toolbox-item{flex:1 1 calc(50% - .5rem);min-width:120px}.widget-config-modal{width:95%}}.color-picker{position:relative;display:flex;flex-direction:column;gap:.375rem}.color-picker-label{font-size:.875rem;font-weight:500;color:#374151}.color-picker-trigger{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;min-width:140px}.color-picker-trigger:hover{border-color:#9ca3af}.color-picker-trigger:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.color-picker-preview{width:20px;height:20px;border-radius:4px;border:1px solid #d1d5db;flex-shrink:0}.color-picker-preview.transparent{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%,transparent 75%,#ccc 75%),linear-gradient(45deg,#ccc 25%,transparent 25%,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,5px 5px}.color-picker-value{flex:1;text-align:left;font-size:.875rem;color:#374151}.color-picker-arrow{font-size:.75rem;color:#6b7280}.color-picker-dropdown{position:absolute;top:100%;left:0;margin-top:4px;padding:.75rem;background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:1000;min-width:220px}.color-picker-section{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.color-picker-grid{display:flex;flex-direction:column;gap:2px}.color-picker-row{display:flex;gap:2px}.color-swatch{width:24px;height:24px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;padding:0;transition:transform .1s ease,box-shadow .1s ease}.color-swatch:hover{transform:scale(1.15);z-index:1;box-shadow:0 2px 4px #0003}.color-swatch.selected{outline:2px solid #3b82f6;outline-offset:1px}.color-swatch.transparent{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%,transparent 75%,#ccc 75%),linear-gradient(45deg,#ccc 25%,transparent 25%,transparent 75%,#ccc 75%);background-size:8px 8px;background-position:0 0,4px 4px;position:relative}.color-swatch.transparent .no-color-line{position:absolute;top:50%;left:-2px;right:-2px;height:2px;background:#ef4444;transform:rotate(-45deg)}.color-picker-custom{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.color-picker-custom-label{font-size:.75rem;color:#6b7280;flex-shrink:0}.color-picker-custom-input{width:32px;height:32px;padding:0;border:1px solid #d1d5db;border-radius:4px;cursor:pointer}.color-picker-custom-input::-webkit-color-swatch-wrapper{padding:2px}.color-picker-custom-input::-webkit-color-swatch{border:none;border-radius:2px}.color-picker-custom-text{flex:1;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.75rem;font-family:monospace}.color-picker-custom-text:focus{outline:none;border-color:#3b82f6}.border-picker{display:flex;flex-direction:column;gap:.375rem}.border-picker-label{font-size:.875rem;font-weight:500;color:#374151}.border-picker-container{display:flex;align-items:center;gap:1rem}.border-picker-visual{display:grid;grid-template-columns:20px 40px 20px;grid-template-rows:20px 40px 20px;gap:2px;align-items:center;justify-items:center}.border-btn{background:#e5e7eb;border:1px solid #d1d5db;cursor:pointer;transition:all .15s ease}.border-btn:hover{background:#d1d5db}.border-btn.active{background:#3b82f6;border-color:#2563eb}.border-btn-top{grid-column:2;grid-row:1;width:36px;height:8px;border-radius:2px}.border-btn-bottom{grid-column:2;grid-row:3;width:36px;height:8px;border-radius:2px}.border-btn-left{grid-column:1;grid-row:2;width:8px;height:36px;border-radius:2px}.border-btn-right{grid-column:3;grid-row:2;width:8px;height:36px;border-radius:2px}.border-preview{grid-column:2;grid-row:2;width:36px;height:36px;background:#f9fafb;border-style:solid;border-color:#374151;transition:border-width .15s ease}.border-toggle-all{padding:.375rem .75rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;font-size:.75rem;color:#374151;cursor:pointer;transition:all .15s ease}.border-toggle-all:hover{background:#e5e7eb}.timeseries-widget{display:flex;flex-direction:column;height:100%;padding:.5rem}.timeseries-widget-chart{flex:1;min-height:0}.timeseries-widget-title{text-align:center;font-size:.875rem;font-weight:500;color:#374151;padding:.5rem 0 .25rem}.scalar-widget{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;container-type:inline-size}.scalar-widget--card .scalar-value{font-size:clamp(1.25rem,8cqw,2.5rem);font-weight:600;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scalar-widget--gauge .scalar-gauge{display:flex;align-items:center;justify-content:center;width:100px;height:100px;border-radius:50%;border:6px solid currentColor}.scalar-widget--gauge .scalar-gauge-value{font-size:1.25rem;font-weight:600}.scalar-title{font-size:.875rem;color:#6b7280;margin-top:.5rem;text-align:center}.scalar-widget--default{color:#3b82f6}.scalar-widget--success{color:#22c55e}.scalar-widget--warning{color:#f59e0b}.scalar-widget--error{color:#ef4444}.table-widget{display:flex;flex-direction:column;height:100%;overflow:hidden}.table-widget-title{text-align:center;font-size:.875rem;font-weight:500;color:#374151;padding:.5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb}.table-widget-scroll{flex:1;overflow:auto}.table-widget-table{width:100%;border-collapse:collapse;font-size:.875rem}.table-widget-table th,.table-widget-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e5e7eb;white-space:nowrap}.table-widget-table th{position:sticky;top:0;background-color:#f9fafb;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb}.table-widget-table tbody tr:hover{background-color:#f3f4f6}.table-widget-table td{color:#1f2937}.table-widget-truncated{padding:.5rem;text-align:center;font-size:.75rem;color:#6b7280;background-color:#f9fafb;border-top:1px solid #e5e7eb}.burnup-widget{display:flex;flex-direction:column;height:100%;padding:.5rem}.burnup-widget-chart{flex:1;min-height:0}.burnup-widget-title{text-align:center;font-size:.875rem;font-weight:500;color:#374151;padding:.5rem 0 .25rem}.custom-widget{display:flex;flex-direction:column;height:100%;overflow:hidden}.custom-widget-title{text-align:center;font-size:.875rem;font-weight:500;color:#374151;padding:.5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb}.custom-widget-content{flex:1;overflow:auto;padding:.5rem}.custom-widget-data,.custom-widget-config{margin:0;font-size:.75rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;white-space:pre-wrap;word-break:break-word;color:#374151}.label-widget{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:.75rem 1rem;box-sizing:border-box;overflow:auto;border-radius:4px}.label-content{width:100%;word-wrap:break-word;overflow-wrap:break-word;line-height:1.4;color:inherit!important}.label-content h1,.label-content h2,.label-content h3,.label-content h4,.label-content h5,.label-content h6,.label-content p,.label-content li,.label-content blockquote{color:inherit!important}.label-content>*:first-child{margin-top:0}.label-content>*:last-child{margin-bottom:0}.label-content h1{font-size:2rem;font-weight:700;margin:0 0 .5rem;line-height:1.2}.label-content h2{font-size:1.5rem;font-weight:600;margin:0 0 .5rem;line-height:1.25}.label-content h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;line-height:1.3}.label-content h4{font-size:1.1rem;font-weight:600;margin:0 0 .5rem;line-height:1.35}.label-content h5{font-size:1rem;font-weight:600;margin:0 0 .5rem;line-height:1.4}.label-content h6{font-size:.875rem;font-weight:600;margin:0 0 .5rem;line-height:1.4}.label-content p{margin:0 0 .75rem}.label-content strong{font-weight:700}.label-content em{font-style:italic}.label-content ul,.label-content ol{margin:0 0 .75rem;padding-left:1.5rem}.label-content li{margin-bottom:.25rem}.label-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;background:#7f7f7f26;padding:.1rem .3rem;border-radius:3px}.label-content pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;background:#7f7f7f26;padding:.75rem 1rem;border-radius:4px;overflow-x:auto;margin:0 0 .75rem}.label-content pre code{background:none;padding:0}.label-content blockquote{margin:0 0 .75rem;padding-left:1rem;border-left:3px solid currentColor;opacity:.8}.label-content hr{border:none;border-top:1px solid currentColor;opacity:.3;margin:1rem 0}.label-content a{color:inherit;text-decoration:underline}.label-content a:hover{opacity:.8}.widget-container:has(.label-widget) .widget-body{padding:0}.project-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s ease}.project-card:hover{box-shadow:0 4px 12px #0000001a}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.project-card-title{margin:0;font-size:16px;font-weight:600}.project-card-title a{color:#1f2937;text-decoration:none}.project-card-title a:hover{color:#3b82f6}.project-status{font-size:12px;padding:2px 8px;border-radius:12px;font-weight:500}.project-status.active{background:#dcfce7;color:#166534}.project-status.inactive{background:#f3f4f6;color:#6b7280}.project-card-chart{height:80px;background:#f9fafb;border-radius:4px;display:flex;align-items:center;justify-content:center}.project-card-chart .no-data{color:#9ca3af;font-size:12px}.project-card-metrics{display:flex;justify-content:space-around;padding:8px 0;border-top:1px solid #f3f4f6}.metric{text-align:center}.metric-value{font-size:18px;font-weight:600;color:#1f2937}.metric-label{font-size:12px;color:#6b7280}.project-card-footer{border-top:1px solid #f3f4f6;padding-top:12px}.view-details-link{color:#3b82f6;text-decoration:none;font-size:14px;font-weight:500}.view-details-link:hover{text-decoration:underline}.metric-card{background:#fff;border-radius:8px;padding:20px;text-align:center;border:1px solid #e5e7eb;border-left-width:4px}.metric-card--orange{border-left-color:#f97316}.metric-card--purple{border-left-color:#a855f7}.metric-card--blue{border-left-color:#3b82f6}.metric-card--green{border-left-color:#22c55e}.metric-card--teal{border-left-color:#14b8a6}.metric-card-value{font-size:32px;font-weight:700;color:#1f2937;margin-bottom:4px}.metric-card-label{font-size:14px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.metric-card-caption{font-size:12px;color:#9ca3af;margin-top:4px}.snapshots-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.snapshots-table{width:100%;border-collapse:collapse}.snapshots-table th,.snapshots-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.snapshots-table th{background:#f9fafb;font-weight:600;font-size:12px;text-transform:uppercase;color:#6b7280;letter-spacing:.5px}.snapshots-table td{font-size:14px;color:#374151}.snapshots-table th.numeric,.snapshots-table td.numeric{text-align:right}.snapshots-table tbody tr:hover{background:#f9fafb}.snapshots-table tbody tr:last-child td{border-bottom:none}.view-link{color:#3b82f6;text-decoration:none;font-weight:500}.view-link:hover{text-decoration:underline}.no-snapshots{padding:32px;text-align:center;color:#6b7280}.status-badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:12px;font-weight:500}.status-badge--green{background:#dcfce7;color:#166534}.status-badge--blue{background:#dbeafe;color:#1e40af}.status-badge--gray{background:#f3f4f6;color:#6b7280}.tasks-table-container{overflow-x:auto}.tasks-table{width:100%;border-collapse:collapse;font-size:14px}.tasks-table th,.tasks-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.tasks-table th{background:#f9fafb;font-weight:600;color:#374151;white-space:nowrap}.tasks-table th.numeric,.tasks-table td.numeric{text-align:right}.tasks-table tbody tr:hover{background:#f9fafb}.task-link{color:#2563eb;text-decoration:none}.task-link:hover{text-decoration:underline}.tasks-table-empty{padding:32px;text-align:center;color:#6b7280}.folder-tree{max-height:400px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px;background:#fafafa}.folder-tree-empty{padding:24px;text-align:center;color:#6b7280}.folder-node{-webkit-user-select:none;user-select:none}.folder-item{display:flex;align-items:center;gap:4px;padding:8px;cursor:pointer;border-bottom:1px solid #f3f4f6}.folder-item:hover{background:#f3f4f6}.folder-item--selected{background:#dbeafe;border-color:#93c5fd}.folder-item--selected:hover{background:#bfdbfe}.folder-item--dimmed{opacity:.6}.folder-toggle{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;font-size:10px;color:#6b7280;padding:0;flex-shrink:0}.folder-toggle:hover{color:#374151}.folder-toggle-placeholder{width:20px;flex-shrink:0}.folder-icon{flex-shrink:0;font-size:14px}.folder-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.folder-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.folder-picker-modal{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.folder-picker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb}.folder-picker-header h2{margin:0;font-size:18px;font-weight:600}.folder-picker-close{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;line-height:1}.folder-picker-close:hover{color:#374151}.folder-picker-search{padding:16px 20px;border-bottom:1px solid #e5e7eb}.folder-picker-input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.folder-picker-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.folder-picker-content{flex:1;overflow:hidden;padding:16px 20px}.folder-picker-loading,.folder-picker-searching,.folder-picker-error{padding:24px;text-align:center;color:#6b7280}.folder-picker-error{color:#dc2626}.folder-picker-selection{padding:12px 20px;background:#f0fdf4;border-top:1px solid #bbf7d0;font-size:14px;color:#166534}.folder-picker-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #e5e7eb}.btn{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none}.btn-primary:disabled{background:#93c5fd;cursor:not-allowed}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.access-denied-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;padding:1rem}.access-denied-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:2rem;max-width:480px;text-align:center}.access-denied-card h1{color:#dc2626;margin-bottom:1rem;font-size:1.75rem}.access-denied-card p{color:#4b5563;margin-bottom:1rem;line-height:1.6}.sign-out-button{background-color:#2563eb;color:#fff;border:none;border-radius:6px;padding:.75rem 1.5rem;font-size:1rem;cursor:pointer;transition:background-color .2s;margin-top:1rem}.sign-out-button:hover{background-color:#1d4ed8}.dashboard-page{max-width:1400px;margin:0 auto}.dashboard-header{margin-bottom:32px}.dashboard-header h1{margin:0 0 8px;font-size:28px;font-weight:600;color:#1f2937}.dashboard-subtitle{margin:0;color:#6b7280;font-size:16px}.dashboard-section{margin-bottom:32px}.dashboard-section h2{margin:0 0 16px;font-size:18px;font-weight:600;color:#374151}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.loading,.error,.empty-state{text-align:center;padding:48px 24px;color:#6b7280}.empty-state{background:#f9fafb;border-radius:8px}.management-page h1{margin:0}.management-page>p{color:#6b7280;margin:.5rem 0 2rem}.management-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.management-card{display:block;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;text-decoration:none;color:inherit;transition:all .2s;border:2px solid transparent}.management-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px)}.management-icon{font-size:2rem;display:block;margin-bottom:.75rem}.management-card h2{margin:0 0 .5rem;font-size:1.125rem;color:#111827}.management-card p{margin:0;font-size:.875rem;color:#6b7280;line-height:1.5}.telemetry-card{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;min-height:100px}.telemetry-card--default{border-left:4px solid #3b82f6}.telemetry-card--success{border-left:4px solid #22c55e}.telemetry-card--warning{border-left:4px solid #f59e0b}.telemetry-card--error{border-left:4px solid #ef4444}.telemetry-card__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.telemetry-card__icon{font-size:1.25rem}.telemetry-card__name{font-size:.875rem;color:#6b7280;font-weight:500}.telemetry-card__value{font-size:2rem;font-weight:600;color:#1f2937}.telemetry-card__loading,.telemetry-card__error{display:flex;align-items:center;justify-content:center;height:100%;color:#6b7280;font-size:.875rem}.telemetry-card__error{color:#ef4444}.errors-table{overflow-x:auto}.errors-table table{width:100%;border-collapse:collapse}.errors-table th,.errors-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.errors-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:.875rem}.errors-table td{font-size:.875rem;color:#4b5563}.errors-table tbody tr:hover{background:#f9fafb}.errors-table__status-code{display:inline-block;padding:.25rem .5rem;background:#fee2e2;color:#dc2626;border-radius:4px;font-weight:500;font-family:monospace}.errors-table__endpoint{font-family:monospace;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.errors-table__count{font-weight:600;color:#1f2937}.errors-table__loading,.errors-table__error,.errors-table__empty{padding:2rem;text-align:center;color:#6b7280}.errors-table__error{color:#dc2626}.checkbox-dropdown{position:relative;min-width:140px}.checkbox-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer;text-align:left}.checkbox-dropdown-trigger:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.checkbox-dropdown.is-open .checkbox-dropdown-trigger{border-color:#3b82f6}.checkbox-dropdown.is-disabled .checkbox-dropdown-trigger{background:#f1f5f9;cursor:not-allowed}.checkbox-dropdown-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1e293b}.checkbox-dropdown-arrow{margin-left:.5rem;font-size:.75rem;color:#64748b;transition:transform .15s ease}.checkbox-dropdown.is-open .checkbox-dropdown-arrow{transform:rotate(180deg)}.checkbox-dropdown-menu{position:absolute;top:100%;left:0;min-width:280px;margin-top:4px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:100;max-height:280px;display:flex;flex-direction:column}.checkbox-dropdown-actions{display:flex;gap:.5rem;padding:.5rem;border-bottom:1px solid #e2e8f0}.checkbox-dropdown-action{padding:.25rem .5rem;border:none;background:none;font-size:.75rem;color:#3b82f6;cursor:pointer}.checkbox-dropdown-action:hover{text-decoration:underline}.checkbox-dropdown-options{overflow-y:auto;padding:.25rem 0}.checkbox-dropdown-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.875rem;color:#1e293b}.checkbox-dropdown-option:hover{background:#f8fafc}.checkbox-dropdown-option input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.checkbox-dropdown-option span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.telemetry-filters{display:flex;flex-wrap:wrap;gap:.75rem;padding:.5rem .75rem;background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;margin-bottom:.75rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.375rem}.filter-group>label{font-size:.75rem;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.filter-group>input,.filter-group>select{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;min-width:140px;background:#fff}.filter-group>input[type=datetime-local]{min-width:180px}.filter-group>input:focus,.filter-group>select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filter-group>input:disabled,.filter-group>select:disabled{background:#f1f5f9;cursor:not-allowed}.filter-presets .preset-buttons{display:flex;gap:.25rem}.filter-presets button{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;color:#334155;font-size:.75rem;cursor:pointer;transition:all .15s ease}.filter-presets button:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.filter-presets button:disabled{cursor:not-allowed;opacity:.5}@media (max-width: 768px){.telemetry-filters{flex-direction:column;align-items:stretch}.filter-group,.filter-group input,.filter-group select{width:100%}}.monitoring-page{padding:.75rem;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}.monitoring-header{margin-bottom:.75rem}.monitoring-header h1{margin:0 0 .5rem;color:#1a1a1a}.monitoring-subtitle{color:#666;margin:0}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:.5rem}.breadcrumb a{color:#646cff;text-decoration:none}.breadcrumb-separator{color:#999}.monitoring-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.monitoring-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem}.monitoring-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.monitoring-section h2{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a}.chart-container{min-height:300px;display:flex;align-items:center;justify-content:center}.chart-container .loading,.chart-container .error,.chart-container .empty-state{text-align:center;padding:2rem;color:#666}.chart-container .error{color:#dc2626}@media (max-width: 768px){.monitoring-page{padding:.5rem}.monitoring-cards{grid-template-columns:repeat(2,1fr)}.monitoring-charts{grid-template-columns:1fr}}@media (max-width: 480px){.monitoring-cards{grid-template-columns:1fr}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#1a1a2e}.login-container{background-color:#fff;padding:2.5rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.login-container h1{color:#1a1a2e;font-size:1.5rem;margin-bottom:.5rem;text-align:center}.login-container h2{color:#666;font-size:1rem;font-weight:400;margin-bottom:1.5rem;text-align:center}.form-group label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:#333}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#646cff}.login-button{width:100%;padding:.75rem;margin-top:.5rem;font-size:1rem}.error-message{background-color:#fee;border:1px solid #fcc;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.875rem}.login-container p{text-align:center;color:#666;margin-bottom:1rem}.spinner{width:40px;height:40px;margin:0 auto;border:4px solid #f3f3f3;border-top:4px solid #646cff;border-radius:50%;animation:spin 1s linear infinite}.callback-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5}.callback-container{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.callback-container.error{border-left:4px solid #dc3545}.callback-container.error h2{color:#dc3545;margin-bottom:1rem}.callback-container.error button{margin-top:1rem;padding:.5rem 1rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.callback-container.error button:hover{background-color:#0056b3}.spinner{width:40px;height:40px;margin:0 auto 1rem;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-details-page{max-width:1200px;margin:0 auto}.page-header{margin-bottom:32px}.breadcrumb{font-size:14px;color:#6b7280;margin-bottom:12px}.breadcrumb a{color:#3b82f6;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .separator{margin:0 8px;color:#d1d5db}.page-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.page-title-section{display:flex;align-items:center;gap:12px}.page-title-section h1{margin:0;font-size:28px;font-weight:600;color:#1f2937}.status-badge{font-size:12px;padding:4px 12px;border-radius:12px;font-weight:500}.collect-button{background:#3b82f6;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease}.collect-button:hover:not(:disabled){background:#2563eb}.collect-button:disabled{background:#9ca3af;cursor:not-allowed}.metrics-section{margin-bottom:32px}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width: 900px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.metrics-grid{grid-template-columns:1fr}}.chart-section,.snapshots-section{margin-bottom:32px}.chart-section h2,.snapshots-section h2{margin:0 0 16px;font-size:18px;font-weight:600;color:#374151}.chart-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:24px}.no-data{background:#f9fafb;border-radius:8px;padding:48px;text-align:center;color:#6b7280}.back-link{color:#3b82f6;text-decoration:none}.task-snapshot-page{padding:24px;max-width:1400px;margin:0 auto}.task-snapshot-page .page-header{margin-bottom:24px}.task-snapshot-page .header-content h1{margin:8px 0 4px;font-size:24px;font-weight:600;color:#111827}.task-snapshot-page .snapshot-date{margin:0;color:#6b7280;font-size:14px}.task-snapshot-page .back-link{color:#2563eb;text-decoration:none;font-size:14px}.task-snapshot-page .back-link:hover{text-decoration:underline}.task-snapshot-page .metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:32px}.task-snapshot-page .tasks-section{background:#fff;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden}.task-snapshot-page .tasks-section h2{margin:0;padding:16px 20px;font-size:16px;font-weight:600;border-bottom:1px solid #e5e7eb}.task-snapshot-page .loading,.task-snapshot-page .error{padding:48px;text-align:center;color:#6b7280}.wrike-projects-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.wrike-projects-page .back-link{display:inline-block;color:#6b7280;text-decoration:none;font-size:.875rem;margin-bottom:.5rem}.wrike-projects-page .back-link:hover{color:#3b82f6}.wrike-projects-page h1{margin:0}.wrike-projects-page p{color:#6b7280;margin:.5rem 0 0}.projects-table-container{overflow-x:auto}.projects-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.projects-table th,.projects-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.projects-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:.875rem}.projects-table tr:last-child td{border-bottom:none}.projects-table tr.inactive{opacity:.6}.projects-table tr:hover{background:#f9fafb}.project-link{color:#3b82f6;text-decoration:none;font-weight:500}.project-link:hover{text-decoration:underline}.folder-id{font-family:monospace;font-size:.875rem;color:#6b7280}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.inactive{background:#f3f4f6;color:#6b7280}.modal-body{padding:1.5rem}.form-input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.folder-select{display:flex;gap:.5rem}.folder-select .form-input{flex:1;background:#f9fafb;cursor:pointer}.management-detail-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.management-detail-page .back-link{display:inline-block;color:#6b7280;text-decoration:none;font-size:.875rem;margin-bottom:.5rem}.management-detail-page .back-link:hover{color:#3b82f6}.management-detail-page h1{margin:0}.management-detail-page .page-header p{color:#6b7280;margin:.5rem 0 0}.filter-bar{display:flex;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-size:.875rem;font-weight:500;color:#374151;white-space:nowrap}.filter-select{padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff;min-width:180px}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.empty-state{text-align:center;padding:3rem;background:#f9fafb;border-radius:8px;border:2px dashed #e5e7eb}.empty-state p{margin-bottom:1rem;color:#6b7280}.table-container{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.data-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:.875rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:#f9fafb}.name-cell{font-weight:500}.truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate a{color:#3b82f6;text-decoration:none}.truncate a:hover{text-decoration:underline}.empty-value{color:#9ca3af}.actions{white-space:nowrap}.actions .btn{margin-right:.5rem}.actions .btn:last-child{margin-right:0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#e5e7eb;color:#374151}.btn-secondary:hover:not(:disabled){background:#d1d5db}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;width:100%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.modal-wide{max-width:600px}.modal-confirm{max-width:400px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:#374151}.modal-body{padding:1.5rem;max-height:60vh;overflow-y:auto}.modal-body .warning{color:#dc2626;font-weight:500;margin-top:.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.form-group.checkbox label{display:flex;align-items:center;gap:.5rem;font-weight:400}.form-input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;box-sizing:border-box}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.loading,.error{padding:2rem;text-align:center;color:#6b7280}.error{color:#dc2626}.checkbox-list{max-height:200px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px;padding:.5rem;background:#f9fafb}.checkbox-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;border-radius:4px;font-weight:400}.checkbox-item:hover{background:#e5e7eb}.checkbox-item input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.checkbox-item span{flex:1}.association-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:4px}.association-item:hover{background:#e5e7eb}.association-item .primary-toggle{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#6b7280}.association-item .primary-toggle input[type=checkbox]{width:.875rem;height:.875rem}.association-item .primary-badge{font-size:.6875rem;background:#3b82f6;color:#fff;padding:.125rem .375rem;border-radius:4px;font-weight:500}.user-detail-page{max-width:800px}.user-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.user-avatar{width:80px;height:80px;border-radius:50%;background:var(--primary-color, #3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:600;text-transform:uppercase}.user-info h1{margin:0 0 .25rem}.user-email{color:var(--text-secondary, #666);margin:0}.user-details h2{font-size:1.25rem;margin-bottom:1rem}.details-list{display:grid;grid-template-columns:180px 1fr;gap:.75rem 1rem;margin:0}.details-list dt{font-weight:500;color:var(--text-secondary, #666)}.details-list dd{margin:0}.monospace{font-family:ui-monospace,monospace;font-size:.9em}.empty-value{color:var(--text-muted, #999);font-style:italic}.back-link{display:inline-block;margin-bottom:1rem;color:var(--primary-color, #3b82f6);text-decoration:none}.back-link:hover{text-decoration:underline}
