/* 小院 · the little courtyard */
.estate{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;background:radial-gradient(120% 80% at 50% 40%,#232a45,#0c0f1d)}
.estate-canvas{flex:1;min-height:0;width:100%;display:block;touch-action:none;cursor:grab;image-rendering:pixelated}
.estate-hud{position:absolute;top:8px;left:10px;right:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;pointer-events:none;z-index:2}
.estate-level{display:flex;gap:9px;align-items:center;background:#111524d9;border:1px solid var(--line);border-radius:6px;padding:6px 10px 6px 8px;min-width:0}
.estate-level>span{font-size:22px;color:var(--gold);line-height:1;min-width:22px;text-align:center}
.estate-level b{font-size:11px;font-weight:600;color:var(--cream);display:block}
.estate-level small{font-size:9px;color:var(--muted)}
.estate-level .progress-track{width:92px;height:4px;margin:4px 0 3px;background:#ffffff14;border-radius:2px;overflow:hidden}
.estate-level .progress-track i{display:block;height:100%;background:var(--gold)}
.estate-mats{display:grid;grid-template-columns:repeat(3,auto);gap:3px 9px;background:#111524d9;border:1px solid var(--line);border-radius:6px;padding:6px 9px}
.mat{display:inline-flex;align-items:baseline;gap:3px;font-size:11px;color:var(--cream);font-variant-numeric:tabular-nums}
.mat b{font-size:12px;font-weight:600;color:var(--teal)}
.mat.short,.mat.short b{color:var(--rose)}
.estate-tools{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:0 10px 10px;pointer-events:none}
.estate-tools>*{pointer-events:auto}
.estate-bar,.estate-panel{background:#111524f0;border:1px solid var(--line);border-radius:8px;padding:10px 12px;box-shadow:0 -6px 30px #0007}
.estate-bar{display:flex;flex-direction:column;gap:8px}
.estate-hint{font-size:11.5px;color:var(--muted);line-height:1.5}
.ep-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.ep-actions .pixel-btn{min-width:96px}
.ep-actions .text-btn.on{color:var(--lav)}
.ep-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.ep-word{display:flex;align-items:center;gap:10px;min-width:0}
.ep-word b{font-size:28px;line-height:1;color:var(--cream);font-weight:500}
.ep-word span{display:flex;flex-direction:column;font-size:12px;color:var(--lav)}
.ep-word small{font-size:11px;color:var(--muted)}
.ep-cost{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.estate-panel>.tiny{margin:0 0 8px}
.estate-panel.drawer{max-height:min(52vh,360px);display:flex;flex-direction:column;padding-top:8px}
.ep-top{display:flex;align-items:flex-start;gap:6px}
.estate-sets{flex:1;padding:0;margin:0 0 8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.estate-sets .chip{white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.estate-sets .chip svg{width:11px;height:11px}
.estate-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;overflow-y:auto;min-height:0;padding-bottom:2px}
.estate-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 6px 8px;border:1px solid var(--line);border-radius:6px;background:#1b2033;text-align:center}
.estate-item:hover{border-color:var(--lav)}
.estate-item>b{font-size:22px;font-weight:500;color:var(--cream);line-height:1.2}
.estate-item .ei-en{font-size:10.5px;color:var(--muted)}
.estate-item .ei-cost{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;min-height:16px}
.estate-item .ei-comfort{font-size:9px;color:var(--gold);letter-spacing:.03em}
.estate-item.short{opacity:.62}
.estate-blueprint{padding:4px 2px 2px}
.estate-blueprint h2{font-size:17px;margin:4px 0 6px;color:var(--cream)}
.estate-blueprint p{font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.5}
.estate-locked img{width:100%;height:240px;object-fit:cover;object-position:50% 30%;display:block;image-rendering:pixelated}
.estate-locked-copy{padding:20px 24px 30px}
.estate-locked-copy h1{margin:8px 0 10px}
.estate-locked-copy p{color:var(--muted);line-height:1.6;margin:0 0 12px}
.collection-switch button span[lang]{font-size:15px}
.estate-hud,.estate-tools{user-select:none;-webkit-user-select:none}
.farm-seeds{margin:2px 0 8px}
.seed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:5px;margin-top:6px}
.seed{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 4px;border:1px solid var(--line);border-radius:6px;background:#1b2033;text-align:center}
.seed:hover{border-color:var(--teal)}
.seed b{font-size:19px;font-weight:500;color:var(--cream)}
.seed span{font-size:10px;color:var(--muted)}
.seed small{font-size:9.5px;color:var(--teal)}
.farm-crop{margin:2px 0 10px}
.crop-word{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.crop-word b{font-size:20px;font-weight:500;color:var(--cream)}
.crop-word span{font-size:11px;color:var(--muted)}
.farm-crop .progress-track{height:5px;background:#ffffff14;border-radius:3px;overflow:hidden}
.farm-crop .progress-track i{display:block;height:100%;background:var(--teal)}
.crop-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:7px}
.lin-panel .ep-word b{font-size:22px;color:var(--gold)}
.lin-line{font-size:22px;color:var(--cream);margin:4px 0 2px;line-height:1.4}
.lin-py{font-size:12px;color:var(--lav);margin:0}
.lin-en{font-size:12px;color:var(--muted);margin:2px 0 8px}
.guest-panel .ep-word b{font-size:20px;color:var(--rose)}
.guest-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px}
.hearts{color:var(--rose);letter-spacing:1px;font-size:13px}
.hearts i{color:#ffffff22;font-style:normal}
.guest-panel .ep-actions .ep-cost{margin-right:auto}
