:root{--ink:#152b3d;--navy:#102535;--navy-soft:#1c3a4e;--teal:#007e77;--teal-light:#e4f3ef;--paper:#f2f5f4;--white:#fff;--muted:#61717b;--line:#dbe4e5;--red:#a1392e;--amber:#7b591c;--radius:9px;--shadow:0 12px 34px #152b3d0b;font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;color:var(--ink);font-size:15px;line-height:1.65;background:var(--paper)}*{box-sizing:border-box}body{margin:0}a{color:var(--teal);text-underline-offset:3px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,a,input,select,textarea,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #40b9aa}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-.7px;line-height:1.3;margin-bottom:12px}h2{font-size:20px;line-height:1.4;margin-bottom:15px}h3{font-size:16px;line-height:1.5;margin-bottom:8px}p{margin-bottom:12px}small,.small{font-size:12px}.muted{color:var(--muted)}.skip-link{position:fixed;left:15px;top:-80px;z-index:200;background:#fff;padding:12px}.skip-link:focus{top:15px}.startup{padding:12vh 8vw}.brand-mark{display:inline-grid;place-items:center;background:var(--teal);color:white;width:38px;height:38px;font-family:Georgia,serif;font-size:27px;font-weight:bold;border-radius:2px}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#d7e5e8;position:sticky;top:0;height:100vh;padding:28px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 6px 26px;border-bottom:1px solid #ffffff1c}.brand strong{display:block;color:#fff;font-family:Georgia,"Microsoft YaHei",serif;font-size:25px;letter-spacing:2px;line-height:1.3}.brand small{font-size:10px;letter-spacing:1.3px;color:#90adb7}.school-label{padding:22px 9px 15px;color:#a8c2cb;font-size:12px}.nav-list{display:grid;gap:5px}.nav-button{display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none;color:#bfd0d7;padding:12px 13px;border-radius:6px;min-height:46px}.nav-button:hover{background:#ffffff0c;color:#fff}.nav-button.active{background:#1d4c56;color:#fff;box-shadow:inset 3px 0 #57cbb4}.nav-symbol{font-family:Georgia,serif;width:24px;font-size:19px;color:#77b8ba}.sidebar-foot{margin-top:auto;padding-top:25px;font-size:11px;color:#91aab5}.sidebar-foot p{margin-bottom:7px}.workspace{min-width:0}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 38px;background:var(--white);border-bottom:1px solid var(--line)}.topbar-title{font-size:12px;letter-spacing:1px;color:var(--muted)}.account{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}.account-name{font-weight:bold}.account-role{color:var(--muted);margin-left:7px}.main{max-width:1440px;padding:32px 38px 52px;margin:0 auto}.eyebrow{font-family:Georgia,serif;color:var(--teal);font-size:11px;font-weight:bold;letter-spacing:2px;margin-bottom:9px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading p{max-width:780px;color:var(--muted);font-size:13px;margin-bottom:0}.btn{border:1px solid var(--line);background:white;border-radius:6px;padding:9px 15px;font-weight:600;color:var(--ink);line-height:1.5;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px}.btn:hover{background:#f1f7f5;border-color:#9dbcb7}.btn.primary{background:var(--teal);color:#fff;border-color:var(--teal)}.btn.primary:hover{background:#00645f}.btn.danger{color:var(--red);border-color:#e9c9c4;background:#fff}.btn.compact{padding:5px 10px;font-size:12px;min-height:31px}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted);padding:5px 8px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:20px;min-width:0}.panel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}.panel-top h2,.panel-top h3{margin-bottom:0}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:20px;align-items:start}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}.stat{padding:20px 22px;background:white;border:1px solid var(--line);border-top:3px solid #bacdcf;border-radius:7px}.stat:first-child{border-top-color:var(--teal)}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:34px;line-height:1.25;letter-spacing:-1px;font-family:Georgia,serif;margin:7px 0}.stat-note{font-size:11px;color:var(--muted)}.banner{border:1px solid #c4ded7;background:var(--teal-light);padding:14px 17px;border-radius:7px;font-size:13px;margin-bottom:20px}.banner.warning{background:#fcf7eb;border-color:#e7d9b6;color:var(--amber)}.banner.danger{background:#fff2ef;border-color:#edccc6;color:var(--red)}.banner p:last-child{margin:0}.badge{display:inline-flex;align-items:center;font-size:11px;line-height:1.7;padding:2px 8px;border-radius:4px;background:#edf1f3;color:#4d6373;white-space:nowrap}.badge.good{background:#e5f4ed;color:#237553}.badge.pending{background:#fcf2d9;color:#835d18}.badge.test{background:#e8eef8;color:#415c87}.badge.bad{background:#f9e8e6;color:#963e31}.course-card{display:flex;flex-direction:column;min-height:265px;border-top:4px solid var(--teal)}.course-card:nth-child(2){border-top-color:#42687f}.course-number{font-size:12px;font-family:Georgia,serif;color:var(--muted);letter-spacing:2px;margin-bottom:13px}.course-card h2{font-size:22px}.course-card p{color:var(--muted);font-size:13px}.course-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;margin:5px 0 19px}.course-card .actions{margin-top:auto}.empty{padding:32px 20px;text-align:center;border:1px dashed #c8d6d9;border-radius:7px;color:var(--muted);font-size:13px}.empty strong{display:block;color:var(--ink);font-size:15px;margin-bottom:7px}.list{list-style:none;padding:0;margin:0}.list-row{padding:14px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-row strong{font-size:13px}.row-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.row-heading p{margin:0}.step-list{counter-reset:step;list-style:none;margin:0;padding:0}.step-list li{counter-increment:step;position:relative;padding:0 0 19px 35px;font-size:13px}.step-list li:before{content:counter(step);position:absolute;left:0;top:0;background:#eaf3f0;color:var(--teal);width:23px;height:23px;display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif}.step-list li:last-child{padding-bottom:0}.step-list span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.field{display:block;margin-bottom:16px}.field>span,.field-label{display:block;font-weight:bold;font-size:12px;margin-bottom:6px}.field small{display:block;color:var(--muted);margin-top:5px;font-weight:normal}.field input,.field select,.field textarea{display:block;width:100%;border:1px solid #bacbd0;border-radius:5px;padding:10px 11px;color:var(--ink);background:white;min-height:42px;transition:border .15s}.field textarea{resize:vertical;min-height:130px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal)}.field input[readonly]{background:#f5f7f7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-note{font-size:12px;color:var(--muted)}.form-message{font-size:13px;padding:10px 0;margin:0}.form-message:empty{display:none}.form-message.error{color:var(--red)}.form-message.success{color:var(--teal)}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.data-table th{font-size:11px;text-align:left;color:var(--muted);background:#f4f7f7;padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600}.data-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.data-table tbody tr:last-child td{border-bottom:0}.data-table .wrap{white-space:normal;min-width:180px;max-width:320px}.course-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.course-tabs .btn.active{color:var(--teal);border-color:var(--teal);background:var(--teal-light)}details.task{border:1px solid var(--line);border-radius:7px;margin-bottom:12px;overflow:hidden;background:#fff}details.task summary{cursor:pointer;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px;list-style:none}details.task summary::-webkit-details-marker{display:none}details.task summary:after{content:"＋";font-weight:normal;color:var(--teal);font-size:20px}details.task[open] summary:after{content:"－"}details.task[open] summary{background:#f5f9f7;border-bottom:1px solid var(--line)}.task-number{font-family:Georgia,serif;color:var(--teal);font-size:14px;margin-right:12px}.task-body{padding:20px;font-size:13px}.task-body h3{font-size:13px;margin:17px 0 7px}.task-body h3:first-child{margin-top:0}.text-block{white-space:pre-wrap;overflow-wrap:anywhere}.task-body ul,.source-list{padding-left:21px}.task-body li{margin-bottom:5px}.submission-text{background:#f4f7f7;padding:15px;border-radius:5px;font-size:13px;max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.review-grid{display:grid;grid-template-columns:125px 1fr;gap:16px;align-items:start}.review-grid textarea{min-height:85px}.evaluation{padding:13px 15px;border-left:3px solid var(--teal);background:#f2f8f4;font-size:13px;margin-top:12px}.evaluation.failed{border-left-color:#ba9446;background:#faf7ef}.evaluation p:last-child{margin:0}.assistant-shell{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.assistant-output{white-space:pre-wrap;font-size:14px;line-height:1.95;overflow-wrap:anywhere}.assistant-output:empty{display:none}.assistant-answer h3{color:var(--teal);font-size:13px;text-transform:uppercase;letter-spacing:1px}.assistant-answer{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.source-list{font-size:12px;overflow-wrap:anywhere}.source-list li{padding:5px 0}.tag-row{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.auth-layout{display:grid;grid-template-columns:minmax(330px,.85fr) minmax(400px,1.15fr);min-height:100vh}.auth-aside{background:var(--navy);color:white;padding:50px 55px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-aside:after{content:"NGF";font-family:Georgia,serif;font-weight:bold;font-size:220px;line-height:1;color:#ffffff05;position:absolute;bottom:160px;left:10px;transform:rotate(-90deg);pointer-events:none}.auth-aside .brand{border:none;padding:0}.auth-story{margin:60px 0;position:relative;z-index:1}.auth-story .eyebrow{color:#69c7bb}.auth-story h1{font-size:40px;line-height:1.5;font-weight:500;letter-spacing:1px}.auth-story p{color:#a6bec8;max-width:320px;font-size:14px}.auth-footer{font-size:11px;color:#a6bec8;border-top:1px solid #ffffff1c;padding-top:22px}.auth-main{padding:60px 40px;display:flex;align-items:center;justify-content:center}.auth-card{width:100%;max-width:410px}.auth-card h2{font-size:25px}.auth-card>.muted{font-size:13px;margin-bottom:28px}.auth-card .btn.primary{width:100%;margin-top:8px}.auth-hint{border-top:1px solid var(--line);padding-top:18px;margin-top:25px;font-size:12px;color:var(--muted)}.notice{position:fixed;right:24px;bottom:24px;max-width:min(520px,calc(100vw - 40px));padding:14px 20px;background:var(--navy);color:white;border-left:4px solid #63d0b9;box-shadow:0 12px 40px #0003;border-radius:7px;z-index:100;font-size:13px}.notice.error{border-left-color:#e68c75}.verification{max-width:760px;margin:40px auto;padding:0 22px}.verification .brand{background:var(--navy);padding:25px;border-radius:8px 8px 0 0}.verification .panel{border-top-left-radius:0;border-top-right-radius:0}.verification dl{display:grid;grid-template-columns:120px 1fr;gap:15px;font-size:13px}.verification dt{color:var(--muted)}.verification dd{margin:0;overflow-wrap:anywhere}.divider{height:1px;background:var(--line);margin:22px 0}.mono{font-family:Consolas,"Courier New",monospace;font-size:12px}.busy-line{color:var(--muted);font-size:13px;padding:20px}.required-note{font-size:11px;color:var(--muted);margin-bottom:15px}.mobile-brand{display:none}.audit-detail{max-width:500px;white-space:pre-wrap;overflow-wrap:anywhere}.footer-note{font-size:11px;color:var(--muted);margin-top:24px}.quick-questions{display:grid;gap:9px}.quick-questions button{text-align:left;font-size:12px;font-weight:normal;padding:10px 12px}.status-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;margin-top:12px}.password-wrap{max-width:650px}.public-back{display:inline-block;margin-top:12px;font-size:13px}[hidden]{display:none!important}@media(prefers-reduced-motion:no-preference){.main,.auth-card{animation:arrive .22s ease-out}@keyframes arrive{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}@media(min-width:1500px){.main{padding-top:42px}.page-heading{margin-bottom:30px}}@media(max-width:1100px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:22px 13px}.main{padding:28px 24px}.topbar{padding:15px 24px}.grid-main,.assistant-shell{grid-template-columns:1fr}.assistant-shell>.panel:last-child{display:none}.stats{grid-template-columns:repeat(2,1fr)}.auth-aside{padding:42px 35px}.auth-story h1{font-size:32px}}@media(max-width:760px){:root{font-size:14px}.shell{display:block}.sidebar{position:static;height:auto;padding:15px 16px}.sidebar .brand{padding:0 2px 12px;border:none}.sidebar .brand strong{font-size:21px}.sidebar .brand-mark{width:31px;height:31px;font-size:23px}.school-label,.sidebar-foot{display:none}.nav-list{display:flex;overflow-x:auto;gap:5px;padding:3px 0}.nav-button{padding:9px 12px;white-space:nowrap;min-height:39px;font-size:12px}.nav-symbol{display:none}.nav-button.active{box-shadow:inset 0 -3px #57cbb4}.topbar{padding:11px 18px;min-height:57px;align-items:flex-start}.topbar-title{display:none}.account{width:100%;justify-content:flex-end;gap:5px;font-size:12px}.main{padding:24px 16px 35px}.page-heading{display:block;margin-bottom:20px}.page-heading>.actions{margin-top:13px}h1{font-size:25px}.panel{padding:19px}.stats{gap:10px}.stat{padding:16px}.stat-value{font-size:29px}.grid-two{grid-template-columns:1fr;gap:0}.form-grid,.review-grid{grid-template-columns:1fr;gap:0}.auth-layout{display:block}.auth-aside{padding:24px}.auth-story{margin:26px 0 0}.auth-story h1{font-size:27px;line-height:1.3}.auth-story p,.auth-footer,.auth-aside:after{display:none}.auth-main{padding:30px 22px;display:block}.auth-card{max-width:480px;margin:0 auto}.auth-card h2{font-size:23px}.verification{margin:20px auto}.verification dl{grid-template-columns:95px 1fr;gap:12px}.notice{right:18px;bottom:18px}.course-card{min-height:240px}.panel-top{gap:10px}.panel-top .actions{justify-content:flex-end}.task summary{font-size:13px}.task-number{margin-right:7px}.row-heading{flex-wrap:wrap}}@media print{.sidebar,.topbar,.btn,.notice,.skip-link{display:none!important}.shell{display:block}.main{padding:0;max-width:none}.panel{box-shadow:none;break-inside:avoid}.page-heading{margin-top:0}body{background:white}}
