: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)}.content{flex-direction:column;flex:1;min-height:0;display:flex}.empty{text-align:center;color:var(--hint);padding:32px 16px}.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{background:var(--accent);color:var(--accent-text);border-bottom-right-radius:4px;align-self:flex-end}.msg-system{color:#f59e0b;background:0 0;align-self:center;font-size:12px}.msg-author{opacity:.7;margin-bottom:2px;font-size:11px}.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}.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}.footer{text-align:center;color:var(--hint);border-top:1px solid var(--border);background:var(--bg-secondary);padding:6px;font-size:10px}
