:root{color-scheme:dark;--bg: #252528;--card: #1f2021;--panel: #2b2c2e;--panel-hi: #333437;--line: #3a3b3d;--text: #f4f1ec;--muted: #9a9a9a;--soft: #c9c6c1;--accent: #b9293b;--accent-hi: #d23246;--accent-soft: #ff6b7d;--accent-glow: rgba(185, 41, 59, .55);--ok: #4fbf7f;--warn: #e0a24a;--radius: 12px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}.skel{color:transparent;-webkit-user-select:none;user-select:none;overflow-wrap:anywhere;border-radius:6px;background:#ffffff21;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:skel 1.1s ease-in-out infinite alternate}@keyframes skel{0%{opacity:.45}to{opacity:1}}@media(prefers-reduced-motion:reduce){.skel{animation:none}}button:focus-visible{outline:2px solid var(--text);outline-offset:2px}.page{min-height:100vh;padding:24px;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;justify-content:center;align-items:flex-start}.page--center{flex-direction:column;align-items:center;justify-content:center;gap:24px}@media(min-width:761px){.page--middle{align-items:center}}.page__stack{display:flex;flex-direction:column;gap:20px;width:100%;max-width:900px}.card{width:100%;background:var(--card);border:2px solid var(--accent);border-radius:15px;padding:28px;box-shadow:0 4px 10px #b9293b66}.card--portal{max-width:640px}.card--medium{max-width:760px}.card--form{max-width:520px}.card--cast{max-width:900px}.card--remote{max-width:960px}.card--journal{max-width:900px}.card--warn{border-color:#d08a1e}.card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.card__title{font-size:1.4rem;line-height:1.25}.card__heading{font-size:1.05rem}.card__subtitle{color:var(--muted);font-size:.95rem;line-height:1.45;margin-top:4px;max-width:60ch}.card__back{color:var(--muted);font-size:.9rem;white-space:nowrap;text-decoration:none}.card__back:hover{color:var(--text)}.card__status{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.card__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-8px 0 18px}@media(max-width:760px){.card__bar{flex-direction:column;align-items:flex-start}}.card__hint{color:var(--muted);font-size:.88rem}.card__link{color:var(--text)}.muted{color:var(--muted);font-size:.95rem;line-height:1.45}.empty{padding:28px 12px;text-align:center;color:var(--muted)}.loading{color:var(--muted);padding:18px 0}.icon{width:22px;height:22px;flex:none;pointer-events:none}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px) scale(.98)}}@keyframes pulse{50%{opacity:.35}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media(max-width:560px){.page{padding:12px 10px calc(12px + env(safe-area-inset-bottom))}.card{padding:18px 14px;border-radius:13px}.card__title{font-size:1.25rem}.card__top{flex-direction:column-reverse;gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01s!important;transition-duration:.01s!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;text-decoration:none;font:inherit;white-space:nowrap;background:var(--accent);color:var(--text);font-weight:700;padding:11px 22px;border-radius:8px;font-size:.98rem;transition:box-shadow .15s,opacity .15s,background-color .15s,border-color .15s}.btn:hover:not(:disabled){box-shadow:0 0 15px var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--ghost{background:transparent;border:1px solid var(--line);color:var(--soft);font-weight:600}.btn--ghost:hover:not(:disabled){box-shadow:none;border-color:var(--muted);color:var(--text)}.btn--small{padding:8px 14px;font-size:.88rem}.btn--wide{width:100%}.btn__icon{width:18px;height:18px}.status{display:inline-flex;align-items:center;gap:9px;max-width:100%;padding:7px 13px 7px 11px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:.9rem;color:var(--soft)}.status__dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--muted)}.status--ok .status__dot{background:var(--ok);box-shadow:0 0 8px #4fbf7fb3}.status--live .status__dot{background:var(--accent-hi);box-shadow:0 0 10px var(--accent-glow);animation:pulse 1.6s ease-in-out infinite}.status--wait .status__dot{background:var(--warn);animation:pulse 1.2s ease-in-out infinite}.status--off .status__dot{background:#6b6c6f}.status--live{color:var(--text);border-color:#b9293b99}.booking{display:flex;align-items:center;gap:14px;margin-bottom:20px;padding:12px 12px 12px 14px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);animation:fade-in .2s ease-out}.booking--mine{border-color:#4fbf7f8c;background:linear-gradient(90deg,rgba(79,191,127,.1),var(--panel) 60%)}.booking--other{border-color:#e0a24a8c;background:linear-gradient(90deg,rgba(224,162,74,.1),var(--panel) 60%)}.booking__icon{flex:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--panel-hi);color:var(--soft);overflow:hidden;position:relative;font-weight:700;font-size:.95rem}.booking--mine .booking__icon{color:var(--ok)}.booking__glyph{width:20px;height:20px}.booking__photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.booking__body{flex:1;min-width:0}.booking__title{font-weight:700;font-size:.98rem}.booking__sub{color:var(--muted);font-size:.86rem;line-height:1.4;margin-top:2px}.booking__who{color:var(--text);font-weight:600}.booking__action{flex:none}.notice{border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:.93rem;line-height:1.45;background:#3a2226;border:1px solid var(--accent)}.notice--ok{background:#22301f;border-color:#4a7c3f}.notice--loading{display:flex;align-items:center;gap:10px;background:var(--panel);border-color:var(--line);color:var(--soft)}.notice--loading:before{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent-soft);animation:booking-spin .8s linear infinite}.notice__link{color:var(--text);font-weight:700;overflow-wrap:anywhere}.dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a0a0c9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .15s ease-out}.dialog__box{width:min(420px,100%);padding:22px;border-radius:14px;background:#26272a;border:1px solid var(--accent);box-shadow:0 20px 50px #0009;animation:rise .18s ease-out}.dialog__text{font-size:1rem;line-height:1.5}.dialog__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dialog__input{width:100%;margin-top:12px;padding:12px;border-radius:10px;min-height:90px;resize:vertical;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit}.dialog__input:focus{outline:none;border-color:var(--accent)}.snackbars{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:10px;width:min(420px,calc(100vw - 40px));pointer-events:none}.snackbar{pointer-events:auto;position:relative;display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px 12px 14px 16px;border-radius:12px;background:#2b2c2e;color:#f4f1ec;border:1px solid #3a3b3d;border-left:4px solid #9a9a9a;box-shadow:0 10px 28px #0000008c;font:.95rem/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;animation:snack-in .18s ease-out;touch-action:pan-y;-webkit-user-select:none;user-select:none}.snackbar--error{border-left-color:#b9293b}.snackbar--success{border-left-color:#4a7c3f}.snackbar__text{flex:1;min-width:0;overflow-wrap:anywhere}.snackbar__close{flex:none;width:28px;height:28px;margin:-4px -2px -4px 0;border:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:#9a9a9a}.snackbar__close:hover{background:#3a3b3d;color:#f4f1ec}.snackbar__close:focus-visible{outline:2px solid #f4f1ec;outline-offset:1px}.snackbar__close-icon{width:14px;height:14px}.snackbar--leaving{animation:snack-out .16s ease-in forwards}@keyframes snack-in{0%{opacity:0;transform:translateY(12px)}}@keyframes snack-out{to{opacity:0;transform:translateY(12px)}}@media(max-width:560px){.snackbars{left:10px;right:10px;width:auto;align-items:stretch;bottom:calc(10px + env(safe-area-inset-bottom))}.snackbar__close{display:none}.snackbar--dragging{animation:none;transition:none}.snackbar--settling{transition:transform .18s ease-out,opacity .18s ease-out}.booking{flex-wrap:wrap}.booking__action{width:100%}}.form{display:grid;gap:18px}.form__notice{margin:0}.field{display:grid;gap:6px;min-width:0}.field__label{font-weight:600;font-size:.95rem}.field__input{width:100%;min-width:0;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}.field__input::placeholder{color:#6b6c6f}.field__input:hover{border-color:#55565a}.field__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #b9293b47}.field__hint{color:var(--muted);font-size:.85rem;line-height:1.4}.field__error{color:var(--accent-soft);font-size:.85rem;line-height:1.4}.field--bad .field__input{border-color:var(--accent-hi)}.field__input:user-invalid{border-color:var(--accent-hi)}.form__submit{margin-top:4px;padding:13px 22px}.form__spinner{display:none;flex:none;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:var(--text);animation:spin .8s linear infinite}.form.htmx-request .form__spinner{display:inline-block}.form.htmx-request .form__submit{opacity:.75;cursor:progress}.avatar-slot{display:contents}.avatar{position:relative;flex:none;width:52px;height:52px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:#3a2226;border:2px solid var(--accent);color:#ff9aa7;font-weight:700;font-size:1.05rem;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.avatar--small{width:44px;height:44px;font-size:.95rem}.avatar__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.avatar--loading,[data-avatar=pending]{position:relative;border-radius:50%;overflow:hidden;color:transparent}.avatar--loading:after,[data-avatar=pending]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:linear-gradient(100deg,transparent 20%,var(--line) 50%,transparent 80%);background-size:220% 100%;animation:shimmer 1.2s linear infinite}[data-avatar=pending] img{opacity:0}[data-avatar] img{transition:opacity .2s}@media(prefers-reduced-motion:reduce){.avatar--loading:after,[data-avatar=pending]:after{animation:none;background:var(--line)}}.account{position:relative;margin:0 -8px 22px;border-radius:12px;padding:8px;transition:background-color .15s}.account:hover,.account:focus-within{background:var(--panel);outline:none}.account__who{display:flex;align-items:center;gap:14px}.account__name{font-size:1.4rem;margin-bottom:6px}.account__menu{position:absolute;top:0;right:0;bottom:0;z-index:5;max-width:100%;display:flex;flex-direction:row;align-items:stretch;gap:8px;background:#26272a;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 12px 28px #0000008c;opacity:0;visibility:hidden;transform:translate(8px);transition:opacity .15s,transform .15s,visibility .15s}.account:hover .account__menu,.account:focus-within .account__menu{opacity:1;visibility:visible;transform:translate(0)}.account__form{display:flex}.account__action{height:100%;padding:0 22px}.services{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-auto-rows:1fr}.service{display:flex;align-items:center;justify-content:center;text-align:center;min-height:64px;padding:16px;border-radius:10px;text-decoration:none;background:var(--panel);color:var(--text);border:1px solid var(--line);transition:border-color .15s,transform .15s}.service:hover{border-color:var(--accent);transform:translateY(-2px)}.service__title{font-size:1.05rem}.cheer{text-align:center;padding:28px 12px;font-size:1.25rem;font-weight:700}.login__title{font-size:1.4rem;margin-bottom:6px}.login__text{margin:10px 0 22px}.login__waiting{margin-top:14px}.login__action{padding:12px 24px;font-size:1rem}.people{list-style:none;display:flex;flex-direction:column;gap:10px}.people__item{scroll-margin-top:12px}.people__item--open{border:1px solid var(--accent);border-radius:10px;background:var(--panel);box-shadow:0 4px 14px #b9293b38}.person{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:10px;background:var(--panel);border:1px solid var(--line);color:inherit;text-decoration:none;transition:border-color .15s,transform .15s}.person--link{width:100%;cursor:pointer}.person--link *{pointer-events:none}@media(hover:hover){.person--link:hover{border-color:var(--accent);transform:translateY(-1px)}.people__item--open .person--link:hover{background:#313235}}.person--link:active{border-color:var(--accent)}.people__item--open .person--link{border:0;border-radius:9px 9px 0 0;transform:none}.person--root{cursor:default;border-style:dashed}.person__ident{display:flex;align-items:center;gap:12px;min-width:0}.person__who{min-width:0}.person__name{display:block;font-size:1.05rem}.person__sub{color:var(--muted);font-size:.85rem}.person__chevron{flex:none;width:16px;height:16px;color:#6d6d6d;transition:transform .15s,color .15s}.person--link:hover .person__chevron{color:var(--text)}.people__item--open .person__chevron{transform:rotate(180deg);color:var(--accent-soft)}.granted{flex:0 1 auto;display:flex;flex-wrap:wrap;gap:6px;margin-left:auto;justify-content:flex-end;align-items:center}.granted--none{color:#6d6d6d;font-style:italic;font-size:.85rem}.tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600;line-height:1.25;border:1px solid transparent;white-space:nowrap}.tag--jellyfin{color:#c39bec;background:#9a6ad629;border-color:#9a6ad673}.tag--qbit{color:#64c8d4;background:#3aa8b629;border-color:#3aa8b673}.tag--nextcloud{color:#6fb4ef;background:#3a85d129;border-color:#3a85d173}.tag--coolify{color:#a7a1ff;background:#6c63ff29;border-color:#6c63ff73}.tag--nat{color:#f0a35e;background:#e08a3c29;border-color:#e08a3c73}.tag--projector{color:#7fd6a4;background:#3eaa7029;border-color:#3eaa7073}.tag--other{color:#9a9a9a;background:#9a9a9a24;border-color:#9a9a9a66}.tag--admin{color:var(--accent-soft);background:#b9293b42;border-color:var(--accent);font-size:1rem;font-weight:800;padding:5px 13px;letter-spacing:.01em;text-transform:uppercase}.tag__scope{display:inline-flex;align-items:center;margin-left:6px;padding-left:6px;border-left:1px solid currentColor;opacity:.8}.tag__scope-icon{width:12px;height:12px;display:block}.tag--admin .tag__scope-icon{width:14px;height:14px}.editor{padding:2px 16px 16px}.editor:before{content:"";display:block;height:1px;background:var(--line);margin-bottom:14px}.editor__notice{margin:0 0 12px}.editor__hint{color:var(--muted);font-size:.85rem;line-height:1.45}.editor__levels{display:grid;grid-auto-rows:1fr;gap:10px;margin:18px 0 22px}.editor__actions{display:flex;gap:12px;align-items:center}.editor__action{padding:12px 24px;font-size:1rem}.level{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 10px 10px 14px;border-radius:10px;background:var(--card);border:1px solid var(--line)}.level__name{display:flex;align-items:center;gap:10px;font-weight:600;min-width:0}.level__sub{display:block;color:var(--muted);font-size:.8rem;font-weight:400;margin-top:2px}.level__dot{flex:none;width:10px;height:10px;border-radius:50%;background:currentColor}.level__dot--jellyfin{color:#c39bec}.level__dot--qbit{color:#64c8d4}.level__dot--nextcloud{color:#6fb4ef}.level__dot--coolify{color:#a7a1ff}.level__dot--nat{color:#f0a35e}.level__dot--projector{color:#7fd6a4}.level__dot--admin{color:var(--accent-soft)}.level__dot--other{color:#9a9a9a}.coolify-name{flex:0 1 auto;min-width:0;max-width:220px;margin-left:auto;padding:6px 10px;border-radius:999px;cursor:copy;border:1px solid rgba(167,161,255,.45);background:#a7a1ff1f;color:#cfcbff;font:inherit;font-size:.82rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color .15s,border-color .15s}.coolify-name:hover{background:#a7a1ff38;border-color:#a7a1ffcc}.coolify-name:active{background:#a7a1ff4d}.coolify-name--loading{width:96px;height:31px;padding:0;cursor:default;border-color:transparent;background:linear-gradient(100deg,var(--panel) 20%,var(--line) 50%,var(--panel) 80%);background-size:220% 100%;animation:shimmer 1.2s linear infinite}@media(prefers-reduced-motion:reduce){.coolify-name--loading{animation:none;background:var(--line)}}.seg{flex:none;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:3px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}.seg__input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.seg__label{padding:8px 14px;border-radius:7px;cursor:pointer;text-align:center;color:var(--muted);font-size:.88rem;font-weight:600;line-height:1.2;white-space:nowrap;border:1px solid transparent;transition:background-color .15s,color .15s,box-shadow .15s,border-color .15s}.seg__label:hover{color:var(--text)}.seg__input--none:checked+.seg__label{background:var(--line);color:var(--text)}.seg__input--lan:checked+.seg__label{background:#b9293b47;border-color:var(--accent);color:#ff9aa7}.seg__input--internet:checked+.seg__label{background:var(--accent);color:var(--text);box-shadow:0 0 12px var(--accent-glow)}.seg__input:focus-visible+.seg__label{outline:2px solid var(--text);outline-offset:1px}.switch{flex:none;position:relative;display:inline-flex;cursor:pointer}.switch__input{appearance:none;-webkit-appearance:none;margin:0;cursor:inherit;width:52px;height:30px;border-radius:999px;background:var(--bg);border:1px solid var(--line);transition:background-color .15s,border-color .15s,box-shadow .15s}.switch__input:after{content:"";position:absolute;top:5px;left:5px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .15s,background-color .15s}.switch__input:checked{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.switch__input:checked:after{transform:translate(22px);background:var(--text)}.switch__input:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media(max-width:560px){.person{flex-wrap:wrap;gap:10px;padding:12px 14px}.person--link{position:relative;padding-right:38px}.person__chevron{position:absolute;top:16px;right:14px}.granted{justify-content:flex-start}.tag--admin{font-size:.85rem;padding:4px 11px}.editor{padding:2px 12px 12px}.editor__levels{gap:8px;margin:14px 0 16px}.level{flex-wrap:wrap;gap:10px;padding:12px}.coolify-name{max-width:50%}.level--binary{flex-wrap:nowrap}.level:not(.level--binary) .seg{width:100%}.seg__label{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px 4px;white-space:normal;font-size:.85rem}.editor__actions{position:sticky;bottom:0;z-index:1;margin:0 -12px -12px;padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to bottom,rgba(43,44,46,.85),var(--panel) 35%);border-top:1px solid var(--line);border-radius:0 0 9px 9px}.editor__action{flex:1;text-align:center;padding:13px 12px}}.nat__subhead{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.nat__heading{font-size:1.1rem}.nat__tools{margin-top:18px}.nat__rules{position:relative}.nat__add{padding:12px 24px;font-size:1rem}.nat-table{width:100%;border-collapse:separate;border-spacing:0 8px;table-layout:fixed;margin:-8px 0 8px}.nat-table__col--ip{width:36%}.nat-table__col--port{width:19%}.nat-table__col--ext{width:22%}.nat-table__col--act{width:23%}.nat-table__head{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:0 8px 2px}.nat-table__cell{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px}.nat-table__cell:first-child{border-left:1px solid var(--line);border-radius:10px 0 0 10px}.nat-table__cell:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0}.nat-table__row--editing .nat-table__cell{border-color:var(--accent)}.nat-table__row--leaving .nat-table__cell{opacity:0;transition:opacity .2s}.nat-table__error{padding:0 8px 4px;color:#ff9aa7;font-size:.85rem}.nat-value{display:block;width:100%;text-align:left;background:none;border:1px solid transparent;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;padding:8px;border-radius:7px;cursor:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nat-value:hover{border-color:var(--line);background:var(--bg)}.nat-input{width:100%;padding:8px;border-radius:7px;font:inherit;font-variant-numeric:tabular-nums;background:var(--card);color:var(--text);border:1px solid var(--line)}.nat-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #b9293b40}.nat-input--bad{border-color:#e5484d;box-shadow:0 0 0 2px #e5484d47}.nat-input--bad:focus{border-color:#e5484d;box-shadow:0 0 0 2px #e5484d66}.nat-input:disabled{opacity:.6}.nat-act{position:relative;width:100%;height:38px;border:none;border-radius:7px;cursor:pointer;font:inherit;font-weight:700;font-size:.9rem;color:var(--text);background:var(--accent);transition:box-shadow .15s,opacity .15s,background-color .15s}.nat-act:hover:not(:disabled){box-shadow:0 0 12px #b9293b99}.nat-act:disabled{opacity:.4;cursor:not-allowed}.nat-act--delete{background:transparent;border:1px solid var(--line);color:var(--soft)}.nat-act--delete:hover:not(:disabled){border-color:var(--accent);color:var(--accent-soft);box-shadow:none}.nat-act--busy,.nat-act--busy:disabled{opacity:1;color:transparent;cursor:progress}.nat-act--busy:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:18px;height:18px;border:2px solid rgba(244,241,236,.3);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}.nat-act--delete.nat-act--busy:after{border-color:#b9293b4d;border-top-color:var(--accent-soft)}.nat-confirm{position:absolute;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 6px 6px 14px;border-radius:10px;background:#26272a;border:1px solid var(--accent);box-shadow:0 12px 28px #0000008c;animation:nat-confirm-in .15s ease-out}.nat-confirm__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-variant-numeric:tabular-nums}.nat-confirm__actions{flex:none;display:flex;gap:6px;height:100%}.nat-confirm__btn{height:100%;min-height:34px;padding:0 14px;border-radius:7px;cursor:pointer;font:inherit;font-weight:700;font-size:.9rem}.nat-confirm__btn--no{background:transparent;border:1px solid var(--line);color:var(--soft)}.nat-confirm__btn--no:hover{border-color:var(--muted)}.nat-confirm__btn--yes{background:var(--accent);border:1px solid var(--accent);color:var(--text)}.nat-confirm__btn--yes:hover{box-shadow:0 0 12px #b9293b99}@keyframes nat-confirm-in{0%{opacity:0;transform:translate(8px)}}.nat-people{list-style:none;display:flex;flex-direction:column;gap:10px}.nat-person{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:14px 16px;border-radius:10px;background:var(--panel);border:1px solid var(--line);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s}.nat-person:hover{border-color:var(--accent)}.nat-person__name{display:block;font-size:1.02rem}.nat-person__sub{color:var(--muted);font-size:.85rem}.nat-person__count{flex:none;min-width:34px;padding:4px 10px;border-radius:999px;text-align:center;font-size:.85rem;font-weight:700;color:#f0a35e;background:#e08a3c29;border:1px solid rgba(224,138,60,.45)}@media(max-width:560px){.nat-table__col--ip{width:38%}.nat-table__col--port{width:18%}.nat-table__col--ext{width:20%}.nat-table__col--act{width:24%}.nat-table__head{font-size:.66rem;padding:0 3px 2px;letter-spacing:0}.nat-table__cell{padding:4px 3px}.nat-value{padding:8px 3px;font-size:14px}.nat-input{padding:8px 3px;font-size:16px}.nat-act{font-size:.78rem;height:40px}.nat-confirm{padding:4px 4px 4px 10px;gap:6px}.nat-confirm__text{font-size:.82rem;white-space:normal;line-height:1.25}.nat-confirm__btn{padding:0 9px;font-size:.78rem}}.remote{--row: 60px;--card-h: 100px;display:grid;grid-template-columns:252px var(--row) minmax(0,1fr);gap:18px;align-items:stretch;min-width:250px;transition:opacity .2s,filter .2s}.remote--locked{opacity:.45;filter:saturate(.4)}.remote--locked .remote__ctl,.remote--locked .favs{pointer-events:none}.remote__col{display:flex;flex-direction:column;gap:16px;min-width:0}.remote__col--volume{gap:8px}.remote__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.remote__hint{grid-column:1 / -1}.key{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;margin:0;cursor:pointer;font:inherit;font-weight:650;font-size:.95rem;color:var(--text);background:var(--panel);-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:background-color .12s,color .12s,box-shadow .12s}.key__icon{stroke-width:1.9}.key:hover{background:var(--panel-hi)}.key--down,.key:active{background:var(--accent);box-shadow:inset 0 0 18px #00000040}.key--on{background:var(--accent);color:var(--text);box-shadow:inset 0 0 18px #00000040}.key--round{width:54px;height:54px;border-radius:50%;flex:none}.key--power{border:1px solid rgba(185,41,59,.7);color:var(--accent-soft);box-shadow:0 0 14px #b9293b40}.key--power:hover{box-shadow:0 0 18px var(--accent-glow);background:#34262a}.key--power.key--down{color:var(--text);background:var(--accent)}.key--power .key__icon{width:24px;height:24px;stroke-width:2.2}.keys{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);flex:none}.keys>.key{flex:1 1 0;min-width:0;height:58px;border-left:1px solid var(--line)}.keys>.key:first-child{border-left:0}.keys>.key--narrow{flex:0 0 46px}.keys--vertical{flex-direction:column}.keys--vertical>.key{border-left:0;border-top:1px solid var(--line)}.keys--vertical>.key:first-child{border-top:0}.mute{--mute-bg: var(--panel);--shift: 4;border:1px solid var(--line);background:var(--mute-bg);color:var(--muted);overflow:hidden;transition:background-color .12s,color .12s,border-color .15s}.mute:hover{--mute-bg: var(--panel-hi);background:var(--mute-bg);border-color:var(--muted)}.mute.key--down,.mute:active{--mute-bg: var(--accent);background:var(--mute-bg);color:var(--text);border-color:var(--accent)}.mute__icon{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;overflow:visible;stroke-width:1.15;transform:translate(calc(var(--shift) * 40px / 24));transition:transform .3s cubic-bezier(.3,.7,.3,1)}.mute--l1{--shift: 2.5}.mute--l2{--shift: .8}.mute--l3{--shift: -.9}.mute--l4{--shift: -2.6}.mute__wave{opacity:0;transition:opacity .2s}.mute--l1 .mute__wave--1,.mute--l2 .mute__wave--1,.mute--l2 .mute__wave--2,.mute--l3 .mute__wave--1,.mute--l3 .mute__wave--2,.mute--l3 .mute__wave--3,.mute--l4 .mute__wave{opacity:1}.mute__value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem;line-height:1;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;user-select:none;-webkit-user-select:none;pointer-events:none;text-shadow:-1.5px 0 var(--mute-bg),1.5px 0 var(--mute-bg),0 -1.5px var(--mute-bg),0 1.5px var(--mute-bg),-1px -1px var(--mute-bg),1px -1px var(--mute-bg),-1px 1px var(--mute-bg),1px 1px var(--mute-bg),0 0 3px var(--mute-bg)}.mute__slash{position:absolute;left:50%;top:50%;width:44px;height:2.5px;margin:-1.25px 0 0 -22px;border-radius:2px;background:var(--accent-soft);box-shadow:0 0 0 1.5px var(--mute-bg);transform:rotate(-45deg) scaleX(0);opacity:0;pointer-events:none;transition:transform .22s ease-out,opacity .15s}.mute--muted .mute__slash{transform:rotate(-45deg) scaleX(1);opacity:1}.mute--muted .mute__value{color:var(--soft)}.mute.key--down .mute__slash{background:var(--text)}.wheel{position:relative;width:100%;aspect-ratio:1;touch-action:none;container-type:inline-size}.wheel__svg{display:block;width:100%;height:100%;pointer-events:auto}.wheel__seg{fill:var(--panel);stroke:var(--line);stroke-width:1.4;cursor:pointer;transition:fill .12s}.wheel__seg:hover{fill:var(--panel-hi)}.wheel__seg--down{fill:var(--accent)}.wheel__marks{fill:none;stroke:var(--soft);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.wheel__ok{fill:#26272a;stroke:var(--line);stroke-width:1.4;cursor:pointer;transition:fill .12s}.wheel__ok:hover{fill:#2f3033}.wheel__ok--down{fill:var(--accent)}.wheel__seg:focus-visible,.wheel__ok:focus-visible{outline:none;stroke:var(--text);stroke-width:2.5}.wheel__label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.4rem;pointer-events:none}@supports (font-size: 1cqw){.wheel__label{font-size:11cqw}}.volume{--vol: 0;--fill: rgba(185, 41, 59, .62);--fill-end: rgba(185, 41, 59, .3);flex:1}.volume__track{position:relative;flex:1 1 0;display:flex;flex-direction:column;min-height:140px;touch-action:none}.volume__fill{position:absolute;left:0;right:0;bottom:0;height:calc(var(--vol) * 100%);pointer-events:none;background:linear-gradient(to top,var(--fill),var(--fill-end));border-top:2px solid var(--accent-hi);transition:height .18s ease-out,width .18s ease-out}.volume__fill--empty{border-color:transparent}.volume__track--dragging .volume__fill{transition:none}.volume__step{flex:1 1 0;background:transparent;z-index:1}.volume__step+.volume__step{border-top:1px solid rgba(58,59,61,.85)}.volume__step:hover{background:#ffffff0a}.volume__step.key--down{background:#b9293b80}.volume__track--dragging .volume__step{background:transparent}.inputs{position:relative;flex:none}.inputs__menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:220px;padding:6px;border-radius:var(--radius);background:#26272a;border:1px solid var(--line);box-shadow:0 16px 34px #0000008c;animation:rise .15s ease-out}.inputs__item{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:2px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-weight:650;text-align:left;cursor:pointer}.inputs__item:hover,.inputs__item:focus-visible{background:var(--panel-hi);outline:none}.inputs__sub{color:var(--muted);font-size:.8rem;font-weight:400}.favs{--cols: 4;flex:1 1 0;min-height:calc(var(--card-h) + 2px);display:grid;grid-template-columns:repeat(var(--cols),minmax(96px,1fr));grid-auto-rows:var(--card-h);gap:10px;align-content:start;padding:1px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-width:thin}.favs--scroll{padding-bottom:10px;min-height:calc(var(--card-h) + 12px)}.favs--measuring{grid-auto-rows:auto;align-items:start}.favs__hint{grid-column:2 / -1;align-self:center;color:var(--muted);font-size:.85rem;line-height:1.4;padding:0 4px}.app{position:relative;display:flex;min-width:0;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);animation:fade-in .2s ease-out;transition:border-color .15s,background-color .15s}.app:hover{border-color:var(--accent)}.app__open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:8px 6px;border:0;border-radius:inherit;background:transparent;color:var(--text);font:inherit;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:opacity .2s}.app__open:active{background:var(--panel-hi)}.app__star{position:absolute;top:4px;right:4px;width:24px;height:24px;padding:0;border-radius:50%;display:none;align-items:center;justify-content:center;cursor:pointer;border:1px solid #55565a;background:#1c1d1f;color:#f2b544;box-shadow:0 2px 6px #00000073}.app__star-icon{width:14px;height:14px;fill:currentColor;stroke-width:1.8}.favs--editing .app--fav{animation:app-jiggle .26s ease-in-out infinite alternate;touch-action:none;cursor:grab;transition:translate .2s ease,border-color .15s}.favs--editing .app--fav:nth-child(2n){animation-duration:.3s;animation-delay:-.13s}.favs--editing .app--fav:nth-child(3n){animation-duration:.28s;animation-delay:-.07s}.favs--editing .app--fav .app__open{cursor:inherit}.favs--editing .app__star{display:inline-flex}.app--unstarred .app__open{opacity:.38}.app--unstarred .app__star{color:#77787d}.app--unstarred .app__star-icon{fill:none}.favs--editing .app--dragging{animation:none;z-index:5;cursor:grabbing;transition:border-color .15s;border-color:var(--accent);box-shadow:0 12px 26px #0000008c;scale:1.06}@keyframes app-jiggle{0%{transform:rotate(-1.7deg)}to{transform:rotate(1.7deg)}}@media(prefers-reduced-motion:reduce){.favs--editing .app--fav{animation:none}}.app__label{max-width:100%;font-size:.8rem;font-weight:600;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.app-icon{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:42px;height:42px;border-radius:11px;flex:none;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b3c40,#2a2b2e);color:var(--soft);font-weight:800;font-size:1.15rem}.app-icon__glyph{stroke-width:2}.app--all .app-icon{background:#b9293b29;color:var(--accent-soft);border:1px dashed rgba(185,41,59,.6)}.app--done .app-icon{background:#4fbf7f24;color:var(--ok);border:1px solid rgba(79,191,127,.55)}.touch{flex:none;display:flex;flex-direction:column;gap:10px}.touch__pad{position:relative;height:170px;border-radius:var(--radius);touch-action:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;padding:16px;border:1px dashed #4a4b4f;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.035),transparent 65%),var(--panel);transition:border-color .15s,background-color .15s}.touch__pad--active{border-color:var(--accent);border-style:solid}.touch__hint{color:var(--muted);font-size:.84rem;line-height:1.55;text-align:center;max-width:34ch;pointer-events:none}.touch__text{width:100%;min-height:64px;padding:13px 14px;border-radius:var(--radius);resize:vertical;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;font-size:16px}.touch__text:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #b9293b40}.dock{flex:none;display:flex;gap:12px;height:var(--row)}.dock__stage{position:relative;flex:1;min-width:0;height:var(--row);border-radius:var(--radius);overflow:hidden}.dock__group{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .5s cubic-bezier(.65,0,.35,1),opacity .5s ease,filter .5s ease}.dock__group--below{transform:translateY(105%) scale(.96);opacity:0;filter:blur(2px);pointer-events:none;transition:none}.dock__group--above{transform:translateY(-105%) scale(.96);opacity:0;filter:blur(2px);pointer-events:none}.swap{position:relative;flex:none;width:var(--row);height:var(--row);border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--soft);cursor:pointer;transition:color .15s,border-color .15s,background-color .12s}.swap:hover{color:var(--text);border-color:var(--muted);background:var(--panel-hi)}.swap__arrows{position:absolute;top:5px;right:5px;bottom:5px;left:5px;width:calc(100% - 10px);height:calc(100% - 10px);transition:transform .5s cubic-bezier(.65,0,.35,1)}.swap__glyph{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:24px;height:24px;stroke-width:1.8;transition:opacity .3s ease,transform .3s ease}.swap__glyph--capture{opacity:0;transform:scale(.55)}.dock--focus .swap__glyph--capture{opacity:1;transform:none}.dock--focus .swap__glyph--focus{opacity:0;transform:scale(.55)}.capture{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;cursor:none;background:#08080a61;display:flex;justify-content:center;align-items:flex-start}.capture__badge{margin-top:18px;padding:10px 16px;border-radius:999px;font-weight:650;font-size:.9rem;background:#1a1b1deb;border:1px solid var(--accent);box-shadow:0 10px 30px #00000080;animation:rise .2s ease-out}.capture__badge--keyboard{position:fixed;left:50%;top:0;z-index:790;transform:translate(-50%)}.kbd-hint{margin-top:-2px;color:#75767a;font-size:.8rem;text-align:center;line-height:1.9}.kbd-hint__key{font:inherit;padding:1px 6px;border-radius:5px;border:1px solid var(--line);background:var(--panel);color:var(--muted)}.apps{margin:auto;width:min(600px,calc(100vw - 24px));height:min(720px,calc(100vh - 40px));padding:0;border:1px solid var(--accent);border-radius:15px;background:var(--card);color:var(--text);box-shadow:0 24px 60px #000000a6}.apps[open]{display:flex;flex-direction:column;animation:rise .18s ease-out}.apps::backdrop{background:#0a0a0c9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.apps__head{display:flex;gap:10px;padding:16px;border-bottom:1px solid var(--line)}.apps__search{position:relative;flex:1}.apps__search-icon{position:absolute;left:12px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--muted)}.apps__query{width:100%;height:44px;padding:0 12px 0 40px;border-radius:10px;font:inherit;font-size:16px;background:var(--panel);color:var(--text);border:1px solid var(--line)}.apps__query:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #b9293b40}.apps__close{flex:none;width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--soft);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.apps__close:hover{border-color:var(--muted);color:var(--text)}.apps__close-icon{width:16px;height:16px}.apps__list{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:12px 16px 16px;display:flex;flex-direction:column;gap:8px}.apps__sep{margin:10px 2px 2px;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.apps__note{color:var(--muted);text-align:center;padding:26px 10px}.apps__skeleton{height:68px;border-radius:var(--radius);flex:none;background:linear-gradient(100deg,var(--panel) 30%,#313236 50%,var(--panel) 70%);background-size:220% 100%;animation:shimmer 1.2s linear infinite}.app-row{display:flex;align-items:stretch;min-height:68px;flex:none;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);overflow:hidden;transition:border-color .15s}.app-row:hover{border-color:var(--accent)}.app-row__open{flex:1;min-width:0;display:flex;align-items:center;gap:14px;padding:0 12px 0 0;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.app-row__open:active{background:var(--panel-hi)}.app-row__icon{width:66px;height:auto;align-self:stretch;border-radius:0;font-size:1.4rem;padding:10px;background-clip:content-box}img.app-row__icon{object-fit:contain;background:none}.app-row__icon .app-icon__glyph{width:28px;height:28px}.app-row__text{min-width:0}.app-row__name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-row__pkg{color:var(--muted);font-size:.8rem;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.app-row__star{flex:none;width:58px;border:0;border-left:1px solid var(--line);background:transparent;color:#6f7074;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .15s,background-color .15s}.app-row__star:hover{color:var(--warn);background:#e0a24a14}.app-row__star--on{color:#f2b544}.app-row__star-icon{width:24px;height:24px;stroke-width:1.8}.app-row__star--on .app-row__star-icon{fill:currentColor}.app-row__star:disabled{opacity:.5;cursor:progress}@media(max-width:760px){.remote{grid-template-columns:minmax(0,1fr);gap:16px}.remote__col--main{container-type:inline-size}.remote__col--volume{margin-top:-4px}.volume{flex-direction:row-reverse;height:var(--row);flex:none}.volume__track{flex-direction:row-reverse;min-height:0}.volume__fill{top:0;right:auto;width:calc(var(--vol) * 100%);height:auto;background:linear-gradient(to right,var(--fill),var(--fill-end));border-top:0;border-right:2px solid var(--accent-hi)}.volume__step+.volume__step{border-top:0;border-right:1px solid rgba(58,59,61,.85)}.favs,.favs--scroll{flex:none;min-height:0;overflow:visible;padding-bottom:1px;grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.dock{flex-direction:column;height:auto;gap:16px}.swap{display:none}.dock__stage{display:flex;flex-direction:column;gap:16px;height:auto;overflow:visible;flex:none}.dock__group,.dock__group--below,.dock__group--above{position:static;transform:none;opacity:1;filter:none;pointer-events:auto}.dock__group--capture{display:none}.remote--mouse .dock__group--capture,.remote--keyboard .dock__group--capture{display:flex}.dock__key--pointer,.dock__key--keyboard,.dock__key--paste{display:none}.remote--mouse .dock__key--pointer,.remote--keyboard .dock__key--keyboard,.remote--keyboard .dock__key--paste{display:inline-flex}.remote--keyboard:not(.remote--mouse) .dock__key--keyboard{border-left:0}.kbd-hint{display:none}.remote--keyboard .kbd-hint{display:block}}@media(max-width:760px){@container (min-width: 320px){.remote__top{position:relative;z-index:2;margin-bottom:-70px;pointer-events:none}.remote:not(.remote--locked) .remote__top>.key{pointer-events:auto}}}.stage{--fit: contain;position:relative;width:100%;aspect-ratio:var(--ratio, 16 / 9);max-height:62vh;margin:0 auto;border-radius:14px;overflow:hidden;isolation:isolate;background:radial-gradient(120% 90% at 50% 0%,rgba(185,41,59,.16),transparent 60%),radial-gradient(80% 70% at 50% 120%,rgba(185,41,59,.1),transparent 60%),#151617;border:1px solid var(--line);box-shadow:inset 0 0 0 1px #ffffff05,0 18px 40px #00000059;transition:border-color .3s,box-shadow .3s}.stage--live{border-color:#b9293bbf;box-shadow:0 0 0 1px #b9293b59,0 18px 46px #b9293b38}.stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(circle at 50% 45%,#000 30%,transparent 75%);mask-image:radial-gradient(circle at 50% 45%,#000 30%,transparent 75%)}.stage__preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:var(--fit);background:#000}.stage__idle{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.stage__say{max-width:46ch;color:var(--muted);font-size:.92rem;line-height:1.45}.stage__badge{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border-radius:999px;background:#121214b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stage__badge:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent-hi);box-shadow:0 0 10px var(--accent-glow);animation:pulse 1.4s ease-in-out infinite}.stage__stop{position:absolute;right:14px;bottom:14px;z-index:2;background:#121214c7;border:1px solid rgba(185,41,59,.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stage__stop:hover:not(:disabled){background:var(--accent)}.stage__waiting{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;background:#0c0c0e8c;color:var(--soft);font-weight:600;gap:10px}.stage__spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(244,241,236,.25);border-top-color:var(--text);animation:spin .8s linear infinite}.share{position:relative;display:inline-flex;align-items:center;gap:14px;padding:18px 30px 18px 24px;border:0;border-radius:16px;cursor:pointer;font:inherit;color:var(--text);background:linear-gradient(135deg,#c7303f,#9e2132);box-shadow:0 10px 30px #b9293b73,inset 0 1px #ffffff26;transition:transform .15s,box-shadow .15s,opacity .15s}.share:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 38px #b9293b99,inset 0 1px #ffffff26}.share:active:not(:disabled){transform:none}.share:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.share__icon{width:34px;height:34px;stroke-width:1.8}.share__text{display:flex;flex-direction:column;align-items:flex-start}.share__title{font-size:1.22rem;font-weight:700}.share__sub{font-size:.85rem;opacity:.8}.cast-controls{display:grid;gap:16px;margin-top:18px}.cast-controls__label{color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.cast-controls__note{color:#7a7b80;font-size:.8rem;margin-top:8px}.cast-controls__plan{color:var(--muted);font-size:.84rem;line-height:1.45}.cast-controls__stats{min-height:1.2em;color:#7a7b80;font:.76rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.mode{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel)}.mode__option{flex:1 1 0;position:relative;cursor:pointer}.mode__option+.mode__option{border-left:1px solid var(--line)}.mode__input{position:absolute;opacity:0;pointer-events:none}.mode__body{display:flex;align-items:center;gap:12px;padding:12px 14px;transition:background-color .15s;height:100%}.mode__icon{width:24px;height:24px;color:var(--soft);stroke-width:1.8}.mode__title{display:block;font-size:.95rem;font-weight:700}.mode__sub{display:block;color:var(--muted);font-size:.8rem;margin-top:1px}.mode__option:hover .mode__body{background:var(--panel-hi)}.mode__input:checked+.mode__body{background:#b9293b2e;box-shadow:inset 0 -2px 0 var(--accent)}.mode__input:checked+.mode__body .mode__icon{color:var(--accent-soft)}.mode__input:focus-visible+.mode__body{outline:2px solid var(--text);outline-offset:-2px}.fit{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fit__option{cursor:pointer}.fit__input{position:absolute;opacity:0;pointer-events:none}.fit__body{display:flex;flex-direction:column;gap:10px;height:100%;padding:12px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);transition:border-color .15s,background-color .15s}.fit__option:hover .fit__body{border-color:var(--muted)}.fit__input:checked+.fit__body{border-color:var(--accent);background:#b9293b1a}.fit__input:focus-visible+.fit__body{outline:2px solid var(--text)}.fit__frame{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:6px;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center;border:1px solid #45464a}.fit__image{flex:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b6fd6,#8a3bd6 55%,#d63b6f)}.fit__circle{width:34%;aspect-ratio:1;border-radius:50%;border:2px solid rgba(255,255,255,.85)}.fit__title{font-size:.95rem;font-weight:700}.fit__desc{color:var(--muted);font-size:.84rem;line-height:1.4}.facts{display:flex;flex-wrap:wrap;gap:8px}.facts__item{padding:6px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--line);color:var(--soft);font-size:.82rem;font-variant-numeric:tabular-nums}.link__title{display:flex;align-items:center;gap:8px;font-size:1.05rem}.link__icon{width:20px;height:20px;color:var(--accent-soft)}.link__row{display:flex;gap:8px;margin-top:12px}.link__url{flex:1;min-width:0;height:42px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:.88rem ui-monospace,SFMono-Regular,Menlo,monospace}.link__url:focus{outline:none;border-color:var(--accent)}.link__hint{color:var(--muted);font-size:.9rem;line-height:1.45;margin-top:8px;max-width:70ch}.link__hint--until{color:var(--soft)}@media(max-width:560px){.link__row{flex-wrap:wrap}.link__url{flex-basis:100%}}.screen{margin:0;width:100vw;height:100vh;overflow:hidden;background:#000;color:var(--muted)}.screen__video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;background:#000}.screen__idle{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font:1rem system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#000}.watch__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.watch__count{padding:4px 11px;border-radius:999px;font-size:.82rem;font-weight:700;color:var(--soft);background:var(--panel);border:1px solid var(--line)}.watch__count:before{content:"\25cf";color:var(--accent-hi);margin-right:6px;font-size:.7rem;vertical-align:1px}.watch__hint{margin:6px 0 14px}.watch__actions{display:flex;gap:10px;flex-wrap:wrap}.watch__viewer{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:#000;border:1px solid var(--line);margin-top:14px}.watch__video{width:100%;height:100%;object-fit:contain;display:block}.watch__idle{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.95rem;background:#121314}@media(max-width:640px){.mode{flex-direction:column}.mode__option+.mode__option{border-left:0;border-top:1px solid var(--line)}.fit{grid-template-columns:1fr}.share{padding:14px 22px 14px 18px}.share__icon{width:28px;height:28px}.stage__say{display:none}.link__row{flex-direction:column}}.lastlog{flex:none;min-width:0;max-width:100%;gap:8px;padding:7px 10px 7px 11px;text-decoration:none;cursor:pointer;transition:border-color .15s,color .15s,background-color .15s,box-shadow .15s}.lastlog:hover,.lastlog:focus-visible{border-color:var(--accent);color:var(--text);background:var(--panel-hi)}.lastlog:focus-visible{outline:2px solid var(--text);outline-offset:2px}.lastlog__icon{flex:none;width:16px;height:16px;color:var(--accent-soft)}.lastlog__label{white-space:nowrap}.lastlog__who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:600}.lastlog__arrow{flex:none;width:14px;height:14px;color:var(--muted);transform:rotate(-90deg);transition:transform .15s,color .15s}.lastlog:hover .lastlog__arrow{color:var(--text);transform:rotate(-90deg) translateY(2px)}.lastlog--fresh{animation:lastlog-fresh 1.2s ease-out}@keyframes lastlog-fresh{0%{border-color:var(--accent-hi);box-shadow:0 0 14px var(--accent-glow)}to{box-shadow:0 0 0 transparent}}@media(min-width:761px){.lastlog{max-width:60%}}@media(prefers-reduced-motion:reduce){.lastlog--fresh{animation:none}}.journal__bar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;margin-bottom:14px}.journal__filter{display:grid;gap:6px;min-width:0}.journal__filter-label{color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.select{position:relative;display:inline-flex;min-width:230px;max-width:100%}.select__input{appearance:none;-webkit-appearance:none;width:100%;height:42px;padding:0 40px 0 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:border-color .15s,box-shadow .15s}.select__input:hover{border-color:#55565a}.select__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #b9293b47}.select__arrow{position:absolute;right:13px;top:50%;width:16px;height:16px;margin-top:-8px;color:var(--muted);pointer-events:none}.journal__table{width:100%;border-collapse:separate;border-spacing:0 6px;margin:-6px 0 0}.journal__head{text-align:left;color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:0 12px 2px;white-space:nowrap}.journal__head--time{width:118px}.journal__sort{display:inline-flex;align-items:center;gap:4px;margin:-4px -8px;padding:4px 8px;border:0;border-radius:7px;background:none;cursor:pointer;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;transition:color .15s,background-color .15s}.journal__sort:hover{color:var(--text);background:var(--panel)}.journal__sort--active{color:var(--text)}.journal__sort-arrow{width:14px;height:14px;opacity:0;transition:opacity .15s,transform .15s}.journal__sort:hover .journal__sort-arrow{opacity:.45}.journal__sort--active .journal__sort-arrow,.journal__sort--active:hover .journal__sort-arrow{opacity:1;color:var(--accent-soft)}.journal__sort--reverse .journal__sort-arrow{transform:rotate(180deg)}.journal__head--who{width:30%}.journal__cell{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 12px;font-size:.93rem;line-height:1.35;vertical-align:middle;overflow-wrap:anywhere}.journal__cell:first-child{border-left:1px solid var(--line);border-radius:10px 0 0 10px}.journal__cell:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0}.journal__row:hover .journal__cell{background:var(--panel-hi)}.journal__cell--time{color:var(--soft);font-variant-numeric:tabular-nums;white-space:nowrap}.journal__cell--who{font-weight:600}.journal__who--muted{color:var(--muted);font-weight:400}.journal__action{display:flex;align-items:baseline;gap:10px}.journal__dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--muted);transform:translateY(-1px)}.journal__row--remote .journal__dot{background:#7aa2f7}.journal__row--input .journal__dot{background:var(--warn)}.journal__row--cast .journal__dot{background:var(--accent-hi);box-shadow:0 0 8px var(--accent-glow)}.journal__row--booking .journal__dot{background:var(--ok)}.journal__row--fresh .journal__cell{animation:journal-fresh 1.6s ease-out}@keyframes journal-fresh{0%{background:#3a2226;border-color:var(--accent)}to{background:var(--panel);border-color:var(--line)}}.journal__bone{display:block;width:72px;height:14px;border-radius:6px;background:#ffffff21;animation:skel 1.1s ease-in-out infinite alternate}.journal__bone--wide{width:140px}.journal__bone--long{width:min(280px,100%)}.journal__count{margin-top:12px;color:var(--muted);font-size:.85rem;text-align:right}@media(max-width:620px){.journal__bar{align-items:stretch;flex-direction:column}.select{min-width:0;width:100%}.journal__table,.journal__table tbody{display:block}.journal__table thead,.journal__table thead tr{display:flex;gap:8px;flex-wrap:wrap}.journal__table thead{margin-bottom:10px}.journal__head,.journal__head--time,.journal__head--who{width:auto;padding:0}.journal__sort{margin:0;padding:7px 10px;background:var(--panel);border:1px solid var(--line)}.journal__sort--active{border-color:var(--accent)}.journal__sort-arrow{opacity:.45}.journal__row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:baseline;margin-bottom:8px;padding:10px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line)}.journal__cell,.journal__cell:first-child,.journal__cell:last-child{background:none;border:0;border-radius:0;padding:0}.journal__row:hover .journal__cell{background:none}.journal__cell--action{grid-column:1 / -1}.journal__cell--who{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal__row--fresh{animation:journal-fresh-card 1.6s ease-out}.journal__row--fresh .journal__cell{animation:none}.journal__count{text-align:left}}@keyframes journal-fresh-card{0%{background:#3a2226;border-color:var(--accent)}to{background:var(--panel);border-color:var(--line)}}@media(prefers-reduced-motion:reduce){.journal__row--fresh,.journal__row--fresh .journal__cell,.journal__bone{animation:none}}.booking--checking{border-color:var(--line);background:var(--panel);position:relative;overflow:hidden}.booking--checking:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.07) 50%,transparent 80%);transform:translate(-100%);animation:booking-sweep 1.4s ease-in-out infinite}.booking__spinner{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent-soft);animation:booking-spin .8s linear infinite}.booking__bone{display:block;height:12px;margin-top:8px;border-radius:6px;background:#ffffff1a;width:min(260px,80%)}@keyframes booking-sweep{to{transform:translate(100%)}}@keyframes booking-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking--checking:after{animation:none}.booking__spinner{animation-duration:2.4s}}.journal__table--empty{display:none}.page--bridge{background:#16181d;color:#e8e6e3;align-items:center;font-size:16px;line-height:1.5}.bridge{width:100%;max-width:420px;text-align:center}.bridge__title{font-size:1.15rem;font-weight:600;margin:0 0 8px}.bridge__step{color:#9aa0ab;min-height:1.5em;transition:opacity .2s}.bridge__error{text-align:left;background:#3a1f24;border:1px solid var(--accent);border-radius:12px;padding:16px;margin-top:22px}.ring{--ring-a: #b9293b;--ring-b: #e8a0ab;width:76px;height:76px;margin:0 auto 26px;position:relative}.ring--nextcloud{--ring-a: #0082c9;--ring-b: #7bc4ea}.ring__arc{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid transparent;border-top-color:var(--ring-a);animation:spin 1.1s cubic-bezier(.6,.15,.35,.85) infinite}.ring__arc--2{top:11px;right:11px;bottom:11px;left:11px;border-top-color:var(--ring-b);animation-duration:1.5s;animation-direction:reverse}.ring__arc--3{top:22px;right:22px;bottom:22px;left:22px;border-top-color:#6c7a8f;animation-duration:1.9s}.progress{--progress: #b9293b;height:3px;margin:22px auto 0;max-width:260px;background:#262a33;border-radius:3px;overflow:hidden}.progress--nextcloud{--progress: #0082c9}.progress__fill{display:block;height:100%;width:0;background:var(--progress);border-radius:3px;transition:width .45s ease}.code-form{width:100%;max-width:460px;background:#1f2229;border:1px solid #2e3440;border-radius:14px;padding:26px}.code-form--warn{border-color:#d08a1e}.code-form__title{font-size:1.3rem;margin:0 0 14px}.code-form__steps{padding-left:20px;margin:0 0 20px}.code-form__step{margin-bottom:6px}.code-form__link{color:#e8a0ab}.code-form__input{width:100%;font-size:1.6rem;letter-spacing:.28em;text-align:center;padding:12px;border-radius:10px;border:1px solid #3a4150;background:#14161a;color:#e8e6e3;margin-bottom:14px}.code-form__submit{display:block;width:100%;text-align:center;padding:12px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none}.code-form__warning{color:#9aa0ab;font-size:.9rem;margin-top:16px}.code-form__message{padding:10px 12px;border-radius:10px;margin-bottom:16px}.code-form__message--error{background:#3a1f24;border:1px solid var(--accent)}.code-form__message--ok{background:#1e3326;border:1px solid #3f8f5a}.error-page{max-width:520px}.error-page__back{margin-top:16px}.error-page__link{color:#ff9aa7}
