.new-games{grid-template-columns:repeat(3,minmax(0,1fr))}.cc-players{display:flex;gap:8px;margin-bottom:18px;overflow-x:auto;padding-bottom:3px}.cc-player{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);color:var(--muted);min-width:105px;flex:1;font-size:13px;padding:11px 13px}.cc-player span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.cc-player small{font-size:12px}.cc-player.selected{border-color:var(--accent);background:var(--light);color:var(--accent)}.cc-main{margin-bottom:20px}.cc-upload{text-align:center;padding:45px 20px}.cc-upload-icon{font-size:50px;color:#b3afd9;margin-bottom:18px}.cc-upload-button{display:inline-block;padding:12px 23px;border-radius:10px;font-weight:650;cursor:pointer}.cc-upload p{font-size:12px;color:var(--muted);margin:16px 0 4px}.cc-local{font-size:10px;color:var(--muted)}.cc-crop-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px;font-size:12px;flex-wrap:wrap}.cc-crop-wrap{max-width:560px;margin:auto}.cc-crop-wrap canvas,.cc-crop-details canvas{width:100%;height:auto;display:block;border-radius:10px;touch-action:none;background:#ececf1}.cc-actions{flex-wrap:wrap}.cc-file-label{cursor:pointer}.cc-progress{max-width:560px;margin:18px auto 0;color:var(--muted);font-size:12px}.cc-progress[hidden]{display:none}.cc-progress progress{display:block;width:100%;accent-color:var(--accent);margin-bottom:7px}.cc-review{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:24px;padding:22px}.cc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cc-tile{display:flex;flex-direction:column;padding:7px 8px 9px;min-width:0;text-align:left;background:#fafaf8;border:1px solid var(--line);border-radius:11px;color:var(--ink);font-weight:500}.cc-tile.uncertain{border-color:#dba25e;background:#fffaf2}.cc-tile img{width:100%;aspect-ratio:216/302;object-fit:contain;border-radius:6px;margin:6px 0}.cc-tile-top{display:flex;justify-content:space-between;gap:3px;font-size:9px;color:var(--muted);width:100%}.cc-tile-top>span:last-child:not(:first-child){color:#a66824;font-weight:750}.cc-card-name{font-size:11px;line-height:1.25;min-height:28px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cc-tile-score{display:flex;justify-content:space-between;gap:4px;font-size:10px;align-items:center;margin:4px 0;width:100%}.cc-tile-score strong{font-size:17px;color:var(--accent)}.cc-tile-score small{font-size:9px;font-weight:500;color:var(--muted)}.cc-tile-score>span{color:#aa792c}.cc-shields{display:flex;gap:4px;min-height:15px}.cc-shield{display:inline-flex;align-items:center;justify-content:center;border-radius:3px 3px 6px 6px;min-width:14px;height:15px;font-size:9px;color:white;background:#929292}.shield-a{background:#344f86}.shield-f{background:#8c5da8}.shield-s{background:#3d94a5}.shield-m{background:#a75348}.shield-c{background:#aa773b}.shield-n{background:#648358}.cc-no-card{display:grid;place-items:center;aspect-ratio:216/302;width:100%;font-size:40px;color:#b7b1d6}.cc-score-box{padding:19px 12px;text-align:center;border-radius:12px;background:var(--light);display:flex;flex-direction:column;gap:3px}.cc-score-box>.muted{font-size:11px}.cc-score-box strong{font-size:46px;line-height:1.2;letter-spacing:-1px;color:var(--accent);font-variant-numeric:tabular-nums}.cc-score-box>span:last-child{font-size:11px;color:var(--muted)}.cc-resources{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:19px}.cc-resources label,.cc-edit-label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--muted)}.cc-notice{font-size:11px;color:var(--muted);margin:12px 0 0}.cc-issues{font-size:11px;padding-left:17px;color:var(--red);margin:14px 0}.cc-side-actions{display:flex;flex-direction:column;gap:9px;margin-top:22px}.cc-side-actions button{font-size:12px}.cc-results{margin-top:19px;border-top:1px solid var(--line);padding-top:15px}.cc-results h3{font-size:13px;margin-bottom:8px}.cc-results>div{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:7px 0}.cc-results>div>span{overflow-wrap:anywhere}.cc-compare{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:270px;margin:0 auto 15px}.cc-compare>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;font-size:11px;color:var(--muted);gap:6px}.cc-compare img,.cc-compare canvas{width:100%;aspect-ratio:216/302;object-fit:contain;border-radius:7px}.cc-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:17px}.cc-candidates button{min-width:0;background:#f8f8fa;padding:7px;color:var(--ink);font-size:10px;line-height:1.25}.cc-candidates img{width:100%;max-height:110px;object-fit:contain;display:block;margin-bottom:6px}.cc-edit-label{margin-top:13px}.cc-edit-body select{width:100%;font-size:13px;margin-top:10px}.cc-rule{font-size:11px;line-height:1.5;color:var(--muted);margin-top:12px}.cc-crop-details{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.cc-crop-details summary{font-size:12px}.cc-crop-details canvas{margin:10px 0}.cc-crop-details>button{width:100%;font-size:12px}.cc-edit-label input[type=number]{width:100px}.cc-modal-fallback{font-size:12px;color:var(--muted)}@media(max-width:760px){.new-games{grid-template-columns:1fr 1fr}.new-game[data-new=castle]{grid-column:1/-1}.cc-review{grid-template-columns:minmax(0,1fr);padding:14px;gap:20px}.cc-grid{gap:7px}.cc-tile{padding:6px}.cc-card-name{font-size:10px;min-height:25px}.cc-tile-score strong{font-size:16px}.cc-score-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.cc-score-box{grid-row:span 2;align-self:start}.cc-resources{margin-top:0;gap:8px}.cc-resources label{font-size:10px}.cc-score-panel>.cc-notice{grid-column:2;font-size:10px}.cc-issues,.cc-side-actions,.cc-results{grid-column:1/-1}.cc-side-actions{margin-top:16px}.cc-tile-top{font-size:8px}.cc-players{gap:6px}.cc-player{min-width:95px;font-size:12px;padding:10px}.cc-score-box strong{font-size:40px}.cc-compare{max-width:230px}.cc-edit-body{max-height:65vh!important}}@media(max-width:350px){.cc-review{padding:10px}.cc-tile{padding:4px}.cc-grid{gap:5px}.cc-tile-score strong{font-size:15px}.cc-tile-score>span{font-size:9px}}
/* Focused review: card image, points, and inline purse gold. */
.cc-tile{cursor:default;gap:0}.cc-card-open{position:relative;display:block;min-width:0;width:100%;padding:0;background:none;color:var(--ink);text-align:left;font-weight:500;border-radius:7px}.cc-card-open img{display:block}.cc-field-number,.cc-uncertain{position:absolute;top:10px;z-index:1;display:grid;place-items:center;width:20px;height:20px;border-radius:6px;font-size:10px;font-weight:700;background:#fffffff0;color:var(--muted)}.cc-field-number{left:4px}.cc-uncertain{right:4px;background:#fff0d8;color:#99601c}.cc-tile-bottom{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:42px;padding-top:5px}.cc-tile-points{font-size:18px;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.cc-tile-points small{font-size:9px;font-weight:500;color:var(--muted);margin-left:3px}.cc-inline-gold{display:flex;align-items:center;gap:4px;color:#a4792c;font-size:11px;min-width:0}.cc-inline-gold small{font-size:9px;color:var(--muted);white-space:nowrap}.cc-inline-gold input[type=number]{width:42px;height:35px;min-width:0;padding:3px;font-size:16px;font-weight:600;border-radius:7px}.cc-inline-gold input[aria-invalid=true]{border-color:var(--red);background:#fff2ec}.cc-compare{max-width:220px;gap:17px;margin-bottom:8px}.cc-selection-name{text-align:center;font-size:13px;font-weight:650;margin:6px 0 15px}.cc-search-label{display:block}.cc-search-label input{width:100%;font-size:14px;padding:11px 12px}.cc-search-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px;max-height:230px;overflow-y:auto;padding:2px}.cc-search-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;background:#f8f8fa;color:var(--ink);border:1px solid transparent;padding:7px;min-width:0;font-size:10px;font-weight:500;line-height:1.3}.cc-search-card.selected{border-color:var(--accent);background:var(--light)}.cc-search-card.selected:after{content:'✓';position:absolute;right:6px;top:6px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--accent);color:#fff;font-size:10px}.cc-search-card img{height:90px;width:100%;object-fit:contain}.cc-search-card>span{min-height:26px}.cc-search-empty{grid-column:1/-1;color:var(--muted);font-size:12px;padding:12px 3px}.cc-modal-note{font-size:11px;color:var(--muted);margin-top:11px}.cc-modal-note:empty{display:none}.cc-crop-details{margin-top:15px}.cc-crop-details summary{padding:3px 0}.cc-issues li{margin:5px 0}.cc-score-box>span:empty,.cc-score-panel>.cc-notice:empty{display:none}
@media(max-width:760px){.cc-tile-bottom{min-height:39px;gap:3px}.cc-tile-points{font-size:17px}.cc-tile-points small,.cc-inline-gold small{display:none}.cc-inline-gold{gap:3px;font-size:10px}.cc-inline-gold input[type=number]{width:33px;height:34px;font-size:16px;padding:2px}.cc-field-number,.cc-uncertain{width:18px;height:18px;font-size:9px;top:8px}.cc-compare{max-width:205px}.cc-search-results{max-height:210px;gap:6px}.cc-search-card{padding:6px}.cc-search-card img{height:80px}.cc-selection-name{font-size:12px}}@media(max-width:350px){.cc-tile-bottom{gap:2px}.cc-inline-gold{gap:2px;font-size:9px}.cc-inline-gold input[type=number]{width:30px}.cc-tile-points{font-size:16px}}
.cc-inline-gold img.cc-gold-icon{width:20px;height:20px;aspect-ratio:1;object-fit:contain;margin:0;border-radius:0;flex-shrink:0}.cc-card-open img:not([src]),.cc-search-card img:not([src]){background:#efedf3}.cc-crop-trigger{font-size:10px;padding:5px 8px;margin-top:2px;background:var(--light);color:var(--accent)}.cc-crop-panel[hidden]{display:none}.cc-crop-panel{border-top:1px solid var(--line);margin-top:14px;padding-top:3px}.cc-crop-panel canvas{display:block;width:100%;height:auto;border-radius:9px;touch-action:none;margin:10px 0}.cc-crop-panel>button{width:100%;font-size:12px}.cc-dialog-actions{gap:8px;flex-wrap:wrap}.cc-dialog-actions button{font-size:12px}.cc-dialog-actions .quiet{margin-right:auto}.cc-search-results{overflow:visible;max-height:none}.cc-search-card img{aspect-ratio:256/358}.cc-compare img{aspect-ratio:256/358}
@media(max-width:760px){.cc-inline-gold img.cc-gold-icon{width:16px;height:16px}.cc-inline-gold{gap:2px}.cc-inline-gold input[type=number]{width:31px}.cc-dialog-actions{gap:6px;padding:12px}.cc-dialog-actions button{font-size:11px;padding:10px 11px}.cc-dialog-actions .quiet{padding-left:3px;padding-right:3px}.cc-crop-trigger{font-size:10px}}@media(max-width:350px){.cc-inline-gold img.cc-gold-icon{width:14px;height:14px}.cc-inline-gold input[type=number]{width:29px}.cc-tile-bottom{flex-wrap:wrap;row-gap:3px}}

/* Bound both review and crop views to the viewport; actions never scroll away. */
.cc-main input::placeholder{color:#92929d;opacity:1}
dialog[open][data-castle-modal=true]{display:flex;flex-direction:column;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:hidden;box-sizing:border-box}
dialog[data-castle-modal=true]>.card-head{flex:none;min-width:0}
dialog[data-castle-modal=true]>.card-head h2{min-width:0;font-size:16px}
dialog[data-castle-modal=true] [hidden]{display:none!important}
.cc-card-view,.cc-crop-view{display:flex;flex-direction:column;min-height:0;min-width:0}
.cc-card-view{overflow:hidden}
dialog[data-castle-modal=true] .cc-edit-body{min-height:0;max-height:none!important;overflow:auto;overscroll-behavior:contain}
dialog[data-castle-modal=true] .card-foot{flex:none;margin-top:0}
dialog[data-castle-modal=true][data-cc-view=crop]{height:min(760px,calc(100vh - 24px));height:min(760px,calc(100dvh - 24px))}
.cc-crop-view{flex:1;overflow:hidden}
.cc-crop-hint{font-size:11px;color:var(--muted);text-align:center;flex:none;margin:10px 12px}
.cc-crop-stage{flex:1;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:0 12px 12px;contain:size}
.cc-crop-stage canvas{display:block;max-width:100%;max-height:100%;touch-action:none;border-radius:9px;background:#ececf1}
.cc-dialog-error{flex:none;max-height:64px;overflow:auto;font-size:11px;margin:0;padding:8px 12px}
.cc-dialog-error:empty{display:none}
@media(max-height:450px){dialog[data-castle-modal=true]>.card-head{padding:10px 14px}.cc-crop-hint{margin:5px 12px}dialog[data-castle-modal=true] .card-foot{padding:8px 12px}.cc-dialog-actions button{padding:8px 10px}}
