:root{--bg: #f6f7f4;--surface: #ffffff;--surface-soft: #eef1ed;--surface-strong: #17211f;--text: #17211f;--muted: #68736d;--line: #d8ded7;--accent: #0a7663;--accent-strong: #064f44;--blue: #2f5f94;--amber: #a96621;--danger: #ad3a2f;--shadow: 0 16px 40px rgba(24, 34, 31, .08);color:var(--text);font-family:Aptos,Segoe UI,Microsoft YaHei,PingFang SC,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled,.file-button.disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin-top:0}h2{margin-bottom:0;font-size:28px;line-height:1.16}h3{margin-bottom:8px;font-size:20px;line-height:1.25}p{line-height:1.55}.shell{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:18px 0 52px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto minmax(240px,1fr) auto;gap:18px;align-items:center;margin:0 -2px 18px;padding:10px 2px 14px;border-bottom:1px solid var(--line);background:#f6f7f4e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand-lockup{min-width:0;display:flex;gap:10px;align-items:center}.brand-mark,.large-avatar,.avatar-button{display:inline-grid;place-items:center;border-radius:50%;background:var(--surface-strong);color:#fff;font-weight:900}.brand-mark{width:34px;height:34px}.brand-name{margin-bottom:0;color:var(--muted);font-size:13px;font-weight:900}.top-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.view-tabs{justify-self:center;display:inline-grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.view-tabs button{min-width:76px;min-height:32px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:850}.view-tabs button.active{background:var(--surface-strong);color:#fff}.status-pill,.icon-button,.avatar-button{width:36px;height:36px;flex:0 0 36px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-weight:900}.status-pill{display:grid;place-items:center}.status-pill span{width:10px;height:10px;border-radius:50%;background:var(--amber)}.status-pill.ready span{background:var(--accent)}.status-pill.error span{background:var(--danger)}.icon-button{display:inline-grid;place-items:center;font-size:20px}.icon-button.compact{width:36px;height:36px;flex-basis:36px}.avatar-button{border-radius:50%;border-color:var(--surface-strong);background:var(--surface-strong);color:#fff}.workspace,.main-panel{min-width:0}.main-panel{display:grid;gap:18px}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.learning-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:24px;align-items:center;padding:20px 0 18px;border-bottom:1px solid var(--line)}.overview-copy p:last-child{max-width:680px;margin:12px 0 0;color:var(--muted)}.overview-chart{min-width:0;display:grid;grid-template-columns:142px minmax(0,1fr);gap:14px;align-items:center}.progress-ring{width:132px;height:132px;display:grid;place-items:center;align-content:center;gap:2px;border-radius:50%;background:radial-gradient(circle at center,var(--bg) 0 55%,transparent 56%),conic-gradient(var(--accent) var(--ring-value),#dfe5df 0)}.progress-ring span{color:var(--muted);font-size:12px;font-weight:850}.progress-ring strong{font-size:30px}.overview-stats,.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{min-width:0;min-height:62px;display:grid;align-content:center;gap:5px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.metric span,.api-badge span{color:var(--muted);font-size:12px;font-weight:850}.metric strong{font-size:24px;line-height:1}.overview-foot,.soft-status,.muted-copy{color:var(--muted);font-size:13px;font-weight:750}.overview-foot{display:block;margin-top:8px}.learning-board{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:16px;align-items:start}.course-rail{display:grid;gap:8px}.course-menu-item{min-width:0;min-height:76px;display:grid;grid-template-columns:32px minmax(0,1fr) 72px 40px;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);text-align:left}.course-menu-item.active{border-color:#8ebfb5;background:#eef6f2;box-shadow:inset 3px 0 0 var(--accent)}.course-number{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:50%;background:var(--surface-soft);color:var(--muted);font-size:13px;font-weight:900}.course-menu-item.active .course-number{background:var(--accent);color:#fff}.course-menu-copy{min-width:0;display:grid;gap:4px}.course-menu-copy strong,.course-menu-copy small,.course-menu-item b{overflow-wrap:anywhere}.course-menu-copy strong{font-size:15px}.course-menu-copy small{color:var(--muted);font-size:12px;font-weight:750}.mini-progress{height:8px;overflow:hidden;border-radius:999px;background:#dde4de}.mini-progress i{height:100%;display:block;border-radius:inherit;background:var(--accent)}.course-menu-item b{color:var(--muted);font-size:13px;text-align:right}.course-card,.admin-form,.admin-card,.team-toolbar,.member-table,.notice{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.course-card{min-width:0;display:grid;gap:16px;padding:18px}.course-head,.admin-card-head,.path-admin-row,.team-toolbar,.drawer-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.course-head h3{margin-bottom:7px}.course-head p,.notice p,.account-box p,.status-box p,.admin-card p,.path-admin-row p{color:var(--muted)}.course-head p{margin-bottom:0}.progress-row{display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:10px;align-items:center}.progress-row strong{font-size:14px;text-align:right}.progress-track{height:10px;overflow:hidden;border-radius:999px;background:#dfe5df}.progress-track span{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--blue))}.course-meta{display:flex;flex-wrap:wrap;gap:8px}.course-meta span{padding:5px 8px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:12px;font-weight:850}.block-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.block-item{min-height:54px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;color:var(--text);text-align:left}.block-item span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--surface-soft);color:var(--muted);font-size:12px;font-weight:900}.block-item strong{min-width:0;overflow-wrap:anywhere}.block-item em{color:var(--muted);font-size:12px;font-style:normal;font-weight:800;white-space:nowrap}.block-item.done{border-color:#aed8ca;background:#eef8f4}.block-item.done span{background:var(--accent);color:#fff}.card-actions{display:flex;flex-wrap:wrap;gap:8px}.detail-panels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding-top:4px}.login-form,.certificate-box,.note-box,.password-form,.drawer-stack,.account-box,.import-box,.status-box{display:grid;gap:10px}.certificate-box,.note-box,.password-form,.account-box,.import-box,.status-box{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.account-box{justify-items:start}.large-avatar{width:54px;height:54px}label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:850}input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;color:var(--text);outline:none}input,select{min-height:40px;padding:8px 10px}textarea{min-height:96px;resize:vertical;padding:10px}input:focus,select:focus,textarea:focus,button:focus-visible,.file-button:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #0a766324;outline:none}.button,.file-button{min-height:38px;display:inline-grid;place-items:center;border:1px solid transparent;border-radius:8px;font-weight:850;text-decoration:none}.button{padding:0 14px}.button.primary{background:var(--accent);color:#fff}.button.primary:hover:not(:disabled){background:var(--accent-strong)}.button.secondary{border-color:#b9d3cb;background:#e8f4f0;color:var(--accent-strong)}.button.ghost{border-color:var(--line);background:var(--surface);color:var(--text)}.file-button{width:100%;padding:0 14px;border-color:#c9d8e7;background:#edf5fb;color:var(--blue)}.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.note-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.note-list li{display:grid;gap:4px;padding:8px 0;border-top:1px solid var(--line);color:var(--text);line-height:1.45}.note-list span{color:var(--muted);font-size:12px;font-weight:800}.notice{padding:16px}.notice.error,.inline-error{border-color:#e5b2ab;color:var(--danger)}.notice.compact{box-shadow:none}.inline-error,.inline-success{margin:8px 0 0;font-weight:800}.inline-success{color:var(--accent)}.utility-layer{position:fixed;inset:0;z-index:50;display:grid;justify-items:end}.utility-scrim{position:fixed;inset:0;border:0;background:#141a185c}.utility-drawer{position:relative;width:min(420px,calc(100vw - 20px));height:calc(100vh - 20px);margin:10px;overflow:auto;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--bg);box-shadow:0 24px 80px #1018163d}.drawer-head{align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.status-list,.import-summary{display:grid;gap:8px;margin:0}.status-list div,.import-summary div{min-width:0;padding:9px;border-radius:8px;background:var(--surface-soft)}.status-list dt,.import-summary dt{color:var(--muted);font-size:12px;font-weight:850}.status-list dd,.import-summary dd{margin:3px 0 0;overflow-wrap:anywhere;font-weight:900}.import-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4px}.import-summary .wide{grid-column:1 / -1}.section-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;padding-bottom:12px;border-bottom:1px solid var(--line)}.section-heading span{color:var(--muted);font-size:13px;font-weight:800}.admin-form,.admin-card{display:grid;gap:12px;padding:16px}.form-grid,.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-list,.audit-list{display:grid;gap:6px}.mini-list span{padding:7px 9px;border-radius:8px;background:var(--surface-soft);color:var(--muted);font-size:13px;font-weight:800;overflow-wrap:anywhere}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.audit-list div{display:grid;gap:4px;padding:9px 0;border-top:1px solid var(--line)}.audit-list span{color:var(--muted);font-size:12px;font-weight:800}.team-toolbar{align-items:center;padding:14px}.team-toolbar label{min-width:min(280px,100%)}.compact-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.member-table{display:grid;overflow:hidden}.table-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 110px 150px 80px 80px;gap:10px;align-items:center;padding:12px 14px;border-top:1px solid var(--line)}.table-row:first-child{border-top:0}.table-head{background:var(--surface-soft);color:var(--muted);font-size:12px;font-weight:900}.table-row span{min-width:0;overflow-wrap:anywhere}.table-row small{display:block;color:var(--muted);font-size:12px;font-weight:700}@media(max-width:980px){.learning-overview,.learning-board,.detail-panels,.admin-grid,.form-grid{grid-template-columns:1fr}.overview-chart{grid-template-columns:126px minmax(0,1fr)}.progress-ring{width:118px;height:118px}}@media(max-width:720px){.shell{width:min(100% - 20px,1180px);padding-top:8px}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:10px}.view-tabs{grid-column:1 / -1;justify-self:stretch}.view-tabs button{min-width:0}.learning-overview{gap:16px;padding-top:10px}.overview-chart{grid-template-columns:1fr}.overview-stats,.metrics,.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.course-menu-item{grid-template-columns:32px minmax(0,1fr) 42px}.course-menu-item .mini-progress{grid-column:2 / -1}.course-menu-item b{grid-column:3;grid-row:1}.block-list{grid-template-columns:1fr}.block-item{grid-template-columns:28px minmax(0,1fr)}.block-item em{grid-column:2;white-space:normal}.course-head,.admin-card-head,.path-admin-row,.team-toolbar,.section-heading{display:grid;grid-template-columns:1fr}.inline-form,.table-row,.table-head{grid-template-columns:1fr}.utility-drawer{width:calc(100vw - 16px);height:calc(100vh - 16px);margin:8px}}
