:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--foreground:#171717}*{box-sizing:border-box}html,body{max-width:100vw;margin:0;padding:0;overflow-x:hidden}body{color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}main{padding:2rem}.muted{color:#666}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{color:#fff;background:#111;align-items:center;gap:2rem;height:3.5rem;padding:0 2rem;display:flex}.topbar a{color:inherit;text-decoration:none}.brand{font-weight:600}.nav{gap:1.25rem;display:flex}.nav a:hover{text-decoration:underline}.user{align-items:center;gap:1rem;margin-left:auto;font-size:.9rem;display:flex}.user .muted{color:#aaa}.link-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.login-page{background:#f4f4f4;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:8px;width:100%;max-width:22rem;padding:2rem;box-shadow:0 1px 4px #0000001a}.login-card h1{margin:0 0 .25rem;font-size:1.4rem}.login-card p{margin:0 0 1.5rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-form label{flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.login-form input{font:inherit;border:1px solid #ccc;border-radius:4px;padding:.5rem .6rem}.login-form button{font:inherit;color:#fff;cursor:pointer;background:#111;border:0;border-radius:4px;padding:.6rem;font-weight:600}.login-form button:disabled{opacity:.6;cursor:default}.form-error{color:#b00020;margin:0;font-size:.9rem}.danger-button{font:inherit;color:#fff;cursor:pointer;background:#b00020;border:0;border-radius:4px;padding:.3rem .6rem}.danger-button:disabled,.link-button:disabled{opacity:.6;cursor:default}.uploader{margin-bottom:2rem}.dropzone{text-align:center;background:#fafafa;border:2px dashed #bbb;border-radius:8px;padding:2rem}.dropzone.dragging{background:#eee;border-color:#111}.dropzone p{margin:.25rem 0}.upload-list{margin:1rem 0 0;padding:0;font-size:.9rem;list-style:none}.upload-list li{border-bottom:1px solid #eee;justify-content:space-between;gap:1rem;padding:.3rem 0;display:flex}.upload-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-state{color:#666;flex-shrink:0}.upload-klar .upload-state{color:#1a7f37}.upload-fel .upload-state{color:#b00020}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.asset-card{flex-direction:column;gap:.5rem;display:flex}.asset-thumb{aspect-ratio:16/9;background:#000;border-radius:6px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.asset-thumb img{object-fit:contain;width:100%;height:100%}.asset-badge{color:#fff;background:#000000b3;border-radius:4px;padding:.1rem .4rem;font-size:.8rem;position:absolute;bottom:.4rem;right:.4rem}.asset-state{color:#ccc;text-align:center;padding:0 1rem;font-size:.9rem}.asset-state-failed{color:#ff8a80}.asset-error{white-space:normal;word-break:break-word;margin-top:.25rem}.asset-buttons{flex-wrap:wrap;align-items:flex-start;gap:1rem;display:flex}.asset-meta{flex-direction:column;font-size:.9rem;display:flex}.asset-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asset-actions{flex-direction:column;align-items:flex-start;gap:.4rem;font-size:.9rem;display:flex}.asset-confirm{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.primary-button{font:inherit;color:#fff;cursor:pointer;background:#111;border:0;border-radius:4px;padding:.5rem .9rem;font-weight:600}.primary-button:disabled{opacity:.5;cursor:default}.create-playlist{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:2rem;display:flex}.create-playlist input{font:inherit;border:1px solid #ccc;border-radius:4px;min-width:18rem;padding:.5rem .6rem}.playlist-list{max-width:48rem;margin:0;padding:0;list-style:none}.playlist-row{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.playlist-row-main{flex-direction:column;gap:.15rem;font-size:.9rem;display:flex}.playlist-name{color:inherit;font-size:1.05rem;font-weight:600}.editor-head{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.back-link{color:#444;white-space:nowrap;text-decoration:none}.back-link:hover{text-decoration:underline}.editor-name{min-width:14rem;font:inherit;border:1px solid #0000;border-radius:4px;flex:1;padding:.4rem .6rem;font-size:1.4rem;font-weight:600}.editor-name:hover,.editor-name:focus{border-color:#ccc}.editor-save{color:#666;align-items:center;gap:.8rem;font-size:.9rem;display:flex}.editor-status.dirty{color:#9a6700}.editor-columns{grid-template-columns:minmax(0,1fr) 18rem;align-items:start;gap:2.5rem;display:grid}@media (max-width:900px){.editor-columns{grid-template-columns:minmax(0,1fr)}}.editor h2{margin:1.5rem 0 .75rem;font-size:1.05rem}.editor h2:first-child{margin-top:0}.item-list{margin:0;padding:0;list-style:none}.item-row{background:#fff;border:1px solid #e5e5e5;border-radius:6px;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.6rem .5rem;display:flex}.item-row.dragging{opacity:.4}.item-row.drop-target{border-color:#111;box-shadow:0 -2px #111}.drag-handle{cursor:grab;color:#999;-webkit-user-select:none;user-select:none;letter-spacing:-.2em}.item-index{text-align:right;color:#666;width:1.5rem;font-size:.9rem}.item-thumb{aspect-ratio:16/9;background:#000;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:8rem;display:flex;position:relative;overflow:hidden}.item-thumb img{width:100%;height:100%}.item-body{flex-direction:column;flex:1;gap:.4rem;min-width:0;font-size:.9rem;display:flex}.duration-control{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.chip{font:inherit;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:999px;padding:.2rem .55rem;font-size:.85rem}.chip.selected{color:#fff;background:#111;border-color:#111}.duration-custom{align-items:center;gap:.25rem;margin-left:.3rem;display:flex}.duration-custom input{width:4rem;font:inherit;border:1px solid #ccc;border-radius:4px;padding:.2rem .4rem;font-size:.85rem}.item-options{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;display:flex}.item-fit{align-items:center;gap:.5rem;display:flex}.item-sound{align-items:center;gap:.35rem;display:flex}.item-note{font-size:.85rem}.item-fit select,.editor-settings select,.editor-settings input[type=number]{font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;padding:.3rem .4rem;font-size:.9rem}.item-actions{flex-direction:column;align-items:center;gap:.3rem;font-size:.85rem;display:flex}.icon-button{width:1.8rem;height:1.8rem;font:inherit;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px}.icon-button:disabled{opacity:.35;cursor:default}.asset-picker{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.picker-card{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:.3rem;padding:0;font-size:.85rem;display:flex}.picker-card:hover .asset-thumb{outline:2px solid #111}.picker-card .asset-thumb{width:100%}.editor-settings{background:#f7f7f7;border-radius:8px;flex-direction:column;gap:1rem;padding:1rem;font-size:.9rem;display:flex}.editor-settings h2{margin:0}.editor-settings label{flex-direction:column;gap:.3rem;display:flex}.editor-settings label.radio,.editor-settings label.checkbox{flex-direction:row;align-items:center;gap:.5rem}.editor-settings label.indented{margin-left:1.4rem}.editor-settings fieldset{border:0;flex-direction:column;gap:.4rem;margin:0;padding:0;display:flex}.editor-settings legend{margin-bottom:.3rem;padding:0}.input-unit{align-items:center;gap:.4rem;display:flex}.input-unit input{width:5.5rem}.preview-title{flex:1;min-width:14rem;margin:0;font-size:1.4rem}.preview-actions{gap:.5rem;display:flex}.preview-stage{aspect-ratio:16/9;background:#000;width:100%;max-width:960px;margin:1rem 0;position:relative;overflow:hidden}.preview-stage:fullscreen{max-width:none;margin:0}.preview-layer{-webkit-user-select:none;user-select:none;background:#000;width:100%;height:100%;position:absolute;inset:0}.preview-note{background:#fff8e1;border:1px solid #f0d78c;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem;max-width:960px;margin:.5rem 0 0;padding:.6rem .8rem;font-size:.9rem;display:flex}.preview-overlay{z-index:3;color:#999;text-align:center;justify-content:center;align-items:center;margin:0;padding:1rem;display:flex;position:absolute;inset:0}.preview-status{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;max-width:960px;margin:0;display:grid}.preview-status dt{color:#666;font-size:.8rem}.preview-status dd{margin:.2rem 0 0}.screen-group{font-weight:400}.presence{font-size:.9rem}.presence:before{content:"";vertical-align:baseline;background:#999;border-radius:50%;width:.6rem;height:.6rem;margin-right:.4rem;display:inline-block}.presence-online:before{background:#1a7f37}.presence-offline:before{background:#b00020}.presence-unpaired:before{background:#999}.pairing-code-inline{letter-spacing:.15em;font-size:1rem;font-weight:600}.pair-device-form{flex-wrap:wrap;align-items:flex-end;gap:.8rem;display:flex}.pair-device-form label{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.pair-device-form input,.pair-device-form select{font:inherit;border:1px solid #ccc;border-radius:4px;min-width:12rem;padding:.5rem .6rem}.pair-device-form .pairing-code-input{letter-spacing:.2em;text-transform:uppercase;min-width:9rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.pair-device-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.screen-title{margin:0;font-size:1.4rem}.screen-columns{grid-template-columns:minmax(0,1fr) 22rem;align-items:start;gap:2.5rem;max-width:64rem;display:grid}@media (max-width:900px){.screen-columns{grid-template-columns:minmax(0,1fr)}}.screen-section{margin-bottom:2rem}.screen-section h2{margin:0 0 .5rem;font-size:1.05rem}.screen-section p{margin:.3rem 0}.facts{grid-template-columns:max-content 1fr;gap:.3rem 1rem;margin:.5rem 0 0;font-size:.9rem;display:grid}.facts div{display:contents}.facts dt{color:#666}.facts dd{margin:0}.send-now{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.command-buttons{flex-direction:column;gap:.6rem;margin:.5rem 0 1rem;display:flex}.command-form{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.command-form select{font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;padding:.3rem .4rem;font-size:.9rem}.command-list{margin:.5rem 0 0;padding:0;font-size:.9rem;list-style:none}.command-list li{border-top:1px solid #eee;grid-template-columns:max-content max-content 1fr;gap:.2rem 1rem;padding:.35rem 0;display:grid}.command-list .command-label{font-weight:600}.command-queued .command-outcome,.command-sent .command-outcome{color:#7a5a00}.command-done .command-outcome{color:#1d6b2f}.command-failed .command-outcome{color:#b00020}@media (max-width:700px){.command-list li{grid-template-columns:max-content 1fr}.command-list .command-outcome{grid-column:1/-1}}.command-note{margin:0;font-size:.9rem}.screenshot{margin:.5rem 0 0}.screenshot img{background:#000;border:1px solid #ddd;border-radius:4px;width:100%;max-width:640px;height:auto;display:block}.screenshot figcaption{margin-top:.35rem;font-size:.85rem}.screen-settings{background:#f7f7f7;border-radius:8px;flex-direction:column;gap:1rem;padding:1rem;font-size:.9rem;display:flex}.screen-settings label{flex-direction:column;gap:.3rem;display:flex}.screen-settings input[type=text],.screen-settings select{font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;max-width:100%;padding:.4rem .5rem;font-size:.9rem}.screen-settings-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.schedule-now{margin:.5rem 0 1.5rem}.schedule-editor{font-size:.9rem}.schedule-rows{flex-direction:column;gap:.75rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.schedule-row{background:#f7f7f7;border-radius:8px;flex-direction:column;gap:.6rem;padding:.75rem 1rem;display:flex}.schedule-row-head{align-items:center;gap:.6rem;display:flex}.schedule-row-head select{min-width:0;font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;flex:1;padding:.4rem .5rem;font-size:.9rem}.schedule-weekdays{flex-wrap:wrap;gap:.3rem;display:flex}.schedule-fields{flex-wrap:wrap;gap:.6rem 1rem;display:flex}.schedule-fields label{color:#666;flex-direction:column;gap:.2rem;display:flex}.schedule-fields input{font:inherit;color:#111;background:#fff;border:1px solid #ccc;border-radius:4px;padding:.3rem .4rem;font-size:.9rem}.schedule-fields input[type=number]{width:4.5rem}.schedule-note{margin:0;font-size:.85rem}.schedule-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.tv-power h3{margin:1rem 0 .25rem;font-size:1rem}.tv-power .inherited-schedule{margin-bottom:1rem}.power-enabled{color:#444;flex:1;align-items:center;gap:.5rem;display:flex}.schedule-row.disabled,.inherited-rows li.disabled{opacity:.6}.inherited-schedule{font-size:.9rem}.inherited-rows{flex-direction:column;gap:.4rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.inherited-rows li{border:1px dashed #ccc;border-radius:8px;flex-wrap:wrap;gap:.2rem .75rem;padding:.5rem 1rem;display:flex}.inherited-playlist{font-weight:600}.group-screens{border:0;flex-direction:column;gap:.4rem;margin:0;padding:0;display:flex}.group-screens legend{margin-bottom:.3rem;padding:0}.group-screen{align-items:baseline;flex-direction:row!important;gap:.5rem!important}.group-screen input{margin:0}.group-members{margin:.3rem 0;padding-left:1.2rem}.alarm{color:#b00020}.alarm-list{margin:.2rem 0 0;padding:0;font-size:.9rem;list-style:none}.alarm-list li:before{content:"⚠ "}.overview-facts{margin-bottom:1.5rem}.overview-alarms{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.table-scroll{overflow-x:auto}.overview-table,.heartbeat-table{border-collapse:collapse;width:100%;font-size:.9rem}.overview-table th,.overview-table td,.heartbeat-table th,.heartbeat-table td{text-align:left;vertical-align:top;white-space:nowrap;border-bottom:1px solid #e5e5e5;padding:.35rem .75rem .35rem 0}.overview-table th,.heartbeat-table th{color:#666;font-weight:600}.heartbeat-table{margin-top:.5rem}.log-controls{flex-wrap:wrap;align-items:center;gap:1rem;margin:.5rem 0;display:flex}.log-controls select{font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;padding:.3rem .4rem;font-size:.9rem}.log-table{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.85rem}.log-table th,.log-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eee;padding:.3rem .75rem .3rem 0}.log-table th{color:#666;white-space:nowrap;font-weight:600}.log-table td.log-at,.log-table td.log-level,.log-table td.log-source{white-space:nowrap}.log-table td.log-message{word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.log-table .log-context{color:#666}.log-table tr.log-warn td.log-level{color:#7a5a00}.log-table tr.log-error td.log-level{color:#b00020;font-weight:600}.log-table tr.log-debug td{color:#888}.wifi-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.wifi-form{background:#f7f7f7;border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:.8rem 1rem;padding:1rem;font-size:.9rem;display:flex}.wifi-form label{flex-direction:column;gap:.3rem;display:flex}.wifi-form input[type=text],.wifi-form input[type=password],.wifi-form input[type=number]{font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;max-width:100%;padding:.4rem .5rem;font-size:.9rem}.wifi-ssid{flex:12rem}.wifi-password{flex:14rem}.wifi-password-field{align-items:center;gap:.5rem;display:flex}.wifi-password-field input{flex:auto;min-width:0}.wifi-priority input{width:5.5rem}.wifi-hidden{align-items:center;padding-bottom:.5rem;flex-direction:row!important;gap:.4rem!important}.wifi-actions{flex-wrap:wrap;flex:100%;align-items:center;gap:.8rem;display:flex}.web-form{background:#f7f7f7;border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:.8rem 1rem;margin:0 0 1.5rem;padding:1rem;font-size:.9rem;display:flex}.web-form h2{flex-basis:100%;margin:0;font-size:1rem}.web-form label{flex-direction:column;gap:.3rem;display:flex}.web-form input[type=text],.web-form select{font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;max-width:100%;padding:.4rem .5rem;font-size:.9rem}.web-url{flex:2 20rem}.web-name{flex:12rem}.web-help,.web-form .form-error{flex-basis:100%;margin:0}.asset-web{color:#ddd;text-align:center;word-break:break-all;flex-direction:column;align-items:center;gap:.4rem;padding:0 1rem;font-size:.9rem;display:flex}.asset-web-icon{color:#888;font-size:1.6rem}.asset-url{word-break:break-all}.preview-web{background:#fff;border:0}.preview-web-note{color:#ccc;text-align:center;background:#111;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.preview-web-note p{max-width:32rem;margin:0}
