:root{--bg: #f5f1e8;--panel: #fbf8f2;--line: #e4ddd0;--ink: #2e2a24;--muted: #6f665b;--accent: #7aa2f7;--accent2: #3f7fef;--good: #3f8f69;--danger: #c95f6d;--bubble: #f0ece6;--panel-soft: rgba(255,255,255,.62);--font-size: 15px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;width:100%}body{font-family:Inter,Avenir Next,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}#root{display:flex;justify-content:center;align-items:flex-start;min-height:100%}.app-shell{width:1024px;height:760px;margin:16px auto;border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--panel);overflow:auto;display:grid;grid-template-rows:auto auto 1fr;gap:10px;font-size:var(--font-size);box-sizing:border-box}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fffefc}.brand{display:flex;align-items:baseline;gap:12px}.logoMark{padding:6px 10px;background:linear-gradient(120deg,var(--accent),var(--accent2));color:#04122b;border-radius:999px;font-weight:700}.brand h1{margin:0;font-size:18px}.userBar{display:flex;gap:10px;align-items:center}.nav{display:flex;gap:8px}button,input,textarea,select{font-size:inherit;font-family:inherit}.nav button,button{border:1px solid var(--line);background:var(--panel-soft);color:var(--ink);padding:8px 12px;border-radius:10px;cursor:pointer}.nav button.active,button.active{background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 40%,transparent),color-mix(in srgb,var(--accent2) 35%,transparent));border-color:var(--accent)}button.danger{border-color:var(--danger);color:var(--danger)}button.ghost{background:#fff}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;overflow:hidden;position:relative;min-height:0}.panel.register,.content{min-height:0;overflow:auto;width:100%}.auth-wrap{height:calc(100% - 80px)}.sectionHead,.stack,.panelInner,.postCard,.comment,.bubble,.notice,.itemRow,.list{gap:8px}.sectionHead{display:flex;justify-content:space-between;align-items:center}.split.two{display:grid;grid-template-columns:360px 1fr;gap:10px;height:calc(100% - 60px)}.postList{overflow:auto;max-height:100%}.panelInner{background:var(--panel-soft);border:1px solid var(--line);border-radius:10px;padding:10px}.postCard,.comment,.bubble{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}.postCard.active{border-color:var(--accent);box-shadow:0 2px 12px #3f7fef40}.metaRow{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.commentList{max-height:290px;overflow:auto}.postBody{white-space:pre-wrap;line-height:1.5}.commentHead{display:flex;justify-content:space-between}.roomList{min-height:280px;overflow:auto;display:grid;gap:6px}.roomItem{text-align:left;background:#fff}.roomItem.active{border-color:var(--accent)}.chatWindow{max-height:260px;overflow:auto;display:grid;gap:6px}.bubble{margin:0;position:relative}.bubble span{margin-left:8px;color:var(--muted);font-size:12px}.fab{position:absolute;right:14px;bottom:14px;width:42px;height:42px;border-radius:999px;border:none;color:#fff;background:linear-gradient(140deg,var(--accent),var(--accent2));font-size:24px;line-height:1}.composer{width:380px;position:absolute;right:14px;bottom:64px;background:#fff;padding:10px;border-radius:10px;border:1px solid var(--line)}.stack{display:grid;gap:8px}.inline{display:flex;gap:8px;flex-wrap:wrap}label{display:grid;gap:5px}input,textarea,select{width:100%;border-radius:8px;border:1px solid var(--line);background:#fff;padding:8px}textarea{min-height:90px;resize:vertical}.notice{padding:8px 10px;border-radius:8px}.notice.error{background:#ffe8ef;color:#6f182f;border:1px solid #ffc3d4}.notice.success{background:#e7f7ee;color:#1d5f3e;border:1px solid #a6ddb0}.floatingNotice{max-width:1024px;margin:10px auto 0}.muted{color:var(--muted)}.list.compact{display:grid;gap:6px}.itemRow{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:#fff}code{background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 8px;display:inline-block;margin:4px 6px 4px 0}
