:root{--navy:#142f4c;--navy2:#1b3d5a;--ink:#1c354d;--muted:#65798b;--line:#c8d3dc;--paper:#f2f5f7;--card:#fff;--gold:#bb9442;--soft:#e7edf2;--mint:#e8f0ed;--sans:'PingFang SC','Microsoft YaHei',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.skip{position:absolute;left:-10000px;top:auto}.skip:focus{left:20px;top:20px;z-index:100;background:#fff;padding:10px}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.03fr .97fr;background:#edf2f5}.login-left{padding:38px max(5vw,42px) 28px;display:flex;flex-direction:column}.login-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.brand{display:block;width:190px;height:auto}.brand img{width:100%;height:auto;display:block}.preview-label{border:1px solid #c7d2da;color:#637b8e;padding:5px 11px;border-radius:3px;font-size:12px;letter-spacing:.07em;font-weight:700}.login-main{margin:auto 0;max-width:660px}.kicker{font-size:12px;font-weight:700;letter-spacing:.18em;color:#548099;text-transform:uppercase}.login-main h1{font-size:clamp(42px,5vw,78px);line-height:1.18;letter-spacing:-.035em;margin:17px 0 17px;color:#112c49}.login-main h1 em{font-style:normal;color:var(--gold)}.login-lead{font-size:19px;color:#536c80;max-width:590px;margin-bottom:28px}.login-card{background:#fff;border:1px solid #d5dfe5;box-shadow:0 22px 50px rgba(25,54,76,.08);padding:26px 29px;max-width:560px}.login-card-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.login-card h2{font-size:20px;margin:0}.client-logo{width:95px;max-height:38px}.login-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field label,.login-fields label{display:block;font-size:13px;font-weight:700;color:#486275;margin-bottom:7px}.field input,.field textarea,.login-fields input{width:100%;border:1px solid #bfcdd7;background:#fff;color:#1b374f;border-radius:3px;padding:11px 12px;outline:0}.field input:focus,.field textarea:focus,.login-fields input:focus{border-color:#2c6c91;box-shadow:0 0 0 3px rgba(44,108,145,.13)}.login-fields input{font-size:15px}.login-help{color:#778c9b;font-size:12px;margin:16px 0 0}.login-footer{font-size:12px;color:#7890a0}.login-art{position:relative;background:#183651;overflow:hidden}.login-art img{width:100%;height:100%;object-fit:cover;filter:saturate(.78)}.login-art:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(8,30,52,.75))}.art-caption{position:absolute;left:7%;bottom:7%;z-index:1;color:#fff;font-size:24px;font-weight:600;line-height:1.5;max-width:430px}.art-caption span{display:block;font-size:12px;opacity:.72;font-weight:400;margin-top:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#fff;border:1px solid #b9c9d5;color:#1e405c;padding:11px 18px;font-size:14px;font-weight:700;border-radius:3px;text-decoration:none}.btn:hover{border-color:#427291;background:#f8fbfd}.btn:focus-visible,.nav-link:focus-visible{outline:3px solid #c7a350;outline-offset:2px}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.primary:hover{background:#244967}.btn.gold{background:var(--gold);border-color:var(--gold);color:#132d49}.btn.small{padding:7px 11px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.login-card .primary{margin-top:18px;width:100%}.error{color:#a43e36;font-size:13px;min-height:18px;margin-top:8px}.status{font-size:12px;color:#558268}.status.warn{color:#ad6f25}
.shell{display:grid;grid-template-columns:246px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#eaf1f6;padding:24px 17px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}.sidebar .brand{width:175px;margin:2px 8px}.sidebar .brand img{filter:brightness(0) invert(1)}.sidebar .client{display:flex;align-items:center;gap:8px;padding:13px 8px;border-top:1px solid #405b73;border-bottom:1px solid #405b73;font-size:12px;color:#b5c7d5}.sidebar .client img{width:66px;filter:brightness(0) invert(1)}.nav-group-title{color:#88a2b4;letter-spacing:.12em;font-size:10px;font-weight:700;margin:0 11px 9px}.nav-link{width:100%;display:flex;align-items:center;gap:11px;border:0;background:none;color:#c7d6e1;text-align:left;padding:10px 12px;border-radius:3px;font-size:13px}.nav-link:hover,.nav-link.active{background:#294e6b;color:#fff}.nav-link .num{font-size:10px;color:#91a8ba;min-width:18px}.nav-link.locked{opacity:.5}.sidebar-foot{margin-top:auto;border-top:1px solid #456078;padding:15px 8px 0;font-size:12px;color:#a7bbca}.sidebar-foot strong{display:block;color:#fff;font-size:14px;margin-bottom:7px}.sidebar-foot button{margin-top:12px;background:none;border:0;color:#d7e6ef;text-decoration:underline;padding:0;font-size:12px}
.workspace{min-width:0}.topbar{height:70px;border-bottom:1px solid #d4dfe5;background:#f9fbfc;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,3vw,48px);gap:20px}.topbar .eyebrow{font-size:11px;letter-spacing:.16em;color:#668295;font-weight:700}.topbar .right{display:flex;align-items:center;gap:16px;font-size:12px;color:#60798b}.topbar .dot{width:7px;height:7px;background:#52896e;border-radius:50%;display:inline-block;margin-right:5px}.content{max-width:1480px;margin:0 auto;padding:34px clamp(24px,3vw,48px) 70px}.page-title{font-size:clamp(29px,3vw,43px);line-height:1.24;letter-spacing:-.025em;margin:7px 0 11px}.page-lead{font-size:16px;color:#64798a;margin:0 0 28px;max-width:850px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;color:#5b8097;text-transform:uppercase}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:#fff;border:1px solid #d6e0e6;padding:22px 24px;min-width:0}.card h2,.card h3{margin:0 0 12px}.card h2{font-size:22px}.card h3{font-size:18px}.card p{margin:9px 0;color:#5f7484}.card small{color:#718697}.card.accent{border-top:4px solid var(--gold)}.card.navy{background:#193a57;color:#fff;border-color:#193a57}.card.navy p{color:#cbd9e4}.callout{background:#e5edf2;border-left:4px solid #385c77;padding:16px 19px;margin:20px 0;font-size:14px}.callout strong{color:#183c59}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.metric{border-top:2px solid #42627a;background:#fff;padding:16px 18px}.metric b{font-size:28px;color:#153b5b;display:block}.metric span{font-size:12px;color:#6c8293}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.progress{height:6px;background:#dce5ea;margin:12px 0}.progress span{display:block;height:6px;background:#9a793b}.pill{display:inline-block;padding:4px 9px;font-size:11px;font-weight:700;border:1px solid #b8c9d4;color:#527087;background:#f7fafb}.pill.open{border-color:#95b8a4;color:#35674d;background:#eaf3ed}.pill.lock{border-color:#cfbca5;color:#85653d;background:#f8f3eb}
.material-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.material-card{border:1px solid #d5e0e6;background:#fff;padding:20px 22px;text-align:left;min-height:136px}.material-card:hover{border-color:#557c96;box-shadow:0 5px 18px rgba(22,59,84,.07)}.material-card .id{color:#a27c35;font-weight:700;letter-spacing:.09em;font-size:13px}.material-card h3{font-size:20px;margin:10px 0 8px}.material-card p{margin:0;font-size:13px;color:#667d8d}.material-body{background:#fff;border:1px solid #d5e0e6;padding:28px;line-height:1.75}.material-body p{margin:0 0 18px}.material-body h3{margin-top:24px}.material-body .table-wrap{overflow:auto;margin:18px 0 24px}.material-body table{width:100%;border-collapse:collapse;min-width:640px;font-size:13px}.material-body th{background:#e2ebf0;text-align:left;color:#294a61}.material-body th,.material-body td{padding:10px 12px;border-bottom:1px solid #d0dbe1;vertical-align:top}.material-body tr:nth-child(even) td{background:#f7f9fa}.material-body .source-note{background:#edf3f4;padding:10px 14px;border-left:3px solid #6e9a91;font-size:13px}.material-body ol{padding-left:24px}.material-body li{margin:8px 0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{background:#fff;border:1px solid #d6e0e6;padding:20px}.field label{margin-bottom:6px}.field .hint{font-size:12px;color:#7890a0;margin-bottom:11px}.field textarea{min-height:104px;resize:vertical;font-size:14px;line-height:1.55}.field.wide{grid-column:1/-1}.stage-bar{display:flex;justify-content:space-between;align-items:center;margin:22px 0 10px}.stage-bar h2{font-size:19px;margin:0}.action-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;margin-top:15px}.action-bar p{margin:0;color:#688093;font-size:13px}.locked-panel{background:#e8eef2;border:1px dashed #a9bccc;padding:38px;text-align:center}.locked-panel h2{margin:0 0 8px}.outline-card{display:grid;grid-template-columns:65px 1fr;gap:20px;padding:20px;margin-bottom:12px}.outline-number{font-size:24px;color:#b79554;font-weight:700}.outline-card .field{padding:0;border:0}.outline-card textarea{min-height:90px}.outline-card h3{margin:0 0 12px}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#415e74}.check input{margin-top:5px}.report-nav{display:flex;gap:7px;margin:22px 0}.report-nav button{width:40px;height:36px;border:1px solid #bfced8;background:#fff;color:#254863}.report-nav button.active{background:#153651;color:#fff}.report-slide{aspect-ratio:16/9;background:#fff;border:1px solid #b9cbd6;padding:4% 5%;box-shadow:0 15px 40px rgba(23,56,79,.12);display:flex;flex-direction:column}.report-slide.dark{background:#142f4c;color:#fff}.report-slide .slide-top{font-size:12px;letter-spacing:.15em;color:#748b9d;font-weight:700}.report-slide.dark .slide-top{color:#b2c8d8}.report-slide h2{font-size:clamp(23px,2.8vw,42px);line-height:1.25;margin:5% 0 3%;max-width:90%}.report-slide .main-point{font-size:clamp(17px,2vw,29px);line-height:1.42;white-space:pre-wrap;max-width:80%;font-weight:600}.report-slide .support-point{margin-top:auto;border-top:1px solid #a8b9c6;padding-top:2%;font-size:clamp(13px,1.3vw,19px);white-space:pre-wrap;max-width:90%;color:#607a8b}.report-slide.dark .support-point{color:#bcd0de;border-color:#718a9e}.report-slide .slide-foot{margin-top:2%;font-size:11px;color:#7890a0;display:flex;justify-content:space-between}.report-slide.dark .slide-foot{color:#a9c2d4}.viewer-frame{width:100%;aspect-ratio:16/9;border:1px solid #9cb0c0;background:#fff}.courseware-note{font-size:13px;color:#6c8190;margin-top:12px}.teacher-flag{padding:16px 18px;background:#fff;border:1px solid #d3dee5;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:15px}.teacher-flag h3{margin:0;font-size:17px}.teacher-flag p{margin:2px 0 0;font-size:12px;color:#718799}.teacher-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.teacher-row .card{padding:18px}.teacher-row strong{font-size:19px}.teacher-row p{font-size:13px}.notice{font-size:12px;color:#6d8190}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}#toast{position:fixed;bottom:25px;right:25px;z-index:1000;background:#173b59;color:#fff;padding:12px 18px;max-width:360px;box-shadow:0 8px 24px rgba(10,35,55,.3);font-size:13px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1050px){.shell{grid-template-columns:210px 1fr}.case57{display:block}.teacher-row{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr}.material-list{grid-template-columns:1fr}}
@media(max-width:760px){.login-page{grid-template-columns:1fr}.login-left{min-height:100vh;padding:25px}.login-art{display:none}.login-fields,.grid2,.grid3,.form-grid,.metrics,.teacher-row{grid-template-columns:1fr}.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static;padding:17px;gap:10px}.sidebar .brand{width:150px}.sidebar .client,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto;gap:5px}.nav-group-title{display:none}.nav-link{white-space:nowrap;width:auto}.topbar{height:auto;min-height:54px;padding:10px 22px}.content{padding:24px 20px 60px}.field.wide{grid-column:auto}.report-slide{min-height:380px}.report-slide .main-point{max-width:100%}.report-slide .support-point{max-width:100%}}

/* Viewport-fit login: keep the photo from setting the grid row's intrinsic height. */
.login-page{height:100dvh;min-height:0;grid-template-rows:minmax(0,1fr)}
.login-left{min-height:0}
.login-art{min-height:0}
.login-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-height:800px) and (min-width:951px){
  .login-left{padding:18px max(4vw,30px) 16px}
  .login-top .brand{width:162px}
  .login-main h1{font-size:clamp(38px,4.1vw,58px);margin:10px 0;line-height:1.14}
  .login-lead{font-size:16px;line-height:1.45;margin-bottom:15px}
  .login-card{padding:17px 20px}
  .login-card-head{margin-bottom:9px}
  .login-card h2{font-size:18px}
  .login-card .primary{margin-top:10px;padding:9px 16px}
  .login-help{margin-top:9px;line-height:1.35}
  .art-caption{font-size:20px}
}
@media(max-width:950px){
  .login-page{grid-template-columns:1fr}
  .login-art{display:none}
  .login-left{padding:24px clamp(24px,6vw,52px) 20px}
  .login-main{width:100%;max-width:620px;margin:auto}
}
@media(max-width:950px) and (max-height:760px){
  .login-left{min-height:0;padding-top:16px;padding-bottom:14px}
  .login-top .brand{width:155px}
  .login-main h1{font-size:clamp(38px,5.2vw,54px);margin:8px 0;line-height:1.1}
  .login-lead{font-size:16px;line-height:1.4;margin-bottom:12px}
  .login-card{padding:16px 19px}
  .login-card-head{margin-bottom:8px}
  .login-card .primary{margin-top:10px;padding:9px 16px}
  .login-help{margin-top:8px;line-height:1.35}
}
@media(max-width:600px){
  .login-page{height:auto;min-height:100dvh}
  .login-left{min-height:100dvh}
  .login-fields{grid-template-columns:1fr}
}

/* V4: one task per screen, quiet training workbench. */
.content{max-width:1260px;padding-top:30px}
.page-title{font-size:clamp(27px,2.6vw,38px);margin:6px 0 8px}
.page-lead{font-size:15px;margin-bottom:22px}
.steps{border-top:1px solid #c7d5dd;max-width:900px}
.step-line{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:16px;border-bottom:1px solid #c7d5dd;padding:21px 0}
.step-line>b{font-size:18px;color:#b18a42;letter-spacing:.05em}
.step-line h2{font-size:21px;margin:0 0 3px}
.step-line p{font-size:14px;color:#647b8d;margin:0}
.quiet-note{margin-top:22px;color:#728a99;font-size:13px}
.quiet-panel{border:1px solid #d7e0e5;background:#fff;padding:22px;color:#647b8d;font-size:14px;line-height:1.6}
.exercise-section{border:1px solid #d5e0e6;background:#fff;margin-bottom:11px}
.exercise-section>summary{display:flex;align-items:center;gap:15px;list-style:none;cursor:pointer;padding:16px 20px}
.exercise-section>summary::-webkit-details-marker{display:none}
.exercise-section>summary:after{content:'⌄';margin-left:8px;color:#7b91a1;font-size:21px;line-height:1}
.exercise-section[open]>summary:after{transform:rotate(180deg)}
.exercise-section>summary>span{color:#b18a42;font-weight:700;font-size:14px}
.exercise-section>summary>strong{font-size:17px}
.exercise-section>summary>small{margin-left:auto;color:#8194a2;font-size:12px}
.exercise-fields{border-top:1px solid #e2e9ed;padding:12px 18px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.field.slim{padding:0;border:0;background:transparent}
.field.slim label{font-size:13px;margin:0 0 6px;color:#344f64}
.field.slim textarea{min-height:88px;padding:10px 11px;font-size:14px;background:#fcfdfe}
.field.slim textarea::placeholder{color:#9badb9}
.exercise-section:first-of-type .field.slim:first-child{grid-column:1/-1}
.action-bar{border-top:1px solid #d4e0e6;justify-content:flex-end}
.group-strip{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff;border:1px solid #d5e0e6;padding:14px 20px;margin-bottom:22px}
.group-strip small{display:block;color:#7b91a0;font-size:11px}
.group-strip strong{display:block;font-size:17px;margin-top:2px}
.rep-select{display:flex;gap:8px}
.rep-select select{border:1px solid #bdcdd7;background:#fff;color:#23415a;padding:8px 10px;min-width:148px;font:inherit;font-size:13px}
.group-columns{display:grid;grid-template-columns:minmax(280px,.86fr) minmax(0,1.14fr);gap:22px}
.section-heading{font-size:18px;margin:0 0 12px}
.member-list{border:1px solid #d5e0e6;background:#fff}
.member-row{width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;border:0;border-bottom:1px solid #e2e9ed;background:#fff;text-align:left;padding:10px 13px;color:#25435c;font-size:14px}
.member-row:last-child{border-bottom:0}
.member-row.selected,.member-row:hover{background:#eef3f6}
.member-row small{color:#90a1ac;font-size:11px;margin-left:5px}
.member-row .pill{font-size:10px;white-space:nowrap;padding:2px 6px}
.detail-card{margin-top:13px;border:1px solid #d5e0e6;background:#fff;padding:18px}
.detail-card h3{font-size:17px;margin:0}
.detail-card dl{margin:14px 0 0}
.detail-card dt{font-size:11px;color:#7a91a1;font-weight:700;margin-top:12px}
.detail-card dd{font-size:14px;margin:3px 0 0;white-space:pre-wrap}
.plain-details{margin-top:16px;border-top:1px solid #dbe4e9;padding-top:12px}
.plain-details>summary{font-size:13px;color:#426984;cursor:pointer}
.plain-details h4{font-size:14px;margin:17px 0 6px}
.answer-line{border-top:1px solid #edf1f3;padding:9px 0}
.answer-line b{font-size:12px;color:#688295}
.answer-line p{white-space:pre-wrap;font-size:13px;margin:4px 0}
.group-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:12px 0 18px}
.group-actions .notice{margin-right:auto}
.mini-summary{border:1px solid #d5e0e6;background:#fff;padding:18px;margin:12px 0}
.mini-summary b{font-size:12px;color:#718b9e}
.mini-summary p{font-size:14px;margin:4px 0 14px;white-space:pre-wrap}
.outline-mini{grid-column:1/-1;border-top:1px solid #e2e8eb;padding-top:16px}
.outline-mini>b{font-size:15px}
.outline-mini .field.slim{margin-top:8px}
.teacher-controls{display:flex;gap:12px;margin:18px 0 23px}
.teacher-controls>div{background:#fff;border:1px solid #d5e0e6;display:flex;gap:22px;align-items:center;justify-content:space-between;padding:10px 14px;min-width:220px;font-size:14px}
.teacher-tabs{display:flex;border-bottom:1px solid #becfd9;margin-bottom:16px;gap:3px}
.teacher-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;color:#698296;padding:10px 16px;font-size:14px}
.teacher-tabs button.active{border-color:#b99449;color:#173a55;font-weight:700}
.teacher-tabs span{font-size:11px;color:#8ea2ae;margin-left:8px}
@media(max-width:1080px){.group-columns{grid-template-columns:1fr}.member-row{grid-template-columns:1fr auto auto}}
@media(max-width:760px){.step-line{grid-template-columns:34px 1fr;gap:10px}.step-line .btn{grid-column:2;width:max-content}.exercise-fields{grid-template-columns:1fr}.group-strip{flex-wrap:wrap}.teacher-controls{flex-wrap:wrap}.teacher-tabs{overflow:auto}.member-row{grid-template-columns:1fr auto}.member-row .pill:last-child{display:none}}

.material-card.background{grid-column:1/-1;min-height:112px;background:#f9fbfc}
.material-card.background .id{display:none}
.material-card.background h3{margin-top:0}
.material-jump{display:flex;align-items:center;gap:7px;flex-wrap:wrap;position:sticky;top:0;z-index:5;background:var(--paper);padding:9px 0 12px;margin:-2px 0 5px;border-bottom:1px solid var(--line)}
.material-jump-link{border:1px solid #c5d2db;border-radius:3px;background:#fff;color:var(--ink);padding:7px 11px;min-width:45px;font-size:13px;font-weight:700;line-height:1.35}
.material-jump-link:hover:not(:disabled){border-color:#527995;background:#eef4f7}
.material-jump-link.active{background:var(--navy);border-color:var(--navy);color:#fff}
.material-jump-link:disabled{background:#edf1f3;color:#8293a0;border-color:#d7e0e5;cursor:not-allowed;font-weight:500}
.material-jump-link:focus-visible{outline:3px solid #c7a350;outline-offset:2px}
.material-page-turn{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}
