:root{--bg:#14121a;--bg-secondary:#1d1a26;--text:#efeaf6;--hint:#9b93ad;--accent:#8b5cf6;--accent-text:#fff;--card:#211d2d;--border:#322c42}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;max-width:720px;height:100dvh;margin:0 auto;display:flex}.header{border-bottom:1px solid var(--border);background:var(--bg-secondary);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.header-left{align-items:center;gap:10px;display:flex}.logo{font-size:28px}.title{font-size:16px;font-weight:700}.subtitle{color:var(--hint);font-size:12px}.auth-error{color:#f59e0b;text-align:right;max-width:40%;font-size:11px}.tabs{background:var(--bg-secondary);gap:4px;padding:8px 12px 0;display:flex}.tab{color:var(--hint);cursor:pointer;background:0 0;border:none;border-radius:10px 10px 0 0;flex:1;padding:10px;font-size:14px;font-weight:600}.tab-active{background:var(--bg);color:var(--text)}.tab-bell{border:1px solid var(--border);background:var(--bg);width:34px;height:34px;color:var(--hint);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;margin-left:auto;display:flex;position:relative}.tab-bell-active{color:var(--accent);border-color:var(--accent)}.tab-bell-badge{color:#fff;text-align:center;background:#ef4444;border-radius:9px;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:700;line-height:17px;position:absolute;top:-5px;right:-5px}.content{flex-direction:column;flex:1;min-height:0;display:flex}.empty{text-align:center;color:var(--hint);padding:32px 16px}.pane-hidden{display:none!important}.sys-divider{color:var(--hint);align-items:center;gap:8px;font-size:12px;display:flex}.sys-divider:before,.sys-divider:after{content:"";border-top:1px dashed var(--border);flex:1}.sys-divider span{white-space:nowrap}.notifs{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow-y:auto}.notif-title{color:var(--hint);padding:2px 4px 0;font-size:13px;font-weight:700}.notif{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px 14px}.notif-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.notif-chip{letter-spacing:.4px;color:#f59e0b;background:#f59e0b14;border:1px solid #f59e0b73;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.notif-time{color:var(--hint);margin-left:auto;font-size:11px}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-list{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.msg{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:82%;padding:10px 14px;font-size:14px;line-height:1.45}.msg-master{background:var(--card);border-bottom-left-radius:4px;align-self:flex-start}.msg-player.msg-own{background:var(--accent);color:var(--accent-text);border-bottom-right-radius:4px;align-self:flex-end}.msg-player.msg-foreign{background:var(--card);border:1px solid #8b5cf68c;border-bottom-left-radius:4px;align-self:flex-start}.msg-system{color:#f59e0b;background:0 0;align-self:center;font-size:12px}.msg-handover{max-width:92%;color:var(--text);text-align:center;letter-spacing:.2px;background:#8b5cf61f;border:1px solid #8b5cf68c;border-radius:999px;align-self:center;padding:8px 20px;font-size:13px;font-weight:600}.msg-author{opacity:.7;margin-bottom:2px;font-size:11px}.msg-own .msg-author{text-align:right}.md{white-space:normal;font-size:14px;line-height:1.5;overflow-x:auto}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{white-space:normal;margin:6px 0}.md h1,.md h2,.md h3,.md h4{margin:12px 0 6px;font-size:15px}.md ul,.md ol{margin:6px 0;padding-left:20px}.md li{margin:2px 0}.md table{border-collapse:collapse;max-width:100%;margin:8px 0;font-size:13px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);text-align:left;padding:5px 10px}.md th{background:var(--bg-secondary)}.md code{background:var(--bg-secondary);border-radius:4px;padding:1px 5px;font-size:13px}.md pre{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;max-height:40vh;margin:8px 0;padding:10px 12px;overflow:auto}.md pre code{background:0 0;padding:0}.md blockquote{border-left:3px solid var(--border);color:var(--hint);margin:8px 0;padding:2px 12px}.md a{color:#a78bfa}.md hr{border:none;border-top:1px solid var(--border);margin:10px 0}.msg-typing{color:var(--hint);font-style:italic}.chat-input{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-secondary);gap:8px;display:flex}.chat-input input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;outline:none;flex:1;padding:12px 16px;font-size:14px}.chat-input input:focus{border-color:var(--accent)}.send{background:var(--accent);width:44px;color:var(--accent-text);cursor:pointer;border:none;border-radius:12px;font-size:16px}.send:disabled{opacity:.4}.turn-btn{border:1px solid var(--accent);background:var(--bg);color:var(--accent);white-space:nowrap;cursor:pointer;border-radius:12px;padding:12px 14px;font-size:13px;font-weight:600}.turn-btn:disabled{opacity:.4;cursor:default}.party{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.party-meta{color:var(--hint);text-align:center;font-size:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex}.card-head{justify-content:space-between;align-items:flex-start;display:flex}.card-name{font-size:16px;font-weight:700}.card-sub{color:var(--hint);font-size:12px}.card-ac{color:var(--accent);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:700}.hp{align-items:center;gap:10px;display:flex}.hp-bar{background:var(--bg);border-radius:4px;flex:1;height:8px;overflow:hidden}.hp-fill{background:linear-gradient(90deg,#ef4444,#f97316);border-radius:4px;height:100%;transition:width .3s}.hp-num{text-align:right;min-width:64px;font-size:12px;font-weight:600}.abilities{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.ability{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:10px;padding:8px 4px}.ability-label{color:var(--hint);font-size:10px}.ability-val{font-size:15px;font-weight:700}.ability-mod{color:var(--hint);font-size:10px;font-weight:500;display:block}.card-foot{color:var(--hint);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;max-width:420px;height:100dvh;margin:0 auto;padding:24px;display:flex}.gate-logo{font-size:56px}.gate-title{font-size:20px;font-weight:700}.gate-text{color:var(--hint);max-width:300px;font-size:14px;line-height:1.5}.gate-btn{background:var(--accent);color:var(--accent-text);cursor:pointer;border:none;border-radius:12px;margin-top:8px;padding:12px 28px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.gate-hint{color:var(--hint);opacity:.7;max-width:300px;font-size:11px;line-height:1.5}.gate-sep{color:var(--hint);margin-top:6px;font-size:12px}.gate-form{gap:8px;width:100%;max-width:320px;display:flex}.gate-form input{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);border-radius:12px;outline:none;flex:1;padding:12px 14px;font-size:14px}.gate-form input:focus{border-color:var(--accent)}.gate-btn-sm{white-space:nowrap;margin-top:0;padding:12px 16px;font-size:13px}.gate-link{color:var(--hint);cursor:pointer;background:0 0;border:none;font-size:12px;text-decoration:underline}.gate-error{color:#f59e0b;max-width:320px;font-size:12px;line-height:1.5}.footer{text-align:center;color:var(--hint);border-top:1px solid var(--border);background:var(--bg-secondary);padding:6px;font-size:10px}
