.turnstile-widget{justify-content:center;min-height:4.5rem;display:flex}.login-screen{min-height:100%;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.login-dialog{width:100%;max-width:var(--login-page-w);gap:var(--space-5);padding:var(--space-8) var(--space-6) var(--space-10);background:var(--bg-raised);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--elev-3);flex-direction:column;display:flex;position:relative}.login-dialog__heading{gap:var(--space-1);text-align:center;flex-direction:column;display:flex}.login-dialog__logo{width:60%;height:auto;margin-bottom:var(--space-2);align-self:center;transform:translate(-9%)}.login-dialog__title{color:var(--fg-primary)}.login-dialog__subtitle{color:var(--fg-secondary)}.login-dialog__form{gap:var(--space-4);flex-direction:column;display:flex}.login-dialog__version{right:var(--space-6);bottom:var(--space-3);font-size:var(--fs-stamp-size);line-height:var(--fs-stamp-lh);color:var(--fg-tertiary);margin:0;position:absolute}.profile-dialog{gap:var(--space-5);padding:var(--space-5);flex-direction:column;display:flex}.profile-dialog__facts{gap:var(--space-3);flex-direction:column;margin:0;display:flex}.profile-dialog__facts dt{color:var(--fg-secondary)}.profile-dialog__facts dd,.profile-dialog__heading{color:var(--fg-primary);margin:0}.song-highlight{background:var(--accent-subtle);color:inherit;border-radius:var(--radius-sm);padding:0 2px}.guest-page{width:100%;height:100%;min-height:0;max-width:var(--guest-col-w);background:var(--bg-canvas);color:var(--fg-primary);flex-direction:column;margin-inline:auto;display:flex}.guest-page__venue{padding:var(--space-2) var(--space-4);color:var(--fg-tertiary);border-bottom:1px solid var(--border-subtle);flex:none}.guest-page__message{padding:var(--space-3) var(--space-4) 0;flex:none}.guest-page__gate{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.guest-page__gate-form{gap:var(--space-3);width:100%;max-width:var(--panel-w-sm);margin-top:var(--space-2);flex-direction:column;display:flex}.guest-page .search-field__clear{position:relative}.guest-page .search-field__clear:before{content:"";inset:calc((var(--space-6) - var(--control-h-lg)) / 2);position:absolute}.guest-search{flex-direction:column;flex:1;min-height:0;display:flex}.guest-search__bar{z-index:var(--z-sticky);gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);flex-direction:column;display:flex;position:sticky;top:0}.guest-page .segmented-control{width:100%;display:flex}.guest-page .segmented-control__option{min-height:var(--control-h-lg);font-size:var(--fs-body-size);line-height:var(--fs-body-lh);flex:1}.guest-codepad{gap:var(--space-2);flex-direction:column;display:flex}.guest-codepad__display{min-height:var(--fs-display-lh);justify-content:center;align-items:center;display:flex}.guest-codepad__digits{color:var(--fg-primary);letter-spacing:.12em}.guest-codepad__hint{color:var(--fg-tertiary)}.guest-codepad__keys{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.guest-codepad__key{min-height:calc(var(--control-h-lg) * 1.5);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--fg-primary);font:inherit;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out);justify-content:center;align-items:center;display:flex}.guest-codepad__key--action{color:var(--fg-secondary)}.guest-codepad__key:disabled{color:var(--fg-disabled);cursor:not-allowed}@media (hover:hover) and (pointer:fine){.guest-codepad__key:hover:not(:disabled){background:var(--bg-hover)}}.guest-codepad__key:active:not(:disabled){background:var(--bg-active);transform:scale(var(--press-scale))}.guest-codepad__key:focus-visible{box-shadow:var(--focus-ring);outline:none}.guest-search__browse-note{padding:var(--space-3) var(--space-4) 0;color:var(--fg-tertiary);margin:0}.guest-search__more{gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4);flex-direction:column;display:flex}.guest-search__more-pending{justify-content:center;align-items:center;gap:var(--space-2);color:var(--fg-secondary);display:flex}.guest-search__results{flex:1;min-height:0;overflow-y:auto}.guest-search__skeletons{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.guest-song-list{padding:var(--space-2) var(--space-3);gap:var(--space-1);flex-direction:column;margin:0;list-style:none;display:flex}.guest-song-row{align-items:center;gap:var(--space-3);width:100%;min-height:var(--control-h-lg);padding:var(--space-2);border-radius:var(--radius-md);color:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out);background:0 0;border:none;display:flex}@media (hover:hover) and (pointer:fine){.guest-song-row:hover{background:var(--bg-hover)}}.guest-song-row:active{background:var(--bg-active);transform:scale(var(--press-scale-wide))}.guest-song-row__thumb{width:calc(var(--control-h-lg) * 16 / 9);aspect-ratio:var(--tile-media-ratio);border-radius:var(--radius-sm);background:var(--bg-raised);object-fit:cover;flex:none}.guest-song-row__thumb--placeholder{color:var(--fg-disabled);justify-content:center;align-items:center;display:flex}.guest-song-row__meta{flex-direction:column;flex:1;min-width:0;display:flex}.guest-song-row__title{color:var(--fg-primary)}.guest-song-row__artist{color:var(--fg-tertiary)}.guest-song-row__code{color:var(--fg-secondary);flex:none}.guest-song-row__end{color:var(--fg-tertiary);flex:none}.request-sheet{gap:var(--space-4);padding:var(--space-4);flex-direction:column;display:flex}.request-sheet__artist{margin:calc(var(--space-3) * -1) 0 0;color:var(--fg-tertiary)}.request-sheet__key{justify-content:center;display:flex}.queue-position-card{z-index:var(--z-sticky);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--bg-surface);border-top:1px solid var(--border-subtle);flex:none;display:flex;position:sticky;bottom:0}.queue-position-card--live{border-top-color:var(--accent-text)}.queue-position-card--ok{border-top-color:var(--ok-500)}.queue-position-card--danger{border-top-color:var(--danger-500)}.queue-position-card--info{border-top-color:var(--info-500)}.queue-position-card__icon{flex:none;display:flex}.queue-position-card__icon--live{color:var(--accent-text)}.queue-position-card__icon--ok{color:var(--ok-500)}.queue-position-card__icon--danger{color:var(--danger-500)}.queue-position-card__icon--info{color:var(--info-500)}.queue-position-card__body{flex-direction:column;min-width:0;display:flex}.queue-position-card__title{color:var(--fg-primary)}.queue-position-card__detail{color:var(--fg-secondary)}.queue-position-card__hint,.queue-position-card__age{color:var(--fg-tertiary)}.queue-position-card__dismiss{flex:none;margin-left:auto;position:relative}.queue-position-card__dismiss:before{content:"";width:var(--control-h-lg);height:var(--control-h-lg);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rate-limit-notice__countdown{margin-top:var(--space-1);color:inherit;display:block}.mini-transport{align-items:center;gap:var(--space-3);min-width:0;display:flex}.mini-transport__play{width:var(--control-h-xs);height:var(--control-h-xs);background-clip:content-box;border-width:0;padding:2px}.mini-transport__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-meta-size);line-height:var(--fs-meta-lh);color:var(--fg-secondary);flex:1;overflow:hidden}.mini-transport__time{font-size:var(--fs-meta-size);line-height:var(--fs-meta-lh);color:var(--fg-tertiary);flex:none}.mini-transport__wave{height:var(--space-3);flex:none;align-items:flex-end;gap:2px;display:flex}.mini-transport__wave>i{border-radius:var(--radius-full);background:var(--fg-tertiary);transform-origin:bottom;width:2px;height:100%;transition:transform var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out);transform:scaleY(.22)}.mini-transport__wave[data-playing]>i{background:var(--accent-500);animation:mini-transport-wave var(--wave-period) ease-in-out infinite alternate;animation-delay:var(--wave-offset)}.mini-transport__wave[data-playing]>i:first-child{--wave-period:var(--wave-period-1);--wave-peak:.86;--wave-offset:var(--wave-offset-1)}.mini-transport__wave[data-playing]>i:nth-child(2){--wave-period:var(--wave-period-2);--wave-peak:1;--wave-offset:var(--wave-offset-2)}.mini-transport__wave[data-playing]>i:nth-child(3){--wave-period:var(--wave-period-3);--wave-peak:.68;--wave-offset:var(--wave-offset-3)}.mini-transport__wave[data-playing]>i:nth-child(4){--wave-period:var(--wave-period-4);--wave-peak:.94;--wave-offset:var(--wave-offset-4)}@keyframes mini-transport-wave{0%{transform:scaleY(.25)}to{transform:scaleY(var(--wave-peak,1))}}@media (prefers-reduced-motion:reduce){.mini-transport__wave[data-playing]>i{animation:none;transform:scaleY(.7)}.mini-transport__wave>i{transition:none}}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-shell__body{flex:1;min-height:0;display:flex}.app-shell__content{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-shell__view{gap:var(--space-2);flex-direction:column;flex:1;min-height:0;display:flex}.app-shell__view:focus-visible{box-shadow:none}.app-shell__screen{flex-direction:column;flex:1;min-height:0;display:flex}.skip-link{top:var(--space-2);left:var(--space-2);z-index:var(--z-toast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--fg-primary);box-shadow:var(--elev-2);transition:transform var(--dur-2) var(--ease-out);position:fixed;transform:translateY(-200%)}.skip-link:focus-visible{box-shadow:var(--focus-ring);outline:none;transform:translateY(0)}.app-loading{justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;flex:1;height:100%;display:flex}@font-face{font-family:Noto Sans Thai;src:url(/assets/NotoSansThai_400Regular-F2giAAIx.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Thai;src:url(/assets/NotoSansThai_500Medium-5q5rMMta.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Thai;src:url(/assets/NotoSansThai_600SemiBold-D3g80kpq.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Thai;src:url(/assets/NotoSansThai_700Bold-HNWBiZpe.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--bg-canvas:#0b0c0f;--bg-surface:#131519;--bg-raised:#1b1e24;--bg-hover:#242830;--bg-active:#2e333c;--bg-scrim:#0009;--bg-media-chip:#000000a8;--fg-media-chip:#f1f3f7;--fg-primary:#f1f3f7;--fg-secondary:#aeb6c2;--fg-tertiary:#a0a9b8;--fg-disabled:#5a6270;--fg-disabled-soft:#828b9b;--fg-on-accent:#17120a;--border-subtle:#ffffff12;--border-default:#ffffff24;--border-strong:#ffffff42;--accent-500:#f2a413;--accent-400:#ffbb3d;--accent-600:#c77f06;--accent-subtle:#f2a41324;--accent-text:#ffbb3d;--danger-500:#ff5c5c;--danger-subtle:#ff5c5c24;--danger-text:#ffa8a8;--ok-500:#35d07f;--ok-subtle:#35d07f24;--ok-text:#63dc9e;--info-500:#58aeff;--info-subtle:#58aeff24;--info-text:#93ccff;--font-ui:"Noto Sans Thai", system-ui, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans JP", "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--font-stage:"Noto Sans Thai", system-ui, "Noto Sans JP", "Noto Sans SC", sans-serif;--fs-label-size:14px;--fs-label-lh:20px;--fs-label-weight:650;--fs-label-tracking:.06em;--fs-meta-size:14px;--fs-meta-lh:20px;--fs-meta-weight:500;--fs-meta-tracking:.01em;--fs-dense-size:14px;--fs-dense-lh:20px;--fs-dense-weight:400;--fs-body-size:16px;--fs-body-lh:24px;--fs-body-weight:400;--fs-subtitle-size:18px;--fs-subtitle-lh:26px;--fs-subtitle-weight:600;--fs-subtitle-tracking:-.005em;--fs-heading-size:21px;--fs-heading-lh:28px;--fs-heading-weight:650;--fs-heading-tracking:-.01em;--fs-stamp-size:10px;--fs-stamp-lh:13px;--fs-title-size:27px;--fs-title-lh:34px;--fs-title-weight:700;--fs-title-tracking:-.015em;--fs-display-size:34px;--fs-display-lh:44px;--fs-display-weight:700;--fs-display-tracking:-.02em;--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-24:96px;--row-h-comfortable:44px;--row-h-compact:34px;--row-h-list:64px;--row-h-list-dense:48px;--tile-w:188px;--tile-media-ratio:16 / 9;--control-h-xs:24px;--control-h-sm:28px;--control-h-md:36px;--control-h-lg:44px;--rail-w:56px;--sidebar-w:264px;--inspector-w:340px;--header-h:52px;--statusbar-h:28px;--tile-meta-h:64px;--panel-w-sm:320px;--dialog-w-default:560px;--dialog-w-lg:800px;--lyric-editor-w:720px;--lyric-editor-label-min-w:160px;--lyric-editor-field-basis:200px;--lyric-editor-lines-max-h:320px;--login-page-w:360px;--guest-col-w:480px;--player-popover-w:236px;--break-music-list-max-h:160px;--scrubbar-marker-h:6px;--queue-thumb-size:40px;--queue-col-position:64px;--queue-col-eta:72px;--accent-indicator-w:2px;--operator-preview-w:380px;--operator-preview-wide-h:52vh;--operator-alert-min-w:240px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--elev-0:none;--elev-1:0 1px 2px #00000052;--elev-2:0 6px 16px -4px #00000070;--elev-3:0 20px 48px -12px #00000094;--z-base:0;--z-lift:1;--z-sticky:100;--z-dropdown:200;--z-overlay:300;--z-dialog:400;--z-toast:500;--z-tooltip:600;--bp-sm:480;--bp-md:768;--bp-lg:1024;--bp-xl:1440;--bp-2xl:1920;--bp-sm-px:480px;--bp-md-px:768px;--bp-lg-px:1024px;--bp-xl-px:1440px;--bp-2xl-px:1920px;--veil-paused:.85;--veil-busy:.65;--dur-1:90ms;--dur-2:.15s;--dur-3:.22s;--dur-4:.32s;--dur-5:.48s;--dur-loading-delay:.25s;--wave-period-1:.38s;--wave-period-2:.53s;--wave-period-3:.45s;--wave-period-4:.61s;--wave-offset-1:-410ms;--wave-offset-2:-670ms;--wave-offset-3:-530ms;--wave-offset-4:-590ms;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.64, 0, .78, 0);--ease-inout:cubic-bezier(.65, 0, .35, 1);--ease-linear:linear;--press-scale:.97;--press-scale-wide:.99;--focus-ring:0 0 0 2px var(--bg-canvas), 0 0 0 4px var(--accent-400);--focus-ring-inset:inset 0 0 0 2px var(--accent-400);--stage-bg:#000;--stage-text-idle:#fff;--stage-text-sung:#f2a413;--stage-text-next:#ffffff9e;--stage-outline:#000;--stage-shadow:0 2px 10px #000000d9;--stage-safe-inset:5%;--stage-panel:#0b0c0fd1;--fs-stage-lyric:clamp(44px, 6.2vh, 96px);--fs-stage-lyric-next:calc(var(--fs-stage-lyric) * .72);--fs-stage-title:clamp(24px, 3.2vh, 52px);--fs-stage-singer:clamp(28px, 3.8vh, 60px);--fs-stage-marquee:clamp(20px, 2.6vh, 40px);--fs-stage-attract:clamp(28px, 4vh, 72px);--fs-stage-title-lh:1.55;--fs-stage-singer-lh:1.55;--fs-stage-marquee-lh:1.55;--fs-stage-attract-lh:1.55;--fs-stage-label-lh:1.55;--fs-stage-detail-lh:1.55;--fs-stage-countdown-lh:1;--fs-stage-countdown:calc(var(--fs-stage-attract) * 1.6);--fs-stage-label:14px;--fs-stage-detail:16px;--fs-stage-lyric-preview:15px;--fs-stage-lyric-next-preview:11px;--fs-stage-title-preview:14px}@media (pointer:coarse){:root{--control-h-sm:var(--control-h-lg);--control-h-md:var(--control-h-lg)}}[data-stage-theme=cyan]{--stage-text-sung:#3dc9ff}[data-stage-theme=lime]{--stage-text-sung:#a8e442}[data-stage-theme=rose]{--stage-text-sung:#ff6fa5}[data-stage-theme=high_contrast]{--stage-text-sung:#cc8000}[data-theme=light]{--bg-canvas:#fff;--bg-surface:#f6f7f9;--bg-raised:#fff;--bg-hover:#edeff3;--bg-active:#e2e6ec;--bg-scrim:#0a0c1070;--fg-primary:#12141a;--fg-secondary:#414855;--fg-tertiary:#4d5562;--fg-disabled:#9aa1ac;--fg-disabled-soft:#697181;--fg-on-accent:#17120a;--border-subtle:#0a0c1014;--border-default:#0a0c1029;--border-strong:#0a0c1057;--accent-500:#f2a413;--accent-text:#6e4600;--accent-400:#c77f06;--accent-600:#a96a00;--accent-subtle:#f2a41329;--danger-500:#c42121;--danger-text:#931919;--ok-500:#0a7c48;--ok-text:#075a34;--info-500:#0b62c4;--info-text:#094c98}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg-canvas);color:var(--fg-primary);font-family:var(--font-ui);font-size:var(--fs-body-size);line-height:var(--fs-body-lh);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}img,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--info-text)}:focus{outline:none}:focus-visible{box-shadow:var(--focus-ring);border-radius:inherit;outline:none}.text-label{font-size:var(--fs-label-size);line-height:var(--fs-label-lh);font-weight:var(--fs-label-weight);letter-spacing:var(--fs-label-tracking);text-transform:uppercase}.text-meta{font-size:var(--fs-meta-size);line-height:var(--fs-meta-lh);font-weight:var(--fs-meta-weight);letter-spacing:var(--fs-meta-tracking)}.text-dense{font-size:var(--fs-dense-size);line-height:var(--fs-dense-lh);font-weight:var(--fs-dense-weight)}.text-body{font-size:var(--fs-body-size);line-height:var(--fs-body-lh);font-weight:var(--fs-body-weight)}.text-subtitle{font-size:var(--fs-subtitle-size);line-height:var(--fs-subtitle-lh);font-weight:var(--fs-subtitle-weight);letter-spacing:var(--fs-subtitle-tracking)}.text-heading{font-size:var(--fs-heading-size);line-height:var(--fs-heading-lh);font-weight:var(--fs-heading-weight);letter-spacing:var(--fs-heading-tracking)}.text-title{font-size:var(--fs-title-size);line-height:var(--fs-title-lh);font-weight:var(--fs-title-weight);letter-spacing:var(--fs-title-tracking)}.text-display{font-size:var(--fs-display-size);line-height:var(--fs-display-lh);font-weight:var(--fs-display-weight);letter-spacing:var(--fs-display-tracking)}.tabular-nums{font-variant-numeric:tabular-nums}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-h-md);padding:0 var(--space-4);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), opacity var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out);white-space:nowrap;background:0 0;border:1px solid #0000;display:inline-flex}.btn:active:not(:disabled):not([aria-disabled=true]){transform:scale(var(--press-scale))}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;color:var(--fg-disabled)}.btn[aria-disabled=true]{color:var(--fg-disabled-soft)}.btn--sm{height:var(--control-h-sm);padding:0 var(--space-3)}.btn--lg{height:var(--control-h-lg);padding:0 var(--space-5)}.btn--full{width:100%}.btn--primary{background:var(--accent-500);color:var(--fg-on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-400)}.btn--primary:active:not(:disabled){background:var(--accent-600)}.btn--primary:disabled{background:var(--bg-hover)}.btn--secondary{background:var(--bg-raised);border-color:var(--border-default);color:var(--fg-primary)}.btn--secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.btn--secondary:active:not(:disabled){background:var(--bg-active)}.btn--ghost{color:var(--fg-primary)}.btn--ghost:hover:not(:disabled){background:var(--bg-hover)}.btn--ghost:active:not(:disabled){background:var(--bg-active)}.btn--danger{background:var(--danger-subtle);color:var(--danger-text)}.btn--danger:hover:not(:disabled){background:var(--danger-500);color:var(--fg-on-accent)}.btn__spinner{display:inline-flex}.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{color:var(--fg-secondary)}.field__input{height:var(--control-h-md);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-raised);color:var(--fg-primary);transition:border-color var(--dur-1) var(--ease-out)}.field__input::placeholder{color:var(--fg-tertiary)}.field__input:hover{border-color:var(--border-strong)}.field__input[aria-invalid=true]{border-color:var(--danger-500)}.field__input:disabled{color:var(--fg-disabled);cursor:not-allowed}.field__error{color:var(--danger-text)}.field__control{flex-direction:column;display:flex;position:relative}.field__input--revealable{padding-right:var(--space-10)}.field__reveal{width:var(--control-h-lg);height:var(--control-h-lg);color:var(--fg-tertiary);cursor:pointer;transition:color var(--dur-1) var(--ease-out);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.field__reveal:hover{color:var(--fg-primary)}.field__reveal:disabled{color:var(--fg-disabled);cursor:not-allowed}.spinner{animation:.8s linear infinite spinner-spin;display:inline-block}@keyframes spinner-spin{to{transform:rotate(360deg)}}.skeleton{background:var(--bg-hover);border-radius:var(--radius-sm);opacity:0;animation:skeleton-pulse 1.4s var(--ease-inout) var(--dur-loading-delay) infinite}@keyframes skeleton-pulse{0%,to{opacity:.55}50%{opacity:.9}}.skeleton--text{border-radius:var(--radius-sm);height:1em}.skeleton--row{height:var(--row-h-comfortable);border-radius:var(--radius-md)}.state-panel{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-16);text-align:center;color:var(--fg-secondary);flex-direction:column;display:flex}.state-panel__icon{color:var(--fg-tertiary)}.state-panel--error .state-panel__icon{color:var(--danger-500)}.state-panel__title{color:var(--fg-primary)}.state-panel__description{max-width:44ch}.state-panel--compact{padding:var(--space-2);gap:var(--space-2)}.state-panel--compact .state-panel__title,.state-panel--compact .state-panel__description{margin:0}.inline-alert{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);display:flex}.inline-alert--info{background:var(--info-subtle);color:var(--info-text)}.inline-alert--ok{background:var(--ok-subtle);color:var(--ok-text)}.inline-alert--danger{background:var(--danger-subtle);color:var(--danger-text)}.inline-alert--accent{background:var(--accent-subtle);color:var(--accent-text)}.inline-alert__icon{flex:none;margin-top:2px}.inline-alert__text{color:var(--fg-primary)}.badge{height:var(--space-5);padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--bg-hover);color:var(--fg-secondary);white-space:nowrap;align-items:center;display:inline-flex}.badge--ok{color:var(--ok-text)}.badge--danger{color:var(--danger-text)}.badge--info{color:var(--info-text)}.app-header{height:var(--header-h);padding:0 var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);flex:none;justify-content:space-between;align-items:center;display:flex}.app-header__brand{align-items:center;gap:var(--space-2);color:var(--fg-primary);display:flex}.app-header__logo{height:var(--space-6);width:auto;display:block}.app-header__actions{align-items:center;gap:var(--space-3);display:flex}.app-header__user{color:var(--fg-secondary)}.status-bar{align-items:center;gap:var(--space-3);height:var(--statusbar-h);padding:0 var(--space-4);border-top:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--fg-tertiary);flex:none;grid-template-columns:1fr auto 1fr;display:grid}.status-bar__left{grid-column:1;justify-self:start;min-width:0}.status-bar__right{grid-column:3;justify-self:end;min-width:0}.status-bar__center{grid-column:2;justify-self:center;align-items:center;min-width:0;max-width:100%;display:flex;overflow:hidden}.connection-indicator{align-items:center;gap:var(--space-2);display:flex}.connection-indicator__dot{width:var(--space-2);height:var(--space-2);transition:background-color var(--dur-2) var(--ease-out), opacity var(--dur-2) var(--ease-out);border-radius:50%}.connection-indicator__dot--ok{background:var(--ok-500)}.connection-indicator__dot--amber{background:var(--accent-500)}.connection-indicator__dot--red{background:var(--danger-500)}.connection-indicator__dot--neutral{background:var(--fg-disabled)}.connection-indicator__dot--info{background:var(--info-500)}.connection-indicator__label{color:var(--fg-tertiary)}
