.grid-stack{position:relative}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;width:auto;margin:0;position:absolute;z-index:0!important}.grid-stack>.grid-stack-item{width:var(--gs-column-width);height:var(--gs-cell-height);padding:0;position:absolute;top:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{width:auto;margin:0;position:absolute;overflow:hidden auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-select:none;user-select:none;z-index:100;font-size:.1px;display:block;position:absolute}.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle,.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{z-index:101;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>");background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left, right, top}.grid-stack-item.ui-resizable-resizing{will-change:width, height}.grid-stack-item.ui-draggable-armed{cursor:move;animation:.25s ease-in-out infinite gs-armed-wiggle}.grid-stack-item>.ui-resizable-handle.ui-resizable-armed{animation:.5s ease-in-out infinite gs-armed-pulse}@keyframes gs-armed-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-1.5deg)}75%{transform:rotate(1.5deg)}}@keyframes gs-armed-pulse{0%,to{opacity:1}50%{opacity:.3}}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{opacity:.8;box-shadow:1px 4px 6px #0003}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing,.grid-stack-animate .grid-stack-item.grid-stack-placeholder{transition:left,right,top,height,width}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0%}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0%}.gs-print-show{display:none}@media print{@page gs-landscape{size:landscape}@page gs-portrait{size:portrait}.grid-stack{height:auto!important;display:block!important;position:static!important}.grid-stack>.grid-stack-item{float:left!important;height:auto!important;width:calc(100% * var(--gs-w) / var(--gs-columns,12))!important;break-inside:avoid!important;page-break-inside:avoid!important;display:block!important;position:static!important;top:auto!important;left:auto!important}.grid-stack>.grid-stack-item>.grid-stack-item-content{white-space:normal!important;height:auto!important;margin-top:var(--gs-item-margin-top)!important;margin-right:var(--gs-item-margin-right)!important;margin-bottom:var(--gs-item-margin-bottom)!important;margin-left:var(--gs-item-margin-left)!important;position:relative!important;inset:auto!important;overflow:visible!important}.gs-print-hide{display:none}.gs-print-show{display:block}.gs-print-avoid-break-after{break-after:avoid!important;page-break-after:avoid!important}.grid-stack>.grid-stack-item.gs-print-hide{display:none!important}.grid-stack>.grid-stack-item[gs-page-break=true],.grid-stack>.grid-stack-item[gs-print-orientation]{float:none!important;clear:both!important}.grid-stack>.grid-stack-item[gs-page-break=true]{page-break-before:always!important;break-before:page!important}.grid-stack>.grid-stack-item[gs-print-orientation=landscape]{page:gs-landscape;min-width:calc(100vmax * var(--gs-w) / var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-print-orientation=portrait]{page:gs-portrait;min-width:calc(100vmin * var(--gs-w) / var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-break-inside=true]{float:none!important;clear:both!important;break-inside:auto!important;page-break-inside:auto!important;width:100%!important}.grid-stack>.grid-stack-item>.ui-resizable-handle{display:none!important}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f0f0f;--panel:#1a1a1a;--panel-2:#232323;--border:#333;--text:#eee;--muted:#9a9a9a;--accent:#ff4d4d;--accent-hover:#e64444;--live:#e53935;--ok:#4caf50}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}.app{flex-direction:column;min-height:100vh;display:flex}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px 16px 48px}.main:has(.grid-stack){max-width:none;padding:12px}.state{color:var(--muted);text-align:center;padding:32px 0}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:15px}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:default}input{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:4px;padding:8px 12px;font-size:15px}input:focus{outline:1px solid var(--accent)}.header{border-bottom:1px solid var(--border);background:var(--panel);z-index:10;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.logo{color:var(--accent);letter-spacing:.04em;font-size:18px;font-weight:700}.header-nav{align-items:center;gap:12px;display:flex}.header-user{color:var(--muted)}.btn-ghost{border:1px solid var(--border);color:var(--text);background:0 0;padding:6px 14px}.btn-ghost:hover{border-color:var(--accent);background:0 0}.catalog-toolbar{margin-bottom:20px}.toggle{border:1px solid var(--border);border-radius:4px;display:inline-flex;overflow:hidden}.toggle button{background:var(--panel);color:var(--muted);border-radius:0}.toggle button.active{background:var(--accent);color:#fff}.cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;display:block;overflow:hidden}.card:hover{border-color:var(--accent)}.thumb{aspect-ratio:16/9;object-fit:cover;background:#000;width:100%;display:block}.thumb-placeholder{color:var(--muted);background:var(--panel-2);justify-content:center;align-items:center;font-size:13px;display:flex}.thumb-placeholder:after{content:"нет превью"}.card-body{justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.card-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.badge-live{background:var(--live);color:#fff;letter-spacing:.06em;border-radius:3px;padding:2px 8px;font-size:11px;font-weight:700}.badge-offline{color:var(--muted);font-size:12px}.channel{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.channel-main{min-width:0}.channel-info h1{align-items:center;gap:10px;margin:14px 0 4px;font-size:22px;display:flex}.channel-started{color:var(--muted);margin:0 0 4px;font-size:13px}.channel-description{color:#ccc;margin:8px 0 0}.player-box{aspect-ratio:16/9;background:#000;border-radius:8px;width:100%;overflow:hidden}.player-status{background:var(--panel);color:var(--muted);border-radius:4px;justify-content:space-between;align-items:center;margin-top:8px;padding:8px 12px;font-size:13px;display:flex}.player-status button{padding:4px 12px;font-size:13px}.offline-panel{aspect-ratio:16/9;background:var(--panel);border-radius:8px;width:100%;position:relative;overflow:hidden}.offline-thumb{object-fit:cover;opacity:.5;width:100%;height:100%;position:absolute;inset:0}.offline-overlay{background:#00000059;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}.offline-overlay p{margin:0;font-size:20px;font-weight:600}.offline-hint{color:var(--muted);font-size:13px!important;font-weight:400!important}.chat{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.chat-header h2{margin:0;font-size:15px}.chat-viewers{color:var(--muted);font-size:13px}.chat-messages{flex-direction:column;gap:6px;height:430px;padding:10px 12px;display:flex;overflow-y:auto}.chat-empty{color:var(--muted);margin:auto}.chat-message{overflow-wrap:anywhere;font-size:14px;line-height:1.45}.chat-time{color:var(--muted);margin-right:6px;font-size:12px}.chat-author{margin-right:4px;font-weight:700}.chat-form{border-top:1px solid var(--border);gap:8px;padding:10px 12px;display:flex}.chat-form input{flex:1;min-width:0}.chat-form button{padding:8px 12px}.chat-guest{border-top:1px solid var(--border);color:var(--muted);margin:0;padding:10px 12px;font-size:14px}.chat-error{color:var(--accent);margin:0;padding:6px 12px 10px;font-size:13px}.auth-form{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:14px;max-width:360px;margin:40px auto;padding:24px;display:flex}.auth-form h1{margin:0 0 4px;font-size:20px}.auth-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-form input{background:var(--panel-2)}.form-error{color:var(--accent);margin:0;font-size:14px}.page-title{margin:0 0 20px;font-size:22px}.muted{color:var(--muted)}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:16px;display:grid}.dash-stack{gap:16px;display:grid}.dash-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px}.dash-card h2{margin:0 0 12px;font-size:16px}.dash-line{justify-content:space-between;gap:12px;margin:8px 0;font-size:15px;display:flex}.dash-label{color:var(--muted);flex-shrink:0}.dash-hint{color:var(--muted);margin:12px 0 0;font-size:12px}.pending-note{color:var(--muted);margin:0;font-size:14px}.key-row{align-items:center;gap:8px;margin:8px 0;display:flex}.key-label{width:64px;color:var(--muted);flex-shrink:0;font-size:13px}.key-value{text-overflow:ellipsis;white-space:nowrap;background:var(--panel-2);border-radius:4px;flex:1;min-width:0;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;overflow:hidden}.key-actions{gap:8px;margin-top:12px;display:flex}.btn-small{padding:4px 10px;font-size:13px}.settings-form{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:end;gap:14px;display:grid}.settings-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.settings-actions{align-items:center;gap:10px;display:flex}.saved-note{color:var(--ok);font-size:13px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;border-bottom:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);padding:10px 12px}.table tr:last-child td{border-bottom:none}.table-actions{text-align:right}.table-actions button{padding:4px 12px;font-size:13px}@media (width<=960px){.channel{grid-template-columns:1fr}.chat-messages{height:320px}}.home-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.home-hint{color:var(--muted);margin-left:auto;font-size:13px}.grid-stack-item{border-radius:8px}.grid-stack-item-content{border-radius:8px;overflow:hidden}.grid-stack>.grid-stack-placeholder>.placeholder-content{background:var(--accent);opacity:.12;border:1px dashed var(--accent);border-radius:8px}.grid-stack>.grid-stack-item>.ui-resizable-se{background:var(--accent);clip-path:polygon(100% 0,100% 100%,0 100%);opacity:.75;background-image:none;width:14px;height:14px;bottom:3px;right:3px}.widget-host{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.widget-header{border-bottom:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:8px;min-height:36px;padding:6px 10px;display:flex}.grid-stack:not(.editing) .widget-header{cursor:default}.widget-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700}.widget-close{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:4px;margin-left:auto;padding:0 9px;font-size:16px;line-height:20px}.widget-close:hover{border-color:var(--accent);color:var(--accent);background:0 0}.widget-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.widget-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 10px;display:flex}.widget-fill{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.widget-empty{color:var(--muted);text-align:center;margin:auto;font-size:14px}.widget-scroll{flex:1;min-height:0;padding:12px;overflow-y:auto}.widget-host select{border:1px solid var(--border);background:var(--panel-2);min-width:0;color:var(--text);border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.widget-host select:focus{outline:1px solid var(--accent)}.widget-toggle{border:1px solid var(--border);color:var(--muted);background:0 0;flex-shrink:0;padding:5px 10px;font-size:13px}.widget-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}.widget-toggle:hover:not(.active){border-color:var(--accent);color:var(--text);background:0 0}.widget-cards{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.widget-host .player{flex-direction:column;flex:1;min-height:0;display:flex}.widget-host .player-box{border-radius:0;flex-shrink:0}.widget-host .player-status{border-top:1px solid var(--border);border-radius:0;flex-shrink:0;margin-top:0}.widget-host .chat{border:none;border-radius:0;flex:1;min-height:0}.widget-host .chat-messages{flex:1;height:auto;min-height:0}
