/* Loading screens: opening splash (crest + ring) and a thin gold bar while the server is working */
/* ---- opening splash: gold aurora, crest with drawing ring, orbiting service icons, rotating tagline ---- */
#cd-splash { --g1: #e9a23b; --g2: #f3c27a; --g3: #b97a1f; --ink: #ece8de; --mut: #9a968c; --bg: #090b0f; --chip: rgba(20,23,30,.85); --chipline: rgba(233,162,59,.28);
  position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center; overflow: hidden; background: var(--bg); color: var(--ink);
  transition: opacity .45s ease, visibility .45s, transform .45s ease; font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; }
[data-theme="light"] #cd-splash { --ink: #24201a; --mut: #7a7264; --bg: #f7f3ea; --chip: rgba(255,255,255,.9); --chipline: rgba(185,122,31,.3); }
#cd-splash.out { opacity: 0; visibility: hidden; pointer-events: none; transform: scale(1.04); }
#cd-splash::before { content: ''; position: absolute; inset: -50%; background-image: radial-gradient(rgba(233,162,59,.16) 1px, transparent 1.4px); background-size: 26px 26px; animation: cddrift 24s linear infinite; mask-image: radial-gradient(closest-side at 50% 45%, #000 0%, transparent 70%); -webkit-mask-image: radial-gradient(closest-side at 50% 45%, #000 0%, transparent 70%); }
#cd-splash .aur { position: absolute; inset: 0; filter: blur(60px); opacity: .55; pointer-events: none; }
#cd-splash .aur i { position: absolute; width: 46vmax; height: 46vmax; border-radius: 50%; }
#cd-splash .aur i:nth-child(1) { left: -12vmax; top: -16vmax; background: radial-gradient(circle, rgba(233,162,59,.55), transparent 65%); animation: cdfloat1 14s ease-in-out infinite; }
#cd-splash .aur i:nth-child(2) { right: -14vmax; bottom: -18vmax; background: radial-gradient(circle, rgba(185,122,31,.5), transparent 65%); animation: cdfloat2 17s ease-in-out infinite; }
#cd-splash .aur i:nth-child(3) { left: 30%; top: 40%; width: 30vmax; height: 30vmax; background: radial-gradient(circle, rgba(64,150,140,.28), transparent 65%); animation: cdfloat1 20s ease-in-out infinite reverse; }
[data-theme="light"] #cd-splash .aur { opacity: .4; }
#cd-splash .sp { position: relative; display: flex; flex-direction: column; align-items: center; gap: 22px; padding: 16px; text-align: center; animation: cdrise .6s cubic-bezier(.2,.8,.2,1) both; }
#cd-splash .ring { position: relative; width: 200px; height: 200px; display: grid; place-items: center; }
#cd-splash .arc { position: absolute; width: 124px; height: 124px; animation: cdspin 2.4s linear infinite; }
#cd-splash .arc circle { fill: none; stroke-width: 3; }
#cd-splash .arc .trk { stroke: rgba(233,162,59,.12); }
#cd-splash .arc .run { stroke: url(#cdsg); stroke-linecap: round; stroke-dasharray: 340; stroke-dashoffset: 260; animation: cddraw 1.8s ease-in-out infinite; transform-origin: center; }
#cd-splash .crest { position: relative; width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(circle at 35% 30%, rgba(255,241,184,.18), rgba(233,162,59,.05) 60%, transparent 72%); box-shadow: 0 0 0 1px rgba(233,162,59,.22), 0 0 40px rgba(233,162,59,.25); animation: cdglow 2.4s ease-in-out infinite; }
#cd-splash .crest img { width: 60px; height: 60px; filter: drop-shadow(0 6px 16px rgba(233,162,59,.4)); }
#cd-splash .crest::after { content: ''; position: absolute; inset: -40%; background: linear-gradient(115deg, transparent 40%, rgba(255,248,225,.55) 50%, transparent 60%); transform: translateX(-120%); animation: cdshine 2.8s ease-in-out infinite 0.6s; }
#cd-splash .orb { position: absolute; inset: 0; animation: cdspin 18s linear infinite; }
#cd-splash .orb span { --r: 92px; position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%; display: grid; place-items: center;
  background: var(--chip); border: 1px solid var(--chipline); box-shadow: 0 4px 14px rgba(0,0,0,.25); color: var(--g2);
  transform: rotate(calc(var(--i) * 60deg)) translateY(calc(var(--r) * -1)) rotate(calc(var(--i) * -60deg)); opacity: 0; animation: cdpop .5s ease forwards; animation-delay: calc(.15s + var(--i) * .09s); }
[data-theme="light"] #cd-splash .orb span { color: var(--g3); box-shadow: 0 4px 12px rgba(120,80,20,.14); }
#cd-splash .orb span svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; animation: cdspin 18s linear infinite reverse; }
#cd-splash .txt { display: flex; flex-direction: column; align-items: center; gap: 6px; }
#cd-splash .txt b { font-size: 21px; font-weight: 800; letter-spacing: .3px;
  background: linear-gradient(90deg, var(--ink) 0%, var(--ink) 35%, var(--g2) 50%, var(--ink) 65%, var(--ink) 100%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: cdtext 3.2s linear infinite; }
#cd-splash .tag { display: block; height: 20px; overflow: hidden; font-size: 13px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--g1); }
#cd-splash .tag > span { display: block; height: 20px; line-height: 20px; animation: cdtag 10.8s cubic-bezier(.7,0,.3,1) infinite; }
#cd-splash small { display: block; font-size: 13px; color: var(--mut); min-height: 18px; }
#cd-splash .bar { position: relative; width: 190px; height: 4px; border-radius: 4px; background: rgba(127,127,127,.16); overflow: hidden; }
#cd-splash .bar i { position: absolute; inset: 0 auto 0 0; width: 45%; border-radius: 4px; background: linear-gradient(90deg, transparent, var(--g3), var(--g2), #fff6dc); box-shadow: 0 0 12px rgba(243,194,122,.7); animation: cdslide 1.3s cubic-bezier(.5,0,.5,1) infinite; }
@keyframes cdspin { to { transform: rotate(360deg); } }
@keyframes cdpulse { 50% { transform: scale(.94); opacity: .85; } }
@keyframes cdslide { 0% { transform: translateX(-110%); } 100% { transform: translateX(260%); } }
@keyframes cddraw { 0% { stroke-dashoffset: 320; } 50% { stroke-dashoffset: 90; } 100% { stroke-dashoffset: 320; transform: rotate(360deg); } }
@keyframes cdglow { 50% { box-shadow: 0 0 0 1px rgba(233,162,59,.35), 0 0 60px rgba(233,162,59,.42); } }
@keyframes cdshine { 0%, 55% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
@keyframes cdpop { from { opacity: 0; scale: .4; } to { opacity: 1; scale: 1; } }
@keyframes cdtext { to { background-position: -250% 0; } }
@keyframes cdtag { 0%, 13% { transform: translateY(0); } 16.6%, 29.6% { transform: translateY(-20px); } 33.3%, 46.3% { transform: translateY(-40px); } 50%, 63% { transform: translateY(-60px); } 66.6%, 79.6% { transform: translateY(-80px); } 83.3%, 96.3% { transform: translateY(-100px); } 100% { transform: translateY(-120px); } }
@keyframes cdrise { from { opacity: 0; transform: translateY(14px) scale(.97); } }
@keyframes cddrift { to { transform: translate(26px, 26px); } }
@keyframes cdfloat1 { 50% { transform: translate(6vmax, 5vmax) scale(1.1); } }
@keyframes cdfloat2 { 50% { transform: translate(-7vmax, -4vmax) scale(1.12); } }
@media (max-width: 380px) { #cd-splash .ring { width: 176px; height: 176px; } #cd-splash .orb span { --r: 80px; } }
#cd-netbar { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 2147483001; pointer-events: none; opacity: 0; transition: opacity .25s; overflow: hidden; }
#cd-netbar.on { opacity: 1; }
#cd-netbar i { position: absolute; top: 0; bottom: 0; width: 35%; background: linear-gradient(90deg, transparent, #e9a23b, #f3c27a, transparent); animation: cdslide 1s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { #cd-splash *, #cd-splash::before, #cd-netbar i, .cd-mini * { animation-duration: 6s !important; } #cd-splash .tag > span { animation: none; } }
/* skeleton placeholders while data loads */
.cd-sk { display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, rgba(127,127,127,.12) 0%, rgba(127,127,127,.24) 40%, rgba(127,127,127,.12) 80%); background-size: 300% 100%; animation: cdsk 1.3s ease-in-out infinite; }
.cd-sk.w40 { width: 40%; } .cd-sk.w60 { width: 60%; } .cd-sk.w80 { width: 80%; } .cd-sk.w30 { width: 30%; } .cd-sk.h20 { height: 20px; }
tr.cd-sk-row td { padding-top: 14px !important; padding-bottom: 14px !important; }
.cd-sk-card { border: 1px solid rgba(127,127,127,.16); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 12px; min-height: 150px; }
.cd-sk-list { display: flex; flex-direction: column; gap: 12px; padding: 6px 0; }
.cd-sk-note { font-size: 12.5px; color: #8a8579; display: flex; align-items: center; gap: 8px; }
.cd-sk-note::before { content: ''; width: 12px; height: 12px; border-radius: 50%; border: 2px solid rgba(233,162,59,.25); border-top-color: #e9a23b; animation: cdspin .8s linear infinite; }
@keyframes cdsk { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
@media (prefers-reduced-motion: reduce) { .cd-sk, .cd-sk-note::before { animation-duration: 3s; } }
/* in-page crest loader: glowing crest, gold arc and three orbiting sparks */
.cd-mini { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 34px 12px; text-align: center; animation: cdrise .35s ease both; }
.cd-mini .ring { position: relative; width: 72px; height: 72px; display: grid; place-items: center; }
.cd-mini .ring::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, transparent 0 55%, rgba(233,162,59,.15) 62%, #e9a23b 88%, #fff1b8 100%); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px)); mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px)); animation: cdspin 1.1s linear infinite; }
.cd-mini .ring::after { content: ''; position: absolute; inset: 9px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, rgba(255,241,184,.16), rgba(233,162,59,.06) 60%, transparent 72%); box-shadow: 0 0 22px rgba(233,162,59,.22); animation: cdpulse 1.8s ease-in-out infinite; }
.cd-mini .ring img { position: relative; z-index: 1; width: 34px; height: 34px; filter: drop-shadow(0 4px 10px rgba(233,162,59,.35)); }
.cd-mini .ring s { position: absolute; inset: -7px; animation: cdspin 2.6s linear infinite; text-decoration: none; }
.cd-mini .ring s:nth-of-type(2) { animation-duration: 3.4s; animation-direction: reverse; } .cd-mini .ring s:nth-of-type(3) { animation-duration: 4.2s; }
.cd-mini .ring s::before { content: ''; position: absolute; left: 50%; top: 0; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: #f3c27a; box-shadow: 0 0 8px 2px rgba(243,194,122,.7); }
.cd-mini .ring s:nth-of-type(2)::before { top: auto; bottom: 4px; width: 4px; height: 4px; } .cd-mini .ring s:nth-of-type(3)::before { left: 8%; top: 40%; width: 3px; height: 3px; }
.cd-mini b { font-size: 13px; font-weight: 600; color: var(--text-muted, #8a8579); }
.cd-mini .bar { position: relative; width: 120px; height: 3px; border-radius: 3px; background: rgba(127,127,127,.15); overflow: hidden; }
.cd-mini .bar i { position: absolute; inset: 0 auto 0 0; width: 45%; border-radius: 3px; background: linear-gradient(90deg, transparent, #b97a1f, #f3c27a); animation: cdslide 1.3s cubic-bezier(.5,0,.5,1) infinite; }
tr.cd-sk-row td { padding: 0 !important; border: 0 !important; }
