/* PSC client accounts + admin (extends styles.css) */
.acct-page{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 85% -10%,rgba(230,177,126,.13),transparent 50%),var(--bg)}
.acct-main{flex:1;padding:calc(var(--nav) + 2rem) 0 4rem}
.acct-main .wrap{max-width:1000px}
.acct-main .wrap--wide{max-width:1320px;width:min(1320px,100% - 2rem)}
.acct-footer{padding:1.5rem 0 2rem}
.acct-footer a{color:var(--gold2)}
.acct-nav{display:flex;align-items:center;gap:1.3rem;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.acct-nav a:not(.btn){opacity:.8}
.acct-nav a:not(.btn):hover{opacity:1;color:var(--gold2)}
.acct-card{background:linear-gradient(180deg,#151515,#111);border:1px solid var(--line);border-radius:20px;padding:clamp(1.3rem,3vw,2.2rem);margin-bottom:1.25rem}
.acct-h1{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:clamp(2.3rem,6vw,3.6rem);line-height:.95;letter-spacing:.01em}
.acct-h2{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:clamp(1.7rem,4vw,2.3rem);letter-spacing:.02em;line-height:1;margin-bottom:1.1rem}
.acct-h2 small{font-family:var(--body);font-size:.9rem;color:var(--mut);letter-spacing:0}
.acct-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1.1rem}
.acct-head .acct-h2{margin:0}
.acct-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.3rem}
.acct-loading{display:flex;align-items:center;gap:.8rem;color:var(--mut)}
.spinner{width:20px;height:20px;border-radius:50%;border:2px solid rgba(230,177,126,.25);border-top-color:var(--gold);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.acct-empty{text-align:center;max-width:680px;margin:2rem auto;padding:clamp(2rem,5vw,3.5rem)}
.acct-empty .lede{margin-inline:auto}
.acct-empty .acct-row{justify-content:center}
.acct-empty__book{margin-top:1.2rem;color:var(--mut)}
.acct-empty__book a,.goldlink{color:var(--gold2);font-weight:700}
.acct-emptyline{color:var(--mut);padding:1rem 0}
.demo-banner{background:rgba(230,177,126,.12);border:1px dashed rgba(230,177,126,.55);color:var(--gold2);border-radius:12px;padding:.7rem 1rem;margin-bottom:1.25rem;font-weight:600;font-size:.9rem;text-align:center}
.muted{color:var(--mut)}

/* auth */
.auth{max-width:520px;margin:1.5rem auto}
.auth .acct-h1{margin-bottom:1.2rem}
.auth__form{background:none;border:0;padding:0;margin-top:1rem}
.auth__form .btn{width:100%}
.auth__foot{margin-top:1rem;text-align:center;color:var(--mut);font-size:.9rem}
.auth__foot .textlink{margin:0;text-transform:none;letter-spacing:0;font-size:.9rem}
.auth__fine{margin-top:.8rem;color:#77716a;font-size:.8rem;text-align:center}
.form__ok{color:#9be3a8;font-size:.92rem}
.form__ok:empty{display:none}
.acct-card .form{background:none;border:0;padding:0}
.check{display:flex!important;align-items:center;gap:.6rem!important;text-transform:none!important;letter-spacing:0!important;font-size:.9rem!important;font-weight:500!important}
.check input{width:20px!important;height:20px;min-height:0!important;padding:0!important;accent-color:var(--gold);-webkit-appearance:auto!important;appearance:auto!important}

/* tabs */
.tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#0b0b0b;border:1px solid var(--line)}
.tabs button{padding:.5rem 1.1rem;border-radius:999px;font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.tabs button[aria-selected="true"]{background:var(--grad);color:#140d07}

/* dashboard header */
.acct-hello{display:grid;gap:1.2rem;align-items:end;margin-bottom:1.5rem}
.acct-stats{display:flex;gap:.6rem}
.acct-stats div{flex:1;background:var(--bg3);border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem;text-align:center}
.acct-stats b{display:block;font-family:var(--head);font-size:2rem;line-height:1;color:var(--gold2);font-weight:400}
.acct-stats small{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:700}
@media (min-width:860px){.acct-hello{grid-template-columns:1fr auto auto}.acct-stats div{min-width:90px}}

/* rewards card */
.rw-top{display:grid;gap:1.2rem;align-items:end}
.rw-level{font-family:var(--head);font-size:clamp(2.4rem,7vw,3.8rem);line-height:.95;text-transform:uppercase}
.rw-count{color:var(--mut);margin-top:.4rem}
.rw-count b{color:var(--txt)}
.rw-next p{font-weight:600}
.rw-next small{color:var(--mut);font-size:.8rem}
.bar{height:10px;border-radius:999px;background:#0a0a0a;border:1px solid var(--line);overflow:hidden;margin:.55rem 0 .35rem}
.bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8a5a37,var(--gold));transition:width .8s cubic-bezier(.2,.7,.2,1)}
.bar--gold span{background:var(--grad)}
@media (min-width:760px){.rw-top{grid-template-columns:1fr 1fr}}
.rw-ladder{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:1.5rem 0}
.rw-ladder li{border:1px solid var(--line);border-radius:14px;padding:.8rem .5rem;text-align:center;background:#0d0d0d;opacity:.6}
.rw-ladder li b{display:block;font-family:var(--head);font-weight:400;font-size:clamp(1.4rem,4vw,2rem);line-height:1}
.rw-ladder li small{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);font-weight:700}
.rw-ladder li.is-on{opacity:1;border-color:rgba(230,177,126,.45)}
.rw-ladder li.is-on b{color:var(--gold2)}
.rw-ladder li.is-cur{background:linear-gradient(180deg,#2a1f15,#17120d);box-shadow:0 0 0 1px var(--gold) inset}
.rw-window{border-radius:16px;padding:1.1rem 1.2rem;background:#0d0d0d;border:1px solid var(--line)}
.rw-window__big{font-weight:600;font-size:1.05rem}
.rw-window__big b{font-family:var(--head);font-weight:400;font-size:1.7rem;color:var(--gold2);letter-spacing:.02em}
.rw-window__big span{color:var(--mut);margin:0 .2rem}
.rw-window__sub{color:var(--mut);font-size:.88rem}
.rw-window.is-urgent{border-color:rgba(255,91,91,.5)}
.rw-window.is-urgent .rw-window__big b{color:#ff8a7a}
.rw-window.is-locked{border-color:rgba(155,227,168,.4)}
.rw-window.is-locked .bar span{background:linear-gradient(90deg,#3f8f53,#9be3a8)}
.rw-window.is-idle .rw-window__big{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.4rem;letter-spacing:.02em}
.rw-discs{margin-top:1.3rem}
.mini{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);font-weight:800;margin-bottom:.6rem}
.rw-discs ul{list-style:none;display:grid;gap:.5rem}
.disc{display:flex;align-items:center;gap:1rem;border-radius:12px;padding:.7rem 1rem;border:1px solid var(--line)}
.disc b{font-family:var(--head);font-weight:400;font-size:1.4rem;letter-spacing:.02em;white-space:nowrap}
.disc span{color:var(--mut);font-size:.88rem;line-height:1.35}
.disc--ok{background:linear-gradient(90deg,rgba(230,177,126,.16),rgba(230,177,126,.03));border-color:rgba(230,177,126,.5)}
.disc--ok b{color:var(--gold2)}
.disc--used{opacity:.6}
.disc--used b{text-decoration:line-through}
.rw-none,.rw-note{color:var(--mut);font-size:.9rem}
.rw-note{margin-top:.6rem}
.rw-how{margin-top:1.2rem;border-top:1px solid var(--line);padding-top:1rem}
.rw-how summary{cursor:pointer;font-weight:700;color:var(--gold2);font-size:.9rem;letter-spacing:.06em;text-transform:uppercase}
.rw-how ul{margin:.8rem 0 0 1.1rem;color:var(--mut);font-size:.92rem;display:grid;gap:.3rem}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}
.gallery .card{aspect-ratio:16/10}
.gallery .card__meta b{font-size:1.05rem;line-height:1.15}
.gallery .card__play{width:50px;height:50px;margin:-25px 0 0 -25px}
.gallery--pics{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.pic{display:block;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#0d0d0d;border:1px solid var(--line)}
.pic img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pic:hover img{transform:scale(1.05)}
.pic--missing{display:grid;place-items:center;color:var(--mut);font-size:.8rem}
.lightbox__frame--img{aspect-ratio:auto;background:none;box-shadow:none;display:grid;place-items:center;max-height:80vh}
.lightbox__frame--img img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:10px}

/* tables */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}
.tbl th{text-align:left;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:800;padding:.6rem .7rem;border-bottom:1px solid var(--line)}
.tbl td{padding:.8rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl td small{display:block;color:var(--mut);font-size:.8rem}
.tbl td s{color:var(--mut)}
.tbl td b{font-weight:700}
.disc-tag{color:var(--gold2)!important;font-weight:700}
.pill{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--line);color:var(--mut);white-space:nowrap}
.pill--completed{border-color:rgba(155,227,168,.45);color:#9be3a8;background:rgba(155,227,168,.07)}
.pill--pending{border-color:rgba(230,177,126,.5);color:var(--gold2);background:rgba(230,177,126,.08)}
.pill--cancelled{border-color:rgba(255,91,91,.4);color:#ff8a7a}
@media (max-width:640px){
  .tbl thead{display:none}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tr{border:1px solid var(--line);border-radius:12px;padding:.4rem .2rem;margin-bottom:.6rem;background:#0d0d0d}
  .tbl td{border:0;padding:.35rem .8rem;display:grid;grid-template-columns:5.5rem 1fr;gap:.6rem}
  .tbl td::before{content:attr(data-l);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);font-weight:800;padding-top:.15rem}
  .acct-nav a:not(.acct-nav__home):not(.btn){display:none}
}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom));transform:translate(-50%,150%);z-index:200;background:#1b1b1b;border:1px solid rgba(230,177,126,.5);color:var(--txt);padding:.8rem 1.2rem;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.6);font-weight:600;font-size:.92rem;max-width:min(92vw,520px);transition:transform .35s;text-align:center}
.toast.is-on{transform:translate(-50%,0)}
.toast--err{border-color:rgba(255,91,91,.6)}

/* admin */
.admin{display:grid;gap:1.25rem;align-items:start}
@media (min-width:980px){.admin{grid-template-columns:340px 1fr}.admin-list{position:sticky;top:calc(var(--nav) + 1rem);max-height:calc(100vh - var(--nav) - 2rem);display:flex;flex-direction:column}}
.admin-search{width:100%;font:inherit;font-size:16px;color:var(--txt);background:#0b0b0b;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:.75rem .9rem;margin-bottom:.8rem}
.admin-search:focus{outline:none;border-color:var(--gold)}
.admin-clients{list-style:none;display:grid;gap:.4rem;overflow-y:auto;min-height:0}
.admin-client{position:relative;width:100%;text-align:left;display:grid;gap:.1rem;padding:.75rem .9rem;border-radius:12px;border:1px solid var(--line);background:#0d0d0d;transition:border-color .2s}
.admin-client:hover{border-color:rgba(230,177,126,.4)}
.admin-client.is-on{border-color:var(--gold);background:linear-gradient(180deg,#221a13,#141210)}
.admin-client b{font-weight:700}
.admin-client small{color:var(--mut);font-size:.8rem}
.admin-client__meta{color:#cfc9c1!important}
.admin-client__badge{position:absolute;top:.7rem;right:.7rem;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:var(--grad);color:#140d07;padding:.2rem .5rem;border-radius:999px}
.admin-hint{color:#77716a;font-size:.8rem;margin-top:.8rem}
.admin-pick{text-align:center}
.admin-who__line{color:var(--mut);margin-top:.6rem;overflow-wrap:anywhere}
.admin-who__line a{color:var(--gold2)}
.acts{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.mini-btn{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:.42rem .7rem;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.mini-btn:hover{border-color:var(--gold);color:var(--gold2)}
.mini-btn--gold{background:var(--grad);color:#140d07;border-color:transparent}
.mini-btn--gold:hover{color:#140d07}
.mini-btn--del:hover{border-color:#ff5b5b;color:#ff8a7a}
.mini-btn:disabled{opacity:.5}
.redeem{display:inline-flex;gap:.3rem;align-items:center}
.redeem select{font:inherit;font-size:.8rem;color:var(--txt);background:#0b0b0b;border:1px solid rgba(230,177,126,.5);border-radius:999px;padding:.35rem .6rem;color-scheme:dark}
.upload{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin:1.5rem 0 1rem;padding-top:1.3rem;border-top:1px solid var(--line)}
.upload__btn{width:auto;cursor:pointer}
.upload__status{color:var(--mut);font-size:.85rem}
.admin-work{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.7rem}
.admin-tile{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#0d0d0d}
.admin-tile__open{display:block;width:100%;text-align:left}
.admin-tile img{width:100%;aspect-ratio:16/10;object-fit:cover}
.admin-tile--pic img{aspect-ratio:1}
.admin-tile span{display:block;padding:.45rem .6rem;font-size:.78rem;color:#cfc9c1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-tile__del{position:absolute;top:.4rem;right:.4rem;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.7);font-size:1.2rem;line-height:1}
.admin-tile__del:hover{background:#ff5b5b}

/* homepage rewards section lives in styles.css */
.tbl tr.is-extra{display:none}
.redeem-bar{border:1px solid rgba(230,177,126,.5);background:linear-gradient(90deg,rgba(230,177,126,.12),rgba(230,177,126,.02));border-radius:14px;padding:.9rem 1rem;margin-bottom:1rem}
.redeem-bar .mini{color:var(--gold2);margin-bottom:.5rem}
.redeem-bar__row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.redeem-bar select{flex:1 1 220px;font:inherit;font-size:.9rem;color:var(--txt);background:#0b0b0b;border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:.6rem .7rem;min-height:42px;color-scheme:dark}
.redeem-bar--none{border-color:var(--line);background:#0d0d0d;color:var(--mut);font-size:.9rem}
.acct-nav a,.acct-nav .btn{white-space:nowrap}
@media (max-width:520px){
  .acct-page .brand span{display:none}
  .acct-nav{gap:.8rem}
  .rw-ladder li small{font-size:.6rem;letter-spacing:.06em}
}
