.auth-dialog{width:min(420px,calc(100% - 2rem))}
.auth-dialog form{display:grid;gap:1rem}
.auth-dialog label{display:grid;gap:.4rem;color:#c7cada;font-size:.85rem}
.auth-dialog input{width:100%;border:1px solid #343c54;border-radius:.6rem;background:#090d18;color:#fff;padding:.8rem}
.auth-dialog .text-button{text-align:left;padding:0}
#login-error{min-height:1.2em;color:#ff9c9c;margin:0}
#admin-dialog form{display:flex;gap:.7rem;align-items:end;margin-top:1.2rem;flex-wrap:wrap}
#admin-dialog label{display:grid;gap:.4rem;color:#c7cada}
#admin-dialog input{background:#090d18;border:1px solid #343c54;border-radius:.6rem;color:#fff;padding:.75rem;text-transform:uppercase;letter-spacing:.15em}
#icloud-connect-form input[type="email"],#icloud-connect-form input[type="password"]{text-transform:none;letter-spacing:normal;min-width:240px}
.player-dialog{width:min(980px,calc(100% - 1rem));padding:1rem}
.player-dialog video{display:block;width:100%;max-height:72vh;background:#000;border-radius:.6rem}
.player-dialog h2{padding-right:2rem}
.subtitle-upload input{display:none}.subtitle-upload select{margin-left:.5rem;background:#111827;color:#fff;border:0}
.subtitle-results{display:grid;gap:.5rem;margin-top:1rem}.subtitle-result,.device-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border:1px solid #30394f;border-radius:.6rem;background:#0b101d}.subtitle-result span,.device-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtitle-result button,.device-item button{flex:none}.device-list{display:grid;gap:.5rem}.empty-state{color:#a6a9b8;font-size:.86rem}
.subtitle-controls{display:flex;gap:.65rem;align-items:end;flex-wrap:wrap;margin-top:.75rem}.subtitle-controls label{display:grid;gap:.25rem;color:#a6a9b8;font-size:.72rem}.subtitle-controls select,.subtitle-controls input{max-width:135px;border:1px solid #343c54;border-radius:.45rem;background:#090d18;color:#fff;padding:.45rem}.player-dialog.subtitle-large video::cue{font-size:150%}.player-dialog.subtitle-clear video::cue{background-color:transparent;text-shadow:0 2px 4px #000,0 0 3px #000}
.status-card{margin:0 0 1rem;padding:.85rem 1rem;border:1px solid #30394f;border-radius:.65rem;background:#0b101d;color:#dce2f6}.status-card.ok{border-color:#74b87a;color:#d8ffd8}.status-card.warn{border-color:#d5ad57;color:#fff0c2}.status-card.error{border-color:#c96f72;color:#ffd9d9}
