/* Product UI refinement. Rules, card IDs and game saves are untouched. */
.app-header .brand{text-decoration:none;align-items:center;gap:9px}.app-header .brand h1{font:750 23px/1.15 -apple-system,BlinkMacSystemFont,'PingFang SC',Arial,sans-serif;letter-spacing:-.025em}.app-header .brand-symbol{width:35px;height:35px}.app-header .brand-sub{display:none!important}.header-controls{align-items:center}.header-controls button{min-height:40px;font-size:12px;padding:7px 9px;gap:5px}.header-menu-icon{width:14px}
body[data-shared-flower=true] .player-title .level{display:none}.shared-flower{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:var(--sz-logo-paper);font:600 10px/1.25 Arial,'PingFang SC',sans-serif;color:var(--sz-flower-deep)}.shared-flower[hidden]{display:none}.topline .tabs{order:0}.shared-flower{order:1}.topline #hr-reference:not(.hr-side){position:relative;left:auto;top:auto;transform:none;order:2}.topline #match-meta{order:3;white-space:nowrap}.topline{gap:7px}.topline #hr-reference:not(.hr-side) #hr-panel{position:fixed;left:50%;right:auto;top:calc(var(--header,94px) + 40px);transform:translateX(-50%)}
.player-head .player-title{font-weight:650}.player-zone .wound-group:has(.empty){display:none}.player-zone .wound-group:not(:has(.empty)){padding-block:3px}.table{box-shadow:none;border-radius:18px}.table .tabs button{min-height:28px}.actionbar{border-radius:10px;box-shadow:none}.action-buttons button{border-radius:8px;min-height:40px}.card.selected{--card-raise:-7px}.card:focus-visible{outline:2px solid var(--sz-flower-deep);outline-offset:2px}
@media(min-height:651px){.app-main:not(.is-replay){--handw:64px;--handh:92px;--handstep:37px;--handrank:28px}.app-header,.app-main{--header:94px}.app-header{height:var(--header)}.topline .meta{font-size:9px}.player-zone{max-width:780px}}
@media(min-width:761px) and (min-height:651px){.app-main:not(.is-replay){--handw:76px;--handh:108px;--handstep:44px;--handrank:30px}.app-header,.app-main{--header:82px}.app-header .brand h1,html[lang=en] .app-header .brand h1{font-size:23px}.app-header .brand-symbol{width:38px;height:38px}.shared-flower{font-size:11px}.topline .meta{font-size:11px}}
@media(max-width:400px){.app-header .brand h1{font-size:21px}html[lang=en] .app-header .brand h1{font-size:18px}.app-header .brand-symbol{width:30px;height:30px}.app-header .brand{gap:7px}.topline{gap:5px}.shared-flower{font-size:9px;padding-inline:5px}.topline #hr-toggle{min-height:28px!important}.header-controls button{padding-inline:6px}}
@media(max-width:360px){.app-main:not(.is-replay){--handw:52px;--handh:76px;--handstep:30px;--handrank:22px}.app-header .brand h1{font-size:19px}html[lang=en] .app-header .brand h1{font-size:16px}.app-header .brand-symbol{width:27px;height:27px}.shared-flower{font-size:8px;gap:3px}.topline #match-meta{font-size:8px}.table .tabs button{font-size:9px;padding-inline:4px}}
@media(max-height:650px) and (min-height:481px){.app-main:not(.is-replay){--handw:52px;--handh:74px;--handstep:30px;--handrank:22px}.app-header,.app-main{--header:82px}.app-header .brand-symbol{width:27px;height:27px}.app-header .brand h1{font-size:19px}}
@media(max-height:480px) and (min-width:480px){.app-header .brand-symbol{width:25px;height:25px}.app-header .brand h1,html[lang=en] .app-header .brand h1{font-size:16px}.header-controls button{min-height:30px}.shared-flower{font-size:8px}.topline #match-meta{font-size:8px}}
/* Short portrait screens need room for the full defense-exchange flow. */
@media(max-width:599px) and (max-height:650px){.app-main:not(.is-replay){--handw:42px;--handh:58px;--handstep:27px;--handrank:18px}.battle{--combatw:28px;--combath:40px;--combatrank:16px}.actionbar.is-hand-exchange h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.actionbar.is-hand-exchange{padding:3px 6px;column-gap:6px}.actionbar.is-hand-exchange #action-description{font-size:9px;line-height:12px}.actionbar.is-hand-exchange .action-buttons button{min-height:26px;font-size:9px;padding-block:4px}}
@media(max-width:599px) and (max-height:650px){.player-zone .wound-group:not(:has(.empty)){padding-block:0}.table{gap:2px}.app-main:not(.is-replay){--woundh:38px}.actionbar.is-hand-exchange #selection-preview{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.header-controls button{min-height:30px;padding-block:4px}.app-header .brand-symbol{width:25px;height:25px}}
