*{box-sizing:border-box}:root{--bg-0: #f3f7f6;--bg-1: #e8f0ee;--surface: #ffffff;--surface-muted: #f6faf9;--text: #18322c;--text-muted: #4d6a63;--line: #c6dad4;--brand: #0f8f74;--brand-strong: #0b725d;--warn-bg: #fff4dc;--warn-line: #f3cb78;--danger-bg: #fde7e8;--danger-line: #f4b2b9;--shadow-soft: 0 10px 28px rgba(13, 58, 49, .08);font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic UI,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background:radial-gradient(circle at 15% 0%,var(--bg-1),var(--bg-0) 42%);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:linear-gradient(130deg,rgba(15,143,116,.06),transparent 45%),radial-gradient(circle at 85% 15%,rgba(15,143,116,.07),transparent 35%),var(--bg-0)}#root{height:100vh}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(15,143,116,.35);outline-offset:2px}.app-layout{display:flex;flex-direction:column;height:100vh}.app-header{position:sticky;top:0;z-index:30;color:#f5fffc;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(110deg,#0b6d59,#094437 60%,#08332a);box-shadow:0 8px 24px #08332a47}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1120px;margin:0 auto;padding:.95rem 1.2rem}.logo-button{border:none;color:inherit;background:none;cursor:pointer;padding:0}.logo-button h1{margin:0;letter-spacing:.03em;font-size:1.38rem}.home-button{border:1px solid rgba(255,255,255,.28);background:#ffffff14;color:#f5fffc;padding:.45rem .9rem;border-radius:999px;cursor:pointer;transition:background-color .16s ease,transform .16s ease}.home-button:hover{background:#ffffff2e;transform:translateY(-1px)}.app-main{flex:1;overflow:auto}.page-shell{max-width:1120px;margin:1.35rem auto 2rem;padding:0 1rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft)}.home-container{max-width:1120px;margin:1.2rem auto 2rem;padding:0 1rem}.hero{padding:1.4rem;border-radius:16px;border:1px solid #b6d7ce;background:linear-gradient(145deg,#f7fcfb,#e8f4f1 72%);box-shadow:var(--shadow-soft);animation:rise-in .28s ease}.hero h1{margin:0;font-size:1.9rem;letter-spacing:.01em}.hero p{margin:.5rem 0 0;color:var(--text-muted)}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:1rem;box-shadow:var(--shadow-soft)}.card h2{margin-top:0;margin-bottom:.5rem}.card-description{color:var(--text-muted);margin-bottom:.85rem}.card input{margin-bottom:.75rem}.recent-rooms{margin-top:1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:1rem;box-shadow:var(--shadow-soft)}.recent-rooms h3{margin:0 0 .8rem}.recent-rooms-list{list-style:none;margin:0;padding:0;max-height:250px;overflow:auto;display:grid;gap:.65rem}.recent-room-item{border:1px solid #d6e7e2;border-radius:10px;padding:.75rem;background:var(--surface-muted)}.recent-room-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.recent-room-name{margin:0;font-weight:700}.recent-room-time{margin:0;color:var(--text-muted);font-size:.84rem}.recent-room-preview{margin:.48rem 0 .6rem;color:var(--text-muted);font-size:.9rem;line-height:1.45;word-break:break-word}.footer{margin-top:1rem;text-align:center;color:var(--text-muted)}.primary-btn,button[type=submit],.card-action{display:inline-flex;justify-content:center;align-items:center;border:none;border-radius:10px;background:linear-gradient(120deg,var(--brand),var(--brand-strong));color:#fff;padding:.72rem 1rem;cursor:pointer;transition:transform .16s ease,filter .16s ease}.primary-btn:hover:not(:disabled),button[type=submit]:hover:not(:disabled),.card-action:hover:not(:disabled){transform:translateY(-1px);filter:saturate(1.06)}.primary-btn:disabled,button[type=submit]:disabled,.card-action:disabled{opacity:.62;cursor:not-allowed}.secondary-btn,.share-copy-button,.export-button,.ws-reconnect-button,.recent-room-action{border:1px solid #9ec4ba;color:var(--text);background:#fff;border-radius:10px;padding:.55rem .78rem;cursor:pointer}.secondary-btn:hover,.share-copy-button:hover,.export-button:hover:not(:disabled),.ws-reconnect-button:hover,.recent-room-action:hover{background:#f3faf8}.leave-room-button{border:1px solid #d47a84;background:#be2f46;color:#fff;border-radius:10px;padding:.5rem .82rem;cursor:pointer}.leave-room-button:hover{background:#a1273a}.create-room-page,.join-room-page,.error-page{max-width:620px;margin:1.2rem auto;padding:1.2rem;border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft)}.create-room-page>h1,.join-room-page>h1{margin-top:0;margin-bottom:.35rem}.create-room-page>p,.join-room-page>p{color:var(--text-muted);margin-top:0}.join-room-page>p,.error-page{text-align:center}.share-box,.info-box,.session-lost-guide,.ws-error-banner,.export-error-banner{border-radius:12px;padding:.8rem .9rem}.share-box{border:1px solid var(--line);background:var(--surface-muted);margin-bottom:.95rem}.share-row{display:flex;gap:.5rem;flex-wrap:wrap}.share-row input{flex:1;min-width:220px}.share-status{margin:.45rem 0 0;font-size:.88rem}.qr-box{margin-top:.78rem;text-align:center}.qr-box img{border:1px solid var(--line);border-radius:10px;background:#fff;padding:.4rem}.qr-caption{margin:.45rem 0 0;color:var(--text-muted);font-size:.86rem}.session-lost-guide,.info-box,.ws-error-banner{border:1px solid var(--warn-line);background:var(--warn-bg);color:#6f4a00;margin-bottom:.9rem}.export-error-banner,.error{border:1px solid var(--danger-line);background:var(--danger-bg);color:#7a1f2b}.error{padding:.75rem}.success{color:#0f8f74}.error-text{color:#a61e2f}.chat-room-page{height:calc(100vh - 66px);display:flex;flex-direction:column}.chat-header{color:#f7fffc;background:linear-gradient(105deg,#0e5b4a,#0c4135);border-bottom:1px solid rgba(255,255,255,.12);padding:.85rem 1rem;display:flex;justify-content:space-between;gap:.85rem;align-items:center}.chat-header h1{margin:0;font-size:1.08rem}.chat-header-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.connection-status{border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:.22rem .55rem;font-size:.8rem}.export-actions{display:inline-flex;gap:.35rem}.chat-container{display:flex;flex:1;min-height:0}.participants-sidebar{width:258px;border-right:1px solid var(--line);background:var(--surface-muted);overflow:auto}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.participant-list{padding:.95rem}.participant-list h3{margin:0 0 .75rem;font-size:.98rem}.participant-list ul{margin:0;padding:0;list-style:none}.participant-item{display:flex;align-items:center;gap:.5rem;border:1px solid transparent;border-radius:8px;padding:.4rem .5rem}.participant-item:hover{background:#edf5f3;border-color:#d6e6e1}.message-list{flex:1;overflow:auto;padding:.95rem;background:#f9fcfb}.message{margin-bottom:.75rem;padding:.62rem .72rem;border-radius:12px;max-width:72%;border:1px solid transparent}.system-message{text-align:center;color:var(--text-muted);font-size:.85rem;max-width:100%;background:transparent;border:none;padding:.35rem}.own-message{margin-left:auto;color:#fff;border-color:#0b6d59;background:linear-gradient(120deg,#0f8f74,#0b725d)}.other-message{margin-right:auto;color:var(--text);border-color:#cfe3dd;background:#fff}.message-header{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.2rem;font-size:.82rem}.message-nickname{font-weight:700}.message-time{opacity:.7;font-size:.75rem}.message-content{white-space:pre-wrap;word-break:break-word}.message-input{display:flex;gap:.55rem;padding:.85rem;border-top:1px solid var(--line);background:#f3f8f7}.message-input input{flex:1;min-width:0}.message-input button{border:none;border-radius:10px;background:linear-gradient(120deg,var(--brand),var(--brand-strong));color:#fff;padding:.65rem 1rem;cursor:pointer}.message-input button:disabled{opacity:.6;cursor:not-allowed}form{display:flex;flex-direction:column;gap:.92rem}form>div{display:flex;flex-direction:column}label{margin-bottom:.3rem;font-weight:600}input,select{padding:.72rem;border:1px solid #a8c9c0;border-radius:10px;font-size:1rem;background:#fff;color:var(--text)}@media(max-width:880px){.chat-container{flex-direction:column}.participants-sidebar{width:100%;max-height:170px;border-right:none;border-bottom:1px solid var(--line)}.message{max-width:86%}}@media(max-width:760px){.card-grid{grid-template-columns:1fr}.hero{padding:1rem}.hero h1{font-size:1.65rem}.chat-room-page{height:calc(100vh - 62px)}.chat-header{align-items:flex-start;flex-direction:column}.chat-header-actions{justify-content:flex-start}.create-room-page,.join-room-page,.error-page{padding:1rem}.share-row{flex-direction:column}.share-row input{min-width:0}}@media(max-width:480px){.header-content{padding:.8rem .9rem}.logo-button h1{font-size:1.22rem}.message-input{padding:.65rem}.message-input input{font-size:16px}.export-actions{width:100%}.export-button{flex:1}}@keyframes rise-in{0%{transform:translateY(6px);opacity:0}to{transform:translateY(0);opacity:1}}
