:root{font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#242a2d;background:#f5f6f8;font-synthesis:none;--green:#26745a;--ink:#252c30;--muted:#7e878d;--line:#e7eaed;--paper:#fff;--radius:18px}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.2;letter-spacing:-.9px;font-weight:650}h2{font-size:18px;letter-spacing:-.35px;font-weight:620}h3{font-size:15px;font-weight:600}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.43}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #9acbb9;outline-offset:3px}input[type=text],input[type=password],input[type=number],select{width:100%;min-height:43px;border:1px solid #dce1e5;border-radius:9px;background:#fff;padding:10px 12px;color:var(--ink);min-width:0}input:disabled,select:disabled{background:#f5f6f7;color:#a0a7ac}input::placeholder{color:#a2a9af}svg{display:block}.muted{color:var(--muted);font-size:13px}.small-text{font-size:11px}.small-label{display:block;font-size:11px;color:#8c969d;margin-bottom:5px}.field-label{display:block;font-size:12px;color:#67727a;margin-bottom:7px}.control-help{font-size:11px;line-height:1.7;color:#8b959c;margin-top:10px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:70;top:-60px;left:20px;background:white;padding:10px 15px;border:2px solid var(--green);border-radius:8px}.skip-link:focus{top:12px}.app-shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{background:rgba(237,240,241,.85);border-right:1px solid #e2e6e8;padding:34px 18px 22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;letter-spacing:-.6px;padding:0 12px}.brand-mark{width:30px;height:30px;flex-shrink:0;fill:var(--green)}.main-nav{margin-top:40px}.nav-link{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:9px;color:#6c787f;font-size:13px;font-weight:500;white-space:nowrap}.nav-link>span{font-size:18px;width:20px;text-align:center;line-height:1}.nav-link:hover{background:#e7ebec}.nav-link.active{color:#24634c;background:#dfeae5}.sidebar-device{border-top:1px solid #dde3e5;margin:24px 12px 12px;padding-top:23px;min-width:0}.sidebar-label{display:block;font-size:10px;color:#8f999f;margin-bottom:9px}.sidebar-device strong{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-device>span:last-child{display:block;font-size:9px;color:#929ca2;margin-top:5px;letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis}.device-nav{display:flex;flex-direction:column;gap:4px}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:17px;padding:28px 12px 0}.sidebar-bottom .text-button{font-size:11px;color:#8a949b;text-align:left;align-self:flex-start}.service-status{display:flex;align-items:center;gap:7px;font-size:10px;color:#8b959b}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#588f71}.status-dot.neutral{background:#aeb6bb}.status-dot.warning{background:#b89855}main{padding:42px 48px 22px;min-width:0;width:100%;max-width:1320px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:32px}.page-context{font-size:11px;color:#8a959b;margin-bottom:12px}.page-description{font-size:13px;color:#8a949b;margin-top:12px;line-height:1.7}.page-footer{display:flex;justify-content:space-between;gap:12px;margin-top:40px;font-size:10px;color:#a0a9af;padding-top:20px}.page-footer>span:first-child{font-weight:600;letter-spacing:.2px}.route-view{min-width:0}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 8px #26343d02}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:42px;padding:11px 17px;border-radius:9px;font-size:12px;line-height:1.5;font-weight:600;white-space:nowrap;transition:background .12s,transform .1s}.button:active:not(:disabled){transform:scale(.98)}.button-primary{color:#fff;background:var(--green)}.button-primary:hover:not(:disabled){background:#1f624c}.button-light{color:#5c6a71;background:#fff;border:1px solid #dfe4e7}.button-light:hover:not(:disabled){background:#f4f6f7}.button-stop{background:#f5eae4;color:#985b40;border:1px solid #ead8cd}.button-stop:hover:not(:disabled){background:#efded3}.button-full{width:100%}.text-button{display:inline-flex;align-items:center;gap:8px;background:none;color:#467862;font-size:12px;padding:2px 0}.text-button:hover{color:#225b43}.icon-button{width:32px;height:32px;border-radius:8px;background:#f2f4f5;color:#8e9aa1;font-size:22px;display:flex;align-items:center;justify-content:center}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:6px;font-size:10px;line-height:1.4;padding:5px 8px;background:#eef1f2;color:#8b979e;white-space:nowrap}.pill.online,.motor-state.running{color:#377553;background:#e6f1e8}.pill.waiting{color:#957c43;background:#faf2de}.pill.quiet{font-size:9px;background:#f3f5f6;color:#98a1a6}.motor-state.stopped{background:#eef1f2;color:#78868e}.notice{padding:12px 15px;border-radius:10px;font-size:12px;line-height:1.8;margin-bottom:20px}.notice-warning{color:#977d42;background:#faf2df;border:1px solid #efe3c7}.control-feedback{padding:12px 15px;border:1px solid #e4ebe6;border-radius:10px;background:#edf5ef;color:#61876f;font-size:12px;line-height:1.7;margin-bottom:22px;overflow-wrap:anywhere}.control-feedback.error{background:#fff0e8;border-color:#f3dfd3;color:#a57052}.control-feedback.warning{background:#fbf2df;border-color:#efe4c9;color:#967c47}.fan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.fan-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:border-color .12s,box-shadow .12s}.fan-card:hover{border-color:#cbded4;box-shadow:0 5px 18px #26343d06}.fan-card-link{display:block;padding:25px 23px 24px}.fan-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.fan-card-icon{width:54px;height:54px;border-radius:14px;background:#edf3ee;color:#678b76;display:flex;align-items:center;justify-content:center}.fan-card-icon svg{width:37px;height:37px}.fan-card h2{font-size:17px;margin-top:24px;overflow-wrap:anywhere}.fan-card-id{font-size:10px;letter-spacing:.2px;color:#99a3a9;margin-top:7px}.fan-card-state{font-size:12px;color:#7d8c85;margin-top:19px}.fan-card-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0f2;padding:13px 23px;font-size:11px;color:#92a09a}.fan-card-bottom .text-button{font-size:11px}.fan-card-arrow{font-size:17px;color:#8aa496}.list-help{font-size:11px;color:#9aa4aa;margin-top:22px}.list-empty{grid-column:1/-1;padding:48px 24px;text-align:center;border:1px dashed #dce2e6;border-radius:16px;color:#8e9aa2}.list-empty h2{font-size:18px;color:#6f7d85;margin-bottom:10px}.list-empty p{font-size:12px;line-height:1.8}.list-empty .button{margin-top:22px}.overview-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:24px;align-items:start}.overview-main{padding:30px}.status-hero{display:flex;align-items:center;gap:24px;padding:2px 0 24px}.fan-illustration{width:110px;height:110px;flex-shrink:0;color:#6f927a;background:#f1f5f0;border-radius:50%}.fan-illustration svg{width:100%;height:100%}.status-hero h2{font-size:26px;letter-spacing:-.6px;margin:12px 0 9px}.status-hero .muted{line-height:1.7;max-width:330px;font-size:12px}.next-step{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f6f8f7;border-radius:12px;padding:17px 18px;margin-bottom:26px}.next-step p{font-size:12px;color:#7b8b82;line-height:1.7}.next-step .button{font-size:11px;min-height:35px;padding:8px 12px}.motor-control{border-top:1px solid var(--line);padding-top:24px}.motor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.motor-buttons{display:flex;gap:12px}.motor-buttons .button{flex:1;min-height:47px;font-size:13px}.start-reminder{font-size:10px;color:#a2aaa3;margin-top:4px}.device-panel{padding:26px 24px}.device-panel h2{font-size:16px}.device-name{font-size:14px;font-weight:600;display:block;overflow-wrap:anywhere}.device-id{display:block;font-size:10px;color:#9ca6ac;margin-top:7px;letter-spacing:.3px;overflow-wrap:anywhere}.device-details{display:flex;flex-direction:column;gap:14px;margin:24px 0;font-size:12px}.device-details>div{display:flex;justify-content:space-between;gap:15px}.device-details dt{color:#98a2a9}.device-details dd{margin:0;color:#65747d;text-align:right}.device-note{font-size:10px;color:#9da7ad;line-height:1.7;margin-top:14px}.setup-guide{border:1px solid #e3e8e5;border-radius:12px;background:#eff4f0;margin-top:22px;padding:16px 19px;color:#7a8d7f;font-size:12px;line-height:1.8}.setup-guide summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-weight:500}.setup-guide summary::-webkit-details-marker{display:none}.setup-guide ol{padding-left:20px;margin:15px 0}.setup-guide p{font-size:11px;color:#93a296}.chevron{margin-left:auto;font-size:15px}.destination-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #dfe8e2;background:#edf4ef;border-radius:12px;padding:15px 19px;margin-bottom:22px}.destination-bar .small-label{font-size:10px;color:#86a18f;margin:0 0 4px}.destination-bar strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}.upload-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:23px;align-items:start}.upload-panel{padding:26px;min-width:0}.dropzone{min-height:265px;background:#fafbfc;border:1px dashed #cfd8dd;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px 18px}.dropzone.drag-over{background:#eef6f0;border-color:var(--green)}.upload-icon{width:47px;height:47px;background:#edf2ef;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#7d9686;margin-bottom:18px}.upload-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.dropzone h3{font-size:16px}.dropzone>p:not(.upload-hint){font-size:11px;color:#9aa5ad;margin:8px 0 18px}.file-label{cursor:pointer}.file-label:has(+input:focus-visible){outline:3px solid #9acbb9;outline-offset:4px}.upload-hint{font-size:9px;color:#a6afb5;margin-top:20px;line-height:1.8}.upload-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:22px}.upload-actions .muted{font-size:10px}.send-panel{padding:23px}.send-panel h2{font-size:16px;margin-bottom:14px}.send-panel>.muted{font-size:12px;overflow-wrap:anywhere;line-height:1.8}.send-device-message{font-size:11px;color:#8b9a91;line-height:1.8;margin:18px 0}.send-panel .control-help{font-size:9px}.selected-content{border:1px solid #e4e9ec;border-radius:12px;overflow:hidden}.preview-stage{position:relative;background:#111917;height:260px;display:flex;align-items:center;justify-content:center}.preview-stage video{width:100%;height:100%;object-fit:contain}.preview-caption{position:absolute;top:12px;left:12px;font-size:10px;color:#cedbd3;background:#344e42b3;padding:4px 7px;border-radius:5px;pointer-events:none}.selected-details{padding:19px}.selected-file{display:flex;align-items:center;gap:12px;margin-bottom:18px;min-width:0}.selected-file>div{flex:1;min-width:0}.selected-file strong{display:block;font-size:12px;overflow-wrap:anywhere}.selected-file .muted{font-size:10px;display:block;margin-top:4px}.file-icon{width:36px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#edf3ef;color:#7d9886;font-size:23px;flex-shrink:0}.selected-file .text-button{font-size:11px;flex-shrink:0}.compact-note{font-size:10px;line-height:1.7;margin-top:9px}.upload-progress-section{margin-top:18px}.progress-label{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#7d9b86;margin-bottom:8px}.progress-label strong{font-weight:500}progress{display:block;width:100%;height:5px;appearance:none;border:0;border-radius:8px;overflow:hidden;background:#e8edef}progress::-webkit-progress-bar{background:#e8edef}progress::-webkit-progress-value{background:var(--green);border-radius:8px}progress::-moz-progress-bar{background:var(--green);border-radius:8px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:30px 0 18px}.count-badge{display:inline-flex;align-items:center;justify-content:center;font-size:10px;border-radius:5px;background:#e9edf0;color:#93a0a7;min-width:22px;height:21px;margin-left:8px;vertical-align:middle;font-weight:500}.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.library-empty{grid-column:1/-1;text-align:center;border:1px dashed #dce3e7;border-radius:12px;padding:30px 16px;color:#a5afb5}.library-empty>span{font-size:23px}.library-empty h3{font-size:13px;color:#8c9aa2;margin-top:9px;font-weight:500}.library-empty p{font-size:11px;margin-top:7px}.media-card{border:1px solid var(--line);border-radius:13px;overflow:hidden;min-width:0;background:white}.media-card.selected{border-color:#8db79f;box-shadow:0 0 0 1px #8db79f}.media-thumb{height:150px;background:#14201b;position:relative;display:flex;align-items:center;justify-content:center}.media-thumb video{width:100%;height:100%;object-fit:contain;pointer-events:none}.media-fallback{color:#6e9780;font-size:32px}.media-duration{position:absolute;bottom:10px;right:10px;border-radius:4px;background:#294435c9;color:#e8f0eb;font-size:10px;padding:3px 6px}.media-body{padding:16px}.media-title{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-meta{font-size:10px;color:#9aa5ac;margin:7px 0 13px}.media-bottom{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf0f2;padding-top:12px;align-items:center}.media-state{font-size:10px;color:#8ba292}.media-state.failed{color:#b78967}.media-bottom .text-button{font-size:11px}.selected-label{font-weight:600}.deliveries-panel{padding:24px 26px;margin-top:28px}.deliveries-panel .panel-heading{margin-bottom:17px}.empty-state{display:flex;align-items:center;gap:15px;border-top:1px solid #eef1f3;padding:21px 0;color:#a4b0b7}.empty-state>span{font-size:24px;background:#f2f5f4;border-radius:9px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.empty-state strong{font-size:12px;font-weight:500;color:#8c9aa1}.empty-state p{font-size:11px;color:#a4afb5;margin-top:5px;line-height:1.7}.job-row{padding:17px 0;border-top:1px solid #edf1f3}.job-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.job-name{display:block;font-size:12px;font-weight:600;overflow-wrap:anywhere}.job-time{display:block;font-size:10px;color:#a2aeb5;margin-top:4px}.job-badge{font-size:10px;border-radius:6px;padding:5px 8px;color:#7d977f;background:#eef5ef;white-space:nowrap}.job-badge.completed{color:#497c57;background:#e8f4e9}.job-badge.failed{color:#b27f5d;background:#fff1e7}.job-badge.pending{color:#aa925f;background:#faf3e3}.job-message{font-size:10px;line-height:1.8;color:#96a59b;margin-top:11px;overflow-wrap:anywhere}.job-row progress{margin-top:10px;height:4px}.job-timeline{display:flex;gap:0;margin-top:16px}.timeline-step{display:flex;align-items:center;gap:5px;font-size:9px;color:#b0bab4;flex:1;white-space:nowrap}.timeline-step:not(:last-child)::after{content:"";height:1px;flex:1;background:#e6ede8;margin:0 10px}.timeline-step i{width:5px;height:5px;background:#d8e3db;border-radius:50%;flex-shrink:0}.timeline-step.done{color:#75947a}.timeline-step.done i{background:#82a689}.timeline-step.current{color:#62856c;font-weight:600}.timeline-step.current i{background:#6a9675;box-shadow:0 0 0 3px #edf5ef}.playlist-panel{padding:26px}.playlist-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.playlist-header-actions .button{font-size:10px;min-height:33px;padding:7px 11px}#pause-current-note{margin:0 0 18px}.playlist-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #edf0f2;padding:17px 0}.playlist-title{display:flex;align-items:center;gap:13px;flex:1;min-width:0}.playlist-title>div{min-width:0}.playlist-title .index{font-size:10px;color:#a1afb7;min-width:18px}.playlist-title .name{font-size:13px;overflow-wrap:anywhere}.playlist-reported{font-size:10px;color:#a0aea6;display:block;margin-top:5px;overflow-wrap:anywhere}.playlist-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.playlist-actions .button{min-height:34px;font-size:11px;padding:7px 12px}.playlist-more{position:relative}.playlist-more summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border:1px solid #dfe6e2;background:#f8faf9;border-radius:8px;padding:7px 11px;min-height:34px;color:#789383;font-size:11px}.playlist-more summary::-webkit-details-marker{display:none}.playlist-more summary[aria-disabled=true]{cursor:not-allowed;opacity:.45}.playlist-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:188px;border:1px solid #dfe6e2;background:#fff;border-radius:12px;box-shadow:0 12px 32px #263b3026;padding:6px}.playlist-menu button{display:block;width:100%;text-align:left;padding:9px 11px;min-height:35px;background:transparent;border-radius:6px;font-size:12px;color:#6f8879}.playlist-menu button:hover:not(:disabled){background:#eff5f1}.playlist-menu .danger{color:#ad7452}.menu-divider{height:1px;background:#ecf0ed;margin:5px 4px}.settings-panel{padding:27px}.brightness-control{max-width:550px}.setting-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;color:#5f7266}.setting-header label{font-weight:550}.setting-current{font-size:10px;color:#9baba0;white-space:nowrap}.range-row{display:flex;align-items:center;gap:14px}.range-row>span{font-size:21px;color:#a4b8aa}.range-row input{flex:1;min-width:0;accent-color:var(--green)}.range-row output{font-size:11px;min-width:61px;text-align:right;color:#799583}.setting-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}.setting-footer .control-help{margin:0}.setting-footer .button{font-size:11px;min-height:34px;padding:8px 13px}.advanced-controls{border-top:1px solid #edf0f2;margin-top:26px;padding-top:22px}.advanced-controls summary,.command-history summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;font-size:13px;font-weight:550;color:#6d8174}.advanced-controls summary::-webkit-details-marker,.command-history summary::-webkit-details-marker{display:none}.advanced-controls summary .muted{font-size:10px;font-weight:400}.advanced-controls[open] .chevron,.command-history[open] .chevron{transform:rotate(180deg)}.advanced-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px;padding:27px 0 15px}.setting-form{min-width:0}.setting-input-row{display:flex;gap:10px;align-items:center}.setting-input-row select{flex:1;min-width:0;cursor:pointer;font-size:12px}.setting-input-row .button{font-size:11px;flex-shrink:0;min-height:43px;padding:9px 13px}.input-unit{flex:1;min-width:0;position:relative}.input-unit input{padding-right:30px;font-size:12px}.input-unit>span{position:absolute;top:12px;right:12px;font-size:11px;color:#9cab9f;pointer-events:none}.advanced-note{font-size:10px;line-height:1.8;color:#a2afa7;margin-top:8px}.version-info{grid-column:1/-1;border-top:1px solid #edf1ee;padding-top:20px}.version-info .setting-header strong{font-size:12px;font-weight:500}.version-info .text-button{font-size:11px}.version-info dl{display:flex;gap:24px;flex-wrap:wrap;margin:0}.version-info dl>div{display:flex;align-items:center;gap:9px;min-width:0}.version-info dt{font-size:10px;color:#a1afa5}.version-info dd{margin:0;font-size:11px;color:#849a8b;overflow-wrap:anywhere}.history-panel{margin-top:22px;padding:21px 26px}.command-empty{font-size:11px;color:#a1ada6;padding:18px 0 5px}.command-row{padding:15px 0;border-top:1px solid #edf1ee}.command-row:first-child{margin-top:18px}.command-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.command-heading strong{font-weight:500}.command-time{font-size:10px;color:#a6b1aa;margin-left:13px}.command-message{font-size:11px;color:#96a69b;line-height:1.8;margin-top:7px;overflow-wrap:anywhere}.command-tag{font-size:10px;padding:4px 7px;background:#edf2ee;border-radius:5px;color:#8aa08e;white-space:nowrap}.command-tag.verified{background:#e7f4e9;color:#53845f}.command-tag.uncertain,.command-tag.sent,.command-tag.acknowledged,.command-tag.sending,.command-tag.queued{background:#faf2df;color:#a28c5b}.command-tag.rejected{background:#fff0e5;color:#b4835e}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:80;max-width:min(570px,calc(100vw - 30px));background:#294b3c;color:#eff7f1;border-radius:12px;padding:14px 19px;font-size:12px;line-height:1.8;box-shadow:0 7px 25px #1d332326}.toast.error{background:#795c47;color:#fff4e9}.action-dialog{border:1px solid #e1e7e3;border-radius:20px;background:#fff;padding:28px;width:min(430px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;color:var(--ink);box-shadow:0 20px 70px #23362b33}.action-dialog::backdrop{background:#26322c70;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-heading h2{font-size:21px}.dialog-description{font-size:12px;color:#87988c;line-height:1.8;margin:18px 0;overflow-wrap:anywhere}.action-dialog input{width:100%;min-height:43px;border:1px solid #dce5df;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.dialog-actions .button{min-width:80px}.form-error{font-size:11px;color:#b07652;line-height:1.8;margin:14px 0 0}.button-danger{background:#a26a49;color:#fff}.button-danger:hover:not(:disabled){background:#8b583d}#fan-register-fields .field-label{margin-top:18px}.login-screen{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:22px;background:#f1f5f2}.login-card{max-width:410px;width:100%;padding:39px;background:#fff;border:1px solid #e1e9e3;border-radius:22px;text-align:center;box-shadow:0 15px 50px #2944350d}.login-symbol{display:flex;align-items:center;justify-content:center;width:54px;height:54px;margin:0 auto 22px;border-radius:16px;background:#eaf3ec;color:#4c8561;font-size:34px}.eyebrow{font-size:10px;letter-spacing:2px;color:#8aab95;margin-bottom:12px}.login-card h1{font-size:23px;margin-bottom:11px}.login-card form{margin-top:26px;text-align:left}.login-card input{margin-bottom:17px}.login-footnote{font-size:10px;color:#a3b1a7;line-height:1.8;margin-top:23px}body.auth-required{overflow:hidden}body.auth-required .app-shell{visibility:hidden}
@media(max-width:1200px){main{padding:36px 30px 22px}.fan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:minmax(0,1fr) 270px;gap:20px}.overview-main{padding:25px}.status-hero{gap:18px}.fan-illustration{width:88px;height:88px}.status-hero h2{font-size:23px}.upload-layout{grid-template-columns:minmax(0,1fr) 245px;gap:20px}.upload-panel{padding:23px}.upload-actions{flex-direction:column;align-items:stretch}.upload-actions>.muted{order:1;text-align:center}.upload-actions>.button{width:100%}.next-step{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:980px){.app-shell{grid-template-columns:184px minmax(0,1fr)}.sidebar{padding-left:13px;padding-right:13px}.brand{font-size:17px;padding:0 9px}.brand-mark{width:27px}.nav-link{padding:11px 12px}.overview-grid{grid-template-columns:minmax(0,1fr)}.overview-main{padding:27px}.next-step{flex-direction:row;align-items:center}.device-panel{padding:24px}.device-details{display:grid;grid-template-columns:1fr 1fr;gap:15px 26px}.device-panel>.button-full{width:auto}.upload-layout{grid-template-columns:minmax(0,1fr)}.send-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:center}.send-panel h2{grid-column:1;margin:0}.send-panel>.muted{grid-column:1;grid-row:2}.send-panel>.send-device-message{grid-column:1;grid-row:3;margin:0}.send-panel>.button{grid-column:2;grid-row:1/3;width:auto}.send-panel>.control-help{grid-column:2;grid-row:3;margin:0;font-size:8px}.upload-actions{flex-direction:row;align-items:center}.upload-actions>.muted{order:0;text-align:left}.upload-actions>.button{width:auto}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.advanced-settings{gap:25px 22px}.settings-panel{padding:24px}.advanced-controls summary .muted{font-size:9px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:relative;border-right:0;border-bottom:1px solid #e3e8e5;padding:20px 22px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 20px}.brand{padding:0;font-size:18px}.brand-mark{width:28px;height:28px}.main-nav{margin:0}.main-nav .nav-link{font-size:12px;padding:7px 9px;gap:7px}.main-nav .nav-link>span{font-size:15px;width:17px}#workspace-nav{grid-column:1/-1;min-width:0}.sidebar-device{display:flex;align-items:baseline;gap:12px;border:0;margin:0 0 12px;padding:0}.sidebar-label,.sidebar-device>span:last-child{display:none}.sidebar-device strong{font-size:12px;color:#8a9a90}.device-nav{display:flex;flex-direction:row;gap:5px;overflow-x:auto;scrollbar-width:none;padding:2px 0}.device-nav::-webkit-scrollbar{display:none}.device-nav .nav-link{padding:9px 12px;font-size:12px;gap:7px;flex:1;justify-content:center}.device-nav .nav-link>span{font-size:14px;width:15px}.sidebar-bottom{display:none}main{padding:28px 22px 18px}.page-header{margin-bottom:24px;align-items:flex-start;gap:15px}.page-context{font-size:10px;margin-bottom:9px}h1{font-size:27px;letter-spacing:-.7px}.page-description{font-size:12px;margin-top:10px}.page-header>.button{font-size:11px;min-height:37px;padding:9px 12px;margin-top:3px;gap:9px}.fan-grid{gap:15px}.fan-card-link{padding:21px 18px}.fan-card h2{font-size:15px;margin-top:21px}.fan-card-icon{width:45px;height:45px;border-radius:12px}.fan-card-icon svg{width:31px;height:31px}.fan-card-top .pill{font-size:8px;padding:4px 6px}.fan-card-bottom{padding:12px 18px}.fan-card-state{font-size:10px}.fan-card-id{font-size:9px}.overview-main{padding:23px}.status-hero{gap:18px}.status-hero h2{font-size:24px}.status-hero .muted{font-size:11px}.fan-illustration{width:88px;height:88px}.next-step{padding:15px;gap:15px}.next-step p{font-size:11px}.next-step .button{font-size:10px;padding:7px 11px}.motor-heading h3{font-size:14px}.motor-state{font-size:8px}.motor-buttons .button{font-size:12px;min-height:46px}.device-panel{padding:22px}.device-details{font-size:11px;gap:15px 22px}.device-panel>.button-full{width:100%}.destination-bar{padding:13px 16px;margin-bottom:18px}.destination-bar strong{font-size:13px}.upload-panel{padding:22px}.upload-panel .panel-heading h2{font-size:18px}.upload-panel .pill.quiet{font-size:8px}.upload-actions .muted{font-size:9px;max-width:155px}.upload-actions .button{font-size:11px;padding:10px 13px}.send-panel{padding:20px;gap:9px 14px}.send-panel h2{font-size:15px}.send-panel>.muted{font-size:11px}.send-panel>.button{font-size:11px;padding:10px 13px}.send-device-message{font-size:10px}.send-panel>.control-help{grid-column:1/-1;text-align:left;grid-row:4;margin-top:4px;font-size:9px}.media-grid{gap:14px}.media-thumb{height:138px}.media-body{padding:13px}.media-title{font-size:12px}.media-meta{font-size:9px}.media-state{font-size:9px}.media-bottom .text-button{font-size:10px}.section-heading h2{font-size:19px}.section-heading>.text-button{font-size:11px}.deliveries-panel{padding:22px;margin-top:24px}.deliveries-panel .panel-heading>.small-text{font-size:9px;max-width:110px;text-align:right}.job-timeline{gap:6px;flex-wrap:wrap}.timeline-step{font-size:8px}.timeline-step:not(:last-child)::after{margin:0 6px}.playlist-panel{padding:22px}.playlist-row{flex-wrap:wrap;gap:13px;padding:18px 0}.playlist-title{flex-basis:100%}.playlist-actions{width:100%;justify-content:flex-end}.playlist-actions .button,.playlist-more summary{min-height:36px}.playlist-header-actions .button{font-size:9px;padding:7px 10px}.playlist-panel .panel-heading h2{font-size:18px}.settings-panel{padding:22px}.settings-panel .panel-heading .small-text{font-size:9px;max-width:120px;text-align:right}.advanced-settings{grid-template-columns:minmax(0,1fr);gap:25px}.advanced-controls summary .muted{font-size:9px}.advanced-controls summary{gap:10px}.history-panel{padding:20px 22px}.command-time{display:block;margin-left:0;margin-top:5px}.command-heading{align-items:flex-start}.command-message{font-size:10px}.version-info dl{gap:16px}.page-footer{margin-top:25px;font-size:9px}.preview-stage{height:275px}.action-dialog{padding:24px}}
@media(max-width:410px){main{padding-left:16px;padding-right:16px}.sidebar{padding-left:16px;padding-right:16px;gap:16px 12px}.device-nav .nav-link{font-size:11px;padding:9px 9px;gap:5px}.device-nav .nav-link>span{display:none}.fan-grid{grid-template-columns:minmax(0,1fr)}.fan-card-link{padding:23px}.fan-card h2{font-size:18px;margin-top:20px}.fan-card-top .pill{font-size:10px}.fan-card-bottom{padding:13px 23px}.fan-card-id,.fan-card-state{font-size:11px}.page-header>.button{font-size:10px;padding:9px 11px}h1{font-size:25px}.overview-main{padding:20px}.status-hero{gap:15px}.fan-illustration{width:72px;height:72px}.status-hero h2{font-size:22px}.next-step{flex-direction:column;align-items:flex-start;gap:12px}.device-details{display:flex;gap:14px}.control-help{font-size:10px}.motor-buttons{gap:9px}.motor-buttons .button{font-size:11px;padding:11px 10px}.motor-heading .pill{font-size:8px}.upload-panel,.deliveries-panel,.playlist-panel,.settings-panel{padding:20px}.upload-panel .pill.quiet{font-size:7px;padding:5px 6px}.upload-actions .muted{max-width:120px;font-size:8px}.send-panel{display:block}.send-panel>.muted{margin:12px 0}.send-panel>.send-device-message{margin-bottom:15px}.send-panel>.button{width:100%}.send-panel>.control-help{margin-top:10px}.media-thumb{height:115px}.media-bottom{gap:5px}.media-bottom .text-button{font-size:9px}.media-state{font-size:8px}.media-body{padding:12px}.media-title{font-size:11px}.job-timeline{gap:9px}.timeline-step{flex:0 0 45%}.timeline-step:not(:last-child)::after{display:none}.playlist-header-actions .button{font-size:8px;padding:7px 8px}.playlist-panel .panel-heading h2{font-size:16px}.advanced-controls summary .muted{font-size:8px}.advanced-controls summary{font-size:12px}.history-panel{padding:20px}.login-card{padding:31px 24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}@media(prefers-reduced-transparency:reduce){.sidebar{background:#edf0f1;backdrop-filter:none}.action-dialog::backdrop{backdrop-filter:none}}@media(prefers-contrast:more){:root{--muted:#59666e;--line:#c6ced3}.panel,.fan-card{border-color:#bfcbd1}.sidebar{background:#e9edef}.muted,.control-help,.page-description{color:#63726b}}
.history-disclosure{margin-top:24px;border:1px solid #e4e9e6;border-radius:12px;background:#f9fbfa;padding:15px 19px}.history-disclosure>summary,.playlist-extras>summary{display:flex;align-items:center;list-style:none;cursor:pointer;font-size:12px;color:#889e90}.history-disclosure>summary::-webkit-details-marker,.playlist-extras>summary::-webkit-details-marker{display:none}.history-disclosure .deliveries-panel{margin-top:17px;border:0;background:transparent;padding:0;box-shadow:none}.history-disclosure .panel-heading{display:none}.active-delivery{padding:23px 26px;margin-top:24px}.active-delivery h2{font-size:16px}.playlist-extras{padding:13px 16px;margin-bottom:18px;border:1px solid #e8edea;border-radius:9px;background:#fafcfb}.playlist-extras>.button{margin-top:16px;font-size:11px}.playlist-extras #pause-current-note{margin:10px 0 0;font-size:10px}.device-technical{font-size:10px;color:#9ba9a0;margin-top:10px}.device-technical summary{cursor:pointer}.device-technical .device-id{margin-top:8px}.onboarding-help{margin-top:13px;font-size:10px;color:#94a79b;line-height:1.8}.onboarding-help summary{cursor:pointer;color:#6f917e}.onboarding-help p{margin-top:8px}.onboarding-help code,.setup-guide code{font-size:10px}.page-footer .text-button{font-size:10px;color:#9baaa1}.sidebar-device>span:last-child{display:none}

#main-content:focus{outline:none}

.playlist-menu{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}.playlist-more.opens-up>.playlist-menu{top:auto;bottom:calc(100% + 6px)}

.connection-help{padding:24px 26px;margin-bottom:24px}.connection-help h2{font-size:16px}.connection-help p{max-width:650px;font-size:12px;line-height:1.85;color:#86958c;margin-top:10px}.registration-help{border-top:1px solid #e7ede9;padding-top:14px;margin-top:17px;font-size:10px;line-height:1.8;color:#91a097}@media(max-width:760px){.connection-help{padding:22px}.connection-help p{font-size:11px}}@media(max-width:410px){.connection-help{padding:20px}}

.fan-card-next{font-size:10px;line-height:1.8;color:#97a39b;margin-top:8px;min-height:36px}@media(max-width:410px){.fan-card-next{font-size:10px;min-height:0}}

.setup-notice>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;width:fit-content;max-width:100%;list-style:none;cursor:pointer;color:#668674;font-size:12px;font-weight:500}.setup-notice>summary::-webkit-details-marker{display:none}.setup-notice>summary .chevron{font-size:12px;color:#9aada0}.setup-notice[open]>summary .chevron{transform:rotate(180deg)}.setup-notice>p{margin-top:13px;max-width:690px;font-size:11px;line-height:1.85;color:#8c9c91}.connection-help>summary{width:100%;font-size:14px}.registration-help>summary{font-size:11px}.registration-help>p{font-size:10px}
