.key-signatures,.key-position{display:grid;gap:.6rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.key-position{border-bottom:1px solid #ddd;padding:.45rem 0}
#key-sign-pad{display:block;width:100%;height:clamp(150px,38vh,320px);background:#fff;border:1px solid #8d1248;border-radius:6px;touch-action:none}
.key-signatures img,.key-photo-view{max-width:100%;max-height:260px;object-fit:contain}
@media(max-width:600px){.key-signatures,.key-position{grid-template-columns:minmax(0,1fr)}}

#key-sign-dialog{box-sizing:border-box;width:min(94vw,850px);max-height:94vh;overflow:auto;border:1px solid #8d1248;border-radius:12px;padding:1rem}
#key-sign-dialog::backdrop{background:#171019a6}
.key-photo-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.key-photo-actions label{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.key-photo-actions input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.key-photo-actions label:focus-within{outline:2px solid #8d1248;outline-offset:2px}

.key-overdue{display:inline-block;margin:.35rem .6rem .35rem 0;padding:.25rem .55rem;border-radius:6px;background:#fce8e8;color:#941924;font-weight:700}
