.toast-container{position:fixed;top:max(20px,calc(var(--safe-area-top) + 12px));right:max(20px,calc(var(--safe-area-right) + 12px));z-index:1000;display:flex;flex-direction:column;align-items:flex-end}.toast{background-color:#333;color:#fff;padding:15px 20px;border-radius:5px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;min-width:250px;opacity:0;transform:translate(100%);transition:all .5s ease-in-out}.toast.visible{opacity:1;transform:translate(0)}.toast.info{background-color:#2196f3}.toast.success{background-color:#4caf50}.toast.warning{background-color:#ff9800}.toast.error{background-color:#f44336}.toast-message{flex-grow:1}.toast-close-btn{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;margin-left:15px}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:var(--viewport-height-small);width:100%;background-color:var(--bg-void, oklch(.12 .01 240));font-family:Manrope,sans-serif}.error-boundary__card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;max-width:380px;width:calc(100% - 2rem);padding:40px 32px;background:var(--bg-card, oklch(.18 .02 240));border:1px solid var(--border, oklch(.28 .02 240));border-radius:16px}.error-boundary__icon{color:#f13b2e;margin-bottom:4px;flex-shrink:0}.error-boundary__title{font-size:1.25rem;font-weight:700;color:var(--text-main, oklch(.98 0 0));margin:0}.error-boundary__subtitle{font-size:.875rem;color:var(--text-sub, oklch(.7 .03 240));margin:0;line-height:1.5}.error-boundary__btn{margin-top:8px;padding:.6rem 1.5rem;background:var(--primary, oklch(.72 .16 150));color:#030303;border:none;border-radius:8px;font-family:Manrope,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}.error-boundary__btn:hover{opacity:.85}.app-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--viewport-height-small);width:100%;background-color:var(--bg-void, oklch(.12 .01 240));font-family:Manrope,sans-serif}.app-loader .heartbeat-loader{flex-direction:column;gap:1.5rem}.app-loader .heartbeat-loader__label{font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-sub, oklch(.7 .03 240));margin:0}.heartbeat-loader{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:.55rem;color:var(--text-sub, oklch(.7 .03 240))}.heartbeat-loader--inline{width:1.75rem;height:.5rem}.heartbeat-loader--button{width:2.25rem;height:.85rem;margin-inline-end:.35rem}.heartbeat-loader--content,.heartbeat-loader--page{width:min(280px,80vw);height:70px}.heartbeat-loader--inline .heartbeat-base,.heartbeat-loader--inline .heartbeat-path,.heartbeat-loader--button .heartbeat-base,.heartbeat-loader--button .heartbeat-path{vector-effect:non-scaling-stroke}.heartbeat-loader__label{white-space:nowrap}.heartbeat-visual{position:relative;width:100%;height:100%;display:block;flex:0 0 auto}.heartbeat-svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}.heartbeat-loader--compact .heartbeat-svg{overflow:hidden}.heartbeat-loader--compact .heartbeat-base,.heartbeat-loader--compact .heartbeat-path{filter:none}.heartbeat-loader--compact .heartbeat-path{animation-name:heartbeat-slide-compact}.heartbeat-loader--with-home .heartbeat-svg{-webkit-mask-image:linear-gradient(to right,#000 0%,#000 var(--heartbeat-house-gap-start, 42%),transparent var(--heartbeat-house-gap-start, 42%),transparent var(--heartbeat-house-gap-end, 58%),#000 var(--heartbeat-house-gap-end, 58%),#000 100%);mask-image:linear-gradient(to right,#000 0%,#000 var(--heartbeat-house-gap-start, 42%),transparent var(--heartbeat-house-gap-start, 42%),transparent var(--heartbeat-house-gap-end, 58%),#000 var(--heartbeat-house-gap-end, 58%),#000 100%)}.heartbeat-home-svg{position:absolute;top:50%;left:50%;width:var(--heartbeat-home-width, 12%);height:80%;overflow:visible;pointer-events:none;transform:translate(-50%,-50%)}.heartbeat-base,.heartbeat-path,.heartbeat-home__base,.heartbeat-home__light{fill:none;stroke-linecap:round;stroke-linejoin:round}.heartbeat-base{opacity:.38;stroke:var(--heartbeat-color);stroke-width:var(--heartbeat-base-width);filter:var(--heartbeat-base-glow)}.heartbeat-path{stroke-dasharray:220 1200;stroke-dashoffset:220;stroke:var(--heartbeat-color);stroke-width:var(--heartbeat-stroke-width);filter:var(--heartbeat-glow);animation:heartbeat-slide var(--heartbeat-speed) linear infinite}.heartbeat-home__base{opacity:.38;stroke:var(--heartbeat-color);stroke-width:var(--heartbeat-base-width);filter:var(--heartbeat-base-glow)}.heartbeat-home__light{opacity:0;stroke:var(--heartbeat-color);stroke-width:var(--heartbeat-stroke-width);filter:var(--heartbeat-glow);transform-box:fill-box;transform-origin:center;animation:heartbeat-home-light var(--heartbeat-speed) ease-in-out infinite}@keyframes heartbeat-slide{0%{stroke-dashoffset:220}to{stroke-dashoffset:-1000}}@keyframes heartbeat-slide-compact{0%{stroke-dashoffset:320}to{stroke-dashoffset:-1100}}@keyframes heartbeat-home-light{0%,35%,66%,to{opacity:0;transform:scale(.96)}40%,60%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.heartbeat-path,.heartbeat-home__light{animation:none}.heartbeat-path{stroke-dasharray:none}.heartbeat-home__light{opacity:1}}:root{--bg-void: oklch(.12 .01 240);--bg-card: oklch(.18 .02 240);--bg-input: oklch(.22 .02 240);--border: oklch(.28 .02 240);--border-hi: oklch(.45 .04 240);--text-main: oklch(.98 0 0);--text-sub: oklch(.7 .03 240);--text-dark: oklch(.1 0 0);--primary: oklch(.72 .16 150);--primary-glow: oklch(.8 .14 150);--primary-dim: oklch(.72 .16 150 / .1);--secondary: oklch(.65 .14 240);--danger: oklch(.63 .22 29);--border-radius: 12px;--border-radius-small: 6px;--border-width: 1px;--border-width-focus: 2px;--viewport-height: 100vh;--viewport-height-small: 100vh;--viewport-center-y: 50vh;--viewport-width: 100vw;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px)}@supports (height: 100dvh){:root{--viewport-height: 100dvh;--viewport-height-small: 100svh;--viewport-center-y: 50dvh}}@supports (width: 100dvw){:root{--viewport-width: 100dvw}}*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:clip}body{font-family:Manrope,sans-serif;font-feature-settings:"tnum" on,"cv11" on;-webkit-font-smoothing:antialiased;background-color:var(--bg-void);color:var(--text-main);overflow-x:clip;width:100%;min-height:var(--viewport-height-small);user-select:none;-webkit-user-select:none;cursor:default}#root{min-height:var(--viewport-height-small)}input,textarea{user-select:auto;-webkit-user-select:auto;cursor:text}*{scrollbar-width:auto;scrollbar-color:oklch(.72 .16 150 / .45) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#4ac06c73;border-radius:5px;transition:background-color .2s}::-webkit-scrollbar-thumb:hover{background-color:#4ac06ca6}::-webkit-scrollbar-thumb:active{background-color:var(--primary)}.cd-overlay{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:max(24px,calc(var(--safe-area-top) + 16px)) max(24px,calc(var(--safe-area-right) + 16px)) max(24px,calc(var(--safe-area-bottom) + 16px)) max(24px,calc(var(--safe-area-left) + 16px));overflow-y:auto;overscroll-behavior:contain;animation:cd-fade-in .15s ease-out}@keyframes cd-fade-in{0%{opacity:0}to{opacity:1}}.cd-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--border-radius);max-width:440px;width:100%;max-height:calc(var(--viewport-height) - 48px - var(--safe-area-top) - var(--safe-area-bottom));display:flex;flex-direction:column;box-shadow:0 0 0 1px var(--border),0 24px 64px #00000080;animation:cd-slide-up .2s ease-out;outline:none}@keyframes cd-slide-up{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.cd-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 0;gap:16px}.cd-title{font-size:1.05rem;font-weight:700;color:var(--text-main);margin:0;line-height:1.3}.cd-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-sub);cursor:pointer;transition:all .15s}.cd-close:hover:not(:disabled){background:var(--bg-input);color:var(--text-main)}.cd-close:disabled{opacity:.3;cursor:default}.cd-body{padding:16px 24px 0;color:var(--text-sub);font-size:.875rem;line-height:1.6;overflow-y:auto}.cd-divider{height:1px;background:var(--border);margin:20px 0 0}.cd-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding:16px 24px}.cd-btn{min-height:42px;padding:10px 22px;border-radius:var(--border-radius);font-size:.825rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.15;text-align:center;white-space:normal}.cd-btn--cancel{border:1px solid var(--border);background:transparent;color:var(--text-sub)}.cd-btn--cancel:hover:not(:disabled){border-color:var(--border-hi);color:var(--text-main)}.cd-btn--confirm{border:none;color:#fff}.cd-btn--primary{background:var(--primary)}.cd-btn--primary:hover:not(:disabled){filter:brightness(1.1)}.cd-btn--warning{background:#d98b09}.cd-btn--warning:hover:not(:disabled){filter:brightness(1.1)}.cd-btn--danger{background:var(--danger)}.cd-btn--danger:hover:not(:disabled){filter:brightness(1.1)}.cd-btn:disabled{opacity:.55;cursor:default;filter:none}@media (max-width: 640px){.cd-overlay{padding:max(12px,calc(var(--safe-area-top) + 8px)) max(12px,calc(var(--safe-area-right) + 8px)) max(12px,calc(var(--safe-area-bottom) + 8px)) max(12px,calc(var(--safe-area-left) + 8px))}.cd-panel{max-width:100%}.cd-header{padding:20px 20px 0}.cd-body{padding:14px 20px 0}.cd-actions{flex-direction:column-reverse;align-items:stretch;padding:14px 20px}.cd-btn{width:100%;justify-content:center}}.realtime-admin-banner{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:max(24px,calc(var(--safe-area-top) + 16px)) max(24px,calc(var(--safe-area-right) + 16px)) max(24px,calc(var(--safe-area-bottom) + 16px)) max(24px,calc(var(--safe-area-left) + 16px));background:#06090e75;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overflow-y:auto;overscroll-behavior:contain}.realtime-admin-banner__panel{width:min(560px,100%);max-height:calc(var(--viewport-height) - 48px - var(--safe-area-top) - var(--safe-area-bottom));overflow-y:auto;border:1px solid var(--border-hi);border-radius:8px;background:var(--bg-card);box-shadow:0 24px 70px #00000080;padding:26px;color:var(--text-main);animation:realtime-admin-banner-in .18s ease-out}.realtime-admin-banner__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.realtime-admin-banner__header h2{margin:0;font-size:1.35rem;line-height:1.2;font-weight:800}.realtime-admin-banner__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-sub);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.realtime-admin-banner__close:hover{border-color:var(--border-hi);color:var(--text-main);background:color-mix(in oklch,var(--bg-input),white 5%)}.realtime-admin-banner__panel p{margin:18px 0 0;font-size:1rem;line-height:1.65;color:var(--text-sub);white-space:pre-wrap;overflow-wrap:anywhere}.realtime-admin-banner__actions{display:flex;justify-content:flex-end;margin-top:24px}.realtime-admin-banner__actions button{min-width:104px;border:none;border-radius:8px;background:var(--primary);color:var(--text-dark);font:inherit;font-size:.9rem;font-weight:800;line-height:1;padding:12px 20px;cursor:pointer;transition:filter .15s ease}.realtime-admin-banner__actions button:hover{filter:brightness(1.08)}@keyframes realtime-admin-banner-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 520px){.realtime-admin-banner{padding:max(16px,calc(var(--safe-area-top) + 10px)) max(16px,calc(var(--safe-area-right) + 10px)) max(16px,calc(var(--safe-area-bottom) + 10px)) max(16px,calc(var(--safe-area-left) + 10px))}.realtime-admin-banner__panel{padding:20px}.realtime-admin-banner__header h2{font-size:1.1rem}.realtime-admin-banner__actions button{width:100%}}
