
:root{--pink:#ec7999;--purple:#7865d9;--mint:#53ab8f;--blue:#629aca;--ink:#394150;--muted:#8a929f;--line:#eee9f0;--bg:#fff7fa;--white:#fff;--shadow:0 6px 24px #6e597b0a;--radius:24px}
*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;background-color:var(--bg);background-image:radial-gradient(#b9d3e18a .85px,transparent .85px);background-size:26px 26px;color:var(--ink);line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.45}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:3px solid #b8a8f3}input:focus,textarea:focus,select:focus{outline:2px solid #c3b9f1;border-color:var(--purple)}a{color:var(--purple)}h1,h2,h3,p{margin:0}button{transition:background .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}.hidden{display:none!important}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.topbar{position:relative;z-index:10;max-width:1470px;margin:26px auto 0;border-radius:32px;background:#fffdfefa;box-shadow:0 8px 35px #765e8410;min-height:86px;padding:18px 24px;display:flex;align-items:center;gap:22px;border:1px solid #fff}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:16px;background:#fbe8ef;color:var(--pink)}.brand-icon .icon{width:26px;height:26px}.brand strong{font-size:22px;letter-spacing:1px}.brand small{display:block;font-size:10px;letter-spacing:2px;color:#b0a6b7;margin-top:-2px}.divider{height:34px;width:1px;background:var(--line)}.class-select{max-width:190px;padding:10px 28px 10px 12px;background:#f6f4fa;border:1px solid transparent;border-radius:13px;color:#666075;font-size:14px;font-weight:700}.toolbar{display:flex;align-items:center;gap:4px;margin-left:auto}.tool{display:flex;align-items:center;gap:7px;padding:11px 12px;border-radius:12px;background:transparent;color:#7b7485;font-weight:600;font-size:13px;white-space:nowrap}.tool:hover{background:#f7f3fb;color:var(--purple)}.primary{background:var(--purple);color:#fff;border-radius:13px;padding:11px 17px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;box-shadow:0 4px 12px #7865d922}.primary:hover{background:#6754cb}.toolbar .primary{margin-left:8px}.page{max-width:1430px;margin:30px auto 60px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.eyebrow{font-size:11px;letter-spacing:2px;color:#b08d9d;margin-bottom:3px}.section-heading h1{font-size:27px;font-weight:750;letter-spacing:1px}.subtle{font-size:13px;color:var(--muted);margin-top:6px}.search{display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid #e9e2ed;border-radius:15px;background:#fff;width:250px;color:#9c95a3}.search input{border:0;background:none;width:100%;font-size:13px;outline:none}.summarybar{display:flex;justify-content:space-between;align-items:center;padding:13px 19px;border:1px solid #f1e9ef;background:#fffcfee8;border-radius:17px;margin-bottom:24px;gap:12px}.summary-metrics{display:flex;gap:24px;align-items:center;font-size:12px;color:#98919f}.summary-metrics b{color:#70647e;font-size:15px;margin:0 5px}.summary-item{display:flex;align-items:center;gap:5px}.summary-item .icon{width:17px;height:17px;color:#b6a1c7}.save-status{font-size:11px;color:#87a794;display:flex;align-items:center;gap:6px}.save-status:before{content:"";width:6px;height:6px;background:#76b396;border-radius:50%}.save-status.error{color:#ce6d70}.save-status.error:before{background:#ce6d70}.student-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}.student-card{border:1px solid #f1e6ec;border-radius:24px;background:#fffcfe;box-shadow:var(--shadow);overflow:hidden;transition:transform .2s,box-shadow .2s}.student-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #735c8115}.card-top{display:flex;align-items:center;justify-content:space-between;padding:16px 17px 0}.level{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;color:#51a889;background:#eaf7f0;font-size:11px;font-weight:750}.level.awakened{background:#fff0d3;color:#bd8a24}.icon-button{width:29px;height:29px;display:grid;place-items:center;background:transparent;color:#b2a6b8;border-radius:9px}.icon-button:hover{background:#f2eaf6;color:var(--purple)}.card-open{padding:0 18px 16px;display:block;width:100%;color:inherit;background:none;text-align:left}.art-frame{height:158px;position:relative;margin:5px 0 11px;background:white;border-radius:18px;display:flex;align-items:center;justify-content:center;overflow:hidden}.pet-art{display:block;width:100%;height:100%;position:relative;isolation:isolate}.pet-art img{display:block;width:100%;height:100%;object-fit:contain;position:relative;z-index:1}.pet-art.awakened:before{content:"";position:absolute;inset:8%;border:2px solid #ecd89a;border-radius:50%;background:radial-gradient(transparent 47%,#fff0b978 75%,transparent 78%);box-shadow:0 0 16px #edd89577;animation:halo 5s linear infinite;z-index:2;pointer-events:none}.pet-art.awakened:after{content:"✦";position:absolute;top:9%;right:13%;font-size:25px;color:#deb45e;text-shadow:0 0 8px #eed087;z-index:3}.card-names{display:flex;align-items:center;justify-content:space-between;gap:4px}.student-name{font-size:18px;color:#d97091;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pet-name{font-size:10px;color:#a99db0;white-space:nowrap}.stage-name{font-size:12px;color:#7d708a;margin-top:5px}.progress-label{display:flex;align-items:center;justify-content:space-between;color:#a49aa9;font-size:10px;margin-top:13px;gap:6px}.progress-label strong{color:#8c79c0;font-size:11px;font-weight:600}.progress{height:6px;background:#f3e8ef;border-radius:20px;margin-top:7px;overflow:hidden}.progress>i{display:block;height:100%;background:linear-gradient(90deg,#f397b4,#cbb6ea);border-radius:20px;transition:width .35s}.card-actions{display:flex;align-items:center;justify-content:space-between;margin:0 17px;padding:12px 0 14px;border-top:1px dashed #eadfe9;gap:5px}.score{display:flex;align-items:baseline;gap:4px}.score strong{font-size:21px;font-weight:750;color:#80708e}.score small{font-size:10px;color:#a59aa9}.score-buttons{display:flex;gap:6px}.score-button{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#f8edf1;color:#d87b94;font-weight:750;font-size:18px}.score-button.plus{background:#eaf6f0;color:#54a58a}.score-button:hover{filter:brightness(.96)}.empty{padding:65px 20px;text-align:center;border:1px dashed #e2d4e7;border-radius:24px;background:#fffcfe;color:#9b8da6;grid-column:1/-1}.empty .icon{width:38px;height:38px;margin-bottom:15px}.empty h3{font-size:18px;color:#84708e;margin-bottom:5px}.empty .primary{margin-top:18px}.footer{margin-top:29px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:11px;color:#ac9db0}.footer button{color:#9c88b4;background:none;font-size:11px;text-decoration:underline;text-underline-offset:3px}.footer-links{display:flex;gap:14px}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1000;padding:12px 20px;max-width:min(92vw,600px);border-radius:14px;background:#494051;color:#fff;font-size:13px;box-shadow:0 8px 24px #29212d33;text-align:center}
@keyframes halo{50%{transform:rotate(180deg);opacity:.45}100%{transform:rotate(360deg)}}@media(min-width:1600px){.page{max-width:1460px}.art-frame{height:175px}}@media(max-width:1530px){.topbar{margin-left:28px;margin-right:28px}.page{margin-left:38px;margin-right:38px}}@media(max-width:1230px){.topbar{gap:12px;padding:17px 20px}.tool span{display:none}.toolbar{gap:4px}.student-grid{gap:16px}.pet-name{font-size:9px}.card-open{padding:0 13px 14px}.student-name{font-size:16px}.art-frame{height:146px}}@media(max-width:1020px){.student-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.brand strong{font-size:19px}.class-select{max-width:155px}.section-heading h1{font-size:24px}.topbar .divider{display:none}}@media(max-width:800px){.student-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar{flex-wrap:wrap;margin:15px 18px 0;border-radius:23px;padding:15px}.toolbar{width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px}.tool span{display:inline}.toolbar .primary{padding:10px 13px}.class-select{margin-left:auto}.page{margin:24px 22px 40px}.summary-metrics{gap:14px}.save-status{font-size:10px}.footer{flex-direction:column;align-items:flex-start}.section-heading h1{font-size:22px}.search{width:210px}}@media(max-width:590px){.student-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.page{margin:20px 15px 35px}.section-heading{flex-wrap:wrap;gap:15px}.search{width:100%}.toolbar .tool{padding:9px}.toolbar .tool span{display:none}.summarybar{padding:10px 13px;flex-wrap:wrap;gap:8px}.summary-metrics{width:100%;justify-content:space-between;gap:6px;font-size:10px}.art-frame{height:142px}.card-top{padding:12px 12px 0}.card-actions{margin:0 12px}.card-names{display:block}.pet-name{font-size:10px;display:block;margin-top:2px}.student-name{font-size:17px}.progress-label{font-size:9px}.level{font-size:10px;padding:4px 8px}.score strong{font-size:19px}.student-card{border-radius:19px}.brand small{font-size:8px}.topbar .primary{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

dialog{color:var(--ink);font:inherit;border:0;padding:0;border-radius:27px;width:min(640px,calc(100vw - 30px));max-height:88vh;max-height:88dvh;box-shadow:0 25px 90px #4935523d;background:#fff;overflow:auto}dialog::backdrop{background:#40334374;backdrop-filter:blur(5px)}dialog.wide{width:min(1030px,calc(100vw - 30px))}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:22px 26px;border-bottom:1px solid #f0ebf3;background:#fff;position:sticky;top:0;z-index:6}.modal-header h2{font-size:20px;font-weight:750}.close-button{width:33px;height:33px;border-radius:50%;background:#f6f3f8;color:#a598b0;font-size:24px;flex-shrink:0;display:grid;place-items:center}.modal-body{padding:24px 26px 27px}.modal-body p{font-size:13px;line-height:1.75;color:#90829d}.modal-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:23px}.secondary,.danger,.success{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:12px;padding:10px 15px;font-size:13px;font-weight:650;background:#f4f0f8;color:#8b75a3}.secondary:hover{background:#eae3f2}.danger{background:#fbe9ee;color:#cd7287}.success{background:#e8f5ee;color:#4d9e83}.text-button{border:0;background:none;color:var(--purple);font-size:12px;padding:5px 7px}.form-field{margin-top:18px}.form-field:first-child{margin-top:0}.form-field label,.field-label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;color:#7a6a87}.input{width:100%;border:1px solid #e8e0ed;border-radius:12px;padding:11px 13px;background:#fcfafdfc;color:#63546f;resize:vertical}.input::placeholder{color:#b4a9bf}.input.short{max-width:105px}.field-note{font-size:11px!important;color:#a396ad!important;margin-top:6px}.form-row{display:grid;grid-template-columns:110px 1fr;gap:12px}.tabs{display:flex;padding:5px;gap:5px;border-radius:15px;background:#f5f2f8;margin-bottom:20px}.tabs button{flex:1;background:none;color:#a394ad;font-weight:650;font-size:13px;border-radius:11px;padding:10px 12px}.tabs button.active{background:white;color:var(--purple);box-shadow:0 3px 10px #79658c0d}.pet-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:12px}.pet-choice{padding:8px 7px 10px;background:#fcfafc;border:2px solid #f1edf4;border-radius:15px;color:#9b8ca6;font-size:11px}.pet-choice[aria-pressed=true]{border-color:#a693df;background:#f9f5ff;color:#7a60b3}.pet-choice .pet-art{height:101px;background:white;border-radius:8px;margin-bottom:7px}.pet-choice small{display:block;font-size:9px;color:#b2a5bb;margin-top:3px}.profile-top{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:23px;padding:2px 4px 24px}.profile-art{height:185px;background:#fff;border-radius:25px}.profile-name{font-size:23px;font-weight:750;color:#d57497;margin-bottom:5px}.profile-stage{color:#9b88b1;font-size:12px}.profile-stats{display:flex;gap:25px;margin:17px 0}.profile-stats span{font-size:10px;color:#ad9cb7}.profile-stats b{display:block;font-size:25px;color:#7c688c;line-height:1.2}.profile-buttons{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.quick-rule{padding:15px 9px;background:#f0f8f4;border:1px solid #e5f0ea;border-radius:15px;color:#6fa88c;font-size:12px;font-weight:600;display:flex;align-items:center;flex-direction:column;gap:3px}.quick-rule b{font-size:23px;line-height:1.4}.quick-rule.minus{background:#fcf1f4;border-color:#f7e8ed;color:#cc899b}.custom-score{background:#fcfafc;padding:17px;border-radius:16px;margin-top:17px;border:1px solid #f2ecf5}.custom-score h3{font-size:13px;color:#8e789f;margin-bottom:12px}.history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.history-list{max-height:390px;overflow:auto}.history-item{display:flex;justify-content:space-between;gap:14px;padding:13px 3px;border-bottom:1px solid #f0ebf5;align-items:center}.history-item b{display:block;font-size:13px;font-weight:600}.history-item small{display:block;color:#b2a4bd;font-size:10px;margin-top:4px}.delta{font-size:19px;font-weight:750;color:#72a68e}.delta.negative{color:#c17c91}.history-item.voided{opacity:.48}.history-item.voided b,.history-item.voided .delta{text-decoration:line-through}.plain-empty{padding:35px 10px;text-align:center;color:#b0a0bd;font-size:13px}.ranking-tabs{margin-bottom:12px}.rank-note{margin-bottom:17px}.rank-list{display:flex;flex-direction:column;gap:10px}.rank-item{width:100%;display:grid;grid-template-columns:34px 55px 1fr 68px;align-items:center;gap:10px;text-align:left;background:#fcfbfd;border:1px solid #f4eff7;border-radius:16px;padding:13px;color:inherit}.rank-item.top1{border-color:#f1dca3;background:#fffdf6}.rank-item.top2{border-color:#ddd6e7;background:#fcfbfe}.rank-item.top3{border-color:#ead0c2;background:#fffaf7}.rank-place{text-align:center;font-size:16px;font-weight:700;color:#b5a3c0}.rank-art{height:52px;background:white;border-radius:50%;overflow:hidden}.rank-info b{font-size:15px;color:#7b668b;display:block}.rank-info small{font-size:10px;color:#b3a2bf;display:block;margin-top:4px}.rank-score{text-align:right;font-size:23px;color:#caa064;font-weight:750}.rank-score small{font-size:9px;color:#b7a9bf;font-weight:400;display:block}.gallery-layout{display:grid;grid-template-columns:180px 1fr;gap:23px}.gallery-nav{display:flex;flex-direction:column;gap:7px}.gallery-nav button{background:#faf7fc;color:#9a85ad;text-align:left;padding:11px 13px;border:1px solid #f1eaf5;border-radius:12px;font-size:12px}.gallery-nav button.active{border-color:#baa7dc;background:#f4eefb;color:#7a5fab;font-weight:750}.gallery-nav small{display:block;color:#c2b3cc;font-size:9px;margin-top:3px}.gallery-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px}.gallery-title h3{font-size:19px;color:#816a93}.badge{display:inline-block;font-size:10px;padding:4px 8px;border-radius:8px;background:#f5f0fa;color:#aa92bd}.growth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:19px}.growth-item{background:#fcfafd;border:1px solid #f0e9f6;border-radius:17px;padding:10px;text-align:center}.growth-item .pet-art{height:145px;background:white;border-radius:10px;margin-bottom:9px}.growth-item b{display:block;color:#9175a7;font-size:11px}.growth-item small{display:block;color:#b5a3c2;font-size:10px;margin-top:4px}.growth-item.current{border-color:#c7b3e0;background:#f9f3ff}.original-sheet{width:100%;height:auto;display:block;background:white;border-radius:14px;border:1px solid #f0e9f4;margin-top:16px}.rule-item{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid #f0e9f6;border-left:4px solid #a5cbb5;border-radius:14px;margin-bottom:9px}.rule-item.minus{border-left-color:#d8a4b5}.rule-item span{flex:1;font-size:13px;color:#9c87ae}.rule-item strong{font-size:16px;color:#8baa99}.rule-item.minus strong{color:#be8b9d}.rule-form{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.rule-form .form-row{grid-template-columns:1fr 90px auto;align-items:end}.rule-form .primary{height:44px}.manage-class{display:flex;align-items:center;gap:10px;background:#fbf8fd;border:1px solid #ede4f3;border-radius:14px;padding:13px;margin-top:10px}.manage-class .class-main{flex:1}.manage-class b{display:block;font-size:13px;color:#8d74a1}.manage-class small{font-size:10px;color:#b5a2c3}.manage-section{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.manage-section h3{font-size:14px;color:#8f769f;margin-bottom:10px}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.note-box{padding:14px 17px;background:#faf7fc;border:1px solid #f1eaf7;border-radius:14px;margin:16px 0;color:#a28fb0;font-size:12px;line-height:1.85}.note-box.warning{background:#fff9ed;color:#b29871;border-color:#f7ebd3}.batch-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:230px;overflow:auto;padding:10px;background:#fcfafd;border:1px solid #f0e8f6;border-radius:13px}.batch-list label{font-size:12px;color:#9a84ab;display:flex;align-items:center;gap:9px;padding:5px}.batch-list input{accent-color:var(--purple);width:16px;height:16px}.checkbox-line{display:flex;align-items:center;gap:9px;font-size:13px;color:#9c86ad;margin:10px 0}.checkbox-line input{accent-color:var(--purple)}.download-link{text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:13px;padding:13px;background:#f3edf9;color:#9275ab;font-size:13px;font-weight:700}.help-list{padding-left:20px;margin:14px 0;color:#9e89af;font-size:13px;line-height:2.1}
#evolution{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;inset:0;border-radius:0;margin:0;background:radial-gradient(ellipse at 50% 48%,#725294 0,#44375e 44%,#262139 100%);color:white;overflow:hidden;text-align:center}#evolution::backdrop{background:#2c233e}.evo-scene{position:relative;z-index:2;min-height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:35px 20px}.evo-rings{position:absolute;left:50%;top:48%;width:590px;height:590px;transform:translate(-50%,-50%);border:1px solid #e3d3ff3b;border-radius:50%;box-shadow:0 0 60px #c4a0f826,inset 0 0 60px #c4a0f818;animation:collect 2.2s ease-out both}.evo-rings:before,.evo-rings:after{content:"";position:absolute;inset:28px;border:1px dashed #ddc7ff56;border-radius:50%}.evo-rings:after{inset:63px;border-style:solid;border-color:#efd9a155}.evo-kicker{position:relative;font-size:12px;letter-spacing:6px;color:#cebee4;margin-bottom:8px}.evo-scene h2{font-size:32px;letter-spacing:3px;color:#fff1d5;font-weight:750}.evo-sphere{width:260px;height:300px;position:relative;background:white;border-radius:32px;box-shadow:0 0 75px #e5c9ff66;z-index:3;margin:25px 0;overflow:hidden}.evo-old,.evo-new{position:absolute;inset:12px}.evo-old{animation:dissolve 1.7s ease-in both}.evo-new{animation:materialize 3.1s ease-out both}.evo-flash{position:absolute;inset:0;background:radial-gradient(#fff,#fae6ffcc,transparent 75%);z-index:5;pointer-events:none;opacity:0;animation:flash 2.5s ease-in-out both}.evo-spark{position:absolute;left:calc(50% + var(--x));top:calc(48% + var(--y));font-size:var(--s);color:#fce4ae;z-index:6;animation:starlight 3s ease-in-out both;animation-delay:var(--d)}.evo-description{z-index:7;font-size:14px;color:#decee9;margin:0 0 5px}.evo-levels{z-index:7;font-size:11px;color:#b6a1c8}.evo-buttons{z-index:7;display:flex;gap:10px;margin-top:25px}.evo-buttons .primary{background:#f1dfa9;color:#69537f;box-shadow:0 0 30px #ecdba422;padding:12px 28px}.evo-buttons .secondary{background:#ffffff12;color:#ceb9df}.evo-continue{animation:show-button 3s linear both}
@keyframes dissolve{0%,20%{opacity:1;transform:scale(1);filter:brightness(1)}70%{opacity:.8;transform:scale(.75);filter:brightness(2)}100%{opacity:0;transform:scale(.15);filter:brightness(5)}}@keyframes collect{0%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}50%{opacity:1}75%{transform:translate(-50%,-50%) scale(.7)}100%{opacity:.55;transform:translate(-50%,-50%) scale(1)}}@keyframes materialize{0%,52%{opacity:0;transform:scale(.4);filter:brightness(3)}66%{opacity:1;transform:scale(1.08);filter:brightness(1.5)}100%{opacity:1;transform:scale(1);filter:brightness(1)}}@keyframes flash{0%,58%{opacity:0}66%{opacity:.95}85%,100%{opacity:0}}@keyframes starlight{0%,40%{opacity:0;transform:scale(.2)}75%{opacity:1;transform:scale(1.3)}100%{opacity:.6;transform:scale(1)}}@keyframes show-button{0%,85%{opacity:0}100%{opacity:1}}
@media(max-width:700px){.gallery-layout{grid-template-columns:1fr}.gallery-nav{display:flex;flex-direction:row;overflow:auto;padding-bottom:3px;gap:7px}.gallery-nav button{min-width:105px}.gallery-nav small{white-space:nowrap}.growth-item .pet-art{height:115px}.modal-body{padding:19px}.modal-header{padding:18px 20px}.pet-picker{grid-template-columns:repeat(3,1fr)}.profile-top{grid-template-columns:140px 1fr;gap:14px}.profile-art{height:160px}.profile-name{font-size:20px}.gallery-title h3{font-size:17px}}@media(max-width:430px){.profile-top{grid-template-columns:120px 1fr;gap:9px}.profile-art{height:155px}.profile-stats{gap:19px}.profile-stats b{font-size:23px}.quick-grid{gap:8px}.quick-rule{font-size:11px}.form-row{grid-template-columns:90px 1fr}.growth-grid{gap:9px;grid-template-columns:repeat(2,1fr)}.rule-form .form-row{grid-template-columns:1fr 75px}.rule-form .primary{grid-column:1/-1}.manage-class{flex-wrap:wrap}.manage-class .class-main{min-width:135px}.evo-scene h2{font-size:28px}.evo-sphere{width:235px;height:280px}.evo-rings{width:420px;height:420px}}@media(prefers-reduced-motion:reduce){.evo-old{display:none}.evo-new{opacity:1}.evo-flash,.evo-rings,.evo-spark{display:none}.evo-continue{opacity:1}}

#classForm .form-row{grid-template-columns:1fr auto}

.stage-view{height:min(54vh,480px);background:#fff;border-radius:20px;padding:10px}.stage-tabs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:18px 0 8px}.stage-tabs button{padding:9px 13px;border-radius:10px;background:#f6f1fa;color:#9c83b0}.stage-tabs button.active{background:#a28bd4;color:#fff}.stage-caption{text-align:center}.growth-item{font:inherit;cursor:pointer}.growth-item:hover{border-color:#c6addd}.modal-actions a{text-decoration:none}

.pet-count{background:#f1e9f8;color:#9479b5;padding:2px 6px;border-radius:8px;font-size:10px}.pet-selection-tools{display:flex;align-items:center;gap:14px;justify-content:space-between;margin:15px 0}.pet-search{display:flex;align-items:center;gap:6px;background:#fbf8fe;border:1px solid #ece3f3;border-radius:12px;padding:9px 11px;min-width:0}.pet-search span{color:#b3a0c1;display:flex}.pet-search input{width:100%;min-width:0;border:0;background:transparent;outline:0;color:#856a9c;font:inherit;font-size:12px}.pet-total{font-size:12px;color:#a089b2;white-space:nowrap}.pet-picker{max-height:44vh;overflow:auto;padding:3px}.gallery-sidebar{min-width:0}.gallery-sidebar .pet-search{margin-bottom:12px}.gallery-nav{max-height:57vh;overflow:auto;padding-right:3px}.gallery-nav button{flex-shrink:0}.gallery-nav .hidden,.pet-picker .hidden{display:none!important}@media(max-width:700px){.gallery-nav{max-height:none}.gallery-sidebar .pet-search{max-width:100%}.gallery-layout{gap:17px}.pet-picker{max-height:40vh}}


/* Classroom excitement */
.music-tool.playing{background:#eef8f3;color:#4d9f80}.music-tool.playing .icon{animation:musicPulse 1.5s ease-in-out infinite}.class-quest{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:center;gap:14px;background:linear-gradient(120deg,#fffdf8,#fff7fc 55%,#f5f1ff);border:1px solid #f0e4ed;border-radius:20px;padding:14px 18px;margin:-7px 0 22px;box-shadow:0 5px 18px #765a8310}.quest-emblem{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#fff0c9;font-size:24px;box-shadow:inset 0 0 0 1px #f3ddaa}.quest-emblem.complete{background:#fff2bc;animation:questGlow 1.8s ease-in-out infinite}.quest-copy{display:grid;grid-template-columns:minmax(150px,260px) 1fr;align-items:center;gap:15px}.quest-copy b{display:block;color:#80688e;font-size:13px}.quest-copy span{display:block;color:#ad9bb3;font-size:10px;margin-top:3px}.quest-progress{height:9px;background:#eee7f3;border-radius:20px;overflow:hidden}.quest-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f19db8,#e8c66e,#9dd6bf);box-shadow:0 0 12px #e9bcd3;transition:width .45s}.quest-score{font-size:18px;color:#d09b42;text-align:center;white-space:nowrap}.quest-score small{display:block;font-size:9px;color:#b6a4b9;font-weight:500}.quest-remaining{font-size:10px;color:#a796ae;background:#f6f1f9;border-radius:10px;padding:7px 9px;white-space:nowrap}.quest-celebrate{background:#f5e8aa;color:#9b742e;border-radius:11px;padding:8px 10px;font-size:10px;font-weight:750;white-space:nowrap}.achievement-count{font-size:10px;color:#aa7b34;background:#fff4cf;border-radius:9px;padding:4px 7px;margin-left:auto;margin-right:4px}.achievement-panel{margin:-5px 0 20px;padding:14px;background:#fcf9fd;border:1px solid #f0e8f4;border-radius:16px}.achievement-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.achievement-heading b{font-size:13px;color:#806c90}.achievement-heading span{font-size:10px;color:#a999b1}.achievement-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.achievement{padding:9px 5px;border-radius:12px;text-align:center;background:white;border:1px solid #f1eaf4}.achievement>span{display:block;font-size:21px;filter:grayscale(1);opacity:.35}.achievement b{font-size:10px;color:#9b8aa5;display:block;margin-top:3px}.achievement small{font-size:8px;color:#b6aabd;display:block;margin-top:2px}.achievement.unlocked{border-color:#ecd99f;background:#fffdf4;box-shadow:0 3px 10px #c99f4610}.achievement.unlocked>span{filter:none;opacity:1}.achievement.unlocked b{color:#a47b32}.music-now{display:flex;align-items:center;gap:13px;padding:15px;background:linear-gradient(110deg,#f8f2fc,#eef9f5);border-radius:17px}.music-now>span{width:45px;height:45px;border-radius:15px;background:white;color:#9277b3;display:grid;place-items:center}.music-now>span .icon{width:25px;height:25px}.music-now>div{flex:1}.music-now b{display:block;color:#806892}.music-now small{display:block;color:#ae9bb5;font-size:10px;margin-top:3px}.music-themes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.music-themes button{padding:13px;text-align:left;border:1px solid #eee5f2;background:#fdfbfe;border-radius:14px;color:#8d779e}.music-themes button.active{border-color:#bfaade;background:#f6f0fb;box-shadow:0 4px 14px #8566ac12}.music-themes b,.music-themes small{display:block}.music-themes small{font-size:9px;color:#b2a2bb;line-height:1.5;margin-top:4px}.volume-control{display:grid;grid-template-columns:75px 1fr 40px;align-items:center;gap:10px;color:#917e9d;font-size:12px;padding:10px 2px}.volume-control input{accent-color:#9a82c2}.volume-control b{text-align:right;color:#a287b0}.combo-burst{position:fixed;right:28px;top:128px;z-index:900;padding:14px 18px;border-radius:18px;background:linear-gradient(135deg,#7e68b7,#e486a8);color:#fff;box-shadow:0 14px 35px #67517b3d;animation:comboPop .38s cubic-bezier(.2,1.5,.4,1);min-width:170px}.combo-burst span{font-size:22px;float:left;margin-right:9px}.combo-burst b,.combo-burst small{display:block}.combo-burst small{font-size:9px;opacity:.8;margin-top:3px}.class-celebration{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at center,#fffdf6f5 0,#f6e9fff2 45%,#665075c9 100%);padding:20px}.class-celebration.hidden{display:none}.class-celebration>i{position:absolute;left:var(--x);top:-30px;width:11px;height:22px;border-radius:4px;background:var(--c);animation:confettiFall 3.2s var(--d) linear infinite;transform:rotate(var(--r))}.celebration-card{position:relative;z-index:2;width:min(500px,92vw);text-align:center;padding:46px 34px 36px;border-radius:34px;background:#fffdfd;border:2px solid #fff;box-shadow:0 30px 100px #4a365553;animation:celebratePop .55s cubic-bezier(.2,1.35,.35,1)}.celebration-stars{font-size:42px;color:#e7b852;letter-spacing:9px;text-shadow:0 0 20px #f5da86}.celebration-card>p{font-size:10px!important;letter-spacing:3px;color:#b396b6!important;margin:15px 0 5px}.celebration-card h2{font-size:35px;color:#d66f96;margin:3px 0 8px}.celebration-card>strong{display:block;color:#7e6891;font-size:17px}.celebration-card>span{display:block;color:#aa97b1;font-size:12px;margin:8px 0 24px}.celebration-card .primary{font-size:14px;padding:13px 20px}
@keyframes musicPulse{50%{transform:scale(1.14) rotate(-7deg)}}@keyframes questGlow{50%{transform:scale(1.08);box-shadow:0 0 22px #eccf68aa}}@keyframes comboPop{from{opacity:0;transform:translateY(-18px) scale(.8)}}@keyframes celebratePop{from{opacity:0;transform:scale(.65) rotate(-2deg)}}@keyframes confettiFall{to{top:108%;transform:translateX(85px) rotate(calc(var(--r) + 720deg))}}
@media(max-width:900px){.class-quest{grid-template-columns:auto 1fr auto}.quest-copy{grid-template-columns:1fr}.quest-remaining,.quest-celebrate{grid-column:2/4;justify-self:end}.achievement-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.class-quest{padding:12px;gap:9px}.quest-emblem{width:38px;height:38px}.quest-copy span{display:none}.quest-score{font-size:15px}.quest-remaining,.quest-celebrate{display:none}.music-themes{grid-template-columns:1fr}.achievement-grid{grid-template-columns:repeat(2,1fr)}.combo-burst{top:auto;bottom:20px;right:14px;left:14px;text-align:center}.celebration-card{padding:36px 18px 29px}.celebration-card h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.music-tool.playing .icon,.quest-emblem.complete,.combo-burst,.celebration-card,.class-celebration>i{animation:none}}


/* Access and student read-only preview */
.access-banner{min-height:48px;display:flex;align-items:center;justify-content:center;gap:12px;padding:9px 18px;background:linear-gradient(90deg,#67538f,#8771b5);color:#fff;box-shadow:0 5px 18px #4f3d6b24;position:relative;z-index:1100}.access-banner.hidden{display:none}.access-banner>span{width:30px;height:30px;border-radius:10px;background:#ffffff20;display:grid;place-items:center}.access-banner .icon{width:17px;height:17px}.access-banner div{display:flex;align-items:baseline;gap:10px}.access-banner b{font-size:13px}.access-banner small{font-size:10px;color:#e8def3}.access-banner button{margin-left:10px;padding:6px 10px;border-radius:9px;background:#fff;color:#725e99;font-size:10px;font-weight:750}.student-view .teacher-only,.student-view .score-buttons,.student-view [data-action="backup"],.student-view [data-action="records"]{display:none!important}.student-view .class-select{pointer-events:none;opacity:.72}.student-view .card-actions{justify-content:center}.student-view .score{text-align:center}.access-intro,.student-lock{display:flex;align-items:flex-start;gap:14px;padding:17px;background:linear-gradient(120deg,#f5f0fb,#eef8f4);border:1px solid #e9e0f1;border-radius:18px}.access-intro>span,.student-lock>span{flex:0 0 48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#fff;color:#8065aa;box-shadow:0 5px 16px #77648e18}.access-intro .icon,.student-lock .icon{width:24px;height:24px}.access-intro b,.student-lock b{display:block;color:#765f89;font-size:16px}.access-intro p,.student-lock p{margin-top:5px;color:#a08eaa;font-size:12px;line-height:1.7}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:17px 0}.role-card{border:1px solid #eee7f2;border-radius:16px;padding:15px;background:#fcfafd}.role-card.active{border-color:#c4b3dc;background:#f7f2fb}.role-card span{display:inline-block;border-radius:9px;padding:4px 8px;background:#eee6f5;color:#8065a0;font-size:10px;font-weight:750}.role-card b,.role-card small{display:block}.role-card b{margin-top:10px;color:#7f6c8d;font-size:13px}.role-card small{margin-top:4px;color:#ad9db5;font-size:9px;line-height:1.6}.access-actions{justify-content:stretch}.access-actions button{flex:1}.auth-status{margin-top:19px;padding:16px 17px;border:1px dashed #d9c8e6;border-radius:16px;background:#fdfbfe}.auth-status>span{display:block;font-size:9px;letter-spacing:1.6px;color:#a790b7}.auth-status>b{display:block;margin:7px 0 4px;color:#806a91}.auth-status>p{font-size:11px;color:#a594ae;line-height:1.7}
@media(max-width:700px){.access-banner{justify-content:flex-start}.access-banner div{display:block;flex:1}.access-banner small{display:block;margin-top:2px}.access-banner button{margin-left:0}.role-grid{grid-template-columns:1fr}}


/* No-code customization and desktop entry */
body.theme-mint{--pink:#5aa88c;--purple:#4c987f;--mint:#4ba58b;--blue:#62a3a2;--bg:#f5fbf8}body.theme-sky{--pink:#6fa5cf;--purple:#587fb8;--mint:#62aa9d;--blue:#4e91ca;--bg:#f4f9fd}body.theme-sunny{--pink:#eb8e62;--purple:#c87958;--mint:#70a77f;--blue:#7299be;--bg:#fffaf1}body.theme-lavender{--pink:#bd7caf;--purple:#8167b8;--mint:#78a996;--blue:#7d94c6;--bg:#faf7ff}.quick-entry-fab{position:fixed;right:26px;bottom:24px;z-index:850;display:flex;align-items:center;gap:8px;border-radius:18px;padding:12px 15px;background:linear-gradient(135deg,var(--purple),#9b7bc1);color:#fff;font-size:13px;font-weight:750;box-shadow:0 12px 35px #5d47783b}.quick-entry-fab:hover{transform:translateY(-2px);box-shadow:0 16px 42px #5d47784b}.quick-entry-fab .icon{width:19px;height:19px}.quick-entry-fab kbd{font-size:8px;color:#eadff3;background:#ffffff18;border:1px solid #ffffff2e;border-radius:6px;padding:2px 5px}.quick-entry-intro,.customize-heading{display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:16px;background:#f8f3fb;border:1px solid #eee5f3}.quick-entry-intro>span,.customize-heading>span{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#fff;color:var(--purple);font-size:21px}.quick-entry-intro>span .icon{width:23px;height:23px}.quick-entry-intro b,.customize-heading b{display:block;color:#7c678c;font-size:14px}.quick-entry-intro small,.customize-heading small{display:block;color:#ad9bb5;font-size:10px;margin-top:3px}.quick-score-row{grid-template-columns:1fr 110px}.keyboard-hints{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;color:#a28fac;font-size:10px}.keyboard-hints kbd{display:inline-block;padding:3px 6px;border:1px solid #e3d9e9;border-bottom-width:2px;border-radius:6px;background:#faf7fc;color:#826e92;font:inherit;font-weight:750}.theme-options{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.theme-option{position:relative;display:flex;align-items:center;flex-direction:column;gap:7px;padding:10px 5px;border:2px solid #eee8f2;border-radius:13px;background:#fdfbfe;cursor:pointer;color:#9685a1;font-size:9px}.theme-option input{position:absolute;opacity:0}.theme-option:has(input:checked){border-color:var(--purple);background:#f7f2fb;color:var(--purple);font-weight:750}.theme-option i{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#ec7999,#7865d9)}.theme-option.mint i{background:linear-gradient(135deg,#78c4a9,#4c987f)}.theme-option.sky i{background:linear-gradient(135deg,#8bc5e8,#587fb8)}.theme-option.sunny i{background:linear-gradient(135deg,#f3c26f,#e1805b)}.theme-option.lavender i{background:linear-gradient(135deg,#d997c9,#8167b8)}@media(min-width:1231px){body.density-compact .student-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}body.density-compact .art-frame{height:126px}body.density-compact .card-open{padding-left:13px;padding-right:13px}body.density-compact .student-name{font-size:16px}}@media(max-width:590px){.quick-entry-fab{right:14px;bottom:14px;padding:11px;border-radius:15px}.quick-entry-fab span,.quick-entry-fab kbd{display:none}.theme-options{grid-template-columns:repeat(3,1fr)}.quick-score-row{grid-template-columns:1fr 90px}}

.hide-class-quest .class-quest{display:none}

.domain-plan{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:11px;margin:16px 0;padding:13px;border:1px solid #eee5f3;border-radius:15px;background:#fdfbfe}.domain-plan>div{min-width:0}.domain-plan small,.domain-plan b{display:block}.domain-plan small{font-size:9px;color:#aa99b2}.domain-plan b{margin-top:3px;color:#78658a;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.domain-plan>span{color:#baa9c5}
.student-pet-choice{border:0;border-radius:999px;padding:9px 14px;background:linear-gradient(135deg,#f6c65b,#f09f66);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 6px 14px rgba(219,145,67,.18)}
.student-pet-choice:hover{transform:translateY(-1px)}
.student-pet-choice.locked{background:#edf2ee;color:#789181;box-shadow:none;cursor:default}
.one-time-warning{display:flex;flex-direction:column;gap:5px;padding:14px 16px;margin-bottom:16px;border-radius:16px;background:#fff6d9;color:#8f651e}.one-time-warning span{font-size:13px;color:#9d7b43}

.teacher-delete-student{border:1px solid #efc7cf;border-radius:999px;padding:8px 12px;background:#fff7f8;color:#c76576;font-size:11px;font-weight:750;cursor:pointer}.teacher-delete-student:hover{background:#feecef;border-color:#e9aeb9}

.pet-code-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:55vh;overflow:auto}.pet-code-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #eee5f2;border-radius:12px;background:#fdfbfe}.pet-code-list span{color:#806f8d}.pet-code-list b{font:800 15px ui-monospace,monospace;letter-spacing:1px;color:#9b6b35}@media(max-width:600px){.pet-code-list{grid-template-columns:1fr}}
.account-list{display:grid;gap:10px;margin:14px 0 22px;max-height:340px;overflow:auto}.account-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #eee2e8;border-radius:16px;background:#fff}.account-row>div:first-child{display:grid;gap:3px}.account-row small{color:#8c8290}.account-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.account-actions button{padding:8px 11px;font-size:13px}@media(max-width:720px){.account-row{align-items:flex-start;flex-direction:column}.account-actions{width:100%;justify-content:flex-start}}
