:root{--background:#f4eee6;--surface:#fffdf9;--surface-muted:#f7f1e9;--surface-subtle:#eee5da;--border:#ded2c4;--border-strong:#c9b9a8;--text:#2c2520;--text-muted:#746960;--accent:#a95d3d;--accent-hover:#8f4c30;--accent-soft:#f6dfd2;--danger:#b42318;--success:#287653;--shadow:0 14px 34px #432d1d17;--conversation-max-width:74rem;--radius-small:.65rem;--radius-medium:1rem;--radius-large:1.35rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{height:100%;min-height:100%}body{background:var(--background);min-width:0;color:var(--text);margin:0;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #a95d3d57}.app-root{background:var(--background);width:100%;height:100%;min-height:100dvh;overflow:hidden}.eyebrow{color:var(--text-muted);letter-spacing:.1em;margin:0;font-size:.7rem;font-weight:800}.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}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-large);width:min(100% - 2rem,29rem);box-shadow:var(--shadow);gap:1.2rem;margin:0 auto;padding:clamp(1.5rem,4vw,2.5rem);display:grid}.auth-card:before{content:"るーちゃっと";color:var(--accent);font-size:1.45rem;font-weight:800}.auth-card h2,.auth-card p{margin:0}.auth-card form{gap:1rem;display:grid}.auth-card label{gap:.4rem;font-weight:700;display:grid}.auth-card input,.auth-card button,.room-form input,.room-form button,.member-form input,.member-form button,.message-form textarea,.message-form button,.password-form input,.password-form button{border:1px solid var(--border-strong);border-radius:var(--radius-small);background:var(--surface);min-height:2.8rem;color:var(--text);padding:.66rem .8rem}.auth-card button,.room-form button,.member-form button,.message-form button,.password-form button,.profile-form button,.profile-setup button{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:750}.auth-card button:not(:disabled):hover,.room-form button:not(:disabled):hover,.member-form button:not(:disabled):hover,.message-form button:not(:disabled):hover{background:var(--accent-hover)}.text-button{text-align:left;font-weight:700;min-height:auto!important;color:var(--accent)!important;background:0 0!important;border:0!important;padding:0!important}.error-message{color:var(--danger);margin:0;font-weight:650}.success-message{color:var(--success);margin:0;font-weight:650}.auth-description{color:var(--text-muted);line-height:1.55}.room-notice,.messages-empty{color:var(--text-muted);margin:0}.chat-shell{box-sizing:border-box;background:var(--background);grid-template-rows:auto minmax(0,1fr);width:100%;height:100dvh;min-height:0;max-height:100dvh;display:grid;overflow:hidden}.app-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf9e0;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:.9rem clamp(1rem,3vw,2rem);display:flex}.brand{white-space:nowrap;flex:none;align-items:center;gap:.55rem;min-width:0;font-size:1.1rem;font-weight:850;display:inline-flex}.brand-mark{color:var(--accent);font-size:.85rem}.account-actions{flex:1;justify-content:flex-end;align-items:center;gap:.75rem;min-width:0;display:flex}.account-email{max-width:min(32vw,22rem);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.secondary-button{border:1px solid var(--border-strong);border-radius:var(--radius-small);background:var(--surface);min-height:2.5rem;color:var(--text);padding:.55rem .75rem;font-weight:700}.secondary-button:not(:disabled):hover{background:var(--surface-subtle)}.chat-workspace{background:var(--border);grid-template-columns:clamp(19rem,25vw,23rem) minmax(0,1fr);gap:1px;height:100%;min-height:0;display:grid;overflow:hidden}.room-sidebar,.chat-pane{background:var(--surface);min-width:0;min-height:0}.room-sidebar{flex-direction:column;gap:1rem;padding:1.25rem;display:flex;overflow:hidden}.sidebar-heading{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sidebar-heading h2,.chat-room-title h2,.members-panel h3{margin:.2rem 0 0;font-size:1.05rem}.room-form{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-medium);gap:.45rem;padding:.85rem;display:grid}.room-form label,.member-form label{font-size:.86rem;font-weight:750}.room-form-controls{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;display:grid}.room-list{flex:auto;gap:.4rem;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.room-list button{border-radius:var(--radius-small);width:100%;color:var(--text);text-align:left;background:0 0;border:1px solid #0000;gap:.18rem;padding:.72rem .78rem;display:grid}.room-list button:hover{background:var(--surface-muted)}.room-list button.selected{background:var(--accent-soft);border-color:#d7a58c;box-shadow:inset 0 0 0 1px #a95d3d1f}.room-list-name{text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.room-list-kind{color:var(--text-muted);font-size:.76rem}.sidebar-empty{padding:1rem .4rem}.sidebar-release{border-top:1px solid var(--border);flex:none;padding-top:.8rem}.sidebar-release button{border-radius:var(--radius-small);width:100%;color:var(--text-muted);text-align:left;background:0 0;border:1px solid #0000;gap:.14rem;padding:.62rem .7rem;font-size:.76rem;display:grid}.sidebar-release button:hover{background:var(--surface-muted)}.sidebar-release button span:first-child{color:var(--text);font-weight:750}.chat-pane{flex-direction:column;min-height:0;display:flex;overflow:hidden}.chat-empty-state{background:radial-gradient(circle at top, #fffdf9, var(--surface-muted));text-align:center;place-items:center;min-height:0;padding:2rem;display:grid}.chat-empty-state>div{max-width:26rem}.chat-empty-state h2{margin:.35rem 0 .6rem}.chat-empty-state p:last-child{color:var(--text-muted);margin:0}.messages-panel{flex:auto;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;min-width:0;padding:1rem clamp(1rem,3vw,2rem);display:grid}.chat-room-title{min-width:0}.chat-room-title h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-room-meta{align-items:center;gap:.55rem;min-width:0;margin-top:.18rem;display:flex}.chat-kind{color:var(--text-muted);white-space:nowrap;margin:0;font-size:.82rem}.chat-actions{align-items:center;gap:.75rem;display:flex}.connection-summary{color:var(--success);white-space:nowrap;font-size:.78rem;font-weight:700}.mobile-back-button{display:none}.messages-content{min-height:0;padding:1rem max(1.25rem, calc((100% - var(--conversation-max-width)) / 2));background:#fbf8f3;flex-direction:column;display:flex;position:relative;overflow:hidden}.message-list{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:.7rem;min-height:0;margin:0;padding:0 .1rem;list-style:none;display:flex;overflow-y:auto}.message-item{max-width:100%;display:flex}.message-item.incoming{justify-content:flex-start}.message-item.outgoing{justify-content:flex-end}.message-bubble{border:1px solid var(--border);background:var(--surface);border-radius:1rem 1rem 1rem .28rem;gap:.28rem;max-width:min(82%,48rem);padding:.68rem .82rem;display:grid;box-shadow:0 3px 10px #4b301c0d}.message-item.outgoing .message-bubble{background:var(--accent);color:#fff;border-color:#cb8c70;border-radius:1rem 1rem .28rem}.message-bubble strong{font-size:.8rem}.message-bubble p{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.message-bubble time{color:var(--text-muted);font-size:.72rem}.message-item.outgoing time{color:#ffffffc2;text-align:right}.messages-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-medium);background:var(--surface);text-align:center;align-self:center;max-width:26rem;margin:auto;padding:1.2rem}.message-error{border-radius:var(--radius-small);color:var(--danger);background:#fff4f2;border:1px solid #efc5c0;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem;padding:.65rem .8rem;display:flex}.message-error p{margin:0}.new-messages-button{border:1px solid var(--accent);background:var(--surface);color:var(--accent);box-shadow:var(--shadow);border-radius:999px;padding:.55rem .8rem;font-weight:750;position:absolute;bottom:1.2rem;right:clamp(1rem,3vw,2rem)}.message-form{padding:.9rem max(1.25rem, calc((100% - var(--conversation-max-width)) / 2)) calc(.9rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;display:grid}.message-form textarea{resize:vertical;width:100%;min-height:2.8rem;max-height:9rem;line-height:1.45}.message-form button{min-width:6rem}.members-overlay{z-index:10;background:#2c252059;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.members-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-large);width:min(100%,30rem);max-height:min(42rem,86dvh);box-shadow:var(--shadow);gap:1rem;padding:1.15rem;display:grid;overflow:auto}.members-panel-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.icon-button{border:1px solid var(--border-strong);background:var(--surface);width:2.5rem;height:2.5rem;color:var(--text);border-radius:50%;place-items:center;font-size:1.4rem;line-height:1;display:grid}.member-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.member-list li{border:1px solid var(--border);border-radius:var(--radius-small);justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.65rem .72rem;display:flex}.member-list li>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-role{color:var(--text-muted);flex:none;font-size:.78rem}.member-form{gap:.5rem;padding-top:.3rem;display:grid}.member-message{color:var(--success);margin:0;font-weight:650}.profile-loading,.profile-required{background:var(--surface-muted);min-height:0;color:var(--text-muted);place-items:center;padding:1.5rem;display:grid}.profile-setup{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-large);width:min(100%,30rem);box-shadow:var(--shadow);color:var(--text);gap:1rem;padding:clamp(1.25rem,4vw,2rem);display:grid}.profile-setup h2,.profile-setup p{margin:0}.profile-setup>p:not(.eyebrow){color:var(--text-muted);line-height:1.55}.profile-setup form,.profile-form{gap:.55rem;display:grid}.profile-setup label,.profile-form label{font-size:.86rem;font-weight:750}.profile-setup input,.profile-form input{border:1px solid var(--border-strong);border-radius:var(--radius-small);background:var(--surface);min-height:2.8rem;color:var(--text);padding:.66rem .8rem}.profile-setup button,.profile-form button{border:1px solid var(--accent);border-radius:var(--radius-small);color:#fff;min-height:2.8rem;padding:.66rem .8rem;font-weight:750}.profile-form .text-button{min-height:auto;color:var(--accent);text-align:left;border:0;padding:0}.profile-form{padding-top:.2rem}.profile-form h3{margin:0}.account-overlay{z-index:11;background:#2c252059;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.account-settings{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-large);width:min(100%,32rem);max-height:min(46rem,86dvh);box-shadow:var(--shadow);gap:1rem;padding:1.15rem;display:grid;overflow:auto}.account-settings-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.account-settings h2,.password-form h3{margin:.2rem 0 0}.account-summary{gap:.72rem;margin:0;padding:0;display:grid}.account-summary div{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-muted);gap:.2rem;padding:.72rem;display:grid}.account-summary dt{color:var(--text-muted);font-size:.78rem;font-weight:750}.account-summary dd{overflow-wrap:anywhere;margin:0;font-weight:650}.password-form{gap:.5rem;display:grid}.password-form>p,.account-provider-notice{color:var(--text-muted);margin:0;line-height:1.55}.password-form label{margin-top:.35rem;font-size:.86rem;font-weight:750}.account-provider-notice{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-muted);padding:.85rem}.account-message{color:var(--success);margin:0;font-weight:650}.account-release{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-muted);gap:.4rem;padding:.85rem;display:grid}.account-release h3,.account-release p{margin:0}.account-release h3{font-size:.9rem}.account-release p{color:var(--text-muted);font-size:.86rem}.release-notes-overlay{z-index:12;background:#2c25206b;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.release-notes-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-large);width:min(100%,38rem);max-height:min(48rem,86dvh);box-shadow:var(--shadow);gap:1rem;padding:clamp(1.15rem,3vw,1.6rem);display:grid;overflow:auto}.release-notes-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.release-notes-header h2,.release-notes-header p,.release-introduction,.release-section h3{margin:0}.release-notes-header>div{gap:.3rem;display:grid}.release-notes-header>div>p:last-child,.release-introduction{color:var(--text-muted);line-height:1.55}.release-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:0;padding:0;display:grid}.release-summary div{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-muted);gap:.2rem;padding:.66rem;display:grid}.release-summary dt{color:var(--text-muted);font-size:.72rem;font-weight:750}.release-summary dd{overflow-wrap:anywhere;margin:0;font-size:.84rem;font-weight:750}.release-section{gap:.45rem;display:grid}.release-section h3{font-size:.95rem}.release-section ul{color:var(--text-muted);gap:.35rem;margin:0;padding-left:1.25rem;line-height:1.45;display:grid}.release-confirmation{border:1px solid var(--accent);border-radius:var(--radius-small);background:var(--accent);color:#fff;min-height:2.8rem;padding:.66rem .8rem;font-weight:750}.release-confirmation:not(:disabled):hover{background:var(--accent-hover)}.auth-release{color:var(--text-muted);font-size:.78rem;line-height:1.45}@media (width<=60rem){.app-header{gap:.6rem;padding:.72rem 1rem}.account-email{max-width:min(25vw,8rem);font-size:.8rem}.account-actions{gap:.45rem}.account-actions .secondary-button{white-space:nowrap;flex:none;min-height:2.3rem;padding:.45rem .6rem;font-size:.84rem}.chat-workspace{background:var(--surface);height:100%;min-height:0;display:block}.room-sidebar,.chat-pane{height:100%}.chat-shell.chat-open .room-sidebar,.chat-shell:not(.chat-open) .chat-pane{display:none}.room-sidebar{padding:1rem}.sidebar-release{margin-top:auto}.chat-header{grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;padding:.65rem 1rem}.mobile-back-button{min-height:2.45rem;color:var(--accent);background:0 0;border:0;align-items:center;padding:.45rem .15rem;font-weight:750;display:inline-flex}.chat-actions{align-self:center}.chat-actions .secondary-button{white-space:nowrap;min-height:2.35rem;padding:.42rem .58rem;font-size:.84rem}.chat-room-meta{gap:.35rem}.chat-kind{text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.connection-summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.messages-content{padding:.85rem 1rem}.message-bubble{max-width:88%}.message-form{padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom));gap:.45rem}.message-form button{min-width:4.2rem;min-height:2.5rem;padding:.45rem .55rem}.release-summary{grid-template-columns:1fr}}@media (width<=25rem){.app-header{padding-left:.65rem;padding-right:.65rem}.brand{gap:.35rem;font-size:1rem}.account-email{max-width:4.6rem}.account-actions .secondary-button{padding-left:.48rem;padding-right:.48rem;font-size:.78rem}.sidebar-heading{flex-direction:column;align-items:flex-start}.room-form-controls{grid-template-columns:1fr}.chat-header{gap:.35rem;padding-left:.65rem;padding-right:.65rem}.mobile-back-button{font-size:.84rem}.chat-kind{display:none}.connection-summary{font-size:.7rem}.message-form{padding-left:.65rem;padding-right:.65rem}.message-form button{min-width:3.9rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
