:root{--gold:#d8b45a;--gold-hi:#f3dfa0;--gold-lo:#8c6a22;--ink:#0a0a0c;--line:rgba(216,180,90,.3);--tx:#efe9d9;--mu:#a8a08c}
body{background:radial-gradient(900px 480px at 50% -8%,rgba(216,180,90,.18),transparent 65%),var(--ink);color:var(--tx);font-family:'Prompt',sans-serif;min-height:100vh}
.serif{font-family:'Cinzel','Prompt',serif;letter-spacing:.2em}
.gold-text{background:linear-gradient(95deg,var(--gold-lo),var(--gold-hi) 35%,var(--gold) 55%,var(--gold-hi) 80%,var(--gold-lo));-webkit-background-clip:text;background-clip:text;color:transparent}
.crest{color:var(--gold);font-size:.85rem}
.lux{background:linear-gradient(180deg,#18181e,#101014);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.55)}
.info{display:flex;gap:.75rem;align-items:flex-start;padding:1rem}
.info i{font-size:1.4rem;color:var(--gold)}
.info small{color:var(--mu);display:block}
.form-control,.form-select{background:#0c0c10;border-color:rgba(216,180,90,.25);color:var(--tx)}
.form-control:focus,.form-select:focus{background:#0c0c10;border-color:var(--gold);box-shadow:0 0 0 .2rem rgba(216,180,90,.18);color:var(--tx)}
.form-label{color:var(--gold-hi);font-size:.9rem;margin-bottom:.25rem}
.btn-gold{background:linear-gradient(135deg,var(--gold-lo),var(--gold) 45%,var(--gold-hi));color:#1a1405;font-weight:600;border:0;padding:.7rem 1.4rem;border-radius:10px}
.btn-gold:hover,.btn-gold:focus{color:#000;filter:brightness(1.1)}
.btn-line{border:1px solid var(--line);color:var(--gold-hi);border-radius:10px}
.btn-line:hover{background:rgba(216,180,90,.12);color:var(--gold-hi)}
.pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.pos{position:relative}
.pos input{position:absolute;opacity:0}
.pos label{display:block;text-align:center;padding:.7rem .4rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#0c0c10;transition:.15s;height:100%}
.pos label b{display:block;color:var(--gold);font-family:'Cinzel',serif;font-size:1.15rem}
.pos label span{font-size:.8rem;color:var(--mu)}
.pos input:checked+label{border-color:var(--gold);background:rgba(216,180,90,.16);box-shadow:0 0 0 1px var(--gold),0 0 22px rgba(216,180,90,.25)}
.pos input:focus-visible+label{outline:2px solid var(--gold-hi);outline-offset:2px}
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}
.gal a{display:block;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#000}
.gal img{width:100%;height:100%;object-fit:cover;display:block}
.gal .portrait{aspect-ratio:3/4}.gal .landscape{aspect-ratio:16/9;grid-column:span 2}.gal .other{aspect-ratio:1/1}
@media(max-width:575px){.gal .landscape{grid-column:span 1}}
.map-frame{width:100%;height:300px;border:0;border-radius:12px}
.refcode{font-family:'Cinzel',serif;font-size:2rem;letter-spacing:.12em}
.badge-st{font-weight:500;border-radius:20px;padding:.35em .8em}
.st-pending{background:rgba(255,193,7,.15);color:#ffd45e}.st-approved{background:rgba(25,200,120,.15);color:#52e3a0}.st-rejected{background:rgba(220,53,69,.18);color:#ff8b97}
.table{--bs-table-bg:transparent;--bs-table-color:var(--tx);font-size:.9rem}
.table th{color:var(--gold-hi);font-weight:500;white-space:nowrap}
.nav-adm .nav-link{color:var(--mu);border-radius:10px}.nav-adm .nav-link.active{background:rgba(216,180,90,.16);color:var(--gold-hi)}
.hp{position:absolute;left:-9999px}

.gal-wrap{position:relative;overflow:hidden;padding:0;border-radius:16px}
.gal-wrap .slide{position:relative;height:clamp(240px,52vw,500px);background:#000;overflow:hidden}
.gal-wrap .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(22px) brightness(.45);transform:scale(1.15)}
.gal-wrap .fg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.gal-wrap .carousel-indicators{margin-bottom:.6rem;z-index:5}
.gal-wrap .carousel-indicators [data-bs-target]{width:9px;height:9px;border-radius:50%;border:0;background:var(--gold-hi);margin:0 4px}
.gal-wrap .carousel-control-prev,.gal-wrap .carousel-control-next{z-index:5;width:12%}
.sparkles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:4;filter:drop-shadow(0 0 5px #f3dfa0)}
.sparkles i{position:absolute;width:var(--s);height:var(--s);background:#fff3c4;opacity:0;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:twinkle 3s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.2) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}
.gal-wrap::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(105deg,transparent 40%,rgba(243,223,160,.18) 50%,transparent 60%);background-size:250% 100%;animation:sheen 6s linear infinite}
@keyframes sheen{from{background-position:150% 0}to{background-position:-100% 0}}
@media(prefers-reduced-motion:reduce){.gal-wrap::after{animation:none}}

.grp td{background:rgba(216,180,90,.1)!important;color:var(--gold-hi)}
#list details summary{cursor:pointer}

.pay-info{border:1px dashed var(--line);border-radius:12px;padding:.8rem 1rem;background:rgba(216,180,90,.06)}
.pay-info code{color:var(--gold-hi);word-break:break-all;font-size:.95rem}
.pay-details summary{list-style:none;cursor:pointer}

.topbar{padding:.7rem 1rem 0;text-align:left}
.topbar img{display:block;max-height:56px;max-width:60vw;width:auto;height:auto}
.foot-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.4rem}
.foot-links a{color:var(--mu);text-decoration:none}.foot-links a:hover{color:var(--gold-hi)}

.bar{height:8px;background:rgba(255,255,255,.08);border-radius:4px;min-width:90px}
.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--gold-lo),var(--gold-hi));border-radius:4px}
.spark{display:flex;align-items:flex-end;gap:6px;height:120px}
.spark div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.spark span{display:block;width:100%;background:linear-gradient(180deg,var(--gold-hi),var(--gold-lo));border-radius:4px 4px 0 0;min-height:2px}
.spark small{font-size:.65rem;color:var(--mu);margin-top:3px}
.st-doing{background:rgba(13,110,253,.18);color:#8bb9ff}
.perm-box{border:1px solid var(--line);border-radius:12px;padding:.75rem 1rem;background:rgba(216,180,90,.04)}

.prefilled{border-color:var(--gold)!important;background:rgba(216,180,90,.1)!important}
.opt{position:relative;margin-bottom:.5rem}
.opt input{position:absolute;opacity:0}
.opt label{display:block;padding:.9rem 1rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#0c0c10;line-height:1.4}
.opt input:checked+label{border-color:var(--gold);background:rgba(216,180,90,.16);box-shadow:0 0 0 1px var(--gold)}
.opt input:focus-visible+label{outline:2px solid var(--gold-hi);outline-offset:2px}
.lesson-body{font-size:1.02rem;line-height:1.75}.lesson-body ul{padding-left:1.2rem}.lesson-body li{margin-bottom:.35rem}.lesson-body a{color:var(--gold-hi)}
