/* Experimental single display-case layout (coach.php). */
.display-case { background: radial-gradient(ellipse at 18% 0, rgba(255,239,173,.22), transparent 38%), radial-gradient(ellipse at 50% 0, rgba(255,239,173,.22), transparent 38%), radial-gradient(ellipse at 82% 0, rgba(255,239,173,.22), transparent 38%), linear-gradient(90deg, #21130c 0%, #542b16 8%, #2e170d 12%, #4a2715 50%, #2e170d 88%, #542b16 92%, #21130c 100%); border: 9px solid #1b0d08; border-radius: 5px; box-shadow: inset 0 0 0 2px rgba(191,123,60,.33), inset 0 0 45px rgba(0,0,0,.85), 0 14px 28px rgba(0,0,0,.3); overflow: hidden; padding: 1.1rem 1.1rem 1.4rem; position: relative; }
.display-case::after { background: linear-gradient(105deg, rgba(255,255,255,.12), transparent 16%, transparent 70%, rgba(255,255,255,.05)); content: ''; inset: 0; pointer-events: none; position: absolute; }
.display-case__header { align-items: center; background: linear-gradient(135deg, #b78a36, #f5d77a, #896123); border: 1px solid #f4d97d; box-shadow: 0 2px 4px rgba(0,0,0,.45); color: #291508; display: flex; font-size: .72rem; justify-content: space-between; letter-spacing: .1em; margin: 0 auto .8rem; max-width: 380px; padding: .4rem .7rem; text-transform: uppercase; }
.case-item { margin: 0; text-align: center; }
.case-item figcaption { background: linear-gradient(135deg, #8e6829, #e4c369, #76521e); border: 1px solid rgba(255,225,131,.65); color: #251406; margin: .3rem auto 0; max-width: 130px; padding: .15rem .3rem; }
.case-item figcaption.case-caption--above { margin: 0 auto .3rem; }
.case-item figcaption.case-caption--silver { background: linear-gradient(135deg, #8d949c, #e4e8ec, #707880); border-color: rgba(255,255,255,.7); }
.case-item figcaption.case-caption--dark { background: linear-gradient(135deg, #1a1a1d, #33343a, #151517); border-color: rgba(255,225,131,.45); color: #f1deaa; }
.case-item figcaption.case-caption--clear { background: none; border-color: transparent; color: #f7e7b4; text-shadow: 0 1px 3px rgba(0,0,0,.9); }
.case-item figcaption strong { display: block; font-size: .62rem; line-height: 1.1; }
.case-item figcaption span { display: block; font-size: .58rem; }
.case-item--trophy img { display: block; filter: drop-shadow(0 6px 5px rgba(0,0,0,.7)); height: 112px; margin: 0 auto; object-fit: contain; width: 112px; }
/* Banners hang from the top of the shelf bay; plaques mount at mid-wall height. */
.case-item--banner { position: relative; }
.banner-year { color: #fff; font-size: 13px; font-weight: 800; left: 0; letter-spacing: .04em; line-height: 1; pointer-events: none; position: absolute; text-align: center; text-shadow: 0 1px 2px rgba(0,0,0,.45); top: 11.3%; transform: translateY(-50%); width: 95.5%; }
.case-item--banner .trophy-banner { filter: drop-shadow(0 6px 5px rgba(0,0,0,.7)); height: 150px; margin: 0 auto; width: 110px; }
.pennant-rot { transform-origin: 50% 50%; }
.case-tray-card .pennant-rot { transform: none !important; }
.case-item--pennant .trophy-pennant { display: block; filter: drop-shadow(0 5px 4px rgba(0,0,0,.65)); height: auto; margin: 0 auto; width: 150px; }
.case-item--plaque { align-self: center; max-width: 150px; }
.case-item--plaque .bowl-plaque { min-height: 62px; padding: .55rem .4rem; }
.case-item--plaque .bowl-plaque strong { font-size: .62rem; }
.case-item--plaque .bowl-plaque span { font-size: .58rem; }
.case-item--ring { width: 110px; }
.case-item--ring .championship-ring { min-height: 0; }
.ring-svg__visual { margin: 0 auto; max-width: 96px; position: relative; width: 100%; }
.ring-svg__visual svg { display: block; filter: drop-shadow(0 5px 4px rgba(0,0,0,.6)); height: auto; width: 100%; }
.ring-svg__logo { filter: drop-shadow(0 1px 2px rgba(0,0,0,.6)); height: 40%; left: 52%; object-fit: contain; position: absolute; top: 47.5%; transform: translate(-50%, -50%); width: 40%; }
.case-item--ring .championship-ring__visual { margin: 0 auto; max-width: 96px; }
.case-item--ring .championship-ring__nameplate { margin: 0 auto .25rem; width: 70px; }
.case-empty--block { color: rgba(255,255,255,.45); font-size: .8rem; letter-spacing: .08em; margin: 2rem 0; position: relative; text-align: center; text-transform: uppercase; z-index: 2; }
@media (max-width: 600px) { .display-case { border-width: 6px; padding: .6rem .5rem .8rem; } }

/* Fixed-size stage scaled to fit by js/trophy-case-stage.js; items sit at stored coordinates. */
.case-stage-wrap { overflow: hidden; position: relative; width: 100%; }
.case-stage { left: 0; position: absolute; top: 0; }
.case-shelf { background: linear-gradient(#3d2010, #2a1209); box-shadow: 0 8px 0 #0c0704, inset 0 2px 0 rgba(241,194,99,.28); height: 12px; left: 0; position: absolute; right: 0; z-index: 0; }
.case-placed { position: absolute; z-index: 1; }
.case-placed--stand { transform: translate(-50%, -100%); }
.case-placed--wall { transform: translate(-50%, 0); }
.case-placed .case-item { margin: 0; }
.case-scale { transform-origin: 50% 100%; }
.case-placed--wall > .case-scale { transform-origin: 50% 0; }
.case-stage--editing .case-placed { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.case-stage--editing .case-placed * { pointer-events: none; }
.case-placed.is-selected { outline: 2px dashed #f4d97d; outline-offset: 4px; }
.case-placed.is-dragging { cursor: grabbing; filter: brightness(1.12); z-index: 5; }
.case-placed[data-as="ring"] .case-variant--trophy, .case-placed[data-as="trophy"] .case-variant--ring { display: none; }

/* Owner link on the public case, and the editor page (coach-case-editor.php). */
.case-customize { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; margin-left: auto; }
.case-customize span { color: #b7b7b7; font-size: .8rem; }
.case-owner-bar { align-items: center; color: rgba(255,255,255,.75); display: flex; font-size: .75rem; gap: .6rem; justify-content: center; margin: -.2rem 0 .7rem; position: relative; z-index: 2; }
.case-editor__bar { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.case-editor__shelves { align-items: center; display: flex; gap: .4rem; }
.case-editor__status { font-size: .85rem; }
.case-editor__status.is-error { color: #ff8a8a; }
.case-selection { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; justify-content: space-between; margin-bottom: .8rem; min-height: 34px; }
.case-selection__tools { align-items: center; display: flex; gap: .6rem; }
.case-selection__toggle { display: inline-flex; }
.case-selection__toggle[hidden] { display: none; }
.case-selection__toggle .btn { background: transparent; border: 1px solid #b78a36; border-radius: 0; color: #f0d98a; }
.case-selection__toggle .btn:first-child { border-radius: 4px 0 0 4px; }
.case-selection__toggle .btn:last-child { border-left: 0; border-radius: 0 4px 4px 0; }
.case-selection__toggle .btn.is-active { background: #b78a36; color: #251406; }
.case-tray { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); list-style: none; margin: 0; padding: 0; }
.case-tray.is-empty::before { color: #8a8a8a; content: attr(data-empty); font-size: .85rem; grid-column: 1 / -1; }
.case-tray-card { background: radial-gradient(ellipse at 50% 0, rgba(255,239,173,.18), transparent 55%), linear-gradient(90deg, #21130c, #4a2715 50%, #21130c); border: 2px solid #1b0d08; border-radius: 5px; box-shadow: inset 0 0 0 1px rgba(191,123,60,.33); display: flex; flex-direction: column; gap: .4rem; padding: .6rem .5rem; }
.case-tray-card[hidden] { display: none; }
.case-tray-card__slot { align-items: flex-end; display: flex; justify-content: center; min-height: 150px; pointer-events: none; }
.case-tray-card .case-placed { position: static; transform: none; }
.case-tray-card__label { text-align: center; }
.case-tray-card__label strong { display: block; font-size: .78rem; line-height: 1.15; }
.case-tray-card__label span { color: #c9b07a; font-size: .72rem; }
.case-selection__size { align-items: center; display: inline-flex; font-size: .85rem; gap: .4rem; }
.case-selection__size[hidden] { display: none; }
.case-selection__size output { min-width: 3em; }
.case-tray-card .case-scale { transform: none !important; }

/* Caption controls in the editor's selection bar. */
.case-caption-panel { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem 1rem; margin: -.2rem 0 .8rem; }
.case-caption-panel.is-off { opacity: .45; }
.case-caption-panel label { align-items: center; display: inline-flex; font-size: .85rem; gap: .4rem; }
.case-caption-panel input[type="text"] { max-width: 11rem; }
