:root{--bg: #0c0f14;--surface: #151a22;--surface2: #1c2330;--border: #2a3444;--text: #e8edf5;--muted: #8b97ab;--accent: #3d8bfd;--accent-dim: #2563c9;--success: #34d399;--warning: #fbbf24;--radius: 12px;--font: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y}body{margin:0;min-height:100%;min-height:100dvh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;font-family:var(--font);background:radial-gradient(1200px 600px at 10% -10%,#1a2744 0%,transparent 50%),radial-gradient(800px 400px at 100% 0%,#132032 0%,transparent 45%),var(--bg);color:var(--text);line-height:1.5;touch-action:pan-x pan-y}#root{min-height:100%;min-height:100dvh}a{color:var(--accent)}button,input,select,textarea{font-family:inherit}button{cursor:pointer}button,a.btn,input,select,textarea{touch-action:manipulation}.app-shell{max-width:1100px;margin:0 auto;padding:calc(1rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(2rem + var(--safe-bottom)) calc(1rem + var(--safe-left))}.host-page-title{margin:0 0 .65rem;font-size:clamp(1.05rem,2.8vw,1.22rem);font-weight:700;color:var(--text);padding-bottom:.45rem;border-bottom:1px solid var(--border)}.host-block{margin-bottom:.25rem}.host-card-title{margin:0 0 .65rem;font-size:1rem;font-weight:600}.host-card-nested.card h2{font-size:1.05rem}.host-subhead{margin:0 0 .35rem;font-size:.9rem;font-weight:600;color:var(--text)}.host-eval-report-grid{display:flex;flex-direction:column;gap:1rem}.host-video-actions{flex-wrap:wrap}.host-video-select{min-width:min(100%,12rem);flex:1 1 10rem}.host-review-select{width:100%;max-width:36rem;margin-top:.35rem;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.875rem}@media(max-width:640px){.app-shell--host{max-width:100%;padding-left:max(.65rem,var(--safe-left));padding-right:max(.65rem,var(--safe-right))}.host-page-title{font-size:1.05rem}}@media(min-width:641px)and (max-width:1024px){.app-shell--host{max-width:min(1180px,100%)}}@media(min-width:1025px){.app-shell--host{max-width:min(1320px,100%)}}@media(min-width:900px){.host-eval-report-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:stretch}.host-eval-report-grid>.card{display:flex;flex-direction:column;min-height:100%}}@media(min-width:641px)and (max-width:1024px)and (orientation:portrait){.host-eval-report-grid{display:flex;flex-direction:column}}.topbar{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.topbar>div:first-child{min-width:0;flex:1 1 12rem}.topbar strong{display:block;font-size:clamp(.95rem,3.5vw,1.1rem);line-height:1.3}.badge{font-size:.75rem;font-weight:600;padding:.2rem .55rem;border-radius:6px;background:var(--surface2);color:var(--muted)}.badge-host{background:#3d8bfd26;color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(1rem,3vw,1.25rem);margin-bottom:1rem}.card h2{margin:0 0 .75rem;font-size:1.05rem;font-weight:600}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:900px){.grid-2{grid-template-columns:1fr}}@media(hover:none)and (pointer:coarse){.btn,.btn-ghost,.btn-primary{min-height:44px;padding:.55rem 1rem;font-size:.9375rem}input[type=text],input[type=password],select,textarea{min-height:44px;font-size:16px}textarea{min-height:6rem}.table-eval{font-size:.9rem}.table-eval th,.table-eval td{padding:.5rem .45rem}.table-eval select{min-height:40px;font-size:16px}}.btn{border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600;font-size:.875rem;transition:background .15s,opacity .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dim)}.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:#243044}.field{margin-bottom:.75rem}.field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.25rem}input[type=text],input[type=password],select,textarea{width:100%;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}textarea{min-height:80px;resize:vertical}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(1rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(1rem + var(--safe-left))}.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:0 24px 80px #00000073}.login-brand{text-align:center;margin-bottom:1rem}.login-logo{display:block;margin:0 auto .75rem;width:120px;height:120px;object-fit:contain;border-radius:50%;border:3px solid var(--border);background:#fff}.login-brand h1{margin:0;font-size:1.25rem;line-height:1.35;font-weight:700}.login-intro{margin:0 0 1.25rem;color:var(--muted);font-size:.88rem;line-height:1.5;text-align:left}.login-footer{margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.75rem;line-height:1.45;text-align:center}.video-wrap{position:relative;background:#000;border-radius:var(--radius);overflow:hidden;aspect-ratio:16 / 9}.video-wrap video{width:100%;height:100%;display:block}.lock-banner{font-size:.8rem;color:var(--warning);margin-bottom:.5rem}.table-eval{width:100%;border-collapse:collapse;font-size:.85rem}.table-eval th,.table-eval td{border:1px solid var(--border);padding:.4rem .5rem;text-align:left}.table-eval th{background:var(--surface2);color:var(--muted);font-weight:600}.table-eval select{width:100%;border:none;background:transparent}.muted{color:var(--muted);font-size:.85rem}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;align-items:stretch}@media(max-width:520px){.row-actions{flex-direction:column}.row-actions .btn,.row-actions select,.row-actions label.btn{width:100%}}.lesson-stage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,11rem),1fr));gap:.5rem;margin-bottom:.75rem}.scroll-x{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;margin:0 -.25rem;padding:0 .25rem .25rem}.scroll-x .table-eval{width:max-content;min-width:100%;max-width:none}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}html.tablet-landscape .app-shell{max-width:1200px}html.tablet-landscape .lesson-stage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(min-width:900px){html.tablet-landscape .grid-2{grid-template-columns:1fr 1fr}}.orientation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483646;display:flex;align-items:center;justify-content:center;padding:calc(1.5rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(1.5rem + var(--safe-bottom)) calc(1rem + var(--safe-left));background:#0a0c12f7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.orientation-overlay-inner{text-align:center;max-width:22rem}.orientation-icon{font-size:3rem;line-height:1;margin-bottom:1rem;color:var(--accent);animation:orientation-nudge 1.2s ease-in-out infinite}@keyframes orientation-nudge{0%,to{transform:rotate(0)}50%{transform:rotate(-12deg)}}.orientation-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:700}.orientation-sub{margin:0;font-size:.9rem;line-height:1.45}.host-toast{position:fixed;bottom:max(1rem,var(--safe-bottom));left:50%;transform:translate(-50%);z-index:9999;background:var(--surface2);border:1px solid var(--border);padding:.65rem 1.2rem;border-radius:10px;font-size:.88rem;box-shadow:0 8px 32px #00000059;max-width:min(90vw,28rem);text-align:center;color:var(--text)}.host-readiness-table th,.host-readiness-table td{text-align:center;white-space:nowrap}.lesson-charts-stack{display:flex;flex-direction:column;gap:0}.lesson-chart-panel{min-width:0}.lesson-chart-panel--after-line{margin-top:1.75rem;padding-top:1rem;border-top:1px solid var(--border)}.lesson-chart-canvas{width:100%;min-width:0}.lesson-chart-canvas--line{height:300px}.lesson-chart-canvas--radar{height:340px}
