body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes fadeIn{to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.App{text-align:center}.App-logo{pointer-events:none;height:40vmin}@media (prefers-reduced-motion:no-preference){.App-logo{animation:20s linear infinite App-logo-spin}}.App-header{color:#fff;background-color:#282c34;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;font-size:calc(10px + 2vmin);display:flex}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-container{flex-direction:column;align-items:center;padding:2rem;display:flex}.logo{width:150px;margin-bottom:2rem}.login-form{flex-direction:column;gap:1rem;width:300px;display:flex}.login-form input,.login-form button{padding:.75rem;font-size:1rem}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-form input:disabled{opacity:.7;cursor:not-allowed}.login-error{box-sizing:border-box;color:#b91c1c;text-align:center;background-color:#fee2e2;border:1px solid #fca5a5;border-radius:4px;width:300px;margin-bottom:1rem;padding:.75rem 1rem}.login-info{box-sizing:border-box;color:#856404;text-align:center;background-color:#fff3cd;border:1px solid #ffd866;border-radius:4px;width:300px;margin-bottom:1rem;padding:.75rem 1rem}.cpw-modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.cpw-modal{background:#fff;border-radius:8px;width:500px;max-width:95vw;padding:2rem}.cpw-modal h3{margin-top:0;margin-bottom:1.5rem}.cpw-modal-notice{color:#7a5800;background-color:#fff8e1;border-left:3px solid #f0a500;border-radius:4px;margin:-.5rem 0 1.25rem;padding:.6rem .9rem;font-size:.875rem}.cpw-modal form{flex-direction:column;gap:1rem;display:flex}.cpw-modal label{flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:500;display:flex}.cpw-modal input{border:1px solid #ccc;border-radius:4px;padding:.5rem .75rem;font-size:.9rem}.cpw-modal input:focus{border-color:#4a5c7f;outline:none}.cpw-modal-actions{gap:.75rem;margin-top:.5rem;display:flex}.cpw-modal-actions button{cursor:pointer;border:none;border-radius:4px;padding:.5rem 1.25rem;font-size:.9rem}.cpw-modal-actions button[type=submit]{color:#fff;background-color:#4a5c7f}.cpw-modal-actions button[type=submit]:hover{background-color:#3a4c6f}.cpw-cancel{color:#333;background-color:#e0e0e0}.cpw-cancel:hover{background-color:#ccc}.cpw-feedback{min-height:4rem;margin-top:1rem}.toast{color:#c00;opacity:0;background-color:#fdd;border:1px solid #c00;border-radius:4px;padding:.5rem 1rem;font-weight:700;animation:.3s forwards cpwFadeIn,.5s 9.5s forwards cpwFadeOut;transform:translateY(-10px)}.toast.success{color:#070;background-color:#dfd;border-color:#070}@keyframes cpwFadeIn{to{opacity:1;transform:translateY(0)}}@keyframes cpwFadeOut{to{opacity:0;transform:translateY(-10px)}}.tree-parent{align-items:center;gap:2px;display:flex}.tree-arrow{color:#fff;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.sidebar{color:#fafafa;background-color:#1e1e2f;border-right:1px solid #decfb9;flex-direction:column;width:208px;padding:16px;font-family:sans-serif;transition:width .25s;display:flex;overflow-y:auto;box-shadow:0 4px 8px #0003}.sidebar-bottom-actions{gap:8px;margin-top:auto;padding-top:12px;display:flex}.sidebar-icon-btn{cursor:pointer;background:#d0d0d8;border:none;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .15s;display:flex}.sidebar-icon-btn:hover{background-color:#b8b8c4}.sidebar-icon-btn img{filter:invert(-1);width:36px;height:36px}.sidebar.collapsed{background-color:#fff;border-right:0;width:24px}.sidebar ul{margin:0;padding-left:1em;list-style:none}.sidebar a,.tree-toggle,.sidebar h2{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;width:100%;display:block;overflow:hidden}.sidebar.collapsed a,.sidebar.collapsed .tree-toggle,.sidebar.collapsed h2{opacity:0;pointer-events:none}.sidebar.collapsed:hover a,.sidebar.collapsed:hover .tree-toggle,.sidebar.collapsed:hover h2{opacity:1;pointer-events:auto}.sidebar h2{letter-spacing:.5px;text-transform:uppercase;color:#fafafa;cursor:pointer;margin:20px 0 10px;font-size:.85rem;font-weight:700}.tree-toggle{all:unset;cursor:pointer;letter-spacing:.2px;color:#fafafa;padding:6px 0;font-size:.85rem;font-weight:600;transition:opacity .15s}.sidebar a{letter-spacing:.2px;color:#fafafa;border-radius:4px;padding:6px 12px;font-size:.85rem;font-weight:500;text-decoration:none;transition:opacity .15s,background-color .15s}.sidebar a:hover{background-color:#4a5c7f}.nav-tree li{margin:3px 0}.nav-tree ul{margin:0;padding-left:1em;transition:none}.active-link{color:#000;background-color:#4a5c7f;border:1px solid #4a5c7f;border-radius:4px;font-weight:600}.sidebar.collapsed .active-link{opacity:1;background-color:#decfb9}.sidebar .tree-parent-label{letter-spacing:.2px;color:#fafafa;cursor:pointer;padding:6px 0;font-size:.85rem;font-weight:600;text-decoration:none;display:block}.report-viewer{box-sizing:border-box;width:100%;padding:20px}.controls{flex-wrap:wrap;gap:20px;margin-bottom:20px;display:flex}.controls label{flex-direction:column;display:flex}table{border-collapse:collapse}th,td{border:1px solid #ddd;padding:8px 12px}.error{color:red;margin-top:10px}.chart-container{width:100%;height:400px;margin-bottom:2rem;position:relative}.compact-table th,.compact-table td{text-align:center;padding:6px 8px;width:62px!important}.general-table th,.general-table td{text-align:center;padding:6px 8px;width:72px!important}.compact-table td:first-child,.compact-table th:first-child{text-align:left;background-color:#f9f9f9;font-weight:700;width:100px!important}.report-table-outer{width:100%;overflow-x:auto}.report-table-wrapper{background-color:#fff;border:1px solid #ddd;flex-wrap:nowrap;max-width:max-content;margin:0 auto;display:flex}.report-table-left{background-color:#fff;border-right:1px solid #ddd;width:150px}.report-table-left table{border-collapse:collapse;width:100%}.report-table-left th,.report-table-left td{text-align:center;box-sizing:border-box;border:1px solid #ddd;padding:8px}.report-table-right{overflow-x:auto}.report-scroll-container table{border-collapse:collapse;width:auto;min-width:max-content}.report-scroll-container th,.report-scroll-container td{text-align:center;box-sizing:border-box;border:1px solid #ddd;padding:8px}.report-scroll-container thead th{z-index:1;background-color:#f9f9f9;position:sticky;top:0}.report-scroll-container th{white-space:normal;word-break:break-word;text-align:center;max-width:72px}.infotv-container{background-color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:2rem;font-weight:700;display:flex;position:relative;overflow:hidden}.infotv-view{opacity:0;z-index:0;background-color:#fff;border-radius:1rem;width:100%;height:100%;padding:2rem;transition:opacity .5s ease-in-out;position:absolute;box-shadow:0 0 20px #00000080}.infotv-view.active{opacity:1;opacity:1;z-index:1}.infotv-centered-view{background-color:#fff;border-radius:1rem;justify-content:center;align-items:center;padding:2rem;display:flex;box-shadow:0 0 20px #00000080}.infotv-iframe-view{justify-content:center;align-items:center;display:flex}.infotv-iframe-view iframe{border:none;border-radius:0;width:100%;height:90%}.infotv-grid-view{background-color:#fff}.infotv-grid-view h2{color:#000;margin-bottom:1rem;font-family:Segoe UI,sans-serif;font-size:2.5rem;font-weight:700}.infotv-grid-box{color:#fff;text-align:left;background-color:#1e1e2f;border-radius:.75rem;flex-direction:column;justify-content:space-between;padding:1.5rem;font-family:Segoe UI,sans-serif;display:flex;box-shadow:0 4px 12px #0000004d}.infotv-grid-container{grid-template-columns:repeat(4,1fr);gap:1.5rem;width:100%;margin-top:2rem;display:grid}.infotv-grid-title{color:#cfcfcf;margin-bottom:.5rem;font-size:1.2rem;font-weight:600}.infotv-grid-value{color:#fff;font-size:2rem;font-weight:700}.infotv-grid-change{color:#2e8b57;margin-top:.5rem;font-size:1rem}.infotv-grid-top{grid-template-columns:repeat(2,1fr);gap:1.5rem;width:100%;margin-top:2rem;display:grid}.infotv-grid-top .infotv-grid-box{color:#fff;text-align:left;background-color:#1e1e2f;border-radius:.75rem;flex-direction:column;justify-content:space-between;padding:1.5rem;font-family:Segoe UI,sans-serif;display:flex;box-shadow:0 4px 12px #0000004d}.infotv-grid-top .infotv-grid-title{color:#cfcfcf;margin-bottom:.75rem;font-size:1.4rem;font-weight:600}.infotv-grid-bottom{grid-template-columns:repeat(3,1fr)}.infotv-grid-top .infotv-grid-value{color:#fff;font-size:2.4rem;font-weight:700}.infotv-grid-top .infotv-grid-change{color:#2e8b57;margin-top:.75rem;font-size:1.2rem}.infotv-timestamp{color:#fff;z-index:9999;background-color:#1e1e2f;border-radius:6px;padding:.5rem 1rem;font-family:Segoe UI,sans-serif;font-size:1rem;position:fixed;bottom:1rem;right:1rem;box-shadow:0 2px 6px #0000004d}.degree-days-container{box-sizing:border-box;width:100%;padding:20px}.degree-days-title{color:#000}.degree-days-controls{flex-wrap:wrap;gap:20px;margin-bottom:20px;display:flex}.degree-days-controls label{flex-direction:column;display:flex}.degree-days-chart-container{width:100%;max-width:900px;height:300px;margin-bottom:2rem;position:relative}.degree-days-report-table-outer{width:100%;overflow-x:auto}.degree-days-report-table-wrapper{background-color:#fff;border:1px solid #ddd;flex-wrap:nowrap;max-width:max-content;margin:0;display:flex}.degree-days-report-table-right{overflow-x:auto}.degree-days-report-scroll-container table{border-collapse:collapse;width:auto;min-width:max-content}.degree-days-compact-table th,.degree-days-compact-table td{text-align:center;border:1px solid #ddd;padding:6px 8px;width:43px!important}.degree-days-download-btn{color:#fff;cursor:pointer;background:#0078d4;border:none;border-radius:4px;margin-top:12px;padding:6px 12px}.degree-days-download-btn:hover{background:#005fa3}.degree-days-compact-table td:first-child,.degree-days-compact-table th:first-child{text-align:left;background-color:#f9f9f9;font-weight:700;width:100px!important}.degree-days-compact-table thead th{background-color:#f9f9f9;font-weight:700}.degree-days-compact-table td{background-color:#fff}.degree-days-compact-table tbody tr:first-child:hover td:not(:first-child){background-color:#f0f7ff}.degree-days-compact-table tbody tr:last-child td:not(:first-child):hover{cursor:pointer;background-color:#f0f7ff}.degree-days-input{text-align:center;box-sizing:border-box;width:calc(100% + 16px);height:calc(100% + 12px);font:inherit;color:inherit;-moz-appearance:textfield;background:0 0;border:none;outline:none;margin:-6px -8px;padding:6px 8px;display:block}.degree-days-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.degree-days-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.degree-days-input:disabled{opacity:.4;cursor:not-allowed}.degree-days-input:not(:disabled){cursor:pointer}.degree-days-info-message{color:#000;background:#dff0d8;border:1px solid #c8e5bc;border-radius:4px;max-width:880px;margin-bottom:15px;padding:10px 15px;font-weight:700}.admin-container{padding:1.5rem}.tab-bar{border-bottom:2px solid #ccc;margin-bottom:1rem;display:flex}.tab-button{cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1.5rem;font-size:1rem;transition:border-color .3s,color .3s}.tab-button:hover{color:#07c}.tab-button.active{color:#07c;border-bottom:2px solid #07c;font-weight:700}.tab-content{padding:1rem 0}.algorithm-grid-wrapper{width:max-content}:root{--col-id:96px;--col-cid:96px;--col-name:272px;--col-country:72px;--col-customer:72px;--col-area:72px;--col-address:72px;--col-building:72px;--col-part:72px;--col-floor:72px;--col-device:72px;--col-ids:108px;--col-timedelay:96px;--col-tdtn:96px;--col-tnt:128px;--col-tont:128px;--col-timeframe:108px;--col-alarmclass:108px;--col-special:152px;--col-notes:128px;--col-description:128px;--col-active:96px;--col-actions:104px}.algorithm-filters{z-index:20;grid-template-columns:var(--col-id) var(--col-cid) var(--col-name) var(--col-country) var(--col-customer) var(--col-area) var(--col-address) var(--col-building) var(--col-part) var(--col-floor) var(--col-device) var(--col-ids) var(--col-timedelay) var(--col-tdtn) var(--col-tnt) var(--col-tont) var(--col-timeframe) var(--col-alarmclass) var(--col-special) var(--col-notes) var(--col-description) var(--col-active) var(--col-actions);opacity:0;background-color:#fff;gap:.5rem 0;max-height:0;padding:0;transition:max-height .3s ease-out,opacity .3s ease-out,padding .3s ease-out;display:grid;top:0;overflow:hidden;box-shadow:0 1px #0000001a}.algorithm-filters.expanded{opacity:1;max-height:100px;padding:.5rem 0}.algorithm-table-wrapper{background-color:#fff;border:1px solid #fff;max-width:max-content;max-height:700px;padding-right:1rem;position:relative;overflow-y:auto}.algorithm-table-wrapper.filters-hidden thead th{top:0}.algorithm-table-wrapper thead th{box-shadow:none;border-top:none;transition:top .3s}.algorithm-table-grid th,.algorithm-table-grid td{text-align:center;box-sizing:border-box;border:1px solid #ddd;padding:8px}.algorithm-table-grid thead th{z-index:10;box-shadow:none;background-color:#f9f9f9;border-top:none;border-bottom:1px solid #ccc;position:sticky}.algorithm-filter-group{background-color:#fafafa00;border:1px solid #eee0;border-radius:6px;gap:.5rem;width:max-content;margin-bottom:.1rem;padding:.4rem;display:flex;box-shadow:0 1px 2px #0000}.notes-cell{text-align:center}.algorithm-table-grid table{table-layout:fixed;border-collapse:collapse;width:max-content}.col-alg-id{width:var(--col-id);max-width:var(--col-id)}.col-alg-cid{width:var(--col-cid);max-width:var(--col-cid)}.col-alg-name{width:var(--col-name);max-width:var(--col-name)}.col-alg-country_code{width:var(--col-country);max-width:var(--col-country)}.col-alg-customer{width:var(--col-customer);max-width:var(--col-customer)}.col-alg-area{width:var(--col-area);max-width:var(--col-area)}.col-alg-address{width:var(--col-address);max-width:var(--col-address)}.col-alg-building{width:var(--col-building);max-width:var(--col-building)}.col-alg-part{width:var(--col-part);max-width:var(--col-part)}.col-alg-floor{width:var(--col-floor);max-width:var(--col-floor)}.col-alg-device_name{width:var(--col-device);max-width:var(--col-device)}.col-alg-ids{width:var(--col-ids);max-width:var(--col-ids)}.col-alg-timedelay{width:var(--col-timedelay);max-width:var(--col-timedelay)}.col-alg-tdtn{width:var(--col-tdtn);max-width:var(--col-tdtn)}.col-alg-tnt{width:var(--col-tnt);max-width:var(--col-tnt)}.col-alg-tont{width:var(--col-tont);max-width:var(--col-tont)}.col-alg-timeframe{width:var(--col-timeframe);max-width:var(--col-timeframe)}.col-alg-alarmclass{width:var(--col-alarmclass);max-width:var(--col-alarmclass)}.col-alg-special{width:var(--col-special);max-width:var(--col-special)}.col-alg-notes{width:var(--col-notes);max-width:var(--col-notes)}.col-alg-description{width:var(--col-description);max-width:var(--col-description)}.col-alg-active{width:var(--col-active);max-width:var(--col-active)}.col-alg-actions{width:var(--col-actions);max-width:var(--col-actions)}.filter-name,.filter-active{background-color:#fff;border:1px solid #ccc;border-radius:2px;padding:2px}.soi-dual-container{gap:8px;width:50%;display:flex}.soi-dual-container .soi-container{flex:1}.soi-single-container{display:flex}.soi-single-container .soi-container{flex:1}.soi-container{flex:1;min-width:0}.soi-container>div{min-width:0}.alg-modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.alg-modal{background:#fff;border-radius:8px;width:720px;max-height:100%;padding:2rem;overflow-y:auto}.alg-modal .metadata-row,.alg-modal .info-row{align-items:center;margin-bottom:4px;display:flex}.info-row:first-of-type{margin-bottom:12px}.metadata-row{margin-bottom:4px;padding-bottom:0;align-items:center!important}.metadata-row:first-of-type{margin-top:6px}.metadata-row>label{padding-top:3px}.metadata-row>.soi-single-container,.metadata-row>.soi-dual-container{flex:1;align-self:center}.alg-modal label{width:172px;margin-right:12px;font-weight:700}.alg-modal input{border:1px solid #ccc;border-radius:4px;flex:1;padding:6px}.alg-modal input[type=checkbox]{flex:unset;width:auto;margin-left:0;margin-right:auto}.alg-modal input.error{background-color:#ffe6e6;border:1px solid #c00}@keyframes fadeOut{to{opacity:0;transform:translateY(-10px)}}.special-list-section{flex-direction:column;gap:0;display:flex}.special-list-section>label{align-self:flex-start;margin-bottom:8px}.special-list-row{flex-direction:row;gap:8px;width:100%;margin-bottom:16px;display:flex}.special-list-row input{flex:1}.special-list-section button{align-self:flex-start}.loading-placeholder{color:#666;padding:6px 0;font-style:italic}button[disabled]{opacity:.6;cursor:not-allowed}.device-grid-wrapper{width:max-content}.device-filters{z-index:20;opacity:0;background-color:#fff;grid-template-columns:96px 424px 424px 148px 96px 96px 96px 96px 96px 96px 96px 152px 152px 96px 104px;gap:.5rem 0;max-height:0;padding:0;transition:max-height .3s ease-out,opacity .3s ease-out,padding .3s ease-out;display:grid;top:0;overflow:hidden;box-shadow:0 1px #0000001a}.device-filters.expanded{opacity:1;max-height:100px;padding:.5rem 0}.device-table-wrapper{background-color:#fff;border:1px solid #fff;max-width:max-content;max-height:700px;padding-right:1rem;position:relative;overflow-y:auto}.device-table-wrapper.filters-hidden thead th{top:0}.device-table-wrapper thead th{box-shadow:none;border-top:none;transition:top .3s}.device-table-grid th,.device-table-grid td{text-align:center;box-sizing:border-box;border:1px solid #ddd;padding:8px}.device-table-grid thead th{z-index:10;box-shadow:none;background-color:#f9f9f9;border-top:none;border-bottom:1px solid #ccc;position:sticky}.filter-group{background-color:#fafafa00;border:1px solid #eee0;border-radius:6px;gap:.5rem;width:max-content;margin-bottom:.1rem;padding:.4rem;display:flex;box-shadow:0 1px 2px #0000}.device-tags-cell,.device-notes-cell{text-align:center;max-width:160px}.scrollable-text{white-space:nowrap;text-overflow:ellipsis;cursor:text;scrollbar-width:none;-ms-overflow-style:none;max-width:100%;display:inline-block;overflow-x:auto}.scrollable-text::-webkit-scrollbar{display:none}.chromium .scrollable-text{-webkit-user-select:all;user-select:all;pointer-events:auto;overflow-x:hidden}.sticky-bar{z-index:20;background-color:#fff;width:max-content;position:sticky;top:0;box-shadow:0 2px 4px #0000000d}.sticky-bar table{table-layout:fixed;border-collapse:collapse;width:max-content}th{box-sizing:border-box;margin:0;padding:0}.device-table-wrapper{max-height:700px;position:relative;overflow:auto}.device-table-grid table{table-layout:fixed;border-collapse:collapse;width:max-content}.col-id{width:96px;max-width:96px}.col-name{width:424px;max-width:424px}.col-units{width:148px;max-width:148px}.col-country,.col-customer,.col-area,.col-address,.col-building,.col-part,.col-floor{width:96px}.col-tags,.col-notes{width:152px;max-width:152px}.col-active{width:96px}.col-actions{width:104px;max-width:104px}th,td{width:auto;max-width:200px}.filter-units,.filter-active{background-color:#fff;border:1px solid #ccc;border-radius:2px;padding:2px}.filter-text{text-align:center}tr:nth-child(2n){background-color:#fafafa}tr:hover{background-color:#f0f8ff}.modal{background:#fff;border-radius:8px;width:500px;max-height:80vh;padding:2rem;overflow-y:auto}.modal label{width:120px;margin-right:12px;font-weight:700}.modal input{border:1px solid #ccc;border-radius:4px;flex:1;padding:6px}.tag-multi-select{flex:1;min-width:0}.modal input[name=device_id]{background-color:#f0f8ff;border:1px solid #07c;font-weight:700}.modal input[name=active]{flex:unset;vertical-align:middle;margin-left:0;margin-right:auto;display:inline-block}.warning{color:red;font-weight:700;animation:.3s ease-in-out fadeIn}.modal select[name=units]{background-color:#fff;border:1px solid #ccc;border-radius:4px;flex:1;padding:6px}.modal select.error{background-color:#ffe6e6;border:1px solid #c00}.tag-multi-select{width:100%;min-width:0}.tag-multi-select .react-select__control{min-height:38px;box-shadow:none;cursor:text;background-color:#fff;border:1px solid #ccc;border-radius:5px;transition:border-color .15s,box-shadow .15s}.tag-multi-select .react-select__control:hover{border-color:#999}.tag-multi-select .react-select__control--is-focused{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff}.tag-multi-select .react-select__multi-value{background-color:#e8f0fe;border-radius:4px;margin:2px 4px 2px 0}.tag-multi-select .react-select__multi-value__label{color:#2c5282;padding:3px 5px;font-size:13px}.tag-multi-select .react-select__multi-value__remove{color:#2c5282;cursor:pointer;border-radius:0 4px 4px 0;padding:0 4px}.tag-multi-select .react-select__multi-value__remove:hover{color:#1a365d;background-color:#cbdcf7}.tag-multi-select .react-select__input-container,.tag-multi-select .react-select__input{margin:0;padding:2px 0}.tag-multi-select .react-select__placeholder{color:#888;font-size:14px}.tag-multi-select .react-select__menu{z-index:100;border:1px solid #ddd;border-radius:5px;margin-top:4px;overflow:hidden;box-shadow:0 4px 12px #0000001f}.tag-multi-select .react-select__menu-list{max-height:240px;padding:4px 0}.tag-multi-select .react-select__option{cursor:pointer;padding:8px 10px;font-size:14px}.tag-multi-select .react-select__option--is-focused{color:#222;background-color:#f0f4f8}.tag-multi-select .react-select__option--is-selected{color:#fff;background-color:#2684ff}.tag-multi-select .react-select__option--is-selected:hover{background-color:#1f73d1}.tag-multi-select .react-select__option--is-focused:not(.react-select__option--is-selected){background-color:#f0f4f8}.tag-multi-select .react-select__indicator{color:#777;padding:6px}.tag-multi-select .react-select__indicator:hover{color:#333}.tag-multi-select .react-select__clear-indicator{cursor:pointer;padding:6px}.tag-multi-select .react-select__menu-notice{color:#777;padding:10px;font-size:14px}.user-table{border-collapse:collapse;width:100%;margin-top:1rem;font-family:Arial,sans-serif}.user-table th,.user-table td{text-align:left;border:1px solid #ccc;padding:.75rem}.user-table th{background-color:#f5f5f5;font-weight:700}.user-table tr:nth-child(2n){background-color:#fafafa}.user-table tr:hover{background-color:#f0f8ff}.user-table-container{margin-left:0;padding:1rem}.user-table-header{justify-content:flex-end;margin-bottom:.75rem;display:flex}.add-user-btn{color:#fff;cursor:pointer;background-color:#07c;border:none;border-radius:4px;padding:8px 16px;font-weight:700}.add-user-btn:hover{background-color:#005fa3}.user-actions{flex-wrap:nowrap;gap:6px;display:flex}.btn-edit{color:#fff;cursor:pointer;background-color:#555;border:none;border-radius:4px;padding:4px 10px;font-size:.85rem}.btn-edit:hover{background-color:#333}.btn-reset{color:#fff;cursor:pointer;background-color:#e07800;border:none;border-radius:4px;padding:4px 10px;font-size:.85rem}.btn-reset:hover{background-color:#b86300}.btn-delete{color:#fff;cursor:pointer;background-color:#c30;border:none;border-radius:4px;padding:4px 10px;font-size:.85rem}.btn-delete:hover{background-color:#a82800}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal{background:#fff;border-radius:8px;width:480px;padding:2rem}.modal form>div{align-items:center;margin-bottom:12px;display:flex}.modal label{flex-shrink:0;width:140px;margin-right:12px;font-weight:700}.modal input,.modal select{border:1px solid #ccc;border-radius:4px;flex:1;padding:6px}.modal input[type=checkbox]{flex:unset;width:18px;height:18px;margin:0}.modal input.error{background-color:#ffe6e6;border:1px solid #c00}.modal-multiselect{flex:1;min-width:0}.modal-multiselect .msd-container{width:100%;position:static}.modal-multiselect .msd-dropdown{border-radius:0 0 6px 6px;max-height:none;margin-top:4px;position:static;overflow-y:visible}.field-disabled{color:#999;cursor:not-allowed;background-color:#f0f0f0}.toast{color:#c00;opacity:0;background-color:#fdd;border:1px solid #c00;border-radius:4px;margin-top:1rem;padding:.5rem 1rem;font-weight:700;animation:.3s forwards fadeIn,.5s 3.5s forwards fadeOut;transform:translateY(-10px)}.modal-feedback{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:4rem;margin-top:1rem;display:flex;position:relative}.confirm-modal{width:380px}.confirm-modal p{margin-bottom:1.5rem;font-size:1rem}.confirm-actions{justify-content:center;gap:1rem;display:flex}.btn-confirm{color:#fff;cursor:pointer;background-color:#c30;border:none;border-radius:4px;padding:8px 20px;font-weight:700}.btn-confirm:hover{background-color:#a82800}.btn-cancel{color:#fff;cursor:pointer;background-color:#666;border:none;border-radius:4px;padding:8px 20px;font-weight:700}.btn-cancel:hover{background-color:#444}.password-mismatch{color:#c00;margin:0 0 8px 152px;font-size:.85rem}.msd-container{width:260px;font-family:sans-serif;position:relative}.msd-input{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;flex-wrap:wrap;align-items:center;min-height:40px;padding:6px;display:flex}.msd-placeholder{color:#888}.msd-chip{color:#333;background:#e0e7ff;border-radius:12px;align-items:center;margin:2px;padding:3px 8px;font-size:.85rem;display:flex}.msd-chip-remove{cursor:pointer;margin-left:6px;font-weight:700}.msd-arrow{color:#666;margin-left:auto;padding:0 6px}.msd-dropdown{z-index:20;background:#fff;border:1px solid #ccc;border-radius:6px;width:100%;max-height:200px;padding:8px;position:absolute;top:48px;left:0;overflow-y:auto}.msd-option{cursor:pointer;align-items:center;padding:4px 0;display:flex}.topbar{background:#fff;border-bottom:1px solid #e0e0e0;padding:.75rem 1rem;display:flex}.topbar-item{margin-right:0;position:relative}.topbar-link{color:#333;border-radius:4px;padding:.5rem .75rem;text-decoration:none;transition:background-color .2s;display:inline-block}.topbar-item:hover .topbar-link{background-color:#f5f5f5}.dropdown{opacity:0;pointer-events:none;z-index:10;background:#fff;border:1px solid #ddd;border-radius:4px;min-width:120px;transition:opacity .2s,transform .2s;position:absolute;top:2.4rem;left:0;transform:translateY(3px);box-shadow:0 4px 12px #00000014}.topbar-item:hover .dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown-item{color:#333;padding:.6rem .75rem;text-decoration:none;transition:background-color .2s;display:block}.dropdown-item:hover{background-color:#f0f0f0}.breadcrumbs{color:var(--sn-grey50);margin-bottom:1rem;font-size:.85rem}.breadcrumbs a{color:var(--sn-grey75);text-decoration:none}.breadcrumbs a:hover{color:var(--sn-grey100);text-decoration:underline}.breadcrumbs-separator{color:var(--sn-grey25);margin:0 .2rem}.breadcrumbs-current{color:var(--sn-grey75);cursor:default;text-decoration:underline}.statcard{cursor:pointer;background:#fff;border:1px solid #eaeaea;border-radius:12px;flex-direction:column;gap:1rem;width:420px;padding:1.5rem;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 2px 8px #00000014}.statcard:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0000001f}.statcard:active{transform:translateY(-1px)scale(.98);box-shadow:0 4px 12px #0000001f}.statcard-header{justify-content:space-between;align-items:center;display:flex}.statcard-icon-placeholder{background:#f7f7f7;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;margin-right:.75rem;display:flex}.statcard-icon{font-size:1.5rem}.statcard-title{color:#333;flex-grow:1;font-size:1rem;font-weight:600}.statcard-year-block{text-align:right}.statcard-year{color:#666;font-size:.9rem}.statcard-value{color:#333;font-size:1.2rem;font-weight:700}.statcard-section{flex-direction:column;gap:.4rem;display:flex}.statcard-label-row{color:#444;justify-content:space-between;font-size:.85rem;display:flex}.statcard-progress{background:#eee;border-radius:4px;width:100%;height:8px;overflow:hidden}.statcard-progress-fill{background:#4a90e2;height:100%;transition:width .3s}.statcard-minmax{color:#777;justify-content:space-between;font-size:.75rem;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(2px);z-index:2000;background:#00000040;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{background:#fff;border-radius:12px;width:400px;max-width:90%;padding:2rem;animation:.2s modalFadeIn;position:relative;box-shadow:0 8px 24px #0003}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-close{cursor:pointer;background:0 0;border:none;font-size:1.25rem;position:absolute;top:.75rem;right:.75rem}.processes-alarm-list{margin-top:20px}.alarm-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%}.alarm-table thead{background-color:#f4f4f4}.alarm-table th{text-align:left;white-space:nowrap}.alarm-table thead tr:first-child th{z-index:3;background:#f3f4f6;font-weight:600;position:sticky;top:0}.alarm-table thead tr:nth-child(2) th{z-index:2;background:#fff;border-bottom:1px solid #ddd;position:sticky;top:41px}.alarm-table th,.alarm-table td{text-align:center;border-bottom:1px solid #ddd;border-right:1px solid #ddd;padding:10px 12px}.alarm-table th:first-child,.alarm-table td:first-child{border-left:1px solid #ddd}.alarm-table td{text-overflow:ellipsis;vertical-align:middle;text-align:center;border-bottom:1px solid #e6e6e6;padding:8px 12px;overflow:hidden}.alarm-table tbody tr:hover{background-color:#f8fbff}.alarm-table tbody tr:nth-child(2n){background-color:#fafafa}.alarm-table input[type=checkbox]{cursor:pointer}.alarm-table thead input,.alarm-table thead select{box-sizing:border-box;width:100%}.alarm-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.alarm-actions button{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;padding:5px 10px;font-size:12px;transition:background .2s}.alarm-actions button:hover:not(:disabled){background:#1565c0}.alarm-actions button:disabled{cursor:not-allowed;background:#90caf9}.loading-message,.error-message{border-radius:4px;margin-top:20px;padding:12px}.loading-message{color:#2b5c9b;background:#eef5ff}.error-message{color:#b30000;background:#ffeaea}.enabled-yes,.resolved-yes,.ack-yes{color:#fafafa;background-color:#15803dee;font-weight:600}.enabled-no,.resolved-no,.ack-no{color:#fafafa;background-color:#b91c1cee;font-weight:600}.alarm-table-container{border:1px solid #ccc;max-height:calc(95vh - 220px);overflow:auto}.alarm-table tbody tr.selected{background-color:#dbeafe}.alarm-checkbox-column{text-align:center;width:50px;min-width:50px;max-width:50px;padding:0}.alarm-modal-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.alarm-modal{background:#fff;border-radius:6px;width:420px;max-width:calc(100vw - 40px);padding:20px;box-shadow:0 8px 30px #00000040}.alarm-modal h2{margin-top:0;margin-bottom:16px}.alarm-modal label{margin-bottom:6px;font-weight:600;display:block}.alarm-modal textarea{box-sizing:border-box;resize:vertical;border:1px solid #bbb;border-radius:4px;width:100%;padding:8px;font-family:inherit;font-size:14px}.alarm-modal p{margin-bottom:20px}.alarm-modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.alarm-modal-actions button{cursor:pointer;padding:7px 14px}.alarm-modal-actions button:disabled{cursor:default;opacity:.6}.alarm-modal-error{color:#b00020;margin-top:10px}.alarm-trend-overlay{z-index:5000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.alarm-trend-modal{background:#fff;border-radius:8px;flex-direction:column;width:1720px;max-width:95vw;height:920px;max-height:90vh;display:flex;overflow:hidden}.alarm-trend-header{border-bottom:1px solid #ddd;padding:20px}.alarm-trend-content{flex:1;padding:20px;overflow:auto}.alarm-trend-footer{border-top:1px solid #ddd;justify-content:flex-end;padding:16px;display:flex}.trend-range-selector{gap:8px;margin:12px 0 20px;display:flex}.trend-range-selector button{color:#333;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:6px 14px}.trend-range-selector button.active{color:#fff;background:#1976d2;border-color:#1976d2}.trend-range-selector button:hover:not(.active){background:#f3f6fb;border-color:#1976d2}.alarm-toolbar{align-items:center;gap:12px;height:56px;display:flex}.move-selected-button{opacity:0;pointer-events:none;color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;padding:.6rem 1.2rem;font-size:.95rem;transition:opacity .2s,transform .2s;transform:translateY(-2px)}.move-selected-button.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.move-selected-button:hover{background:#1565c0}.ack-selected-button{opacity:0;pointer-events:none;color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;padding:.6rem 1.2rem;font-size:.95rem;transition:opacity .2s,transform .2s;transform:translateY(-2px)}.ack-selected-button.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.ack-selected-button:hover{background:#1565c0}.notification-modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.notification-modal{background:#fff;border-radius:8px;flex-direction:column;width:90vw;max-width:1950px;height:80vh;padding:1.5rem;display:flex;box-shadow:0 10px 30px #00000040}.notification-modal h2{margin:0 0 1rem}.notification-modal button{cursor:pointer;align-self:flex-end;padding:.5rem 1rem}.notification-modal-content{flex:1;overflow:auto}.notification-close-button{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;align-self:flex-end;margin-top:1rem;padding:.6rem 1.2rem;font-size:.95rem;transition:background .2s}.notification-close-button:hover{background:#1565c0}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.move-modal{background:#fff;border-radius:8px;flex-direction:column;gap:1rem;min-width:300px;padding:1.5rem;display:flex}.move-modal select{width:100%}.move-modal-buttons{justify-content:flex-end;gap:.75rem;display:flex}@media (width<=900px){.db1-heating-row{grid-template-columns:1fr}}.room-card{box-sizing:border-box;color:#fafafa;cursor:pointer;background:#030037;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;width:100%;height:140px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 6px #00000026}.mobile-room{background:#030037}.room-card:hover{transform:translateY(-4px);box-shadow:0 4px 10px #00000040}.room-card-label{text-align:center;margin-bottom:6px;font-size:1rem;font-weight:600}.room-card-value{color:#fafafa;font-size:1.4rem;font-weight:700}.room-card-stab{color:#fafafa;font-size:1.2rem;font-weight:600}.room-tooltip{z-index:1000;pointer-events:none;opacity:0;background:#fff;border-radius:10px;padding:12px;transition:opacity .18s,transform .18s;position:absolute;transform:translateY(6px);box-shadow:0 4px 12px #00000040}.room-tooltip.visible{opacity:1;transform:translateY(0)}.room-tooltip.hidden{opacity:0;transform:translateY(6px)}.tooltip-grid{grid-template-columns:repeat(3,100px);gap:10px;display:grid}.tooltip-card{text-align:center;background:#f5f5f5;border-radius:8px;padding:8px}.tooltip-label{margin-bottom:4px;font-size:.8rem;font-weight:600}.tooltip-value{font-size:1rem;font-weight:700}.modal-card{text-align:center;cursor:pointer;background:#f5f5f5;border-radius:8px;padding:12px;transition:transform .15s,box-shadow .15s,background .15s}.modal-card:hover{transform:translateY(-3px);box-shadow:0 3px 8px #0003}.modal-card.selected{color:#fff;background:#0078d4;box-shadow:0 3px 8px #0000004d}.room-modal-overlay{z-index:2000;background:#00000073;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.room-modal{background:#fff;border-radius:12px;flex-direction:column;width:80vw;max-width:1400px;height:80vh;padding:24px;animation:.2s modalFadeIn;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #0000004d}.modal-content{flex:1;width:100%;margin-top:10px;padding-right:8px;overflow-y:auto}.modal-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:20px;display:grid}.modal-card{text-align:center;background:#f5f5f5;border-radius:8px;padding:12px}.modal-label{margin-bottom:4px;font-size:.85rem;font-weight:600}.modal-value{font-size:1.1rem;font-weight:700}.modal-close{color:#fff;cursor:pointer;background:#0078d4;border:none;border-radius:6px;padding:6px 12px;position:absolute;top:12px;right:12px}.db-olosuhteet-header{margin-bottom:20px}.db-olosuhteet-content{box-sizing:border-box;width:100%;padding-left:40px;padding-right:96px}.db-olosuhteet-grid-wrapper,.db-room-section{width:100%}.db-room-section-inner{flex-direction:column;width:100%;display:flex}.db-room-section-title{text-align:left;margin-bottom:12px}.db-room-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;width:100%;display:grid}@media (width<=600px){.db-olosuhteet-content{padding-left:16px;padding-right:16px}.db-room-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px}.room-card{height:110px}}.details-selectors{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px;display:flex}.custom-range{align-items:center;gap:8px;display:flex}.custom-range input{width:70px;padding:4px 6px}.custom-label{color:#444;margin-right:4px;font-weight:500}.view-switcher{gap:10px;margin-bottom:15px;display:flex}.view-button{cursor:pointer;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:8px 14px;font-size:14px;transition:all .2s}.view-button.active{color:#fff;background:#0366d6;border-color:#0366d6}.heatmap-container{flex-direction:column;gap:16px;font-family:sans-serif;display:flex}.heatmap-header{justify-content:flex-start;align-items:center;gap:12px;padding-left:8px;font-size:20px;font-weight:700;display:flex}.heatmap-content{flex-direction:column;gap:8px;display:flex}.calendar-column,.hourly-column{flex-direction:column;gap:12px;display:flex}.month-block,.month-hourly-block{flex-direction:column;gap:2px;display:flex}.month-title{margin-bottom:4px;font-weight:700}.month-days{grid-template-columns:repeat(7,14px);gap:2px;display:grid}.day-cell{border-radius:2px;width:14px;height:14px}.hourly-grid{flex-direction:column;gap:0;display:flex}.hourly-row{grid-template-columns:repeat(24,30px);gap:1px;display:grid}.hour-cell{border-radius:0;width:30px;height:3px}.weekday-labels{grid-template-columns:repeat(7,14px);gap:2px;margin-bottom:4px;display:grid}.weekday-label{text-align:center;color:#666;font-size:10px}.empty-cell{background-color:#0000;width:14px;height:14px}.month-row{flex-direction:row;align-items:flex-start;gap:32px;margin-bottom:0;display:flex}.month-row-left{flex-shrink:0}.month-row-right{flex-grow:1}.hour-labels{grid-template-columns:repeat(24,30px);gap:1px;margin-bottom:2px;display:grid}.hour-label{text-align:center;color:#666;font-size:11px;font-weight:700;line-height:1}.dimmed{opacity:.2;transition:opacity .15s ease-out}.day-cell,.hour-cell,.hourly-row{transition:opacity .15s ease-out}.heatmap-tooltip{color:#fff;pointer-events:none;z-index:9999;white-space:nowrap;background:#1e1e1ee6;border-radius:4px;padding:6px 10px;font-size:11px;position:fixed;transform:translate(4px,4px);box-shadow:0 2px 6px #0000004d}button:disabled{opacity:.4;cursor:not-allowed}.heatmap-button{cursor:pointer;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:8px 14px;font-size:14px;transition:all .2s}.heatmap-button:hover{background:#e9ecef}.db1-page{padding-bottom:40px}.db1-page-header{margin-bottom:24px}.db1-page-header h1{margin-bottom:0}.db1-charts{flex-direction:column;gap:32px;margin-left:96px;margin-right:96px;display:flex}.db1-chart-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;min-width:0;padding:14px 18px 10px;box-shadow:0 2px 8px #0000000f}.db1-heating-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}@media (width<=900px){.db1-heating-row{grid-template-columns:1fr}}.statcard-grid{flex-wrap:wrap;justify-content:center;gap:2rem;padding:2rem;display:flex}.statcard-wrapper{flex:0 420px;justify-content:center;display:flex}.energy-tooltip{color:#fff;pointer-events:none;white-space:nowrap;opacity:0;background:#000000bf;border-radius:4px;padding:6px 10px;font-size:13px;transition:opacity .12s ease-out,transform .12s ease-out;position:absolute;transform:scale(.95)}.energy-tooltip.visible{opacity:1;transform:scale(1)}.energy-flow{transition:fill-opacity .2s ease-in-out}.energy-submeter{transition:stroke .2s ease-in-out,stroke-width .2s ease-in-out}.dm-olosuhteet-header{margin-bottom:20px}.dm-olosuhteet-content{box-sizing:border-box;width:100%;padding-left:40px;padding-right:96px}.dm-olosuhteet-grid-wrapper,.dm-room-section{width:100%}.dm-room-section-inner{flex-direction:column;width:100%;display:flex}.dm-room-section-title{text-align:left;margin-bottom:12px}.dm-room-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;width:100%;display:grid}.info-panel{background:#fafafa;border-radius:10px;width:300px;padding:20px;box-shadow:0 2px 6px #0000001a}.info-panel h3{margin-bottom:10px}.info-panel ul{padding:0;list-style:none}.info-panel li{margin-bottom:8px;font-size:.95rem}.info-indent{margin-left:24px;list-style-type:none}.info-grid{grid-template-columns:max-content auto;gap:6px 12px;margin-top:12px;display:grid}.label{font-weight:600;display:block}.value{color:#333}.section{grid-column:1/span 2;margin-top:10px;font-weight:700}.indent{white-space:nowrap;padding-left:12px}.info-grid>div{min-width:0}@media (width<=600px){.dm-olosuhteet-content{padding-left:16px;padding-right:16px}.dm-room-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px}.room-card{height:110px}}.process-page{flex-direction:column;min-height:95vh;display:flex}.processes-toolbar{background:#f5f6f8;border:1px solid #b0b7c3;border-radius:6px;flex-shrink:0;gap:0;width:fit-content;margin:4px 0 16px;display:flex;overflow:hidden}.view-button{color:#374151;cursor:pointer;background:0 0;border:none;border-right:1px solid #b0b7c3;border-radius:0;padding:.55rem 1.25rem;font-size:.95rem;font-weight:500;transition:background-color .15s,color .15s}.view-button:last-child{border-right:none}.view-button:hover{background:#e5e7eb}.view-button.active{color:#fff;background:#1e1e2f}.view-button:focus-visible{outline-offset:-2px;outline:2px solid #1976d2}.data-download-page{color:#1f2937;background:#f5f7fa;min-height:100vh;padding:40px 24px 60px}.data-download-container{width:100%;max-width:1100px;margin:0 auto}.page-header{margin-bottom:28px}.page-header h1{color:#111827;margin:0 0 8px;font-size:30px;font-weight:700}.page-header p{color:#6b7280;margin:0;font-size:15px}.download-card,.preview-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 8px #0f172a0a}.download-card{margin-bottom:24px}.form-section{padding:28px}.form-section h2,.preview-card h2{color:#111827;margin:0;font-size:19px;font-weight:600}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px;margin-top:24px;display:grid}.form-field{min-width:0}.form-field label{color:#374151;margin-bottom:7px;font-size:14px;font-weight:600;display:block}.form-control{box-sizing:border-box;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:6px;width:100%;height:42px;padding:0 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.form-control:hover{border-color:#9ca3af}.form-control:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}.form-control:disabled{color:#9ca3af;cursor:not-allowed;background:#f3f4f6}.device-select__control{min-height:42px!important;box-shadow:none!important;border-color:#d1d5db!important;border-radius:6px!important}.device-select__control:hover{border-color:#9ca3af!important}.device-select__control--is-focused{border-color:#2563eb!important;box-shadow:0 0 0 3px #2563eb1f!important}.device-select__menu{z-index:10}.device-select__option--is-focused{color:#1e40af!important;background:#eff6ff!important}.device-select__option--is-selected{background:#2563eb!important}.radio-group{align-items:center;gap:20px;min-height:42px;display:flex}.radio-option{cursor:pointer;align-items:center;gap:7px;margin:0;font-weight:400!important;display:inline-flex!important}.radio-option input{accent-color:#2563eb;width:16px;height:16px;margin:0}.action-section{background:#fafafa;border-top:1px solid #e5e7eb;border-radius:0 0 10px 10px;padding:20px 28px}.primary-button,.download-button{cursor:pointer;border:none;border-radius:6px;padding:10px 17px;font-size:14px;font-weight:600;transition:background-color .15s,box-shadow .15s,transform 50ms}.primary-button{color:#fff;background:#2563eb}.primary-button:hover:not(:disabled){background:#1d4ed8}.primary-button:active:not(:disabled),.download-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{cursor:not-allowed;background:#93c5fd}.download-button{color:#fff;background:#059669}.download-button:hover:not(:disabled){background:#047857}.download-button-secondary{display:none}.message{border-radius:6px;margin:0 28px 20px;padding:12px 14px;font-size:14px;line-height:1.5}.message-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.message-info{color:#24557a;background:#eef6ff;border:1px solid #b6d7f5}.message-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.error-message{color:#dc2626;margin:7px 0 0;font-size:13px}.preview-card{padding:28px}.preview-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.preview-subtitle{color:#6b7280;margin:5px 0 0;font-size:13px}.device-info{background:#f9fafb;border:1px solid #e5e7eb;border-radius:7px;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;padding:16px;display:grid}.device-info-item{flex-direction:column;gap:4px;min-width:0;display:flex}.info-label{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.info-value{color:#111827;text-overflow:ellipsis;font-size:14px;overflow:hidden}.table-container{border:1px solid #e5e7eb;border-radius:7px;max-height:420px;overflow:auto}.data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.data-table th{z-index:1;color:#374151;text-align:left;text-transform:uppercase;letter-spacing:.03em;background:#f3f4f6;border-bottom:1px solid #d1d5db;padding:11px 14px;font-size:12px;font-weight:700;position:sticky;top:0}.data-table td{color:#374151;white-space:nowrap;border-bottom:1px solid #f0f0f0;padding:10px 14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#f9fafb}.table-container::-webkit-scrollbar{width:9px;height:9px}.table-container::-webkit-scrollbar-track{background:#f3f4f6}.table-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px}.table-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.preview-footer{color:#6b7280;justify-content:space-between;align-items:center;gap:20px;margin-top:16px;font-size:13px;display:flex}@media (width<=700px){.data-download-page{padding:24px 14px 40px}.form-grid{grid-template-columns:1fr}.form-section,.preview-card{padding:20px}.action-section{padding:18px 20px}.preview-header{flex-direction:column;align-items:flex-start}.device-info{grid-template-columns:1fr}.preview-footer{flex-direction:column;align-items:flex-start}.download-button-secondary{display:inline-block}.preview-header>.download-button{display:none}}.user-settings-page{max-width:600px;padding:2rem}.user-settings-page h1{margin-top:0;margin-bottom:2rem;font-size:1.5rem}.user-settings-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.user-settings-section h2{text-transform:uppercase;letter-spacing:.5px;color:#555;margin-top:0;margin-bottom:1rem;font-size:1rem}.user-settings-btn{color:#fff;cursor:pointer;background-color:#4a5c7f;border:none;border-radius:4px;padding:.5rem 1.25rem;font-size:.9rem}.user-settings-btn:hover{background-color:#3a4c6f}:root{--sn-grey100:#223d64;--sn-grey75:#596d8b;--sn-grey50:#909eb1;--sn-grey25:#c8ced8;--sn-red100:#f28f86;--sn-red75:#f5aba4;--sn-red50:#f8c7c2;--sn-red25:#fce3e1;--sn-blue100:#3264d2;--sn-blue75:#658bdd;--sn-blue50:#98b1e8;--sn-blue25:#ccd8f4;--sn-green100:#178773;--sn-green75:#51a596;--sn-green50:#8bc3b9;--sn-green25:#c5e1dc;--sn-teal100:#76beea;--sn-teal75:#98ceef;--sn-teal50:#badef4;--sn-teal25:#ddeffa;--sn-yellow100:#fdeb28;--sn-yellow75:#fdf05e;--sn-yellow50:#fef593;--sn-yellow25:#fefac9;--sn-brown100:#b19d7d;--sn-brown75:#c4b59d;--sn-brown50:#d8cebe;--sn-brown25:#ebe6de;--sn-purple100:#7263a9;--sn-purple75:#958abe;--sn-purple50:#b8b1d4;--sn-purple25:#dcd8e9;--sn-turquoise100:#57a1b1;--sn-turquoise75:#81b8c4;--sn-turquoise50:#abd0d8;--sn-turquoise25:#d5e7eb}
