:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#30283e;background:#f7f7fb;font-synthesis:none;font-size:14px;--purple:#7357d7;--purple-dark:#5b3fc0;--purple-light:#f0ecfc;--muted:#8a8097;--border:#eeedf3;--green:#228862;--red:#c44955;--amber:#af7624}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed}a{text-decoration:none;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #b5a4ed;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px;line-height:1.25;font-weight:750}h2{font-size:16px;font-weight:650;letter-spacing:-.3px}h3{font-size:15px;font-weight:650}small{font-size:12px}code{font-family:SFMono-Regular,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}input,select,textarea{color:#554461;border:1px solid #e1dce9;background:#fff;border-radius:8px;min-height:42px;padding:10px 12px;transition:border-color .15s;max-width:100%}input:hover,select:hover,textarea:hover{border-color:#c3bcda}input:focus,select:focus,textarea:focus{border-color:#9479e2;box-shadow:0 0 0 3px #7357d70c}input::placeholder,textarea::placeholder{color:#aaa0b7}input[type=range]{padding:4px;accent-color:var(--purple);border:0;width:100%}select{padding-right:28px}textarea{resize:vertical;line-height:1.7}button svg,a svg{flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;min-height:40px;padding:10px 15px;border:1px solid transparent;font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap;transition:background .15s}.button.primary{background:var(--purple);color:#fff;box-shadow:0 3px 6px #7357d713}.button.primary:hover{background:var(--purple-dark)}.button.secondary{background:#fff;border-color:#e2dfed;color:#756087}.button.secondary:hover{background:#f7f5fc;border-color:#cec6e8}.button.ghost{color:var(--purple);background:transparent;padding:10px 9px}.button.ghost:hover{background:var(--purple-light)}.button:disabled,.button.disabled{opacity:.45}.full-width{width:100%}.icon-button{border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:7px;padding:7px;min-width:32px;min-height:32px;color:#9d8bad}.icon-button:hover{background:#f0ecf8;color:var(--purple)}.text-button{border:0;background:none;display:inline-flex;align-items:center;gap:4px;color:var(--purple);font-size:11px;font-weight:600;padding:5px 0}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:5px;font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap}.badge.success{background:#ecf7f1;color:#25835f}.badge.danger{background:#fbedef;color:#bf4755}.badge.warning{background:#fcf4e5;color:#ae7929}.badge.purple{background:#f0ecfb;color:#7355c7}.badge.neutral{background:#f0eff4;color:#89748f}.status-dot{height:5px;width:5px;border-radius:100%;background:currentColor}.muted{color:var(--muted)}.small-text{font-size:11px;line-height:1.7}.danger-text{color:var(--red)}.nowrap{white-space:nowrap}.eyebrow{font-size:9px;font-weight:650;letter-spacing:1.5px;color:#b1a1be;display:block;margin-bottom:10px}.brand{display:flex;gap:11px;align-items:center;font-size:18px;font-weight:750;letter-spacing:-.5px;color:#5e4176}.brand div small{display:block;font-size:7px;letter-spacing:2px;font-weight:600;color:#b6a0c5;margin-top:5px}.brand-mark{height:37px;width:37px;display:flex;gap:3px;background:var(--purple);border-radius:10px;align-items:center;justify-content:center;box-shadow:0 5px 10px #7357d71a;flex-shrink:0}.brand-mark i{height:18px;background:#fff;width:3px;display:block}.brand-mark i:nth-child(2){width:2px}.brand-mark i:nth-child(3){width:4px}.brand.small{font-size:16px;gap:10px}.brand.small .brand-mark{height:34px;width:34px;border-radius:9px}.brand.small small{font-size:6px;letter-spacing:1.7px}.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:40;width:235px;top:0;bottom:0;left:0;background:#fff;border-right:1px solid #eee5f5;padding:31px 17px 0;display:flex;flex-direction:column}.sidebar-brand{margin:0 9px 40px;display:flex;align-items:center;justify-content:space-between}.nav-label{font-size:8px;color:#b79fc6;letter-spacing:1.4px;font-weight:600;padding:0 15px;margin-bottom:12px}nav{display:flex;flex-direction:column;gap:6px}nav button{border:0;background:transparent;display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 14px;border-radius:8px;color:#94809f;font-size:12px;font-weight:500}nav button:hover{background:#f8f7fc;color:var(--purple)}nav button.active{background:#f0ebfc;color:#7352d2;font-weight:600}nav button.active i{height:5px;width:5px;background:var(--purple);border-radius:50%;margin-left:auto}nav button svg{stroke-width:1.6}.sidebar-info{margin-top:auto;background:#faf6fe;border:1px solid #f2eafa;border-radius:10px;padding:16px;margin-bottom:20px}.offline-emblem{height:30px;width:30px;border:1px solid #eddef9;border-radius:8px;color:#b68dd4;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:10px}.sidebar-info strong{font-size:10px;font-weight:600;display:block;color:#9d75b1}.sidebar-info p{font-size:9px;line-height:1.8;color:#b398c1;margin-top:6px}.sidebar-bottom{display:flex;gap:10px;align-items:center;padding:17px 5px 22px;border-top:1px solid var(--border)}.user-avatar{height:34px;width:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#f0ebfc;color:var(--purple);font-size:12px;font-weight:650;flex-shrink:0}.sidebar-bottom div{min-width:0;flex:1}.sidebar-bottom strong{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis;color:#846196}.sidebar-bottom small{font-size:8px;color:#b89cc4;margin-top:4px;display:block}.main-shell{margin-left:235px}.topbar{height:77px;background:#ffffffce;border-bottom:1px solid #f0e8f8;display:flex;align-items:center;justify-content:space-between;padding:0 39px;gap:20px}.breadcrumb{display:flex;align-items:center;gap:11px;font-size:10px;color:#c2add0}.breadcrumb strong{color:#a685b8;font-weight:500}.event-picker{display:flex;align-items:center;gap:9px;color:#b195c5;background:#fff;border:1px solid #eee2f7;padding:3px 6px 3px 12px;border-radius:8px;max-width:360px}.event-picker select{font-size:11px;min-height:32px;padding:6px 25px 6px 0;border:0;border-radius:0;box-shadow:none;max-width:260px;background:transparent;color:#9a7caa}.event-picker .icon-button{border-left:1px solid #f0e6f7;border-radius:0;min-height:24px}.page-content{padding:33px 39px 0;max-width:1640px;margin:0 auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading p{font-size:11px;color:#ac92bc;line-height:1.6;margin-top:8px}.heading-actions{display:flex;align-items:center;gap:10px;padding-bottom:3px;color:#ba9cce;flex-shrink:0}.heading-actions select{font-size:11px;min-height:37px;border-color:#ede1f7;min-width:123px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid #eee3f7;border-radius:12px;padding:20px;box-shadow:0 4px 10px #4a135c02}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.stat-top>span:first-child{font-size:10px;color:#a17fb4}.stat-icon{height:32px;width:32px;display:flex;align-items:center;justify-content:center;border-radius:9px}.stat-icon.purple{background:#f3ebfc;color:#b085d4}.stat-icon.red{background:#fdf0f2;color:#dd7a85}.stat-icon.amber{background:#fff6e9;color:#d5a357}.stat-icon.green{background:#edf8f2;color:#57a786}.stat-value{display:block;font-size:30px;font-weight:700;letter-spacing:-1px;margin:12px 0 9px;line-height:1;color:#594066}.stat-card small{color:#b79bc5;font-size:9px}.card{background:#fff;border:1px solid #eee4f7;border-radius:12px;box-shadow:0 3px 10px #48135402;overflow:hidden}.card-heading{padding:23px 24px 18px;display:flex;justify-content:space-between;align-items:center;gap:20px}.card-heading h2{color:#80608f}.card-heading p{color:#b49ac6;font-size:10px;margin-top:6px;line-height:1.6}.chart-card{margin-bottom:23px}.chart-legend{display:flex;align-items:center;gap:18px;font-size:9px;color:#b194c7}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{height:6px;width:6px;border-radius:2px}.chart-legend .accepted{background:#ab93eb}.chart-legend .duplicate{background:#e8959d}.chart-legend .invalid{background:#e8c38a}.chart-wrap{display:flex;height:235px;margin:12px 27px 14px 25px}.chart-y{width:30px;display:flex;flex-direction:column;justify-content:space-between;padding-bottom:29px;font-size:8px;color:#c8b0d4;flex-shrink:0}.chart-plot{position:relative;flex:1;min-width:0;padding-bottom:28px}.chart-grid{position:absolute;top:0;right:0;bottom:28px;left:0;display:flex;flex-direction:column;justify-content:space-between}.chart-grid i{display:block;border-top:1px dashed #f0e5f8;height:1px}.chart-bars{height:100%;display:flex;align-items:flex-end;gap:clamp(3px,.9vw,13px)}.chart-column{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;position:relative;align-items:center;min-width:0}.bar{width:100%;min-width:3px;max-width:39px;background:none;border:0;border-radius:4px 4px 0 0;overflow:hidden;display:flex;flex-direction:column;padding:0;z-index:1}.bar i{display:block;min-height:0}.bar-accepted{background:#aa91e8}.bar-duplicate{background:#e9949c}.bar-invalid{background:#e8c28c}.bar:hover{filter:brightness(.94)}.chart-label{position:absolute;top:calc(100% + 12px);font-size:7px;color:#bda1cf;white-space:nowrap;max-width:100px;text-align:center}.chart-tooltip{position:absolute;z-index:8;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:5px;background:#513166;color:#fff;padding:11px 13px;border-radius:7px;min-width:125px;font-size:10px;box-shadow:0 5px 15px #271c4430;pointer-events:none}.chart-tooltip strong{font-size:11px;margin-bottom:3px}.chart-footer{border-top:1px solid #f5eafa;display:flex;justify-content:space-between;padding:13px 24px;gap:12px;font-size:8px;color:#bfa0d1}.chart-footer span:first-child{display:flex;align-items:center;gap:7px}.chart-empty{height:225px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#b79acb;font-size:11px}.overview-bottom{display:grid;grid-template-columns:1.18fr 1fr;gap:23px}.device-summary-list{padding:0 24px 12px}.device-summary{display:flex;align-items:center;gap:11px;padding:15px 0;border-bottom:1px solid #f5eafb}.device-summary:last-child{border:0}.device-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#f9f2fe;color:#b598d3;border-radius:8px}.device-summary>div{flex:1;min-width:0}.device-summary strong{font-size:11px;font-weight:600;display:block;color:#9673a9}.device-summary small{font-size:8px;color:#bda0ca;margin-top:5px;display:block}.metric-rows{padding:0 24px}.metric-rows div{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid #f5eafa;font-size:11px;color:#a585b7}.metric-rows div:last-child{border:0}.metric-rows strong{font-size:15px;color:#946eab}.subtle-note{font-size:9px;line-height:1.8;color:#b190c6;background:#fcf7ff;padding:13px 17px;border-radius:6px;margin:10px 24px 20px}.welcome-banner{display:flex;align-items:center;justify-content:space-between;background:#f0e8fc;border:1px solid #eadbfb;border-radius:12px;padding:22px 24px;margin-top:24px;gap:20px}.welcome-banner>div{display:flex;align-items:center;gap:16px;color:#b490d5}.welcome-banner strong{display:block;color:#996bb8;font-size:12px}.welcome-banner p{margin-top:5px;color:#b694c8;font-size:10px}.app-footer{display:flex;justify-content:space-between;color:#c9aed8;font-size:8px;padding:31px 0 22px;margin-top:9px}.table-toolbar{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:15px}.table-toolbar>.muted{font-size:10px;margin-left:auto}.table-toolbar select{font-size:11px}.search-field{display:flex;align-items:center;gap:10px;padding:0 12px;background:#fcf9ff;border:1px solid #f0e2fa;border-radius:8px;max-width:350px;flex:1;color:#bea0d2}.search-field input{border:0;background:none;padding:10px 0;width:100%;min-width:0;box-shadow:none;min-height:39px;font-size:11px}.search-field:focus-within{border-color:#b196dc}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}th{font-weight:500;font-size:9px;color:#b193c5;background:#fefbff;padding:15px 23px;border-bottom:1px solid #f4e7fc;white-space:nowrap}td{padding:17px 23px;border-bottom:1px solid #f8edfc;color:#a580b6}td:last-child{padding-left:5px;width:1%}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fefbff}.ticket-code{font-size:11px;font-weight:500;color:#976aad;max-width:360px;display:inline-block}.clock-warning{color:#bb8a47;font-size:9px;display:block;margin-top:5px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 23px;border-top:1px solid var(--border);color:#b494c9;font-size:10px}.pagination>div{display:flex;gap:8px}.pagination .button{font-size:10px;min-height:34px}.empty{padding:46px 20px 42px;text-align:center;display:flex;flex-direction:column;align-items:center}.empty-icon{background:#f6edfc;border-radius:14px;color:#b892de;width:59px;height:59px;display:flex;justify-content:center;align-items:center;margin-bottom:17px}.empty h3{font-size:14px;color:#9e70b4;margin-bottom:9px}.empty p{color:#b393c5;font-size:11px;line-height:1.8;max-width:390px;margin-bottom:19px}.skeleton-group{padding:20px;display:flex;flex-direction:column;gap:13px}.skeleton{height:39px;border-radius:7px;background:linear-gradient(90deg,#f7edfc,#fcf8ff,#f7edfc);background-size:200% 100%;animation:shimmer 1.5s linear infinite}.skeleton:nth-child(2n){width:88%}@keyframes shimmer{to{background-position:-200% 0}}.spinner{display:inline-block;height:17px;width:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .75s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.error-box{display:flex;align-items:flex-start;gap:10px;color:#b25263;background:#fcf1f3;border:1px solid #f3dfe5;border-radius:8px;padding:12px 14px;font-size:11px;line-height:1.6;margin:0 0 18px;overflow-wrap:anywhere}.card>.error-box{margin:20px 24px}.error-box svg{flex-shrink:0;margin-top:2px}.error-box span{flex:1}.error-box button{border:0;background:transparent;color:#a9465a;text-decoration:underline;white-space:nowrap;font-size:10px}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;background:#34174055;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:28px}.modal{background:#fff;border-radius:15px;width:460px;max-width:100%;max-height:calc(100dvh - 56px);overflow-y:auto;box-shadow:0 20px 80px #43135233;outline:none;padding:25px 28px}.modal.wide{width:660px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:25px}.modal-head h2{font-size:20px;font-weight:700;letter-spacing:-.6px;color:#8c5da5}.modal-head p{color:#b494c8;line-height:1.7;font-size:10px;margin-top:7px}.modal-head>.icon-button{margin-top:-5px;margin-right:-7px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:19px}.field>span{font-size:11px;font-weight:550;color:#9f75b6}.field small{color:#b493c9;font-size:9px;line-height:1.8}.field>input,.field>select,.field>textarea{width:100%;font-size:11px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.modal-actions{padding-top:20px;border-top:1px solid #f2e3fc;margin-top:24px;display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.info-box{display:flex;align-items:flex-start;gap:11px;border:1px solid #f0defa;background:#fdf8ff;border-radius:8px;padding:14px;font-size:10px;color:#b48acc;line-height:1.8;margin-bottom:19px}.info-box svg{margin-top:2px;flex-shrink:0;color:#c2a0df}.info-box.warning{background:#fffaf1;border-color:#f6e9cc;color:#b48c48}.info-box.warning svg{color:#caac79}.segmented{display:flex;background:#faf2ff;padding:4px;border-radius:8px;margin-bottom:22px;gap:4px}.segmented button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;color:#c0a0d2;padding:10px;border-radius:6px;font-size:11px}.segmented button.active{background:#fff;color:#b185d2;box-shadow:0 2px 5px #4b0f6b08}.upload-zone{border:1.5px dashed #e0c8f2;background:#fefaff;border-radius:9px;display:flex;align-items:center;flex-direction:column;text-align:center;position:relative;padding:30px 15px;margin-bottom:22px;cursor:pointer}.upload-zone:hover{border-color:#b78fdb;background:#fdf6ff}.upload-zone input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;height:100%;width:100%;cursor:pointer}.upload-zone:focus-within{outline:3px solid #b5a4ed}.upload-icon{height:44px;width:44px;border-radius:12px;background:#f7eafc;color:#c198e3;display:flex;align-items:center;justify-content:center;margin-bottom:13px}.upload-zone strong{font-size:12px;color:#b281cc;overflow-wrap:anywhere;max-width:100%}.upload-zone>span:not(.upload-icon){font-size:10px;color:#c09bd3;margin-top:8px}.upload-zone small{font-size:9px;color:#d0b0dc;margin-top:13px}.import-preview{border:1px solid #f2e0fc;border-radius:9px;padding:18px 20px;margin-bottom:20px}.import-preview .card-heading{padding:0 0 20px;gap:15px}.import-preview .card-heading p{font-size:9px}.preview-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:#fdf6ff;border-radius:7px;padding:16px 12px;margin-bottom:16px}.preview-counts>div{display:flex;flex-direction:column;gap:5px;text-align:center}.preview-counts strong{font-size:21px;color:#b07fcc}.preview-counts span{font-size:9px;color:#c39dd4}.code-samples{display:flex;gap:7px;flex-wrap:wrap}.code-samples code{background:#faf0ff;color:#b99dcd;padding:6px 8px;border-radius:5px;font-size:10px}.preview-errors{margin-top:15px;color:#bc8f9d;font-size:10px;line-height:1.7}.preview-errors p{margin-top:5px}.tabs{display:flex;gap:20px;border-bottom:1px solid #f3e4fc;margin-bottom:25px;overflow-x:auto}.tabs button{border:0;border-bottom:2px solid transparent;color:#c29ed4;padding:0 1px 13px;background:none;font-size:11px;white-space:nowrap}.tabs button.active{border-bottom-color:#b78bdd;color:#a874c6;font-weight:600}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0 18px;gap:15px;position:relative;cursor:pointer}.toggle-row div{flex:1}.toggle-row strong{display:block;font-size:11px;color:#ad80c5;font-weight:550}.toggle-row small{display:block;font-size:9px;color:#c2a0d0;line-height:1.7;margin-top:5px}.toggle-row input{position:absolute;right:0;opacity:0;width:39px;height:24px;margin:0;min-height:0;cursor:pointer;z-index:1}.toggle-track{height:22px;width:39px;border-radius:12px;background:#edddf6;position:relative;flex-shrink:0}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;height:16px;width:16px;border-radius:50%;background:#fff;transition:transform .15s}.toggle-row input:checked+.toggle-track{background:#bc8bdf}.toggle-row input:checked+.toggle-track:after{transform:translate(17px)}.toggle-row input:focus-visible+.toggle-track{outline:3px solid #b5a4ed;outline-offset:3px}.config-state{background:#fdf6ff;border-radius:7px;display:flex;align-items:flex-start;gap:8px;color:#c099d2;padding:12px 14px;margin-top:20px;font-size:9px;line-height:1.7}.config-state svg{flex-shrink:0}.wled-preview{display:flex;gap:12px;justify-content:space-around;background:#fdf7ff;border-radius:8px;padding:20px;margin-bottom:20px}.wled-preview>div{display:flex;align-items:center;gap:8px;font-size:10px;color:#c09dce}.wled-preview i{width:12px;height:12px;border-radius:50%}.wled-preview .white{background:#fff;border:1px solid #ecddf4}.wled-preview .green{background:#85c5aa;box-shadow:0 0 9px #a2dfba99}.wled-preview .red{background:#e195a4;box-shadow:0 0 9px #edb9c399}.pair-success{text-align:center}.pair-icon{width:54px;height:54px;display:inline-flex;align-items:center;justify-content:center;border-radius:15px;background:#f8e9ff;color:#c895e6;margin-bottom:15px}.pair-success h3{color:#b680ce;font-size:13px}.pair-code{font-family:SFMono-Regular,monospace;font-weight:650;font-size:28px;letter-spacing:5px;color:#b576d7;background:#fdf5ff;border:1px solid #f5e3ff;border-radius:9px;padding:22px 10px;margin:18px 0 14px;overflow-wrap:anywhere}.pair-success p{color:#c6a2d5;font-size:9px;margin:15px 0}.steps{padding-left:18px;font-size:10px;line-height:1.8;color:#bd97ce;margin:25px 0 0}.steps li{padding-left:4px;margin-top:12px}.steps code{font-size:10px;color:#b888d0}.devices-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.device-card{padding:23px 24px 19px}.device-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.device-avatar{height:49px;width:49px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#f9efff;color:#bf94df}.device-card h2{font-size:19px;color:#9e70b7;overflow-wrap:anywhere}.device-event{font-size:10px;color:#bd98ce;margin-top:7px}.readiness{display:flex;justify-content:space-between;gap:8px;margin:24px 0 20px;padding-bottom:20px;border-bottom:1px solid #f5e8fd}.readiness>span{font-size:9px;color:#b18abd;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.readiness i{height:5px;width:5px;border-radius:50%;background:#efdff7;flex-shrink:0}.readiness i.success{background:#7eba9c}.readiness i.warning{background:#d6b278}.readiness small{display:block;width:100%;font-size:8px;color:#c8acd6;padding-left:10px}.device-metrics{display:grid;grid-template-columns:1fr 1fr;gap:15px;background:#fef9ff;padding:15px;border-radius:8px;margin-bottom:21px}.device-metrics>div{display:flex;justify-content:space-between;align-items:center;gap:10px}.device-metrics span{font-size:9px;color:#c39dce}.device-metrics strong{font-size:18px;color:#b286ce;font-weight:600}.device-metadata{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:9px;color:#bd98cc;align-items:center}.device-metadata strong{font-weight:500;color:#b084c4;text-align:right;overflow-wrap:anywhere}.device-metadata .badge{justify-self:end;font-size:9px}.device-actions{display:flex;align-items:center;gap:10px;border-top:1px solid #f5e7fd;padding-top:17px;margin-top:22px}.device-actions .button{font-size:11px;min-height:35px}.device-card .subtle-note{margin:19px 0 0;font-size:9px}.page-footnote{display:flex;align-items:flex-start;gap:9px;color:#c2a0d2;font-size:9px;line-height:1.8;margin:22px 0 0}.page-footnote svg{margin-top:2px;flex-shrink:0}.source-list{display:flex;flex-direction:column;gap:18px}.source-card{padding:23px 24px 19px}.source-main{display:flex;align-items:center;gap:15px;margin-bottom:23px}.source-main>div{min-width:0;flex:1}.source-icon{height:47px;width:47px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#faecff;color:#c69adf;flex-shrink:0}.source-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.source-title h2{color:#ae79c4;font-size:16px}.source-url{color:#c8a6d3;font-size:10px;line-height:1.6;margin-top:8px;overflow-wrap:anywhere}.source-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.source-stats>div{min-width:0}.source-stats span{font-size:9px;color:#c59fd6;display:block;margin-bottom:8px}.source-stats strong{font-size:10px;font-weight:500;color:#b38ac7;overflow-wrap:anywhere}.source-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #f6e9fe;margin-top:22px;padding-top:15px}.source-footer>div{display:flex;gap:8px}.source-footer .button{font-size:11px;min-height:35px}.source-card .error-box{margin:18px 0 0;font-size:10px}.detail-list{margin:0}.detail-list>div{display:grid;grid-template-columns:1fr 1.4fr;gap:15px;border-bottom:1px solid #f8eafe;padding:13px 0;font-size:10px}.detail-list dt{color:#c39fd4}.detail-list dd{margin:0;color:#b486c3;text-align:right;overflow-wrap:anywhere}.date-filter{display:flex;align-items:center;gap:15px;padding:15px 20px;background:#fff;border:1px solid #f1e3fa;border-radius:10px;margin-bottom:22px}.date-filter .field{margin:0;gap:5px;min-width:165px}.date-filter>span{color:#c7a4d3;font-size:9px;margin-top:20px}.date-filter input{font-size:11px}.toast{position:fixed;z-index:120;bottom:24px;right:24px;max-width:480px;background:#fff;border:1px solid #eed8fc;box-shadow:0 10px 40px #52146818;border-radius:11px;display:flex;align-items:center;gap:11px;padding:14px 15px;font-size:11px;color:#b080c4}.toast>span{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#f7eafa;color:#bd87dc;flex-shrink:0}.toast p{line-height:1.7}.toast>.icon-button{margin-left:7px}.mobile-only,.sidebar-overlay{display:none}.startup{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;color:#b48acc}.startup p{font-size:11px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-intro{background:linear-gradient(130deg,#f6efff,#f8f4fc 60%,#f0e5fc);padding:46px 60px;display:flex;flex-direction:column;min-height:100vh;position:relative;overflow:hidden}.login-intro:after{content:"";position:absolute;width:500px;height:500px;border:1px solid #e6d1f8;opacity:.6;transform:rotate(45deg);border-radius:120px;bottom:-370px;right:-170px}.login-copy{max-width:430px;margin:auto 0;padding:65px 0}.login-copy .eyebrow{font-size:8px;letter-spacing:1.7px;color:#b7a0c9;margin-bottom:23px}.login-copy h1{font-size:55px;line-height:1.19;letter-spacing:-2.5px;color:#744788;font-weight:750}.login-copy h1 span{color:#b07fce}.login-copy>p{max-width:340px;color:#b094bf;font-size:11px;line-height:1.9;margin-top:25px}.login-note{display:flex;gap:12px;align-items:center;margin-top:41px;padding-top:22px;border-top:1px solid #efdcf9;max-width:360px;color:#c29bdc}.login-note strong{display:block;font-size:10px;color:#b18dc6;font-weight:550}.login-note span{display:block;font-size:9px;color:#c7aad6;margin-top:6px}.login-footer{font-size:9px;color:#ccb1db}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:50px 35px}.login-card{width:340px;max-width:100%}.login-emblem{display:flex;align-items:center;justify-content:center;width:53px;height:53px;background:#faedff;border-radius:14px;color:#c494df;margin-bottom:27px}.login-card h2{font-size:26px;letter-spacing:-.9px;font-weight:700;color:#875b99}.login-card>p{font-size:11px;line-height:1.7;color:#bfa1ce;margin-top:11px;margin-bottom:32px}.login-card .field{margin-bottom:20px}.login-card .field>span{color:#b18cc6;font-size:11px}.login-card .field input{border-color:#efddf8;padding:13px 14px;min-height:44px}.login-card .full-width{margin-top:9px;padding:13px;min-height:44px}.secure-note{display:flex;align-items:center;justify-content:center;gap:7px;font-size:9px;color:#c9acd6;margin-top:24px}.auth-message{position:fixed;z-index:5;top:15px;right:20px;width:350px;max-width:calc(100% - 40px)}.sidebar-info p,.sidebar-bottom small,.page-heading p,.stat-card small,.card-heading p,.chart-legend,.chart-y,.chart-label,.chart-footer,.device-summary small,.metric-rows div,.subtle-note,.welcome-banner p,.app-footer,th,.pagination,.empty p,.modal-head p,.field small,.info-box,.upload-zone>span:not(.upload-icon),.upload-zone small,.preview-counts span,.config-state,.wled-preview>div,.pair-success p,.steps,.device-event,.readiness>span,.readiness small,.device-metrics span,.device-metadata,.page-footnote,.source-url,.source-stats span,.detail-list dt,.date-filter>span,.login-copy>p,.login-note span,.login-footer,.login-card>p,.secure-note{color:#8e7c9c}.field>span,.source-stats strong,.source-title h2,.source-footer,.device-metadata strong,.device-card h2,.device-summary strong,.device-metrics strong,.detail-list dd,.ticket-code,td,.brand,.sidebar-bottom strong,.stat-top>span:first-child,.card-heading h2,.empty h3,.login-card h2,.login-copy h1{color:#665176}.nav-label,.eyebrow,.event-picker select,.breadcrumb strong,nav button{color:#9683a8}.stat-value{color:#43334f}.toggle-row strong{color:#8f6caa}.toggle-row small{color:#9d8bae}@media(min-width:1550px){.page-content,.topbar{padding-left:50px;padding-right:50px}.chart-wrap{height:290px}.stat-card{padding:25px}.stat-value{font-size:36px}}@media(max-width:1200px){.sidebar{width:218px;padding-left:12px;padding-right:12px}.main-shell{margin-left:218px}.topbar{padding:0 25px}.page-content{padding:28px 25px 0}.stats-grid{gap:12px}.stat-card{padding:16px}.stat-top>span:first-child{font-size:9px}.stat-icon{height:29px;width:29px}.stat-value{font-size:27px}.overview-bottom{gap:16px;grid-template-columns:1fr 1fr}.card-heading,.device-summary-list{padding-left:20px;padding-right:20px}.device-summary{gap:8px}.device-summary .badge{font-size:8px}.source-stats{grid-template-columns:1fr 1fr;gap:20px}.login-intro{padding:40px}.login-copy h1{font-size:47px}.devices-grid{gap:16px}.device-card{padding:20px}.device-metrics{padding:13px}.device-metrics>div{flex-direction:column;align-items:flex-start;gap:7px}}@media(max-width:980px){.sidebar{width:205px}.main-shell{margin-left:205px}.brand.small{font-size:14px}.brand.small small{font-size:6px}.brand.small .brand-mark{height:31px;width:31px}nav button{font-size:11px;padding:12px 10px;gap:9px}.page-content{padding:25px 22px 0}.page-heading{align-items:flex-start;gap:15px}.page-heading h1{font-size:27px}.page-heading .heading-actions{flex-wrap:wrap;justify-content:flex-end}.heading-actions .button{font-size:10px;padding:9px 12px}.stats-grid{grid-template-columns:1fr 1fr}.stat-top>span:first-child{font-size:10px}.stat-value{font-size:30px}.overview-bottom{grid-template-columns:1fr}.chart-legend{gap:10px;font-size:9px}.devices-grid{grid-template-columns:1fr}.device-card{padding:24px}.readiness{justify-content:flex-start;gap:30px}.device-metrics>div{flex-direction:row;align-items:center}.source-footer{align-items:flex-start}.source-footer>div{flex-shrink:0;gap:5px}.table-toolbar{flex-wrap:wrap;gap:10px;padding:17px 20px}.toolbar-total{width:100%;margin-left:0!important}.event-picker{max-width:285px}.event-picker select{max-width:210px}.breadcrumb-home{display:none}.date-filter{flex-wrap:wrap}.date-filter>span{margin-top:0;width:100%}.login-copy h1{font-size:42px}.login-intro{padding:35px}.login-note{max-width:300px}}@media(max-width:760px){.mobile-only{display:inline-flex}.sidebar{transform:translate(-100%);transition:transform .2s;width:240px;padding:25px 16px 0}.sidebar.open{transform:translate(0)}.sidebar-brand{margin-left:5px;margin-right:2px}.sidebar-brand .mobile-only{margin-right:-5px}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#42164d4d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:39}.main-shell{margin-left:0}.topbar{height:65px;padding:0 17px;gap:10px}.breadcrumb{gap:5px}.breadcrumb strong,.breadcrumb>svg{display:none}.event-picker{max-width:calc(100% - 50px);flex:1;margin-left:auto;padding-left:9px}.event-picker select{max-width:100%;flex:1;min-width:0}.page-content{padding:28px 19px 0}.page-heading{margin-bottom:22px;flex-wrap:wrap;gap:16px}.page-heading h1{font-size:28px}.page-heading p{font-size:10px}.eyebrow{font-size:8px}.heading-actions{padding:0;gap:8px}.page-heading .heading-actions{justify-content:flex-start}.stats-grid{gap:12px;margin-bottom:18px}.stat-card{padding:17px}.stat-top>span:first-child{font-size:9px}.stat-value{font-size:29px;margin-top:13px}.stat-card small{font-size:9px;line-height:1.6;display:block}.chart-card{margin-bottom:18px}.card-heading{padding:20px 18px 15px;align-items:flex-start;gap:12px}.chart-card .card-heading{flex-direction:column;gap:14px}.chart-legend{font-size:9px;gap:14px}.chart-wrap{height:206px;margin:10px 17px 14px 18px}.chart-label{font-size:7px}.chart-footer{padding:12px 18px;flex-direction:column;gap:7px;font-size:8px}.overview-bottom{gap:18px}.device-summary-list{padding:0 18px 10px}.metric-rows{padding:0 18px}.metric-rows div{font-size:11px}.subtle-note{margin:10px 18px 18px;font-size:9px}.welcome-banner{padding:20px;flex-direction:column;align-items:flex-start;gap:20px}.welcome-banner>div{gap:13px}.welcome-banner p{font-size:10px;line-height:1.7}.table-toolbar{padding:17px 18px}.table-toolbar .search-field{max-width:none;min-width:150px}.table-toolbar>.muted{font-size:10px}.table-toolbar select{min-width:150px;flex:1;font-size:11px}th{padding:13px 17px;font-size:9px}td{padding:16px 17px;font-size:11px}.ticket-code{font-size:11px;max-width:210px}.pagination{padding:14px 17px;gap:10px}.pagination>span{font-size:9px}.pagination .button{padding:8px;font-size:10px}.modal-backdrop{padding:14px}.modal{max-height:calc(100dvh - 28px);padding:23px 20px;border-radius:12px}.modal-head h2{font-size:19px}.modal-head p{font-size:10px}.modal-head{margin-bottom:22px}.modal-actions .button{font-size:11px;padding:10px 12px}.form-grid{gap:0 13px}.form-grid .field>span{font-size:11px}.tabs{gap:15px}.tabs button{font-size:11px}.preview-counts{padding:13px 8px;gap:5px}.preview-counts strong{font-size:20px}.preview-counts span{font-size:8px}.import-preview{padding:16px 14px}.devices-grid{gap:18px}.device-card{padding:22px 20px}.device-card h2{font-size:18px}.readiness{gap:25px}.source-card{padding:20px}.source-main{gap:12px}.source-icon{height:42px;width:42px}.source-title{gap:7px}.source-title h2{font-size:15px}.source-title .badge{font-size:9px}.source-stats{gap:20px 14px}.source-footer{flex-direction:column;gap:14px}.source-footer .button{font-size:10px}.source-footer>div{width:100%}.source-footer>div .button{flex:1}.date-filter{padding:16px}.date-filter .field{min-width:0;flex:1}.date-filter input{min-width:0}.toast{right:14px;left:14px;bottom:14px;max-width:none;font-size:11px}.app-footer{font-size:8px;padding:24px 0 18px}.login-layout{grid-template-columns:1fr}.login-intro{min-height:0;padding:28px 26px 30px;display:block}.login-intro .brand{font-size:16px}.login-intro .brand-mark{height:34px;width:34px}.login-intro:after{display:none}.login-copy{padding:30px 0 0;margin:0;max-width:none}.login-copy .eyebrow{font-size:7px;margin-bottom:15px}.login-copy h1{font-size:34px;line-height:1.18;letter-spacing:-1.4px}.login-copy h1 br{display:none}.login-copy h1 span{display:block}.login-copy>p,.login-note,.login-footer{display:none}.login-form-wrap{padding:34px 26px 40px;align-items:flex-start}.login-card{width:100%;max-width:380px}.login-emblem{display:none}.login-card h2{font-size:23px}.login-card>p{margin-bottom:27px;font-size:11px}.auth-message{top:10px;right:10px;max-width:calc(100% - 20px)}.pair-code{font-size:25px;letter-spacing:4px}.empty{padding:36px 20px}}@media(max-width:390px){.page-content{padding-left:14px;padding-right:14px}.stat-card{padding:14px}.stat-icon{height:25px;width:25px}.stat-icon svg{width:16px;height:16px}.stat-value{font-size:26px}.stats-grid{gap:9px}.stat-top>span:first-child{font-size:9px}.form-grid{grid-template-columns:1fr}.readiness{gap:15px}.heading-actions .button{font-size:10px;padding:9px 10px}.modal-backdrop{padding:8px}.modal{max-height:calc(100dvh - 16px);padding:20px 17px}.device-actions{gap:6px}.device-actions .button{padding:8px;font-size:10px}.chart-legend{gap:9px;font-size:8px}.wled-preview{gap:8px;padding:16px 10px}.wled-preview>div{font-size:9px;gap:5px}.chart-label{font-size:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.chart-wrap.scrollable{overflow-x:auto;overflow-y:visible;padding-bottom:8px;height:250px}.chart-wrap.scrollable .chart-y{position:sticky;left:0;background:#fff;z-index:5}.chart-wrap.scrollable .chart-bars{gap:4px}.chart-tooltip{bottom:35px}.chart-tooltip strong,.chart-tooltip span{color:#fff}nav button{font-size:13px}.page-heading p,.stat-top>span:first-child,.table-toolbar select,.field>span,.field>input,.field>select,.field>textarea,.search-field input,.table-toolbar>.muted,.metric-rows div{font-size:12px}table,.ticket-code{font-size:12px}.stat-card small,.card-heading p,.device-event,.source-url,.source-stats strong,.config-state,.page-footnote,.subtle-note,.sidebar-info p{font-size:11px}.chart-legend{font-size:10px}.badge{font-size:11px}.modal-head p,.info-box,.field small,.empty p,.steps{font-size:12px;line-height:1.7}.brand.small small{font-size:7px}.nav-label,.eyebrow{font-size:9px}.readiness>span,.device-metadata,.source-stats span{font-size:11px}.readiness small{font-size:10px}.stat-value{font-weight:700}@media(max-width:760px){.chart-legend{font-size:9px}.page-heading p,.stat-top>span:first-child,.stat-card small{font-size:11px}.source-stats strong,.source-stats span,.device-metadata{font-size:10px}.modal-head p,.info-box,.field small,.steps{font-size:11px}.readiness>span{font-size:10px}.badge{font-size:10px}}@media(max-width:760px){.sidebar{visibility:hidden}.sidebar.open{visibility:visible}}.hardware-errors{display:flex;flex-direction:column;gap:7px;margin:-7px 0 19px}.hardware-error{display:flex;align-items:flex-start;gap:8px;border:1px solid #f0dfc8;background:#fff9ef;color:#9d713c;border-radius:7px;padding:9px 11px;font-size:11px;line-height:1.6;overflow-wrap:anywhere}.hardware-error svg{flex-shrink:0;margin-top:2px}.hardware-error strong{font-weight:600}.device-actions{flex-wrap:wrap}.device-actions .button.ghost{margin-left:auto}.update-current{display:flex;align-items:center;gap:13px;background:#faf7fe;border:1px solid #eee4f7;border-radius:9px;padding:17px;margin-bottom:20px}.update-version-icon{height:43px;width:43px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#f0e8fb;color:#a78bc9}.update-current>div{flex:1}.update-current small{display:block;font-size:11px;color:#9b87aa}.update-current strong{display:block;font-size:20px;font-weight:650;color:#765c8a;margin-top:6px}.update-bootstrap{text-align:center;background:#fcf9ff;border:1px solid #f0e6f8;border-radius:10px;padding:26px 22px;margin-bottom:24px;color:#ab8bc6}.update-bootstrap h3{font-size:15px;color:#8b6aa5;margin:14px 0 10px}.update-bootstrap p{font-size:12px;color:#a38baf;line-height:1.8;max-width:440px;margin:0 auto 20px}.update-pending{border:1px solid #e7dbf7;background:#f8f3fe;border-radius:9px;padding:16px;margin-bottom:20px;color:#a47bc2}.update-pending>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.update-pending strong{font-size:12px;font-weight:600;color:#9771b3}.update-pending .badge{margin-left:auto}.update-pending p{font-size:12px;line-height:1.8;color:#a88eb9;margin-top:13px}.update-pending small{font-size:10px;display:block;margin-top:8px;color:#ba9cc9}.release-card{border:1px solid #ede2f7;border-radius:10px;padding:20px;margin-bottom:14px}.release-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.release-heading .eyebrow{font-size:8px;margin-bottom:8px}.release-heading h3{font-size:22px;color:#906bb1}.release-heading>.muted{font-size:11px}.release-notes{white-space:pre-wrap;font-size:12px;line-height:1.8;color:#9a80a8;margin-top:17px}.release-action{border-top:1px solid #f0e5f8;margin-top:19px;padding-top:17px;display:flex;flex-direction:column;align-items:flex-start;gap:15px}.release-action>p{font-size:11px;color:#ac91bc;line-height:1.8}.update-manual-note{font-size:10px;color:#b396c3;line-height:1.8;margin-bottom:23px}.update-no-release{display:flex;align-items:center;gap:9px;font-size:12px;color:#939180;background:#f4faf6;border-radius:8px;padding:15px;margin-bottom:16px}.update-no-release svg{color:#77a88e}.update-history h3{font-size:14px;color:#9272a5;margin-bottom:13px}.update-history-list{max-height:300px;overflow-y:auto;border:1px solid #f0e6f7;border-radius:8px}.update-history-item{padding:15px 17px;border-bottom:1px solid #f3ebf8}.update-history-item:last-child{border-bottom:0}.update-history-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.update-history-top>strong{font-size:13px;color:#a280b9;font-weight:600}.update-history-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:9px;font-size:10px;color:#b598c7;margin-top:11px}.update-job-error{display:flex;align-items:flex-start;gap:7px;font-size:11px;line-height:1.7;color:#b87183;background:#fdf3f5;padding:9px 10px;border-radius:6px;margin-top:11px;overflow-wrap:anywhere}.update-job-error svg{margin-top:3px;flex-shrink:0}.update-history-empty{font-size:12px;color:#b198bf;background:#fcf9ff;border-radius:8px;padding:20px;text-align:center}@media(max-width:760px){.update-bootstrap{padding:22px 16px}.update-bootstrap .button{font-size:11px;white-space:normal;line-height:1.5}.update-pending .badge{margin-left:0}.update-history-top{align-items:flex-start;flex-wrap:wrap}.update-history-top .badge{white-space:normal;line-height:1.5}.device-actions .button.ghost{margin-left:0}.release-card{padding:17px}.update-current strong{font-size:18px}}
