/* extra.css — new features, same visual language as base.css (original design) */
input[type=checkbox]{width:auto;margin:0 0 0 8px;accent-color:var(--pk)}
input[type=range]{width:100%;padding:0;background:none;accent-color:var(--pk);border:0}
input[type=file]{background:rgba(255,255,255,.12);color:#fff;font-size:.85rem}
label{display:block;text-align:start;margin:10px 0 0;font-size:.85rem;opacity:.85}
button:disabled{opacity:.45;cursor:not-allowed}
.ldg{padding:26px;opacity:.85;font-family:"Aref Ruqaa",serif;font-size:1.2rem}.ldg span{display:inline-block;color:var(--pk);animation:beat 1s infinite}
.sub2{margin:-8px 0 14px;opacity:.8;font-family:"Aref Ruqaa",Amiri,serif}
.err,.bad{color:#ffb4b4}.warn{background:rgba(255,160,100,.18);border:1px solid rgba(255,180,120,.35);border-radius:12px;padding:8px 12px;margin:8px 0;font-size:.85rem}
#toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translate(-50%,30px);z-index:70;background:#2a1420;color:#fff;border:1px solid var(--line);border-radius:18px;padding:11px 20px;max-width:90vw;opacity:0;pointer-events:none;transition:.3s;box-shadow:0 8px 30px rgba(0,0,0,.5)}
#toast.on{opacity:1;transform:translate(-50%,0)}#toast.bad{background:#5a1a2c}#toast.ok{background:#1f4a35}
.cf{position:fixed;top:-14px;width:9px;height:14px;z-index:9;pointer-events:none;animation:cff linear forwards}@keyframes cff{to{transform:translateY(112vh) rotate(720deg);opacity:.8}}
body[data-anim=off] .fl,body[data-anim=off] .stars i{display:none}
body[data-anim=off] *{animation-duration:.01s!important}
/* home */
#dcimg .dci{max-width:min(100%,420px);max-height:300px;object-fit:cover;border-radius:20px;margin-top:14px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.rel{margin-top:22px}.relh{font-family:"Aref Ruqaa",serif;font-size:1.3rem;color:var(--pk)}
.cd6{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.cd6>div{border:1px solid var(--line);border-radius:14px;padding:10px 2px;background:rgba(0,0,0,.3)}.cd6 b{display:block;font-size:1.7rem;color:var(--pk);font-variant-numeric:tabular-nums}.cd6 small{opacity:.8}
@media(min-width:560px){.cd6{grid-template-columns:repeat(6,1fr)}}
.bdt{font:inherit;color:#fff;background:rgba(255,140,170,.2);border:1px solid var(--line);border-radius:14px;padding:9px 16px;margin-top:8px;cursor:pointer}
/* player */
.player .pt{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.75rem;font-variant-numeric:tabular-nums}.player .pt input{margin:0;flex:1}
.player .pvv{display:flex;align-items:center;gap:8px;margin-top:4px}.player .pvv input{margin:0;flex:1}.player .pvv button.on{background:rgba(255,155,181,.3);border-radius:10px}
.player .pm{font-size:.78rem;opacity:.8;min-height:1em;margin-top:4px}.player .pg{display:none}
.player .cov{background-size:cover;background-position:center;flex:none}.player.big{max-width:520px}.cov.sm{width:40px;height:40px;border-radius:8px;display:inline-block;background:linear-gradient(135deg,#ff9bb5,#7a4cc2);flex:none}
.player button{min-width:40px;min-height:40px}
.tlist{width:100%;max-width:520px;margin-top:14px;display:flex;flex-direction:column;gap:6px}
.trk{font:inherit;color:#fff;background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:8px 12px;display:flex;align-items:center;gap:12px;text-align:start;cursor:pointer}.trk.cur{background:rgba(255,160,185,.28)}.trk .ti{flex:1}.trk small{display:block;opacity:.7}
#mpill{position:fixed;z-index:30;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);font:inherit;font-weight:700;color:#fff;background:#e0457b;border:0;border-radius:26px;padding:13px 26px;cursor:pointer;box-shadow:0 8px 30px rgba(224,69,123,.5);animation:beat 1.6s infinite}#mpill[hidden]{display:none}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%}@media(min-width:600px){.gal{grid-template-columns:repeat(3,1fr)}}
.ph{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:18px;overflow:hidden;padding:0;background:rgba(255,255,255,.1);cursor:pointer}.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.ph:hover img{transform:scale(1.06)}
.ph span{position:absolute;inset-inline:0;bottom:0;padding:18px 8px 8px;background:linear-gradient(transparent,rgba(0,0,0,.7));font-size:.8rem;color:#fff}
img.bad{background:rgba(255,255,255,.1);min-height:80px}.more{width:100%;text-align:center;margin:10px 0}
#lbx{position:fixed;inset:0;z-index:40;background:rgba(10,4,8,.94);display:flex;align-items:center;justify-content:center;direction:ltr}#lbx[hidden]{display:none}
#lbx figure{margin:0;max-width:92vw;max-height:92vh;display:flex;flex-direction:column;align-items:center}.lim{position:relative}#lbx img{max-width:92vw;max-height:70vh;border-radius:14px;transition:opacity .3s}
#lbx figcaption{margin-top:12px;text-align:center;direction:rtl;max-width:560px;max-height:22vh;overflow:auto;font-size:.95rem}#lbx figcaption small{display:block;opacity:.7}.lm{font-family:Amiri,serif;margin-top:6px}
.lerr{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#ffb4b4}.lerr[hidden]{display:none}
#lbx .lx{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:14px}#lbx .ln{position:absolute;top:45%}.lp{left:8px}.lnx{right:8px}#lbx .lx,#lbx .ln{font:inherit;font-size:1.8rem;color:#fff;background:rgba(255,255,255,.14);border:0;border-radius:50%;width:48px;height:48px;cursor:pointer}
/* messages / memories */
.chips{flex-wrap:wrap}.msg{text-align:start}.msg h3{margin:2px 0 6px;font-family:Amiri,serif;font-size:1.3rem}.paper.sm{font-size:1.1rem;line-height:2}.mlist{width:100%}
.rm{margin-top:8px;font-family:Amiri,serif;font-style:italic;color:var(--pk)}.tl .e{text-align:start}.e img{max-height:360px;object-fit:cover}
/* birthday */
.bhero{display:flex;flex-direction:column;align-items:center}.bt{font-size:1.6rem}.pv2{background:rgba(255,200,100,.2);border-radius:12px;padding:6px 12px;font-size:.8rem;margin-top:8px}
.bsec{text-align:start}.bsec h2{text-align:center}.bmsg .paper{font-size:1.35rem}
.gifts{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.gift{font:inherit;color:#fff;background:rgba(255,255,255,.1);border:1px solid var(--line);border-radius:18px;padding:14px 6px;cursor:pointer;text-align:center}.gift.lock{opacity:.65;cursor:default}.gift .gi{display:block;font-size:2rem}.gift small{display:block;opacity:.75;font-size:.72rem;margin-top:4px}
body.bd .hb{background:linear-gradient(90deg,#ffd166,#ff8fab,#c77dff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 18px rgba(255,140,170,.6))}
/* games */
.gamearea{width:100%}.gcards .fc.on{background:rgba(255,160,185,.3)}
.ttt{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,330px);margin:12px auto}.ttt .cell{font-size:2.2rem;display:flex;align-items:center;justify-content:center}.ttt .cell:disabled{opacity:1;cursor:default}.ttt .cell.win{background:var(--pk);box-shadow:0 0 22px var(--pk)}
.players{display:flex;gap:8px;justify-content:center;width:100%}.pl{flex:1;border:1px solid var(--line);border-radius:14px;padding:8px;background:rgba(0,0,0,.28);font-size:.9rem}.pl.tn{background:rgba(255,155,181,.28);border-color:var(--pk)}.pl i{font-style:normal;font-size:.7rem}
.score,.status{margin:8px 0}.status{font-family:"Aref Ruqaa",serif;font-size:1.3rem}
.roomh .code{font-family:"Dancing Script",monospace;font-size:2.4rem;letter-spacing:.25em;color:var(--pk);direction:ltr}.big{font-size:4rem;margin:6px}
.hud{display:flex;justify-content:space-around}.hud b{color:var(--pk);font-size:1.3rem}
#arena{touch-action:manipulation;height:min(60vh,420px)}.fh{touch-action:manipulation;font-size:38px;padding:6px;-webkit-tap-highlight-color:transparent}@keyframes drop{to{top:100%}}
.lbd{text-align:start;padding-inline-start:22px}.lbd li{padding:3px 0}.lbd b{float:inline-end;color:var(--pk)}
.it.ok{background:#2e8b57}.it.no{background:#b0305a}.it:disabled{opacity:1}
/* admin */
#v-admin{max-width:1100px;align-items:stretch;text-align:start}
.adm-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.adm-top h2{margin:0}
.adm-wrap{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.adm-nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.adm-nav button,.btn{font:inherit;font-weight:700;color:#fff;background:rgba(255,255,255,.14);border:0;border-radius:18px;padding:9px 14px;cursor:pointer;white-space:nowrap}.adm-nav button.on{background:#e0457b}
@media(min-width:900px){.adm-wrap{flex-direction:row;align-items:flex-start}.adm-nav{flex-direction:column;overflow:visible;width:200px;flex:none;position:sticky;top:80px}.adm-main{flex:1;min-width:0}}
.adm-main{min-width:0}.ahead{display:flex;justify-content:space-between;align-items:center;gap:8px}.ahead h3{margin:6px 0}
.alist .row{background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:8px 12px;margin:6px 0;display:flex;gap:8px;justify-content:space-between;align-items:center}.alist .row.off{opacity:.55}.rt{min-width:0;flex:1}.rt b,.rt small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt small{opacity:.7}
.rb{display:flex;gap:2px;flex:none}.rb button{background:none;border:0;font-size:1.05rem;padding:8px;cursor:pointer;border-radius:10px;min-width:38px;min-height:38px;color:#fff}.rb button:hover:not(:disabled){background:rgba(255,255,255,.15)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.tiles>div{background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:14px 4px;text-align:center}.tiles b{display:block;font-size:1.8rem;color:var(--pk)}.tiles small{opacity:.8}
.afrm{text-align:start}.afrm .arow{margin-top:14px}.chk{display:flex;align-items:center;gap:6px;cursor:pointer;margin-top:12px}
.up{border:1px dashed var(--line);border-radius:14px;padding:8px;margin:5px 0}.upv img{max-width:100%;max-height:160px;border-radius:10px;display:block}.upv audio{width:100%}.ups{display:block;margin-top:4px}
.pgr{display:flex;gap:10px;justify-content:center;align-items:center;margin:10px 0}
.box{max-height:88vh}.box .afrm input,.box .afrm select,.box .afrm textarea{color:#4d0725}
#relsince{display:block;opacity:.8}.bdt{display:block;margin:10px auto 0}
body[data-view=admin] #mpill{display:none!important}#mpill{z-index:15}
/* extras: moods, together, occasions, secret, small games */
.moods{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:10px 0}.moods button{font:inherit;color:#fff;background:var(--glass);border:1px solid var(--line);border-radius:22px;padding:10px 16px;cursor:pointer}
#hl{margin-top:10px}
.trow{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:start}.trow .tb{display:flex;gap:6px;flex:none}.trow .done{text-decoration:line-through;opacity:.7}
.cdoc{max-width:720px}.bkr{text-align:start;line-height:2;max-height:65vh;overflow:auto;font-size:1.05rem}
.occ .cd4{grid-template-columns:repeat(4,1fr)}
.gcv{width:100%;max-width:360px;border-radius:20px;background:rgba(10,5,25,.55);touch-action:none;display:block;margin:8px auto}
.memg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:340px;margin:10px auto}.memg .cell{aspect-ratio:1;font-size:1.8rem}.memg .cell.up{background:var(--pk)}
.nrow{align-items:flex-start;text-align:start}.nrow small{opacity:.7;display:block}
/* members-only gate */
body.gated header,body.gated main,body.gated footer,body.gated #mpill{display:none!important}
#gate{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}#gate[hidden]{display:none}
.gbox{width:min(100%,380px);background:rgba(30,12,22,.72);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:26px;padding:26px 22px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.55)}
.gbox .gh{font-size:2.6rem;color:var(--pk);animation:beat 1.6s infinite}.gbox h1{margin:4px 0 6px;font-size:2rem}.gbox p{opacity:.85;margin:6px 0 10px}.gbox .btn{margin-top:14px}
#lo{cursor:pointer;margin-inline-start:12px}
.pwrow{display:flex;gap:6px}.pwrow input{flex:1}.cred{direction:ltr;text-align:left;font-family:monospace;background:rgba(0,0,0,.35);border-radius:12px;padding:10px;white-space:pre-wrap;word-break:break-all}

.rtog{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 10px;font-size:.9rem}.rnav{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:10px}.rnav span{min-width:70px;text-align:center}

.bkr{font-family:Amiri,Cairo,"Segoe UI",serif;line-height:2.1;letter-spacing:0;word-spacing:normal;white-space:normal;word-break:normal;overflow-wrap:break-word;font-size:1.15rem;padding:4px 6px}
.bkr p{margin:0 0 1.1em;text-align:start}.bkr h1,.bkr h2,.bkr h3,.bkr h4{margin:1.2em 0 .5em;line-height:1.6;text-align:start}
.bkr ul,.bkr ol{margin:0 0 1.1em;padding-inline-start:1.6em}.bkr li{margin:.3em 0}.bkr table{border-collapse:collapse;max-width:100%}.bkr td,.bkr th{border:1px solid rgba(255,255,255,.25);padding:4px 8px}.bkr img{max-width:100%;height:auto}

/* garden */
.gcard{padding:10px;text-align:center}.gsv{width:100%;height:auto;display:block;border-radius:16px}
.gf{cursor:pointer;animation:gGrow 1.1s cubic-bezier(.2,.9,.3,1.2) backwards;animation-delay:var(--d,0s);transition:transform 1.8s cubic-bezier(.3,1.3,.5,1),filter 1.8s ease}
.gf.nogrow{animation:none}.gf.new{animation-duration:2.2s}
.gf.droop{transform:rotate(var(--rot,30deg));filter:saturate(.3) brightness(.8)}
@keyframes gGrow{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.gff{animation:gFly 7s ease-in-out infinite alternate,gTw 2.4s ease-in-out infinite}
@keyframes gFly{to{transform:translate(var(--dx),var(--dy))}}@keyframes gTw{0%,100%{opacity:.15}50%{opacity:1}}
.gmsg{margin:12px 0 4px;font-size:1.05rem;min-height:1.6em}.gsad{opacity:.75}

/* cinema */
.cin{text-align:center}.cscreen{position:relative;overflow:hidden;min-height:210px;margin:10px 0;border-radius:16px;background:radial-gradient(circle at 50% 40%,#3b1f33,#120a10);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px solid var(--line)}
.cbig{font-size:3.6rem;line-height:1}.cban{background:rgba(0,0,0,.55);border-radius:14px;padding:10px 14px}
.crow{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:8px 0}.ce{font-size:1.3rem;padding:6px 12px}.cplayer{margin:10px 0}
.cfly{position:absolute;bottom:0;font-size:1.8rem;animation:cUp 2.5s ease-out forwards;pointer-events:none}@keyframes cUp{to{transform:translateY(-210px);opacity:0}}
.clib{display:flex;flex-direction:column;gap:8px}.clib-i{text-align:start;display:flex;flex-direction:column;gap:2px}.clib-i small{opacity:.7}
.fld{margin:10px 0}.fld>label{display:block;margin-bottom:2px}.fld input[type=checkbox]{width:auto;margin:0 6px;vertical-align:middle}.fld input[type=number]{display:inline-block;width:70px}
