:root{color:#18202f;background:#f5f1e6;font-family:Arial,Noto Sans TC,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit}.page{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.eyebrow{margin:0 0 4px;color:#7a4d1e;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:32px}.button{border:0;border-radius:8px;background:#2563eb;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;font-weight:700;text-decoration:none}.button.secondary{background:#e2e8f0;color:#1e293b}.button.danger{background:#dc2626}.notice{border-radius:8px;background:#fff7d6;border:1px solid #e4c667;margin-bottom:18px;padding:12px 14px}.notice.error{background:#fee2e2;border-color:#fca5a5}.battle-shell{background:#111827;border-radius:8px;min-height:580px;overflow:hidden;position:relative}.battle-shell:fullscreen{background:#111827;border-radius:0;height:100vh;width:100vw}.fullscreen-button{background:#0f172ad1;border:1px solid rgba(255,255,255,.42);border-radius:8px;color:#fff;cursor:pointer;font:inherit;font-weight:700;min-height:34px;padding:0 12px;position:absolute;right:12px;top:12px;z-index:5}.admin-layout{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:20px;align-items:start}.change-log-layout{display:grid;grid-template-columns:minmax(340px,520px) 1fr;gap:20px;align-items:start}.scene-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px}.scene-color-note{align-items:center;display:flex;flex-wrap:wrap;gap:8px;grid-column:1 / -1}.chroma-swatch{background:#0f0;border:1px solid #15803d;border-radius:4px;display:inline-block;height:22px;width:42px}.scene-card{display:grid;gap:12px;padding:16px}.scene-preview{align-items:center;background:#eef2ff;border-radius:8px;display:flex;height:180px;justify-content:center;overflow:hidden;color:#64748b}.scene-preview img{height:100%;object-fit:contain;width:100%}.lobby{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;margin-bottom:18px;padding:16px}.lobby>div:first-child,.room-list{grid-column:1 / -1}.room-list{display:grid;gap:10px}.room-row{align-items:center;background:#f8fafc;border:1px solid #d8e0ea;border-radius:8px;display:flex;justify-content:space-between;gap:12px;padding:10px 12px}.room-row p{color:#64748b;margin-bottom:0}.panel,.character-card{background:#fff;border:1px solid #ded8ca;border-radius:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px}.form-grid h2,.form-grid .wide,.form-actions{grid-column:1 / -1}label{display:grid;gap:6px;font-size:14px;font-weight:700}input,select,textarea{border:1px solid #cbd5e1;border-radius:8px;font:inherit;min-height:38px;padding:8px 10px}textarea{min-height:84px;resize:vertical}.form-actions,.card-actions{display:flex;gap:10px;flex-wrap:wrap}.character-list,.version-list{display:grid;gap:12px}.version-card{background:#fff;border:1px solid #ded8ca;border-radius:8px;padding:14px}.version-summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;gap:12px}.version-summary h3,.version-summary p{margin-bottom:0}.version-card-body{display:grid;gap:10px;padding-top:14px}.version-card pre{background:#0f172a;border-radius:8px;color:#e2e8f0;overflow:auto;padding:12px;white-space:pre-wrap}.character-card{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:14px}.team-section{display:grid;gap:12px}.team-section h2{margin-bottom:0}.portrait-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.portrait{align-items:center;background:#eef2ff;border-radius:8px;display:flex;height:72px;justify-content:center;overflow:hidden;color:#64748b;font-size:12px;text-align:center}.portrait img{height:100%;object-fit:contain;width:100%}.helper{color:#64748b;font-size:13px;margin-bottom:0}@media(max-width:860px){.admin-layout,.change-log-layout,.scene-settings-grid{grid-template-columns:1fr}.lobby{grid-template-columns:1fr 1fr}.toolbar{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.form-grid,.character-card,.lobby{grid-template-columns:1fr}.room-row{align-items:flex-start;flex-direction:column}}
