/* Small purple reminder tokens, composed from existing local role artwork. */
.g-reminder-token.g-button{--reminder-size:84px;width:var(--reminder-size);height:var(--reminder-size);min-height:var(--reminder-size);padding:0;position:relative;flex:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;border:2px solid #08080c;border-radius:50%;background:#302238 url("../../theme/reminder1.png") center/100% 100% no-repeat;color:#efe0ae;box-shadow:inset 0 0 8px #a780c833,0 2px 5px #0007;cursor:pointer;touch-action:manipulation;overflow:hidden}
.g-reminder-token.g-button:hover{border-color:#d2b179;background-color:#5a3e6a;box-shadow:0 0 0 2px #d4bd7666}.g-reminder-token.g-button:disabled{opacity:.35;cursor:default}.g-reminder-token.g-button span{display:block;min-width:0;min-height:0;max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;background:none;white-space:normal;overflow:visible}.g-reminder-token.g-button .g-reminder-art{position:absolute;left:16%;top:7%;display:grid;place-items:center;width:68%;height:64%;line-height:1;pointer-events:none}.g-reminder-token.g-button.kind-role .g-reminder-art{left:8%;top:3%;width:84%;height:88%;z-index:0}.g-reminder-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 1px #111);pointer-events:none}.g-reminder-art .g-question{font-size:calc(var(--reminder-size)*.3);color:#d3bce4;line-height:1}.g-reminder-token .g-reminder-caption-arc{position:absolute;inset:0;width:100%;height:100%;font-family:Georgia,"Songti SC",SimSun,serif;font-size:clamp(12px,calc(var(--reminder-size)*.23),19px);font-weight:800;overflow:visible;pointer-events:none;z-index:1}.g-reminder-caption-arc text{fill:#eee0b6;stroke:#211329;stroke-width:1.4px;paint-order:stroke fill;stroke-linejoin:round;filter:drop-shadow(0 0 .6px #ffe9a566)}.g-reminder-token .g-reminder-custom-caption{position:absolute;inset:0;width:100%;height:100%;font-family:Georgia,"Songti SC",SimSun,serif;font-weight:800;overflow:visible;pointer-events:none}.g-reminder-custom-caption text{fill:#241c29;stroke:#e9dba9;stroke-width:1.4px;paint-order:stroke fill;stroke-linejoin:round;filter:drop-shadow(0 0 .6px #ffe9a566)}.g-reminder-token.kind-good .g-reminder-art,.g-reminder-token.kind-evil .g-reminder-art{left:21%;top:8%;width:58%;height:62%}.g-reminder-token.kind-poison{border-color:#411b2a}.g-reminder-token.kind-drunk{border-color:#223e68}
.g-seat .g-reminder-add{width:var(--reminder-size);height:var(--reminder-size);min-height:var(--reminder-size);flex:none;display:grid;place-items:center;padding:0;border:2px solid #08080c;border-radius:50%;background:url("../../theme/plus1.png") center/100% 100% no-repeat,#302238 url("../../theme/reminder1.png") center/100% 100% no-repeat;box-shadow:0 2px 5px #0007;color:#f1d79c;font-size:32px;font-weight:400;line-height:1;opacity:0;pointer-events:auto;z-index:5}.g-seat .g-reminder-add:hover,.g-seat .g-reminder-add:focus-visible{opacity:1}.g-seat .g-reminder-add:disabled{cursor:default}.g-seat .g-reminder-add:disabled:hover,.g-seat .g-reminder-add:disabled:focus-visible{opacity:.35}
.g-dialog.g-reminder-dialog{width:min(720px,calc(var(--g-viewport-width,100vw) - 24px));border-radius:10px;background:#111416f7;border-color:#606b64}.g-reminder-dialog .g-modal-head{background:#191d20;padding:12px 17px;border-color:#3f4942}.g-reminder-dialog .g-modal-head h2{font-size:19px;font-weight:500}.g-reminder-dialog .g-modal-body{padding:14px 17px 19px;max-height:calc(var(--g-viewport-height,100dvh) - 115px)}.g-reminder-search-row{display:flex;align-items:center;gap:8px;margin:0 0 9px}.g-reminder-dialog .g-reminder-search-row input{min-width:0;min-height:36px;flex:1;background:#060b0d;border-color:#3c4942;border-radius:6px;padding:7px 10px;font-size:13px}.g-reminder-search-row>.g-button{flex:none;min-height:36px;padding:5px 10px;font-size:12px;white-space:nowrap;background:#242b2c}.g-reminder-search-row>.g-button[aria-pressed=true]{background:#504832;border-color:#d7c082;color:#ffedb8}.g-reminder-dialog .g-reminder-section-label{font-size:12px;font-weight:550;color:#9ea9a0;line-height:1.6;margin:14px 0 7px}.g-reminder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:10px 5px;justify-items:center;align-items:start}.g-reminder-chips{display:flex;flex-wrap:wrap;gap:5px}.g-reminder-chips .g-button{min-height:30px;padding:4px 7px;font-size:11px;color:#decdb2;border-color:#665d6c;background:#292131;max-width:100%;overflow-wrap:anywhere}.g-reminder-dialog .g-hint{font-size:12px;line-height:1.7;margin:12px 0 0}.g-reminder-dialog #gDialogClose{min-height:30px;font-size:13px}
@media(max-width:700px){.g-seat .g-reminder-add{font-size:28px}.g-dialog.g-reminder-dialog{width:calc(var(--g-viewport-width,100vw) - 12px);max-width:calc(var(--g-viewport-width,100vw) - 12px);max-height:calc(var(--g-viewport-height,100dvh) - 12px)}.g-reminder-dialog .g-modal-head{padding:10px 12px}.g-reminder-dialog .g-modal-head h2{font-size:16px}.g-reminder-dialog .g-modal-body{padding:12px;max-height:calc(var(--g-viewport-height,100dvh) - 100px)}.g-reminder-dialog .g-reminder-search-row input,.g-reminder-search-row>.g-button{min-height:40px}.g-reminder-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:9px 3px}.g-reminder-grid .g-reminder-token{--reminder-size:76px}.g-reminder-chips .g-button{min-height:32px}}

/* Ring layouts use one straight row from each role toward the table center, without avoidance. */
.g-reminder-item{--reminder-size:84px;position:relative;flex:none;width:var(--reminder-size);height:var(--reminder-size);border-radius:50%;pointer-events:auto}
.g-reminder-item .g-reminder-token{--reminder-size:inherit}
.g-seat-reminder-list .g-reminder-item{--reminder-size:46px;margin-bottom:7px}
.g-seat-reminder-list .g-reminder-item .g-reminder-token{margin:0}
.g-reminder-token.g-button .g-reminder-face{position:absolute;inset:0;display:block;border-radius:inherit;background:inherit;transform:rotate(0deg);pointer-events:none}
.g-reminder-token[data-flipped=true] .g-reminder-face{transform:rotate(180deg)}
.g-reminder-actions{position:absolute;inset:0;display:flex;align-items:center;border-radius:50%;background:#080a10c9;opacity:0;visibility:hidden;pointer-events:none;z-index:2}
.g-reminder-item:has(:focus-visible)>.g-reminder-actions,.g-reminder-item.is-open>.g-reminder-actions{opacity:1;visibility:visible;pointer-events:auto}
@media(hover:hover) and (pointer:fine){.g-reminder-item:hover>.g-reminder-actions,.g-reminder-item:focus-within>.g-reminder-actions{opacity:1;visibility:visible;pointer-events:auto}}
.g-reminder-actions .g-reminder-action.g-button{display:grid;place-items:center;flex:1;width:0;height:100%;min-width:0;min-height:0;padding:2px;border:0;border-radius:40%;background:transparent;box-shadow:none;color:#f4f4f2;transform:none!important;animation:none!important;touch-action:manipulation}
.g-reminder-actions .g-reminder-flip.g-button{color:#f0ca65}
.g-reminder-actions .g-reminder-action:hover{background:#ffffff24}.g-reminder-actions .g-reminder-delete:hover{color:#ffb9b9;background:#9d192955}
.g-reminder-action svg{width:min(26px,100%);height:26px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.g-reminder-item:has(:focus-visible){outline:2px solid #e6c770;outline-offset:2px}
.g-seat:hover,.g-seat:focus-within{z-index:6}
.g-seat .g-seat-token,.g-seat .g-seat-name{position:relative;z-index:1}
.g-board .g-seat .g-reminder-tokens{--reminder-size:clamp(40px,calc(var(--token-size)*.48),64px);position:absolute;left:0;top:0;width:100%;height:100%;display:block;pointer-events:none;z-index:4}
.g-seat .g-reminder-tokens :is(.g-reminder-token,.g-reminder-item){--reminder-size:inherit}
.g-board .g-seat .g-reminder-tokens>:is(.g-reminder-item,.g-reminder-add){position:absolute;left:var(--marker-x,50%);top:var(--marker-y,50%);transform:translate(-50%,-50%);z-index:1}
.g-board .g-seat .g-reminder-item:hover,.g-board .g-seat .g-reminder-item:focus-within{z-index:8}
.g-board .g-seat>.g-reminder-more{position:absolute;left:calc(50% - var(--token-size)*.24 - 28px);top:calc(var(--token-size)*.85);width:26px;height:26px;min-height:26px;padding:0;border:1px solid #b298ba;border-radius:50%;background:#302238ef;color:#ecdbba;font-size:20px;line-height:1;opacity:0;pointer-events:none;z-index:5}
.g-board .g-seat:hover>.g-reminder-more,.g-board .g-seat:focus-within>.g-reminder-more{opacity:1;pointer-events:auto}
/* List layouts keep all markers inside the player's card and wrap naturally. */
.g-board.list-mode .g-seat .g-reminder-tokens{--reminder-size:40px;position:static;width:100%;height:auto;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;pointer-events:auto}
.g-board.list-mode .g-seat .g-reminder-tokens>:is(.g-reminder-item,.g-reminder-add){position:relative;left:auto;top:auto;transform:none}
.g-board.list-mode .g-seat>.g-reminder-more{top:69px}
@media(hover:none),(pointer:coarse){.g-seat .g-reminder-add,.g-board .g-seat>.g-reminder-more{opacity:.9;pointer-events:auto}}
.g-board .g-seat.dragging .g-reminder-add,.g-board .g-seat.dragging .g-reminder-tokens,.g-board .g-seat.dragging .g-reminder-token{opacity:0;pointer-events:none}
@media(max-width:700px){.g-board.list-mode .g-seat .g-reminder-tokens{--reminder-size:40px;gap:2px}.g-board.list-mode .g-seat>.g-reminder-more{top:60px}}
/* These transforms position the hit targets. Global button press effects must not replace them. */
.grimoire-page :is(.g-reminder-token,.g-reminder-item,.g-reminder-add,.g-reminder-more){transition:none!important;animation:none!important}
.grimoire-page .g-board .g-seat .g-reminder-tokens>:is(.g-reminder-item,.g-reminder-add){transform:translate(-50%,-50%)!important}
.grimoire-page .g-reminder-token,.grimoire-page .g-board.list-mode .g-seat .g-reminder-tokens>:is(.g-reminder-item,.g-reminder-add),.grimoire-page .g-reminder-more{transform:none!important}
#gDialog.g-reminder-dialog[open]{transform:none!important;transition:none!important;animation:none!important;opacity:1}
#gDialog.g-reminder-dialog::backdrop{transition:none!important;animation:none!important}
@media print{.g-reminder-add,.g-reminder-tokens,.g-reminder-more{display:none!important}}

/* Larger touch targets keep the artwork compact on crowded phone tables. */
@media (pointer:coarse){
 .g-centered-phone-ui .phone-table .g-seat .g-reminder-add::after{content:'';position:absolute;inset:-4px;border-radius:50%}
 .g-reminder-touch-actions{display:grid;gap:10px}
 .g-reminder-touch-actions .g-button{width:100%;min-height:48px}
 .g-reminder-touch-title{margin:0 0 16px;font-size:16px;font-weight:600;overflow-wrap:anywhere}
}

@media (pointer:coarse){
 .g-seat-dialog .g-seat-add-marker{min-height:44px;padding:8px 14px;font-size:14px}
 .g-reminder-dialog .g-reminder-chips .g-button{min-height:44px;padding:8px 12px}
}
/* Board marker shortcuts: tap removes; hold flips without a hover overlay. */
.g-reminder-shortcut>.g-reminder-actions{display:none!important}
.g-reminder-shortcut>.g-reminder-token{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
/* Tablets use the desktop-style board; touch users can add markers from a seat. */
.g-app.g-tablet-ui .g-seat .g-reminder-add{opacity:0;pointer-events:none}
.g-app.g-tablet-ui .g-seat:focus-within .g-reminder-add{opacity:1;pointer-events:auto}
