/* 自习室主页: a study journal page — cream paper, serif headings; 小SA standing on the left, the collection on the right. */
#saProfile.sap2{box-sizing:border-box;width:min(1180px,96vw);height:min(880px,94dvh);max-width:96vw;max-height:94dvh;padding:0;border:1px solid #cdbb98;border-radius:22px;
 background:#f6efe2;color:#3b2e22;font:14px/1.6 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;overflow:hidden;box-shadow:0 28px 110px #0008}
#saProfile[open]{display:flex;flex-direction:column}
#saProfile::backdrop{background:#1a120bb8}
.sap2 button{font:inherit;color:inherit;cursor:pointer}
.sap2-head{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid #d9caa9;background:#efe5d2}
.sap2-head h2{margin:0;flex:1;font:600 22px/1.3 'Songti SC','Noto Serif SC',serif;letter-spacing:.08em}
.sap2-nav{display:flex;gap:4px;padding:3px;border-radius:999px;background:#e2d5bb}
.sap2-tab{border:0;background:transparent;padding:6px 16px;border-radius:999px;font-size:13px}
.sap2-tab[aria-pressed=true]{background:#3b2e22;color:#f6efe2!important;font-weight:700}
.sap2-close{border:1px solid #bfae8a;background:transparent;border-radius:12px;padding:7px 16px}
.sap2-body{flex:1;min-height:0;overflow:auto}
.sap2-note{padding:20px;color:#7d6a52}
.sap2-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,2fr);min-height:100%}
.sap2-figure{position:sticky;top:0;align-self:start;display:grid;gap:10px;padding:18px;border-right:1px solid #dccdb0;background:radial-gradient(80% 60% at 50% 30%,#fffaf0,#f1e7d4)}
.sap2-rig{width:100%;aspect-ratio:1000/2050;max-height:62vh;border:0;border-radius:18px;background:#fffdf7;box-shadow:0 10px 26px #6b4a2a22,inset 0 0 0 1px #e3d5b8}
.sap2-wearing{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.sap2-wearing li{display:flex;align-items:baseline;gap:8px;font-size:13px}
.sap2-wearing small{color:#8d7a5f;width:2.6em}
.sap2-stars{margin-left:auto;color:#c9962f;font-size:11px;letter-spacing:-.05em}
.sap2-study{margin:0;color:#7d6a52;font-size:12.5px}
.sap2-info{display:grid;gap:16px;align-content:start;padding:18px 22px 30px}
.sap2-who{display:flex;align-items:center;gap:14px}
.sap2-avatar{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#3b2e22;color:#f6efe2;font:600 24px/1 'Songti SC',serif;overflow:hidden;flex:none}
.sap2-avatar img{width:100%;height:100%;object-fit:cover}
.sap2-name{display:grid;flex:1;min-width:0}
.sap2-name strong{font:600 22px/1.3 'Songti SC','Noto Serif SC',serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sap2-name small{color:#8d7a5f}
.sap2-score{display:grid;justify-items:end;line-height:1.15}
.sap2-score b{font:700 34px/1.25 Georgia,serif;color:#9a5d12} /* Georgia's old-style 3 4 5 7 9 drop below the line: room for them */
.sap2-score small{color:#8d7a5f;font-size:11px}
.sap2-score span{font-size:12.5px;font-weight:700;color:#3b2e22}
.sap2-parts{margin:-8px 0 0;color:#7d6a52;font-size:12.5px}
.sap2-rates{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.sap2-rate{padding:10px 12px;border-radius:12px;background:#fffaf0;border:1px solid #e3d5b8}
.sap2-rate>div:first-child{display:flex;justify-content:space-between;font-size:12.5px}
.sap2-rate>i{display:block;height:6px;margin-top:6px;border-radius:999px;background:linear-gradient(90deg,#c9962f var(--p),#eadfc8 var(--p))}
.sap2-grades{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;font-size:11.5px}
.sap2-wall h3{margin:0 0 10px;font:600 16px/1.4 'Songti SC','Noto Serif SC',serif}
.sap2-records{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sap2-record{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:5px}
.sap2-record-art{position:relative;aspect-ratio:1.5;border-radius:6px;background:#eadfc8}
.sap2-record-art>.sra-sleeve{position:absolute;left:0;top:0;height:100%;aspect-ratio:1;z-index:2;box-shadow:0 5px 12px #0004;border-radius:3px;overflow:hidden}
.sap2-record-art>.sra-disc{position:absolute;right:0;top:4%;height:92%;aspect-ratio:1;z-index:1}
.sap2-record.is-locked .sap2-record-art{background:repeating-linear-gradient(45deg,#e7dcc6 0 8px,#efe6d4 8px 16px)}
.sap2-record figcaption{display:flex;align-items:center;gap:5px;font-size:12px;min-width:0}
.sap2-record figcaption>span:not(.sra-grade){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sap2-record.is-locked figcaption{color:#a8957a}
.sap2-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
/* one column no wider than the card: an auto column grew to a long unbroken name (秋日同行 · 赤茶长发·金叶…) and took the
   picture past the card's edge into the next one */
.sap2-item{margin:0;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:4px;padding:6px;border-radius:12px;background:#fffaf0;border:1px solid #e3d5b8}
.sap2-item figcaption{display:grid;gap:3px;min-width:0;padding:0 2px 2px}
/* names break only after a · (profile.js marks the spot), inside a word only when it alone is too wide */
.sap2-item[data-rarity="6"]{border-color:#d9a441;box-shadow:inset 0 0 0 1px #f3d78a}
.sap2-item img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:8px;background:#f3ead9}
.sap2-item.is-locked img{filter:grayscale(1) opacity(.4)}
.sap2-item.is-locked{opacity:.75}
.sap2-item b{font-size:12px;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;word-break:keep-all;overflow-wrap:anywhere}
.sap2-item-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;font-size:10.5px;line-height:1.5;color:#8d7a5f}
.sap2-item-meta>span{white-space:nowrap}
.sap2-item-stars{color:#c39a45;letter-spacing:-.5px}
.sap2-board{padding:18px 22px}
.sap2-ranks{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sap2-rank{display:flex;align-items:center;gap:14px;width:100%;padding:10px 14px;border:1px solid #e3d5b8;border-radius:12px;background:#fffaf0;text-align:left}
.sap2-rank:hover{border-color:#c9962f}
.sap2-ranks li.is-self .sap2-rank{background:#fff1cf;border-color:#d9a441}
.sap2-pos{width:2em;font:700 18px/1 Georgia,serif;color:#9a5d12}
.sap2-ranks li:nth-child(-n+3) .sap2-pos{color:#c9962f}
.sap2-pts{margin-left:auto;font-weight:700}
@media (max-width:760px){
 #saProfile.sap2{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}
 .sap2-head{padding:10px 14px}.sap2-head h2{font-size:18px}
 .sap2-grid{grid-template-columns:1fr}
 .sap2-figure{position:static;border-right:0;border-bottom:1px solid #dccdb0;grid-template-columns:42% 1fr;align-items:center}
 .sap2-rig{grid-row:span 2;max-height:46vh}
 .sap2-info{padding:14px}
 .sap2-score b{font-size:28px}
}
.sap2 [hidden]{display:none!important}
/* 收藏榜 */
.sap2-board{padding:20px 24px 30px;display:grid;gap:18px}
.sap2-board-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 14px}
.sap2-board-head h3{margin:0;font:600 24px/1.3 'Songti SC','Noto Serif SC',serif;letter-spacing:.1em}
.sap2-board-head small{color:#8d7a5f;flex:1;min-width:240px}
.sap2-me{padding:5px 14px;border-radius:999px;background:#3b2e22;color:#f6efe2;font-size:12.5px;font-weight:700}
.sap2-podium{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:14px}
.sap2-pod{position:relative;display:grid;justify-items:center;gap:6px;padding:18px 14px 16px;border:1px solid #e3d5b8;border-radius:22px 22px 14px 14px;
 background:linear-gradient(180deg,#fffaf0,#f4ead6);text-align:center;box-shadow:0 10px 26px #6b4a2a1a;transition:transform .2s}
.sap2-pod:hover{transform:translateY(-3px)}
.sap2-pod[data-rank="1"]{padding-top:26px;padding-bottom:22px;border-color:#d9a441;background:linear-gradient(180deg,#fff6dc,#f6e3b4);box-shadow:0 16px 36px #b8862b33}
.sap2-pod[data-rank="2"]{border-color:#c9cdd3}
.sap2-pod[data-rank="3"]{border-color:#d9a27a}
.sap2-pod.is-self{outline:2px solid #3b2e22;outline-offset:3px}
.sap2-medal{position:absolute;top:-14px;left:50%;translate:-50% 0;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font:700 15px/1 Georgia,serif;color:#3b2e22;box-shadow:0 4px 10px #0003}
.sap2-pod[data-rank="1"] .sap2-medal{width:36px;height:36px;font-size:18px;background:radial-gradient(circle at 35% 30%,#fff5c8,#e6b23c 60%,#a8781c);color:#4a3208}
.sap2-pod[data-rank="2"] .sap2-medal{background:radial-gradient(circle at 35% 30%,#ffffff,#c9ced6 60%,#8e96a1)}
.sap2-pod[data-rank="3"] .sap2-medal{background:radial-gradient(circle at 35% 30%,#ffe2c8,#d0905e 60%,#8f5a32);color:#3b2010}
.sap2-face{display:block;width:40px;height:40px;border-radius:50%;overflow:hidden;background:#f3ead9;border:2px solid #fffaf0;box-shadow:0 2px 6px #0002;flex:none}
.sap2-face img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.sap2-face.is-big{width:76px;height:76px;border-width:3px}
.sap2-pod[data-rank="1"] .sap2-face.is-big{width:92px;height:92px}
.sap2-pod-name{font-size:14px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sap2-pod-score{font:700 30px/1.25 Georgia,serif;color:#9a5d12}
.sap2-pod[data-rank="1"] .sap2-pod-score{font-size:38px}
.sap2-pod-meta{color:#8d7a5f;font-size:11px}
.sap2-split{display:flex;width:100%;height:6px;border-radius:999px;overflow:hidden;background:#eadfc8}
.sap2-split i{display:block;height:100%}
.sap2-split i[data-part=cosmetics]{background:#d28aa0}.sap2-split i[data-part=normal]{background:#c9962f}.sap2-split i[data-part=premium]{background:#6a5acd}
.sap2-fan{display:flex;justify-content:center;min-height:30px}
.sap2-fan-disc{position:relative;display:block;width:var(--d,64px);aspect-ratio:1;margin-left:-14px;border-radius:50%;filter:drop-shadow(0 4px 6px #0004);transition:transform .2s}
.sap2-fan-disc:first-child{margin-left:0}
.sap2-fan-disc:hover{transform:translateY(-4px) rotate(8deg);z-index:2}
.sap2-fan-disc>.sra-disc{width:100%;height:100%}
.sap2-fan-disc>.sra-grade{position:absolute;right:-2px;bottom:-2px;font-size:9px;z-index:2}
.sap2-pod .sap2-fan{--d:64px}.sap2-pod[data-rank="1"] .sap2-fan{--d:76px}
.sap2-ranks .sap2-fan{--d:34px}
.sap2-rank{display:grid;grid-template-columns:2.2em 40px minmax(0,1.2fr) minmax(0,1fr) auto auto;align-items:center;gap:12px}
.sap2-rank-who{display:grid;min-width:0}
.sap2-rank-who b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sap2-rank-who small{color:#8d7a5f;font-size:11px}
.sap2-rank-bar .sap2-split{height:8px}
@media (max-width:760px){
 .sap2-board{padding:14px}
 .sap2-podium{grid-template-columns:1fr 1.1fr 1fr;gap:8px}
 .sap2-pod{padding:16px 6px 12px}
 .sap2-face.is-big{width:52px;height:52px}.sap2-pod[data-rank="1"] .sap2-face.is-big{width:62px;height:62px}
 .sap2-pod-score{font-size:22px}.sap2-pod[data-rank="1"] .sap2-pod-score{font-size:27px}
 .sap2-pod .sap2-fan{--d:40px}.sap2-pod[data-rank="1"] .sap2-fan{--d:46px}
 .sap2-pod-meta{display:none}
 .sap2-rank{grid-template-columns:2em 34px minmax(0,1fr) auto;gap:8px}
 .sap2-rank-bar,.sap2-ranks .sap2-fan{display:none}
}
.sap2-record-pts{flex:none;color:#d9b98a;font-variant-numeric:tabular-nums}
/* 高光时刻, 套装 and 首版 (2026-10-11) */
.sap2-moments{margin:0 0 18px}
.sap2-moment-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.sap2-moment{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;border:1px solid #e3d3b4;background:linear-gradient(120deg,#fffaf0,#f6ead2);text-align:left;cursor:pointer;font:inherit;color:inherit}
.sap2-moment[data-grade=SS]{background:linear-gradient(120deg,#fff4fa,#f7dcea);border-color:#ecc0d8}
.sap2-moment[data-grade=SSS]{background:linear-gradient(120deg,#f1edff,#dcd3fb);border-color:#c8b9f4}
.sap2-moment-art{position:relative;flex:none;width:52px;height:52px;border-radius:4px;overflow:hidden;box-shadow:0 3px 8px #0003;background:#eadfc8}
.sap2-moment-art>.sra-sleeve{width:100%;height:100%}
.sap2-moment-text{display:grid;gap:1px;min-width:0}
.sap2-moment-text b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sap2-moment-text small{color:#8a7458;font-size:11.5px}
.sap2-moment-text .sra-grade{justify-self:start;font-size:11px}
.sap2-sets{display:flex;gap:6px;flex-wrap:wrap;margin:-2px 0 10px}
.sap2-set{display:inline-flex;align-items:center;padding:2px 11px;border-radius:999px;font-size:12px;font-weight:700;color:#3a2507;background:linear-gradient(120deg,#fff3c4,#e6b23c);box-shadow:0 2px 8px #e6b23c55}
.sap2-first{flex:none;white-space:nowrap;font-style:normal;font-size:10.5px;font-weight:700;padding:0 6px;margin-left:4px;border-radius:999px;border:1px solid #d0a24a;color:#8a5d17}
.sap2-record.is-set .sap2-record-art::before{content:'';position:absolute;z-index:4;left:-3px;top:-3px;height:calc(100% + 6px);aspect-ratio:1;box-sizing:border-box;pointer-events:none;
 border-radius:6px;padding:2.5px;background:conic-gradient(from var(--sa-set-a,0deg),#fff6d2,#e2ad3a 18%,#8a5d17 32%,#ffd978 50%,#fffbe6 62%,#d19a2c 80%,#fff6d2);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:sa-set-spin 5s linear infinite}
@media (prefers-reduced-motion:reduce){.sap2-record.is-set .sap2-record-art::before{animation:none}}

/* 自习室主页 (profile.js): study badges and the 期中学霸 frame */
.sap2-study{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sap2-badges{display:inline-flex;gap:4px}
.sap2-badges b{display:inline-grid;place-items:center;min-width:30px;height:22px;padding:0 6px;border-radius:99px;background:radial-gradient(circle at 35% 30%,#fff1c4,#e9b44c 60%,#b9822a);color:#4a2a12;font:700 11px/1 -apple-system,sans-serif}
/* Fine brass rim and a small bookplate; leave the face unobstructed. */
.sap2-avatar.is-midterm{position:relative;overflow:visible;box-shadow:0 0 0 3px #f6efe2}
.sap2-avatar.is-midterm img{border-radius:inherit}
.sap2-avatar.is-midterm::before{content:'';position:absolute;inset:-6px;border:1px solid #ac8851;border-radius:50%;box-shadow:inset 0 0 0 2px #f6efe2,inset 0 0 0 3px #d9c7a5;pointer-events:none}
.sap2-avatar.is-midterm::after{content:'';position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);width:22px;height:15px;border-radius:4px;background:#f6efe2 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 15' fill='none' stroke='%23957643' stroke-width='1.1' stroke-linejoin='round'%3E%3Cpath d='M11 4C8.5 2.5 6 2.5 3 3v9c3-.6 5.5-.3 8 1 2.5-1.3 5-1.6 8-1V3c-3-.5-5.5-.5-8 1Zm0 0v9M6 6l3 .5M13 6.5l3-.5M6 8.5l3 .5M13 9l3-.5'/%3E%3C/svg%3E") center/20px 14px no-repeat;pointer-events:none}
.sap2-title{display:table;width:fit-content;justify-self:start;margin-top:5px;padding:1px 7px;border:1px solid #d8c7a8;border-radius:4px;background:#eee3cf;color:#775d35;font-size:10px;letter-spacing:.12em;line-height:1.6}


.sap2-split i[data-part=reading]{background:#498b78}
/* 默契：收藏榜分项和服装卡上的阶数（2026-10-23） */
.sap2-split i[data-part=resonance]{background:#4a90c2}.sap2-item-meta .sap2-item-tier{color:#3d78a6}
