/* Original native CSS, inspired by the hierarchy of shadcn/ui and Magic UI.
   Preserve the compact mobile document flow and all feature contracts. */
:root { --uya-ink:#292e3d; --uya-muted:#717587; --uya-purple:#7357bc; --uya-border:#e5e5ed; --bili-ink:#292e3d; --bili-muted:#717587; --bili-purple:#7357bc; }
body.uya-page { color:var(--uya-ink); background:radial-gradient(ellipse at 5% 5%,#e7e2f8a6,transparent 46%),radial-gradient(ellipse at 95% 15%,#daf0e77a,transparent 44%),#f6f7f9; }
.uya-page :is(button,a,input,select,summary):focus-visible { outline:2px solid #7357bc; outline-offset:3px; }
.uya-page .uya-brand { color:#303345; font-weight:750; letter-spacing:-.3px; }
.uya-page .uya-brand-mark { border-radius:11px; border:1px solid #ded5f0; background:#f0eafa; color:#7357bc; box-shadow:none; }
.uya-page .uya-brand small { color:#767b8b; letter-spacing:1.2px; }
.uya-page .uya-live-link { color:#4d5364; border-color:#e1e2e9; border-radius:8px; background:#ffffffb8; }
.uya-page .uya-live-link:hover { border-color:#bcaadb; background:#f4effc; color:#6344a1; }
.uya-page .uya-eyebrow { color:#877c9d; font-size:9px; letter-spacing:1.7px; }
.uya-page .uya-song-heading h2 { color:#303345; letter-spacing:-.9px; font-weight:750; }
.uya-page .uya-song-heading::before,.uya-page .uya-song-heading::after { display:none; }
.uya-page .uya-heading-note { color:#838798; font-size:11px; }
.uya-page .uya-profile { border:1px solid #e1deeb; border-radius:12px; background:linear-gradient(145deg,#f0eafa,#fafbfc 75%); }
.uya-page .uya-profile-stats { border-color:#e2ddeb; }
.uya-page .uya-profile-stats div+div { border-color:#e2ddeb; }
.uya-page .uya-profile-stats strong { color:#454254; font-variant-numeric:tabular-nums; }
.uya-page .uya-sign,.uya-page .uya-profile-caption { color:#79738a; }
.uya-page .uya-note { border:1px solid #e9e3d9; border-radius:10px; background:#fbf8f1; }
.uya-page .uya-note p { color:#81735e; }
.uya-page .bili-hub__card,.uya-page .bili-hub--desktop .bili-hub__card { border:1px solid #e4e4ec; border-radius:10px; background:#fafafe; box-shadow:none; }
.uya-page .bili-hub__card.bili-hub__live { background:#eef6f2; border-color:#ddeae3; }
.uya-page .bili-hub__card.bili-hub__latest { background:#f3f0fa; border-color:#e6dfef; }
.uya-page .bili-hub .bili-hub__card.douyin-card { background:#f9f1f4; border:1px solid #ebdfe5; border-radius:10px; }
.uya-page a.bili-hub__card:hover { background:#fff; border-color:#c6b6dd; box-shadow:0 3px 12px #41375508; }
.uya-page .bili-hub__label,.uya-page .bili-hub__latest-meta { color:#7c778c; }
.uya-page .bili-hub__latest-title,.uya-page .bili-hub__name { color:#414052; }
.uya-page .bili-hub__live-title { color:#65786e; }
.uya-page .bili-hub__action { color:#4c7b68; }
.uya-page .bili-hub--desktop .vs-open { border-radius:5px; background:#ece6f6; color:#70519f; }
.uya-page .bili-weekly { border:1px solid #e4e2eb; border-radius:10px; background:#f8f7fc; }
.uya-page .bili-weekly h3 { color:#56506a; }
.uya-page .bili-weekly__preview { border-radius:6px; background:#eeebf4; }
.uya-page .search_form { border:1px solid #ccc0e1; border-radius:10px; background:#fff; box-shadow:0 2px 6px #31234104; transition:border-color .18s,box-shadow .18s; }
.uya-page .search_form:focus-within { border-color:#9579c6; box-shadow:0 0 0 3px #9579c61c; }
.uya-page .search_form::after { display:none; }
.uya-page .uya-search-icon { color:#9885b3; }
.uya-page .search_input { color:#383c4d; }
.uya-page .search_input::placeholder { color:#8b8999; }
.uya-page .search_button { background:#7357bc; border-radius:7px; font-weight:600; }
.uya-page .search_button:hover { background:#6245a6; }
.uya-page.has-song-tools #type_list button,.uya-page.uya-compact.has-song-tools #type_list button { border-radius:7px; border-color:transparent; background:#eeedf4; color:#777286; }
.uya-page.has-song-tools #type_list button:hover { background:#e9e1f4; }
.uya-page.has-song-tools #type_list button[aria-pressed=true],.uya-page.uya-compact.has-song-tools #type_list button[aria-pressed=true] { color:#fff; border-color:#7357bc; background:#7357bc; font-weight:650; }
.uya-page.has-song-tools #type_list button[data-tag="★学歌"],.uya-page.has-song-tools #type_list button[data-tag="学歌"] { color:#966d32; background:#f7ecd8; }
.uya-page.has-song-tools #type_list button[data-tag="★学歌"][aria-pressed=true],.uya-page.has-song-tools #type_list button[data-tag="学歌"][aria-pressed=true] { color:#fff; border-color:#986f37; background:#986f37; }
.uya-page .song-tool-button,.uya-page .song-tool-sort { color:#706881; background:#ffffff9c; border-color:#e0dce8; border-radius:6px; }
.uya-page .song-tool-button:hover { background:#f1eafb; border-color:#bfa8da; }
.uya-page .song-tool-button[aria-pressed=true] { color:#684699; background:#ece3f7; border-color:#c5b0df; }
.uya-page .song-tools-status { color:#6c6578; font-variant-numeric:tabular-nums; }
.uya-page .song-tools-status::before { animation:none; color:#af98ce; }
.uya-page #songs_list { scrollbar-color:#cfc7df transparent; }
.uya-page .song-tools-item,.uya-page.uya-compact .song-tools-item { --song-accent:#7556b0; --song-edge:#b29ad7; --song-tint:#eee8fa; --song-wash:#faf8ff; --song-line:#e5dcf2; }
.uya-page .song-tools-item[data-song-tone="rose"],.uya-page.uya-compact .song-tools-item[data-song-tone="rose"] { --song-accent:#a45578; --song-edge:#d79bb8; --song-tint:#f9e8ef; --song-wash:#fff9fc; --song-line:#eedbe4; }
.uya-page .song-tools-item[data-song-tone="mint"],.uya-page.uya-compact .song-tools-item[data-song-tone="mint"] { --song-accent:#3c7c69; --song-edge:#8bbda9; --song-tint:#e4f2eb; --song-wash:#f8fcfa; --song-line:#d5e8de; }
.uya-page .song-tools-item[data-song-tone="amber"],.uya-page.uya-compact .song-tools-item[data-song-tone="amber"] { --song-accent:#976e36; --song-edge:#d2b383; --song-tint:#f9efdd; --song-wash:#fffdf8; --song-line:#eddfc7; }
.uya-page.has-song-tools .song-tools-item,.uya-page.uya-compact.has-song-tools .song-tools-item { border:1px solid var(--song-line); border-left:3px solid var(--song-edge); border-radius:9px; background:linear-gradient(112deg,var(--song-tint),var(--song-wash) 88%); box-shadow:none; }
.uya-page.has-song-tools .song-tools-item:hover { border-color:var(--song-edge); }
.uya-page.has-song-tools .song-tools-item.is-favorite { box-shadow:inset -3px 0 #cd89ae; }
.uya-page .uya-song-name,.uya-page.uya-compact .uya-song-name { color:#373443; font-weight:650; letter-spacing:0; }
.uya-page .uya-song-singer,.uya-page.uya-compact .uya-song-singer { color:#6c6578; }
.uya-page .song-tools-item .claim { color:#94662f; }
.uya-page .song-extra .info_tag,.uya-page.uya-compact .song-extra .info_tag { color:var(--song-accent); background:#ffffffb8; border:1px solid var(--song-line); border-radius:4px; }
.uya-page .song-quick-actions .song-copy,.uya-page.uya-compact .song-quick-actions .song-copy { border-color:var(--song-accent); background:var(--song-accent); color:#fff; border-radius:6px; font-weight:600; }
.uya-page .song-quick-actions .song-more,.uya-page.uya-compact .song-quick-actions .song-more { border-color:var(--song-line); background:#ffffff8f; color:var(--song-accent); border-radius:6px; }
.uya-page .song-quick-actions .song-more[aria-expanded=true],.uya-page.uya-compact .song-quick-actions .song-more[aria-expanded=true] { border-color:var(--song-edge); background:#fff; }
.uya-page .song-tools-item.is-expanded { border-color:var(--song-edge); }
.uya-page .song-tools-item.is-expanded .song-extra { border-top:1px solid var(--song-line); }
.uya-page .song-extra .song-item-actions { justify-content:flex-start; }
.uya-page :is(.uya-profile,.bili-hub__card,.song-tools-item,.bili-weekly).has-polish-pointer { background-image:radial-gradient(220px circle at var(--polish-x,50%) var(--polish-y,50%),#ffffffbf,transparent 80%),linear-gradient(112deg,var(--song-tint,#eee9f8),var(--song-wash,#fafbfc)); }
.uya-page #type_list.has-scroll-after { mask-image:linear-gradient(to right,#000 calc(100% - 14px),transparent); }
.uya-page #type_list.has-scroll-before { mask-image:linear-gradient(to right,transparent,#000 14px); }
.uya-page #type_list.has-scroll-before.has-scroll-after { mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent); }
/* A toolbar mask would also clip its fixed return-to-top child. */
.uya-page .song-tools.has-scroll-after { box-shadow:inset -12px 0 10px -12px #786d90; }
.uya-page .song-tools.has-scroll-before { box-shadow:inset 12px 0 10px -12px #786d90; }
.uya-page .song-tools.has-scroll-before.has-scroll-after { box-shadow:inset 12px 0 10px -12px #786d90,inset -12px 0 10px -12px #786d90; }
/* Dialogs share one calm surface; existing height/scroll and art modes remain intact. */
.uya-page :is(.song-random-dialog,.vs-dialog,.community-dialog,.bili-weekly-dialog,.uya-art-dialog) { border:1px solid #ddd8e7; border-radius:14px; background:#fafafd; color:#353447; box-shadow:0 24px 80px #23203526; }
.uya-page dialog::backdrop { background:#29263869; backdrop-filter:blur(4px); }
.uya-page .vs-dialog .vs-panel-head,.uya-page .bili-weekly-dialog__head { background:#fafafd; border-bottom:1px solid #e8e4ee; }
.uya-page .vs-panel>details { border:1px solid #e5e1ed; border-radius:9px; background:#fff; }
.uya-page .vs-panel>details[open] { border-color:#cab9e0; }
.uya-page .vs-panel summary { color:#5e4c76; }
.uya-page .vs-growth-grid>div { border:1px solid #e6dfef; border-radius:8px; background:#f4f0fa; }
.uya-page .bili-hub--mobile { border:1px solid #ded8e7; border-radius:16px 16px 0 0; background:#f8f9fc; box-shadow:0 -12px 55px #27203b1a; }
.uya-page .bili-mobile-trigger { border-radius:7px; background:#eeebf5; border-color:#e0d8ed; color:#6b558b; }
.uya-page .uya-art-trigger>span { border-radius:10px; border-color:#d7c7e8; }
.uya-page footer a { color:#91899c; }
.uya-page .uya-bgm { border-color:#e2dce9; background:#f9f8fc; }
.uya-page .uya-bgm__button { border-radius:7px; }
@media(min-width:801px) {
 .uya-page .uya-header { padding-top:10px; padding-bottom:10px; }
 .uya-page .uya-layout { grid-template-columns:208px minmax(0,1fr); gap:22px; }
 .uya-page .uya-profile { display:grid; grid-template-columns:54px minmax(0,1fr); gap:14px 10px; padding:18px 14px; text-align:left; }
 .uya-page .uya-portrait { width:54px; height:54px; margin:0; align-self:start; }
 .uya-page .uya-portrait img { border-width:3px; border-radius:15px; box-shadow:none; }
 .uya-page .uya-portrait>span { display:none; }
 .uya-page .uya-profile h1 { font-size:21px; line-height:1.3; letter-spacing:0; }
 .uya-page .uya-profile-name .uya-eyebrow { font-size:8px; margin:1px 0 5px; letter-spacing:1px; }
 .uya-page .uya-profile-caption { font-size:10px; margin:5px 0 0; line-height:1.6; }
 .uya-page .uya-profile-stats { grid-column:1/-1; padding:11px 0; text-align:center; }
 .uya-page .uya-profile-stats strong { font-size:16px; }
 .uya-page .uya-sign { grid-column:1/-1; margin:0; font-size:11px; line-height:1.75; }
 .uya-page .uya-sign:empty { display:none; }
 .uya-page .uya-sidebar .bili-weekly { flex-direction:column; align-items:stretch; gap:9px; padding:12px; margin:12px 0 0; }
 .uya-page .uya-sidebar .bili-weekly__preview { width:100%; flex-basis:auto; }
 .uya-page .uya-sidebar .bili-weekly__preview img { height:86px; }
 .uya-page .uya-sidebar .bili-weekly__content { order:-1; }
 .uya-page .uya-sidebar .bili-weekly__links { gap:12px; margin-top:6px; }
 .uya-page .uya-sidebar .bili-weekly__meta { font-size:10px; }
 .uya-page .uya-note { padding:12px 14px; margin-top:12px; }
 .uya-page .uya-note p { font-size:11px; line-height:1.7; margin:4px 0 0; }
 .uya-page .uya-listening-note { padding:16px 12px; }
 .uya-page .uya-listening-note p { font-size:14px; line-height:1.7; }
 .uya-page .uya-song-heading { padding:3px 0 10px; }
 .uya-page .uya-song-heading h2 { font-size:24px; }
 .uya-page .uya-song-heading .uya-eyebrow { margin-bottom:5px; }
 .uya-page .bili-hub--desktop { height:88px; min-height:88px; margin-bottom:12px; gap:8px; }
 .uya-page .bili-hub--desktop .bili-hub__card { padding:9px 10px; }
 .uya-page .search_form { margin-bottom:9px; }
 .uya-page .song-tools-container { margin-bottom:8px; }
 .uya-page .song-tools { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding:2px 0; }
 .uya-page .song-tools>.song-tool-button,.uya-page .song-tools>.song-tool-sort { flex-shrink:0; white-space:nowrap; }
 .uya-page .song-tools::-webkit-scrollbar { display:none; }
 .uya-page .song-tools-status { margin-top:5px; }
 .uya-page #songs_list { gap:7px 10px; padding:1px 4px 12px 0; }
 .uya-page.has-song-tools .song-tools-item { grid-template-columns:minmax(0,1fr) auto; column-gap:8px; row-gap:5px; padding:8px 9px 8px 11px; min-height:64px; }
 .uya-page .song-tools-item .song_info { grid-column:1; grid-row:1; gap:2px; align-self:center; font-size:14px; line-height:1.4; }
 .uya-page .uya-song-singer { font-size:11px; }
 .uya-page .song-quick-actions { display:flex; grid-column:2; grid-row:1; gap:4px; align-items:center; }
 .uya-page .song-quick-actions .song-tool-button { min-height:32px; padding:5px 7px; font-size:11px; white-space:nowrap; }
 .uya-page .song-quick-actions .song-more { display:inline-block; }
 .uya-page .song-tools-item .claim { grid-column:1/-1; grid-row:2; font-size:11px; }
 .uya-page .song-extra { display:none; }
 .uya-page .song-tools-item.is-expanded .song-extra { display:flex; flex-wrap:wrap; grid-column:1/-1; grid-row:3; gap:7px; padding-top:8px; }
 .uya-page .song-extra .info_tag_area,.uya-page .song-extra .song-item-actions { flex:1 1 100%; margin:0; }
 .uya-page .song-extra .song-item-actions { flex-wrap:wrap; }
}
@media(min-width:1200px) {
 body.is-desktop-template.has-uya-background { --uya-background-lane:clamp(320px,26vw,480px); }
 body.is-desktop-template.has-uya-background .uya-header,body.is-desktop-template.has-uya-background .uya-layout { background:#fafafded; }
 body.is-desktop-template.has-uya-background .uya-layout { grid-template-columns:194px minmax(0,1fr); gap:20px; }
 .uya-page #songs_list { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .uya-page .uya-heading-note { display:none; }
}
@media(min-width:1600px) {
 .uya-page .uya-song-heading h2 { font-size:28px; }
 body.is-desktop-template.has-uya-background .uya-layout { grid-template-columns:218px minmax(0,1fr); gap:26px; }
}
@media(min-width:801px) and (max-width:1199px) {
 .uya-page .bili-hub.bili-hub--desktop { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .uya-page .bili-hub--desktop .bili-hub__profile { display:none; }
}
/* A narrowed desktop window still needs its weekly schedule without a mobile drawer. */
@media(max-width:800px) {
 .uya-page.is-desktop-template .uya-sidebar { display:contents; }
 .uya-page.is-desktop-template .uya-sidebar>:not(.bili-weekly) { display:none; }
 .uya-page.is-desktop-template .uya-sidebar .bili-weekly { margin:0 0 10px; }
}
/* No extra vertical space on compact screens: 52px header, 55px base rows. */
body.uya-page.uya-compact { background:radial-gradient(ellipse 28rem 22rem at 0 0,#eae5f88c,transparent),radial-gradient(ellipse 24rem 30rem at 100% 10rem,#e2f1e978,transparent),#f8f9fc; }
.uya-page.uya-compact .search_form { background:#ffffffdf; border-color:#cebfdf; }
.uya-page.uya-compact .search_form:focus-within { border-color:#9675c1; box-shadow:0 0 0 2px #9675c124; }
.uya-page.uya-compact .search_button { background:#7357bc; }
.uya-page.uya-compact .song-tools>.song-tool-button,.uya-page.uya-compact .song-tool-sort { background:#ffffffa6; }
.uya-page.uya-compact .song-tools>.song-tool-button[aria-pressed=true] { background:#e9dff5; }
.uya-page.uya-compact.has-song-tools .song-tools-item { padding:6px 6px 6px 9px; }
.uya-page.uya-compact .song-tools-item.is-expanded .song-extra { padding-top:6px; }
.uya-page.uya-compact footer { background:#f9f9fcf5; border-top-color:#e5e0ec; }
.uya-page.uya-compact .song-return-top { background:#fff; border-radius:8px; }
@media(max-width:600px) { .uya-page .uya-art-dialog { border-radius:0; } }
@media(prefers-reduced-motion:no-preference) {
 body.uya-page[data-uya-effects="on"]:not([data-uya-effects-paused="true"]) .song-tools-item.is-expanded .song-extra { animation:uya-polish-reveal .2s ease-out both; }
 body.uya-page[data-uya-effects="on"]:not([data-uya-effects-paused="true"]) dialog[open] { animation:uya-polish-dialog .22s cubic-bezier(.2,.75,.25,1) both; }
 body.uya-page[data-uya-effects="on"]:not([data-uya-effects-paused="true"]) :is(.song-tool-button,.search_button,.bili-mobile-trigger,.uya-live-link):active { transform:scale(.96); }
}
@keyframes uya-polish-reveal { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
@keyframes uya-polish-dialog { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
