/* 0.3.96 — shared usability layer; no rule data or character schema changes. */
:root{--um-scroll-thumb:#317b5d;--um-scroll-track:#dbe4dc}
*{scrollbar-width:auto;scrollbar-color:var(--um-scroll-thumb) var(--um-scroll-track)}
*::-webkit-scrollbar{width:18px;height:18px}
*::-webkit-scrollbar-track{background:var(--um-scroll-track);border-radius:4px}
*::-webkit-scrollbar-thumb{background:var(--um-scroll-thumb);border:3px solid var(--um-scroll-track);border-radius:8px;min-height:40px}
*::-webkit-scrollbar-thumb:hover{background:#135638}
.character-tabs,.build-nav,.workspace-scroll,.roster-list,.table-messages,.table-people-list,.game-recorder-body{scrollbar-width:auto}
:is(button,input,select,textarea,a):focus-visible{outline:3px solid #ba7a14;outline-offset:2px}
.btn,.icon-btn,.btn.small,.btn.tiny,.table-app .btn.tiny{min-height:32px;font-size:max(12px,.75rem);line-height:1.25}
.field,.select,.textarea{font-size:max(13px,.81rem)}
.form-grid>*{min-width:0}
.panel-title,.section-heading,.subheading,.table-room-header,.table-message header{overflow-wrap:anywhere}
.panel-title{padding:6px 9px;letter-spacing:.015em;flex-wrap:wrap}
.panel-body{padding:9px}
.panel+.panel{margin-top:8px}
.panel,.derived-card,.equipment-card,.power-card,.talent-card{min-width:0}
.label,.xp-label{font-size:11px;letter-spacing:.025em}
.workspace-scroll{padding:8px;scroll-padding:12px}
.form-actions{gap:6px;margin-top:8px}
.game-recording-banner{padding:7px 10px;margin:5px 0;font-size:13px;line-height:1.35;border-radius:5px;letter-spacing:0}
.game-recorder-window .game-archive-actions{gap:6px}
.game-recorder-window .game-archive-actions .btn{min-height:34px}
.archive-service-checks{border:1px solid #759d87;border-radius:5px;background:#edf5ed;color:#183b2c;padding:9px;display:grid;gap:6px;line-height:1.4}
.archive-service-checks small{font-size:12px!important;color:#274b3b}
.archive-service-checks .game-recording-error{color:#9a2032}
#archive-audio-list{display:grid;gap:5px;max-height:220px;overflow:auto}
.table-device-status,#table-device-status{font-size:12px;line-height:1.4;margin:4px 0;overflow-wrap:anywhere}
.table-device-status.error,#table-device-status.error{color:#a12637}
.game-device-actions{display:flex;flex-wrap:wrap;gap:5px}
.game-device-actions .btn{flex:1 1 125px}
.table-audio-devices select{min-width:0;width:100%;text-overflow:ellipsis}
.game-room-grid>.table-people .game-room-command-line>.table-room-actions .btn,
.game-room-grid>.table-people .game-room-invite-buttons>.btn{font-size:12px;min-height:34px;padding:5px 6px;line-height:1.25}
.game-room-grid>.table-people .game-room-command-line{grid-template-columns:minmax(0,1fr)}
.game-room-grid>.table-people .game-room-command-line>.table-room-actions{display:flex;flex-wrap:wrap;gap:5px}
.game-room-grid>.table-people .game-room-command-line>.table-room-actions .btn{flex:1 1 75px;min-width:0}
.game-room-grid .table-message{padding:7px 9px;line-height:1.4}
.game-room-grid .table-message header{flex-wrap:wrap;gap:4px 10px}
.game-room-grid .table-message time{font-size:11px}
.game-chart-card .game-chart-effects{line-height:1.45}
.table-audio-devices small{font-size:12px}
.um-select-wrap{display:inline-grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;width:100%;min-width:0;vertical-align:middle}
.um-select-wrap>select{min-width:0;width:100%;max-width:100%}
.um-select-find{min-height:32px;padding:4px 7px;background:#174e37;color:white;border:1px solid #408667;border-radius:4px;font-size:12px;font-weight:700;white-space:nowrap}
.um-select-wrap.um-search-inactive{grid-template-columns:minmax(0,1fr)}
.um-select-find[hidden]{display:none!important}
@media(min-width:900px){.topbar{min-height:62px;padding-top:6px;padding-bottom:6px;gap:10px}.brand img{height:46px}.character-head{padding:7px;gap:9px}}
@media(pointer:coarse){.btn,.btn.small,.btn.tiny,.icon-btn,.table-app .btn.tiny,.build-tab,.character-tab,.um-select-find,.um-find-option,.um-find-close,.um-find-more{min-height:44px} .field,.select,.textarea,.um-find-popover input{min-height:44px;font-size:16px}.checkbox-row,.game-archive-consent{min-height:44px} }
@media(max-width:650px){.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.um-find-popover{font-size:15px}.panel-body{padding:8px}}
@media(prefers-reduced-motion:reduce){.btn,.icon-btn{transition:none!important}.btn:hover,.icon-btn:hover{transform:none!important}}
@media(forced-colors:active){*{scrollbar-color:auto}.um-find-option.active{outline:2px solid Highlight}.um-find-popover{border-color:CanvasText;background:Canvas;color:CanvasText}}

/* Replace every intentionally thin app scrollbar, including fixed Game docks. */
.game-room-grid>.table-people,.game-room-grid>.table-chat .table-messages,.game-bottom-tabs{scrollbar-width:auto}
.game-bottom-tabs{overflow-y:hidden;align-items:flex-start}
.game-frame:not(.dice-only-frame):not(.game-needs-login){grid-template-rows:var(--game-dice-dock-height) minmax(0,1fr) var(--um-nav-height,44px)}
.game-frame.game-needs-login,.game-frame.dice-only-frame{grid-template-rows:minmax(0,1fr) var(--um-nav-height,44px)}
@media(min-width:821px){.content-shell{display:grid;grid-template-rows:auto minmax(0,1fr)}.character-page{height:auto}}
.game-device-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.game-device-actions .btn{white-space:normal;overflow-wrap:anywhere;min-width:0;width:100%}
#table-refresh-devices{grid-column:1/-1}
@media(pointer:coarse){.game-bottom-tabs .build-tab{min-height:44px}.game-room-grid>.table-people .game-room-command-line>.table-room-actions .btn,.game-room-grid>.table-people .game-room-invite-buttons>.btn,.game-device-actions .btn{min-height:44px}}
@media print{.um-select-find,.um-find-popover{display:none!important}}
/* Light-card typography: keep emerald accents without pale text on ivory. */
.identity-three-pane .image-label,.identity-three-pane .zoom-row .label{color:var(--green-dark)!important}
.identity-three-pane .crop-hint{color:var(--muted);font-size:12px;line-height:1.4}
.workspace-scroll :is(.catalog-item .meta,.chosen-item .meta,.count-line,.definition-ref){font-size:12px;line-height:1.4}
.workspace-scroll .chosen-item .remove{min-width:32px;min-height:32px;flex:0 0 auto;line-height:1}
@media(pointer:coarse){.workspace-scroll .chosen-item .remove{min-width:44px;min-height:44px}}
