/* Friends: one sheet and one tray button, both absent unless cloud save is
   configured. Built to fit a 320px phone. The Court summonses and arcade
   boards that also come from friends are styled at the end. */
.sheet-friends{max-width:620px}
.fr-status:empty{display:none}
.fr-status{padding:12px;border:1px solid var(--hair-lit);border-radius:var(--r);margin:0 0 16px;color:var(--ink);overflow-wrap:anywhere}
.fr-body{min-width:0}
.fr-body section{margin:0 0 20px;min-width:0}
.fr-body h3{margin:0 0 10px;font:700 16px/1.3 var(--body)}
.fr-body h3 small{margin-left:4px;color:var(--ink-3);font-weight:600}

.fr-me{padding:14px;border:1px solid var(--hair-lit);border-radius:var(--r-lg);background:var(--glass)}
.fr-code{margin:0 0 4px;font:400 clamp(26px,9vw,38px)/1.1 var(--display);letter-spacing:.12em;color:var(--ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.fr-wait{font:500 15px/1.4 var(--body);letter-spacing:0;color:var(--ink-3)}
.fr-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fr-actions .btn{flex:1 1 140px;min-width:0;min-height:44px;justify-content:center;text-align:center;white-space:normal}
.fr-back{margin:0 0 14px}
.fr-back .btn{flex:0 1 auto}

.fr-form{margin:14px 0 0;min-width:0}
.fr-add{margin:0 0 20px}
.fr-label{display:block;margin:12px 0 6px;font-weight:700;font-size:14px}
.fr-row{display:flex;flex-wrap:wrap;gap:8px}
.fr-input{flex:1 1 180px;width:100%;min-width:0;max-width:100%;min-height:46px;padding:11px 13px;background:var(--case-mid);border:1px solid var(--hair-lit);
  color:var(--ink);border-radius:var(--r);font:16px/1.3 var(--body)}
.fr-input::placeholder{color:var(--ink-3);letter-spacing:normal;text-transform:none}
.fr-input:focus{border-color:var(--mint);outline:none}
.fr-input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.fr-code-input{text-transform:uppercase;letter-spacing:.14em}
.fr-row .btn{flex:1 1 120px;min-width:0;min-height:46px;justify-content:center;white-space:normal}

.fr-inbox{margin:0 0 20px;padding:12px 14px;border-radius:12px;line-height:1.5;border:1px solid color-mix(in srgb,var(--amber) 50%,transparent);
  background:linear-gradient(120deg,color-mix(in srgb,var(--amber) 12%,#0000),#0000);overflow-wrap:anywhere}
.fr-inbox .btn{margin-top:8px}
.fr-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fr-friend{min-width:0;padding:10px 12px;border:1px solid var(--hair);border-radius:var(--r);background:var(--glass)}
.fr-line{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.fr-who{display:grid;gap:2px;min-width:0}
.fr-who b{overflow-wrap:anywhere}
.fr-who small{color:var(--ink-2);font-size:12.5px}
.fr-more{flex:none}
.fr-menu{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fr-menu[hidden]{display:none}
.fr-menu .btn{flex:1 1 100px;min-width:0;min-height:40px;justify-content:center;white-space:normal}
.btn.fr-warn{color:var(--danger)}
.fr-confirm{margin-top:10px;padding-top:10px;border-top:1px solid var(--hair-lit)}
.fr-confirm p{margin:0;line-height:1.5;overflow-wrap:anywhere}
.fr-reasons{display:grid;gap:4px;margin:10px 0 0;padding:0;border:0}
.fr-reasons label{display:flex;align-items:center;gap:8px;min-height:34px}
.fr-empty,.fr-sent-empty{color:var(--ink-2)}
.fr-small{margin-top:4px}
.fr-sent-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fr-sent-head h3{margin:0}
.fr-sent-head .btn{min-height:44px}
.fr-sent-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.fr-sent-case{padding:12px;border:1px solid var(--hair);border-radius:var(--r);background:var(--glass);min-width:0}
.fr-sent-case p{margin:0;line-height:1.5;overflow-wrap:anywhere}
.fr-sent-case .fr-sent-meta{margin-top:4px;color:var(--ink-3);font-size:12.5px}
.fr-sent-case .fr-sent-outcome{margin-top:6px;color:var(--ink-2)}
.fr-sent-outcome[data-status="open"]{color:var(--amber)}
.fr-sent-error{line-height:1.5;overflow-wrap:anywhere}

.fr-facts{margin:0 0 12px;color:var(--ink-2)}
.fr-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,132px),1fr));gap:10px}
.fr-res{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:10px 8px 12px;text-align:center;border:1px solid var(--hair);border-radius:var(--r);background:var(--glass)}
.fr-res h4{max-width:100%;margin:4px 0 0;font:700 15px/1.25 var(--body);overflow-wrap:anywhere}
.fr-mood,.fr-traits{max-width:100%;margin:0;font-size:12.5px;line-height:1.4;color:var(--ink-2);overflow-wrap:anywhere}
.fr-traits{color:var(--ink-3)}
.fr-res .btn{width:100%;min-height:40px;margin-top:auto;justify-content:center;white-space:normal}
.fr-res-art{display:flex;align-items:flex-end;justify-content:center;width:96px;max-width:100%;height:96px}
.fr-res-art>span{display:flex;align-items:flex-end;justify-content:center;width:100%;height:100%}
.fr-res-art .sprite{width:100%;height:100%;--pet-h:90px}
.fr-missing{width:70%;height:auto;color:var(--ink-3)}
.fr-serve{display:flex;align-items:center;gap:12px;margin:0 0 6px;min-width:0}
.fr-serve p{margin:0;min-width:0;line-height:1.5;overflow-wrap:anywhere}
.fr-serve .fr-res-art{flex:none;width:72px;height:72px}
.fr-serve .fr-res-art .sprite{--pet-h:68px}

.tray-section .fr-tray{grid-column:1/-1}
.fr-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:99px;background:var(--pink);color:#1A1220;
  font:700 12px/1 var(--body);font-style:normal;vertical-align:1px}
.fr-badge[hidden]{display:none}

/* Summonses in the Shelf Court lobby */
.sc-summons{margin:0 0 12px;padding:10px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--pink) 45%,transparent);
  background:linear-gradient(120deg,color-mix(in srgb,var(--pink) 10%,#0000),#0000);min-width:0}
.sc-summons h3{margin:0 0 6px;font:700 11px/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--pink)}
.sc-summons p{margin:0;font:500 14px/1.45 var(--body);color:var(--ink);overflow-wrap:anywhere}
.sc-summons-case+.sc-summons-case,.sc-verdict+.sc-summons-case,.sc-summons-note+*{margin-top:10px;padding-top:10px;border-top:1px solid var(--hair)}
.sc-summons-problem{display:block;color:var(--ink-2)}
.sc-summons .sc-actions{margin-top:8px}
.sc-summons .sc-actions .btn{flex:0 1 auto;min-height:40px;white-space:normal}
.sc-summons .sc-verdict{color:var(--ink-2)}
.sc-summons-note{color:var(--ink-2)}
.fr-verdicts{margin:0;padding-left:20px;display:grid;gap:6px;line-height:1.5;overflow-wrap:anywhere}

/* Friends today, on the arcade's daily challenge */
.ar-board{display:grid;gap:6px;align-self:stretch;margin:0;padding:12px 14px;border-radius:12px;border:1px solid var(--hair-lit);background:var(--glass);text-align:left;min-width:0}
.ar-board-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.ar-board-list li{display:grid;grid-template-columns:2ch minmax(0,1fr) auto;gap:10px;align-items:baseline;font-size:14px}
.ar-board-list li.me{color:var(--ar-accent,#F6C768);font-weight:700}
.ar-board-list b{font-variant-numeric:tabular-nums;color:var(--ink-3)}
.ar-board-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ar-board-list em{font-style:normal;font-variant-numeric:tabular-nums}
.ar-board-note{margin:0;font-size:12.5px;color:var(--ink-2)}
.summons-notice{flex-wrap:wrap;background:var(--paper);color:#392937;border-bottom:1px solid #9b8174}
.summons-notice span{flex:1 1 220px;max-width:680px}
.summons-notice .btn{color:#392937;border-color:#9b8174;min-height:44px}
