:root { --bg: #101418; --panel: #1a2027; --line: #2c343e; --ink: #e8e6e1; --muted: #9aa3ad; --acc: #c9a24a; --bad: #e0705f; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.5 Georgia, "Times New Roman", serif; }
main { max-width: 720px; margin: 0 auto; padding: 24px 16px 60px; }
h1 { font-size: 1.7rem; margin: 0 0 4px; color: var(--acc); font-weight: normal; letter-spacing: .02em; }
.muted { color: var(--muted); }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 18px; margin-top: 16px; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.wide { grid-column: 1 / -1; }
label { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; color: var(--muted); }
input, select, textarea { font: inherit; font-size: 1rem; color: var(--ink); background: #12171c; border: 1px solid var(--line); border-radius: 6px; padding: 9px 10px; }
textarea { min-height: 80px; resize: vertical; }
button { font: inherit; cursor: pointer; border: 1px solid var(--acc); background: var(--acc); color: #1a1408; border-radius: 6px; padding: 9px 18px; }
button.ghost { background: transparent; color: var(--muted); border-color: var(--line); }
.row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 14px; }
.spacer { flex: 1; }
.err { color: var(--bad); margin: 0; }
.ok { color: var(--acc); margin: 0; }
.top { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.tabs { display: flex; gap: 6px; margin-top: 14px; }
.tabs button { background: transparent; color: var(--muted); border-color: var(--line); }
.tabs button.on { color: var(--ink); border-color: var(--acc); }
.notice { border-left: 3px solid var(--acc); padding: 8px 12px; background: #1e242b; margin-top: 14px; }
@media (max-width: 560px) { .grid { grid-template-columns: 1fr; } }
/* MMO sign-up city finder (Jeremy 2026-11-04) */
.city-pick { display: flex; flex-direction: column; gap: 6px; max-height: 260px; overflow-y: auto; margin-top: 6px; }
.city-card { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; padding: 8px 10px; border-radius: 10px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); color: inherit; font: inherit; cursor: pointer; width: 100%; }
.city-card.on { border-color: #d9b45a; background: rgba(217,180,90,.14); }
.city-card .muted { font-size: .8rem; }
.city-pop { font-size: .82rem; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.city-tag { font-size: .7rem; padding: 1px 7px; border-radius: 9px; font-weight: 600; }
.city-tag.busy { background: #2e7d4f; color: #fff; }
.city-tag.some { background: #8a6d1f; color: #fff; }
.city-tag.empty { background: rgba(255,255,255,.12); }
.city-hint { font-size: .8rem; margin: 4px 0 0; color: #e6b450; }
/* MMO character creator (Jeremy 2026-11-04) */
.class-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.class-card { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; padding: 10px; border-radius: 12px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); color: inherit; font: inherit; cursor: pointer; }
.class-card.on { border-color: #d9b45a; background: rgba(217,180,90,.16); box-shadow: 0 0 0 1px #d9b45a; }
.class-ico { font-size: 1.4rem; }
.class-epi { font-size: .78rem; color: #d9b45a; }
.class-role { font-size: .75rem; opacity: .75; line-height: 1.25; }
.class-res { font-size: .7rem; opacity: .6; margin-top: 2px; }
@media (max-width: 480px) { .class-grid { grid-template-columns: 1fr 1fr; } .class-card { padding: 8px; } }
.class-detail { margin-top: 12px; padding: 12px; border-radius: 12px; border: 1px solid #d9b45a88; background: rgba(217,180,90,.07); }
.cd-head { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; }
.cd-head .class-ico { font-size: 2rem; }
.cd-line { margin: 4px 0; font-size: .85rem; }
.cd-sec { margin: 10px 0 4px; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: #d9b45a; }
.cd-list { margin: 0; padding-left: 18px; font-size: .85rem; }
.cd-list li { margin: 3px 0; }
.cd-kind { font-size: .7rem; opacity: .7; border: 1px solid rgba(255,255,255,.2); border-radius: 6px; padding: 0 5px; }
.cd-eff { font-size: .78rem; opacity: .8; }
.city-card:disabled { opacity: .45; cursor: not-allowed; }
