:root {
  --color-canvas: #fbf7ed;
  --color-surface: #fffdf8;
  --color-surface-soft: #f2eee3;
  --color-ink: #173c39;
  --color-muted: #5e716d;
  --color-teal: #087f73;
  --color-teal-dark: #075e57;
  --color-teal-soft: #dff3ed;
  --color-orange: #e66b2e;
  --color-orange-dark: #ad4316;
  --color-orange-soft: #fff0df;
  --color-danger: #a33b31;
  --color-border: #d8ded7;
  --shadow: 0 12px 30px rgb(26 66 60 / 10%);
  --radius: 1rem;
  font-family: Inter, ui-rounded, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  color: var(--color-ink);
  background: var(--color-canvas);
  line-height: 1.6;
}

* { box-sizing: border-box; }
html { min-width: 0; overflow-x: hidden; }
body { min-width: 0; margin: 0; overflow-x: hidden; background: var(--color-canvas); }
img, svg, video { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
a { color: var(--color-teal-dark); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--color-orange-dark); }
:focus-visible { outline: 3px solid var(--color-orange); outline-offset: 3px; }
h1, h2, h3 { line-height: 1.25; overflow-wrap: anywhere; }
h1 { margin-top: 0; font-size: clamp(1.7rem, 4vw, 2.5rem); }
h2 { font-size: clamp(1.2rem, 2.5vw, 1.55rem); }
p, li, td, th, label { overflow-wrap: anywhere; }

.skip-link { position: fixed; z-index: 20; top: .5rem; left: .5rem; transform: translateY(-180%); padding: .6rem 1rem; background: white; }
.skip-link:focus { transform: none; }
.site-header { background: #fffaf0; border-bottom: 1px solid var(--color-border); }
.site-nav { width: min(1180px, calc(100% - 2rem)); margin: auto; padding: .9rem 0; display: flex; flex-wrap: wrap; align-items: center; gap: .55rem 1rem; }
.brand { margin-right: auto; color: var(--color-teal-dark); font-size: 1.12rem; font-weight: 800; text-decoration: none; }
.nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem 1rem; }
.nav-links a { font-weight: 650; text-decoration: none; }
.inline-form { display: inline; margin: 0; }
.page-shell { width: min(1180px, calc(100% - 2rem)); margin: 2rem auto 4rem; }

.messages { width: min(1180px, calc(100% - 2rem)); margin: 1rem auto 0; padding: 0; list-style: none; }
.message, [role="alert"] { padding: .8rem 1rem; border: 1px solid #e8c47c; border-radius: .75rem; background: #fff4ce; color: #5a4216; }
.page-actions, .filter-bar { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; margin: 1rem 0 1.5rem; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.card, section, article { padding: clamp(1rem, 3vw, 1.5rem); border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); box-shadow: var(--shadow); }
article h2, section h2 { margin-top: 0; }
.muted, .helptext { color: var(--color-muted); font-size: .92rem; }
.privacy-notice { padding: .75rem 1rem; border: 1px solid #79bdb2; border-radius: .75rem; background: var(--color-teal-soft); font-weight: 650; }

button, .button { appearance: none; display: inline-flex; min-height: 2.65rem; align-items: center; justify-content: center; padding: .55rem 1rem; border: 1px solid transparent; border-radius: .7rem; background: var(--color-teal); color: white; font: inherit; font-weight: 750; line-height: 1.2; text-decoration: none; cursor: pointer; }
button:hover, .button:hover { background: var(--color-teal-dark); color: white; }
.button-secondary { border-color: var(--color-teal); background: transparent; color: var(--color-teal-dark); }
.button-warm { background: var(--color-orange); }
.button-warm:hover { background: var(--color-orange-dark); }
form p { margin: 0 0 1rem; }
label { display: block; margin-bottom: .3rem; font-weight: 700; }
input, select, textarea { width: 100%; max-width: 42rem; min-height: 2.75rem; padding: .58rem .7rem; border: 1px solid #9eaaa5; border-radius: .6rem; background: white; color: var(--color-ink); font: inherit; }
input[type="checkbox"], input[type="radio"] { width: 1.15rem; min-height: 1.15rem; margin-right: .45rem; accent-color: var(--color-teal); }
textarea { min-height: 7rem; resize: vertical; }
select[multiple] { min-height: 9rem; }
.errorlist { margin: .25rem 0; padding-left: 1.25rem; color: var(--color-danger); font-weight: 700; }
form > div, form > p { max-width: 46rem; }

.table-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); box-shadow: var(--shadow); }
table { width: 100%; min-width: 42rem; border-collapse: collapse; }
th, td { padding: .75rem .85rem; border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: top; }
th { background: var(--color-teal-soft); color: var(--color-teal-dark); }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:nth-child(even) { background: #fcfaf4; }

.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 1rem; background: radial-gradient(circle at top, var(--color-orange-soft), transparent 45%), var(--color-canvas); }
.auth-card { width: min(100%, 30rem); padding: clamp(1.4rem, 5vw, 2.5rem); border: 1px solid var(--color-border); border-radius: 1.4rem; background: rgb(255 253 248 / 96%); box-shadow: var(--shadow); }
.auth-card form { margin-top: 1.25rem; }
.auth-card button { width: 100%; }
.auth-card .secondary-form { margin-top: .75rem; }

.projection-page { min-height: 100vh; background: #0b3533; color: #f9f5e9; }
.projection-page main { width: min(1200px, calc(100% - 2rem)); margin: auto; padding: clamp(1.5rem, 5vw, 4rem) 0; }
.projection-page .privacy-notice { color: #082f2b; }
.dimension-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 1rem; padding: 0; list-style: none; }
.dimension-card { padding: 1.5rem; border: 1px solid rgb(255 255 255 / 22%); border-radius: 1rem; background: rgb(255 255 255 / 10%); text-align: center; }
.dimension-card strong { display: block; font-size: 1.2rem; }
.dimension-value { display: block; color: #ffb169; font-size: clamp(2rem, 6vw, 3.5rem); font-weight: 850; }

.print-page { background: white; }
.print-page > main { width: min(900px, calc(100% - 2rem)); margin: 1rem auto; }
.student-report { page-break-after: always; break-after: page; box-shadow: none; }
.student-report:last-child { page-break-after: auto; break-after: auto; }

@media (max-width: 720px) {
  .site-nav { align-items: flex-start; }
  .brand { width: 100%; }
  .nav-links { width: 100%; gap: .4rem .75rem; }
  .nav-links a { padding: .25rem 0; }
  .page-shell { margin-top: 1.25rem; }
  .page-actions > *, .filter-bar > * { flex: 1 1 100%; }
  .page-actions button, .page-actions .button, .filter-bar button { width: 100%; }
  section, article { padding: 1rem; }
}

@media print {
  @page { margin: 14mm; }
  :root, body { background: white; color: black; }
  .site-header, .messages, .print-action, .page-actions, form, .privacy-notice { display: none !important; }
  .page-shell, .print-page > main { width: 100%; margin: 0; }
  section, article, .card { border: 0; box-shadow: none; }
  a { color: black; text-decoration: none; }
}

/* V8 prototype-aligned application shell */
.host-header { min-height: 62px; background: #fff; border-bottom-color: #e9ebf2; }
.host-header .site-nav { width: 100%; min-height: 62px; padding: .55rem 24px; }
.host-title { display: flex; align-items: center; gap: 10px; color: #173f3b; font-weight: 900; text-decoration: none; }
.host-title:hover { color: #173f3b; }
.brand-seal { width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg,#2f8d7d,#1a665d); border-radius: 11px; box-shadow: 0 6px 14px rgb(24 102 91 / 20%); font-family: STKaiti, KaiTi, serif; font-size: 20px; }
.brand-copy { display: grid; line-height: 1.12; font-size: 15px; }
.brand-copy small { margin-top: 3px; color: #8c93a6; font-size: 8px; font-weight: 650; }
.host-links { gap: 15px; font-size: 10px; }
.host-links .button-secondary { min-height: 30px; padding: 0 10px; border-color: #dfe4e2; border-radius: 8px; font-size: 10px; }
.teacher-session-badge { margin-left:auto; padding:6px 10px; border:1px solid #dfe7e4; border-radius:20px; background:#f2f8f6; color:#39736b; font-size:10px; font-weight:800; white-space:nowrap; }

/* Passwordless teacher chooser */
.teacher-select-body { min-height:100vh; background:#f2f6f8 radial-gradient(#dfe6ea 1px,transparent 1px); background-size:16px 16px; }
.teacher-select-shell { width:min(960px,calc(100% - 32px)); margin:0 auto; padding:clamp(42px,8vw,90px) 0 48px; }
.teacher-select-head { max-width:650px; margin:0 auto 28px; text-align:center; }
.teacher-select-head .auth-brand { width:max-content; margin:0 auto 30px; text-align:left; }
.teacher-select-head h1 { margin:9px 0 8px; color:#173f3b; font-family:STKaiti,KaiTi,serif; font-size:clamp(30px,5vw,48px); }
.teacher-select-head p { margin:0; color:#7c8985; }
.entry-steps { width:min(420px,100%); display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:24px auto 0; padding:0; list-style:none; }
.entry-steps li { display:flex; align-items:center; justify-content:center; gap:7px; padding:8px; border-radius:11px; background:#e9eeec; color:#8a9692; font-size:11px; font-weight:800; }
.entry-steps li b { width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:#d6dfdc; }
.entry-steps li.active { background:#e0f1ec; color:#1d6a60; }.entry-steps li.active b { background:#277c70; color:#fff; }
.teacher-entry-messages { width:100%; margin:0 0 16px; }
.selected-class-bar { display:flex; align-items:center; gap:12px; margin-bottom:14px; padding:12px 16px; border:1px solid #dce6e2; border-radius:14px; background:#fffdf8; color:#80908b; font-size:11px; }
.selected-class-bar a { margin-right:auto; font-weight:800; text-decoration:none; }.selected-class-bar strong { color:#173f3b; font-size:14px; }
.class-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.class-choice-card { min-height:108px; display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:12px; padding:17px; border:1px solid rgb(23 63 58 / 9%); border-radius:18px; background:#fffdf8; color:#173f3b; text-decoration:none; box-shadow:0 12px 30px rgb(36 67 61 / 8%); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.class-choice-card:hover { transform:translateY(-2px); border-color:#88b8af; background:#fff; color:#173f3b; box-shadow:0 17px 36px rgb(36 67 61 / 13%); }
.class-choice-mark { width:48px; height:48px; display:grid; place-items:center; border-radius:15px; color:#fff; background:linear-gradient(145deg,#ea9a5d,#c76b31); font:24px STKaiti,KaiTi,serif; }
.class-choice-copy { display:grid; min-width:0; }.class-choice-copy strong { font-size:15px; }.class-choice-copy small { margin-top:4px; color:#89938f; font-size:9px; }
.teacher-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:0; border:0; background:transparent; box-shadow:none; }
.teacher-choice-form { margin:0; }
.teacher-choice-card { width:100%; min-height:94px; display:grid; grid-template-columns:54px 1fr auto; align-items:center; gap:14px; padding:18px; border:1px solid rgb(23 63 58 / 9%); border-radius:18px; background:#fffdf8; color:#173f3b; text-align:left; box-shadow:0 12px 30px rgb(36 67 61 / 8%); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.teacher-choice-card:hover { transform:translateY(-2px); border-color:#88b8af; background:#fff; color:#173f3b; box-shadow:0 17px 36px rgb(36 67 61 / 13%); }
.teacher-avatar { width:54px; height:54px; display:grid; place-items:center; border-radius:16px; color:#fff; background:linear-gradient(145deg,#3f9b8b,#1b675d); font:26px STKaiti,KaiTi,serif; box-shadow:0 7px 17px rgb(25 95 87 / 18%); }
.teacher-choice-copy { display:grid; min-width:0; }
.teacher-choice-copy strong { font-size:17px; }
.teacher-choice-copy small { overflow:hidden; margin-top:4px; color:#89938f; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.teacher-choice-arrow { color:#2d8276; font-size:21px; }
.teacher-empty-state { grid-column:1/-1; background:#fffdf8; }
.teacher-select-note { margin:24px 0 0; color:#93a09c; font-size:10px; text-align:center; }

.growth-body { --growth-ink:#34384b; --growth-muted:#8c93a6; --growth-line:#e9ebf2; --growth-paper:#fffdf8; --growth-purple:#7966e8; background:#f2f6f8; color:var(--growth-ink); }
.growth-app.page-shell { width: 100%; margin: 0; background-color: #f2f6f8; background-image: radial-gradient(#dfe6ea 1px,transparent 1px); background-size: 16px 16px; }
.growth-app > section,.growth-app .growth-content section,.growth-app .growth-content article { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.growth-app a { text-decoration: none; }
.toolbar-shell { position: sticky; top: 0; z-index: 20; padding: 12px 18px 10px!important; background: rgb(255 255 255 / 96%)!important; border-bottom: 1px solid var(--growth-line)!important; box-shadow: 0 3px 12px rgb(40 46 68 / 4%)!important; backdrop-filter: blur(12px); }
.toolbar-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.toolbar-row + .toolbar-row { margin-top: 9px; }
.row-spacer { flex: 1; }
.class-switch { min-height: 35px; display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0 11px; border: 1px solid var(--growth-line); background: #fff; border-radius: 10px; color: #62697c; font-size: 10px; }
.class-switch small { color: var(--growth-muted); font-weight: 600; }
.class-switch select { width: auto; min-height: 0; padding: 0 18px 0 0; border: 0; background: transparent; color: #173f3b; font-size: 11px; font-weight: 900; appearance: none; }
.class-switch select:focus { outline: 0; }
.icon-action,.tool-pill { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 10px; border-radius: 9px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.icon-action { border: 1px solid var(--growth-line); color: #6f7689; background: #fff; }
.icon-action:hover { color: #1d665c; background:#f8fbfa; }
.tool-pill { border: 0; color: #fff!important; box-shadow: 0 5px 12px rgb(48 55 75 / 9%); transition: transform .16s ease,filter .16s ease; }
.tool-pill:hover { filter: brightness(1.04); transform: translateY(-1px); }
.tool-pill.teal { background:#43bfb4; }.tool-pill.blue { background:#579fec; }.tool-pill.orange { background:#f39a5c; }.tool-pill.purple { background:#806ce4; }.tool-pill.pink { background:#e982a6; }
.segmented { display: inline-flex; padding: 3px; background: #f0f1f6; border-radius: 9px; }
.segmented button { min-width: 46px; min-height: 28px; padding: 0 9px; border: 0; color: #8b91a2; background: transparent; border-radius: 7px; font-size: 10px; box-shadow: none; }
.segmented button:hover { background:#f7f7fa; color:#6657c9; }
.segmented button.active { color:#5b49c9; background:#fff; box-shadow:0 3px 8px rgb(56 61 83 / 8%); }
.growth-app .search { width: 170px; min-height: 34px; padding: 0 11px; border: 1px solid var(--growth-line); background:#fff; border-radius:9px; font-size:10px; }

.growth-content { padding:22px 20px 55px!important; }
.content-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:15px; }
.content-title h1 { margin:0 0 4px; color:#173f3b; font-size:18px; }
.content-title p { margin:0; color:var(--growth-muted); font-size:10px; }
.summary-pills { display:flex; gap:8px; }
.summary-pill { padding:8px 11px; color:#6d7486; background:rgb(255 255 255 / 86%); border:1px solid var(--growth-line); border-radius:10px; font-size:9px; }
.summary-pill b { margin-left:5px; color:var(--growth-ink); font-size:12px; }

.class-overview { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr); gap:16px; margin-bottom:17px; }
.growth-app .habitat-card { position:relative; min-height:356px; overflow:hidden; padding:27px!important; color:#173f3b; background-image:linear-gradient(90deg,rgb(255 253 248 / 97%) 0%,rgb(255 253 248 / 78%) 43%,rgb(255 253 248 / 4%) 73%),url("../images/habitat-sunrise-campus.d0d44cfacee6.png")!important; background-position:center!important; background-size:cover!important; border:1px solid rgb(22 62 57 / 7%)!important; border-radius:22px!important; box-shadow:0 12px 30px rgb(47 54 83 / 10%)!important; }
.habitat-copy { position:relative; z-index:3; width:53%; }
.habitat-kicker { color:#277c70; font-size:9px; font-weight:900; letter-spacing:.08em; }
.habitat-copy h2 { margin:10px 0 8px; font-family:STKaiti,KaiTi,serif; font-size:31px; }
.habitat-copy p { margin:0; color:#60746f; font-size:10px; line-height:1.75; }
.featured-pet { position:absolute; right:3%; bottom:27px; z-index:2; width:48%; height:292px; padding:0; border:0; background:transparent; box-shadow:none; }
.featured-pet:hover { background:transparent; }
.featured-pet img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 15px 14px rgb(31 69 62 / 20%)); animation:pet-breathe 3.6s ease-in-out infinite; }
.featured-pet::after { content:attr(data-interaction-message); position:absolute; right:2%; top:16%; min-width:68px; padding:7px 10px; color:#28554e; background:#fffdf8; border-radius:12px 12px 12px 3px; box-shadow:0 7px 18px rgb(27 66 59 / 14%); font-size:10px; font-weight:800; white-space:nowrap; }
@keyframes pet-breathe { 0%,100%{transform:translateY(2px) rotate(-.6deg)} 50%{transform:translateY(-7px) rotate(.6deg)} }
@keyframes class-pet-interact { 0%{transform:translateY(2px) rotate(0) scale(1)} 28%{transform:translateY(-18px) rotate(-4deg) scale(1.06)} 55%{transform:translateY(-8px) rotate(5deg) scale(1.03)} 78%{transform:translateY(-13px) rotate(-2deg) scale(1.05)} 100%{transform:translateY(2px) rotate(0) scale(1)} }
.featured-pet.is-interacting img { animation:class-pet-interact .72s ease both; }
.featured-pet.is-interacting::after { color:#176b5f; background:#fff4c8; box-shadow:0 9px 22px rgb(27 66 59 / 20%); }
.class-level { position:absolute; left:27px; bottom:27px; z-index:4; width:46%; }
.class-level-meta { display:flex; justify-content:space-between; margin-bottom:7px; color:#526f69; font-size:9px; font-weight:850; }
.class-level-track { height:9px; overflow:hidden; background:rgb(255 255 255 / 70%); border:1px solid rgb(39 124 112 / 15%); border-radius:20px; }
.class-level-fill { height:100%; background:linear-gradient(90deg,#277c70,#7cb88e,#e6b74f); border-radius:inherit; }

.growth-app .growth-panel { padding:20px!important; background:#fffdf8!important; border:1px solid rgb(22 62 57 / 7%)!important; border-radius:22px!important; box-shadow:0 12px 30px rgb(47 54 83 / 10%)!important; }
.growth-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:15px; }
.growth-panel h2 { margin:0 0 4px; color:#173f3b; font-family:STKaiti,KaiTi,serif; font-size:21px; }
.growth-panel p { margin:0; color:var(--growth-muted); font-size:10px; line-height:1.55; }
.season-badge { flex:0 0 auto; padding:6px 9px; color:#846118; background:#fff1c2; border-radius:9px; font-size:9px; font-weight:850; }
.dimension-list { display:grid; gap:9px; }
.dimension-row { display:grid; grid-template-columns:42px 1fr 31px; align-items:center; gap:9px; font-size:10px; font-weight:800; }
.dimension-track { height:7px; overflow:hidden; background:#edf0ea; border-radius:10px; }
.dimension-fill { width:var(--value); height:100%; background:var(--color); border-radius:inherit; }
.dimension-row b { text-align:right; color:#5f746f; font-size:10px; }
.next-goal { display:grid; grid-template-columns:34px 1fr; gap:10px; margin-top:15px; padding:12px; background:#eef6f1; border-radius:13px; }
.goal-mark { width:34px; height:34px; display:grid; place-items:center; color:#fff; background:#e8754e; border-radius:11px; font-weight:900; }
.next-goal strong { display:block; margin-bottom:3px; font-size:11px; }
.next-goal span { color:var(--growth-muted); font-size:9px; line-height:1.5; }
.growth-button { width:100%; min-height:38px; display:flex; align-items:center; justify-content:center; margin-top:13px; border:0; color:#fff!important; background:#277c70; border-radius:10px; font-size:11px; font-weight:850; }

.v8-recent { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 14px; padding:10px 12px; color:#687872; background:rgb(255 253 248 / 90%); border:1px solid #e3e8e2; border-radius:12px; font-size:10px; }
.v8-recent form { margin:0; }
.growth-app .btn { min-height:32px; padding:0 12px; border:1px solid var(--growth-line); color:#65746f; background:#fff; border-radius:9px; font-size:9px; }
.growth-app .btn:disabled { opacity:.55; cursor:not-allowed; }

.student-grid { display:grid; grid-template-columns:repeat(4,minmax(235px,1fr)); gap:16px; }
.growth-app .student-card { min-height:424px; overflow:hidden; background:#fffdf8!important; border:1px solid rgb(22 62 57 / 8%)!important; border-radius:18px!important; box-shadow:0 10px 28px rgb(35 78 67 / 8%)!important; transition:transform .18s ease,box-shadow .18s ease; }
.student-card:hover { transform:translateY(-3px); box-shadow:0 18px 38px rgb(35 78 67 / 13%)!important; }
.card-top { height:48px; display:flex; align-items:center; justify-content:space-between; padding:0 13px; }
.level-badge { display:inline-flex; padding:5px 8px; color:#1b665c; background:#e1f1e9; border:1px solid #c4e0d5; border-radius:8px; font-size:9px; font-weight:900; }
.coin-count { display:flex; align-items:center; gap:5px; color:#d58916; font-size:10px; font-weight:900; }
.coin { width:19px; height:19px; display:inline-grid; place-items:center; color:#a7680a; background:linear-gradient(145deg,#ffe27b,#f3b52f); border:2px solid #e9a923; border-radius:50%; font-size:9px; }
.pet-zone { position:relative; height:202px; display:grid; place-items:end center; overflow:hidden; background:#dce9d7 url("../images/habitat-sunrise-campus.d0d44cfacee6.png") center 58%/cover no-repeat; }
.pet-zone::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(29 80 69 / 13%)); }
.change-button { position:absolute; right:11px; top:9px; z-index:4; padding:5px 8px; color:#697486; background:rgb(255 255 255 / 84%); border:1px solid rgb(255 255 255 / 80%); border-radius:8px; font-size:9px; }
.pet-visual { position:relative; z-index:2; width:210px; height:202px; display:grid; place-items:end center; isolation:isolate; }
.pet-character-layer { position:relative; z-index:2; width:210px; height:202px; display:grid; place-items:end center; animation:pet-breathe 3.8s ease-in-out infinite; transform-origin:50% 82%; }
.pet-character-layer .carp-image,.pet-character-layer .original-pet-image { grid-area:1/1; animation:none; }
.pet-decoration { position:absolute; display:block; height:auto; object-fit:contain; pointer-events:none; user-select:none; }
.pet-decoration-bed { left:1px; bottom:-4px; width:208px; z-index:1; filter:drop-shadow(0 7px 6px rgb(38 82 74 / 22%)); }
.pet-decoration-bed-front { z-index:3; clip-path:polygon(0 62%,100% 62%,100% 100%,0 100%); filter:drop-shadow(0 5px 4px rgb(38 82 74 / 14%)); }
.has-cloud-bed .pet-character-layer { animation-name:pet-seat-breathe; }
.has-cloud-bed .carp-image { width:166px; height:166px; margin-bottom:22px; }
.has-cloud-bed .original-pet-image { width:176px; height:176px; margin-bottom:18px; }
@keyframes pet-seat-breathe { 0%,100%{transform:translateY(0) rotate(-.25deg)} 50%{transform:translateY(-4px) rotate(.25deg)} }
.pet-reward-coins { position:absolute; left:10px; bottom:9px; z-index:4; padding:5px 8px; border:1px solid #efc24c; border-radius:18px; color:#8b5a08; background:rgb(255 244 188 / 94%); box-shadow:0 5px 12px rgb(98 72 16 / 16%); font-size:9px; font-weight:900; }
.carp-image,.egg-sprite { position:relative; z-index:2; width:190px; height:190px; object-fit:contain; filter:drop-shadow(0 10px 8px rgb(36 72 63 / 20%)); animation:pet-breathe 3.8s ease-in-out infinite; }
.egg-sprite { margin-bottom:5px; }
.card-info { padding:13px 14px 14px; text-align:center; }
.pet-name { position:relative; z-index:5; display:inline-flex; margin-top:-25px; padding:6px 10px; color:#165c52!important; background:#dff2e9; border:3px solid #fffdf8; border-radius:18px; box-shadow:0 5px 11px rgb(132 99 24 / 13%); font-size:9px; font-weight:900; }
.student-name { margin-top:9px; color:#183e39; font-size:15px; font-weight:900; }
.student-id { min-height:15px; margin:5px 0 10px; color:var(--growth-muted); font-size:9px; }
.exp-row { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:8px; color:#8c93a4; font-size:9px; }
.exp-track { height:7px; overflow:hidden; background:#eceef4; border-radius:20px; }
.exp-fill { height:100%; background:linear-gradient(90deg,#2b8375,#74b690); border-radius:inherit; }
.pet-traits { display:grid; grid-template-columns:repeat(5,1fr); gap:4px; margin-top:10px; }
.pet-trait { display:grid; justify-items:center; gap:3px; color:#87948f; font-size:7px; }
.pet-trait i { width:100%; height:4px; overflow:hidden; background:#ecefe9; border-radius:4px; }
.pet-trait i::after { content:""; display:block; width:var(--trait); height:100%; background:var(--trait-color); border-radius:inherit; }
.card-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:11px; }
.card-actions a { min-height:36px; display:flex; align-items:center; justify-content:center; border:1px solid var(--growth-line); color:#71788a; background:#fff; border-radius:9px; font-size:10px; font-weight:800; }
.card-actions a.primary { color:#fff; background:#277c70; border-color:#277c70; }
.growth-app .empty { grid-column:1/-1; padding:70px 20px; color:var(--growth-muted); background:#fff; border-radius:18px; text-align:center; }

/* Shared teacher pages and friendly empty states */
.standard-page { width:min(1180px,calc(100% - 32px)); margin:0 auto; padding:32px 0 60px; }
.narrow-page { width:min(820px,calc(100% - 32px)); }
.standard-head,.admin-page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:22px; }
.standard-head h1,.admin-page-head h1 { margin:4px 0 6px; color:#173f3b; font-size:clamp(25px,3vw,36px); }
.standard-head p,.admin-page-head p { margin:0; color:#7b8491; }
.eyebrow { color:#2b8175; font-size:10px; font-weight:900; letter-spacing:.14em; }
.surface-panel,.admin-panel { padding:24px; border:1px solid rgb(23 63 58 / 8%); border-radius:20px; background:#fffdf8; box-shadow:0 12px 30px rgb(36 67 61 / 8%); }
.class-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.class-entry { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; padding:22px; border:1px solid rgb(23 63 58 / 8%); border-radius:20px; background:#fffdf8; box-shadow:0 12px 30px rgb(36 67 61 / 8%); }
.class-entry h2 { margin:2px 0 7px; }.class-entry h2 a { color:#173f3b; text-decoration:none; }.class-entry p { margin:0; color:#84908d; font-size:13px; }
.class-entry small { color:#2b8175; font-size:10px; font-weight:800; letter-spacing:.08em; }
.class-entry-mark,.empty-state-mark { width:48px; height:48px; display:grid; place-items:center; flex:0 0 auto; color:#fff; background:linear-gradient(145deg,#2f8d7d,#195f57); border-radius:15px; font-family:STKaiti,KaiTi,serif; font-size:24px; box-shadow:0 8px 18px rgb(25 95 87 / 20%); }
.empty-state { grid-column:1/-1; min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:44px 24px; border:1px dashed #cbd9d4; border-radius:20px; background:rgb(255 253 248 / 82%); color:#7b8783; text-align:center; }
.empty-state h2 { margin:15px 0 6px; color:#234c47; }.empty-state p { max-width:470px; margin:0 0 16px; }
.empty-state.compact { min-height:210px; border:0; background:transparent; box-shadow:none; }.empty-state.compact .empty-state-mark { width:40px; height:40px; font-size:19px; }
.form-grid-two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.form-grid-two > p { max-width:none; }
.choice-field { display:flex; flex-wrap:wrap; gap:15px; margin:16px 0; padding:16px; border:1px solid #dce5e1; border-radius:13px; }.choice-field legend { padding:0 6px; color:#173f3b; font-weight:800; }.choice-field label { display:flex; align-items:center; margin:0; }
.student-choice { margin-bottom:18px; padding:16px; border-radius:14px; background:#f4f8f6; }.student-choice > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.student-choice label { display:flex; align-items:center; }
.form-actions,.head-actions,.table-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }.form-actions { margin-top:18px; }.form-actions span { color:#7c8884; font-size:12px; }
.filter-grid,.filter-bar { padding:18px; border:1px solid #dce4e1; border-radius:16px; background:#fffdf8; box-shadow:0 8px 22px rgb(35 70 63 / 6%); }
.table-actions form { margin:0; }.text-button { min-height:0; padding:0; border:0; background:transparent; color:#24756a; }.text-button:hover { background:transparent; color:#184f48; }.text-button.danger { color:#a34b40; }
.danger-action { background:#b4493f; border-color:#b4493f; color:#fff; }.danger-action:hover { background:#93382f; border-color:#93382f; }
.delete-confirm-panel { max-width:720px; }.delete-confirm-panel h2 { margin-top:0; }.delete-confirm-panel p { color:#76534f; }
.data-chip,.availability { display:inline-flex; margin:2px; padding:3px 8px; border-radius:20px; background:#e3f2ed; color:#1c6d62; font-size:11px; font-weight:750; }.data-chip.soft { background:#f1edff; color:#6957b8; }.score-value { color:#18806f; }.score-value.negative { color:#bd543e; }
.store-layout { display:grid; grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr); gap:18px; align-items:start; }.store-editor { position:sticky; top:20px; }.store-editor h2,.store-catalog h2 { margin:4px 0 6px; }.store-editor > p { margin-top:0; color:#7c8985; }.count-chip { padding:5px 9px; border-radius:20px; color:#286f65; background:#e2f1ec; font-size:10px; font-weight:800; }.store-item-grid { display:grid; gap:10px; margin-top:18px; }.store-item { display:grid; grid-template-columns:46px 1fr auto; align-items:center; gap:13px; padding:14px; border:1px solid #e1e8e5; border-radius:14px; background:#fff; box-shadow:none; }.store-item.is-inactive { opacity:.58; }.store-item-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:#fff1d9; font-size:24px; }.store-item-copy > div { display:flex; align-items:center; justify-content:space-between; gap:10px; }.store-item h3 { margin:0; font-size:15px; }.store-item p { margin:4px 0; color:#84908c; font-size:11px; }.store-item-copy > strong { color:#dc7f36; }.store-item-copy > strong small { color:#9a8b7d; }.store-item-actions { display:flex; align-items:center; gap:9px; }.store-item-actions form { margin:0; }
.companion-form { display:grid; grid-template-columns:260px 1fr; gap:28px; }.companion-preview { min-height:300px; display:grid; place-items:center; align-content:center; padding:24px; border-radius:16px; background:linear-gradient(160deg,#dcefe7,#fff2d5); text-align:center; }.companion-preview span { width:110px; height:110px; display:grid; place-items:center; color:#fff; background:#277c70; border-radius:42% 58% 56% 44%; font:58px STKaiti,KaiTi,serif; }.companion-preview p { color:#54726d; }
.report-hero { display:flex; align-items:center; gap:18px; margin-bottom:18px; padding:22px; color:#fff; background:linear-gradient(115deg,#216e64,#388f7e); border-radius:20px; }.report-avatar { width:64px; height:64px; display:grid; place-items:center; border-radius:20px; background:rgb(255 255 255 / 17%); font-size:28px; font-weight:900; }.report-hero h2 { margin:2px 0; }.report-hero p { margin:0; color:rgb(255 255 255 / 75%); }.report-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }.metric-list { display:grid; gap:13px; }.report-metric { display:grid; grid-template-columns:50px 1fr 35px; align-items:center; gap:10px; }.report-metric i { height:8px; overflow:hidden; border-radius:10px; background:#e7ece9; }.report-metric i b { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2a8175,#efad55); }.subject-chip-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }.subject-chip-grid span { display:flex; justify-content:space-between; padding:10px; border-radius:10px; background:#f4f6f4; font-size:12px; }.evidence-item { display:grid; grid-template-columns:120px 1fr auto; gap:16px; padding:15px 0; border:0; border-bottom:1px solid #e5ebe8; border-radius:0; background:transparent; box-shadow:none; }.evidence-item time { color:#8a9491; }.evidence-item p { margin:5px 0 0; }

/* Dedicated school administration shell */
.admin-body { --admin-green:#17685e; --admin-green-dark:#114c46; --admin-green-soft:#e9f4f0; --admin-ink:#203630; --admin-muted:#74817d; --admin-line:#dfe7e3; background:#f3f5f4; color:var(--admin-ink); }
.admin-topbar { position:relative; z-index:15; height:66px; display:flex; align-items:center; justify-content:space-between; padding:0 25px; border-bottom:1px solid #e5ebe8; background:#fff; box-shadow:0 1px 0 rgb(20 53 46 / 2%); }
.admin-brand,.admin-auth-brand,.auth-brand { display:flex; align-items:center; gap:11px; color:#173f3b; font-weight:900; text-decoration:none; }
.admin-brand > span:last-child,.admin-auth-brand > span:last-child,.auth-brand > span:last-child { display:grid; line-height:1.2; }
.admin-brand small,.admin-auth-brand small,.auth-brand small { margin-top:2px; color:#8a9692; font-size:9px; font-weight:650; }
.admin-brand .brand-seal { width:38px; height:38px; border-radius:12px; background:linear-gradient(145deg,#2c8e7e,#155b53); box-shadow:0 7px 16px rgb(24 102 91 / 16%); }
.admin-account { display:flex; align-items:center; gap:10px; color:#75807d; font-size:12px; }
.admin-account form { margin:0; }
.admin-account-avatar { width:33px; height:33px; display:grid; place-items:center; border-radius:50%; color:#1b6b60; background:#e7f2ee; font-size:11px; font-weight:900; }
.admin-account-copy { display:grid; min-width:64px; line-height:1.25; }
.admin-account-copy small { color:#98a29f; font-size:9px; }
.admin-account-copy b { color:#324943; font-size:11px; }
.admin-logout { min-height:32px; padding:0 12px; border:1px solid #dce5e1; border-radius:9px; color:#4e6660; background:#fff; font-size:11px; }
.admin-logout:hover { border-color:#bfd2cc; color:#175f56; background:#f3f8f6; }
.admin-page-shell.page-shell { width:100%; margin:0; }
.admin-layout { min-height:calc(100vh - 66px); display:grid; grid-template-columns:244px minmax(0,1fr); }
.admin-sidebar { height:calc(100vh - 66px); position:sticky; top:0; display:flex; flex-direction:column; padding:24px 14px 18px; overflow-y:auto; color:#fff; background:linear-gradient(180deg,#173f3b 0%,#123934 100%); }
.admin-sidebar-label { margin:0 12px 8px; color:#81aba3; font-size:9px; font-weight:850; letter-spacing:.16em; }
.admin-sidebar nav { display:grid; gap:5px; margin-bottom:22px; }
.admin-sidebar nav a { min-width:0; display:flex; align-items:center; gap:11px; padding:10px 11px; border:1px solid transparent; border-radius:12px; color:#d7e5e1; text-decoration:none; transition:background .15s ease,border-color .15s ease,color .15s ease; }
.admin-sidebar nav a:hover { color:#fff; background:rgb(255 255 255 / 6%); }
.admin-sidebar nav a.is-active { border-color:rgb(255 255 255 / 8%); color:#fff; background:linear-gradient(90deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 7%)); box-shadow:inset 3px 0 #e9b86b; }
.admin-nav-icon { width:31px; height:31px; display:grid; place-items:center; flex:0 0 auto; border-radius:9px; color:#b7d4ce; background:rgb(255 255 255 / 7%); font-size:11px; font-weight:900; }
.admin-sidebar a.is-active .admin-nav-icon { color:#17463f; background:#f2c77e; }
.admin-nav-copy { min-width:0; display:grid; gap:2px; }
.admin-nav-copy b { font-size:12px; }
.admin-nav-copy small { overflow:hidden; color:#88aca5; font-size:9px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.admin-sidebar a.is-active .admin-nav-copy small { color:#c4d8d3; }
.admin-sidebar-note { display:flex; align-items:center; gap:10px; margin:auto 5px 0; padding:12px; border:1px solid rgb(255 255 255 / 9%); border-radius:12px; background:rgb(255 255 255 / 5%); }
.admin-sidebar-note-icon { width:28px; height:28px; display:grid; place-items:center; flex:none; border-radius:9px; color:#12473f!important; background:#9bcbbf; font-size:11px!important; font-weight:900; }
.admin-sidebar-note > span:last-child { min-width:0; display:grid; }
.admin-sidebar-note b { color:#eaf3f1; font-size:10px; }
.admin-sidebar-note small { margin-top:2px; color:#89aba5; font-size:8px; }
.admin-content { min-width:0; padding:28px 32px 48px; border:0; border-radius:0; background:#f3f5f4; box-shadow:none; }
.admin-content-inner { width:min(100%,1540px); margin:0 auto; }
.admin-body .admin-page-head { align-items:center; margin-bottom:20px; padding:0 2px; }
.admin-body .admin-page-head h1 { margin:3px 0 4px; color:var(--admin-ink); font-size:clamp(26px,2.4vw,32px); line-height:1.15; letter-spacing:-.02em; }
.admin-body .admin-page-head p { color:#7c8884; font-size:13px; }
.admin-body .eyebrow { color:#4b7c73; font-size:10px; letter-spacing:.1em; }
.admin-page-head .status-chip,.status-chip { display:inline-flex; align-items:center; gap:6px; padding:8px 11px; border:1px solid #d8e9e3; border-radius:20px; color:#28756a; background:#edf7f3; font-size:10px; font-weight:800; }
.status-chip i,.availability i { width:6px; height:6px; display:block; border-radius:50%; background:#37a984; box-shadow:0 0 0 3px rgb(55 169 132 / 11%); }
.admin-body .button,.admin-body button { min-height:40px; border-radius:10px; font-size:12px; box-shadow:none; }
.admin-body .button-secondary { border-color:#bfd3cd; color:#22685f; background:#fff; }
.admin-body .button-secondary:hover { border-color:#17685e; background:#f0f7f4; }
.admin-body .button-warm { border-color:#df8a45; background:#df8a45; }
.admin-body .admin-panel { padding:21px; border:1px solid var(--admin-line); border-radius:15px; background:#fff; box-shadow:0 7px 20px rgb(30 61 53 / 4%); }
.admin-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:16px; }
.admin-stat { display:flex; align-items:center; gap:13px; padding:17px; border:1px solid var(--admin-line); border-radius:14px; background:#fff; box-shadow:0 5px 14px rgb(37 65 59 / 3%); }
.stat-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; font-weight:900; }
.stat-icon.teal{color:#17675c;background:#dff1eb}.stat-icon.blue{color:#386db0;background:#e3effd}.stat-icon.orange{color:#a65b28;background:#fff0df}.stat-icon.purple{color:#6750ad;background:#eee9ff}
.admin-stat small { display:block; color:#8b9692; font-size:9px; }
.admin-stat strong { margin-right:3px; color:#173f3b; font-size:25px; }
.admin-stat span:last-child { color:#8b9592; font-size:10px; }
.admin-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr); gap:16px; }
.panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.panel-head h2,.admin-panel h2 { margin:4px 0 6px; color:#233d37; font-size:19px; }
.panel-head p { margin:0; color:#818c89; font-size:12px; }
.step-list { display:grid; gap:8px; margin-top:17px; }
.step-list a { display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:12px; padding:12px; border:1px solid #e3e9e6; border-radius:11px; color:#263e3a; text-decoration:none; }
.step-list a:hover { border-color:#91bdb4; background:#f7fbf9; }
.step-list a > b { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; color:#fff; background:#277c70; }
.step-list span { display:grid; }
.step-list small { color:#87918e; }
.step-list em { color:#28786e; font-style:normal; font-weight:800; }
.data-guide ul,.template-guide ul { padding-left:20px; color:#66736f; }
.data-safe-note { padding:11px 12px; border-radius:10px; color:#755a1f; background:#fff4d7; font-size:11px; }
.admin-evaluation-panel { margin-bottom:16px; background:#fff; }
.admin-evaluation-head { align-items:center; margin-bottom:16px; }
.admin-evaluation-count { flex:none; padding:7px 11px; border-radius:999px; color:#286f65; background:#e5f3ef; font-size:11px; font-weight:800; }
.admin-evaluation-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.admin-evaluation-item { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:11px; padding:12px 13px; border:1px solid #e4ebe8; border-radius:11px; background:#fafcfb; }
.admin-evaluation-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:#fff; background:linear-gradient(145deg,#248779,#17675f); font-size:14px; font-weight:900; box-shadow:none; }
.admin-evaluation-copy { min-width:0; }
.admin-evaluation-copy p { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px; margin:0; color:#61716d; font-size:12px; }
.admin-evaluation-copy p strong { color:#173f3b; }
.admin-evaluation-copy p b { color:#39756d; font-weight:800; }
.admin-evaluation-copy small { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:4px; color:#89938f; font-size:10px; }
.admin-evaluation-copy small em { padding:1px 6px; border-radius:999px; color:#786d68; background:#ece8e4; font-style:normal; font-weight:800; }
.admin-evaluation-score { min-width:54px; color:#16826f; font-size:17px; text-align:right; white-space:nowrap; }
.admin-evaluation-score small { display:block; color:#8a9692; font-size:9px; font-weight:700; }
.admin-evaluation-item.is-negative { border-color:#f0dfdc; background:#fffaf9; }
.admin-evaluation-item.is-negative .admin-evaluation-avatar { background:linear-gradient(145deg,#d56f5c,#ad5143); box-shadow:0 5px 12px rgb(173 81 67 / 15%); }
.admin-evaluation-item.is-negative .admin-evaluation-score { color:#b85042; }
.admin-evaluation-item.is-undone { opacity:.64; }
.admin-evaluation-item.is-undone .admin-evaluation-score { color:#777f7c; text-decoration:line-through; }
.admin-evaluation-empty { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:13px; min-height:104px; padding:20px; border:1px dashed #cedbd6; border-radius:12px; color:#6c7c78; background:#f8fbfa; }
.admin-evaluation-empty > span { width:40px; height:40px; display:grid; place-items:center; border-radius:13px; color:#fff; background:#6da397; font-weight:900; }
.admin-evaluation-empty strong { color:#294d47; }
.admin-evaluation-empty p { margin:2px 0 0; font-size:11px; }
.admin-section-bar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 2px 13px; }
.admin-section-bar > div { display:flex; align-items:baseline; gap:9px; }
.admin-section-bar h2 { margin:0; color:#2a403b; font-size:16px; }
.admin-section-bar span { color:#8a9692; font-size:10px; }
.admin-section-bar > a { color:#39776e; font-size:11px; font-weight:750; text-decoration:none; }
.admin-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; }
.admin-record-card { min-width:0; padding:16px; border:1px solid var(--admin-line); border-radius:14px; background:#fff; box-shadow:0 5px 15px rgb(37 65 59 / 3%); transition:transform .15s ease,border-color .15s ease; }
.admin-record-card:hover { transform:translateY(-1px); border-color:#bfd2cc; }
.record-card-head { display:flex; align-items:center; justify-content:space-between; }
.admin-record-card .class-entry-mark { width:39px; height:39px; border-radius:11px; background:linear-gradient(145deg,#328f80,#17665d); font-size:18px; box-shadow:none; }
.record-card-title h2 { margin:13px 0 3px; color:#213b35; font-size:18px; }
.record-card-title p { margin:0; color:#87928f; font-size:11px; }
.record-card-metrics { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:14px 0; }
.record-card-metrics span { display:flex; align-items:baseline; gap:5px; padding:9px 10px; border-radius:10px; background:#f4f7f5; }
.record-card-metrics b { color:#245f56; font-size:18px; }
.record-card-metrics small { color:#89938f; font-size:9px; }
.record-card-actions { display:flex; align-items:center; justify-content:space-between; padding-top:11px; border-top:1px solid #e8edeb; }
.record-card-actions a { color:#286f65; font-size:11px; font-weight:750; text-decoration:none; }
.record-card-actions form { margin:0; }
.availability { display:inline-flex; align-items:center; gap:6px; margin:0; padding:5px 8px; border-radius:20px; color:#1c6d62; background:#eaf5f1; font-size:9px; font-weight:800; white-space:nowrap; }
.availability.is-inactive { color:#7d8582; background:#eef0ef; }
.availability.is-inactive i { background:#9aa29f; box-shadow:none; }
.data-chip { display:inline-flex; margin:2px 3px 2px 0; padding:4px 8px; border-radius:7px; background:#e7f3ef; color:#1c6d62; font-size:9px; font-weight:750; }
.data-chip.soft { background:#f0edfa; color:#6957a8; }
.admin-filter-bar { display:grid; grid-template-columns:minmax(280px,1.4fr) minmax(210px,.7fr) auto; align-items:end; gap:13px; margin-bottom:14px; padding:16px; border:1px solid var(--admin-line); border-radius:14px; background:#fff; box-shadow:0 5px 15px rgb(37 65 59 / 3%); }
.admin-filter-bar p { max-width:none; margin:0; }
.admin-filter-bar label { margin-bottom:6px; color:#52655f; font-size:10px; }
.admin-filter-bar input,.admin-filter-bar select { max-width:none; height:40px; min-height:40px; border-color:#d8e1dd; border-radius:9px; font-size:12px; }
.admin-input-with-icon { position:relative; display:block; }
.admin-input-with-icon > span { position:absolute; z-index:1; left:12px; top:50%; color:#7f8d88; font-size:18px; transform:translateY(-52%); }
.admin-input-with-icon input { padding-left:37px; }
.admin-filter-actions { display:flex; align-items:center; gap:10px; min-height:40px; }
.admin-filter-actions a { color:#6f7e79; font-size:10px; text-decoration:none; white-space:nowrap; }
.admin-filter-actions a:hover { color:#1b6a60; }
.admin-table-card { overflow:hidden; border:1px solid var(--admin-line); border-radius:14px; background:#fff; box-shadow:0 5px 15px rgb(37 65 59 / 3%); }
.admin-table-card-head { display:flex; align-items:center; justify-content:space-between; min-height:56px; padding:12px 16px; border-bottom:1px solid #e6ece9; }
.admin-table-card-head > div { display:flex; align-items:baseline; gap:9px; }
.admin-table-card-head h2 { margin:0; color:#29413b; font-size:15px; }
.admin-table-card-head span { color:#899590; font-size:10px; }
.admin-body .table-scroll { overflow:auto; border:0; border-radius:0; box-shadow:none; }
.admin-data-table { min-width:720px; }
.admin-data-table th,.admin-data-table td { padding:11px 16px; border-color:#e8edeb; vertical-align:middle; }
.admin-data-table th { color:#6c7c77; background:#f7f9f8; font-size:9px; font-weight:850; letter-spacing:.04em; }
.admin-data-table tbody tr:nth-child(even) { background:#fff; }
.admin-data-table tbody tr:hover { background:#fafcfb; }
.admin-data-table td { color:#40534e; font-size:11px; }
.admin-actions-column { width:105px; }
.admin-person { display:flex; align-items:center; gap:10px; }
.admin-person-avatar { width:33px; height:33px; display:grid; place-items:center; flex:none; border-radius:10px; color:#17655a; background:#dff1eb; font-size:11px; font-weight:900; }
.admin-person-avatar.teacher { color:#546eaa; background:#e7edf9; }
.admin-person b { color:#233d37; font-size:12px; }
.admin-id { color:#61716c; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:10px; }
.table-actions { gap:12px; white-space:nowrap; }
.table-actions a { color:#267166; font-size:10px; font-weight:750; text-decoration:none; }
.table-actions a.danger { color:#b25347; }
.import-tabs { width:max-content; display:flex; gap:4px; margin-bottom:13px; padding:4px; border:1px solid #e0e7e4; border-radius:11px; background:#e9eeec; }
.import-tabs a { min-width:90px; padding:8px 14px; border-radius:8px; color:#72807c; font-size:11px; font-weight:750; text-align:center; text-decoration:none; }
.import-tabs a.active { color:#1e645b; background:#fff; box-shadow:0 2px 7px rgb(36 61 56 / 7%); }
.import-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr); gap:14px; align-items:start; }
.import-form-panel { min-width:0; }
.step-badge { flex:none; padding:5px 9px; border-radius:20px; color:#7a5b1d; background:#fff0c8; font-size:9px; font-weight:750; }
.admin-import-form { margin-top:18px; }
.import-source-field { padding:14px; border:1px solid #dfe7e3; border-radius:12px; background:#fafcfb; }
.import-source-label { display:flex; align-items:center; gap:10px; margin-bottom:11px; }
.import-source-label label { margin:0; color:#2c4841; font-size:12px; }
.import-source-label small { display:block; margin-top:2px; color:#8a9591; font-size:9px; }
.import-source-icon { width:34px; height:34px; display:grid; place-items:center; flex:none; border-radius:10px; color:#1d6c61; background:#e2f2ed; font-size:10px; font-weight:900; }
.import-source-icon.soft { color:#986327; background:#fff0d8; }
.admin-import-form input[type="file"] { width:100%; max-width:none; min-height:43px; padding:5px; border-color:#d5dfdb; border-radius:9px; color:#6f7e79; background:#fff; font-size:10px; }
.admin-import-form input[type="file"]::file-selector-button { height:31px; margin-right:10px; padding:0 12px; border:0; border-radius:7px; color:#215f56; background:#e8f3ef; font-weight:750; cursor:pointer; }
.admin-import-form textarea { width:100%; max-width:none; min-height:150px; padding:11px; border-color:#d5dfdb; border-radius:9px; font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; }
.import-or { position:relative; height:26px; display:grid; place-items:center; color:#98a39f; font-size:9px; }
.import-or::before { content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:#e4eae7; }
.import-or span { position:relative; padding:0 9px; background:#fff; }
.import-submit-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:14px; }
.import-submit-row > span { color:#87928e; font-size:9px; }
.template-guide { min-width:0; }
.template-guide > p { margin:10px 0 15px; color:#687670; font-size:11px; line-height:1.65; }
.header-preview { display:grid; grid-template-columns:1fr 1fr; overflow:hidden; margin:16px 0 10px; border:1px solid #d8e3df; border-radius:9px; }
.header-preview.four { grid-template-columns:repeat(4,1fr); }
.header-preview b { padding:8px; border-right:1px solid #d8e3df; color:#25685f; background:#eaf3f0; font-size:9px; }
.template-steps { display:grid; gap:8px; margin:0; padding:0; list-style:none; counter-reset:import-step; }
.template-steps li { display:grid; grid-template-columns:25px 1fr; column-gap:9px; padding:10px; border-radius:10px; background:#f6f8f7; counter-increment:import-step; }
.template-steps li::before { content:counter(import-step); grid-row:1/3; width:24px; height:24px; display:grid; place-items:center; border-radius:8px; color:#fff; background:#2b7c70; font-size:9px; font-weight:900; }
.template-steps b { color:#334d47; font-size:10px; }
.template-steps span { margin-top:1px; color:#8a9692; font-size:9px; }
.import-tip { margin-top:12px; padding:10px; border-radius:9px; color:#7b611c; background:#fff3d6; font-size:10px; }
.import-result { margin-top:14px; }
.result-counts { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.result-counts span { display:grid; padding:12px; border-radius:10px; color:#78837f; background:#f2f6f4; }
.result-counts b { color:#173f3b; font-size:24px; }
.form-panel { max-width:760px; }
.admin-body .form-panel form > p { margin-bottom:14px; }
.admin-body .form-panel label { color:#415751; font-size:11px; }
.admin-body .form-panel input:not([type="checkbox"]):not([type="radio"]),.admin-body .form-panel select,.admin-body .form-panel textarea { max-width:none; border-color:#d6e0dc; border-radius:9px; }
.checkbox-row { display:flex; align-items:center; gap:8px; }
.checkbox-row label { margin:0; }
.checkbox-row input { order:-1; }

/* Separate authentication surfaces */
.teacher-auth-card { position:relative; overflow:hidden; }.teacher-auth-card::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,#277c70,#ef9a58,#806ce4); }.auth-brand { margin-bottom:28px; }.auth-security { margin:18px 0 0!important; color:#83908c; font-size:11px; text-align:center; }
.admin-auth-shell { min-height:100vh; display:grid; place-items:center; padding:24px; background:#e9f0ed radial-gradient(#cad8d3 1px,transparent 1px); background-size:18px 18px; }.admin-auth-card { width:min(940px,100%); min-height:560px; display:grid; grid-template-columns:1.05fr .95fr; overflow:hidden; border:1px solid rgb(23 63 58 / 10%); border-radius:25px; background:#fff; box-shadow:0 24px 70px rgb(23 63 58 / 16%); }.admin-auth-story,.admin-auth-form { padding:48px; }.admin-auth-story { display:flex; flex-direction:column; justify-content:space-between; color:#fff; background:linear-gradient(145deg,rgb(18 83 74 / 96%),rgb(31 111 99 / 90%)),url("../images/habitat-sunrise-campus.d0d44cfacee6.png") center/cover; }.admin-auth-story .admin-auth-brand { color:#fff; }.admin-auth-story .admin-auth-brand small { color:rgb(255 255 255 / 66%); }.admin-auth-story .eyebrow { color:#9bd2c8; }.admin-auth-story h1 { margin:10px 0; font-family:STKaiti,KaiTi,serif; font-size:38px; }.admin-auth-story p { color:rgb(255 255 255 / 74%); }.admin-auth-story ul { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }.admin-auth-story li { padding:6px 9px; border:1px solid rgb(255 255 255 / 16%); border-radius:20px; background:rgb(255 255 255 / 8%); font-size:10px; }.admin-auth-form { align-self:center; }.admin-auth-form h2 { margin:6px 0; font-size:27px; }.admin-auth-form > p { color:#7d8985; }.admin-auth-form form { margin-top:25px; }.admin-auth-form form button { width:100%; }.auth-kicker { color:#b06d31; font-size:10px; font-weight:900; letter-spacing:.1em; }

@media (max-width:1180px) {
  .class-overview { grid-template-columns:1fr; }
  .growth-panel { display:grid; grid-template-columns:1fr 1.3fr; gap:18px; }
  .growth-panel-head { grid-column:1/-1; }
  .student-grid { grid-template-columns:repeat(2,minmax(235px,1fr)); }
  .toolbar-row { flex-wrap:wrap; }
  .admin-stat-grid { grid-template-columns:repeat(2,1fr); }.admin-evaluation-list { grid-template-columns:1fr; }
  .admin-layout { grid-template-columns:220px minmax(0,1fr); }.admin-content { padding-inline:24px; }
}
@media (max-width:960px) {
  .import-layout { grid-template-columns:1fr; }
  .admin-filter-bar { grid-template-columns:1fr 1fr; }.admin-filter-actions { grid-column:1/-1; }
}
@media (max-width:720px) {
  .host-header .site-nav { padding:.55rem 14px; }
  .brand-copy small { display:none; }
  .host-links { display:none; }
  .teacher-session-badge { margin-left:auto; }
  .class-choice-grid { grid-template-columns:1fr; }
  .teacher-choice-grid { grid-template-columns:1fr; }
  .toolbar-actions { overflow-x:auto; flex-wrap:nowrap; padding-bottom:3px; }
  .class-overview { display:block; }
  .growth-app .habitat-card { min-height:430px; margin-bottom:14px; padding:24px!important; }
  .habitat-copy { width:100%; }
  .habitat-copy h2 { font-size:25px; }
  .class-level { left:24px; width:calc(100% - 48px); }
  .featured-pet { right:calc(50% - 125px); bottom:55px; width:250px; height:250px; }
  .growth-panel { display:block; }
  .dimension-list { margin-top:15px; }
  .content-head { align-items:flex-start; flex-direction:column; }
  .summary-pills { width:100%; overflow-x:auto; }
  .student-grid { grid-template-columns:1fr; }
  .growth-content { padding:16px 12px 45px!important; }
  .standard-page { width:min(100% - 24px,1180px); padding-top:22px; }
  .standard-head,.admin-page-head { flex-direction:column; align-items:flex-start!important; }.standard-head > .button,.head-actions { width:100%; }.head-actions .button { flex:1; }
  .class-card-grid,.form-grid-two,.report-grid,.companion-form,.store-layout { grid-template-columns:1fr; }.class-entry { grid-template-columns:auto 1fr; }.class-entry > .button { grid-column:1/-1; }.student-choice > div { grid-template-columns:1fr 1fr; }.store-editor { position:static; }.store-item { grid-template-columns:42px 1fr; }.store-item-actions { grid-column:1/-1; justify-content:flex-end; }
  .admin-topbar { height:60px; padding:0 12px; }.admin-brand .brand-seal { width:34px; height:34px; }.admin-account-avatar,.admin-account-copy { display:none; }.admin-account { gap:0; }.admin-logout { min-height:31px!important; }
  .admin-layout { display:block; }.admin-sidebar { position:static; height:auto; flex-direction:row; gap:4px; overflow-x:auto; padding:8px 10px; white-space:nowrap; }.admin-sidebar-label,.admin-sidebar-note { display:none; }.admin-sidebar nav { display:contents; }.admin-sidebar nav a { flex:0 0 auto; gap:6px; padding:7px 9px; border-radius:9px; }.admin-nav-icon { width:26px; height:26px; border-radius:8px; }.admin-nav-copy small { display:none; }.admin-nav-copy b { font-size:10px; }
  .admin-content { padding:18px 12px 38px; }.admin-body .admin-page-head { margin-bottom:16px; }.admin-body .admin-page-head h1 { font-size:26px; }.admin-body .admin-page-head p { font-size:11px; }
  .admin-stat-grid { grid-template-columns:1fr 1fr; gap:8px; }.admin-stat { gap:9px; padding:12px; }.stat-icon { width:35px; height:35px; }.admin-stat strong { font-size:21px; }
  .admin-dashboard-grid,.import-layout,.admin-card-grid { grid-template-columns:1fr; }.admin-body .admin-panel { padding:16px; }.panel-head { align-items:flex-start; }.admin-evaluation-head { align-items:flex-start; }.admin-evaluation-count { margin-top:2px; }.admin-evaluation-item { grid-template-columns:34px minmax(0,1fr) auto; padding:10px; }.admin-evaluation-avatar { width:34px; height:34px; border-radius:10px; font-size:13px; }.admin-evaluation-copy p { font-size:10px; }.admin-evaluation-copy small { font-size:8px; }.admin-evaluation-score { min-width:42px; font-size:14px; }
  .admin-filter-bar { grid-template-columns:1fr; gap:11px; padding:13px; }.admin-filter-actions { grid-column:auto; }.admin-filter-actions button { flex:1; }.admin-table-card-head { min-height:50px; padding-inline:13px; }.admin-data-table th,.admin-data-table td { padding:10px 13px; }
  .admin-section-bar { align-items:flex-start; }.admin-section-bar > div { display:grid; }.admin-section-bar > a { max-width:120px; text-align:right; }.class-management-grid { grid-template-columns:1fr; }
  .import-tabs { width:100%; }.import-tabs a { flex:1; }.import-submit-row { align-items:stretch; flex-direction:column; }.import-submit-row button { width:100%; }.result-counts { grid-template-columns:1fr 1fr; }.header-preview.four { overflow-x:auto; grid-template-columns:repeat(4,minmax(90px,1fr)); }
  .form-grid-two { grid-template-columns:1fr; }
  .admin-auth-shell { padding:12px; }.admin-auth-card { display:block; }.admin-auth-story { min-height:230px; padding:27px; }.admin-auth-story > div:nth-child(2) p,.admin-auth-story ul { display:none; }.admin-auth-story h1 { font-size:27px; }.admin-auth-form { padding:30px 24px; }
}
@media (prefers-reduced-motion:reduce) {
  .growth-app *, .growth-app *::before, .growth-app *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* V3 graphical evaluation and companion flows */
body.modal-open { overflow:hidden; }
.v3-modal-backdrop[hidden],.score-item[hidden],[data-score-empty][hidden] { display:none!important; }
.v3-modal-backdrop { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:24px; background:rgb(20 43 38 / 58%); backdrop-filter:blur(4px); }
.v3-modal { width:min(760px,100%); max-height:calc(100vh - 48px); display:flex; flex-direction:column; overflow:hidden; border:1px solid rgb(255 255 255 / 54%); border-radius:21px; background:#fffdf8; box-shadow:0 30px 80px rgb(17 45 39 / 30%); animation:v3-modal-in .18s ease both; }
.v3-modal-large { width:min(1080px,100%); }
@keyframes v3-modal-in { from { opacity:0; transform:translateY(10px) scale(.985); } }
.v3-modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:19px 22px; border-bottom:1px solid #dfe8e1; background:linear-gradient(110deg,#fffdf8,#f1f8f3); }
.v3-modal-head h2 { margin:4px 0 4px; color:#173f3b; font-size:20px; }
.v3-modal-head p { margin:0; color:#798883; font-size:11px; }
.v3-modal-close { width:34px; height:34px; flex:0 0 auto; border:0; border-radius:10px; background:#eaf1ed; color:#52706a; font-size:22px; cursor:pointer; }
.v3-modal-scroll { overflow:auto; }
.v3-modal-foot { display:flex; align-items:center; justify-content:flex-end; gap:9px; padding:14px 21px; border-top:1px solid #e0e7e3; background:#fafbf8; }
.v3-evaluation-form { min-height:0; overflow:auto; }
.v3-evaluation-form > .score-layout,.v3-pet-form > .pet-workspace { width:100%; max-width:none; }
.score-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:18px; padding:20px; }
.student-picker { min-width:0; padding:13px; border-radius:14px; background:#f2f6f3; }
.student-picker-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
.student-picker h3 { margin:0; color:#244b46; font-size:12px; }
.selected-count { display:inline-flex; align-items:center; padding:4px 7px; border-radius:8px; color:#1f7166; background:#dff1ea; font-size:9px; font-weight:850; }
.picker-tools { display:flex; gap:6px; margin-bottom:9px; }
.picker-tools button { flex:1; min-height:29px; border:1px solid #d8e4df; border-radius:8px; color:#277c70; background:#fff; font-size:9px; cursor:pointer; }
.class-score-notice { margin:0 0 9px; padding:9px 10px; border:1px solid #efd88b; border-radius:9px; color:#785316; background:#fff2c9; font-size:9px; line-height:1.55; }
.student-picker-list { max-height:375px; display:grid; gap:7px; overflow:auto; padding-right:3px; }
.student-check { display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:8px; padding:8px; border:1px solid #dfe7e2; border-radius:10px; background:#fff; color:#34514c; cursor:pointer; }
.student-check.selected { border-color:#65a99d; background:#e9f6f1; box-shadow:inset 0 0 0 1px #65a99d; }
.student-check.locked { cursor:default; }
.student-check input { width:15px; height:15px; margin:0; accent-color:#277c70; }
.student-check-avatar { width:29px; height:29px; display:grid; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(145deg,#378e7e,#1e6a60); font-size:11px; font-weight:900; }
.student-check b,.student-check small { display:block; }
.student-check b { font-size:10px; }.student-check small { margin-top:2px; color:#909b97; font-size:8px; }
.score-main { min-width:0; }
.score-context { display:grid; grid-template-columns:1fr 1fr 1fr; gap:9px; margin-bottom:13px; padding:12px; border-radius:12px; background:#f3f6f2; }
.score-field { display:grid; gap:5px; color:#6f7e79; font-size:9px; }.score-field label { font-weight:800; }.score-field label small { color:#9aa29f; font-weight:500; }
.score-field select,.score-field input,.score-field textarea { width:100%; min-width:0; border:1px solid #d6e1dc; border-radius:9px; color:#29443f; background:#fff; font:inherit; font-size:11px; }
.score-field select,.score-field input { height:38px; padding:0 10px; }.score-field textarea { min-height:67px; padding:9px 10px; resize:vertical; }
.score-comment { grid-column:1/-1; }
.category-tabs { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; margin-bottom:12px; }
.category-tab { min-height:57px; border:1px solid #dfe6e2; border-radius:10px; color:#74827e; background:#fff; font-size:9px; font-weight:850; cursor:pointer; }
.category-tab span { display:block; margin-bottom:3px; color:var(--cat-color); font:19px STKaiti,KaiTi,serif; }
.category-tab.active { border-color:var(--cat-color); color:var(--cat-color); background:var(--cat-soft); box-shadow:inset 0 0 0 1px var(--cat-color); }
.score-toolbar { display:flex; align-items:center; gap:7px; margin-bottom:10px; }
.score-toolbar button,.score-toolbar a { min-height:31px; display:inline-flex; align-items:center; border:1px solid #dce4e0; padding:0 11px; border-radius:8px; color:#73807c; background:#fff; font-size:9px; text-decoration:none; cursor:pointer; }
.score-toolbar button.active[data-score-filter="positive"] { border-color:#89d4bc; color:#208c68; background:#e9f8f2; }
.score-toolbar button.active[data-score-filter="negative"] { border-color:#f2a5aa; color:#c94952; background:#fff0f1; }
.score-items { min-height:152px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-content:start; gap:8px; }
.score-item { min-height:74px; display:flex; align-items:flex-start; gap:8px; padding:11px; border:1px solid #dfe6e2; border-radius:12px; background:#fff; text-align:left; cursor:pointer; }
.score-item:hover { border-color:var(--cat-color); }.score-item.selected { border-color:var(--cat-color); background:var(--cat-soft); box-shadow:inset 0 0 0 1px var(--cat-color); }
.score-item input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); }
.score-item:focus-within { outline:3px solid rgb(39 124 112 / 22%); outline-offset:2px; }
.score-item-copy { min-width:0; flex:1; }.score-item-copy strong,.score-item-copy small { display:block; }.score-item-copy strong { color:#29433e; font-size:10px; }.score-item-copy small { margin-top:7px; color:#8b9793; font-size:8px; line-height:1.45; }
.score-item-copy em,.family-badge { display:inline-flex; margin-left:4px; padding:3px 6px; border-radius:7px; color:#94601d; background:#fff0c8; font-size:7px; font-style:normal; }
.score-value { align-self:flex-end; color:#208c68; font-size:14px; font-weight:950; }.score-value.negative { color:#cb5058; }
.score-summary { margin-top:12px; padding:11px 12px; border-radius:10px; color:#667873; background:#f1f5f2; font-size:10px; }.score-summary b { color:#1f7166; }
.score-empty { grid-column:1/-1; padding:25px 12px; border:1px dashed #cddbd6; border-radius:11px; color:#899590; text-align:center; font-size:10px; }
.evaluation-page { width:min(1080px,calc(100% - 32px)); }
.evaluation-page > .v3-modal-head { border:1px solid #dfe7e3; border-radius:20px 20px 0 0; }
.evaluation-page > .v3-evaluation-form { border:1px solid #dfe7e3; border-top:0; border-radius:0 0 20px 20px; background:#fffdf8; box-shadow:0 16px 38px rgb(32 72 64 / 9%); }

.pet-catalog-panel { padding:20px; }
.v3-pet-form { background:#fffdf8; }
.pet-workspace { display:grid; grid-template-columns:minmax(340px,1.2fr) minmax(240px,.8fr); gap:16px; margin-bottom:19px; }
.pet-profile-stage { min-height:310px; position:relative; display:grid; place-items:center; overflow:hidden; border-radius:17px; background:#dce9d7 url("../images/habitat-sunrise-campus.d0d44cfacee6.png") center/cover no-repeat; }
.pet-profile-stage::after { content:""; position:absolute; inset:auto 12% 17px; height:24px; border-radius:50%; background:rgb(26 71 59 / 16%); filter:blur(7px); }
.pet-stage-badge { position:absolute; z-index:3; left:14px; top:14px; padding:7px 10px; border-radius:10px; color:#1d5f56; background:rgb(255 253 248 / 91%); font-size:9px; font-weight:850; }
.pet-stage-image { width:min(300px,78%); max-height:265px; z-index:2; object-fit:contain; filter:drop-shadow(0 12px 10px rgb(36 61 52 / 22%)); }
.pet-stage-copy { position:absolute; z-index:3; left:16px; right:16px; bottom:13px; padding:9px 11px; border-radius:11px; background:rgb(255 253 248 / 89%); backdrop-filter:blur(5px); }.pet-stage-copy strong,.pet-stage-copy span { display:block; }.pet-stage-copy strong { color:#194f47; font-size:12px; }.pet-stage-copy span { margin-top:3px; color:#71837e; font-size:8px; }
.pet-settings { display:grid; align-content:start; gap:12px; padding:16px; border:1px solid #e0e8e4; border-radius:16px; background:#f5f8f4; }
.pet-setting-field { display:grid; gap:6px; }.pet-setting-field label { color:#31534d; font-size:10px; font-weight:850; }.pet-setting-field input,.pet-setting-field select { width:100%; height:41px; border:1px solid #d6e1dc; border-radius:10px; padding:0 11px; background:#fff; }.pet-setting-field small { color:#8b9793; font-size:8px; }
.pet-safety-note { display:grid; gap:4px; margin-top:3px; padding:11px; border:1px solid #eed68c; border-radius:11px; color:#735719; background:#fff4ce; }.pet-safety-note b { font-size:10px; }.pet-safety-note span { font-size:8px; line-height:1.55; }
.catalog-heading { display:flex; align-items:center; gap:7px; margin:3px 0 11px; color:#18473f; font-size:14px; }
.pet-catalog { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.pet-option { min-width:0; position:relative; display:block; overflow:hidden; border:1px solid #dfe7e2; border-radius:14px; background:#fff; cursor:pointer; }
.pet-option:hover,.pet-option.selected { border-color:#277c70; box-shadow:0 9px 20px rgb(39 124 112 / 13%); }.pet-option.selected { box-shadow:inset 0 0 0 2px #277c70,0 9px 20px rgb(39 124 112 / 13%); }
.pet-option input { position:absolute; left:8px; top:8px; z-index:4; width:17px; height:17px; accent-color:#277c70; }
.pet-option-preview { height:148px; display:grid; place-items:end center; background:#dce9d7 url("../images/habitat-sunrise-campus.d0d44cfacee6.png") center/cover no-repeat; }.pet-option-preview img { width:145px; max-height:138px; object-fit:contain; filter:drop-shadow(0 7px 7px rgb(33 66 57 / 18%)); }
.pet-option-copy { display:block; padding:11px; }.pet-option-copy strong,.pet-option-copy small,.pet-option-copy b { display:block; }.pet-option-copy strong { color:#18473f; font-size:10px; }.pet-option-copy small { min-height:38px; margin:5px 0 8px; color:#7e8d88; font-size:8px; line-height:1.5; }.pet-option-copy b { padding:7px; border-radius:8px; color:#fff; background:#277c70; font-size:8px; text-align:center; }
.pet-form-actions { margin:18px -20px -20px; }
.v3-modal-scroll .v3-pet-form { padding:20px; }.v3-modal-scroll .pet-form-actions { position:sticky; bottom:-20px; z-index:6; }

@media (max-width:900px) {
  .score-layout { grid-template-columns:180px minmax(0,1fr); }.score-context { grid-template-columns:1fr 1fr; }.score-comment { grid-column:1/-1; }.score-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pet-catalog { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .v3-modal-backdrop { padding:8px; }.v3-modal { max-height:calc(100vh - 16px); }
  .score-layout,.pet-workspace { grid-template-columns:1fr; }.student-picker-list { max-height:180px; }.score-context { grid-template-columns:1fr; }.score-comment { grid-column:auto; }.category-tabs { grid-template-columns:repeat(5,minmax(62px,1fr)); overflow-x:auto; padding-bottom:3px; }.score-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pet-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); }.pet-profile-stage { min-height:280px; }.pet-option-preview { height:140px; }
}

/* Production V9 visual calibration: a quiet character stage replaces scenic wallpaper. */
.growth-body { background:#f5f7f5; }
.growth-app.page-shell { background:#f5f7f5; }
.growth-app .toolbar-row,.growth-content { width:min(100%,1680px); margin-inline:auto; }
.growth-content { padding:20px 20px 52px!important; }
.class-overview { grid-template-columns:minmax(520px,.98fr) minmax(440px,1.02fr); gap:14px; margin-bottom:15px; }
.growth-app .habitat-card {
  min-height:304px;
  color:#203d38;
  background:
    radial-gradient(circle at 82% 30%,rgb(239 195 103 / 24%),transparent 22%),
    radial-gradient(circle at 77% 104%,rgb(61 147 123 / 15%),transparent 39%),
    linear-gradient(135deg,#fbfaf5,#edf5f1)!important;
  border:1px solid #dfe8e3!important;
  border-radius:18px!important;
  box-shadow:none!important;
}
.growth-app .habitat-card::before {
  content:"";
  position:absolute;
  right:56px;
  top:30px;
  width:184px;
  height:184px;
  border:1px solid rgb(39 124 112 / 9%);
  border-radius:50%;
  box-shadow:0 0 0 28px rgb(255 255 255 / 24%),0 0 0 56px rgb(39 124 112 / 3%);
}
.habitat-copy { width:52%; }
.habitat-copy h2 { font-size:30px; }
.featured-pet { right:22px; bottom:24px; width:45%; height:246px; }
.featured-pet img { filter:drop-shadow(0 13px 11px rgb(32 75 64 / 15%)); }
.featured-pet::after { right:0; top:10%; border:1px solid #e1e8e5; box-shadow:0 5px 14px rgb(31 68 58 / 8%); }
.class-level { left:27px; bottom:22px; width:46%; }
.class-level-track { height:7px; background:#dfeae6; border:0; }
.growth-app .growth-panel { padding:19px!important; border:1px solid #dfe7e3!important; border-radius:18px!important; background:#fff!important; box-shadow:none!important; }
.growth-app .student-card { min-height:412px; border:1px solid #dfe7e3!important; border-radius:16px!important; background:#fff!important; box-shadow:none!important; }
.student-card:hover { transform:translateY(-2px); border-color:#b9d5cc!important; box-shadow:0 10px 24px rgb(35 78 67 / 7%)!important; }
.pet-zone {
  height:202px;
  background:
    radial-gradient(circle at 22% 18%,rgb(237 191 102 / 12%),transparent 22%),
    linear-gradient(180deg,#fbfaf6,#f2f6f2 72%,#e7f0eb);
}
.pet-zone::before { content:""; position:absolute; left:19%; right:19%; bottom:13px; height:22px; border-radius:50%; background:radial-gradient(ellipse,rgb(42 77 68 / 14%),transparent 70%); filter:blur(4px); }
.pet-zone::after { content:""; position:absolute; inset:18px auto auto 50%; width:132px; height:132px; transform:translateX(-50%); border:1px solid rgb(39 124 112 / 6%); border-radius:50%; background:transparent; box-shadow:0 0 0 24px rgb(255 255 255 / 28%); }
.change-button { border-color:#dfe7e3; color:#28675e; background:rgb(255 255 255 / 92%); box-shadow:0 4px 10px rgb(34 69 60 / 6%); }
.pet-character-layer,.carp-image,.egg-sprite { filter:drop-shadow(0 8px 7px rgb(36 72 63 / 16%)); }
.card-info { text-align:left; }
.pet-name { border-width:2px; border-color:#fff; background:#edf6f2; box-shadow:none; }
.pet-profile-stage,.pet-option-preview {
  position:relative;
  background:
    radial-gradient(circle at 50% 45%,rgb(255 255 255 / 96%),transparent 43%),
    linear-gradient(180deg,#f8f7f2,#eaf2ed);
}
.pet-profile-stage::before,.pet-option-preview::before { content:""; position:absolute; left:22%; right:22%; bottom:14px; height:20px; border-radius:50%; background:radial-gradient(ellipse,rgb(35 72 62 / 13%),transparent 70%); filter:blur(4px); }
.pet-profile-stage > *,.pet-option-preview > * { position:relative; z-index:1; }

@media (max-width:1180px) {
  .class-overview { grid-template-columns:1fr; }
}
@media (max-width:720px) {
  .toolbar-shell { padding-inline:10px!important; }
  .toolbar-row { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; }
  .toolbar-row > * { flex:0 0 auto; white-space:nowrap; }
  .toolbar-row .row-spacer { display:none; }
  .growth-content { padding:15px 10px 38px!important; }
  .growth-app .habitat-card { min-height:360px; padding:22px!important; }
  .growth-app .habitat-card::before { right:10px; top:90px; width:170px; height:170px; }
  .habitat-copy { width:100%; }
  .habitat-copy p { max-width:58%; }
  .featured-pet { right:7px; bottom:40px; width:210px; height:210px; }
  .class-level { left:22px; bottom:20px; width:calc(100% - 44px); }
  .growth-app .student-card { min-height:0; }
  .card-info { text-align:left; }
}

/* School administration refinement: bright navigation and data-first dashboard. */
.admin-body {
  --admin-primary:#6463d8;
  --admin-primary-dark:#4e4dbd;
  --admin-primary-soft:#eeefff;
  --admin-canvas:#f5f6fa;
  --admin-ink:#25273a;
  --admin-muted:#7c8093;
  --admin-line:#e6e8f0;
  background:var(--admin-canvas);
  color:var(--admin-ink);
}
.admin-page-shell.page-shell { width:100%; margin:0; }
.admin-layout { min-height:100vh; display:grid; grid-template-columns:224px minmax(0,1fr); background:var(--admin-canvas); }
.admin-sidebar { height:100vh; position:sticky; z-index:20; top:0; display:flex; flex-direction:column; padding:0 12px 18px; overflow-y:auto; border-right:1px solid var(--admin-line); color:var(--admin-ink); background:#fff; box-shadow:4px 0 18px rgb(60 64 112 / 3%); }
.admin-sidebar .admin-brand { min-height:70px; margin:0 -12px 20px; padding:0 18px; border-bottom:1px solid #eceef4; color:#262a3b; }
.admin-sidebar .admin-brand:hover { color:#262a3b; }
.admin-brand .brand-seal { width:39px; height:39px; border-radius:50%; background:linear-gradient(145deg,#7174e8,#5b50bb); box-shadow:0 7px 17px rgb(91 80 187 / 22%); }
.admin-brand small { color:#9599aa; }
.admin-sidebar-label { margin:14px 12px 7px; color:#a1a5b5; font-size:9px; font-weight:800; letter-spacing:.12em; }
.admin-sidebar nav { display:grid; gap:4px; margin-bottom:5px; }
.admin-sidebar nav a { min-width:0; display:flex; align-items:center; gap:10px; padding:9px 10px; border:0; border-radius:10px; color:#626779; text-decoration:none; transition:background .16s ease,color .16s ease,transform .16s ease; }
.admin-sidebar nav a:hover { color:#484cb0; background:#f5f5fd; transform:translateX(1px); }
.admin-sidebar nav a.is-active { color:#5454c5; background:linear-gradient(90deg,#eceeff,#f5f3ff); box-shadow:inset 3px 0 #6765dc; }
.admin-nav-icon { width:30px; height:30px; display:grid; place-items:center; flex:none; border-radius:9px; color:#73778b; background:#f2f3f7; font-size:11px; font-style:normal; font-weight:900; }
.admin-sidebar a.is-active .admin-nav-icon { color:#fff; background:linear-gradient(145deg,#7475e8,#6257cd); box-shadow:0 5px 12px rgb(98 87 205 / 20%); }
.admin-nav-copy { display:grid; min-width:0; gap:1px; }
.admin-nav-copy b { color:inherit; font-size:12px; }
.admin-nav-copy small { overflow:hidden; color:#a0a3b2; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.admin-sidebar a.is-active .admin-nav-copy small { color:#8987bd; }
.admin-sidebar-note { display:flex; align-items:center; gap:9px; margin:auto 4px 0; padding:11px; border:1px solid #e5e8f3; border-radius:11px; background:#f8f9fd; }
.admin-sidebar-note-icon { width:28px; height:28px; display:grid; place-items:center; flex:none; border-radius:9px; color:#fff!important; background:#6b6cda; font-size:11px!important; font-weight:900; }
.admin-sidebar-note > span:last-child { display:grid; }
.admin-sidebar-note b { color:#505365; font-size:10px; }
.admin-sidebar-note small { color:#9a9eae; font-size:8px; }
.admin-main { min-width:0; }
.admin-topbar { height:64px; position:sticky; z-index:15; top:0; display:flex; align-items:center; justify-content:space-between; padding:0 24px; border-bottom:1px solid var(--admin-line); background:rgb(255 255 255 / 94%); box-shadow:0 2px 10px rgb(54 57 98 / 3%); backdrop-filter:blur(10px); }
.admin-topbar-welcome { display:grid; line-height:1.25; }
.admin-topbar-welcome b { color:#36394c; font-size:13px; }
.admin-topbar-welcome span { margin-top:2px; color:#9a9dad; font-size:9px; }
.admin-account { display:flex; align-items:center; gap:9px; color:#777b8e; font-size:11px; }
.admin-account form { margin:0; }
.admin-account-avatar { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:#5556bd; background:#efefff; font-size:10px; font-weight:900; }
.admin-account-copy { display:grid; min-width:60px; line-height:1.2; }
.admin-account-copy small { color:#a1a4b3; font-size:8px; }
.admin-account-copy b { color:#4d5062; font-size:10px; }
.admin-logout { min-height:32px!important; padding:0 12px; border:1px solid #dfe1eb; border-radius:8px; color:#626679; background:#fff; font-size:10px!important; }
.admin-logout:hover { border-color:#bfc2e6; color:#4f4eb8; background:#f6f6ff; }
.admin-content { min-width:0; padding:22px 24px 44px; border:0; border-radius:0; background:var(--admin-canvas); box-shadow:none; }
.admin-content-inner { width:min(100%,1560px); margin:0 auto; }
.admin-body .admin-page-head { align-items:center; margin-bottom:17px; padding:0 2px; }
.admin-body .admin-page-head h1 { margin:3px 0 4px; color:#282b3d; font-size:clamp(25px,2.2vw,32px); letter-spacing:-.02em; }
.admin-body .admin-page-head p { color:#85899a; font-size:12px; }
.admin-body .eyebrow { color:#6869d4; font-size:9px; letter-spacing:.11em; }
.admin-body .button,.admin-body button { min-height:38px; border-radius:9px; background:#6463d8; font-size:11px; box-shadow:none; }
.admin-body .button:hover,.admin-body button:hover { background:#504fbe; }
.admin-body .button-secondary { border-color:#d9dbee; color:#5d5fc4; background:#fff; }
.admin-body .button-secondary:hover { border-color:#bfc1e5; color:#4e4db9; background:#f7f7ff; }
.admin-body .admin-panel { padding:20px; border:1px solid var(--admin-line); border-radius:14px; background:#fff; box-shadow:0 7px 22px rgb(48 51 91 / 4%); }
.admin-dashboard-hero { min-height:248px; display:flex; align-items:center; justify-content:space-between; gap:32px; overflow:hidden; position:relative; margin-bottom:18px; padding:32px 38px; border:0; border-radius:16px; color:#fff; background:linear-gradient(112deg,#6278e2 0%,#6c68d8 50%,#8455b5 100%); box-shadow:0 14px 35px rgb(91 87 185 / 19%); }
.admin-dashboard-hero::before,.admin-dashboard-hero::after { content:""; position:absolute; inset:-50% auto -50% 34%; width:20%; background:rgb(255 255 255 / 6%); transform:skewX(22deg); }
.admin-dashboard-hero::after { left:auto; right:9%; width:23%; background:rgb(255 255 255 / 4%); }
.admin-hero-copy,.admin-hero-summary { position:relative; z-index:1; }
.admin-hero-copy { max-width:760px; }
.admin-hero-kicker { color:rgb(255 255 255 / 72%); font-size:9px; font-weight:850; letter-spacing:.16em; }
.admin-hero-copy h1 { margin:10px 0 8px; color:#fff; font-size:clamp(27px,3vw,38px); }
.admin-hero-copy > p { max-width:670px; margin:0; color:rgb(255 255 255 / 76%); font-size:12px; }
.admin-hero-dimensions { display:flex; flex-wrap:wrap; gap:8px; margin-top:23px; }
.admin-hero-dimensions span { display:flex; align-items:center; gap:6px; padding:6px 9px; border:1px solid rgb(255 255 255 / 15%); border-radius:999px; color:rgb(255 255 255 / 88%); background:rgb(255 255 255 / 9%); font-size:9px; font-weight:750; }
.admin-hero-dimensions i { font-size:13px; font-style:normal; }
.admin-hero-summary { min-width:176px; display:grid; place-items:center; padding:20px; border:1px solid rgb(255 255 255 / 17%); border-radius:15px; background:rgb(255 255 255 / 10%); text-align:center; backdrop-filter:blur(5px); }
.admin-hero-summary span { color:rgb(255 255 255 / 78%); font-size:10px; }
.admin-hero-summary strong { margin:4px 0; font-size:42px; line-height:1.1; }
.admin-hero-summary small { color:rgb(255 255 255 / 65%); font-size:8px; }
.admin-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:16px; }
.admin-stat { display:flex; align-items:center; gap:13px; padding:17px; border:1px solid var(--admin-line); border-radius:13px; background:#fff; box-shadow:0 6px 18px rgb(49 52 92 / 3%); }
.admin-stat .stat-icon { width:42px; height:42px; display:grid; place-items:center; flex:none; border-radius:12px; color:#fff; font-size:14px; font-weight:900; }
.stat-icon.violet { background:linear-gradient(145deg,#7775e6,#6257cb); }.stat-icon.blue { background:linear-gradient(145deg,#5e8bea,#4d6bca); }.stat-icon.cyan { background:linear-gradient(145deg,#56b8c8,#378ca3); }.stat-icon.orange { background:linear-gradient(145deg,#f0a45c,#df7b42); }
.admin-stat small { display:block; color:#9498a8; font-size:9px; }
.admin-stat strong { margin-right:3px; color:#35384c; font-size:25px; }
.admin-stat span:last-child { color:#969aaa; font-size:9px; }
.panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.panel-head h2,.admin-panel h2 { margin:3px 0 5px; color:#303347; font-size:18px; }
.panel-head p { margin:0; color:#8b8f9f; font-size:10px; }
.admin-teacher-chart-panel { margin-bottom:16px; }
.admin-chart-head { align-items:center; margin-bottom:18px; }
.admin-period-tabs { display:flex; flex:none; overflow:hidden; border:1px solid #dfe1ec; border-radius:9px; background:#f7f7fa; }
.admin-period-tabs a { min-width:48px; padding:7px 9px; border-right:1px solid #e2e4ed; color:#7f8293; font-size:9px; font-weight:750; text-align:center; text-decoration:none; }
.admin-period-tabs a:last-child { border-right:0; }
.admin-period-tabs a.is-active { color:#fff; background:#6968d8; }
.admin-chart-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(250px,.55fr); gap:18px; }
.admin-teacher-chart { min-height:210px; display:grid; align-content:start; gap:9px; padding:15px; border:1px solid #eaebf2; border-radius:12px; background:#fafaff; }
.admin-chart-row { display:grid; grid-template-columns:24px 82px minmax(80px,1fr) 56px; align-items:center; gap:10px; min-width:0; }
.admin-chart-rank { width:22px; height:22px; display:grid; place-items:center; border-radius:7px; color:#6f72a1; background:#edeef8; font-size:8px; font-weight:900; }
.admin-chart-row:nth-child(-n+3) .admin-chart-rank { color:#fff; background:#7573df; }
.admin-chart-row > b { overflow:hidden; color:#4b4f64; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.admin-chart-track { height:10px; overflow:hidden; border-radius:99px; background:#eceef5; }
.admin-chart-track i { width:var(--chart-width); height:100%; display:block; min-width:5px; border-radius:inherit; background:linear-gradient(90deg,#697ae0,#8d65c6); }
.admin-chart-row > strong { color:#5a5dc9; font-size:14px; text-align:right; }.admin-chart-row > strong small { margin-left:2px; color:#a0a3b2; font-size:8px; }
.admin-chart-summary { display:grid; grid-template-columns:1fr 1fr; gap:9px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.admin-chart-summary div { display:grid; align-content:center; min-height:82px; padding:13px; border:1px solid #e8e9f1; border-radius:11px; background:#f8f8fc; }
.admin-chart-summary span { color:#8d91a2; font-size:8px; }.admin-chart-summary strong { color:#3a3d50; font-size:22px; }.admin-chart-summary small { color:#a0a3b2; font-size:8px; }.admin-chart-summary > p { grid-column:1/-1; margin:0; color:#8f93a4; font-size:8px; }
.admin-chart-empty { min-height:180px; display:flex; align-items:center; justify-content:center; gap:12px; color:#898d9f; }
.admin-chart-empty > span { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; color:#6465cc; background:#eceeff; font-weight:900; }.admin-chart-empty strong { display:block; color:#505366; }.admin-chart-empty p { margin:2px 0 0; font-size:9px; }
.admin-evaluation-panel { margin-bottom:16px; }
.admin-evaluation-head { align-items:center; margin-bottom:15px; }
.admin-panel-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:7px; }
.admin-panel-actions .button { min-height:34px; padding:0 11px; font-size:9px; }
.admin-evaluation-count { padding:7px 10px; border-radius:999px; color:#6264c5; background:#edeefe; font-size:9px; font-weight:800; }
.admin-evaluation-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.admin-evaluation-item { min-width:0; display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; padding:11px 12px; border:1px solid #e8e9f0; border-radius:10px; background:#fafafa; box-shadow:none; }
.admin-evaluation-avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(145deg,#7473df,#5f59c5); font-size:13px; font-weight:900; }
.admin-evaluation-copy { min-width:0; }.admin-evaluation-copy p { display:flex; flex-wrap:wrap; gap:4px; margin:0; color:#777b8c; font-size:10px; }.admin-evaluation-copy p strong { color:#404356; }.admin-evaluation-copy p b { color:#5c5ec2; }.admin-evaluation-copy small { display:flex; flex-wrap:wrap; gap:6px; margin-top:3px; color:#999cac; font-size:8px; }.admin-evaluation-copy small em { padding:1px 5px; border-radius:999px; color:#8c6963; background:#f2e8e6; font-style:normal; }
.admin-evaluation-score { min-width:48px; color:#5f61ca; font-size:15px; text-align:right; white-space:nowrap; }.admin-evaluation-score small { display:block; color:#9c9faf; font-size:8px; }
.admin-evaluation-item.is-negative { border-color:#f1e0dc; background:#fffafa; }.admin-evaluation-item.is-negative .admin-evaluation-avatar { background:linear-gradient(145deg,#df806c,#c55d50); }.admin-evaluation-item.is-negative .admin-evaluation-score { color:#c75d50; }.admin-evaluation-item.is-undone { opacity:.6; }
.admin-evaluation-empty { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:12px; min-height:105px; padding:18px; border:1px dashed #d8dae6; border-radius:11px; color:#878b9d; background:#fafafe; }.admin-evaluation-empty > span { width:39px; height:39px; display:grid; place-items:center; border-radius:11px; color:#fff; background:#7775dc; font-weight:900; }.admin-evaluation-empty strong { color:#4a4d61; }.admin-evaluation-empty p { margin:2px 0 0; font-size:9px; }
.admin-quick-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; }
.admin-quick-grid > a { display:grid; grid-template-columns:35px 1fr auto; align-items:center; gap:11px; padding:15px; border:1px solid var(--admin-line); border-radius:12px; color:#4c5063; background:#fff; text-decoration:none; box-shadow:0 5px 15px rgb(49 52 92 / 3%); }.admin-quick-grid > a:hover { border-color:#c9c9eb; color:#5051b9; }.admin-quick-grid > a > span { width:35px; height:35px; display:grid; place-items:center; border-radius:10px; color:#6264ca; background:#eeeefe; font-size:9px; font-weight:900; }.admin-quick-grid div { display:grid; }.admin-quick-grid b { font-size:11px; }.admin-quick-grid small { margin-top:2px; color:#9599aa; font-size:8px; }.admin-quick-grid i { font-style:normal; }
.admin-filter-bar,.admin-table-card { border-color:var(--admin-line); border-radius:13px; background:#fff; box-shadow:0 6px 18px rgb(49 52 92 / 3%); }
.admin-filter-bar { padding:15px; }.admin-filter-bar input,.admin-filter-bar select { border-color:#dfe1eb; border-radius:8px; }.admin-filter-actions a,.admin-section-bar > a,.table-actions a { color:#5e60c2; }
.admin-table-card-head { border-color:#ececf2; }.admin-data-table th { color:#74788b; background:#f7f7fa; }.admin-data-table th,.admin-data-table td { border-color:#ececf2; }.admin-data-table tbody tr:hover { background:#f9f9fe; }.admin-person-avatar { color:#585ac2; background:#eeeeff; }.admin-person-avatar.teacher { color:#4d68b1; background:#edf2ff; }.data-chip { color:#575abd; background:#eeeefe; }.data-chip.soft { color:#8557a8; background:#f5edfa; }.availability { color:#4d78aa; background:#ecf4fb; }
.admin-record-card { border-color:var(--admin-line); background:#fff; box-shadow:0 6px 18px rgb(49 52 92 / 3%); }.admin-record-card .class-entry-mark { background:linear-gradient(145deg,#7473df,#5e59c4); }.record-card-metrics span { background:#f7f7fb; }.record-card-metrics b { color:#5b5dc1; }
.admin-export-button { padding-inline:17px; background:linear-gradient(135deg,#6b6cda,#8258bb)!important; }
.admin-record-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:14px; }.admin-record-stat-grid article { padding:15px 17px; border:1px solid var(--admin-line); border-radius:12px; background:#fff; box-shadow:0 5px 15px rgb(49 52 92 / 3%); }.admin-record-stat-grid span { display:block; color:#9195a6; font-size:9px; }.admin-record-stat-grid strong { margin-right:3px; color:#4e50b8; font-size:24px; }.admin-record-stat-grid small { color:#a1a4b3; font-size:8px; }
.admin-evaluation-filter { display:grid; grid-template-columns:repeat(5,minmax(115px,.6fr)) minmax(220px,1.25fr) auto; align-items:end; gap:9px; margin-bottom:14px; padding:14px; border:1px solid var(--admin-line); border-radius:13px; background:#fff; box-shadow:0 6px 18px rgb(49 52 92 / 3%); }.admin-evaluation-filter label { margin:0; color:#676b7e; font-size:9px; }.admin-evaluation-filter select,.admin-evaluation-filter input { height:38px; min-height:38px; margin-top:5px; border-color:#dfe1eb; border-radius:8px; font-size:10px; }.admin-evaluation-filter-actions { display:flex; align-items:center; gap:9px; min-height:38px; }.admin-evaluation-filter-actions a { color:#74788a; font-size:9px; text-decoration:none; white-space:nowrap; }
.admin-evaluation-table-card .admin-table-card-head > a { color:#5c5fc1; font-size:9px; font-weight:800; text-decoration:none; }.admin-evaluation-table { min-width:1050px; }.admin-evaluation-table td > small { display:block; max-width:320px; margin-top:3px; color:#9296a7; font-size:8px; line-height:1.45; }.admin-student-no { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }.admin-evaluation-tag { display:inline-flex; padding:3px 7px; border-radius:7px; color:#5a5cbd; background:#eeeefe; font-size:9px; font-weight:800; }.admin-table-score { color:#5961c7; font-size:15px; }.admin-table-score.is-negative { color:#c65c51; }.admin-evaluation-table tr.is-undone { opacity:.62; }
.admin-pagination { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 15px; border-top:1px solid #ececf2; }.admin-pagination > span { color:#898d9e; font-size:9px; }.admin-pagination div { display:flex; gap:6px; }.admin-pagination a { min-width:52px; padding:6px 9px; border:1px solid #dedfed; border-radius:7px; color:#5b5ec1; background:#fff; font-size:9px; font-weight:750; text-align:center; text-decoration:none; }.admin-pagination a:hover { border-color:#bfc0e6; background:#f5f5ff; }

@media (max-width:1180px) {
  .admin-layout { grid-template-columns:204px minmax(0,1fr); }
  .admin-content { padding-inline:18px; }
  .admin-stat-grid,.admin-record-stat-grid { grid-template-columns:repeat(2,1fr); }
  .admin-chart-layout { grid-template-columns:1fr; }
  .admin-chart-summary { grid-template-columns:repeat(4,1fr); }
  .admin-chart-summary > p { grid-column:1/-1; }
  .admin-evaluation-filter { grid-template-columns:repeat(3,1fr); }
  .admin-evaluation-keyword { grid-column:span 2; }
}
@media (max-width:720px) {
  .admin-layout { display:block; }
  .admin-sidebar { height:auto; position:static; display:block; padding:0 10px 9px; overflow:visible; border-right:0; border-bottom:1px solid var(--admin-line); }
  .admin-sidebar .admin-brand { min-height:58px; margin:0 -10px 7px; padding:0 12px; }
  .admin-sidebar-label,.admin-sidebar-note { display:none; }
  .admin-sidebar nav { display:flex; gap:5px; margin:0 0 5px; overflow-x:auto; white-space:nowrap; scrollbar-width:thin; }
  .admin-sidebar nav a { flex:none; gap:6px; padding:6px 8px; }
  .admin-nav-icon { width:25px; height:25px; border-radius:7px; }
  .admin-nav-copy small { display:none; }
  .admin-topbar { height:55px; position:static; padding:0 11px; }
  .admin-account-avatar,.admin-account-copy { display:none; }
  .admin-content { padding:14px 10px 34px; }
  .admin-dashboard-hero { min-height:0; display:block; padding:24px 20px; }
  .admin-hero-copy h1 { font-size:27px; }
  .admin-hero-dimensions { gap:5px; margin-top:18px; }.admin-hero-dimensions span { padding:5px 7px; }
  .admin-hero-summary { margin-top:18px; }
  .admin-stat-grid,.admin-record-stat-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .admin-stat { gap:8px; padding:12px; }.admin-stat .stat-icon { width:35px; height:35px; }.admin-stat strong { font-size:20px; }
  .admin-body .admin-panel { padding:14px; }
  .admin-chart-head,.admin-evaluation-head { align-items:flex-start; flex-direction:column; }
  .admin-period-tabs { width:100%; }.admin-period-tabs a { flex:1; min-width:0; }
  .admin-chart-row { grid-template-columns:22px 62px minmax(50px,1fr) 45px; gap:7px; }
  .admin-chart-summary { grid-template-columns:1fr 1fr; }
  .admin-evaluation-list,.admin-quick-grid { grid-template-columns:1fr; }
  .admin-panel-actions { justify-content:flex-start; }
  .admin-evaluation-filter { grid-template-columns:1fr 1fr; }
  .admin-evaluation-keyword { grid-column:1/-1; }
  .admin-evaluation-filter-actions { grid-column:1/-1; }
  .admin-evaluation-filter-actions button { flex:1; }
  .admin-pagination { align-items:flex-start; flex-direction:column; }
}
@media (max-width:440px) {
  .admin-record-stat-grid { grid-template-columns:1fr 1fr; }
  .admin-evaluation-filter { grid-template-columns:1fr; }
  .admin-evaluation-keyword,.admin-evaluation-filter-actions { grid-column:auto; }
}
