:root{--green:#245b46;--green-soft:#e8f0eb;--paper:#faf9f5;--ink:#1d2923;--line:#d9dfda;--muted:#66736c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Inter,"PingFang SC","Microsoft YaHei",sans-serif;padding-bottom:78px}button,input,select,textarea{font:inherit}button,a{min-height:44px}.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px max(20px,calc((100% - 920px)/2));background:rgba(250,249,245,.96);border-bottom:1px solid var(--line)}.brand{display:block;font-size:20px;color:var(--green)}#contextLabel{font-size:13px;color:var(--muted)}.top-actions{display:flex;gap:8px}.text-button{border:0;background:transparent;color:var(--green);padding:8px}main{max-width:920px;margin:auto;padding:18px 20px}.child-bar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.child-name{font-weight:700;color:var(--green)}select,input,textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:10px 12px;color:var(--ink)}label{display:block;margin:12px 0 4px;font-weight:600}.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:6px 0 16px}.section-head h1{font-size:24px;margin:0}.section-head p,.muted{color:var(--muted);margin:3px 0}.school-picker{max-width:300px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:18px}.course-card{padding:0;overflow:hidden}.cover{aspect-ratio:16/8;background:#edf0eb;display:grid;place-items:center;color:var(--muted);overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.card-body{padding:16px}.card h2,.card h3{margin:0 0 6px}.meta{font-size:14px;color:var(--muted)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:9px 15px;text-decoration:none}.primary{background:var(--green);border-color:var(--green);color:#fff}.danger{color:#a33d3d;border-color:#dfbcbc}.button:disabled{opacity:.5}.badge{display:inline-block;padding:3px 8px;border-radius:6px;background:var(--green-soft);color:var(--green);font-size:13px}.badge.cancelled{background:#eee;color:#666}.badge.pending{background:#fff3d8;color:#805c00}.state{text-align:center;padding:60px 20px;color:var(--muted)}.state h2{color:var(--ink)}.error{padding:14px;border:1px solid #e2bcbc;background:#fff1f1;color:#8b3030;border-radius:6px}.login{max-width:420px;margin:35px auto}.detail-media img{display:block;width:100%}.sticky-action{position:sticky;bottom:70px;background:rgba(250,249,245,.96);padding:12px 0;border-top:1px solid var(--line)}.sticky-action .button{width:100%}.snapshot{padding:10px 12px;background:var(--green-soft);border-radius:6px}.bottom-nav{position:fixed;z-index:6;bottom:0;left:0;right:0;height:66px;display:flex;justify-content:center;background:#fff;border-top:1px solid var(--line)}.bottom-nav button{width:min(25%,230px);border:0;background:#fff;color:var(--muted);font-size:12px}.bottom-nav span{display:block;font-weight:700;font-size:16px}.bottom-nav button.active{color:var(--green)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.toast{position:fixed;z-index:20;left:50%;bottom:84px;transform:translateX(-50%);padding:11px 16px;background:#1d2923;color:#fff;border-radius:6px}@media(max-width:640px){main{padding:14px}.grid,.form-grid{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.school-picker{max-width:none;width:100%}.topbar{padding:12px 14px}.row{align-items:flex-start}.card{padding:15px}}
:root { --safe-bottom:env(safe-area-inset-bottom,0px); }
.bottom-nav button { font-size:13px; }
.sticky-action { position:fixed; left:0; right:0; z-index:5; padding:12px max(14px,calc((100% - 880px)/2)); }
main:has(.sticky-action) { padding-bottom:130px; }
#accountSettings { margin:28px 0; border-top:1px solid var(--line); padding:16px 0; }#accountSettings summary { min-height:44px; cursor:pointer; }
.bottom-nav { padding-bottom:var(--safe-bottom); height:calc(66px + var(--safe-bottom)); }.sticky-action { bottom:calc(66px + var(--safe-bottom)); }body { padding-bottom:calc(78px + var(--safe-bottom)); }
button:focus-visible,a:focus-visible { outline:3px solid var(--green); outline-offset:3px; }img { max-width:100%; }
.family-row { display:flex; justify-content:space-between; align-items:center; gap:16px; width:100%; text-align:left; padding:18px 0; background:none; color:var(--ink); border:0; border-bottom:1px solid var(--line); }.family-row .meta { display:block; margin-top:4px; }.family-unbind { margin-top:32px; color:var(--muted); }.family-list { margin:12px 0; }
.child-bar label,.badge { flex-shrink:0; white-space:nowrap; }.child-bar select { min-width:0; }.course-card h2 { font-size:19px; overflow-wrap:anywhere; }.course-card .card-body>p:not(.meta) { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }.catalog-head label { margin:0; font-size:13px; }.catalog-filters { margin-bottom:18px; }.catalog-filters label { font-size:13px; }.course-card .button { min-height:44px; }.card h2 { overflow-wrap:anywhere; }
.growth-tabs { display:flex; gap:20px; border-bottom:1px solid var(--line); }.growth-tabs .selected { border-bottom:2px solid var(--green); font-weight:600; }.growth-entry { padding:24px 0; border-bottom:1px solid var(--line); }.growth-entry h2 { font-size:20px; margin:8px 0; }.growth-preview { display:block; width:160px; height:120px; object-fit:cover; border-radius:6px; margin:12px 0; }
@media(max-width:640px) { .catalog-head { flex-direction:row; align-items:center; }.catalog-head label { max-width:74%; }.catalog-head select { margin-top:2px; font-size:14px; }.catalog-filters { grid-template-columns:minmax(0,1fr) 115px; gap:10px; }.catalog-filters label { margin-top:0; }.catalog-filters input,.catalog-filters select { font-size:14px; }.course-card { display:grid; grid-template-columns:94px minmax(0,1fr); gap:14px; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:16px 0; background:transparent; }.course-card .cover { width:94px; height:112px; aspect-ratio:auto; border-radius:6px; font-size:13px; text-align:center; padding:0; }.course-card .card-body { padding:0; min-width:0; }.course-card .row { flex-direction:column; gap:4px; }.course-card h2 { font-size:18px; line-height:1.45; margin:0; }.course-card .meta { margin:8px 0; }.course-card .card-body>p:not(.meta) { font-size:14px; margin:6px 0; }.course-card .button { margin-top:6px; }.child-bar { margin-bottom:12px; }.child-bar label { font-size:13px; margin:0; } }
