:root{--bg:#eef1f4;--surface:#fff;--surface-2:#e7ecf0;--bubble-in:#fff;--bubble-own:#0f766e;--bubble-own-text:#f3fbf9;--text:#1a2230;--muted:#63707f;--faint:#8a97a4;--border:#d9e0e6;--accent:#0f766e;--accent-soft:#dcefec;--shadow:0 1px 2px rgba(20,35,50,.06),0 4px 14px rgba(20,35,50,.05)}@media (prefers-color-scheme:dark){:root{--bg:#0e1418;--surface:#161f26;--surface-2:#1f2a32;--bubble-in:#1c262e;--bubble-own:#0f766e;--bubble-own-text:#eafffb;--text:#e6edf3;--muted:#9aa8b5;--faint:#6c7b88;--border:#28333c;--accent:#2dd4bf;--accent-soft:#123531;--shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.28)}}*{box-sizing:border-box}body,html{height:100%}body{margin:0;height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:Noto Sans KR,Noto Sans Thai,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-text-size-adjust:100%}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.entry{flex:1 1 auto;align-items:center;gap:14px;overflow-y:auto;padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom))}.entry,.entry-card{display:flex;flex-direction:column}.entry-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow);gap:16px}.entry>:first-child{margin-top:auto}.entry>:last-child{margin-bottom:auto}.inapp-note{background:#fef3c7;color:#92400e;border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.5}.brand,.inapp-note{width:100%;max-width:400px}.brand{padding:0 4px}.brand h1{margin:0;font-size:24px}.brand .sub{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.entry-title{margin:0;font-size:16px}.room-list{display:flex;flex-direction:column;gap:8px}.room-item{display:flex;align-items:center;gap:8px;cursor:pointer;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:10px 6px 10px 14px;min-height:56px}.room-item:active{filter:brightness(.97)}.room-main{flex:1 1;min-width:0}.room-name{font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-meta{font-size:12px;color:var(--muted);margin-top:2px}.badge{flex:none;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#dc2626;color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}.room-x{width:40px;height:40px;font-size:15px}.chat-header .bell,.room-x{flex:none;border:none;border-radius:10px;cursor:pointer;background:none;color:var(--faint)}.chat-header .bell{width:36px;height:36px;display:grid;place-items:center}.chat-header .bell.on{color:var(--accent)}.notice-banner{background:var(--accent-soft);font-size:13px;line-height:1.45;text-align:center;padding:8px 14px}.chat-header .back,.notice-banner{flex:none;color:var(--text);cursor:pointer}.chat-header .back{width:36px;height:36px;margin-left:-8px;border:none;border-radius:10px;background:none;display:grid;place-items:center}.entry-field{display:flex;flex-direction:column;gap:5px}.entry-field label{font-size:12px;font-weight:600;color:var(--muted)}.entry-field input,.entry-field select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:12px;font-size:16px;min-height:48px;width:100%}.entry-btn{margin-top:4px;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:14px;font-size:16px;font-weight:600;cursor:pointer;min-height:50px}.entry-btn:active{filter:brightness(.95)}.app{flex:1 1 auto;min-height:0;width:100%;max-width:720px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden}.chat-header{flex:none;background:var(--surface);border-bottom:1px solid var(--border);padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));display:flex;gap:10px;align-items:center}.chat-header .room{font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header .spacer{flex:1 1}.chat-header .field{display:flex;flex-direction:column;gap:3px}.chat-header label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);font-weight:600}.chat-header select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:8px 10px;font-size:15px;min-height:40px}.stream{flex:1 1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));gap:12px}.msg,.stream{display:flex;flex-direction:column}.msg{max-width:84%;gap:3px}.msg.own{align-self:flex-end;align-items:flex-end}.who{font-size:11.5px;font-weight:700;padding:0 4px;display:flex;gap:6px;align-items:center}.who .src{font-size:10px;font-weight:600;color:var(--faint);background:var(--surface-2);padding:1px 6px;border-radius:999px}.bubble{background:var(--bubble-in);border:1px solid var(--border);padding:9px 12px;border-radius:14px;border-top-left-radius:5px;box-shadow:var(--shadow);font-size:15px;line-height:1.45;word-break:break-word;white-space:pre-wrap}.msg.own .bubble{background:var(--bubble-own);color:var(--bubble-own-text);border-color:transparent;border-radius:14px;border-top-right-radius:5px}.bubble.waiting{opacity:.55}.bubble.local{opacity:.7}.conn-banner{flex:none;background:#fef3c7;color:#92400e;font-size:12.5px;text-align:center;padding:6px 12px}.orig{font-size:12px;line-height:1.4;color:var(--muted);padding:0 5px}.orig .lbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-right:5px}.orig .lbl,.time{color:var(--faint)}.time{font-size:10px;padding:0 5px}.composer{flex:none;background:var(--surface);border-top:1px solid var(--border);padding:10px max(16px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:flex;gap:9px;align-items:flex-end}.composer textarea{flex:1 1;resize:none;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:11px 12px;font-size:16px;line-height:1.4;max-height:120px;min-height:46px}.composer .send{flex:none;width:46px;height:46px;border-radius:12px;border:none;cursor:pointer;background:var(--accent);color:#fff;display:grid;place-items:center}.composer .send:disabled{opacity:.45;cursor:default}@media (prefers-reduced-motion:reduce){*{transition:none!important}}