/* ===== Allora — Daylight & Midnight ===== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Nunito+Sans:wght@400;600;700&display=swap');

.allora-app{max-width:480px;margin:0 auto;font-family:'Nunito Sans',sans-serif;min-height:100vh;
  padding-bottom:90px;position:relative;transition:background .4s}
.allora-app h1,.allora-app h2,.allora-app h3,.al-name,.al-logo,.al-word{font-family:'Fraunces',serif;font-weight:500}

/* ---- DAYLIGHT (pastel) ---- */
.allora-app[data-theme="daylight"]{
  --bg:#fbf6ec;--bg2:#fdf3e3;--card:#ffffff;--ink:#2a2520;--mut:#8a8275;
  --gold:#f5d8a0;--peach:#f6c9a8;--pink:#f3c7cf;--blue:#bcd0ef;--lilac:#cdc8ef;
  --grad:linear-gradient(95deg,#f7d9a0,#f3c7c4);--line:#ece3d2;--accent:#d98a4e;
  background:radial-gradient(120% 80% at 50% 0,#fdf3e3,#fbf6ec)}

/* ---- MIDNIGHT (dark) ---- */
.allora-app[data-theme="midnight"]{
  --bg:#080d17;--bg2:#0d1322;--card:#121a2b;--ink:#eef2fb;--mut:#8a93a8;
  --gold:#1c2538;--peach:#1c2538;--pink:#1c2538;--blue:#2a3a63;--lilac:#23304f;
  --grad:linear-gradient(95deg,#1f2f55,#33477f);--line:#1d263c;--accent:#7da2f0;
  background:radial-gradient(120% 80% at 80% 0,#10182b,#070b14)}

.allora-app{background-color:var(--bg);color:var(--ink)}

/* ---- Auth ---- */
.al-auth{padding:60px 26px;text-align:center;min-height:100vh;display:flex;flex-direction:column;justify-content:center}
.al-orb{position:absolute;top:-60px;right:-60px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,var(--peach),transparent 70%);opacity:.6;filter:blur(10px)}
.al-word{font-size:46px;letter-spacing:.5px;margin:0}
.al-sub{color:var(--mut);margin:6px 0 30px;font-size:16px}
.al-form{display:flex;flex-direction:column;gap:6px;text-align:left}
.al-form label{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--mut);margin-top:12px}
.al-form input{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);
  color:var(--ink);font-size:16px;font-family:inherit}
.al-row{display:flex;justify-content:space-between;align-items:center;margin:14px 0 4px;font-size:13px}
.al-check{display:flex;gap:7px;align-items:center;color:var(--mut);text-transform:none;letter-spacing:0}
.al-mini,.al-mini:visited{color:var(--accent);text-decoration:none;font-size:13px}
.al-link{text-align:center;color:var(--mut);margin-top:18px;font-size:14px}
.al-link a{color:var(--accent);text-decoration:none;font-weight:700}
.al-btn{display:block;text-align:center;padding:16px;border-radius:30px;border:0;font-size:16px;
  font-weight:700;font-family:inherit;cursor:pointer;text-decoration:none;margin-top:22px;color:var(--ink)}
.al-grad{background:var(--grad)}
.allora-app[data-theme="midnight"] .al-grad{color:#dce6ff}
.al-ghost{background:transparent;border:1px solid var(--line);color:var(--ink);margin-top:12px}
.al-flash{padding:12px 16px;border-radius:12px;margin:12px 0;font-size:14px}
.al-err{background:#fde8e4;color:#b4452f}
.al-ok{background:#e6f3e6;color:#2f7a3a}
.allora-app[data-theme="midnight"] .al-err{background:#3a1f1f;color:#f0b4a8}
.allora-app[data-theme="midnight"] .al-ok{background:#1c3322;color:#a8e0b8}

/* ---- Chrome ---- */
.al-top{display:flex;justify-content:space-between;align-items:center;padding:22px 22px 8px}
.al-logo{font-size:30px}
.al-top-r{display:flex;align-items:center;gap:10px}
.al-toggle{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);
  color:var(--ink);font-size:16px;cursor:pointer}
.al-av img{border-radius:50%;border:1px solid var(--line)}
.al-bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;
  display:flex;justify-content:space-around;background:var(--card);border-top:1px solid var(--line);
  padding:10px 0 14px}
.al-bottom a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;
  color:var(--mut);font-size:11px}
.al-bottom a.on{color:var(--accent)}
.al-bottom .ic{font-size:19px}

/* ---- Screens ---- */
.al-screen{padding:14px 22px 30px}
.al-h1{font-size:38px;margin:6px 0 2px}
.al-greet{color:var(--mut);margin:10px 0 0;font-size:17px;font-style:italic}
.al-name{font-size:46px;margin:0}
.al-name.center{text-align:center}
.al-quote{text-align:center;color:var(--mut);font-style:italic;font-family:'Fraunces',serif;font-size:18px;margin:18px 0 24px}
.al-sub2{color:var(--mut);margin:2px 0 18px}
.al-foot{color:var(--mut);font-size:13px;text-align:center;margin-top:20px}
.al-empty{color:var(--mut);text-align:center;padding:30px}
.al-sec{font-size:20px;margin:24px 0 10px}

.al-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:14px}
.al-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.al-tile .al-tic{font-size:22px}
.al-tile h3{font-size:22px;margin:14px 0 6px}
.al-big{font-size:30px;font-weight:600;font-family:'Fraunces',serif}
.al-big small{font-size:14px;color:var(--mut)}
.al-of{font-size:12px;color:var(--mut);margin:4px 0 10px}
.al-bar{height:6px;background:var(--line);border-radius:6px;overflow:hidden}
.al-bar i{display:block;height:100%;background:var(--accent)}
.t-water .al-bar i{background:#8aa9e0}.t-sleep .al-bar i{background:#e09bb0}
.t-study .al-bar i{background:#e0995e}.t-steps .al-bar i{background:#e0c060}
.al-cta{width:100%;box-sizing:border-box}

/* Log */
.al-logrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.al-logrow .al-tic{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:20px;background:var(--bg2)}
.al-lr-txt{flex:1;min-width:120px}
.al-lr-txt h3{margin:0;font-size:18px}.al-lr-txt p{margin:2px 0 0;color:var(--mut);font-size:13px}
.al-lr-in{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;
  padding:8px 12px;background:var(--bg)}
.al-lr-in input{border:0;background:transparent;color:var(--ink);width:90px;font-size:15px;outline:0}
.al-lr-in span{color:var(--mut);font-size:13px}
.al-mini-btn{background:var(--grad);border:0;border-radius:20px;padding:10px 16px;font-weight:700;
  cursor:pointer;font-family:inherit;color:var(--ink)}
.al-mini-btn.ghost,.al-mini-btn[disabled]{background:transparent;border:1px solid var(--line);color:var(--mut)}
.al-upload{display:inline-block;border:1px dashed var(--accent);color:var(--accent);border-radius:12px;
  padding:12px 16px;font-size:13px;cursor:pointer;margin:8px 0;width:100%;text-align:center;box-sizing:border-box}
.al-upload.sm{width:auto;padding:8px 16px;margin:8px auto;display:block;max-width:160px}
.al-upload input{display:none}

/* Leaderboard */
.al-lb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.al-period{display:flex;gap:6px;flex-wrap:wrap}
.al-chip{font-size:12px;padding:8px 12px;border-radius:20px;border:1px solid var(--line);
  text-decoration:none;color:var(--mut)}
.al-chip.on{background:var(--gold);color:var(--ink);border-color:transparent}
.al-podium{display:flex;align-items:flex-end;gap:8px;margin:24px 0}
.al-pod{flex:1;text-align:center;background:var(--card);border:1px solid var(--line);
  border-radius:18px;padding:16px 6px}
.al-pod.p1{background:var(--gold);transform:translateY(-14px);padding-top:24px}
.al-pod.p2{background:var(--peach)}.al-pod.p3{background:var(--pink)}
.al-pod-rk{width:26px;height:26px;border-radius:50%;background:var(--card);margin:0 auto 8px;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.al-pod-av img{border-radius:50%}
.al-pod-nm{font-family:'Fraunces',serif;font-size:15px;margin-top:8px}
.al-pod-pt{color:var(--accent);font-size:13px;font-weight:700}
.al-lb-row{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line)}
.al-lb-row.me{background:var(--bg2);border-radius:12px;padding-left:10px}
.al-lb-row img{border-radius:50%}
.al-rk{width:22px;text-align:center;color:var(--mut);font-family:'Fraunces',serif;font-size:17px}
.al-lb-nm{flex:1;font-family:'Fraunces',serif;font-size:17px}
.al-lb-pt{color:var(--accent);font-weight:700}

/* Games */
.al-game{display:flex;align-items:center;gap:14px}
.al-game.t-gold{background:linear-gradient(120deg,var(--gold),transparent)}
.al-game.t-pink{background:linear-gradient(120deg,var(--pink),transparent)}
.al-game.t-blue{background:linear-gradient(120deg,var(--blue),transparent)}
.al-game.t-peach{background:linear-gradient(120deg,var(--peach),transparent)}
.al-game.t-lilac{background:linear-gradient(120deg,var(--lilac),transparent)}
.al-game-ic{font-size:24px;width:44px;text-align:center}
.al-game-tx{flex:1}
.al-tag{font-size:10px;letter-spacing:2px;color:var(--accent);text-transform:uppercase}
.al-game-tx h3{margin:3px 0;font-size:22px}
.al-game-tx p{margin:0;color:var(--mut);font-size:13px}
.al-game-tx small{color:var(--mut);font-size:11px}
.al-play{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);
  cursor:pointer;font-size:14px;color:var(--ink)}

/* Game modal mount */
.al-gm{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:16px;text-align:center}
.al-gm h3{font-size:24px;margin:0 0 4px}
.al-gm .grid{display:grid;gap:8px;justify-content:center;margin:16px 0}
.al-gm .cell{width:62px;height:62px;border:1px solid var(--line);border-radius:12px;background:var(--bg);
  font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:'Fraunces',serif}
.al-gm .cell.flip{background:var(--gold)}.al-gm .cell.match{background:#bfe3c4;opacity:.6}
.al-gm .cell.lit{background:var(--accent);color:#fff}
.al-gm .opt{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);
  margin:6px;cursor:pointer;font-size:18px;display:inline-block;min-width:64px}
.al-gm .ws{font-family:monospace;font-size:18px;letter-spacing:6px;line-height:1.9;cursor:pointer;user-select:none}
.al-gm .ws b{background:var(--gold);border-radius:4px;padding:1px 2px}
.al-gm input{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);
  color:var(--ink);font-size:18px;text-align:center;width:120px}

/* Community */
.al-tabs{display:flex;gap:8px;margin:16px 0;background:var(--bg2);border-radius:14px;padding:5px}
.al-tabs.wrap{flex-wrap:wrap}
.al-tab{flex:1;text-align:center;padding:11px;border-radius:11px;text-decoration:none;
  color:var(--mut);font-size:13px;font-weight:600}
.al-tab.on{background:var(--gold);color:var(--ink)}
.al-friend{display:flex;align-items:center;gap:12px}
.al-friend img{border-radius:50%}
.al-fr-nm{flex:1}.al-fr-nm strong{display:block;font-family:'Fraunces',serif;font-size:17px}
.al-fr-nm span{color:var(--mut);font-size:13px}
.al-act{display:flex;gap:12px;align-items:center}
.al-act-ic{width:40px;height:40px;border-radius:50%;background:var(--bg2);display:flex;
  align-items:center;justify-content:center;color:var(--accent)}
.al-act div strong{display:block;font-size:14px}.al-act div span{color:var(--mut);font-size:12px}

/* Rewards */
.al-balchip{background:var(--gold);border-radius:20px;padding:8px 16px;font-weight:700;color:var(--ink)}
.al-reward{text-align:center}
.al-reward.t-gold{background:var(--gold)}.al-reward.t-peach{background:var(--peach)}.al-reward.t-pink{background:var(--pink)}
.al-rw-logo{font-family:'Fraunces',serif;font-size:22px;letter-spacing:2px;padding:24px 0;font-weight:600}
.al-rw-meta{display:flex;justify-content:space-between;font-size:13px;margin-bottom:12px}
.al-rw-meta strong{font-size:18px}.al-rw-meta span{color:var(--mut)}

/* Profile */
.al-profile{text-align:center}
.al-pf-av{margin:10px 0}
.al-pf-av img{border-radius:50%;border:3px solid var(--gold)}
.al-pf-upload{margin:0}
.al-pf-pts{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin:18px 0}
.al-pf-pts span{font-size:11px;letter-spacing:2px;color:var(--mut)}
.al-pf-pts strong{display:block;font-size:38px;color:var(--accent);font-family:'Fraunces',serif}
.al-pf-pts small{color:var(--mut)}
.al-badges{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.al-badge{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 6px;text-align:center}
.al-badge.t-gold{background:var(--gold)}.al-badge.t-peach{background:var(--peach)}
.al-badge.t-pink{background:var(--pink)}.al-badge.t-blue{background:var(--blue)}.al-badge.t-lilac{background:var(--lilac)}
.al-badge.locked{opacity:.35;filter:grayscale(.6)}
.al-bd-ic{font-size:26px;margin-bottom:6px}
.al-badge span{display:block;font-size:13px;font-weight:700}
.al-badge small{color:var(--mut);font-size:11px}

/* Messages & admin */
.al-msgbox{display:flex;flex-direction:column;gap:10px}
.al-msgbox input,.al-msgbox textarea{padding:14px;border:1px solid var(--line);border-radius:12px;
  background:var(--bg);color:var(--ink);font-family:inherit;font-size:15px}
.al-msgbox textarea{min-height:120px;resize:vertical}
.al-msg-h{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}
.al-msg-h span{color:var(--mut)}
.al-msg p{margin:0;color:var(--mut);font-size:14px}
.al-subm-h{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}
.al-subm-h strong{font-family:'Fraunces',serif;font-size:18px}
.al-subm-h span{color:var(--mut);font-size:13px}
.al-shot-prev{max-width:100%;border-radius:12px;margin:8px 0;border:1px solid var(--line)}
.al-subm-act{display:flex;gap:10px}
.al-badge-tag{font-size:12px;color:var(--accent);font-weight:700}
.al-fade{animation:alf .3s ease}@keyframes alf{from{opacity:0;transform:translateY(6px)}to{opacity:1}}

/* Students admin */
.al-stu-search{display:flex;gap:8px;margin:10px 0}
.al-stu-search input{flex:1;padding:12px;border:1px solid var(--line);border-radius:12px;
  background:var(--bg);color:var(--ink);font-family:inherit}
.al-stu-h{margin-bottom:10px}
.al-stu-h strong{font-family:'Fraunces',serif;font-size:17px}
.al-stu-h span{display:block;color:var(--mut);font-size:12px;margin-top:3px}
.al-stu-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.al-stu-pw{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);
  color:var(--ink);font-size:13px;flex:1;min-width:120px}
