:root{
  font-family:-apple-system,"SF Pro Text","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  color:#263a35;background:#f4f7f5;line-height:1.65;font-size:16px;font-optical-sizing:auto;
  --canvas:#f4f7f5;--surface:#fffefd;--surface-soft:#f0f5f2;--surface-warm:#fbf3f4;
  --ink:#263a35;--muted:#61746e;--line:#dce6e0;--accent:#a84963;--accent-hover:#923c55;
  --accent-soft:#f9e9ee;--forest:#2b5a50;--danger:#a63848;--warn:#8a621f;
  --r-sm:8px;--r-md:12px;--r-lg:18px;
}
*{box-sizing:border-box}html,body{overflow-x:clip}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--accent);text-underline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{line-height:1.25;text-wrap:balance}h1{font-size:2.25rem;letter-spacing:-.02em}h2{font-size:1.5rem}h3{font-size:1.18rem}small,.muted,.footnote{color:var(--muted)}strong,b,.amount,.table td{font-variant-numeric:tabular-nums}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d38da0;outline-offset:2px}
.shell{max-width:1460px;margin:auto;padding:0 40px 72px}.top{height:86px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;font-size:1.16rem;letter-spacing:.01em;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent);color:#fff;font-size:1.45rem;line-height:1}.spacer{flex:1}.top-identity{display:grid;text-align:right;line-height:1.3;min-width:0}.top-identity strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;font-size:.92rem}.top-identity small{font-size:.8rem}.workspace{display:grid;grid-template-columns:208px minmax(0,1fr);gap:44px;align-items:start}.page-content{min-width:0;padding-top:34px}.tabs{position:sticky;top:16px;display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:29px 12px 28px 0;border-right:1px solid var(--line);max-height:calc(100vh - 24px);overflow-y:auto}.tabs button{border:0;background:transparent;text-align:left;color:#52665f;border-radius:9px;min-height:43px;padding:10px 12px;font-weight:650;line-height:1.35;white-space:nowrap}.tabs button:hover{background:#eaf1ec;color:var(--ink)}.tabs button.active{background:#e4eee8;color:#224e42;box-shadow:inset 3px 0 #527d6e}.nav-group{display:block;margin:15px 12px 5px;color:#7d8f87;font-size:.76rem;font-weight:700}.nav-group:first-child{margin-top:0}.nav-count{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;padding:0 5px;border-radius:9px;background:#f2dce3;color:#883c53;font-size:.73rem;vertical-align:1px}.tabs button.active .nav-count{background:#cfe1d5;color:#224e42}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 17px;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:#fff;font-weight:700;line-height:1.25;text-align:center;transition:background .16s,border-color .16s,transform .16s}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn:active{transform:translateY(1px)}.btn.alt{background:var(--surface);border-color:#cad9d0;color:var(--forest)}.btn.alt:hover{background:#ebf2ed;border-color:#aec8ba}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.plain{background:transparent;border-color:transparent;color:var(--accent)}.btn.small{min-height:44px;padding:7px 12px;font-size:.86rem}.refresh-row{display:flex;justify-content:flex-end;margin:0 0 16px}.refresh-row .btn{color:var(--muted);background:transparent;border-color:transparent}.refresh-row .btn:hover{background:#e8efeb;color:var(--forest)}
.hero{position:relative;overflow:hidden;margin-bottom:32px;padding:32px 34px;border-radius:var(--r-lg);background:var(--forest);color:#fff}.hero:after{content:'♡';position:absolute;right:27px;top:-63px;color:#ffffff21;font-size:190px;line-height:1;pointer-events:none}.hero small{color:#d8e7df}.hero h1{position:relative;max-width:760px;margin:6px 0 9px;font-size:2.3rem}.hero p{position:relative;max-width:60ch;margin:0;color:#edf5ef}.hero .numbers{display:flex;gap:0;flex-wrap:wrap;position:relative;margin-top:26px;border-top:1px solid #ffffff50}.hero .numbers>div{min-width:135px;padding:14px 24px 0 0;margin-right:24px}.hero .numbers b{font-size:1.18rem;color:#fff}.shell-child .hero{background:#944962}.shell-child .hero small{color:#f6dce5}.shell-child .hero p{color:#fcebf0}.exam-hero{background:#e5f0e9!important;color:var(--ink)!important}.exam-hero:after{color:#72978130}.exam-hero small,.exam-hero p{color:#496b5b!important}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{min-width:0;padding:22px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.card.wide{grid-column:1/-1}.card h2,.card h3{margin-bottom:12px}.card h3{color:var(--ink)}.card p{color:#53665f;margin-bottom:0}.card .actions,.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}.row{display:flex;align-items:flex-start;gap:12px;min-width:0}.row>div:first-child{flex:1;min-width:0}.stack,.list{display:grid;gap:12px}.list .card{padding:17px 20px}.meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:.83rem}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:36px 0 15px}.section-head h2{margin:0}.section-head .muted{font-size:.86rem}.pill{display:inline-block;padding:4px 9px;border-radius:6px;background:var(--accent-soft);color:#833c52;font-size:.78rem;font-weight:700;line-height:1.35;white-space:nowrap}.pill.good{background:#e4f0e9;color:#315b47}.pill.warn{background:#faf0d8;color:#765617}.pill.gray{background:#edf0ee;color:#5d6c65}.amount{color:var(--accent);font-weight:800}.divider{height:1px;background:var(--line);margin:15px 0}.empty{padding:28px 20px;border:1px dashed #cbdcd2;border-radius:var(--r-md);background:#fafcfa;color:var(--muted);text-align:center}.notice{padding:14px 16px;margin-bottom:16px;border-left:3px solid #ac863a;background:#fbf5e8;color:#795c28;border-radius:4px 9px 9px 4px}.footnote{font-size:.84rem;line-height:1.55}.loading{display:grid;place-items:center;min-height:100vh;color:var(--forest)}
.form{display:grid;gap:16px}.form.inline{grid-template-columns:repeat(2,minmax(0,1fr))}.form label{display:grid;gap:6px;color:#3e554c;font-size:.9rem;font-weight:650}.form .span{grid-column:1/-1}.form input,.form textarea,.form select,.score-row input,.exam-rule-row input{width:100%;min-width:0;min-height:46px;padding:10px 12px;border:1px solid #bdcfc4;border-radius:var(--r-sm);background:#f9fbf9;color:var(--ink);outline:2px solid transparent;outline-offset:1px}.form input:hover,.form textarea:hover,.form select:hover,.score-row input:hover,.exam-rule-row input:hover{background:#f3f8f4}.form input:focus,.form textarea:focus,.form select:focus,.score-row input:focus,.exam-rule-row input:focus{border-color:#628a77;outline-color:#b1d4c0;background:#fff}.form textarea{min-height:94px;resize:vertical}.form [hidden]{display:none!important}.form label.toggle{display:flex;align-items:center;gap:10px;min-height:44px}.form label.toggle input[type=checkbox],.checkboxes input{width:19px;height:19px;min-height:0;margin:0;accent-color:var(--forest)}.checkboxes{display:flex;gap:8px;flex-wrap:wrap}.checkboxes label{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-soft);font-weight:500}.toggle{display:flex;align-items:center;gap:8px}.toggle input{width:auto}.score-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px}.score-row input{min-height:42px}.exam-rule-row{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;align-items:center;gap:8px;margin:8px 0}.exam-rule-row input{min-height:42px}.exam-rule-head{color:var(--muted);font-size:.83rem}.compact{font-size:.85rem}.required-mark{color:var(--danger)}
.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;background:var(--surface)}.table th,.table td{padding:13px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.table th{background:#eef3ef;color:#536d5d;font-size:.81rem}.table tr:last-child td{border-bottom:0}.table details{max-width:360px}.table pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem;color:var(--muted)}
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,490px);background:#eaf2ed}.auth-art{position:relative;display:flex;flex-direction:column;justify-content:center;padding:8vw;background:#315c51;color:#fff;overflow:hidden}.auth-art:after{content:'';position:absolute;left:8vw;right:8vw;bottom:16%;height:1px;background:#ffffff55;box-shadow:0 14px #ffffff33,0 28px #ffffff22}.auth-art .heart{width:72px;height:72px;display:grid;place-items:center;margin-bottom:36px;border:1px solid #ffffff85;border-radius:16px;font-size:3rem;line-height:1}.auth-art h1{max-width:12ch;margin:0 0 20px;font-size:3.25rem;line-height:1.34}.auth-art p{max-width:38ch;color:#dfebe3;font-size:1.05rem}.auth-panel{display:flex;align-items:center;justify-content:center;padding:42px}.auth-box{width:min(100%,390px)}.auth-box>.brand{margin-bottom:28px}.auth-tabs{display:flex;gap:4px;margin:0 0 18px;padding:4px;border:1px solid #ceddd2;border-radius:10px;background:#f6f9f6}.auth-tabs button{flex:1;min-height:42px;padding:8px 5px;border:0;border-radius:7px;background:transparent;color:#61746e;font-size:.88rem;font-weight:650}.auth-tabs button.active{background:#fff;color:var(--forest);box-shadow:0 1px 4px #2147361b}.auth-box .card{padding:28px;border:1px solid #cfddd3;box-shadow:0 14px 40px #244a3520}.auth-box .card h2{margin:0 0 22px}.auth-box .form>.btn{width:100%;margin-top:4px}.auth-box .footnote{text-align:center}
.wish-price-dialog{width:min(470px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #d9e5dc;border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 22px 64px #16372d43;overflow:auto}.wish-price-dialog::backdrop{background:#172e26a8}.wish-price-accent{position:absolute;right:22px;top:15px;color:#ecd8df;font-size:74px;line-height:1;pointer-events:none}.wish-price-content{position:relative;padding:28px 30px 30px}.wish-price-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.wish-price-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:1.8rem}.wish-price-close{min-width:38px;min-height:38px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1.7rem;line-height:1}.wish-price-close:hover{background:#f1f5f1}.wish-price-eyebrow{margin:0 0 4px;color:var(--accent);font-size:.8rem;font-weight:700}.wish-price-content h2{margin:0 0 7px}.wish-price-subtitle{margin:0 0 20px;color:var(--muted);font-size:.9rem}.wish-price-summary{display:grid;gap:3px;padding:14px 16px;margin-bottom:20px;border-left:3px solid #a8c0af;background:#f2f7f3;border-radius:3px 9px 9px 3px}.wish-price-summary small{font-size:.78rem}.wish-price-summary strong{font-size:1rem}.wish-price-summary p{margin:0;color:var(--muted);font-size:.85rem}.wish-price-form{gap:10px}.wish-price-form>label{display:block}.wish-price-input{position:relative}.wish-price-input input{height:53px;padding-right:90px;font-size:1.25rem;font-weight:750}.wish-price-input span{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--accent);font-size:.86rem;pointer-events:none}.wish-price-form textarea{min-height:86px}.wish-price-hint{margin:0;color:var(--muted);font-size:.82rem}.wish-price-error{margin:0;color:var(--danger);font-size:.85rem}.wish-price-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:9px}.wish-price-actions .btn{min-width:100px}
#toast{position:fixed;z-index:500;left:50%;bottom:24px;max-width:calc(100vw - 32px);padding:11px 17px;border-radius:9px;background:#253e35;color:#fff;box-shadow:0 12px 26px #1a352835;opacity:0;pointer-events:none;transform:translate(-50%,8px);transition:opacity .18s,transform .18s}#toast.show{opacity:1;transform:translate(-50%,0)}
.exam-subject-card .row{align-items:center}.exam-band-list{margin-top:16px;border-top:1px solid var(--line)}.exam-band{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px;border-bottom:1px solid var(--line);font-size:.91rem}.exam-band strong{color:var(--forest)}.exam-band .exam-positive{color:var(--accent)}.exam-band .exam-negative{color:var(--danger)}.exam-target-bonus{margin-top:16px;padding:11px 13px;border-radius:8px;background:#edf5ef;color:#315e4a;font-size:.88rem}.exam-entry-card{margin-top:16px}.exam-entry-card .footnote{margin:0}.exam-history{display:grid;gap:16px}.exam-record-group>.row{align-items:center;margin-bottom:16px}.exam-record-group h3{margin:0 0 3px}.exam-report-list{display:grid;gap:8px}.exam-report{display:flex;gap:14px;padding:13px;border-radius:8px;background:#f4f8f5}.exam-report-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:74px;padding-right:13px;border-right:1px solid #d6e5da;color:var(--forest)}.exam-report-score strong{font-size:1.65rem;line-height:1.1}.exam-report-score small{font-size:.75rem;white-space:nowrap}.exam-report-detail{min-width:0;flex:1;font-size:.88rem}.exam-report-detail .row{align-items:center;justify-content:space-between;flex-wrap:wrap}.exam-report-detail p{margin:4px 0 0;color:var(--muted)}
.parent-home-hero{margin-bottom:28px}.parent-children{display:grid;gap:18px}.parent-child-overview{padding:24px 26px}.parent-child-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.parent-child-head h3{margin:3px 0 0;font-size:1.4rem}.parent-child-balance{text-align:right;white-space:nowrap}.parent-child-balance small{display:block}.parent-child-balance strong{color:var(--accent);font-size:1.5rem}.parent-child-stats{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}.parent-child-stats span{padding:7px 10px;border-radius:7px;background:#edf4ef;color:#526960;font-size:.84rem}.parent-child-stats b{color:var(--forest)}.parent-streak-stat{background:#f7eedc!important;color:#775922!important}.parent-streak-stat b{color:#775922!important}.parent-streak-stat small{font-size:.75rem;color:#887046}.parent-child-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.parent-child-columns h4,.parent-wish-progress h4{margin:0 0 11px;color:#40594e;font-size:.94rem}.parent-task-list,.parent-trends{display:grid;align-content:start;gap:8px}.parent-task-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;background:#f3f7f3}.parent-task-row strong{display:block;font-size:.91rem}.parent-task-row small{display:block;margin-top:2px;font-size:.77rem}.parent-trend-card{padding:12px 13px;border-radius:8px;background:#f3f7f3}.parent-trend-card .row{align-items:center}.parent-trend-card .meta{margin-top:2px}.parent-trend-latest{color:var(--accent);white-space:nowrap}.parent-trend-card svg{display:block;width:100%;height:auto;margin:5px 0}.trend-grid{stroke:#d8e6dc;stroke-width:1}.trend-line{fill:none;stroke:#58806a;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}.trend-dot{fill:#58806a;stroke:#fff;stroke-width:2}.parent-trend-foot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.parent-trend-empty{padding:14px;border:1px dashed #d2e1d6;border-radius:8px;color:var(--muted);font-size:.84rem}.parent-wish-progress{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.parent-wish-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.parent-wish-item{padding:13px 14px;border-radius:8px;background:#f7f8f4}.parent-wish-item>.row{align-items:center;justify-content:space-between;font-size:.9rem}.parent-wish-item>.row>span{color:var(--accent);font-weight:700}.parent-wish-track{height:8px;margin:11px 0 8px;border-radius:99px;background:#e0e9df;overflow:hidden}.parent-wish-track span{display:block;height:100%;border-radius:inherit;background:#ad6673}.parent-wish-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.parent-wish-progress>.footnote{margin:10px 0 0}.parent-action-grid button{text-align:left;display:grid;gap:4px}.parent-action-grid button:hover{border-color:#a8c4b1;background:#f8fbf8}.parent-action-grid strong{color:var(--accent);font-size:1.45rem;line-height:1.2}.parent-action-grid span{color:var(--muted);font-size:.82rem}
@media(max-width:1050px){.shell{padding:0 24px 60px}.workspace{grid-template-columns:178px minmax(0,1fr);gap:26px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-child-columns{grid-template-columns:1fr}}
@media(max-width:760px){.shell{padding:0 18px 56px}.top{height:72px}.workspace{display:block}.tabs{position:relative;top:auto;display:flex;flex-direction:row;gap:5px;max-height:none;overflow-x:auto;overflow-y:hidden;margin:0 -18px;padding:10px 18px 12px;border-right:0;border-bottom:1px solid var(--line);scrollbar-width:thin}.tabs button{flex:none;min-height:41px;padding:9px 12px;text-align:center}.tabs button.active{box-shadow:inset 0 -3px #527d6e}.nav-group{display:none}.page-content{padding-top:20px}.grid,.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-page{grid-template-columns:1fr}.auth-art{min-height:235px;padding:30px}.auth-art:after{display:none}.auth-art .heart{width:48px;height:48px;margin-bottom:14px;font-size:2rem}.auth-art h1{max-width:none;margin-bottom:7px;font-size:2rem}.auth-art p{margin:0}.auth-panel{padding:26px 18px 42px}.auth-box{width:min(100%,440px)}.auth-box>.brand{margin-bottom:18px}}
@media(max-width:580px){.top{gap:10px}.top-identity{display:none}.brand{font-size:1.05rem}.brand-mark{width:34px;height:34px}.grid,.grid.two,.form.inline,.parent-wish-list{grid-template-columns:1fr}.hero{padding:25px 22px;margin-bottom:24px}.hero h1{font-size:1.85rem}.hero:after{right:-17px;top:-31px;font-size:125px}.hero .numbers>div{min-width:45%;padding-right:8px;margin-right:0}.section-head{align-items:flex-start;margin-top:28px}.card{padding:18px}.row{flex-wrap:wrap}.parent-child-overview{padding:18px}.parent-child-balance strong{font-size:1.32rem}.exam-rule-row{grid-template-columns:1fr 1fr}.exam-rule-head{display:none}.exam-report{gap:9px;padding:10px}.exam-report-score{min-width:56px;padding-right:9px}.exam-report-score strong{font-size:1.42rem}.wish-price-dialog{width:100%;max-height:92dvh;margin:auto 0 0;border-radius:18px 18px 0 0}.wish-price-content{padding:23px 20px 26px}.wish-price-actions .btn{flex:1}.auth-art{min-height:205px}.auth-art h1{font-size:1.65rem}.auth-art p{font-size:.9rem}}
@media(max-width:380px){.brand span:last-child{display:none}.score-row{grid-template-columns:1fr 1fr}.score-row input:last-child{grid-column:1/-1}}
.nav-group{color:#60776b}.tabs button{min-height:44px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
