:root{color:#1a1a1a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f3efe6;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(#efe6d6 0%,#f7f2ea 40%,#ebe4d8 100%);min-height:100dvh}button,input{font:inherit}.app-shell{max-width:420px;min-height:100dvh;margin:0 auto;padding:12px 14px 28px}.screen{flex-direction:column;gap:14px;min-height:calc(100dvh - 40px);display:flex}.screen-header .brand{letter-spacing:.02em;font-size:1.25rem;font-weight:700}.screen-header .subtitle,.hint{color:#6b6458;margin:4px 0 0;font-size:.9rem}.screen-header.row{align-items:center;gap:10px;display:flex}.brand-sm{font-size:.95rem;font-weight:650}.map-card,.task-card{background:#fffdf8;border:1px solid #e4d9c5;border-radius:18px;padding:16px;box-shadow:0 8px 24px #503c140f}.map-card h2,.task-card h2{margin:0 0 6px;font-size:1.1rem}.spot{text-align:left;cursor:pointer;background:#fff;border:1px solid #e7dcc7;border-radius:14px;align-items:center;gap:12px;width:100%;margin-top:12px;padding:14px 12px;transition:transform .12s,box-shadow .12s;display:flex}.spot-open:hover{border-color:#e0a45a;transform:translateY(-1px);box-shadow:0 6px 16px #b46e281f}.spot-emoji{text-align:center;width:2.2rem;font-size:1.6rem}.spot-body{flex-direction:column;flex:1;gap:2px;display:flex}.spot-body small{color:#7a7366}.spot-chevron{color:#c48a3a;font-size:1.4rem;font-weight:300}.spot-locked{opacity:.55;cursor:not-allowed;filter:grayscale(.35);background:#f3efe8}.spot-done{background:#f4faf2;border-color:#b7d9ae}.spot-done:hover{border-color:#8fce86;transform:translateY(-1px);box-shadow:0 6px 16px #2f6b341f}.lock-badge{font-size:1rem}.done-badge{color:#2f6b34;font-size:1.1rem;font-weight:700}.state-tag{vertical-align:1px;border-radius:999px;margin-right:4px;padding:0 6px;font-size:.72rem;font-weight:700;line-height:1.4;display:inline-block}.state-tag.locked{color:#5e584e;background:#e6e1d8}.state-tag.available{color:#a15c10;background:#fff1de}.state-tag.done{color:#246b2c;background:#e3f6df}.map-footer{margin-top:auto;padding-top:8px}.footer-tip{text-align:center;color:#8a8172;font-size:.88rem}.done-banner{text-align:center;color:#2f6b34;background:#e8f5e4;border-radius:12px;padding:12px;font-weight:600}.primary-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#e89a3c,#c86f1e);border:none;border-radius:14px;width:100%;padding:14px 16px;font-weight:650;box-shadow:0 6px 14px #c86f1e47}.primary-btn:active{transform:scale(.98)}.ghost-btn{color:#7a5a2e;cursor:pointer;background:0 0;border:none;padding:6px 4px;font-weight:600}.npc-bar{background:#fffdf8;border:1px solid #e4d9c5;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;display:flex}.npc-bar small{color:#7a7366;font-size:.8rem;display:block}.npc-avatar{background:#ffe8c8;border-radius:50%;place-items:center;width:42px;height:42px;font-size:1.4rem;display:grid}.dialogue-screen{min-height:calc(100dvh - 40px)}.chat-log{flex-direction:column;flex:1;gap:10px;max-height:min(52dvh,420px);padding:4px 2px 8px;display:flex;overflow-y:auto}.bubble-wrap{flex-direction:column;max-width:92%;display:flex}.bubble-wrap.player{align-self:flex-end;align-items:flex-end}.bubble-wrap.npc,.bubble-wrap.system{align-self:flex-start}.bubble{background:#fff;border:1px solid #eadfcd;border-radius:16px;padding:10px 12px}.bubble.player{background:#fff1de;border-color:#f0c98a}.bubble.system{color:#5c564c;background:#f4f1ea;font-size:.92rem}.bubble .who{color:#9a8f7c;margin-bottom:2px;font-size:.72rem;display:block}.bubble p{margin:0}.aside-note{color:#6a4e1a;background:#fff8e6;border:1px dashed #e0b35a;border-radius:12px;margin-top:6px;padding:10px 12px;font-size:.86rem;line-height:1.45}.dialogue-actions{margin-top:auto}.choices{flex-direction:column;gap:8px;display:flex}.choice-btn{text-align:left;cursor:pointer;color:#4a3a22;background:#fffaf1;border:1px solid #e2c48a;border-radius:14px;padding:12px 14px;font-weight:550}.choice-btn:hover{background:#fff3df;border-color:#d4a04a}.end-panel{flex-direction:column;gap:10px;display:flex}.subtext-ok{color:#2f6b34;background:#e8f5e4;border-radius:12px;margin:0;padding:10px 12px;font-size:.9rem}.subtext-miss{color:#8a5a12;background:#fff4e5;border-radius:12px;margin:0;padding:10px 12px;font-size:.9rem}.task-row{cursor:pointer;background:#fff;border:1px solid #e4d9c5;border-radius:14px;align-items:flex-start;gap:12px;margin-top:14px;padding:14px;display:flex}.task-row input{accent-color:#c86f1e;width:20px;height:20px;margin-top:2px}.task-row span{flex-direction:column;gap:4px;display:flex}.task-row small{color:#7a7366}.task-row.done{background:#f1f8ef;border-color:#b7d9ae}.task-row.blocked{cursor:not-allowed;background:#f6f3ed}.task-row.blocked input{cursor:not-allowed}.wrap-up{background:#fff8e8;border:1px solid #ecd7a8;border-radius:14px;margin-top:14px;padding:14px}.wrap-title{color:#8a5a12;margin:0 0 6px;font-weight:700}.wrap-up p{color:#4a4034;margin:0 0 8px;font-size:.92rem}.wrap-ok{color:#2f6b34!important;margin-bottom:0!important;font-weight:700!important}
