:root{--bg:#efe8dc;--card:#fff;--text:#292524;--muted:#78716c;--line:rgba(41,37,36,.12);--blue:#a16207;--blue2:#fef3c7;--green:#15803d;--red:#b42318;--ink:#1c1917;--cream:#f8f2e8;--shadow:0 18px 52px rgba(90,58,20,.09)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Microsoft YaHei","PingFang SC",system-ui,-apple-system,sans-serif}button,input,textarea,select{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.09em;color:var(--blue);text-transform:uppercase}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.sitebar{position:sticky;top:0;z-index:30;min-height:68px;padding:14px max(22px,calc((100vw - 1480px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:rgba(248,242,232,.92);backdrop-filter:blur(14px)}.site-brand{font-size:15px;font-weight:900;letter-spacing:.18em;color:#92400e;text-decoration:none}.sitebar nav{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.sitebar nav a{color:#57534e;text-decoration:none;font-size:13px;font-weight:700;padding:8px 12px;border-radius:999px}.sitebar nav a:hover{background:var(--ink);color:#fff}.app-header{max-width:1560px;margin:auto;padding:26px;display:flex;justify-content:space-between;align-items:center}.app-header h1{margin:2px 0;font-size:30px}.app-header nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.btn{border:0;border-radius:999px;padding:10px 15px;text-decoration:none;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--ink);color:#fff}.primary:hover{background:#44403c}.primary2{background:#d97706;color:#fff}.primary2:hover{background:#b45309}.light{background:#fff;color:#44403c;border:1px solid var(--line)}.wide{width:100%}
.workspace{max-width:1560px;margin:auto;padding:0 26px 40px;display:grid;grid-template-columns:320px 1fr;gap:18px}.sidebar{padding:16px;height:calc(100vh - 105px);overflow:auto;position:sticky;top:12px}.side-title,.section-row,.lesson-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.icon-btn,.mini{border:0;background:var(--blue2);color:var(--blue);border-radius:8px;padding:6px 8px;cursor:pointer}.course{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.course-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.lesson-item{width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;padding:9px;cursor:pointer;margin:3px 0}.lesson-item span,.lesson-item b,.lesson-item small{display:block}.lesson-item span{font-size:11px;color:var(--blue)}.lesson-item small{color:var(--muted);margin-top:2px}.lesson-item.active{background:var(--blue2);border-color:#c7d4ff}
.main{display:grid;gap:16px}.main>.card{padding:20px}.hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#fff,#fff8eb)}.hero h2{margin:4px 0 8px}.lesson-top{align-items:flex-start}.toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.activity-list{display:grid;gap:10px;margin-top:20px}.activity-card{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:14px}.activity-card .order{width:36px;height:36px;border-radius:10px;background:var(--blue2);display:grid;place-items:center;color:var(--blue);font-weight:800}.grow{flex:1}.activity-card h3{margin:5px 0}.activity-card p{margin:0;color:var(--muted)}.tags{display:flex;gap:6px}.tags span{font-size:11px;background:#fafaf9;border-radius:999px;padding:4px 8px}.activity-actions{display:flex;gap:6px;flex-wrap:wrap}.activity-actions button{border:0;background:#f5f5f4;padding:7px 9px;border-radius:999px;cursor:pointer}.danger-text{color:var(--red)!important}.empty-state{text-align:center;padding:50px;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:20px;z-index:20}.modal-card{width:min(1000px,96vw);max-height:92vh;overflow:auto;padding:24px;position:relative}.close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:28px;cursor:pointer}.big-text{min-height:330px}.modal-actions{display:flex;justify-content:flex-end;margin-top:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:13px;color:#475569;margin:10px 0}input,textarea,select{width:100%;margin-top:5px;padding:10px 11px;border:1px solid #d6dce6;border-radius:9px;background:#fff;outline:none}textarea{min-height:90px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(49,87,213,.1)}.check{display:flex;gap:8px;align-items:center}.check input{width:auto;margin:0}
.field-row{display:grid;grid-template-columns:34px 2fr 130px 1.3fr 36px;gap:8px;align-items:center;border-top:1px solid var(--line);padding:8px 0}.field-row input,.field-row select{margin:0}.field-row .x{border:0;background:#fee2e2;color:var(--red);border-radius:7px;height:36px;cursor:pointer}
.login{min-height:100vh;display:grid;place-items:center;padding:28px}.login-shell{width:min(430px,94vw)}.brand-link{display:inline-block;margin:0 0 14px;color:#92400e;text-decoration:none;font-weight:900;letter-spacing:.16em}.login-card{width:100%;padding:30px;border-radius:28px}.login-card h1{margin:6px 0 8px}.login-card .muted{line-height:1.7;margin:0 0 18px}.back-link{display:block;text-align:center;margin-top:16px;color:#78716c;text-decoration:none;font-size:13px}.back-link:hover{color:#292524}.error{color:var(--red);font-size:13px;margin:8px 0}.mobile-head{height:58px;background:var(--ink);color:white;display:flex;justify-content:space-between;align-items:center;padding:0 16px;position:sticky;top:0;z-index:10}.mobile-head a{color:#fff;text-decoration:none;font-weight:800}.mobile-head i{font-style:normal}.network-label{font-size:11px;color:#d6d3d1}.online{color:#22c55e}.offline{color:#ef4444}.student-wrap{max-width:760px;margin:18px auto 70px;padding:0 12px}.student-wrap>.card{padding:18px;margin-bottom:14px}.waiting{text-align:center;padding:50px 18px!important}.wait-icon{font-size:46px}.pill{display:inline-block;background:var(--blue2);color:#92400e;border-radius:999px;padding:6px 10px;font-size:12px}.instructions{background:#fffbeb;border-left:4px solid var(--blue);padding:12px;margin:16px 0;line-height:1.7}.field-block{border-top:1px dashed var(--line);padding:15px 0}.field-label{font-weight:800;color:#44403c}.checks,.scale{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.checks label,.scale label{display:flex;align-items:center;gap:5px;background:#fafaf9;padding:8px;border-radius:8px}.checks input,.scale input{width:auto;margin:0}.table-wrap{overflow:auto}.table-wrap table{border-collapse:collapse;min-width:650px;width:100%;margin-top:8px}.table-wrap th,.table-wrap td{border:1px solid var(--line);padding:7px}.table-wrap textarea{margin:0;min-height:60px;border:0}.success{color:var(--green);font-size:13px;margin-top:10px}
.live-grid{max-width:1560px;margin:auto;padding:0 26px 40px;display:grid;grid-template-columns:300px 1fr;gap:18px}.control{padding:16px;height:max-content;position:sticky;top:12px}.qr{width:180px;display:block;margin:auto}.center{text-align:center}.live-act{width:100%;display:flex;gap:9px;align-items:center;text-align:left;border:1px solid var(--line);background:white;border-radius:10px;padding:9px;margin:6px 0;cursor:pointer}.live-act span{width:25px;height:25px;border-radius:7px;background:#f1f5f9;display:grid;place-items:center}.live-act.active{border-color:var(--blue);background:var(--blue2)}.switchline{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px}.switchline input{width:auto}.live-grid main{display:grid;gap:16px}.live-grid main>.card{padding:18px}.live-head{display:flex;align-items:center;gap:20px}.metric{margin-left:auto;text-align:center}.metric b{display:block;font-size:32px}.metric span{font-size:12px;color:var(--muted)}.response-card{border:1px solid var(--line);border-radius:12px;margin:9px 0}.response-card summary{padding:12px;display:flex;gap:10px;cursor:pointer}.response-card summary small{margin-left:auto;color:var(--muted)}.answer{border-top:1px solid var(--line);padding:12px}.answer label{font-size:12px;color:var(--blue);font-weight:800}.answer div{line-height:1.7}
@media(max-width:900px){.sitebar{position:static;padding:12px 16px}.sitebar nav a{padding:7px 9px}.workspace,.live-grid{grid-template-columns:1fr}.sidebar,.control{position:static;height:auto}.hero,.lesson-top{align-items:flex-start;flex-direction:column}.field-row{grid-template-columns:30px 1fr}.field-row .f_type,.field-row .f_options{grid-column:2}.field-row .x{grid-column:1;grid-row:2}.form-grid{grid-template-columns:1fr}.app-header{padding:16px}.workspace,.live-grid{padding:0 12px 30px}}
.status-badge{font-size:12px;border-radius:999px;padding:7px 10px;background:#eef2f7;color:#475569}.status-badge.ok{background:#dcfce7;color:#166534}.status-badge.warn{background:#fef3c7;color:#92400e}
.mode-row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.mode-row label,.import-options label{display:flex;align-items:center;gap:6px;background:#f8fafc;border:1px solid #e4e8f0;border-radius:10px;padding:8px 10px;margin:0}.mode-row input,.import-options input{width:auto;margin:0}.preview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.preview-card{border:1px solid #e4e8f0;border-radius:14px;padding:14px;margin:11px 0;background:#fff}.preview-title>div{display:grid;grid-template-columns:32px 1fr;gap:3px 8px;align-items:center}.preview-title .num{grid-row:1/3;width:28px;height:28px;border-radius:8px;background:#ede9fe;color:#5b21b6;display:grid;place-items:center;font-weight:800}.preview-title small{color:#687386}.field-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.field-chips span{font-size:12px;border:1px solid #e4e8f0;border-radius:999px;padding:5px 8px;background:#fafafa}.field-chips i{font-style:normal;color:#6d3ed1}.mini-rationale,.rationale{background:#f8fafc;border-left:3px solid #6d3ed1;padding:9px 11px;margin-top:10px;color:#566070;font-size:13px}.rationale{margin:15px 0}.warning-box{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:10px;border-radius:10px;margin:10px 0}.import-options{margin-top:14px}
.portal{max-width:1180px;margin:0 auto;padding:48px 26px 72px}.portal-hero{background:var(--ink);color:#fff;border-radius:34px;padding:48px;display:flex;align-items:center;justify-content:space-between;gap:34px}.portal-hero h1{font-size:clamp(42px,7vw,78px);line-height:1;margin:12px 0 18px}.portal-hero p{max-width:680px;color:#e7e5e4;font-size:16px;line-height:1.9;margin:0}.portal-hero .eyebrow{color:#fcd34d}.portal-mark{width:128px;height:128px;flex:0 0 auto;border-radius:36px;background:#f59e0b;color:#1c1917;display:grid;place-items:center;font-size:64px;font-weight:900}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.portal-card{min-height:230px;padding:28px;border-radius:28px;text-decoration:none;color:var(--text);display:flex;gap:24px;border:1px solid var(--line);transition:transform .2s ease,box-shadow .2s ease}.portal-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.student-entry{background:#fff}.teacher-entry{background:#fff8e7}.portal-index{font-size:13px;color:#a8a29e;font-weight:800}.portal-card h2{font-size:28px;margin:0 0 12px}.portal-card p{color:var(--muted);line-height:1.8}.portal-card b{display:inline-block;margin-top:16px;color:#92400e}.portal-note{margin-top:22px;border:1px solid var(--line);border-radius:22px;padding:18px 22px;background:rgba(255,255,255,.55);display:flex;gap:18px;align-items:center}.portal-note span{color:var(--muted)}.portal-note code{color:#92400e}@media(max-width:720px){.sitebar nav a:nth-child(n+4){display:none}.portal{padding:24px 14px 50px}.portal-hero{padding:30px 24px}.portal-mark{display:none}.portal-grid{grid-template-columns:1fr}.portal-card{min-height:0}.portal-note{align-items:flex-start;flex-direction:column;gap:6px}}
