:root{--bg-tertiary:#EBEBEA;--bg-secondary:#F2F2F0;--bg-primary:#F9F9F8;--text-normal:#2C302E;--text-muted:#939695;--brand:#5865F2;--brand-hover:#4752C4;--success:#23A55A;--item-hover:rgba(44,48,46,0.04);--divider:rgba(44,48,46,0.06);--cubic:cubic-bezier(0.2,0,0,1);--md-bg:rgba(0,0,0,0.06);--m3-sys-light-primary:#6750A4;--m3-sys-light-on-primary:#FFFFFF;--m3-sys-light-primary-container:#EADDFF;--m3-sys-light-on-primary-container:#21005D;--m3-sys-light-secondary-container:#E8DEF8;--m3-sys-light-on-secondary-container:#1D192B;--m3-sys-light-surface:#FEF7FF;--m3-sys-light-surface-variant:#E7E0EC;--m3-sys-light-on-surface-variant:#49454F;--m3-elevation-shadow:0px 8px 24px rgba(0,0,0,0.12),0px 4px 8px rgba(0,0,0,0.08);}
body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-normal);height:100vh;overflow:hidden;display:flex;}
.app-container{display:flex;width:100%;height:100%;}
.server-list{width:72px;background-color:var(--bg-tertiary);display:flex;flex-direction:column;align-items:center;padding:12px 0;flex-shrink:0;overflow-y:auto;}
.server-item{width:48px;height:48px;border-radius:24px;background-color:var(--bg-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s var(--cubic);position:relative;color:var(--text-normal);font-weight:600;font-size:16px;}
.server-item img{width:100%;height:100%;border-radius:24px;transition:all 0.2s var(--cubic);object-fit:cover;}
.server-item:hover, .server-item.active{border-radius:16px;background-color:var(--brand);color:white;}
.server-item:hover img, .server-item.active img{border-radius:16px;}
.server-item.unread::before{content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background-color:var(--text-normal);transition:height 0.2s var(--cubic);}
.server-item:hover::before{height:20px;border-radius:4px;}
.home-btn{color:var(--text-normal);}
.home-btn:hover{background-color:var(--brand);color:white;}
.divider{width:32px;height:2px;background-color:var(--divider);margin:8px 0;border-radius:1px;}
.sidebar{width:240px;background-color:var(--bg-secondary);display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--divider);}
.sidebar-header{height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--divider);box-sizing:border-box;box-shadow:0 1px 2px rgba(0,0,0,0.02);font-weight:600;}
.channel-list{flex:1;overflow-y:auto;padding:12px 0;}
.channel-list.empty-sidebar{display:flex;align-items:center;justify-content:center;}
.category-name{padding:18px 16px 4px 16px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;display:flex;align-items:center;cursor:default;}
.category-name:hover{color:var(--text-normal);}
.channel-item{margin:2px 8px;padding:6px 8px;border-radius:4px;display:flex;align-items:center;cursor:pointer;color:var(--text-muted);font-weight:500;transition:background-color 0.1s var(--cubic),color 0.1s var(--cubic);}
.channel-item:hover{background-color:var(--item-hover);color:var(--text-normal);}
.channel-item.active{background-color:var(--item-hover);color:var(--text-normal);}
.channel-item.unread{color:var(--text-normal);font-weight:600;}
.channel-icon-wrapper{margin-right:6px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;position:relative;}
.channel-item.unread .channel-icon-wrapper{color:var(--text-normal);}
.user-panel{height:52px;background-color:var(--bg-tertiary);padding:0 8px;display:flex;align-items:center;flex-shrink:0;cursor:pointer;}
.user-panel:hover{background-color:var(--item-hover);}
.user-avatar{width:32px;height:32px;border-radius:50%;background-color:var(--brand);margin-right:8px;position:relative;display:flex;align-items:center;justify-content:center;}
.user-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.user-info{flex:1;min-width:0;}
.user-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-status{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-panel-actions{display:flex;gap:4px;}
.action-icon-footer{width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;transition:background-color 0.2s var(--cubic),color 0.2s var(--cubic);}
.action-icon-footer:hover{background-color:var(--item-hover);color:var(--text-normal);}
.main-content{flex:1;display:flex;flex-direction:column;background-color:var(--bg-primary);position:relative;overflow:hidden;}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:20px;animation:fadeIn 0.3s var(--cubic) forwards;}
.empty-title{font-size:24px;font-weight:700;margin-bottom:8px;}
.empty-subtitle{font-size:16px;color:var(--text-muted);}
.chat-container{display:flex;flex-direction:column;height:100%;animation:fadeIn 0.3s var(--cubic) forwards;}
.chat-header{height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--divider);box-shadow:0 1px 2px rgba(0,0,0,0.02);background:var(--bg-primary);z-index:10;flex-shrink:0;}
.chat-header-title{font-weight:600;font-size:16px;display:flex;align-items:center;gap:8px;}
.chat-header-search{position:relative;display:flex;align-items:center;}
.chat-header-search input{background-color:var(--bg-secondary);border:none;padding:6px 16px;border-radius:16px;outline:none;color:var(--text-normal);font-size:14px;width:180px;transition:width 0.3s var(--cubic),background-color 0.2s var(--cubic);}
.chat-header-search input:focus{width:260px;background-color:var(--item-hover);}
.chat-history{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;position:relative;align-items:center;}
.message-item{position:relative;display:flex;gap:16px;padding:4px 16px;width:100%;max-width:1024px;box-sizing:border-box;border-radius:8px;transition:background-color 0.2s;}
.message-item:hover{background-color:rgba(0,0,0,0.02);}
.msg-avatar{width:40px;height:40px;border-radius:50%;background-color:var(--brand);flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.msg-avatar img{width:100%;height:100%;object-fit:cover;}
.msg-content{flex:1;min-width:0;}
.msg-header{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;}
.msg-author{font-weight:600;font-size:15px;color:var(--text-normal);}
.msg-time{font-size:12px;color:var(--text-muted);}
.msg-text{font-size:15px;line-height:1.5;color:var(--text-normal);white-space:pre-wrap;word-break:break-word;}
.msg-text.jumbo-emoji{font-size:48px;line-height:1;}
.custom-emoji{width:1.5em;height:1.5em;vertical-align:middle;}
.embed-card{margin-top:8px;border-left:4px solid var(--divider);background-color:var(--bg-secondary);border-radius:4px;padding:12px;max-width:520px;}
.embed-author{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:600;}
.embed-author img{width:24px;height:24px;border-radius:50%;}
.embed-title{font-weight:700;margin-bottom:8px;color:var(--brand);text-decoration:none;display:inline-block;}
.embed-title:hover{text-decoration:underline;}
.embed-description{font-size:14px;line-height:1.5;margin-bottom:8px;white-space:pre-wrap;}
.embed-fields{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;}
.embed-field{flex:1 1 100%;}
.embed-field.inline{flex:1 1 30%;min-width:150px;}
.embed-field-name{font-weight:600;margin-bottom:4px;font-size:14px;}
.embed-field-value{font-size:14px;color:var(--text-muted);}
.embed-footer{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--text-muted);}
.embed-footer img{width:20px;height:20px;border-radius:50%;}
.discord-invite-embed{margin-top:8px;border:1px solid var(--divider);background-color:var(--bg-secondary);border-radius:4px;padding:16px;max-width:400px;}
.discord-msg-embed{margin-top:8px;border:1px solid var(--divider);background-color:var(--bg-secondary);border-radius:4px;padding:16px;max-width:400px;}
.invite-header{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin-bottom:12px;}
.invite-content{display:flex;align-items:center;justify-content:space-between;}
.invite-title{font-weight:600;}
.msg-components{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.msg-btn{padding:8px 16px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;border:none;display:flex;align-items:center;gap:8px;transition:background-color 0.2s;}
.msg-btn.primary{background-color:var(--brand);color:white;}
.msg-btn.primary:hover{background-color:var(--brand-hover);}
.msg-btn.secondary{background-color:var(--text-muted);color:white;}
.msg-btn.success{background-color:var(--success);color:white;}
.msg-btn.danger{background-color:#DA373C;color:white;}
.msg-btn.link{background-color:transparent;color:var(--brand);text-decoration:none;padding:8px 0;}
.msg-btn.link:hover{text-decoration:underline;}
.reactions-container{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
.reaction-pill{display:inline-flex;align-items:center;gap:6px;background-color:var(--bg-secondary);border:1px solid transparent;border-radius:8px;padding:4px 6px;cursor:pointer;transition:all 0.1s;}
.reaction-pill:hover{background-color:var(--item-hover);border-color:var(--divider);}
.reaction-pill.me{background-color:rgba(88,101,242,0.15);border-color:var(--brand);}
.reaction-emoji-img{width:16px;height:16px;}
.reaction-emoji-txt{font-size:16px;line-height:1;}
.reaction-count{font-size:12px;font-weight:600;color:var(--text-muted);}
.reaction-pill.me .reaction-count{color:var(--brand);}
.msg-actions{position:absolute;right:16px;top:-8px;display:none;background-color:var(--bg-primary);border:1px solid var(--divider);border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,0.1);overflow:hidden;}
.message-item:hover .msg-actions{display:flex;animation:popIn 0.2s var(--cubic) forwards;}
.action-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:background-color 0.2s,color 0.2s;}
.action-icon:hover{background-color:var(--item-hover);color:var(--text-normal);}
.action-icon.danger:hover{background-color:#DA373C;color:white;}
.action-icon.react:hover{color:var(--brand);}
.chat-input-wrapper{padding:0 16px 24px 16px;flex-shrink:0;display:flex;justify-content:center;}
.chat-input-inner{background-color:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;padding:0 16px;position:relative;width:100%;max-width:1024px;}
.chat-input-inner input{flex:1;background:transparent;border:none;padding:14px 0;outline:none;color:var(--text-normal);font-size:15px;}
.chat-send-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);border:none;background:transparent;transition:color 0.2s;}
.chat-send-btn:hover{color:var(--brand);}
.md-bold{font-weight:bold;}
.md-italic{font-style:italic;}
.md-strikethrough{text-decoration:line-through;}
.md-code-inline{background-color:var(--md-bg);padding:2px 4px;border-radius:3px;font-family:monospace;font-size:0.9em;}
.md-code-block{display:block;background-color:var(--md-bg);padding:8px;border-radius:4px;font-family:monospace;font-size:0.9em;white-space:pre;overflow-x:auto;margin:4px 0;}
.md-spoiler{background-color:var(--text-normal);color:transparent;border-radius:4px;cursor:pointer;transition:background-color 0.2s,color 0.2s;padding:0 2px;}
.md-spoiler.revealed{background-color:rgba(0,0,0,0.1);color:inherit;}
.user-avatar-small{width:24px;height:24px;border-radius:50%;background-color:var(--brand);margin-right:8px;display:flex;align-items:center;justify-content:center;}
.btn{padding:8px 16px;border-radius:4px;font-weight:500;cursor:pointer;border:none;transition:background-color 0.2s;font-size:14px;}
.primary-btn{background-color:var(--brand);color:white;}
.primary-btn:hover{background-color:var(--brand-hover);}
.secondary-btn{background-color:var(--text-muted);color:white;}
.popover{position:absolute;background-color:var(--bg-primary);border:1px solid var(--divider);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,0.12);padding:16px;z-index:100;display:none;min-width:250px;}
.popover.active{display:block;animation:popIn 0.3s var(--cubic) forwards;}
.popover-title{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin:0 0 12px 0;}
.bot-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;max-height:200px;overflow-y:auto;}
.bot-item{display:flex;align-items:center;justify-content:space-between;padding:8px;background-color:var(--bg-secondary);border-radius:4px;}
.bot-info{font-weight:500;}
.bot-actions{display:flex;gap:4px;}
.bot-actions .btn{padding:4px 8px;font-size:12px;}
.input-group{display:flex;gap:8px;}
.input-group input{flex:1;padding:8px;border:1px solid var(--divider);border-radius:4px;outline:none;background:var(--bg-secondary);color:var(--text-normal);}
#bot-popover{bottom:64px;left:72px;transform-origin:bottom left;}
#status-popover{bottom:64px;left:72px;transform-origin:bottom left;}
#lang-popover{bottom:64px;left:72px;transform-origin:bottom left;}
#emoji-picker{z-index:200;display:none;transform-origin:top left;}
#emoji-picker.active{display:flex;animation:popIn 0.2s var(--cubic) forwards;}
.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:4px;padding:8px;}
.emoji-item{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;font-size:24px;}
.emoji-item:hover{background-color:var(--item-hover);}
.emoji-item img{width:24px;height:24px;object-fit:contain;}
.action-icon-header{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:color 0.2s;}
.action-icon-header:hover{color:var(--text-normal);}
.full-settings-modal{position:absolute;top:0;left:0;width:100vw;height:100vh;background-color:var(--bg-primary);z-index:1000;display:none;flex-direction:row;}
.full-settings-modal.active{display:flex;animation:slideUpModal 0.4s var(--cubic) forwards;}
.full-settings-sidebar{width:240px;background-color:var(--bg-secondary);padding:60px 10px 20px 10px;display:flex;flex-direction:column;overflow-y:auto;}
.settings-tab{padding:8px 10px;border-radius:4px;cursor:pointer;color:var(--text-muted);font-weight:500;margin-bottom:2px;}
.settings-tab:hover{background-color:var(--item-hover);color:var(--text-normal);}
.settings-tab.active{background-color:var(--item-hover);color:var(--text-normal);font-weight:600;}
.full-settings-content{flex:1;padding:60px 40px;position:relative;overflow-y:auto;}
.settings-close-btn{position:absolute;top:40px;right:40px;display:flex;flex-direction:column;align-items:center;cursor:pointer;color:var(--text-muted);transition:color 0.2s;}
.settings-close-btn:hover{color:var(--text-normal);}
.settings-close-btn svg{width:36px;height:36px;}
.settings-close-btn span{font-size:12px;font-weight:600;margin-top:4px;}
.settings-pane{display:none;animation:fadeIn 0.3s var(--cubic) forwards;}
.settings-pane.active{display:block;}
.settings-title{font-size:20px;font-weight:700;margin:0 0 20px 0;}
.context-menu{position:absolute;background-color:var(--bg-primary);border:1px solid var(--divider);border-radius:8px;box-shadow:0 8px 16px rgba(0,0,0,0.1);padding:8px 0;z-index:500;min-width:180px;}
.context-menu-item{padding:8px 16px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-normal);transition:background-color 0.2s var(--cubic);margin-bottom:2px;}
.context-menu-item:hover{background-color:var(--brand);color:white;}
.context-menu-item.danger:hover{background-color:#DA373C;color:white;}
@keyframes popIn{from{opacity:0;transform:scale(0.95) translateY(10px);}to{opacity:1;transform:scale(1) translateY(0);}}
@keyframes slideUpModal{from{opacity:0;transform:translateY(40px) scale(0.98);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.mention{background-color:rgba(88,101,242,0.3);color:#C9CDFB;padding:0 4px;border-radius:4px;font-weight:500;cursor:pointer;}
.mention:hover{background-color:rgba(88,101,242,0.5);}
.mention-autocomplete{position:absolute;bottom:calc(100% + 8px);left:24px;background-color:var(--bg-secondary);border:1px solid var(--divider);border-radius:8px;max-height:200px;width:280px;overflow-y:auto;z-index:300;box-shadow:0 4px 12px rgba(0,0,0,0.1);display:none;}
.mention-autocomplete.active{display:block;animation:popIn 0.2s var(--cubic) forwards;transform-origin:bottom left;}
.mention-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer;gap:8px;}
.mention-item:hover,.mention-item.selected{background-color:var(--item-hover);}
.mention-avatar{width:24px;height:24px;border-radius:50%;}
.mention-name{font-weight:600;font-size:14px;color:var(--text-normal);}
.mention-username{font-size:12px;color:var(--text-muted);}
.hidden{display:none !important;}
@media screen and (max-width: 768px) {
.app-container,.popover,.full-settings-modal,.context-menu{display:none !important;}
body::before{content:"スマートフォン版は現在開発中です。\00000a PC環境からアクセスしてください。";white-space:pre-wrap;display:flex;align-items:center;justify-content:center;height:100vh;width:100vw;font-size:16px;font-weight:bold;line-height:1.6;color:var(--text-normal);text-align:center;padding:20px;box-sizing:border-box;background-color:var(--bg-primary);}
}
.policy-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.6);z-index:9999;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);animation:fadeIn 0.3s var(--cubic) forwards;}
.policy-modal-card{background-color:var(--bg-primary);border-radius:28px;padding:32px;width:100%;max-width:480px;box-shadow:var(--m3-elevation-shadow);display:flex;flex-direction:column;gap:20px;animation:popIn 0.3s var(--cubic) forwards;box-sizing:border-box;}
.policy-modal-title{font-size:24px;font-weight:700;margin:0;color:var(--text-normal);}
.policy-modal-text{font-size:14px;color:var(--text-muted);line-height:1.6;margin:0;}
.policy-modal-links{display:flex;gap:16px;}
.policy-link{color:var(--brand);text-decoration:none;font-weight:600;font-size:15px;padding:8px 16px;background-color:var(--bg-secondary);border-radius:12px;transition:background-color 0.2s;}
.policy-link:hover{background-color:var(--item-hover);text-decoration:underline;}
.policy-checkbox-container{display:flex;align-items:flex-start;gap:10px;cursor:pointer;user-select:none;margin-top:8px;}
.policy-checkbox-container input{margin-top:4px;width:18px;height:18px;accent-color:var(--brand);cursor:pointer;}
.policy-checkbox-label{font-size:13px;color:var(--text-normal);line-height:1.5;}
#policy-agree-btn{width:100%;padding:12px;border-radius:16px;font-size:15px;font-weight:600;}
#policy-agree-btn.disabled{background-color:var(--text-muted);opacity:0.5;cursor:not-allowed;}
