body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@layer rdg{@layer Defaults,
    FocusSink,
    CheckboxInput,
    CheckboxIcon,
    CheckboxLabel,
    Cell,
    HeaderCell,
    SummaryCell,
    EditCell,
    Row,
    HeaderRow,
    SummaryRow,
    GroupedRow,
    Root}.cj343x07-0-0-beta-44,.mlln6zg7-0-0-beta-44{@layer rdg.Cell{-webkit-border-end:1px solid var(--rdg-border-color);-webkit-border-after:1px solid var(--rdg-border-color);background-color:inherit;border-block-end:1px solid var(--rdg-border-color);border-inline-end:1px solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);outline:none;overflow:clip;padding-block:0;padding-inline:8px;position:relative;text-overflow:ellipsis;white-space:nowrap;&[aria-selected=true]{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}}.csofj7r7-0-0-beta-44{@layer rdg.Cell{position:-webkit-sticky;position:sticky;z-index:1;&:nth-last-child(1 of &){box-shadow:var(--rdg-cell-frozen-box-shadow)}}}.c1bn88vv7-0-0-beta-44,.c1qt073l7-0-0-beta-44,.cf71kmq7-0-0-beta-44{@layer rdg.CheckboxIcon{background-color:var(--rdg-background-color);block-size:20px;border-bottom-color:var(--rdg-border-color);border-bottom-style:solid;border-bottom-width:2px;border-left-color:var(--rdg-border-color);border-left-style:solid;border-left-width:2px;border-right-color:var(--rdg-border-color);border-right-style:solid;border-right-width:2px;border-top-color:var(--rdg-border-color);border-top-style:solid;border-top-width:2px;content:"";inline-size:20px;.c1qt073l7-0-0-beta-44:checked+&{background-color:var(--rdg-checkbox-color);outline:4px solid var(--rdg-background-color);outline-offset:-6px}.c1qt073l7-0-0-beta-44:focus+&{border-color:var(--rdg-checkbox-focus-color)}}}.c1lwve4p7-0-0-beta-44{@layer rdg.CheckboxLabel{cursor:default;.cf71kmq7-0-0-beta-44{background-color:var(--rdg-checkbox-disabled-background-color);border-color:var(--rdg-checkbox-disabled-border-color)}}}.cz54e4y7-0-0-beta-44,.g1s9ylgp7-0-0-beta-44{@layer rdg.GroupCellCaret{-webkit-margin-start:4px;stroke:currentColor;stroke-width:1.5px;fill:#0000;margin-inline-start:4px;vertical-align:middle;>path{transition:d .1s}}}.c1w9bbhr7-0-0-beta-44{@layer rdg.DragHandle{--rdg-drag-handle-size:8px;background-color:var(--rdg-selection-color);block-size:var(--rdg-drag-handle-size);cursor:move;inline-size:var(--rdg-drag-handle-size);place-self:end;z-index:0;&:hover{--rdg-drag-handle-size:16px;background-color:var(--rdg-background-color);border:2px solid var(--rdg-selection-color)}}}.c1creorc7-0-0-beta-44,.c1kqdw7y7-0-0-beta-44,.c6l2wv17-0-0-beta-44,.cis5rrm7-0-0-beta-44,.h44jtk67-0-0-beta-44,.hcgkhxz7-0-0-beta-44,.r1y6ywlx7-0-0-beta-44{@layer rdg.HeaderCell{cursor:col-resize;inline-size:10px;inset-block-end:0;inset-block-start:0;inset-inline-end:0;position:absolute}}.c1bezg5o7-0-0-beta-44{opacity:.5}.c1vc96037-0-0-beta-44{background-color:var(--rdg-header-draggable-background-color)}.r1upfr807-0-0-beta-44{@layer rdg.Row{background-color:var(--rdg-background-color);display:contents;line-height:var(--rdg-row-height);&:hover{background-color:var(--rdg-row-hover-background-color)}&[aria-selected=true]{background-color:var(--rdg-row-selected-background-color);&:hover{background-color:var(--rdg-row-selected-hover-background-color)}}}}.r139qu9m7-0-0-beta-44,.r190mhd37-0-0-beta-44{@layer rdg.FocusSink{&:before{-webkit-border-start:2px solid var(--rdg-selection-color);border-inline-start:2px solid var(--rdg-selection-color);content:"";display:inline-block;height:100%;inset-inline-start:0;position:-webkit-sticky;position:sticky}}}.h10tskcx7-0-0-beta-44{@layer rdg.HeaderRow{background-color:var(--rdg-header-background-color);display:contents;font-weight:700;line-height:var(--rdg-header-row-height);&>.cj343x07-0-0-beta-44{position:-webkit-sticky;position:sticky;z-index:2}&>.csofj7r7-0-0-beta-44{z-index:3}}}.c6ra8a37-0-0-beta-44,.cq910m07-0-0-beta-44{@layer rdg.Cell{background-color:#ccf;&.c6ra8a37-0-0-beta-44{background-color:#99f}}}.a3ejtar7-0-0-beta-44{@layer rdg.SortIcon{fill:currentColor;>path{transition:d .1s}}}.rnvodz57-0-0-beta-44{@layer rdg.Defaults{*,:after,:before{box-sizing:inherit}}@layer rdg.Root{--rdg-color:#000;--rdg-border-color:#ddd;--rdg-summary-border-color:#aaa;--rdg-background-color:#fff;--rdg-header-background-color:#f9f9f9;--rdg-header-draggable-background-color:#e7e7e7;--rdg-row-hover-background-color:#f5f5f5;--rdg-row-selected-background-color:#dbecfa;--rdg-row-selected-hover-background-color:#c9e3f8;--rdg-checkbox-color:#005194;--rdg-checkbox-focus-color:#61b8ff;--rdg-checkbox-disabled-border-color:#ccc;--rdg-checkbox-disabled-background-color:#ddd;--rdg-selection-color:#66afe9;--rdg-font-size:14px;--rdg-cell-frozen-box-shadow:calc(2px*var(--rdg-sign)) 0 5px -2px #8888884d;background-color:var(--rdg-background-color);block-size:350px;border-bottom-color:var(--rdg-border-color);border-bottom-style:solid;border-bottom-width:1px;border-left-color:var(--rdg-border-color);border-left-style:solid;border-left-width:1px;border-right-color:var(--rdg-border-color);border-right-style:solid;border-right-width:1px;border-top-color:var(--rdg-border-color);border-top-style:solid;border-top-width:1px;box-sizing:border-box;color:var(--rdg-color);color-scheme:light dark;color-scheme:var(--rdg-color-scheme,light dark);contain:content;content-visibility:auto;display:grid;font-size:var(--rdg-font-size);overflow:auto;&:before{content:"";grid-column:1/-1;grid-row:1/-1}&.rdg-dark{--rdg-color-scheme:dark;--rdg-color:#ddd;--rdg-border-color:#444;--rdg-summary-border-color:#555;--rdg-background-color:#212121;--rdg-header-background-color:#1b1b1b;--rdg-header-draggable-background-color:#2d2d2d;--rdg-row-hover-background-color:#171717;--rdg-row-selected-background-color:#1a73bc;--rdg-row-selected-hover-background-color:#1768ab;--rdg-checkbox-color:#94cfff;--rdg-checkbox-focus-color:#c7e6ff;--rdg-checkbox-disabled-border-color:#000;--rdg-checkbox-disabled-background-color:#333}&.rdg-light{--rdg-color-scheme:light}@media (prefers-color-scheme:dark){&:not(.rdg-light){--rdg-color:#ddd;--rdg-border-color:#444;--rdg-summary-border-color:#555;--rdg-background-color:#212121;--rdg-header-background-color:#1b1b1b;--rdg-header-draggable-background-color:#2d2d2d;--rdg-row-hover-background-color:#171717;--rdg-row-selected-background-color:#1a73bc;--rdg-row-selected-hover-background-color:#1768ab;--rdg-checkbox-color:#94cfff;--rdg-checkbox-focus-color:#c7e6ff;--rdg-checkbox-disabled-border-color:#000;--rdg-checkbox-disabled-background-color:#333}}>:nth-last-child(1 of .rdg-top-summary-row){>.cj343x07-0-0-beta-44{-webkit-border-after:2px solid var(--rdg-summary-border-color);border-block-end:2px solid var(--rdg-summary-border-color)}}>:nth-child(1 of .rdg-bottom-summary-row){>.cj343x07-0-0-beta-44{-webkit-border-before:2px solid var(--rdg-summary-border-color);border-block-start:2px solid var(--rdg-summary-border-color)}}}}.vlqv91k7-0-0-beta-44{@layer rdg.Root{-webkit-user-select:none;user-select:none;& .r1upfr807-0-0-beta-44{cursor:move}}}.f1cte0lg7-0-0-beta-44,.f1lsfrzw7-0-0-beta-44,.s8wc6fl7-0-0-beta-44,.skuhp557-0-0-beta-44{@layer rdg.SummaryRow{line-height:var(--rdg-summary-row-height);>.cj343x07-0-0-beta-44{position:-webkit-sticky;position:sticky}}}.tf8l5ub7-0-0-beta-44{@layer rdg.SummaryRow{>.cj343x07-0-0-beta-44{z-index:2}>.csofj7r7-0-0-beta-44{z-index:3}}}.g1yxluv37-0-0-beta-44{@layer rdg.GroupedRow{&:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}>.cj343x07-0-0-beta-44:not(:last-child,.csofj7r7-0-0-beta-44),>:nth-last-child(n+2 of .csofj7r7-0-0-beta-44){-webkit-border-end:none;border-inline-end:none}}}.t7vyx3i7-0-0-beta-44{@layer rdg.TextEditor{-webkit-appearance:none;appearance:none;background-color:var(--rdg-background-color);block-size:100%;border-bottom-color:#ccc;border-bottom-style:solid;border-bottom-width:2px;border-left-color:#ccc;border-left-style:solid;border-left-width:2px;border-right-color:#ccc;border-right-style:solid;border-right-width:2px;border-top-color:#ccc;border-top-style:solid;border-top-width:2px;box-sizing:border-box;color:var(--rdg-color);font-family:inherit;font-size:var(--rdg-font-size);inline-size:100%;padding-block:0;padding-inline:6px;vertical-align:top;&:focus{border-color:var(--rdg-selection-color);outline:none}&::placeholder{color:#999;opacity:1}}}.sensor-grid-container{height:100%;overflow:hidden;width:100%}.sensor-grid,.sensor-grid-container.scroll .sensor-grid{height:calc(100% - 60px)}.sensor-grid .rdg-cell,.sensor-grid .rdg-header-cell{align-items:center!important;display:flex!important;justify-content:center!important;text-align:center!important}.no-result-container{align-items:center;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;display:flex;height:600px;justify-content:center;width:100%}.no-result-content{color:#6c757d;font-size:18px;text-align:center}.no-result-icon{font-size:48px;margin-bottom:10px}.no-result-subtitle{font-size:14px;margin-top:5px}.status-pass{background-color:#f0f8f0;color:green}.status-fail,.status-pass{border-radius:4px;font-weight:700;padding:2px 6px}.status-fail{background-color:#fff0f0;color:red}.pagination-container{align-items:center;background-color:#f8f9fa;border-top:1px solid #dee2e6;display:flex;height:60px;justify-content:space-between;padding:0 16px}.pagination-left{align-items:center;display:flex;gap:10px}.pagination-select{padding:4px 8px}.pagination-info{margin-left:20px}.pagination-right{align-items:center;display:flex;gap:5px}.pagination-container .pagination-button{background-color:#fff!important;border:1px solid #ccc!important;border-radius:4px!important;color:#333!important;cursor:pointer!important;font-size:14px!important;padding:6px 12px!important}.pagination-container .pagination-button:disabled{background-color:#f5f5f5!important;color:#999!important;cursor:not-allowed!important}.pagination-container .pagination-button:hover:not(:disabled){background-color:#e9ecef!important}.pagination-current{margin:0 10px}[data-theme=dark] .no-result-container{background-color:#1a1a1a;border-color:#404040;color:#fff}[data-theme=dark] .no-result-content{color:#fff}[data-theme=dark] .pagination-container{background-color:#2d2d2d;border-top-color:#404040;color:#fff}[data-theme=dark] .pagination-container .pagination-button{background-color:#404040!important;border-color:#666!important;color:#fff!important}[data-theme=dark] .pagination-container .pagination-button:disabled{background-color:#2d2d2d!important;color:#666!important}[data-theme=dark] .pagination-container .pagination-button:hover:not(:disabled){background-color:#555!important}[data-theme=dark] .pagination-select{background-color:#404040;border-color:#666;color:#fff}.container{color:var(--text-color)}.filterContainer{background-color:var(--filter-bg);border-radius:8px;flex-wrap:wrap;gap:5px;justify-content:center;margin-bottom:5px;padding:15px}.filterContainer,.filterLabel{align-items:center;display:flex}.filterLabel{color:var(--text-color);font-size:14px}.filterInput,.filterSelect{border:1px solid #ccc;border-radius:4px;font-size:14px;margin-left:5px;padding:5px}.button{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.buttonPrimary{background-color:var(--primary-color)}.buttonSecondary{background-color:#6c757d}.buttonSuccess{background-color:var(--success)}.buttonDisabled{cursor:not-allowed;opacity:.6}.statusSummary{color:var(--text-color);margin-bottom:15px;text-align:center}.statusSummary span{margin-right:20px}.statusPass{color:var(--success)}.statusFail{color:var(--danger)}.tableScrollWrapper{border:1px solid #ccc;height:calc(100vh - 200px);width:calc(100% - 30px)}.monitoring-container{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;margin:0;max-width:100%;overflow:hidden;padding:0 5px}.monitoring-header{background-color:#f8f9fa;border-radius:8px;flex-shrink:0;height:60px;margin-bottom:5px;padding:15px}.header-left{display:flex;flex-direction:column;gap:4px}.header-left h2{color:#2c3e50;font-size:1.1em;font-weight:700;margin:0}.last-update{color:#34495e;font-size:.85em;font-weight:500}.header-controls{align-items:center;display:flex;gap:15px;height:100%}.page-info{background-color:#ecf0f1;border-radius:15px;font-size:.9em;padding:5px 10px}.control-buttons{align-items:center;gap:8px}.nav-button{background-color:#6c7b8a;border:none;border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:600;height:35px;transition:all .2s ease;width:35px}.nav-button:hover{background-color:#5a6b7a;transform:scale(1.05)}.interval-setting{gap:4px}.interval-input{border:1px solid #ccc;border-radius:4px;font-size:12px;padding:4px 6px;width:50px}.auto-button,.interval-label{font-size:12px}.auto-button{background-color:#6c7b8a;border:none;border-radius:16px;color:#fff;font-weight:600;padding:6px 12px;transition:all .2s ease}.auto-button.active{background-color:#5a8a6c}.auto-button:hover{background-color:#5a6b7a}.fullscreen-button{background-color:#27ae60;border:none;border-radius:16px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;margin-right:8px;padding:6px 12px;transition:all .2s ease}.fullscreen-button:hover{background-color:#229954}.refresh-button{background-color:#6c7b8a;border:none;border-radius:16px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s ease}.refresh-button:hover{background-color:#5a6b7a}.refresh-button:disabled{opacity:.6}.monitoring-groups{height:calc(100vh - 100px);overflow:hidden}.monitoring-groups.page-2{grid-template-columns:1fr 2fr!important}.monitoring-groups.page-3{grid-template-columns:1fr 1fr 1fr}.monitoring-groups.page-4{grid-template-columns:2fr 1fr!important}.monitoring-groups.page-5{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr}.monitoring-groups:has(.group-8){grid-template-columns:1fr;grid-template-rows:repeat(2,1fr)}.monitoring-groups:has(.group-4){grid-template-columns:1fr 1fr;grid-template-rows:1fr}.monitoring-groups:has(.group-1):not(:has(.group-3,.group-4,.group-6,.group-8)){grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-template-rows:repeat(auto-fit,1fr)}.monitoring-group{background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 1px 2px #0000000d;padding:8px}.group-1,.group-3,.group-4,.group-6,.group-8{grid-column:span 1;grid-row:span 1}.group-header{border-bottom:1px solid #007bff;gap:6px;margin-bottom:6px;padding-bottom:4px}.group-header h3{color:#007bff;font-size:1.4em;font-weight:600}.group-count{background-color:#f5f5f5;border-radius:12px;font-size:1em;padding:3px 8px}.monitoring-grid{grid-gap:12px;align-content:stretch;gap:12px;height:100%;overflow:hidden;padding:8px}.grid-8{grid-template-columns:repeat(8,1fr);grid-template-rows:1fr}.monitoring-box{border:1px solid #ccc;border-radius:6px;margin:2px;min-height:60px;padding:8px}.monitoring-box.no-data{background-color:#ccc;color:#666}.monitoring-box.abnormal,.monitoring-box.high-temp,.monitoring-box.low-temp,.monitoring-box.normal{color:#fff}.monitoring-machine{color:#2c3e50;font-size:16px;font-weight:700;margin-bottom:6px;text-shadow:0 1px 1px #0000001a}.monitoring-temp{color:#2c3e50;font-size:28px;font-weight:800;line-height:1;margin-bottom:6px;text-shadow:0 1px 2px #00000026}.monitoring-range{color:#34495e;font-size:14px;font-weight:600;text-shadow:0 1px 1px #0000001a}.monitoring-legend{align-items:center;background-color:var(--background-color);font-size:14px;gap:15px;height:20px;margin:0;padding:3px 0}@media (max-width:768px){.monitoring-container{padding:0 2px}.monitoring-groups{grid-template-columns:1fr!important;grid-template-rows:1fr!important;height:calc(100vh - 160px)}.monitoring-group{grid-column:span 1!important;grid-row:span 1!important;padding:4px}.monitoring-grid{gap:2px;grid-template-columns:repeat(auto-fit,minmax(35px,1fr))!important}.monitoring-legend{flex-wrap:wrap;font-size:11px;gap:6px}}[data-theme=dark] .monitoring-header{background-color:#2d2d2d;color:#fff}[data-theme=dark] .page-info{background-color:#34495e;color:#ecf0f1}[data-theme=dark] .header-left h2{color:#ecf0f1}[data-theme=dark] .last-update{color:#bdc3c7}[data-theme=dark] .nav-button{background-color:#4a5a6a}[data-theme=dark] .nav-button:hover{background-color:#3a4a5a}[data-theme=dark] .interval-input{background-color:#2d2d2d;border-color:#555;color:#fff}[data-theme=dark] .interval-label{color:#bdc3c7}[data-theme=dark] .auto-button{background-color:#4a5a6a}[data-theme=dark] .auto-button.active{background-color:#3a6a4a}[data-theme=dark] .auto-button:hover{background-color:#3a4a5a}[data-theme=dark] .refresh-button{background-color:#4a5a6a}[data-theme=dark] .refresh-button:hover{background-color:#3a4a5a}[data-theme=dark] .monitoring-group{background-color:#2d2d2d;border-color:#404040;box-shadow:0 1px 2px #0003}[data-theme=dark] .monitoring-box{background-color:#1a1a1a!important;border-color:#555}[data-theme=dark] .monitoring-box.no-data{background-color:#333!important}[data-theme=dark] .monitoring-machine{color:#ecf0f1;text-shadow:0 1px 1px #0000004d}[data-theme=dark] .monitoring-temp{color:#ecf0f1;text-shadow:0 1px 2px #0006}[data-theme=dark] .monitoring-range{color:#bdc3c7;text-shadow:0 1px 1px #0000004d}[data-theme=dark] .group-header h3{color:#4b8bd4}[data-theme=dark] .group-count{background-color:#404040;color:#ccc}.monitoring-page{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#667eea66,#764ba266);background-attachment:fixed;box-sizing:border-box;height:100vh;overflow:hidden;padding:10px;position:relative;z-index:1}.monitoring-header{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffffd9;border-radius:15px;box-shadow:0 8px 32px #0003;display:flex;height:70px;justify-content:space-between;margin-bottom:15px;padding:15px 25px;position:relative;z-index:10}.monitoring-title h1{color:#2c3e50;font-size:2.2em;font-weight:700;margin:0 0 10px}.monitoring-status{align-items:center;color:#666;display:flex;font-size:1.1em;gap:10px}.status-indicator{animation:pulse 2s infinite;background:#27ae60;border-radius:50%;height:12px;width:12px}.status-indicator.loading{animation:spin 1s linear infinite;background:#f39c12}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.monitoring-controls{align-items:center;display:flex;gap:15px}.page-info{background:#ffffffe6;border-radius:20px;color:#2c3e50;font-size:1em;font-weight:700;padding:8px 15px}.control-buttons{align-items:stretch;display:flex;gap:5px;height:50px}.nav-button{align-items:center;background:#0000;border:2px solid #725ac1;border-radius:10px;box-shadow:inset 0 0 0 0 #725ac1;color:#725ac1;cursor:pointer;display:inline-flex;font-size:16px;height:40px;justify-content:center;letter-spacing:1px;margin:5px 8px;padding:10px 15px;position:relative;text-align:center;text-decoration:none;transition:.5s ease-out;width:40px}.nav-button:hover{box-shadow:inset 0 -100px 0 0 #725ac1;color:#fff}.nav-button:active{transform:scale(.9)}.interval-setting{align-items:center;display:flex;gap:5px}.interval-input{background:#ffffffe6;border:2px solid #ddd;border-radius:8px;font-size:14px;padding:8px;text-align:center;width:60px}.interval-label{color:#2c3e50;font-size:14px;font-weight:600}.auto-button{background:#0000;border:2px solid #725ac1;border-radius:10px;box-shadow:inset 0 0 0 0 #725ac1;color:#725ac1;cursor:pointer;display:inline-block;font-size:14px;letter-spacing:1px;margin:5px 8px;padding:10px 20px;position:relative;text-align:center;text-decoration:none;transition:.5s ease-out}.auto-button.active{border-color:#27ae60;box-shadow:inset 0 -100px 0 0 #27ae60;color:#fff}.auto-button:hover{box-shadow:inset 0 -100px 0 0 #725ac1;color:#fff}.auto-button:active{transform:scale(.9)}.back-button,.refresh-button{align-items:center;background:#0000;border:2px solid #725ac1;border-radius:10px;box-shadow:inset 0 0 0 0 #725ac1;cursor:pointer;display:inline-flex;font-size:16px;height:100%;justify-content:center;letter-spacing:1px;margin:5px 8px;padding:0 24px;position:relative;text-align:center;text-decoration:none;transition:.5s ease-out}.refresh-button{border-color:#3498db;box-shadow:inset 0 0 0 0 #3498db;color:#3498db}.refresh-button:hover:not(:disabled){box-shadow:inset 0 -100px 0 0 #3498db;color:#fff}.refresh-button:active{transform:scale(.9)}.refresh-button:disabled{border-color:#bdc3c7;cursor:not-allowed}.refresh-button:disabled,.refresh-button:disabled:hover{box-shadow:inset 0 0 0 0 #bdc3c7;color:#bdc3c7}.back-button{border-color:#e74c3c;box-shadow:inset 0 0 0 0 #e74c3c;color:#e74c3c}.back-button:hover{box-shadow:inset 0 -100px 0 0 #e74c3c;color:#fff}.back-button:active{transform:scale(.9)}.monitoring-content{display:flex;flex:1 1;flex-direction:column;gap:20px;overflow:hidden}.monitoring-groups{grid-gap:8px;align-content:start;display:grid;gap:8px;height:calc(100vh - 190px);margin:0;min-height:0;overflow:auto;padding:0;width:100%}.monitoring-groups:has(.group-8){grid-template-columns:1fr 1fr;grid-template-rows:1fr}.monitoring-groups.page-1{grid-template-columns:1fr;grid-template-rows:1fr}.monitoring-groups.page-2{grid-template-columns:1fr 1fr!important;grid-template-rows:1fr;overflow:hidden}.monitoring-groups.page-3{grid-template-columns:1fr 1fr 1fr!important;grid-template-rows:1fr;overflow:hidden}.monitoring-groups.page-4{grid-template-columns:repeat(4,1fr)!important;grid-template-rows:1fr;overflow:hidden}.monitoring-groups:has(.group-6):not(:has(.group-8)){grid-template-columns:1fr 1fr;grid-template-rows:1fr}.monitoring-groups:has(.group-4):not(:has(.group-1)){grid-template-columns:1fr 1fr;grid-template-rows:1fr}.monitoring-groups:has(.group-4):has(.group-1){grid-template-columns:1fr 1fr .8fr;grid-template-rows:1fr}.monitoring-groups:has(.group-3){grid-template-columns:repeat(4,1fr);grid-template-rows:1fr}.monitoring-group{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffffd9;border-radius:15px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;min-height:120px;overflow:hidden;padding:10px}.group-header{align-items:center;border-bottom:2px solid #3498db;display:flex;flex-shrink:0;gap:10px;margin-bottom:15px;padding:15px 0 20px 8px}.group-header h3{color:#2c3e50;font-size:4.25em;font-weight:900;margin:0;padding:10px;text-shadow:2px 2px 4px #0000004d}.group-count{background:#3498db1a;border-radius:15px;color:#666;font-size:1.2em;font-weight:600;padding:5px 12px}.monitoring-grid{grid-gap:8px;align-content:start;align-items:stretch;display:grid;flex:1 1;gap:8px;grid-auto-rows:minmax(120px,auto);min-height:0;padding:5px}.grid-8{grid-template-columns:repeat(4,1fr)}.grid-6,.grid-8{grid-template-rows:repeat(2,1fr)}.grid-6{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.grid-3{grid-template-rows:repeat(3,1fr)}.grid-1,.grid-3{grid-template-columns:1fr}.grid-1{grid-template-rows:1fr}.monitoring-groups:has(.group-4) .group-1{padding:10px}.monitoring-groups:has(.group-4) .group-1 .monitoring-box{min-height:60px;padding:8px}.monitoring-groups:has(.group-4) .group-1 .monitoring-machine{font-size:29px}.monitoring-groups:has(.group-4) .group-1 .monitoring-temp{font-size:39px}.monitoring-groups:has(.group-4) .group-1 .monitoring-range{font-size:20px}.monitoring-groups:has(.group-4) .group-1 .group-header h3{font-size:5.25em;padding:10px 20px}.monitoring-box{align-items:center;border:2px solid #ddd;border-radius:8px;box-shadow:0 2px 4px #0000001a;box-sizing:border-box;display:flex;flex-direction:column;font-weight:700;height:100%;justify-content:center;overflow:hidden;padding:6px;position:relative;text-align:center;transition:all .3s ease;width:100%;z-index:2}.monitoring-box:hover{box-shadow:0 8px 16px #0003;transform:translateY(-3px)}.monitoring-box.no-data{background-color:#95a5a6;color:#fff}.monitoring-box.abnormal,.monitoring-box.high-temp,.monitoring-box.low-temp,.monitoring-box.normal{color:#292828}.monitoring-machine{font-size:27px;font-weight:600;line-height:1.2;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px #0000004d;white-space:nowrap;width:100%}.monitoring-temp{font-size:35px;font-weight:700;line-height:1.1;margin-bottom:2px;text-shadow:0 2px 4px #0000004d}.monitoring-range{font-size:20px;font-weight:500;line-height:1.1;overflow:hidden;text-align:center;text-shadow:0 1px 2px #0000004d;width:100%}.monitoring-legend{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border-radius:10px;display:flex;flex-shrink:0;font-size:16px;gap:20px;justify-content:center;margin:2px 0 0;padding:8px}@media (max-width:768px){.monitoring-page{padding:10px}.monitoring-header{flex-direction:column;gap:20px;text-align:center}.monitoring-title h1{font-size:1.8em}.monitoring-summary{grid-template-columns:repeat(2,1fr)}.summary-value{font-size:2em}}.badge-container{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}.count-badge,.inactive-badge{border-radius:15px;display:inline-block;font-size:24px;font-weight:800;min-width:80px;padding:12px 0;text-align:center}.count-badge{background:#725ac1;border:1px solid #725ac1;color:#fff}.inactive-badge{animation:pulse 2s infinite;background:#e74c3c;border:1px solid #c0392b;color:#fff}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.chart-page{background:#f5f5f5;box-sizing:border-box;display:flex;flex-direction:column;height:auto;margin:0;max-height:100vh;min-height:100vh;overflow:hidden;padding:10px;width:100%}.chart-controls{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px;padding:15px}.chart-controls button:first-of-type{margin-left:auto}.chart-controls button+button{margin-left:10px}.chart-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;box-sizing:border-box;flex:1 1;max-height:calc(100vh - 250px);min-height:400px;overflow:hidden;padding:20px;position:relative}@media print{@page{size:A4 landscape;margin:20mm 10mm 10mm 10mm}#root,body,html{margin:0!important;padding:0!important}.chart-page{height:auto!important;margin:0!important}.chart-container,.chart-page{max-height:none!important;max-width:100%!important;overflow:visible!important;padding:0!important;width:100%!important}.chart-container{border:0!important;box-sizing:border-box;height:180mm!important}canvas{display:block!important;height:100%!important;max-width:100%!important;page-break-inside:avoid;width:100%!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}#root,body,html{height:100%}.search-page{background:#f5f5f5;box-sizing:border-box;display:flex;flex-direction:column;height:100%;margin:0;min-height:0;padding:10px;width:100%}.search-controls{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px;padding:15px}.button-groups{display:flex;gap:10px;margin-left:auto}.tableScrollWrapper{border:1px solid #ddd;border-radius:4px;flex:1 1;margin:0 15px;max-height:calc(100vh - 200px);min-height:0;overflow:auto}.control-group{display:flex;flex-direction:column;gap:5px}.control-group label{color:#555;font-size:12px;font-weight:600}.control-group input,.control-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:120px;padding:8px 12px}.control-group input:focus,.control-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.sensor-group{min-width:200px}.sensor-group.hidden{display:none}.sensor-checkboxes{background:#f9f9f9;border:1px solid #ddd;border-radius:4px;display:flex;flex-direction:column;gap:8px;max-height:120px;overflow-y:auto;padding:8px}.sensor-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:4px;transition:background-color .2s}.sensor-checkbox:hover{background-color:#e9ecef}.sensor-checkbox input[type=checkbox]{margin:0;min-width:auto}.sensor-checkbox span{color:#555;flex:1 1}.no-sensors{color:#999;font-style:italic;padding:8px;text-align:center}button{background:#007bff;border-radius:4px;font-size:14px;font-weight:600;padding:8px 16px}button:hover:not(:disabled){background:#0056b3}button:disabled{background:#6c757d;cursor:not-allowed}.search-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;padding:20px 0;position:relative}.loading,.no-data{color:#666;font-size:16px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.loading{color:#007bff}.no-data{color:#999}.table-container{width:100%}.table-container h3{color:#2c3e50;font-size:1.3em;margin:0 0 15px}.table-container table{border-collapse:collapse;font-size:14px;width:100%}.table-container td,.table-container th{border-bottom:1px solid #eee;padding:8px 12px;text-align:left}.table-container th{background:#f8f9fa;color:#2c3e50;font-weight:600;position:-webkit-sticky;position:sticky;top:0}.table-container tr:hover{background:#f8f9fa}.status-pass{color:#27ae60;font-weight:600}.status-fail{color:#e74c3c;font-weight:600}@media (max-width:768px){.search-page{padding:10px}.search-controls{align-items:stretch;flex-direction:column}.control-group{align-items:center;flex-direction:row;justify-content:space-between}.control-group input{min-width:150px}}:root{--header-height:56px}.machine-group-manager{background:#f5f5f5;display:flex;font-family:Segoe UI,Arial,sans-serif;font-size:14px;height:100vh}.left-panel{background:#fff;border-right:1px solid #ddd;display:flex;flex-direction:column;width:300px}.panel-header{align-items:center;background:#fafafa;border-bottom:1px solid #eee;box-sizing:border-box;display:flex;height:56px;height:var(--header-height);justify-content:space-between;padding:20px}.panel-header h3{color:#333;font-size:1.2em;margin:0}.header-buttons{display:flex;gap:10px}.header-buttons button{background:#007bff;border:2px solid #007bff;border-radius:6px;box-shadow:0 2px 4px #007bff33;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.header-buttons button:hover:not(:disabled){background:#0056b3;border-color:#0056b3;box-shadow:0 4px 8px #007bff4d;transform:translateY(-1px)}.header-buttons button:disabled{background:#6c757d;border-color:#6c757d;box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.machine-list{flex:1 1;overflow-y:auto;padding:10px}.machine-item{align-items:center;border:1px solid #0000;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:5px;padding:6px 10px;transition:all .2s}.machine-item:hover{background:#f8f9fa;border-color:#e9ecef}.machine-item.selected{background:#e3f2fd;border-color:#2196f3;color:#1976d2}.machine-info{align-items:center;cursor:pointer;display:flex;flex:1 1}.status-toggle-btn{border:1px solid #0000;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;margin-left:8px;min-width:60px;padding:6px 12px;transition:all .2s}.status-toggle-btn.active{background:#27ae60;border:1px solid #229954;color:#fff}.status-toggle-btn.active:hover{background:#229954;border-color:#1e8449}.status-toggle-btn.inactive{background:#e74c3c;border:1px solid #c0392b;color:#fff}.status-toggle-btn.inactive:hover{background:#c0392b;border-color:#a93226}.machine-icon{font-size:16px;margin-right:10px}.machine-name{font-weight:500}.right-panel{background:#fff;display:flex;flex:1 1;flex-direction:column}.group-editor{flex:1 1;overflow-y:auto;padding:20px}.sensor-grid{border:1px solid #ddd;border-radius:6px;overflow:hidden;overflow-y:auto}.grid-header{background:#f5f5f5;border-bottom:1px solid #ddd;color:#555;display:grid;font-weight:600;grid-template-columns:2fr 1fr 1fr 1fr;grid-template-rows:56px;grid-template-rows:var(--header-height)}.grid-header>div{border-right:1px solid #ddd;padding:12px 15px}.grid-header>div:last-child{border-right:none}.grid-row{align-items:center;border-bottom:1px solid #eee;display:grid;grid-template-columns:2fr 1fr 1fr 1fr}.grid-row:last-child{border-bottom:none}.grid-row>div{border-right:1px solid #eee;padding:12px 15px}.grid-row>div:last-child{border-right:none}.group-row{background:#fafafa;font-weight:500}.group-row.ungrouped{background:#f0f0f0;color:#666}.ungrouped-label{color:#888;font-style:italic}.draggable{cursor:move;transition:all .2s ease}.draggable:hover{background:#f0f8ff;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.draggable:active{opacity:.7}.drag-handle{color:#999;cursor:grab;font-size:12px;margin-right:8px}.drag-handle:active{cursor:grabbing}.drop-zone{transition:all .2s ease}.drop-zone.drag-over,.drop-zone:hover{background:#e8f5e8;border-left:3px solid #4caf50}.drop-zone.drag-over{box-shadow:inset 0 0 10px #4caf5033}.sensor-row{background:#fff}.sensor-row.grouped{background:#f9f9f9}.col-name{align-items:center;display:flex}.group-icon,.sensor-icon{font-size:14px;margin-right:8px}.indent{color:#999;margin-right:8px}.group-name-input{max-width:200px;width:100%}.group-name-input,.value-input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:6px 8px}.value-input{text-align:center;width:80px}.value-input.readonly{background-color:#f5f5f5;border-color:#ccc;color:#666;cursor:not-allowed}.setting-value-display{background-color:#e8f4fd;border-radius:4px;color:#1976d2;display:inline-block;font-size:14px;font-weight:500;min-width:60px;padding:6px 8px;text-align:center}.inline-remove-btn{background:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;margin-left:10px;padding:4px 8px;transition:background .2s}.inline-remove-btn:hover{background:#d32f2f}.no-selection{align-items:center;color:#999;display:flex;font-size:1.1em;height:100%;justify-content:center}@media (max-width:768px){.machine-group-manager{flex-direction:column}.left-panel{height:200px;width:100%}.machine-list{display:flex;overflow-x:auto;padding:10px}.machine-item{margin-bottom:0;margin-right:10px;min-width:150px}.grid-header,.grid-row{gap:5px;grid-template-columns:1fr}.grid-header>div,.grid-row>div{border-bottom:1px solid #eee;border-right:none;padding:6px 10px}}:root{--primary-color:#3369b0;--secondary-color:#3a85e7;--background-color:#f9f9f9;--table-bg:#fff;--table-alt:#f2f2f2;--hover-bg:#e6f0ff;--text-color:#333;--filter-bg:#f5f5f5;--danger:#dc3545;--success:#28a745;--pass-bg:#f0f8f0;--fail-bg:#ecc;--border-color:#ddd}[data-theme=dark]{--primary-color:#4b8bd4;--secondary-color:#3980d1;--background-color:#1e1e1e;--table-bg:#2c2c2c;--table-alt:#333;--hover-bg:#3a3a3a;--text-color:#eee;--filter-bg:#2c2c2c;--danger:#f66;--success:#44d27a;--pass-bg:#fff0f0;--fail-bg:#5f4a4a;--border-color:#555}body{background-color:#f9f9f9;background-color:var(--background-color);color:#333;color:var(--text-color);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0}.App{min-height:100vh;padding:0}.top-bar{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;display:flex;height:60px;justify-content:space-between;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.theme-toggle{background:none;border:1px solid #e0e0e0;border-radius:8px;color:#333;color:var(--text-color);cursor:pointer;font-size:16px;padding:8px 12px;transition:all .2s ease}.theme-toggle:hover{background-color:#f5f5f5;border-color:#007bff}[data-theme=dark] .top-bar{background-color:#1a1a1a;border-bottom-color:#404040;box-shadow:0 2px 4px #0000004d}[data-theme=dark] .theme-toggle{background-color:#2d2d2d;border-color:#404040;color:#fff}[data-theme=dark] .theme-toggle:hover{background-color:#404040;border-color:#007bff}button{background-color:#3a85e7;background-color:var(--secondary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:10px 20px;transition:background-color .3s ease}button:hover{background-color:#689e47}table{background-color:#fff;background-color:var(--table-bg);border-collapse:collapse;box-shadow:0 2px 6px #0000001a;width:100%}td,th{border:1px solid #ddd;border:1px solid var(--border-color);padding:12px;text-align:center}th{background-color:#3369b0;background-color:var(--primary-color);color:#fff}tr:nth-child(2n){background-color:#f2f2f2;background-color:var(--table-alt)}tr:hover{background-color:#e6f0ff;background-color:var(--hover-bg)}@media (max-width:768px){.header-container{align-items:flex-start;flex-direction:column;gap:10px}table,tbody,td,th,thead,tr{display:block}td,th{padding-left:50%;position:relative;text-align:right}td:before,th:before{font-weight:700;left:15px;position:absolute;text-align:left;top:12px;white-space:nowrap}th:first-of-type:before{content:"ID"}th:nth-of-type(2):before{content:"Topic"}th:nth-of-type(3):before{content:"Machine"}th:nth-of-type(4):before{content:"Temp"}th:nth-of-type(5):before{content:"Timestamp"}td:first-of-type:before{content:"ID"}td:nth-of-type(2):before{content:"Topic"}td:nth-of-type(3):before{content:"Machine"}td:nth-of-type(4):before{content:"Temp"}td:nth-of-type(5):before{content:"Timestamp"}}