.checkin-card{margin:16px 0 20px;padding:17px 19px;border-color:#d3e9d8;background:linear-gradient(145deg,var(--surface),var(--green-soft));box-shadow:0 10px 30px #245b2f11}
.checkin-head{display:flex;align-items:center;gap:12px}.checkin-symbol{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:14px;background:var(--green);color:#fff;box-shadow:0 7px 17px #20835b34}.checkin-symbol svg{width:22px;height:22px}.checkin-head>div{min-width:0;flex:1}.checkin-head small{color:var(--green-2);font-size:10px;font-weight:900}.checkin-head h2{margin:2px 0;font-size:20px;line-height:1.3}.checkin-head p{margin:0;color:var(--muted);font-size:11px}.checkin-total{border:1px solid var(--line);border-radius:10px;padding:7px 9px;background:var(--surface);color:var(--green-2);font-size:11px;font-weight:800;white-space:nowrap}
.checkin-milestones{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0 7px}.checkin-milestones::before{content:'';position:absolute;top:17px;inset-inline:9% 9%;height:2px;background:var(--line)}.checkin-milestones span{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:5px;min-height:34px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:800}.checkin-milestones span.unlocked{border-color:var(--green);background:var(--green);color:#fff}.checkin-milestones b{font:800 12px "Inter",sans-serif}.checkin-next{margin:5px 0 0;color:var(--green-2);font-size:11px;font-weight:800;text-align:center}
.skin-wardrobe .outfit-options{grid-template-columns:repeat(4,minmax(0,1fr))}.skin-wardrobe .outfit-choice{position:relative;min-height:91px}.skin-wardrobe .outfit-choice small{color:var(--muted);font-size:9px;line-height:1.2}.skin-wardrobe .outfit-choice.locked{opacity:.68;cursor:not-allowed;filter:grayscale(.65)}.skin-wardrobe .outfit-choice.locked:hover{transform:none}.skin-wardrobe .outfit-choice.active{border-color:var(--green);background:var(--green-soft)}
.companion-wardrobe{display:flex!important;gap:6px;overflow-x:auto;scrollbar-width:thin;max-height:98px}.companion-wardrobe[hidden]{display:none!important}.companion-wardrobe button{flex:0 0 75px;min-width:75px}.companion-wardrobe button:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.6)}.companion-wardrobe button small{font-size:8px;color:var(--muted)}
.companion-dance-tray{display:flex;gap:6px;justify-content:center;padding:7px 9px;border-bottom:1px solid var(--pet-border);background:var(--surface)}.companion-dance-tray[hidden]{display:none!important}.companion-dance-tray button{flex:1;border:1px solid var(--pet-border);border-radius:10px;padding:6px 4px;background:var(--pet-soft);color:var(--pet-ink);font-size:10px;font-weight:800;cursor:pointer}.companion-dance-tray button:hover{transform:translateY(-2px)}.companion-dance-tray button:focus-visible{outline:3px solid var(--pet-rose);outline-offset:2px}
.promo-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:15px 0 20px;padding:16px 18px}.promo-card>div{min-width:0}.promo-gift{float:inline-start;display:grid;place-items:center;width:37px;height:37px;margin-inline-end:10px;border-radius:12px;background:var(--green-soft);color:var(--green)}.promo-card h2{margin:0;font-size:15px}.promo-card p{margin:3px 0 0;font-size:11px;color:var(--muted)}.promo-form{display:flex;gap:7px;flex:0 1 290px}.promo-form input{min-width:0;width:100%;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--text);font:700 12px Inter,sans-serif;direction:ltr;text-align:left;text-transform:uppercase}.promo-form button{padding:8px 10px;font-size:11px}
@media(max-width:720px){.promo-card{display:block}.promo-form{margin-top:12px}.promo-form button{flex:none}}
@media(max-width:720px){.checkin-card{padding:14px}.checkin-head h2{font-size:17px}.checkin-total{font-size:9px}.skin-wardrobe .outfit-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
.student-progress{margin:16px 0 23px;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.student-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.student-progress-head small{color:var(--green);font-size:10px;font-weight:900;letter-spacing:.08em}.student-progress-head h2{margin:4px 0 2px;font-size:19px}.student-progress-head p{margin:0;color:var(--muted);font-size:11px}.student-progress-head>span{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:var(--green-soft);color:var(--green)}
.student-progress-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0}.student-progress-stats>div{padding:12px 9px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);text-align:center}.student-progress-stats strong{display:block;font:800 21px/1.2 Inter,sans-serif;color:var(--text);font-variant-numeric:tabular-nums}.student-progress-stats small{display:block;margin-top:4px;font-size:10px;color:var(--muted)}
.student-progress-rule{margin:0 0 16px;color:var(--muted);font-size:11px;line-height:1.6}.student-progress h3{margin:0 0 4px;font-size:14px}.student-progress-note{margin:0 0 12px;color:var(--muted);font-size:10px;line-height:1.6}.checkin-history-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.checkin-history-grid span{display:grid;place-items:center;min-height:37px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--muted);font:700 11px Inter,sans-serif;font-variant-numeric:tabular-nums}.checkin-history-grid span.visited{border-color:var(--green);background:var(--green-soft);color:var(--green-2)}.checkin-history-grid span.today{box-shadow:0 0 0 2px var(--green)}.checkin-history-grid span.visited::after{content:'•';font-size:10px;line-height:0;color:var(--green)}
.checkin-history-all{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.checkin-history-all summary{cursor:pointer;color:var(--green-2);font-size:11px;font-weight:800}.checkin-history-list{display:flex;flex-wrap:wrap;gap:6px;max-height:170px;overflow:auto;margin-top:10px}.checkin-history-list time{padding:5px 8px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:10px}
.task-celebration{position:fixed;z-index:95;left:50%;top:50%;width:0;height:0;pointer-events:none}.task-celebration span{position:absolute;color:#e6a844;font-size:17px;text-shadow:0 2px 6px #a7625240;animation:task-spark 1.15s var(--delay) ease-out both}.task-celebration span:nth-child(3n){color:#ea6694}.task-celebration span:nth-child(4n){color:#32a770}.task-celebration.grand span{font-size:23px;animation-duration:2s}@keyframes task-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.25)}18%{opacity:1}75%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(calc(0px - var(--distance))) scale(.8)}}
@media(max-width:480px){.student-progress{padding:15px}.student-progress-stats strong{font-size:18px}.checkin-history-grid{gap:4px}.checkin-history-grid span{min-height:33px}}
@media(prefers-reduced-motion:reduce){.task-celebration{display:none}}
