.shelter-shell{width:min(100%,720px);margin:0 auto;display:grid;gap:18px}.shelter-hero{padding:24px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#f7f2e7,#edf4ee)}.shelter-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.shelter-hero h2,.shelter-ranking h2{margin:0}.shelter-reset{font-size:11px;color:var(--muted);white-space:nowrap}.shelter-personal{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px;margin:22px 0}.shelter-best span,.shelter-rank-copy span{display:block;margin-bottom:5px;font-size:11px;color:var(--muted)}.shelter-best strong{font-size:34px;line-height:1;color:#214838;font-variant-numeric:tabular-nums}.shelter-rank-copy{text-align:right}.shelter-rank-copy strong{font-size:14px}.shelter-title-slot{min-height:26px;margin-top:7px}.shelter-primary{width:100%;min-height:48px}.shelter-ranking{padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--card)}.shelter-ranking-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.shelter-ranking-head span{font-size:11px;color:var(--muted)}.shelter-rank-list{display:grid}.shelter-rank-row{display:grid;grid-template-columns:28px 38px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px 2px;border-bottom:1px solid var(--line)}.shelter-rank-row:last-child{border-bottom:0}.shelter-rank-number{text-align:center;color:#214838}.shelter-avatar{width:34px;height:34px;font-size:12px}.shelter-rank-person{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.shelter-rank-person b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.shelter-rank-row time{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;color:#214838;white-space:nowrap}.shelter-empty{padding:28px 10px;text-align:center;color:var(--muted);font-size:12px}
.title-badge{display:inline-flex;align-items:center;max-width:100%;min-height:22px;padding:3px 8px;border:1px solid #c8d6cd;border-radius:999px;background:#edf4ee;color:#214838;font-size:10px;font-weight:800;line-height:1.2;white-space:nowrap}.title-gold{border-color:#d9b24c;background:#fff5c8;color:#785915}.title-silver{border-color:#aeb6bd;background:#f2f5f6;color:#4b5963}.title-bronze{border-color:#bd855f;background:#fff0e5;color:#7c4629}.title-ranker{border-color:#9c8bc0;background:#f2edfb;color:#59447f}.title-none{border-color:var(--line);background:var(--soft);color:var(--muted);font-weight:650}
.shelter-game-card,.shelter-result-card{position:relative;width:min(100%,520px);margin:0 auto;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--card);overflow:hidden}.shelter-game-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.shelter-game-stat{display:grid;gap:3px}.shelter-game-stat span{font-size:11px;color:var(--muted)}.shelter-game-stat strong{font-size:20px;color:#214838;font-variant-numeric:tabular-nums}.shelter-game-stat:last-of-type{text-align:right}.shelter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;width:100%;aspect-ratio:1}.shelter-tile{min-width:0;border:1px solid #d8ddd9;border-radius:13px;background:#fbf9f5;color:#1b1c1a;font-size:clamp(16px,5vw,24px);font-weight:850;box-shadow:0 2px 0 #dfe3df;touch-action:manipulation}.shelter-tile.cleared{border-color:#214838;background:#214838;color:#fff;box-shadow:none;opacity:.88}.shelter-tile.wrong{animation:shelter-wrong .32s ease;background:#fbe9e9;border-color:#a23f43;color:#a23f43}.shelter-countdown{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgba(251,249,245,.9);color:#214838;font-size:42px;font-weight:900;backdrop-filter:blur(3px)}@keyframes shelter-wrong{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.shelter-game-actions{display:flex;justify-content:center;margin-top:14px}.shelter-result-card{text-align:center;padding:30px 22px}.shelter-result-card>small{color:var(--muted)}.shelter-result-card h2{margin:8px 0 4px;font-size:38px;color:#214838;font-variant-numeric:tabular-nums}.shelter-result-grade{font-size:15px;font-weight:800}.shelter-result-rank{color:var(--muted)}.shelter-new-titles{margin:18px 0;padding:14px;border-radius:14px;background:var(--soft)}.shelter-new-titles p{margin:0 0 8px;font-size:11px;color:var(--muted)}.shelter-new-titles div{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.shelter-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cosmetics-preview{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}.cosmetics-preview .avatar{width:58px;height:58px;font-size:20px}.cosmetics-preview-copy{display:grid;justify-items:start;gap:6px;min-width:0}.cosmetics-preview-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.title-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.title-option{display:flex;min-width:0;min-height:66px;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);text-align:left}.title-option[aria-pressed="true"]{border-color:#214838;box-shadow:0 0 0 1px #214838 inset;background:#f1f6f2}.title-option small{font-size:10px;color:var(--muted);line-height:1.35}.title-option.locked{opacity:.58}.cosmetics-section-title{margin:8px 0 0;font-size:13px}.side-title-badge{margin-top:4px}
.shelter-rank-content{display:grid;gap:6px;min-width:0}.shelter-rank-rewards{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap}.shelter-rank-rewards small{width:100%;font-size:9px;color:var(--muted)}.shelter-rank-rewards .title-badge{min-height:19px;padding:2px 6px;font-size:9px}.shelter-rank-row time{align-self:start;margin-top:2px}.shelter-result-grade{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.shelter-new-titles p{margin:0}
@media(max-width:600px){.shelter-shell{gap:14px}.shelter-hero,.shelter-ranking,.shelter-game-card{padding:16px;border-radius:16px}.shelter-reset{white-space:normal;text-align:right}.shelter-best strong{font-size:29px}.shelter-rank-row{grid-template-columns:24px 34px minmax(0,1fr) auto;gap:8px}.shelter-avatar{width:30px;height:30px}.shelter-grid{gap:6px}.shelter-tile{border-radius:10px}.title-picker{grid-template-columns:1fr}.shelter-result-card{padding:24px 16px}}
@media(max-width:370px){.shelter-hero-head{display:block}.shelter-reset{display:block;margin-top:6px;text-align:left}.shelter-personal{grid-template-columns:1fr}.shelter-rank-copy{text-align:left}.shelter-rank-row{grid-template-columns:22px 30px minmax(0,1fr) auto;gap:6px}.shelter-rank-person .title-badge{max-width:110px;overflow:hidden;text-overflow:ellipsis}.shelter-rank-row time{font-size:11px}.shelter-game-card{padding:12px}.shelter-grid{gap:5px}.shelter-result-actions{grid-template-columns:1fr}}
