:root{--bg: #f1e7d0;--paper: #fbf5e6;--ink: #2b2118;--muted: #6d5f50;--line: #cdbb98;--accent: #b5452a;--accent-ink: #fff8ee;--good: #3f7d4e;--warn: #c98a1b;font-family:Noto Sans KR,Malgun Gothic,Apple SD Gothic Neo,system-ui,sans-serif;font-size:17px;line-height:1.55;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button{font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:6px;padding:.5rem .9rem;cursor:pointer;min-height:44px}button:hover:not(:disabled){background:#efe3c6}button:focus-visible,input:focus-visible{outline:3px solid #1f5fbf;outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-ink);border-color:#7d2a14}button.primary:hover:not(:disabled){background:#9d3a22}button.ghost{background:transparent;border-color:var(--line)}button.small{min-height:32px;padding:.1rem .6rem;font-size:.85rem}input[type=number]{font:inherit;width:8.5rem;min-height:44px;padding:.3rem .5rem;border:2px solid var(--ink);border-radius:6px;background:#fffdf6}.app{max-width:1200px;margin:0 auto;padding:1rem}.title{text-align:center;padding:10vh 1rem 2rem}.title h1{font-size:clamp(2.4rem,8vw,4.2rem);letter-spacing:.12em;margin:0}.subtitle{font-size:1.3rem;margin:.2rem 0}.tagline{color:var(--muted);margin-bottom:2.2rem}.title-buttons{display:flex;flex-direction:column;gap:.7rem;max-width:340px;margin:0 auto}.footnote{margin-top:3rem;color:var(--muted);font-size:.85rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;background:var(--ink);color:var(--accent-ink);border-radius:8px}.brand{margin:0;font-size:1.2rem;letter-spacing:.1em}.date{display:flex;gap:.8rem;align-items:baseline;font-size:1.15rem}.topbar .ghost{color:var(--accent-ink);border-color:#8a7b66}.layout{display:grid;grid-template-columns:280px 1fr;gap:1rem;margin-top:1rem}.panel{background:var(--paper);border:2px solid var(--line);border-radius:8px;padding:1rem 1.1rem}.panel h2{margin:0 0 .7rem;font-size:1.1rem}.panel h3{margin:1.1rem 0 .4rem;font-size:1rem;color:var(--muted)}.log{grid-column:1 / -1}.log ul{margin:0;padding-left:1.2rem;max-height:220px;overflow:auto}.stats{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:.8rem 0 0}.stats dt{color:var(--muted)}.stats dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.stats.compact{display:block;margin-top:0}.stat-row{display:flex;justify-content:space-between;padding:.1rem 0;border-bottom:1px dotted var(--line)}.profile{margin:-.4rem 0 .8rem}.family dd{text-align:right}.create{max-width:820px;margin:0 auto;padding:1rem 0 3rem}.create h1{margin-bottom:.2rem}.field{border:none;padding:0;margin:1.4rem 0}.field>label,.field legend{display:block;font-weight:700;margin-bottom:.4rem;padding:0}.field input[type=text],.field select{font:inherit;min-height:44px;width:100%;max-width:340px;padding:.3rem .6rem;border:2px solid var(--ink);border-radius:6px;background:#fffdf6}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem}.choice-grid.small{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.choice-card{position:relative;display:flex;flex-direction:column;gap:.15rem;padding:.6rem .8rem;background:var(--paper);border:2px solid var(--line);border-radius:8px;cursor:pointer;min-height:44px}.choice-card.selected{border-color:var(--accent);background:#fdeedd;box-shadow:inset 0 0 0 1px var(--accent)}.choice-card input{position:absolute;opacity:0;inset:0;cursor:pointer}.choice-card:focus-within{outline:3px solid #1f5fbf;outline-offset:2px}.choice-title{font-weight:700}.choice-desc{font-size:.88rem;color:var(--muted)}.notice.info{background:#e6efe0;border-left-color:var(--good)}ul.notice{padding-left:1.8rem}.small-text{font-size:.9rem;margin-top:.7rem}.meter{margin-bottom:.6rem}.meter-head{display:flex;justify-content:space-between}.meter-track{height:12px;background:#e5d8ba;border:1px solid var(--line);border-radius:6px;overflow:hidden}.meter-fill{height:100%}.meter-fill.good{background:var(--good)}.meter-fill.warn{background:var(--warn)}.button-row{display:flex;flex-wrap:wrap;gap:.5rem}.button-row.end{margin-top:1.2rem;justify-content:flex-end}.muted{color:var(--muted);margin:0}.queue{margin:0;padding-left:1.3rem}.queue li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.15rem 0}.market{width:100%;border-collapse:collapse}.market th,.market td{text-align:left;padding:.4rem .3rem;border-bottom:1px solid var(--line);vertical-align:middle}.market td{font-variant-numeric:tabular-nums}.trade{display:flex;flex-wrap:wrap;gap:.4rem}.notice{margin:.8rem 0 0;padding:.5rem .7rem;background:#f7e3d6;border-left:5px solid var(--accent);border-radius:4px}.overlay{position:fixed;inset:0;background:#1e140a8c;display:grid;place-items:center;padding:1rem}.dialog{background:var(--paper);border:3px solid var(--ink);border-radius:10px;padding:1.5rem;max-width:520px;width:100%}.dialog h2{margin-top:0}.choices{display:flex;flex-direction:column;gap:.6rem;margin-top:1.2rem}@media(max-width:800px){.layout{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}
