:root{--control-height-sm: 1.8rem;--control-height-md: 2.4rem;--control-height-lg: 3.3rem;color:#1d2430;background:radial-gradient(circle at top left,rgba(239,243,248,.95),transparent 24rem),radial-gradient(circle at right 20%,rgba(245,247,250,.9),transparent 26rem),linear-gradient(180deg,#fcfcfb,#f3f4f2);font-family:Pretendard Variable,Avenir Next,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:#1d2430;background:radial-gradient(circle at top left,rgba(228,232,238,.6),transparent 18rem),linear-gradient(180deg,#fcfcfb,#f3f4f2)}button,input,textarea{font:inherit}button{cursor:pointer}.ui-button,.ui-icon-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;border:0;border-radius:999px;white-space:nowrap;transition:transform .14s ease,opacity .14s ease,background .14s ease,border-color .14s ease,color .14s ease}.ui-button{min-width:0;padding:0 .95rem;font-weight:750}.ui-button--sm{height:var(--control-height-sm);font-size:.78rem}.ui-button--md{height:var(--control-height-md);font-size:.9rem}.ui-button--lg{height:var(--control-height-lg);padding-inline:1.15rem;font-size:.95rem}.ui-button--primary,.ui-icon-button--primary,.ui-icon-button--dark{background:#111827;color:#fff}.ui-button--secondary,.ui-icon-button--secondary{background:#f3f4f6;color:#374151}.ui-button--success,.ui-icon-button--success{background:#168a4a;color:#fff}.ui-button--danger{background:#c2413b;color:#fff}.ui-icon-button{padding:0;box-shadow:0 10px 24px #11182724}.ui-icon-button--sm{width:var(--control-height-sm);height:var(--control-height-sm)}.ui-icon-button--md{width:var(--control-height-md);height:var(--control-height-md)}.ui-icon-button--lg{width:var(--control-height-lg);height:var(--control-height-lg)}.ui-icon-button--secondary{border:1px solid rgba(17,24,39,.14);background:#ffffffe6}.ui-icon-button.active{border-color:#111827;background:#111827;color:#fff}.ui-icon-button svg{width:.85rem;height:.85rem;fill:currentColor}.ui-button:hover,.ui-icon-button:hover{transform:translateY(-1px)}.ui-button:disabled,.ui-icon-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.ui-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-weight:750;line-height:1;text-transform:uppercase;white-space:nowrap}.ui-badge--sm{min-height:1.45rem;padding:0 .5rem;font-size:.68rem}.ui-badge--md{min-height:1.7rem;min-width:4.6rem;padding:0 .65rem;font-size:.76rem}.ui-badge--neutral{background:#eef1f5;color:#697384}.ui-badge--success{background:#e7f6ee;color:#18794e}.ui-badge--info{background:#e8eef8;color:#35527a}.ui-badge--danger{background:#fff0f0;color:#b42318}.shell{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 3rem}.hero{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.75rem}.hero>div{min-width:0}.hero h1{margin:.35rem 0 .5rem;font-size:clamp(2rem,4vw,3.25rem);line-height:.95;letter-spacing:0}.eyebrow{display:inline-flex;margin:0;color:#7a848f;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:0}.subtitle{margin:0;max-width:56rem;color:#5d6774}.hero-meta,.banner,.panel,.error-box{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe0;border:1px solid rgba(25,31,37,.08);box-shadow:0 18px 48px #1018280f}.hero-meta{width:100%;min-width:0;padding:1rem 1.1rem;border-radius:1.25rem;margin-bottom:1rem}.hero-meta span,.hero-meta strong{display:block}.hero-meta span{color:#6f7884;font-size:.85rem}.hero-meta strong{margin-top:.25rem;font-size:1.1rem}.transport-card{display:grid;gap:.7rem}.transport-toggle{box-shadow:0 12px 30px #10182814}.transport-toggle svg{transition:transform .14s ease}.transport-toggle.active svg{transform:rotate(180deg)}.transport-topline{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.transport-topline span{margin:0}.transport-path{margin:-.15rem 0 0;color:#5d6774;font-size:.85rem;line-height:1.45}.transport-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0}.transport-facts div{display:grid;gap:.18rem;padding:.75rem .8rem;border-radius:.95rem;background:#f3f5f8e6}.transport-facts dt{color:#7b8490;font-size:.7rem;text-transform:uppercase;letter-spacing:0}.transport-facts dd{margin:0;color:#111827;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.8rem;word-break:break-all}.transport-source{color:#7b8490;font-size:.72rem;text-transform:uppercase;letter-spacing:0}.banner,.error-box{display:flex;gap:.8rem;align-items:center;padding:.95rem 1rem;border-radius:1rem;margin-bottom:1rem}.error-box{color:#8c2d2d;background:#fff5f5f5;border-color:#b4515129}.grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:1rem}.panel{border-radius:1.35rem;padding:1.15rem}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.panel-header h2{margin:0;font-size:1rem;letter-spacing:0;text-transform:uppercase}.panel-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.65rem}.identity-panel{position:relative;grid-column:1 / -1}.identity-row{display:flex;gap:.65rem;align-items:center;min-width:0}.identity-action-button{min-width:8.75rem;font-weight:800}.meta-list.identity-meta-list{display:flex;flex:1 1 auto;align-items:center;gap:.85rem;min-width:0;flex-wrap:nowrap}.meta-list.identity-meta-list>div{display:flex;align-items:center;gap:.35rem;min-width:0}.meta-list.identity-meta-list>div:first-child{flex:0 0 auto}.meta-list.identity-meta-list>div:nth-child(2),.meta-list.identity-meta-list>div:nth-child(3){flex:0 0 auto}.meta-list.identity-meta-list dt{flex:0 0 auto;font-size:.72rem}.meta-list.identity-meta-list dd{min-width:0;white-space:nowrap;word-break:normal}.meta-list.identity-meta-list .meta-value-row{gap:.4rem}.meta-list.identity-meta-list .meta-value-row span{flex:0 1 auto}.field{display:grid;gap:.45rem;margin-bottom:.85rem}.field span{color:#6b7280;font-size:.88rem}.field input,.field textarea,.composer textarea{width:100%;border:1px solid rgba(17,24,39,.1);border-radius:.95rem;background:#ffffffeb;color:#111827}.field input{height:var(--control-height-lg);padding:0 1rem}.field textarea,.composer textarea{padding:.95rem 1rem;resize:vertical}.field input::placeholder,.field textarea::placeholder,.composer textarea::placeholder{color:#9aa3ad}.checkbox{display:flex;gap:.7rem;align-items:center;margin-bottom:1rem;color:#4b5563}.checkbox input{width:1rem;height:1rem}.button-row{display:flex;gap:.75rem;margin-bottom:1rem}.open-dm-panel .panel-header{margin-bottom:0}.open-dm-row{display:flex;flex:1 1 auto;min-width:0;align-items:center;justify-content:flex-end;gap:.65rem}.open-dm-input{width:min(34rem,100%);height:var(--control-height-md);min-width:14rem;padding:0 .95rem;border:1px solid rgba(17,24,39,.1);border-radius:999px;background:#ffffffeb;color:#111827}.open-dm-input::placeholder{color:#9aa3ad}.open-dm-button{min-width:10.5rem}.workspace-shell{margin-top:1rem}.workspace-tabbar{display:flex;width:fit-content;max-width:100%;gap:.35rem;align-items:center;padding:.35rem;overflow-x:auto;border:1px solid rgba(17,24,39,.08);border-radius:999px;background:#ffffffc7;box-shadow:0 12px 30px #1018280f}.workspace-tab{min-width:7.25rem}.workspace-shell .workspace-panel{margin-top:.75rem}.meta-list{display:grid;gap:.75rem;margin:0}.meta-list div{display:grid;gap:.25rem}.meta-list dt{color:#7b8490;font-size:.78rem;text-transform:uppercase;letter-spacing:0}.meta-list dd{margin:0;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.88rem;color:#111827;word-break:break-all}.meta-value-row{display:flex;align-items:center;gap:.65rem}.meta-value-row span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-actions{display:flex;gap:.65rem;align-items:center}.chat-panel,.gateway-panel{margin-top:1rem}.gateway-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;margin-bottom:1rem}.gateway-card{padding:1rem;border-radius:1rem;border:1px solid rgba(17,24,39,.08);background:#ffffffd6}.gateway-card-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.85rem}.gateway-meta-list{display:grid;gap:.7rem;margin:0}.gateway-meta-list.compact{margin-bottom:1rem}.gateway-meta-list div{display:grid;gap:.18rem}.gateway-meta-list dt{color:#7b8490;font-size:.72rem;text-transform:uppercase;letter-spacing:0}.gateway-meta-list dd{margin:0;color:#111827;font-size:.85rem;font-family:SFMono-Regular,JetBrains Mono,monospace;word-break:break-all}.gateway-inline-error{display:flex;gap:.7rem;align-items:center;padding:.85rem 1rem;margin-bottom:1rem;border-radius:1rem;color:#8c2d2d;background:#fff5f5f5;border:1px solid rgba(180,81,81,.16)}.gateway-panel-note{margin:0 0 .9rem;color:#5d6774;font-size:.88rem;line-height:1.55}.gateway-upstream-card{margin-top:0}.gateway-upstream-list{display:grid;gap:.65rem}.gateway-upstream-item{display:grid;grid-template-columns:minmax(5.5rem,.4fr) minmax(0,1fr) minmax(0,1fr);gap:.75rem;align-items:center;padding:.75rem;border:1px solid rgba(17,24,39,.08);border-radius:.75rem;background:#f9fafbd1}.gateway-upstream-item span{color:#111827;font-size:.82rem;font-weight:800}.gateway-upstream-item code{min-width:0;overflow:hidden;color:#4b5563;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.gateway-upstream-empty{min-height:5rem}.signaling-panel{margin-top:1rem}.voice-call-card{display:grid;gap:.85rem;margin-bottom:1rem;padding:1rem;border:1px solid rgba(17,24,39,.08);border-radius:1rem;background:#ffffffd6}.voice-call-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.voice-call-header>div{display:grid;min-width:0;gap:.2rem}.voice-call-header strong{color:#111827;font-size:1rem}.voice-call-header span{min-width:0;overflow:hidden;color:#6b7280;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.voice-call-actions{display:flex;flex-wrap:wrap;gap:.55rem}.voice-call-meta{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem;margin:0}.voice-call-meta div{display:grid;gap:.18rem;min-width:0;padding:.65rem .7rem;border-radius:.75rem;background:#f6f7f9}.voice-call-meta dt{color:#7b8490;font-size:.68rem;text-transform:uppercase}.voice-call-meta dd{min-width:0;margin:0;overflow:hidden;color:#111827;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.voice-call-message{min-width:0;overflow:hidden;color:#5d6774;font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.voice-audio-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center}.voice-audio-row audio:first-child{width:100%;min-width:0;height:2.4rem}.voice-audio-row audio:last-child{display:none}.signaling-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.signaling-card{padding:1rem;border-radius:1rem;border:1px solid rgba(17,24,39,.08);background:#ffffffd6}.signaling-actions{display:flex;flex-wrap:wrap;gap:.55rem}.signaling-actions .ui-button{min-width:7rem;padding-inline:.85rem}.ice-server-list{display:grid;gap:.55rem}.ice-server-list code{display:block;min-width:0;padding:.65rem .7rem;overflow:hidden;border-radius:.75rem;background:#f6f7f9;color:#4b5563;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.signal-log{display:grid;gap:.55rem}.signal-log-item{display:grid;grid-template-columns:minmax(7.5rem,.8fr) minmax(8rem,1fr) auto auto auto;gap:.75rem;align-items:center;padding:.75rem;border:1px solid rgba(17,24,39,.08);border-radius:.75rem;background:#f9fafbd1;color:#596374;font-size:.82rem}.signal-log-item.own{background:#eef2f7}.signal-log-item code,.signal-log-item time{min-width:0;overflow:hidden;color:#4b5563;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.signal-empty{min-height:5.5rem}.chat-header-actions{display:flex;flex:1 1 auto;min-width:0;align-items:center;justify-content:flex-end;gap:.55rem}.chat-header-actions .ui-button{flex:0 0 auto}.modal-backdrop{position:fixed;z-index:10000;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;background:#1118272e;overflow:hidden;overscroll-behavior:contain}.chat-info-modal{width:min(42rem,100%);max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain;padding:1rem;border:1px solid rgba(17,24,39,.1);border-radius:1rem;background:#fffffffa;box-shadow:0 24px 80px #11182733;scrollbar-gutter:stable}.chat-info-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.chat-info-modal-header strong{color:#111827;font-size:.95rem;text-transform:uppercase}.chat-info-list{display:grid;gap:.55rem;margin:0}.chat-info-list div{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:.75rem;align-items:start;padding:.65rem 0;border-top:1px solid rgba(17,24,39,.07)}.chat-info-list dt{color:#7b8490;font-size:.72rem;text-transform:uppercase}.chat-info-list dd{margin:0;min-width:0;color:#111827;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.78rem;overflow-wrap:anywhere}.message-list{display:grid;align-content:start;align-items:start;gap:.55rem;min-height:9rem;max-height:17rem;overflow:auto;padding-right:.2rem}.latency-panel{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:.5rem;margin:0}.latency-meter{position:relative;display:inline-grid;flex:0 0 auto;align-items:center;align-content:center;justify-content:center;justify-items:center;width:4.15rem;height:4.15rem;border:1px solid rgba(17,24,39,.1);border-radius:50%;background:#fffffff0;color:#111827;cursor:help;outline:none}.latency-meter strong{display:block;max-width:3.55rem;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.92rem;font-weight:800;line-height:1;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.latency-unit{display:block;margin-top:.22rem;color:#6b7280;font-family:SFMono-Regular,JetBrains Mono,monospace;font-size:.6rem;font-weight:800;line-height:1;text-transform:uppercase}.latency-meter:focus-visible{border-color:#111827;box-shadow:0 0 0 3px #1118271f}.latency-tooltip{position:absolute;z-index:20;bottom:calc(100% + .6rem);left:50%;display:grid;width:max-content;max-width:16rem;gap:.25rem;padding:.65rem .75rem;border:1px solid rgba(17,24,39,.1);border-radius:.7rem;background:#111827;color:#fff;font-size:.76rem;line-height:1.35;opacity:0;pointer-events:none;transform:translate(-50%,.25rem);transition:opacity .14s ease,transform .14s ease}.latency-tooltip:after{position:absolute;top:100%;left:50%;width:.55rem;height:.55rem;background:#111827;content:"";transform:translate(-50%,-50%) rotate(45deg)}.latency-tooltip-title{color:#d1d5db;font-size:.68rem;font-weight:800;text-transform:uppercase}.latency-meter:hover .latency-tooltip,.latency-meter:focus-visible .latency-tooltip{opacity:1;transform:translate(-50%)}.message{align-self:start;max-width:min(48rem,88%);padding:.58rem .75rem;border-radius:1rem 1rem 1rem .35rem;background:#fff;border:1px solid rgba(17,24,39,.08)}.message.own{margin-left:auto;border-radius:1rem 1rem .35rem;background:#eef2f7;border-color:#2632431a}.message header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.28rem;color:#7b8490;font-size:.76rem;font-family:SFMono-Regular,JetBrains Mono,monospace}.message-headline{display:inline-flex;align-items:center;gap:.45rem;min-width:0}.message p{margin:0;line-height:1.35;white-space:pre-wrap;word-break:break-word}.message-metrics{margin-top:.32rem;color:#7b8490;font-size:.74rem;font-family:SFMono-Regular,JetBrains Mono,monospace}.composer{position:relative;display:grid;margin-top:1rem;padding:.85rem;border:1px solid rgba(17,24,39,.1);border-radius:1rem;background:#ffffffeb}.composer-actions{position:absolute;right:.85rem;bottom:.75rem;display:flex;align-items:center;gap:.45rem}.composer textarea{min-height:7.1rem;padding:.2rem 5.95rem 2.65rem .2rem;border:0;border-radius:0;background:transparent;resize:none}.composer textarea:focus{outline:none}.composer-send-button,.composer-probe-button{flex:0 0 var(--control-height-md)}.composer-probe-label{display:block;max-width:1.45rem;overflow:hidden;font-size:.72rem;font-weight:850;line-height:1;letter-spacing:0;text-overflow:clip}.empty-state{display:flex;min-height:8rem;justify-content:center;align-items:center;border:1px dashed rgba(17,24,39,.14);border-radius:1rem;color:#8a94a3;text-align:center;padding:1rem}.info-popover{position:absolute;top:4.85rem;right:1.15rem;z-index:3;width:min(28rem,calc(100vw - 4rem));padding:1rem;border-radius:1.1rem;border:1px solid rgba(17,24,39,.08);background:#fffffffa;box-shadow:0 24px 60px #0f172a29;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.info-popover-title{display:block;margin-bottom:.85rem;color:#111827;font-size:.92rem;letter-spacing:0}.tip-list{margin:0;padding-left:1.1rem;display:grid;gap:.45rem;color:#5b6573;font-size:.88rem}.diagnostic-list{display:grid;gap:.7rem;margin:.95rem 0 0}.diagnostic-list div{display:grid;gap:.22rem;padding:.75rem .85rem;border-radius:.95rem;background:#f6f7f9}.diagnostic-list dt{color:#7b8490;font-size:.72rem;text-transform:uppercase;letter-spacing:0}.diagnostic-list dd{margin:0;color:#111827;font-size:.82rem;font-family:SFMono-Regular,JetBrains Mono,monospace;word-break:break-all}@media(max-width:960px){.grid{grid-template-columns:1fr}.hero-meta,.identity-row{width:100%}.transport-facts,.gateway-grid,.signaling-grid{grid-template-columns:1fr}.voice-call-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.gateway-upstream-item,.signal-log-item{grid-template-columns:1fr;align-items:start}.composer{grid-template-columns:1fr}.info-popover{position:static;width:100%;margin-bottom:1rem}}@media(max-width:680px){.workspace-tabbar{width:100%;border-radius:1rem}.workspace-tab{flex:1 0 auto}.open-dm-panel .panel-header{flex-wrap:wrap}.open-dm-row{width:100%;flex-wrap:wrap;justify-content:flex-start}.open-dm-input{min-width:0;flex:1 1 100%}.open-dm-button{width:100%}.chat-panel .panel-header{flex-wrap:wrap}.chat-header-actions{width:100%;flex-wrap:wrap;justify-content:space-between}.latency-panel{flex-wrap:wrap;justify-content:flex-start}.chat-info-list div{grid-template-columns:1fr;gap:.25rem}.identity-row,.identity-meta-list{flex-wrap:wrap}.voice-call-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.voice-audio-row{grid-template-columns:1fr}}
