@import"https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500&family=Noto+Sans+JP:wght@300;400&display=swap";*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{font-family:Zen Kaku Gothic New,Noto Sans JP,sans-serif}.app{min-height:100dvh;background:#f5f0eb;background-image:radial-gradient(ellipse at 20% 50%,rgba(220,205,190,.4) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(235,220,200,.3) 0%,transparent 50%);display:flex;flex-direction:column;align-items:center;padding:0 16px}.screen{width:100%;max-width:960px;min-height:100dvh;display:flex;flex-direction:column;animation:fadeUp .4s ease;background:#fffcf857;border-left:1px solid rgba(220,200,180,.45);border-right:1px solid rgba(220,200,180,.45)}.welcome-screen{max-width:480px;justify-content:center;align-items:center;padding:48px 32px;text-align:center;gap:0;background:transparent;border:0}.welcome-icon{width:64px;height:64px;background:#b48c641f;border-radius:20px;border:1px solid rgba(180,140,100,.2);display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.welcome-title{font-size:22px;font-weight:400;color:#5a3e28;letter-spacing:.12em;margin-bottom:10px}.welcome-sub{font-size:13px;color:#9a7a60;font-weight:400;line-height:1.8;margin-bottom:48px}.welcome-enter{padding:14px 48px;background:linear-gradient(135deg,#c49a6c,#a8784a);border:none;border-radius:14px;color:#fff;font-size:15px;font-family:inherit;font-weight:400;letter-spacing:.08em;cursor:pointer;box-shadow:0 4px 16px #a8784a40;transition:transform .1s,opacity .2s}.welcome-enter:active{transform:scale(.97);opacity:.9}.welcome-note{font-size:11px;color:#c4a888;margin-top:20px;line-height:1.8;font-weight:400}.loading-dots{font-size:13px;color:#9a7a60;margin-top:8px}.loading-dots:after{content:"";animation:dots 6s steps(4,end) infinite}@keyframes dots{0%{content:""}25%{content:"・"}50%{content:"・・"}75%{content:"・・・"}to{content:""}}.auth-screen{max-width:480px;justify-content:center;padding:32px 24px;background:transparent;border:0}.auth-logo{text-align:center;margin-bottom:36px}.auth-logo h1{font-size:18px;font-weight:400;color:#5a3e28;letter-spacing:.1em}.auth-logo p{font-size:11px;color:#9a7a60;margin-top:5px;font-weight:400}.auth-card{background:#fffcf8e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;padding:28px 24px;border:1px solid rgba(220,200,180,.5);box-shadow:0 4px 24px #a0785014}.auth-tabs{display:flex;background:#b48c6414;border-radius:10px;padding:3px;margin-bottom:24px}.auth-tab{flex:1;padding:8px;border:none;background:transparent;border-radius:8px;font-size:13px;color:#9a7a60;cursor:pointer;font-family:inherit;transition:all .2s}.auth-tab.active{background:#fff;color:#5a3e28;box-shadow:0 1px 6px #a078501f}.form-group{margin-bottom:14px}.form-label{display:block;font-size:11px;color:#9a7a60;margin-bottom:5px;letter-spacing:.08em}.form-input{width:100%;padding:11px 13px;border:1px solid rgba(180,140,100,.2);border-radius:10px;font-size:16px;color:#5a3e28;background:#fffcf8e6;font-family:inherit;font-weight:400;outline:none;transition:border-color .2s}.form-input:focus{border-color:#b48c6473}.form-input::placeholder{color:#c4a888}textarea.form-input{resize:none;height:68px;line-height:1.6}.btn-primary{width:100%;padding:13px;background:linear-gradient(135deg,#c49a6c,#a8784a);border:none;border-radius:12px;color:#fff;font-size:14px;font-family:inherit;font-weight:400;letter-spacing:.05em;cursor:pointer;margin-top:6px;transition:opacity .2s,transform .1s}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-primary:not(:disabled):active{transform:scale(.98);opacity:.9}.auth-note{text-align:center;font-size:11px;color:#b89878;margin-top:18px;line-height:1.8;font-weight:400}.auth-error{color:#c47a6c;font-size:12px;margin-bottom:8px}.auth-hint{font-size:11px;color:#b89878;line-height:1.7;margin-bottom:12px}.btn-secondary{width:100%;padding:11px;background:transparent;border:1px solid rgba(180,140,100,.3);border-radius:12px;color:#a8784a;font-size:14px;cursor:pointer;transition:opacity .2s}.btn-secondary:active{opacity:.7}.btn-text{width:100%;padding:10px;background:transparent;border:none;color:#b89878;font-size:12px;cursor:pointer;margin-top:4px;text-decoration:underline}.btn-text:active{opacity:.6}.pw-field{position:relative;display:flex;align-items:center}.pw-field .form-input{flex:1;padding-right:52px}.pw-toggle{position:absolute;right:10px;background:none;border:none;color:#b89878;cursor:pointer;padding:4px;display:flex;align-items:center}.pw-toggle:active{opacity:.6}.agree-row{display:flex;align-items:flex-start;gap:8px;margin:4px 0 10px}.agree-checkbox{margin-top:2px;flex-shrink:0;accent-color:#a8784a;width:14px;height:14px;cursor:pointer}.agree-label{font-size:12px;color:#7a6050;line-height:1.6;cursor:pointer}.agree-link{background:none;border:none;font-size:12px;color:#a8784a;cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px;padding:0}.agree-link:active{opacity:.6}.room-header{padding:18px 20px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid rgba(180,140,100,.12);background:#fffcf899;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.room-header>div:last-child{flex-wrap:wrap;justify-content:flex-end}.room-header h2{font-size:16px;font-weight:400;color:#5a3e28;letter-spacing:.05em}.room-header p{font-size:11px;color:#a88868;margin-top:2px;font-weight:400}.online-badge{display:flex;align-items:center;gap:5px;font-size:11px;color:#9a7a60;font-weight:400}.online-dot{width:6px;height:6px;background:#a8c49a;border-radius:50%;animation:pulse 2.5s infinite}.bottom-nav{display:flex;border-top:1px solid rgba(180,140,100,.12);background:#fffcf8cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;bottom:0}.nav-btn{flex:1;padding:12px 4px 14px;border:none;background:transparent;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:3px;transition:opacity .2s}.nav-btn:active{opacity:.7}.nav-icon{display:flex;align-items:center;justify-content:center;color:#c4a888}.nav-label{font-size:10px;color:#a88868;font-weight:400;letter-spacing:.05em}.nav-btn.active .nav-label{color:#a8784a;font-weight:400}.nav-btn.active .nav-icon{color:#a8784a}.stamp-area{padding:14px 20px;border-bottom:1px solid rgba(180,140,100,.08);background:#fffcf866}.stamp-label{font-size:10px;color:#b89878;letter-spacing:.1em;margin-bottom:9px;font-weight:400}.stamps{display:flex;gap:7px;flex-wrap:wrap}.stamp{flex:0 1 auto;display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:20px;border:1px solid rgba(180,140,100,.22);background:#fffcf8b3;font-size:12px;color:#7a5a40;cursor:pointer;font-family:inherit;font-weight:400;transition:all .2s;letter-spacing:.03em;white-space:nowrap}.stamp.selected{background:#c49a6c2e;border-color:#b48c6473;color:#5a3e28}.user-list{flex:1;padding:14px 20px;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;align-content:start}.section-label{font-size:10px;color:#b89878;letter-spacing:.12em;margin-bottom:10px;font-weight:400}.user-list .section-label{grid-column:1 / -1;margin-bottom:8px}.user-card{display:flex;align-items:center;padding:13px 15px;background:#fffcf8bf;border-radius:14px;border:1px solid rgba(220,200,180,.5);box-shadow:0 1px 8px #a078500f;transition:all .2s;min-width:0}.user-avatar{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#e8d4bc,#d4b898);display:flex;align-items:center;justify-content:center;font-size:18px;margin-right:11px;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:14px;color:#5a3e28;font-weight:400;margin-bottom:2px}.user-intro{font-size:11px;color:#9a7a60;font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.user-stamp-tag{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:10px;color:#a8784a;background:#c49a6c1f;border:1px solid rgba(180,140,100,.2);border-radius:6px;padding:2px 8px;font-weight:400}.user-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}.status-badge{font-size:10px;padding:3px 8px;border-radius:6px;font-weight:400;letter-spacing:.03em}.status-waiting{background:#a8c49a26;color:#5a8a5a;border:1px solid rgba(168,196,154,.3)}.status-chatting{background:#b4a0821f;color:#9a7a50;border:1px solid rgba(180,160,130,.25)}.knock-btn{padding:5px 11px;background:#c49a6c1f;border:1px solid rgba(180,140,100,.25);border-radius:8px;font-size:11px;color:#7a5a40;cursor:pointer;font-family:inherit;font-weight:400;transition:all .2s}.knock-btn:active{background:#c49a6c40}.room-log{padding:10px 20px 16px;border-top:1px solid rgba(180,140,100,.08);background:#fffcf84d;max-height:220px;overflow-y:auto}.log-label{font-size:10px;color:#c4a888;letter-spacing:.1em;margin-bottom:7px;font-weight:400}.log-item{font-size:12px;color:#9a7a60;font-weight:400;padding:5px 0;border-bottom:1px solid rgba(180,140,100,.07);line-height:1.5}.log-item:last-child{border-bottom:none}.log-time{font-size:10px;color:#c4a888;margin-right:7px}.empty-room{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;text-align:center}.empty-room p{font-size:14px;color:#9a7a60;font-weight:400;line-height:1.9;margin-bottom:28px}.ai-chat-btn{padding:12px 32px;background:linear-gradient(135deg,#c49a6c,#a8784a);border:none;border-radius:12px;color:#fff;font-size:14px;font-family:inherit;font-weight:400;letter-spacing:.05em;cursor:pointer}.chat-screen{height:100dvh;min-height:unset}.chat-header{padding:14px 18px;display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(180,140,100,.12);background:#fffcf899;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:5}.back-btn{width:32px;height:32px;border:none;background:#b48c641a;border-radius:8px;color:#7a5a40;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.chat-header-info h3{font-size:15px;font-weight:400;color:#5a3e28}.chat-header-info p{font-size:11px;color:#a88868;font-weight:400;margin-top:1px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chat-header-stamp{display:inline-flex;align-items:center;gap:4px;background:#b48c641f;border-radius:6px;padding:1px 6px;font-size:10px;color:#8a6848}.chat-notice{margin:10px 14px;padding:9px 13px;background:#b48c6412;border-radius:10px;font-size:11px;color:#a88868;text-align:center;font-weight:400;line-height:1.7}.messages{flex:1 1 auto;min-height:0;padding:8px 14px 14px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:9px}.message{max-width:80%;animation:fadeUp .3s ease}.message.mine{align-self:flex-end}.message.theirs{align-self:flex-start}.message-bubble{padding:10px 13px;border-radius:16px;font-size:14px;line-height:1.6;font-weight:400;letter-spacing:.02em;white-space:pre-wrap;word-break:break-word}.message.mine .message-bubble{background:linear-gradient(135deg,#c49a6c,#a8784a);color:#fff;border-bottom-right-radius:4px}.message.theirs .message-bubble{background:#fffcf8eb;color:#5a3e28;border:1px solid rgba(220,200,180,.5);border-bottom-left-radius:4px;box-shadow:0 1px 6px #a0785014}.message-time{font-size:10px;color:#c4a888;margin-top:3px;font-weight:400;text-align:right}.message.theirs .message-time{text-align:left}.typing{align-self:flex-start}.typing-bubble{background:#fffcf8eb;border:1px solid rgba(220,200,180,.5);border-radius:16px 16px 16px 4px;padding:10px 16px;display:flex;gap:4px;align-items:center}.typing-dot{width:6px;height:6px;background:#c4a888;border-radius:50%;animation:typingDot 1.2s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.chat-input-area{position:sticky;bottom:0;width:100%;box-sizing:border-box;padding:12px 12px max(12px,env(safe-area-inset-bottom));border-top:1px solid rgba(180,140,100,.1);background:#fffcf8f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;gap:12px;align-items:center}.chat-input{flex:1;min-width:0;width:0;padding:10px 13px;border:1px solid rgba(180,140,100,.2);border-radius:12px;font-size:16px;color:#5a3e28;background:#fffcf8e6;font-family:inherit;font-weight:400;outline:none;resize:none;line-height:1.5;max-height:100px}.send-btn{flex:0 0 40px;width:40px;height:40px;background:linear-gradient(135deg,#c49a6c,#a8784a);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.send-btn:active{opacity:.8}.end-chat-area{padding:0 14px 6px;text-align:center}.end-chat-btn{background:none;border:none;font-size:12px;color:#b89878;cursor:pointer;font-family:inherit;font-weight:400;letter-spacing:.05em;text-decoration:underline;text-underline-offset:3px}.wave-screen{flex:1;overflow-y:auto;padding:20px;width:100%;max-width:760px;margin:0 auto}.wave-header{margin-bottom:20px}.wave-header h3{font-size:16px;font-weight:400;color:#5a3e28;margin-bottom:4px}.wave-header p{font-size:12px;color:#9a7a60;font-weight:400;line-height:1.6}.wave-chart{background:#fffcf8cc;border-radius:16px;border:1px solid rgba(220,200,180,.5);padding:20px 16px;margin-bottom:20px}.wave-chart-title{font-size:11px;color:#b89878;letter-spacing:.1em;margin-bottom:4px}.wave-chart-sub{font-size:10px;color:#c4a888;font-weight:400;margin-bottom:14px}.wave-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.wave-scroll::-webkit-scrollbar{height:3px}.wave-scroll::-webkit-scrollbar-track{background:#b48c640f;border-radius:2px}.wave-scroll::-webkit-scrollbar-thumb{background:#b48c6433;border-radius:2px}.wave-bars{display:flex;align-items:flex-end;gap:4px;height:80px;margin-bottom:6px}.wave-bar-wrap{display:flex;align-items:flex-end;flex-shrink:0;width:18px}.wave-bar{width:100%;border-radius:3px 3px 0 0;transition:height .4s ease;min-height:3px}.wave-bar.lv1{background:#c49a6c40}.wave-bar.lv2{background:#c49a6c66}.wave-bar.lv3{background:#c49a6c8c}.wave-bar.lv4{background:#c49a6cb3}.wave-bar.lv5{background:#c49a6cd9}.wave-bar.lv6{background:#c49a6c}.wave-bar.empty{background:#b48c641a}.wave-day{font-size:9px;color:#c4a888}.wave-today-stamp{background:#fffcf8cc;border-radius:16px;border:1px solid rgba(220,200,180,.5);padding:18px 16px;margin-bottom:20px}.wave-today-title{font-size:11px;color:#b89878;letter-spacing:.1em;margin-bottom:12px;display:flex;align-items:center;gap:5px}.section-dot{display:inline-block;width:7px;height:7px;background:#e05555;border-radius:50%;flex-shrink:0}.wave-stamps{display:flex;gap:7px;flex-wrap:wrap}.wave-stamp{flex:0 1 auto;display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:20px;border:1px solid rgba(180,140,100,.22);background:#fffcf8b3;font-size:12px;color:#7a5a40;cursor:pointer;font-family:inherit;font-weight:400;transition:all .2s;white-space:nowrap}.wave-stamp.selected{background:#c49a6c33;border-color:#b48c6480;color:#5a3e28}.wave-log{background:#fffcf8cc;border-radius:16px;border:1px solid rgba(220,200,180,.5);padding:18px 16px}.wave-log-title{font-size:11px;color:#b89878;letter-spacing:.1em;margin-bottom:12px}.wave-log-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(180,140,100,.07)}.wave-log-item:last-child{border-bottom:none}.wave-log-date{font-size:11px;color:#b89878;font-weight:400;width:48px;flex-shrink:0;white-space:nowrap}.wave-log-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#a8784a;background:#c49a6c1f;border:1px solid rgba(180,140,100,.2);border-radius:6px;padding:2px 9px;font-weight:400}.wave-log-detail{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.wave-log-word{font-size:11px;color:#7a6050;font-style:italic}.wave-today-word{background:#fffcf8cc;border-radius:16px;border:1px solid rgba(220,200,180,.5);padding:18px 16px;margin-bottom:20px}.wave-word-saved{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wave-word-text{font-size:14px;color:#5a3e28;font-weight:400;letter-spacing:.03em}.wave-word-label{font-size:10px;color:#b89878;margin-bottom:4px}.wave-word-custom{display:flex;flex-direction:column;gap:10px}.wave-word-input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid rgba(180,140,100,.25);border-radius:10px;background:#fffcf8e6;font-family:inherit;font-size:16px;color:#5a3e28;resize:none;min-height:60px}.wave-word-input:focus{outline:none;border-color:#b48c6480}.wave-word-desc{font-size:12px;color:#a89880;line-height:1.7;margin-bottom:14px}.wave-word-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.wave-word-btn{padding:9px 18px;background:#c49a6c26;border:1px solid rgba(180,140,100,.3);border-radius:20px;color:#7a5a40;font-family:inherit;font-size:12px;cursor:pointer}.wave-word-btn:hover{background:#c49a6c40}.wave-word-btn:disabled{opacity:.35;cursor:not-allowed}.wave-word-save{padding:9px 18px;background:#c49a6c33;border:1px solid rgba(180,140,100,.35);border-radius:20px;color:#5a3e28;font-family:inherit;font-size:12px;cursor:pointer}.wave-word-save:hover{background:#c49a6c4d}.wave-word-save:disabled{opacity:.4;cursor:not-allowed}.btn-text-sm{background:none;border:none;color:#b89878;font-family:inherit;font-size:11px;cursor:pointer;padding:4px 2px;text-decoration:underline;text-underline-offset:2px}.btn-text-sm:hover{color:#7a5a40}.btn-text-sm:disabled{opacity:.4;cursor:not-allowed}.wave-word-propose{width:100%;margin-top:10px;padding:10px;background:#c49a6c1f;border:1px dashed rgba(180,140,100,.35);border-radius:10px;color:#7a5a40;font-family:inherit;font-size:12px;cursor:pointer}.wave-word-propose:hover{background:#c49a6c38}.wave-word-propose:disabled{opacity:.5;cursor:not-allowed}.mamoru-chat{margin-top:16px;padding-top:16px;border-top:1px solid rgba(180,140,100,.12)}.mamoru-msgs{display:flex;flex-direction:column;gap:10px;max-height:240px;overflow-y:auto;margin-bottom:12px}.mamoru-msg{display:flex;flex-direction:column}.mamoru-msg.mine{align-items:flex-end}.mamoru-msg.theirs{align-items:flex-start}.mamoru-bubble{max-width:80%;padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.6}.mamoru-msg.mine .mamoru-bubble{background:#c49a6c2e;color:#5a3e28;border-radius:14px 14px 4px}.mamoru-msg.theirs .mamoru-bubble{background:#fffcf8e6;border:1px solid rgba(180,140,100,.15);color:#5a3e28;border-radius:14px 14px 14px 4px}.mamoru-time{font-size:9px;color:#c4a888;margin-top:3px}.mamoru-input-row{display:flex;gap:8px;align-items:center}.mamoru-input{flex:1;min-width:0;box-sizing:border-box;padding:9px 12px;border:1px solid rgba(180,140,100,.25);border-radius:20px;background:#fffcf8e6;font-family:inherit;font-size:16px;color:#5a3e28}.mamoru-input:focus{outline:none;border-color:#b48c6480}.mamoru-input:disabled{opacity:.5}.mamoru-send{flex:0 0 36px;width:36px;height:36px;background:linear-gradient(135deg,#c49a6c,#a8784a);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mamoru-send:active{opacity:.8}.mamoru-send:disabled{opacity:.4;cursor:not-allowed}.hotline-card{margin-top:16px;padding:18px 16px;text-align:center;border-top:1px solid rgba(180,140,100,.1)}.hotline-lead{font-size:11px;color:#b89878;font-weight:400;margin-bottom:10px}.hotline-name{font-size:13px;color:#7a6050;font-weight:400;margin-bottom:6px}.hotline-tel{display:inline-block;font-size:20px;color:#a8784a;font-weight:400;letter-spacing:.05em;text-decoration:none;margin-bottom:6px}.hotline-tel:active{opacity:.7}.hotline-note{font-size:10px;color:#c4a888;font-weight:400}.hourly-chart{background:#fffcf8cc;border-radius:16px;border:1px solid rgba(220,200,180,.5);padding:18px 16px;margin-bottom:20px}.hourly-title{font-size:11px;color:#b89878;letter-spacing:.1em;margin-bottom:4px}.hourly-sub{font-size:10px;color:#c4a888;font-weight:400;margin-bottom:14px}.hourly-bars{display:flex;align-items:flex-end;gap:2px;height:56px;margin-bottom:6px}.hourly-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.hourly-bar{width:100%;border-radius:2px 2px 0 0;min-height:2px;transition:height .4s ease}.hourly-bar.active-hour{background:linear-gradient(to top,#c49a6c,#ddb888)}.hourly-bar.inactive-hour{background:#b48c641f}.hourly-labels{display:flex;justify-content:space-between;padding:0 2px}.hourly-label{font-size:9px;color:#c4a888}.history-screen{flex:1;overflow-y:auto;padding:20px;width:100%;max-width:760px;margin:0 auto}.history-header{margin-bottom:18px}.history-header h3{font-size:16px;font-weight:500;color:#5a3e28;margin-bottom:4px}.history-header p{font-size:12px;color:#9a7a60;font-weight:400}.history-card{background:#fffcf8cc;border-radius:14px;border:1px solid rgba(220,200,180,.5);padding:15px 16px;margin-bottom:10px;transition:all .2s;box-shadow:0 1px 6px #a078500f}.history-card-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer}.history-avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#e8d4bc,#d4b898);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.history-name{font-size:14px;color:#5a3e28;font-weight:400}.history-date{font-size:11px;color:#b89878;margin-left:auto;font-weight:400}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#50321e40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100;animation:fadeUp .2s ease}.modal{background:#fffcf8;border-radius:20px;padding:28px 24px;width:100%;max-width:320px;text-align:center;box-shadow:0 8px 40px #7850281f;border:1px solid rgba(220,200,180,.5)}.modal h3{font-size:17px;font-weight:400;color:#5a3e28;margin-bottom:8px;letter-spacing:.05em}.modal p{font-size:13px;color:#9a7a60;font-weight:400;line-height:1.7;margin-bottom:18px}.modal-input{width:100%;padding:10px 13px;border:1px solid rgba(180,140,100,.2);border-radius:10px;font-size:16px;color:#5a3e28;background:#f5f0ebcc;font-family:inherit;font-weight:400;outline:none;margin-bottom:14px}.modal-input::placeholder{color:#c4a888}.modal-actions{display:flex;gap:8px}.btn-secondary{flex:1;padding:11px;background:#b48c6414;border:1px solid rgba(180,140,100,.18);border-radius:10px;font-size:13px;color:#9a7a60;cursor:pointer;font-family:inherit;font-weight:400}.btn-modal-primary{flex:1;padding:11px;background:linear-gradient(135deg,#c49a6c,#a8784a);border:none;border-radius:10px;font-size:13px;color:#fff;cursor:pointer;font-family:inherit;font-weight:400}@media (max-width: 560px){.app{padding:0}.screen{max-width:none;border:0;background:transparent}.room-header{align-items:flex-start;padding:14px 14px 12px}.room-header h2{font-size:15px}.stamp-area,.user-list,.room-log{padding-left:14px;padding-right:14px}.stamps,.wave-stamps{gap:6px}.stamp,.wave-stamp{flex:1 1 calc(50% - 6px);padding-left:8px;padding-right:8px;text-align:center}.user-list{display:block}.user-card{margin-bottom:8px;align-items:flex-start}.user-right{max-width:96px}.knock-btn,.status-badge{white-space:nowrap}.wave-screen,.history-screen{padding:16px 14px;max-width:none}.history-card-top{align-items:flex-start}.history-date{margin-left:4px;flex-shrink:0}.message{max-width:88%}.modal-overlay{padding:16px}}@media (min-width: 760px){.room-log{margin-top:auto}.bottom-nav{align-self:center;width:100%}.message{max-width:68%}}.settings-header{padding:14px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(180,140,100,.12);background:#fffcf899;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.settings-header-title{font-size:15px;color:#5a3e28;font-weight:400;letter-spacing:.05em}.settings-body{flex:1;overflow-y:auto;padding:20px 20px 40px;max-width:480px;width:100%;margin:0 auto}.settings-section-label{font-size:10px;color:#b89878;letter-spacing:.12em;margin:20px 0 10px;font-weight:400}.settings-section-label:first-child{margin-top:4px}.settings-profile-form{background:#fffcf8d9;border-radius:14px;border:1px solid rgba(220,200,180,.5);padding:16px;margin-bottom:4px}.settings-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 16px;background:#fffcf8d9;border-radius:12px;border:1px solid rgba(220,200,180,.5);font-size:13px;color:#5a3e28;cursor:pointer;font-family:inherit;font-weight:400;margin-bottom:8px;text-align:left;transition:opacity .15s}.settings-item:active{opacity:.65}.legal-body{flex:1;overflow-y:auto;padding:20px 20px 48px;max-width:480px;width:100%;margin:0 auto}.legal-section{margin-bottom:22px}.legal-section h3{font-size:12px;color:#7a5a40;font-weight:500;margin-bottom:7px;letter-spacing:.05em}.legal-section p{font-size:12px;color:#7a6050;line-height:1.85;font-weight:400}.legal-section ul{padding-left:18px}.legal-section ul li{font-size:12px;color:#7a6050;line-height:1.85;font-weight:400}.legal-meta{margin-top:32px;padding-top:16px;border-top:1px solid rgba(180,140,100,.12)}.legal-meta p{font-size:11px;color:#b89878;line-height:1.8;font-weight:400}.legal-loading{font-size:13px;color:#b89878;text-align:center;padding:40px 0}.license-item{padding:12px 14px;background:#fffcf8cc;border-radius:10px;border:1px solid rgba(220,200,180,.45);margin-bottom:8px}.license-name{font-size:12px;color:#5a3e28;font-weight:400;word-break:break-all}.license-meta{display:flex;align-items:center;gap:8px;margin-top:4px}.license-version{font-size:10px;color:#b89878;font-weight:400}.license-badge{font-size:10px;color:#a8784a;background:#c49a6c1f;border:1px solid rgba(180,140,100,.2);border-radius:5px;padding:1px 7px}.license-repo{display:block;margin-top:5px;font-size:10px;color:#9a7a60;word-break:break-all;text-decoration:none;opacity:.75}.license-repo:hover{opacity:1;text-decoration:underline}.contact-email{display:block;text-align:center;padding:16px;margin:4px 0;background:#fffcf8d9;border-radius:12px;border:1px solid rgba(220,200,180,.5);font-size:14px;color:#a8784a;text-decoration:none;letter-spacing:.03em}.contact-email:active{opacity:.7}.legal-footer{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:20px;padding-bottom:8px}.legal-footer-link{background:none;border:none;font-size:11px;color:#b89878;cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px;padding:4px}.legal-footer-link:active{opacity:.6}.legal-footer-sep{font-size:11px;color:#c4a888}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}:root{--kiseki-bg: #F2ECE2;--kiseki-card: #FFFFFF;--kiseki-ink: #5C5247;--kiseki-ink-soft: #8B8073;--kiseki-ink-faint: #B4A99A;--kiseki-line: #ECE3D4;--kiseki-accent: #BD8E60;--kiseki-accent-soft: #CDA679;--kiseki-accent-deep: #9E7547;--kiseki-sel: #EFE6D5;--kiseki-sel-soft: #F7EFE1;--kiseki-green-deep: #7C9263;--kiseki-amber: #C2924E;--kiseki-shiori: #FBF3E2;--kiseki-shiori-edge: #ECDFC2;--kiseki-round: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;--kiseki-hand: "Yomogi", cursive}.kiseki-screen{flex:1;overflow-y:auto;overflow-x:hidden;padding:18px 18px 28px;font-family:inherit;color:var(--kiseki-ink)}.kiseki-header{margin-bottom:16px}.kiseki-header h3{font-family:var(--kiseki-round);font-size:16px;font-weight:500;color:var(--kiseki-ink);margin:0}.kiseki-header p{font-size:12.5px;line-height:1.6;color:#9a7a60;margin:5px 0 0}.kiseki-card{background:var(--kiseki-card);border-radius:16px;padding:18px;box-shadow:0 1px 2px #785a320a;margin-bottom:14px}.kiseki-card-pad20{padding:20px}.kiseki-label{font-size:13px;color:var(--kiseki-ink-soft);letter-spacing:.04em;margin-bottom:12px}.kiseki-label-sub{font-size:11.5px;color:var(--kiseki-ink-faint);margin-top:3px;line-height:1.5}.kiseki-wave-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.kiseki-wave-bars{display:flex;align-items:flex-end;justify-content:flex-start;gap:7px;height:92px;min-width:max-content}.kiseki-wave-bar-btn{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:transparent;padding:0;flex:0 0 22px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;cursor:pointer}.kiseki-wave-bar-btn:focus-visible{outline:2px solid var(--kiseki-accent);outline-offset:2px;border-radius:4px}.kiseki-wave-bar-inner{width:22px;border-radius:5px;background:var(--kiseki-accent-soft);opacity:.78;transform-origin:bottom;transition:background .22s ease,opacity .22s ease,transform .22s ease}.kiseki-wave-bar-inner.selected{background:var(--kiseki-accent-deep);opacity:1;transform:scaleY(1.02)}.kiseki-wave-axis{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;color:var(--kiseki-ink-faint)}.kiseki-wave-axis-today{color:var(--kiseki-ink-soft);display:flex;align-items:center;gap:4px}.kiseki-wave-hint{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:11.5px;color:var(--kiseki-ink-faint)}.kiseki-timeline-wrap{position:relative;margin-top:4px}.kiseki-rail{position:absolute;left:8px;top:8px;bottom:16px;width:1.5px;background:var(--kiseki-line);pointer-events:none}.kiseki-days{display:flex;flex-direction:column;gap:14px}.kiseki-day{position:relative;border-radius:12px;margin:0 -10px;padding:11px 10px 13px;transition:background .45s ease;scroll-margin-top:76px}.kiseki-day.highlighted{background:var(--kiseki-sel-soft)}.kiseki-day-accent-bar{position:absolute;left:-10px;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--kiseki-accent);opacity:0;transition:opacity .45s ease}.kiseki-day.highlighted .kiseki-day-accent-bar{opacity:1}.kiseki-day-inner{position:relative;padding-left:28px}.kiseki-node{position:absolute;left:1px;top:4px;width:9px;height:9px;border-radius:50%;background:var(--kiseki-accent);box-shadow:0 0 0 3.5px var(--kiseki-card);transition:box-shadow .45s ease}.kiseki-day.highlighted .kiseki-node{box-shadow:0 0 0 3.5px var(--kiseki-sel-soft)}.kiseki-day-date{font-family:var(--kiseki-round);font-size:12.5px;color:var(--kiseki-ink-soft);margin-bottom:10px;letter-spacing:.02em}.kiseki-items{display:flex;flex-direction:column;gap:11px}.kiseki-stamp-item{display:inline-flex;align-items:center;gap:7px;color:var(--kiseki-accent-deep);font-size:13.5px}.kiseki-stamp-item span{color:var(--kiseki-ink)}.kiseki-word-item{margin:0;font-size:13.5px;line-height:1.65;color:var(--kiseki-ink)}.kiseki-word-card{position:relative;background:#fffdf8;border:1px solid #EEE5D8;border-radius:4px;padding:11px 14px 12px;box-shadow:1px 3px 9px #785a320f;overflow:hidden}.kiseki-word-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#b9c9ae}.kiseki-word-card-header{display:flex;align-items:center;gap:6px;margin-bottom:5px;color:#7c9263}.kiseki-word-card-label{font-size:10.5px;letter-spacing:.08em;color:#7c9263}.kiseki-word-card-text{margin:0;font-size:13.5px;line-height:1.6;color:var(--kiseki-ink)}.kiseki-shiori{position:relative;background:linear-gradient(177deg,#fff7e8,#fffdf8);border:1px solid var(--kiseki-shiori-edge);border-radius:4px;padding:11px 14px 12px;box-shadow:1px 3px 9px #785a3212}.kiseki-shiori-corner{position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 13px 13px 0;border-color:transparent #f3ead2 transparent transparent}.kiseki-shiori-header{display:flex;align-items:center;gap:6px;margin-bottom:5px;color:var(--kiseki-accent)}.kiseki-shiori-icon{width:13px;height:13px;flex-shrink:0}.kiseki-shiori-label{font-size:10.5px;letter-spacing:.08em;color:var(--kiseki-accent)}.kiseki-shiori-text{margin:0;font-size:13.5px;line-height:1.6;color:#6a5a45}.kiseki-milestone-card{position:relative;background:#fffdf8;border:1px solid #E7DFD5;border-radius:4px;padding:11px 14px 12px;box-shadow:1px 3px 9px #785a320f;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden}.kiseki-milestone-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#b8afc8}.kiseki-milestone-card.done{background:#f7f5f1;border-color:#e1d8cc}.kiseki-milestone-card-header{display:flex;align-items:center;gap:6px;margin-bottom:5px;color:#82779b}.kiseki-milestone-card-label{font-size:10.5px;letter-spacing:.08em;color:#82779b}.kiseki-milestone-card-text{margin:0;font-size:13.5px;line-height:1.6;color:var(--kiseki-ink)}.kiseki-milestone-card-text.done{text-decoration:line-through;text-decoration-color:#b9afa5;color:#968e86}.kiseki-milestone-card-expand{margin-top:10px;padding-top:10px;border-top:1px solid #D4D6EA}.kiseki-milestone-card-actions{display:flex;align-items:center;gap:9px;margin-top:8px}.kiseki-milestone-date-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;color:#88a;font-size:11px;cursor:pointer;font-family:inherit}.kiseki-milestone-date-btn:active{opacity:.65}.kiseki-milestone-date-input{font-size:11px;color:var(--kiseki-ink);border:none;border-bottom:1px solid #CDD0E8;background:transparent;padding:1px 2px;font-family:inherit;outline:none}.kiseki-pill-btn{display:inline-flex;align-items:center;padding:3.5px 11px;border-radius:999px;border:1px solid var(--kiseki-green-deep);color:var(--kiseki-green-deep);font-size:11.5px;white-space:nowrap;background:var(--kiseki-card);cursor:pointer;font-family:inherit;transition:opacity .15s}.kiseki-pill-btn:active{opacity:.65}.kiseki-pill-btn.amber{border-color:var(--kiseki-amber);color:var(--kiseki-amber)}.kiseki-milestone-quit{font-size:11.5px;color:var(--kiseki-ink-faint);text-decoration:underline;text-underline-offset:2px;background:none;border:none;cursor:pointer;font-family:inherit;padding:0;white-space:nowrap}.kiseki-milestone-quit:active{opacity:.65}.kiseki-no-match{font-size:12px;color:var(--kiseki-ink-faint);text-align:center;padding:12px 0}.kiseki-loading{font-size:13px;color:var(--kiseki-ink-faint);text-align:center;padding:40px 0}@media (max-width: 560px){.kiseki-screen{padding:14px 14px 24px}}:root{--koe-card: #fcf9f4;--koe-ink: #5b5249;--koe-ink-soft: #978c7c;--koe-ink-faint: #b6ab9b;--koe-gold: #a8824c;--koe-gold-deep: #93703f;--koe-gold-soft: #c9ad84;--koe-gold-tint: #ece0cd;--koe-line: #e6dccc;--koe-shadow: 0 6px 20px rgba(120,94,56,.07)}.koe-screen{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;min-height:0}.koe-intro{padding:18px 20px 8px;flex:0 0 auto}.koe-scroll{flex:1;overflow-y:auto;padding:4px 18px 100px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.koe-stones{display:flex;flex-direction:column;gap:15px;padding-bottom:20px}.koe-stone-row{display:flex}.koe-stone-row.left{justify-content:flex-start}.koe-stone-row.right{justify-content:flex-end}.koe-stone{width:82%}.koe-stone-body{font-size:13.5px;line-height:1.85;color:var(--koe-ink);white-space:pre-wrap;word-break:break-word}.koe-stone-footer{display:flex;align-items:center;gap:8px;margin-top:11px}.koe-stone-avatar{width:21px;height:21px;border-radius:6px;background:linear-gradient(135deg,#e8d4bc,#d4b898);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:400}.koe-stone-meta{font-size:10.5px;color:var(--koe-ink-faint);flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;line-height:1.35}.koe-stone-author{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.koe-stone-time{white-space:nowrap}.koe-delete{min-height:44px;padding:0 4px;border:0;background:transparent;color:var(--koe-ink-faint);font-size:11px;font-family:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;text-decoration:underline;text-underline-offset:3px}.koe-delete:disabled{opacity:.55;cursor:not-allowed}.koe-nudge{min-height:44px;padding:0 12px;border-radius:999px;border:1px solid var(--koe-line);background:transparent;color:var(--koe-ink-faint);font-size:12px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s,color .2s;letter-spacing:.04em;flex-shrink:0}.koe-nudge:disabled{opacity:.55;cursor:not-allowed}.koe-nudge.on{background:var(--koe-gold-tint);border-color:var(--koe-gold-soft);color:var(--koe-gold-deep)}.koe-fabwrap{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;justify-content:center;z-index:20;pointer-events:none}.koe-fab{min-height:44px;padding:11px 26px;background:linear-gradient(160deg,#b08a52,#9a7540);color:#fbf3e6;border:0;border-radius:999px;font-family:inherit;font-size:14px;letter-spacing:.08em;cursor:pointer;box-shadow:0 6px 16px #96703c38;white-space:nowrap;pointer-events:auto}.koe-fab:disabled{opacity:.55;cursor:not-allowed}.koe-end-text{text-align:center;font-size:10px;color:var(--koe-ink-faint);margin-top:4px}.koe-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#50321e59;z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:koe-fade-in .25s ease}.koe-overlay.center{display:flex;align-items:center;justify-content:center;padding:24px}@keyframes koe-fade-in{0%{opacity:0}to{opacity:1}}.koe-sheet{position:absolute;bottom:0;left:0;right:0;background:var(--koe-card);border-radius:24px 24px 0 0;padding:14px 20px max(28px,env(safe-area-inset-bottom));box-shadow:0 -4px 24px #7850281f;animation:koe-sheet-up .3s cubic-bezier(.2,.7,.3,1);max-height:min(90vh,calc(100% - 12px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@keyframes koe-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.koe-grabber{width:38px;height:4px;border-radius:2px;background:var(--koe-line);margin:0 auto 16px}.koe-ta{width:100%;box-sizing:border-box;min-height:90px;padding:12px 14px;border:1px solid var(--koe-line);border-radius:12px;background:#fffcf8e6;font-family:inherit;font-size:15px;color:var(--koe-ink);line-height:1.7;resize:none;outline:none;transition:border-color .2s}.koe-ta:focus{border-color:var(--koe-gold-soft)}.koe-ta::placeholder{color:var(--koe-ink-faint)}.koe-compose-error{margin-top:8px;padding:8px 10px;border:1px solid rgba(196,122,108,.24);border-radius:10px;background:#c47a6c14;color:#a85f52;font-size:11.5px;line-height:1.6}.koe-seg{display:flex;border:1px solid var(--koe-line);border-radius:999px;overflow:hidden}.koe-seg button{flex:0 0 auto;min-width:92px;padding:6px 14px;border:0;background:transparent;font-size:12px;font-family:inherit;color:var(--koe-ink-soft);cursor:pointer;transition:background .18s,color .18s;min-height:44px;white-space:nowrap}.koe-seg button.on{background:var(--koe-gold);color:#fff}.koe-toast{position:fixed;left:50%;bottom:calc(128px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:21;width:min(320px,calc(100vw - 32px));box-sizing:border-box;padding:10px 14px;border:1px solid rgba(196,122,108,.18);border-radius:14px;background:#fcf9f4f5;box-shadow:0 8px 24px #78502824;color:#a85f52;font-size:12px;line-height:1.6;text-align:center;pointer-events:none}.koe-modal{background:var(--koe-card);border-radius:22px;padding:28px 24px;width:100%;max-width:320px;text-align:center;box-shadow:0 8px 40px #78502824;border:1px solid var(--koe-line);animation:koe-modal-pop .28s ease}@keyframes koe-modal-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.koe-overlay,.koe-sheet,.koe-modal,.koe-nudge,.koe-stone,.koe-stone-inner{animation:none!important;transition:none!important}}@media (max-width: 560px){.koe-scroll,.koe-intro{padding-left:14px;padding-right:14px}}
