/* Asset kit integration is scoped to the teacher platform overview. */
.teacher-session { background: #04101d; }
.teacher-session .portal-shell { max-width: 1920px; padding: 0 18px 4px; }
.teacher-session .topbar, .teacher-session .platform-head, .teacher-session .profile-strip, .teacher-session .teacher-motion-toggle, .teacher-session .portal-footer { display: none; }
.teacher-session main { height: 100vh; height: 100dvh; min-height: 0; }
.teacher-session #platformView.teacher-mode { display: block; height: 100%; min-height: 0; overflow: hidden; }
.teacher-session #platformCards { display: none; }
.teacher-session #teacherCockpit { display: block; height: 100%; margin: 0; padding: 0; overflow: hidden; background: #04101d; border: 0; border-radius: 0; }
.ta-cockpit, .ta-cockpit * { box-sizing: border-box; }
.ta-cockpit { --ta-bg:#04101d; --ta-surface:#071b2d; --ta-cyan:#58dfff; --ta-blue:#198bff; --ta-amber:#ffc66e; --ta-risk:#ff7385; --ta-success:#53e1b2; --ta-text:#eaf6ff; --ta-muted:#94b6d2; --ta-line:#215577; color:var(--ta-text); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif; font-variant-numeric:tabular-nums; display:grid; grid-template-rows:54px 76px minmax(0,1fr); gap:8px; min-height:0; }
.ta-header { min-width:0; display:flex; align-items:center; gap:10px; border-bottom:1px solid #215e85; }
.ta-header .ta-icon { width:34px; height:34px; color:var(--ta-cyan); filter:drop-shadow(0 0 7px #228fff); }
.ta-header > div { min-width:0; display:flex; align-items:baseline; gap:17px; white-space:nowrap; }
.ta-header strong { font-size:clamp(17px,1.35vw,25px); letter-spacing:.8px; }
.ta-header span { color:#b7d7ee; font-size:16px; }
.ta-header .ta-identity { margin-left:auto; color:var(--ta-muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ta-header > button { min-height:30px; padding:0 10px; border:1px solid #235b7d; border-radius:3px; color:#b8e9ff; background:#071c2edb; font-size:11px; white-space:nowrap; }
.ta-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; min-width:0; }
.ta-kpi { position:relative; display:flex; align-items:center; gap:12px; min-width:0; padding:10px 14px; border:1px solid #215e85; background:linear-gradient(145deg,#092945,#061827); clip-path:polygon(13px 0,calc(100% - 13px) 0,100% 13px,100% calc(100% - 13px),calc(100% - 13px) 100%,13px 100%,0 calc(100% - 13px),0 13px); }
.ta-kpi .ta-icon { width:30px; height:30px; flex:0 0 auto; color:var(--ta-cyan); }
.ta-kpi.ta-alert .ta-icon { color:var(--ta-risk); }
.ta-kpi strong { font-size:clamp(24px,2vw,36px); line-height:1; }
.ta-kpi > div { min-width:0; color:#b6d3e7; font-size:13px; }
.ta-kpi small { display:block; margin-top:4px; color:var(--ta-muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ta-main { display:grid; grid-template-columns:minmax(0,1fr) clamp(340px,28vw,480px); gap:12px; min-width:0; min-height:0; }
.ta-scene { position:relative; min-width:0; min-height:0; overflow:hidden; border:1px solid #1e5779; background:#030f1c; }
.ta-caption { position:absolute; left:16px; top:13px; z-index:6; display:grid; gap:2px; color:#79c5e9; font-size:10px; letter-spacing:1.5px; text-shadow:0 1px 5px #000; }
.ta-caption b { color:#aadbf5; font-size:15px; letter-spacing:2px; }
.ta-image-space { position:absolute; inset:0; display:grid; place-items:center; }
.ta-stage { position:relative; flex:none; transform-origin:center; }
.ta-master,.ta-poster { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.ta-poster { filter:blur(2px) brightness(.55); transform:scale(1.01); opacity:1; transition:opacity .25s ease; }
.ta-master { opacity:0; transition:opacity .25s ease; }
.ta-master.is-ready { opacity:1; }
.ta-image-space[data-image-state="ready"] .ta-poster { opacity:0; }
.ta-image-loading { position:absolute; inset:0; z-index:7; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; color:#bdeeff; background:linear-gradient(180deg,#03111dcc,#03111d66 50%,#03111dcc); pointer-events:none; transition:opacity .2s ease; }
.ta-image-space[data-image-state="ready"] .ta-image-loading { opacity:0; }
.ta-image-loading i { width:28px; height:28px; border:2px solid #4bd8f655; border-top-color:#7beaff; border-radius:50%; animation:ta-image-spin 1s linear infinite; }
.ta-image-loading span { font-size:12px; letter-spacing:.4px; }
.ta-image-retry { pointer-events:auto; padding:5px 12px; border:1px solid #ff8b9a; color:#ffdce2; background:#351824; font-size:11px; cursor:pointer; }
@keyframes ta-image-spin { to { transform:rotate(360deg); } }
.ta-overlay { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.ta-overlay polygon { fill:transparent; stroke:transparent; stroke-width:8; cursor:pointer; pointer-events:all; transition:fill .2s,stroke .2s; }
.ta-overlay polygon:hover,.ta-overlay polygon.is-selected { fill:#45dfff18; stroke:#58dfff99; }
.ta-overlay polygon[data-region="intangible-craft"]:hover,.ta-overlay polygon[data-region="intangible-craft"].is-selected { fill:#ffc66e20; stroke:#ffc66eaa; }
.ta-overlay polygon[data-region="future-industry"] { stroke-dasharray:15 9; }
.ta-flow { fill:none; stroke:#80eaff; stroke-width:3; stroke-dasharray:7 52; opacity:.26; animation:ta-flow 7s linear infinite; pointer-events:none; }
.ta-flow.is-selected { opacity:.95; stroke:#b2f9ff; }
.ta-cockpit[data-paused="true"] .ta-flow { animation-play-state:paused; }
@keyframes ta-flow { to { stroke-dashoffset:-177; } }
.ta-labels { position:absolute; inset:0; pointer-events:none; }
.ta-hotspot { position:absolute; transform:translate(-50%,-50%); z-index:4; min-width:150px; padding:7px 12px; border:1px solid #4cd8ff; border-radius:3px; color:#eaf6ff; background:#061a2be8; box-shadow:0 0 18px #118ed955; pointer-events:auto; text-align:center; cursor:pointer; }
.ta-hotspot::before { content:""; position:absolute; inset:-4px; border:1px solid #4cd8ff55; pointer-events:none; animation:ta-pulse 3s ease-in-out infinite; }
.ta-hotspot strong,.ta-hotspot small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ta-hotspot strong { font-size:13px; }
.ta-hotspot small { margin-top:3px; color:#a9cee3; font-size:10px; }
.ta-hotspot[aria-pressed="true"] { border-color:#fff; box-shadow:0 0 0 2px #58dfff66,0 0 30px #168fdc99; }
.ta-hotspot.ta-culture { border-color:#ffc66e; box-shadow:0 0 18px #c28d3a44; }
.ta-hotspot.ta-planned { color:#bad2e2; border-color:#89adc4; opacity:.9; }
.ta-hotspot.ta-planned::before { border-style:dashed; }
@keyframes ta-pulse { 50% { opacity:.25; transform:scale(1.04); } }
.ta-hub { position:absolute; transform:translate(-50%,-50%); z-index:3; padding:6px 15px; border-top:1px solid #58dfff; color:#fff; background:#051726dd; box-shadow:0 0 20px #118ed944; text-align:center; pointer-events:none; white-space:nowrap; }
.ta-hub::before { content:""; position:absolute; inset:-14px -22px; border:1px solid #58dfff55; border-radius:50%; transform:rotateX(65deg); }
.ta-hub::after { content:""; display:block; color:#93dbff; font-size:8px; letter-spacing:2px; content:"TEACHING COMMAND"; }
.ta-platforms { position:absolute; bottom:10px; left:50%; z-index:6; display:flex; max-width:90%; transform:translateX(-50%); padding:4px; gap:4px; border:1px solid #1c5677; background:#041827e8; }
.ta-platforms button { padding:5px 9px; border:0; color:#9ec8e2; background:transparent; font-size:11px; white-space:nowrap; cursor:pointer; }
.ta-platforms button[aria-pressed="true"] { color:#beefff; background:#0c4c72; }
.ta-image-space[data-image-state="error"] .ta-image-loading { opacity:1; background:#130f20aa; }
.ta-image-space[data-image-state="error"] .ta-image-loading i { display:none; }
.ta-detail { position:relative; isolation:isolate; display:flex; flex-direction:column; min-width:0; min-height:0; padding:18px; border:0; background:#061a2e; }
.ta-detail .tc-frame { position:absolute; inset:0; z-index:-1; width:100%; height:100%; pointer-events:none; }
.ta-tabs { display:flex; gap:4px; margin-bottom:4px; }
.ta-tabs button { flex:1; padding:7px 4px; border:1px solid #225674; color:#94b6d2; background:#071c2d; font-size:11px; cursor:pointer; }
.ta-tabs button[aria-pressed="true"] { color:#eaf6ff; border-color:#58dfff; background:#0c3854; }
.ta-title { padding:0; border:0; background:transparent; color:var(--ta-text); text-align:left; cursor:pointer; }
.ta-title small { display:block; margin-top:5px; color:var(--ta-muted); font-size:10px; }
.ta-detail-metrics { display:grid; grid-template-columns:repeat(3,1fr); margin-top:10px; padding:10px 0; border-top:1px solid #20658d; border-bottom:1px solid #15394e; }
.ta-detail-metrics div { min-width:0; padding:0 8px; border-right:1px solid #204a66; }
.ta-detail-metrics div:first-child { padding-left:0; }.ta-detail-metrics div:last-child { border:0; }
.ta-detail-metrics span,.ta-detail-metrics b { display:block; }.ta-detail-metrics span { color:#9ebdd3; font-size:10px; }.ta-detail-metrics b { margin-top:4px; font-size:20px; }
.ta-attention { display:flex; align-items:center; gap:8px; min-height:48px; margin-top:10px; padding:8px 10px; border-left:2px solid var(--ta-cyan); color:#b9def3; background:#0b2c42; font-size:11px; line-height:1.5; }
.ta-attention .ta-icon { width:21px; flex:0 0 auto; color:var(--ta-cyan); }
.ta-list-section { display:flex; flex:1; min-height:0; flex-direction:column; margin-top:10px; }
.ta-pager { display:flex; align-items:center; gap:5px; color:#a3c0d5; font-size:11px; }.ta-list-title{flex:1}.ta-pager button { width:23px; height:21px; padding:0; border:1px solid #235b7d; color:#dff4ff; background:#0b2a43; cursor:pointer; }.ta-pager button:disabled{opacity:.35;cursor:not-allowed}.ta-page{font-size:10px;color:#94b6d2}
.ta-list { display:grid; gap:6px; margin-top:7px; }
.ta-row { display:flex; align-items:center; gap:8px; min-width:0; padding:7px 8px; border:1px solid #214e6f; color:#dff4ff; background:#051b2c; text-align:left; cursor:pointer; }
.ta-row .ta-icon { width:17px; flex:0 0 auto; color:#61dfff; }.ta-row span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }.ta-row small { color:var(--ta-success); font-size:10px; white-space:nowrap; }.ta-row.warning small { color:var(--ta-risk); }.ta-row.selected,.ta-row:hover,.ta-row:focus-visible { border-color:#58dfff; background:#0b3650; }
.ta-note { min-height:30px; margin:6px 0 0; color:#8cabbe; font-size:10px; line-height:1.5; }
.ta-enter { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:44px; margin-top:10px; border:1px solid #8cf5ff; color:#011421; background:linear-gradient(115deg,#50e9f4,#27baff 70%,#3588ff); font-size:17px; font-weight:700; clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px); cursor:pointer; }
.ta-enter .ta-icon { width:20px; color:#00223b; }.ta-enter:disabled{opacity:.45;cursor:not-allowed;}
.ta-source { margin-top:5px; color:#6e99b5; font-size:9px; text-align:right; }
.ta-teacher-figure { display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:8px; min-height:52px; margin-top:8px; padding:7px 8px; border-top:1px solid #1b526f; color:#b9d8eb; background:#061728aa; }
.ta-figure-orb { width:38px; height:38px; border:1px solid #58dfff88; border-radius:50%; background:radial-gradient(circle at 50% 35%,#b8efff 0 10%,#24739a 11% 22%,transparent 23%),linear-gradient(145deg,#0d5273,#071827); box-shadow:0 0 16px #1cbbef44; }
.ta-figure-copy { min-width:0; display:grid; gap:2px; }.ta-figure-copy b{font-size:12px;color:#eaf6ff}.ta-figure-copy span{font-size:9px;color:#789db7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ta-teacher-figure button{padding:5px 8px;border:1px solid #2b6280;color:#aac9dc;background:#09263a;font-size:10px}.ta-teacher-figure button:disabled{opacity:.5}
.ta-dialog { padding:24px; color:#dff4ff; border:1px solid #46c5f3; background:#061a2b; box-shadow:0 0 40px #0083d34d; }.ta-dialog::backdrop { background:#010915c9; }.ta-dialog button { padding:8px 20px; border:1px solid #3685a9; color:#dff4ff; background:#0b3d60; }
.ta-icon { width:24px; height:24px; display:inline-block; flex-shrink:0; }
@media (max-width:1600px){.ta-header strong{font-size:18px}.ta-header span{font-size:13px}.ta-kpi{padding:8px 10px;gap:8px}.ta-kpi strong{font-size:28px}.ta-kpi>div{font-size:11px}.ta-detail{padding:15px}.ta-hotspot{min-width:135px}.ta-hotspot strong{font-size:11px}}
@media (max-height:780px) and (min-width:901px){.ta-cockpit{grid-template-rows:48px 64px minmax(0,1fr);gap:5px}.ta-kpi{padding:6px 9px}.ta-kpi .ta-icon{width:24px;height:24px}.ta-kpi strong{font-size:23px}.ta-detail{padding:12px}.ta-attention{margin-top:6px;min-height:39px}.ta-list-section{margin-top:6px}.ta-enter{min-height:38px;margin-top:6px}.ta-title{font-size:19px}.ta-master{filter:brightness(.88)}.ta-teacher-figure{min-height:42px;margin-top:4px;padding:4px 7px}.ta-figure-orb{width:30px;height:30px}.ta-figure-copy span{display:none}}
@media (max-width:900px){.teacher-session main{height:auto;min-height:100dvh}.teacher-session #platformView.teacher-mode{height:auto;overflow:visible}.ta-cockpit{grid-template-rows:52px 70px minmax(0,1fr);min-height:100dvh;gap:7px}.ta-header strong{font-size:14px}.ta-header span,.ta-header .ta-identity{display:none}.ta-header>button{font-size:10px;padding:0 6px}.ta-kpis{gap:5px}.ta-kpi{justify-content:center;padding:5px}.ta-kpi .ta-icon,.ta-kpi small{display:none}.ta-kpi strong{font-size:22px}.ta-kpi>div{font-size:10px;text-align:center}.ta-main{display:block;min-height:0}.ta-scene{height:55vh;min-height:350px}.ta-detail{height:auto;min-height:510px;margin-top:8px}.ta-platforms{flex-wrap:wrap;justify-content:center;max-width:96%;width:96%}.ta-hotspot{min-width:102px;padding:5px 7px}.ta-hotspot strong{font-size:9px}.ta-hotspot small{font-size:8px}.ta-caption{top:10px;left:10px}.ta-caption b{font-size:12px}.ta-caption span{font-size:8px}.ta-detail{padding:14px}}
