/* ============================================================
   chito.fan — study profile / social system  (loads after style.css)
   reuses base tokens; adds the "student shrine" UI + return banner
   ============================================================ */
:root{ --danger:#ff3b5c; --danger2:#ff7a3c; --okk:#2ecc5a; }

/* ---------- status pill ---------- */
.spill{display:inline-flex;align-items:center;gap:6px;font-family:var(--pixel);font-size:7px;color:#fff;
  padding:5px 9px;border-radius:20px;letter-spacing:.4px;}
.spill .d{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff;}
.spill.online{background:linear-gradient(180deg,#46d873,#23b057);}
.spill.studying{background:linear-gradient(180deg,#7fb6ff,#3f7bff);}
.spill.resting{background:linear-gradient(180deg,#b48cff,#7a4dff);}
.spill.overloaded{background:linear-gradient(180deg,#ff6a8a,#ff2e54);animation:warnBlink 1.1s steps(2) infinite;}

/* ---------- big avatar + badges ---------- */
.ava-lg{width:104px;height:104px;flex:none;border-radius:18px;overflow:hidden;border:3px solid #fff;
  box-shadow:0 0 0 3px var(--sick-pink),0 8px 18px rgba(180,30,100,.32);background:#2a1a4d;position:relative;}
.ava-lg img{width:100%;height:100%;object-fit:cover;object-position:top;}
.ava-lg .lvtag{position:absolute;left:0;right:0;bottom:0;font-family:var(--pixel);font-size:6.5px;color:#fff;text-align:center;
  padding:4px 2px;background:linear-gradient(0deg,rgba(20,6,40,.85),transparent);}
.badgebar{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.bdg{display:inline-flex;align-items:center;gap:5px;font-family:var(--pixel);font-size:6.5px;color:#7a1148;
  padding:5px 8px;border-radius:18px;background:linear-gradient(180deg,#fff,#ffe0ee);border:1.5px solid #ff9ccf;box-shadow:0 2px 0 rgba(180,40,110,.16);}
.bdg .bi{font-size:11px;}
.bdg.gold{background:linear-gradient(180deg,#fff6cf,#ffe07a);border-color:#e8b94a;color:#7a5310;}
.bdg.cy{background:linear-gradient(180deg,#dff7ff,#a9e6ff);border-color:#5fb8d8;color:#0d5a72;}
.bdg.locked{filter:grayscale(.85);opacity:.5;}

/* ---------- pickers (avatar / badge) ---------- */
.picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:9px;}
.pick{position:relative;border-radius:12px;overflow:hidden;border:2px solid #6b2350;background:#2a1a4d;cursor:pointer;
  aspect-ratio:1/1;transition:.12s;box-shadow:0 3px 0 rgba(120,30,80,.16);}
.pick img{width:100%;height:100%;object-fit:cover;object-position:top;}
.pick:hover{transform:translateY(-3px);border-color:var(--sick-pink);}
.pick.sel{border-color:var(--sick-pink);box-shadow:0 0 0 3px var(--bubble),0 3px 0 rgba(120,30,80,.16);}
.pick.sel::after{content:"♡";position:absolute;top:3px;right:4px;color:#fff;font-size:13px;text-shadow:0 1px 3px #b1247a;}

/* ---------- option chips (subjects/goals/hours) ---------- */
.optrow{display:flex;flex-wrap:wrap;gap:8px;}
.optchip{font-family:var(--body);font-weight:700;font-size:13px;color:#7a1148;padding:7px 12px;border-radius:18px;cursor:pointer;
  background:#fff;border:2px solid #ffb3da;transition:.12s;user-select:none;}
.optchip:hover{border-color:var(--sick-pink);}
.optchip.sel{background:var(--bar-grad);color:#fff;border-color:#6b2350;}
.opt-lbl{font-family:var(--pixel);font-size:7px;color:#6b2350;margin:2px 0 7px;letter-spacing:.4px;}
.field{margin-bottom:14px;}
.field input[type=date],.field input[type=text],.field input[type=number]{font-family:var(--term);font-size:17px;color:var(--ink);
  padding:9px 12px;border-radius:12px;background:#fff;border:2px solid #ffb3da;outline:none;width:100%;}
.field input:focus{border-color:var(--sick-pink);box-shadow:0 0 0 3px rgba(255,140,200,.2);}

/* plan stats */
.planstats{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:6px;}
.pstat{text-align:center;padding:12px 8px;border-radius:12px;background:linear-gradient(180deg,#fff,#fff1f8);border:2px solid #6b2350;box-shadow:0 4px 0 rgba(120,30,80,.16);}
.pstat .pv{font-family:var(--disp);font-size:26px;color:var(--void);line-height:1;}
.pstat .pl{font-family:var(--pixel);font-size:6.5px;color:var(--mut);margin-top:5px;}
.note-line{font-family:var(--body);font-size:12.5px;border-radius:10px;padding:9px 12px;margin-top:11px;}
.note-line.good{background:#e7ffef;border:1.5px solid #9be8ad;color:#1f7a3a;}
.note-line.warn{background:#fff0e7;border:1.5px solid #ffc09b;color:#a8500f;}

/* ---------- recommended hours cards ---------- */
.recgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;}
.reccard{padding:14px;border-radius:12px;background:linear-gradient(180deg,#fff,#fff1f8);border:2px solid #6b2350;box-shadow:0 4px 0 rgba(120,30,80,.16);}
.reccard h4{display:flex;align-items:center;gap:8px;font-family:var(--disp);font-size:18px;color:var(--void);}
.reccard h4 .ri{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;font-size:15px;background:linear-gradient(160deg,var(--sick-pink),var(--lav));}
.difrow{display:flex;align-items:center;gap:9px;margin-top:9px;}
.difrow .dl{font-family:var(--pixel);font-size:6.5px;color:#6b2350;width:54px;}
.difbar{flex:1;height:11px;border-radius:7px;background:#f0d6e6;border:1.5px solid #6b2350;overflow:hidden;}
.difbar i{display:block;height:100%;border-radius:6px;}
.difbar.l1 i{width:42%;background:linear-gradient(90deg,#7fe3ff,#5ec8ff);}
.difbar.l2 i{width:68%;background:linear-gradient(90deg,#ffd166,#ff9f43);}
.difbar.l3 i{width:96%;background:linear-gradient(90deg,#ff6a8a,#ff2e54);}
.difrow .dv{font-family:var(--term);font-size:14px;color:var(--mut);width:78px;text-align:right;}
.rec-foot{font-family:var(--body);font-size:11.5px;color:var(--mut);margin-top:10px;}

/* ---------- daily log form ---------- */
.logform{display:grid;grid-template-columns:1fr 1fr;gap:13px;}
.logform .full{grid-column:1/-1;}
.moodrow{display:flex;gap:8px;flex-wrap:wrap;}
.moodbtn{font-size:22px;width:42px;height:42px;border-radius:12px;background:#fff;border:2px solid #ffb3da;cursor:pointer;transition:.12s;}
.moodbtn:hover{border-color:var(--sick-pink);transform:translateY(-2px);}
.moodbtn.sel{background:var(--soft);border-color:var(--sick-pink);box-shadow:0 0 0 3px rgba(255,140,200,.2);}

/* ---------- summary window ---------- */
.summary{font-family:var(--term);font-size:17px;color:var(--ink);line-height:1.7;}
.summary .sk{color:var(--mut);} .summary .sv{color:var(--sick-pink);}
.summary .ame-line{font-family:var(--body);font-weight:700;font-size:14.5px;color:var(--void);margin-top:10px;
  background:#fff;border:2px solid #ffb3da;border-radius:12px;padding:10px 13px;}

/* ---------- meters extra: stress toxic ---------- */
.fill.danger{background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 4px,transparent 4px 8px),linear-gradient(90deg,#ff2e54,#ff7a3c);}
.track.toxic-glow{border-color:#b11237;box-shadow:0 0 0 2px rgba(255,59,92,.25),0 0 16px rgba(255,59,92,.5),0 2px 0 rgba(255,255,255,.5) inset;}
.stress-high{animation:stressGlow 1.6s ease-in-out infinite;}
.stress-high .stress-num{animation:glitchPulse 2.2s steps(2) infinite;}
.warnstrip{display:flex;align-items:center;gap:7px;font-family:var(--pixel);font-size:7px;color:#fff;
  background:linear-gradient(90deg,#ff2e54,#b11237);border:1.5px solid #ff7a9a;border-radius:8px;padding:6px 9px;margin-top:9px;
  box-shadow:0 0 14px rgba(255,59,92,.4);}
.warnstrip .rd{width:8px;height:8px;border-radius:50%;background:#ffd23f;box-shadow:0 0 6px #ffd23f;animation:warnBlink 1s steps(2) infinite;}
.details-btn{font-family:var(--pixel);font-size:6.5px;color:var(--mut);background:none;border:none;text-decoration:underline dotted;cursor:pointer;padding:0;margin-top:6px;}
.details-box{font-family:var(--body);font-size:11.5px;color:var(--mut);margin-top:7px;line-height:1.5;
  background:rgba(255,180,220,.12);border:1px dashed var(--bubble);border-radius:9px;padding:9px;}

/* ---------- friend zone / rest ---------- */
.friendzone{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:13px;}
.fcardx{display:flex;flex-direction:column;gap:8px;padding:13px;border-radius:13px;cursor:pointer;
  background:linear-gradient(180deg,#fff,#fff1f8);border:2px solid #6b2350;box-shadow:0 4px 0 rgba(120,30,80,.16);transition:.12s;}
.fcardx:hover{transform:translateY(-3px);border-color:var(--sick-pink);}
.fcardx .fhead{display:flex;align-items:center;gap:10px;}
.fcardx .fav{width:48px;height:48px;flex:none;border-radius:12px;overflow:hidden;border:2px solid #fff;outline:2px solid #6b2350;background:#2a1a4d;}
.fcardx .fav img{width:100%;height:100%;object-fit:cover;object-position:top;}
.fcardx .fn{font-family:var(--disp);font-size:17px;color:var(--void);line-height:1.1;}
.fcardx .fmeta{font-family:var(--term);font-size:14px;color:var(--mut);}
.minibar{height:9px;border-radius:6px;background:#f0d6e6;border:1.5px solid #6b2350;overflow:hidden;}
.minibar i{display:block;height:100%;}
.minibar.aff i{background:linear-gradient(90deg,var(--hot),var(--lav));}
.minibar.str i{background:linear-gradient(90deg,#ff2e54,#ff7a3c);}
.mb-lab{display:flex;justify-content:space-between;font-family:var(--pixel);font-size:6px;color:#6b2350;margin-bottom:3px;}
.fcardx .react-btn{align-self:flex-start;}

/* reaction sticker bar */
.reactbar{display:flex;flex-wrap:wrap;gap:8px;}
.reactbtn{display:inline-flex;align-items:center;gap:6px;font-family:var(--body);font-weight:700;font-size:13px;color:#7a1148;
  padding:7px 11px;border-radius:18px;background:#fff;border:2px solid #ffb3da;cursor:pointer;transition:.12s;}
.reactbtn:hover{border-color:var(--sick-pink);transform:translateY(-2px);}
.reactbtn img{width:20px;height:20px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(120,30,90,.35));}

/* ---------- profile popup ---------- */
.ppopup{position:fixed;inset:0;z-index:9600;display:none;place-items:center;padding:22px;
  background:radial-gradient(circle,rgba(40,12,60,.7),rgba(15,5,30,.92));backdrop-filter:blur(4px);}
.ppopup.open{display:grid;}
.ppwin{max-width:min(420px,94vw);width:100%;}
.ppwin .pp-top{display:flex;gap:13px;align-items:center;}
.ppwin .pp-av{width:72px;height:72px;border-radius:14px;overflow:hidden;border:3px solid #fff;outline:2px solid #6b2350;flex:none;background:#2a1a4d;}
.ppwin .pp-av img{width:100%;height:100%;object-fit:cover;object-position:top;}
.ppwin .pp-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}

/* ---------- public profile card ---------- */
.pubcard{position:relative;border-radius:14px;overflow:hidden;border:2px solid #6b2350;box-shadow:0 6px 0 rgba(120,30,80,.18),0 14px 30px rgba(150,20,90,.16);}
.pubcard .pc-cover{height:120px;position:relative;overflow:hidden;background:#2a1a4d;}
.pubcard .pc-cover img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.pubcard .pc-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(20,6,40,.55));}
.pubcard .pc-body{padding:16px;background:linear-gradient(180deg,#fff7fc,#ffeaf6);}
.pubcard .pc-av{width:84px;height:84px;border-radius:16px;overflow:hidden;border:3px solid #fff;outline:2px solid #6b2350;
  margin-top:-58px;position:relative;z-index:2;background:#2a1a4d;}
.pubcard .pc-av img{width:100%;height:100%;object-fit:cover;object-position:top;}
.pubcard .pc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:13px;}
.pubcard .pc-stats .s{text-align:center;background:#fff;border:2px solid #ffb3da;border-radius:10px;padding:8px 4px;}
.pubcard .pc-stats .s b{display:block;font-family:var(--disp);font-size:18px;color:var(--void);}
.pubcard .pc-stats .s span{font-family:var(--pixel);font-size:6px;color:var(--mut);}

/* ---------- privacy toggles ---------- */
.tglrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dashed var(--bubble);}
.tglrow:last-child{border-bottom:none;}
.tglrow .tl{font-family:var(--body);font-weight:700;font-size:13.5px;color:#5a3a66;}
.tgl{width:46px;height:24px;border-radius:14px;background:#e9cddd;border:2px solid #6b2350;position:relative;cursor:pointer;flex:none;transition:.15s;}
.tgl::after{content:"";position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:.15s;}
.tgl.on{background:linear-gradient(90deg,var(--sick-pink),var(--lav));}
.tgl.on::after{left:23px;}
.privacy-note{font-family:var(--body);font-size:11px;color:var(--mut);margin-top:10px;line-height:1.5;
  background:rgba(127,227,255,.1);border:1px dashed var(--cyan);border-radius:9px;padding:9px;}

/* ---------- music player (real) ---------- */
.musicwrap{display:flex;flex-direction:column;gap:11px;}
.music-input{display:flex;gap:8px;}
.music-input input{flex:1;font-family:var(--term);font-size:16px;color:var(--ink);padding:9px 12px;border-radius:14px;background:#fff;border:2px solid #ffb3da;outline:none;min-width:0;}
.music-input input:focus{border-color:var(--sick-pink);}
.embedbox{position:relative;border-radius:12px;overflow:hidden;border:2px solid #6b2350;background:#000;aspect-ratio:16/9;}
.embedbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.musicerr{font-family:var(--body);font-size:13px;color:#a8500f;background:#fff0e7;border:1.5px solid #ffc09b;border-radius:10px;padding:9px 12px;}
.audio-row{display:flex;align-items:center;gap:11px;}

/* ---------- index compact study card ---------- */
.studymini{display:flex;flex-direction:column;gap:12px;}
.studymini .sm-top{display:flex;gap:12px;align-items:center;}
.studymini .sm-prog{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.studymini .sm-prog .b{text-align:center;background:linear-gradient(180deg,#fff,#fff1f8);border:2px solid #6b2350;border-radius:11px;padding:9px 4px;box-shadow:0 3px 0 rgba(120,30,80,.14);}
.studymini .sm-prog .b b{display:block;font-family:var(--disp);font-size:21px;color:var(--void);line-height:1;}
.studymini .sm-prog .b span{font-family:var(--pixel);font-size:6px;color:var(--mut);}

/* ============================================================
   FULLSCREEN RETURN BANNER  (focus leak)
   ============================================================ */
.returnban{position:fixed;inset:0;z-index:9990;display:none;place-items:center;padding:20px;
  background:radial-gradient(120% 100% at 50% 0%, rgba(120,40,140,.55), rgba(10,4,24,.95));backdrop-filter:blur(5px);}
.returnban.open{display:grid;animation:bannerIn .3s ease;}
.returnban::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px);}
.rbwin{max-width:min(560px,95vw);width:100%;position:relative;}
.rbwin .win__bar{background:linear-gradient(180deg,#ff5a7a,#d11248);border-bottom-color:#7a0e30;}
.rb-rec{position:absolute;top:-12px;left:16px;z-index:5;display:flex;align-items:center;gap:6px;font-family:var(--pixel);font-size:7px;color:#fff;
  background:#d11248;border:2px solid #fff;border-radius:20px;padding:5px 9px;box-shadow:0 4px 10px rgba(180,20,70,.4);}
.rb-rec .dot{width:7px;height:7px;}
.rb-body{padding:20px;background:linear-gradient(180deg,#2a1640,#1a0f30);color:#f3e4ff;}
.rb-head{display:flex;gap:14px;align-items:center;margin-bottom:14px;}
.rb-av{width:84px;height:84px;flex:none;border-radius:16px;overflow:hidden;border:3px solid #ff6a8a;
  box-shadow:0 0 0 3px rgba(255,46,84,.4),0 0 26px rgba(255,46,84,.5);background:#2a1a4d;}
.rb-av img{width:100%;height:100%;object-fit:cover;object-position:top;}
.rb-warn{font-family:var(--pixel);font-size:11px;color:#ff8ba6;letter-spacing:.5px;animation:glitchPulse 2s steps(2) infinite;}
.rb-sub{font-family:var(--term);font-size:18px;color:#cdbdf0;margin-top:5px;}
.rb-sub b{color:#ff6a8a;}
.rb-q{font-family:var(--disp);font-size:24px;color:#fff;margin:6px 0 14px;text-shadow:0 0 14px rgba(255,120,180,.5);}
.rb-reasons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:13px;}
.rreason{font-family:var(--body);font-weight:700;font-size:13px;color:#fff;padding:9px 11px;border-radius:12px;cursor:pointer;text-align:left;
  background:rgba(255,255,255,.08);border:2px solid rgba(255,120,160,.4);transition:.12s;}
.rreason:hover{background:rgba(255,120,160,.22);border-color:#ff6a8a;}
.rb-custom{display:flex;gap:8px;margin-bottom:14px;}
.rb-custom input{flex:1;font-family:var(--term);font-size:16px;color:#fff;padding:9px 12px;border-radius:12px;
  background:rgba(255,255,255,.07);border:2px solid rgba(255,120,160,.4);outline:none;}
.rb-custom input::placeholder{color:#b59cd0;}
.rb-acts{display:flex;flex-wrap:wrap;gap:9px;}
.rb-ame-react{font-family:var(--body);font-weight:700;font-size:14px;color:#ffd6e6;margin-bottom:10px;min-height:0;}

/* falling reaction sticker */
.react-pop{position:fixed;z-index:9700;pointer-events:none;font-size:42px;filter:drop-shadow(0 4px 6px rgba(120,30,90,.4));animation:popFall 1.6s ease-in forwards;}
.react-pop img{width:80px;height:80px;object-fit:contain;}

/* ---------- keyframes ---------- */
@keyframes warnBlink{50%{opacity:.35;}}
@keyframes stressGlow{0%,100%{box-shadow:0 0 0 2px rgba(255,59,92,.25),0 0 12px rgba(255,59,92,.4),0 2px 0 rgba(255,255,255,.5) inset;}
  50%{box-shadow:0 0 0 2px rgba(255,59,92,.5),0 0 26px rgba(255,59,92,.7),0 2px 0 rgba(255,255,255,.5) inset;}}
@keyframes glitchPulse{0%,89%,100%{transform:translate(0);opacity:1;}90%{transform:translate(-2px,1px);opacity:.7;}94%{transform:translate(2px,-1px);}}
@keyframes bannerIn{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:scale(1);}}
@keyframes popFall{0%{transform:translateY(-30px) scale(.4) rotate(0);opacity:0;}15%{opacity:1;transform:translateY(0) scale(1.15) rotate(-8deg);}
  35%{transform:translateY(6px) scale(1) rotate(6deg);}100%{transform:translateY(46vh) scale(.9) rotate(30deg);opacity:0;}}

/* ---------- responsive ---------- */
@media (max-width:560px){
  .logform{grid-template-columns:1fr;}
  .planstats{grid-template-columns:1fr 1fr;}
  .pubcard .pc-stats{grid-template-columns:repeat(2,1fr);}
  .rb-reasons{grid-template-columns:1fr;}
  .studymini .sm-prog{grid-template-columns:1fr 1fr;}
}

/* cloud academy summary */
.academy-cloud{border-color:#2a6b6b;background:linear-gradient(180deg,#f5fbff,#e8f7ff)}
.academy-cloud .win__bar{background:linear-gradient(180deg,#3fb6ff,#7a5ad0)}
.cloud-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.cloud-stat{padding:14px;border:2px solid #2a6b6b;border-radius:14px;background:linear-gradient(180deg,#fff,#e9fbff);box-shadow:0 4px 0 rgba(42,107,107,.16);text-align:center}.cloud-stat b{font-family:var(--pixel);font-size:18px;color:#0c5c74;display:block}.cloud-stat span{font-family:var(--pixel);font-size:7px;color:#558}.cloud-topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:14px}.cloud-topic{border:1.5px solid #8edff4;border-radius:12px;background:rgba(255,255,255,.7);padding:9px;display:flex;flex-direction:column;gap:3px}.cloud-topic b{font-family:var(--disp);color:#0c5c74}.cloud-topic span,.cloud-note{color:#557;font-size:13px}.cloud-note{margin-top:12px}
@media(max-width:720px){.cloud-grid{grid-template-columns:repeat(2,1fr)}}
