:root{
  --cream:#f5f0e6; --card:#fffdf8; --ink:#5b4a3a; --soft:#8a7762;
  --line:rgba(91,74,58,0.14); --amber:#c88a2a; --green:#6e9a3a;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--cream); color:var(--ink); font-family:'Quicksand',system-ui,sans-serif; -webkit-font-smoothing:antialiased;}
.topbar{display:flex; align-items:baseline; gap:14px; padding:16px 22px 8px;}
.brand{font-size:22px; font-weight:700;}
.logo{color:var(--amber); font-size:22px;}
.wt{font-size:11px; font-weight:600; color:var(--soft); background:#efe7d6; padding:2px 8px; border-radius:20px; vertical-align:middle;}
.tag{font-size:13px; color:var(--soft);}
.wrap{display:flex; gap:18px; padding:6px 22px; align-items:flex-start; flex-wrap:wrap;}
.boardcard{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:10px; box-shadow:0 8px 24px rgba(91,74,58,0.07);}
canvas{display:block; border-radius:12px; background:#eef1e6;}
.hint{font-size:12.5px; color:var(--soft); margin:9px 6px 4px; max-width:740px; line-height:1.5;}
.side{display:flex; flex-direction:column; gap:14px; width:300px; flex:1 1 280px;}
.card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px; box-shadow:0 8px 24px rgba(91,74,58,0.07);}
.ctitle{font-size:17px; font-weight:700;}
.cblurb{font-size:13px; color:var(--soft); font-style:italic; margin:4px 0 12px; line-height:1.45;}
.crow{display:flex; align-items:center; gap:8px; margin:7px 0; font-size:13px; flex-wrap:wrap;}
.lbl{font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--soft); font-weight:700;}
.mt{margin-top:12px; display:block;}
.pill{display:inline-block; background:#efe7d6; color:#7a5f3a; padding:2px 10px; border-radius:20px; font-size:12px; font-weight:600; margin:2px 4px 2px 0;}
.pill.style{background:#e6eef0; color:#3a5a6a;}
.musts{list-style:none; padding:0; margin:6px 0 0;}
.musts li{font-size:13px; padding:3px 0; color:var(--soft); font-weight:500;}
.musts li.done{color:var(--green); font-weight:700;}
.scorerow{display:flex; justify-content:space-between; align-items:baseline; font-size:13px; color:var(--soft);}
.scorerow.small{margin-top:4px;}
.scorerow .num{font-size:26px; font-weight:700; color:var(--amber);}
.scorerow .pts{font-size:16px; font-weight:700; color:var(--green);}
.btns{display:flex; flex-direction:column; gap:8px; margin-top:12px;}
button{font-family:inherit; font-size:14px; font-weight:600; padding:10px 14px; border-radius:12px; border:1px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; transition:transform .05s ease, background .15s ease;}
button:hover{background:#faf6ee;} button:active{transform:scale(.98);}
button.primary{background:var(--amber); color:#fff; border-color:transparent;}
button.primary:hover{background:#b87d22;}
button.ghost{background:transparent; color:var(--soft);}
.result{margin-top:14px; font-size:13px;}
.result:empty{display:none;}
.accept .stars{font-size:26px; color:var(--amber); letter-spacing:3px;}
.accept .line{font-style:italic; color:var(--ink); margin:5px 0;}
.breakdown{font-size:12px; color:var(--soft); line-height:1.5;}
.reward{font-size:12px; color:var(--green); font-weight:600; margin-top:4px;}
.reject{color:#b15a36; font-size:13px; line-height:1.5;}
.inhome{margin-top:8px; display:flex; flex-direction:column; gap:4px;}
.inhome .item{display:flex; justify-content:space-between; font-size:13px; color:var(--ink);}
.inhome .item.feat{color:#7a5f3a; font-weight:600;}
.inhome .empty{font-size:12.5px; color:var(--soft);}
.studio{margin-top:8px; display:flex; flex-direction:column; gap:6px;}
.unlock{display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:13px;}
.unlock .nm{font-weight:600;}
.unlock button{padding:5px 10px; font-size:12px;}
.unlock .owned{font-size:12px; color:var(--green); font-weight:700;}
.toolbar{padding:14px 22px 30px;}
.modes{display:flex; gap:8px; margin-bottom:12px;}
.mode{padding:8px 16px;}
.mode.active{background:var(--ink); color:#fff; border-color:transparent;}
.palette{display:flex; flex-wrap:wrap; gap:8px;}
.room-btn,.feat-btn{padding:8px 13px;}
.room-btn.sel,.feat-btn.sel{background:#fbeccd; border-color:var(--amber); color:#7a5f3a;}
.feat-btn.locked{opacity:.45; cursor:not-allowed;}
.feat-btn .tag2{font-size:10px; color:var(--soft); margin-left:5px;}
