@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#18243b;--muted:#7b879b;--line:#e8ecf3;--bg:#f5f7fb;--purple:#6b5ce7;--navy:#17233d;--orange:#f5a742;--green:#25a879;--blue:#4798e8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}h1,h2,h3,strong,b,.brand{font-family:Manrope,'DM Sans',sans-serif}h1{font-size:28px;letter-spacing:-.8px;margin:7px 0}h2{font-size:42px;line-height:1.06;letter-spacing:-1.6px;margin:18px 0 12px}h3{font-size:16px;margin:0 0 8px}p{line-height:1.55}.muted,.topbar p,.panel-head p{color:var(--muted)}.small{font-size:12px}.app-shell{min-height:100vh}.sidebar{width:245px;position:fixed;inset:0 auto 0 0;background:var(--navy);color:white;padding:25px 16px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:16px;letter-spacing:1px;padding:0 8px 30px}.brand b{color:#f5b942}.brand-mark{display:grid;place-items:center;background:#f5b942;color:#19243a;width:48px;height:48px;border-radius:15px;font-size:25px;margin:0 auto 12px}.small-mark{width:35px;height:35px;font-size:19px;border-radius:11px;margin:0}.side-user{display:flex;align-items:center;gap:11px;padding:15px 7px 22px;border-top:1px solid #ffffff18;border-bottom:1px solid #ffffff18}.avatar,.leader-avatar{display:grid;place-items:center;width:37px;height:37px;flex:none;border-radius:13px;background:#e9e6ff;color:#5e50d3;font-weight:800}.side-user b,.side-user small{display:block}.side-user b{font-size:13px}.side-user small{color:#b7c2d8;font-size:11px;margin-top:4px}.sidebar nav{display:grid;gap:6px;margin-top:22px}.sidebar nav a,.logout{color:#bdc7d9;text-decoration:none;padding:12px;border-radius:10px;font-weight:600}.sidebar nav a:hover,.sidebar nav a.active{background:#ffffff13;color:#fff}.nav-label{font-size:10px;letter-spacing:1.4px;color:#71809b;margin:17px 12px 4px}.logout{margin-top:auto}.main{margin-left:245px;padding:30px clamp(20px,4vw,52px);max-width:1800px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:25px}.topbar p{margin:0}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:800;color:#8a95a8}.date-chip{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 15px;white-space:nowrap;font-weight:700;color:#667187}.hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;min-height:260px;padding:30px 38px;border-radius:24px;background:linear-gradient(115deg,#182440,#303b68 70%,#574ca1);color:white;margin-bottom:20px}.hero p{max-width:380px;color:#c9d0e7;margin:0 0 22px}.hero h2 span{color:#ffc65a}.pill{display:inline-block;border:1px solid #ffffff2c;border-radius:99px;padding:7px 11px;font-size:10px;letter-spacing:1px;color:#dbe2ff}.hero-orbit{width:235px;height:220px;position:relative;display:grid;place-items:center;margin-right:35px}.orbit{position:absolute;border:1px solid #ffffff35;border-radius:50%;transform:rotate(-25deg)}.orbit-one{width:230px;height:100px}.orbit-two{width:175px;height:185px}.rocket{font-size:75px;transform:rotate(-18deg);filter:drop-shadow(0 10px 10px #0003)}.orbit-label{position:absolute;right:-15px;bottom:6px;background:#f6bf4f;color:#202a43;padding:10px 15px;border-radius:13px;font-size:10px;text-align:center;transform:rotate(7deg);font-weight:700}.orbit-label b{font-size:19px}.btn{border:0;border-radius:10px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font:700 12px 'DM Sans',sans-serif;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--purple);color:white}.btn.light{background:#fff;color:#1d2945}.btn.secondary{background:#edf0f6;color:#59657b}.btn.tiny{padding:7px 9px;font-size:11px}.btn.wide{width:100%;margin-top:13px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:21px;min-width:0}.stat-card{position:relative}.stat-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;font-size:19px;margin-bottom:16px}.purple{background:#eeebff}.orange{background:#fff1dc}.green{background:#dff8ee}.blue{background:#e4f2ff}.stat-card>span{display:block;color:var(--muted);font-size:12px}.stat-card strong{display:block;font-size:29px;letter-spacing:-1px;margin:5px 0}.stat-card small{color:var(--muted);font-size:11px}.progress{height:7px;background:#edf0f6;border-radius:20px;overflow:hidden;margin-top:9px}.progress i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#7061e8,#a69afc)}.content-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.panel-head h3{margin-bottom:5px}.panel-head p{margin:0;font-size:12px}.panel-head>a{font-size:12px;color:var(--purple);text-decoration:none;font-weight:700;white-space:nowrap}.target-row{padding:15px 0;border-bottom:1px solid #f0f2f7}.target-row:last-child{border-bottom:0}.target-title,.target-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.target-title b{font-size:13px}.target-title span,.target-foot{font-size:11px;color:var(--muted)}.target-foot{margin-top:7px}.target-foot b{color:var(--purple)}.leader-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #f0f2f7}.leader-row:last-child{border:0}.rank{width:28px;text-align:center;font-size:17px}.leader-avatar{width:34px;height:34px;border-radius:11px}.leader-info{flex:1;min-width:0}.leader-info b,.leader-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-info b{font-size:12px}.leader-info small{font-size:10px;color:var(--muted);margin-top:3px}.leader-row>strong{font-size:12px;white-space:nowrap}.challenge-mini{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #f0f2f7}.challenge-mini:last-child{border:0}.challenge-symbol{display:grid;place-items:center;width:39px;height:39px;background:#fff1dc;border-radius:12px;font-size:20px}.challenge-copy{flex:1;min-width:0}.challenge-copy b,.challenge-copy small{display:block}.challenge-copy b{font-size:12px}.challenge-copy small{font-size:11px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xp-pill{background:#f1edff;color:#6756d9;border-radius:8px;padding:7px 9px;font-size:11px;font-weight:800;white-space:nowrap}.badge-shelf{display:flex;flex-wrap:wrap;gap:10px}.badge-item{width:calc(33.333% - 7px);text-align:center;padding:12px 5px;background:#faf9ff;border-radius:12px}.badge-item span{display:block;font-size:26px;margin-bottom:8px}.badge-item b,.badge-item small{display:block;font-size:10px}.badge-item small{color:var(--muted);margin-top:4px}.empty{text-align:center;padding:35px 15px}.empty span{display:block;font-size:33px;margin-bottom:12px}.empty p{color:var(--muted);font-size:12px;margin-bottom:0}.empty.compact{padding:15px}.notice{padding:13px 15px;border-radius:10px;background:#e3f8ed;color:#147c53;margin-bottom:16px}.notice.error{background:#fff0ef;color:#b43c34}footer{text-align:center;color:#a2aabb;font-size:11px;padding:26px 0 10px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top right,#e9e6ff,transparent 45%),var(--bg)}.auth-card{background:#fff;border:1px solid var(--line);border-radius:23px;padding:35px;width:min(100%,410px);box-shadow:0 20px 60px #24365a10}.auth-card h1{text-align:center}.auth-card>p{text-align:center;color:var(--muted)}.auth-card form{margin-top:25px}label{display:block;font-size:12px;font-weight:700;color:#536078;margin:13px 0 7px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #dfe4ee;border-radius:9px;background:#fff;color:var(--ink);font:13px 'DM Sans',sans-serif;outline:none}input:focus,select:focus,textarea:focus{border-color:#9388ef;box-shadow:0 0 0 3px #9388ef20}textarea{resize:vertical}.auth-card .notice{font-size:12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{text-align:left;background:#f8f9fc;color:#7d8799;font-size:10px;text-transform:uppercase;letter-spacing:.5px}th,td{padding:13px 12px;border-bottom:1px solid #edf0f5}td small{display:block;color:var(--muted);font-size:10px;margin-top:4px}tbody tr:last-child td{border-bottom:0}.inline-form{display:flex;gap:5px;align-items:center}.inline-form input{width:90px;padding:8px}.challenge-grid,.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.challenge-card,.reward-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px;min-width:0}.challenge-card-top,.reward-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.big-emoji,.reward-emoji{font-size:27px}.challenge-card h3,.reward-card h3{margin-top:18px}.challenge-card>p,.reward-card>p{font-size:12px;color:var(--muted);min-height:42px}.challenge-meta{display:grid;gap:7px;color:var(--muted);font-size:11px;border-top:1px solid #edf0f5;padding:13px 0}.challenge-card form{border-top:1px solid #edf0f5;padding-top:5px}.status{display:inline-block;border-radius:7px;background:#f1f3f8;color:#65718a;font-size:11px;font-weight:700;padding:7px 9px}.status.approved,.status.fulfilled{background:#e2f8ed;color:#18805a}.status.pending,.status.requested{background:#fff2d9;color:#946313}.status.rejected{background:#ffebeb;color:#b43c34}.reward-emoji{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#fff3df;font-size:30px}.reward-bottom{margin-top:18px;padding-top:15px;border-top:1px solid #edf0f5}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.podium-card{text-align:center;background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px}.podium-card.p1{background:linear-gradient(160deg,#fff8e6,#fff)}.podium-medal{font-size:29px}.leader-avatar.large{width:54px;height:54px;margin:12px auto;border-radius:18px;font-size:20px}.podium-card h3{margin:5px 0}.podium-card p{font-size:11px;color:var(--muted);margin:5px 0 10px}.podium-card>strong{color:var(--purple)}.you-tag{display:inline-block;background:#eeebff;color:#6b5ce7;border-radius:5px;padding:3px 5px;font-size:9px;margin-left:5px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-bottom:18px}.admin-form .form-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-form h3{margin-bottom:8px}.admin-form .btn{margin-top:15px}.admin-grid .panel>h3{margin-bottom:7px}.admin-grid .panel>p{font-size:12px}.admin-grid .panel{overflow:hidden}
@media(max-width:1100px){.sidebar{width:210px}.main{margin-left:210px;padding:25px}.stats-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.challenge-grid,.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-orbit{margin-right:0}}@media(max-width:700px){.sidebar{position:static;width:auto;padding:14px 14px 10px}.brand{padding:0 4px 12px}.side-user{padding:10px 4px}.sidebar nav{display:flex;overflow-x:auto;margin-top:10px;gap:5px}.sidebar nav a{white-space:nowrap;padding:10px;font-size:11px}.sidebar nav a:nth-child(n+6),.nav-label{display:none}.logout{position:absolute;right:15px;top:15px;margin:0;font-size:11px;padding:8px}.main{margin:0;padding:20px 14px}.topbar{align-items:flex-start}.topbar h1{font-size:23px}.date-chip{font-size:10px;padding:9px}.hero{padding:25px 22px;min-height:230px}.hero h2{font-size:34px}.hero-orbit{width:100px;height:140px;flex:none}.orbit-one{width:125px;height:60px}.orbit-two{width:105px;height:110px}.rocket{font-size:45px}.orbit-label{right:-8px;bottom:0;padding:6px;font-size:8px}.stats-grid{gap:10px}.stat-card,.panel{padding:15px}.stat-card strong{font-size:24px}.challenge-grid,.reward-grid,.admin-grid{grid-template-columns:1fr}.podium{gap:8px}.podium-card{padding:12px 5px}.podium-card h3{font-size:12px}.podium-card p{font-size:10px}.badge-item{width:calc(50% - 5px)}.lower-grid{grid-template-columns:1fr}.admin-form .form-two{gap:8px}.sidebar nav a:nth-child(5){display:block}}
