:root{--color-bg:#e9edf2;--color-surface:#fff;--color-text:#1f2328;--color-muted:#6b7280;--color-border:#d6dbe1;--color-mine:#b9e7a5;--color-accent:#2e7d4f;--color-error:#b42318;--color-notice:#fff4d6;color:var(--color-text);font-family:system-ui,-apple-system,Hiragino Sans,Yu Gothic,Noto Sans JP,sans-serif;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);margin:0}#app{height:100dvh}button,input{font:inherit}input{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;padding:10px 12px;font-size:16px}button{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 16px}button:disabled{background:var(--color-muted);cursor:not-allowed}.entry{place-items:center;height:100%;padding:16px;display:grid}.entry-form{background:var(--color-surface);border-radius:12px;gap:12px;width:min(320px,100%);padding:24px;display:grid}.entry-title{margin:0;font-size:20px}.entry-label{color:var(--color-muted);gap:4px;font-size:14px;display:grid}.entry-note{color:var(--color-muted);margin:0;font-size:12px}.entry-error{color:var(--color-error);margin:0;font-size:12px}.room{flex-direction:column;height:100%;display:flex}.room-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 16px;display:flex}.room-title{margin:0;font-size:16px}.room-user{color:var(--color-muted);font-size:12px}.room-notice{background:var(--color-notice);flex-shrink:0;margin:0;padding:6px 16px;font-size:12px}.message-list{flex-direction:column;flex:1;gap:10px;min-height:0;padding:16px;display:flex;overflow-y:auto}.message-empty{color:var(--color-muted);margin:auto;font-size:14px}.bubble-row{flex-direction:column;max-width:75%;display:flex}.bubble-row--mine{align-self:flex-end;align-items:flex-end}.bubble-row--other{align-self:flex-start;align-items:flex-start}.bubble-name{color:var(--color-muted);margin:0 4px 2px;font-size:12px}.bubble{background:var(--color-surface);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;margin:0;padding:8px 12px}.bubble-row--mine .bubble{background:var(--color-mine)}.message-form{border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;gap:6px;padding:12px 16px;display:grid}.message-form-row{gap:8px;display:flex}.message-form-row input{flex:1;min-width:0}.message-form-error{color:var(--color-error);margin:0;font-size:12px}
