:root{--ink:#243047;--muted:#667085;--bg:#f5f7fb;--card:#fff;--primary:#6558d3;--primary2:#8579eb;--good:#17865d;--danger:#c63f52;--line:#e4e8f0;--shadow:0 10px 30px rgba(36,48,71,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}header{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100% - 780px)/2));position:sticky;top:0;z-index:2}.brand{font-weight:800;color:var(--ink);text-decoration:none}nav{display:flex;gap:18px}nav a{color:var(--muted);text-decoration:none;font-weight:650}main{max-width:780px;margin:0 auto;padding:24px 16px 64px}.hero{text-align:center;padding:28px 16px;background:linear-gradient(145deg,var(--primary),var(--primary2));color:#fff;border-radius:24px;box-shadow:var(--shadow)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:800;opacity:.85}.balance{font-size:clamp(3.2rem,14vw,5.5rem);font-weight:900;line-height:1;margin:10px}.balance small{font-size:1rem}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.button,button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:14px;background:var(--primary);color:#fff;font:inherit;font-weight:750;text-decoration:none;padding:11px 18px;cursor:pointer}.button.secondary,button.secondary{background:#fff;color:var(--primary)}.button.danger,button.danger{background:var(--danger)}.button.ghost,button.ghost{background:#edf0f6;color:var(--ink)}h1{font-size:1.7rem;margin:0 0 18px}h2{font-size:1.1rem;margin:28px 0 12px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.activity{display:flex;flex-direction:column;text-align:left;min-height:145px;color:var(--ink);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.activity .icon{font-size:2rem}.activity .name{font-weight:800;margin-top:auto}.activity .points{color:var(--primary);font-weight:800}.activity:disabled{cursor:not-allowed;opacity:.65}.activity .shortfall{color:var(--danger);font-size:.82rem;font-weight:750;margin-top:3px}.list{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);align-items:center}.row:last-child{border-bottom:0}.row strong,.row small{display:block}.row small,.muted{color:var(--muted)}.amount{font-weight:850}.plus{color:var(--good)}.minus{color:var(--danger)}form.stack{display:grid;gap:14px}.field{display:grid;gap:5px}.field label{font-weight:700}.field input,.field select{width:100%;min-height:46px;border:1px solid #cdd4e0;border-radius:11px;background:#fff;padding:9px 12px;font:inherit}.flash{padding:13px 16px;border-radius:12px;margin-bottom:18px;background:#dff5eb;color:#116444}.flash.error{background:#ffe3e6;color:#9f2638}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.inline{display:inline}.admin-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.admin-actions{display:flex;gap:7px}.admin-actions button{min-height:38px;padding:7px 11px}.empty{text-align:center;padding:28px;color:var(--muted)}footer{text-align:center;color:var(--muted);font-size:.8rem;padding:20px}.approval{text-align:center;max-width:520px;margin:20px auto}.approval>.icon{font-size:3rem}.approval-points{font-size:1.25rem;font-weight:800;color:var(--primary)}.cheeky-note{background:#fff4cc;border-radius:12px;padding:13px;color:#684f00}.approval-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.approval>.button{width:100%}.encouragement{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px 19px;box-shadow:var(--shadow);margin:18px 0}.encouragement-icon{font-size:2rem}.encouragement strong{font-size:1.08rem}.encouragement p{margin:4px 0 0;color:var(--muted)}.guide{margin:22px 0 28px}.guide details{background:#fff;border:1px solid var(--line);border-radius:15px;margin:10px 0;overflow:hidden}.guide summary{list-style:none;cursor:pointer;padding:15px 17px;font-weight:800;display:flex;align-items:center;justify-content:space-between;min-height:54px}.guide summary::-webkit-details-marker{display:none}.guide summary:after{content:'＋';color:var(--primary);font-size:1.25rem}.guide details[open] summary:after{content:'−'}.details-body{padding:0 17px 16px;color:var(--muted)}.details-body p{margin:0 0 10px}.details-body p:last-child{margin-bottom:0}.details-body ul{margin:0;padding-left:21px}.details-body li{margin:8px 0}.reward-goals>div{display:grid;grid-template-columns:86px 1fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.reward-goals>div strong{color:var(--primary)}.reward-goals>p{margin-top:13px}
@media(max-width:768px){header{padding:0 18px}main{max-width:680px;padding:20px 18px 56px}.hero{padding:25px 14px}.grid{gap:10px}.activity{min-height:135px}.guide summary{padding:16px}.details-body{padding:0 16px 16px}}
@media(max-width:560px){header{height:58px;padding:0 13px}.brand{font-size:.94rem}nav{gap:11px}nav a{font-size:.9rem}main{padding:14px 12px 44px}.hero{border-radius:18px;padding:22px 10px}.balance{font-size:3.6rem}.actions{grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.button,button{padding:10px 12px}.encouragement{align-items:flex-start;padding:14px;margin:13px 0}.encouragement-icon{font-size:1.6rem}.guide{margin-top:17px}.guide h2{margin-top:18px}.guide summary{padding:14px;min-height:50px}.details-body{font-size:.95rem}.grid{grid-template-columns:1fr 1fr;gap:8px}.activity{min-height:122px;padding:12px}.activity .icon{font-size:1.65rem}.activity .name{font-size:.94rem}.approval{margin-top:0}.approval-buttons{grid-template-columns:1fr}.row{padding:12px}.reward-goals>div{grid-template-columns:75px 1fr}}
@media(max-width:380px){.actions{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.activity{min-height:108px}.brand{max-width:150px}.reward-goals>div{grid-template-columns:1fr;gap:2px}}

/* Equal, wrapping activity catalogue: 4 desktop, 3 tablet, 2 phone. */
.grid{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px}.grid>form{display:flex;flex:0 0 calc((100% - 36px)/4);min-width:0}.activity{flex:1 1 auto;width:100%;height:180px;min-height:180px;min-width:0;overflow:hidden}.activity .icon{line-height:1}.activity .name{overflow-wrap:anywhere;line-height:1.25}.activity .points{margin-top:5px}
@media(max-width:820px){main{max-width:740px}.grid{gap:10px}.grid>form{flex-basis:calc((100% - 20px)/3)}.activity{height:172px;min-height:172px}}
@media(max-width:560px){.grid{display:flex;gap:8px}.grid>form{flex-basis:calc((100% - 8px)/2)}.activity{height:174px;min-height:174px;padding:12px}}
@media(max-width:380px){.grid{display:flex}.grid>form{flex-basis:calc((100% - 8px)/2)}.activity{height:180px;min-height:180px}}
.language{background:#edf0f6;border-radius:9px;padding:5px 8px;color:var(--primary)!important}
