:root{--accent: #4f46e5;--accent-dark: #4338ca;--accent-soft: #eef2ff;--bg: #f1f5f9;--card: #ffffff;--text: #0f172a;--muted: #64748b;--border: #e2e8f0}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.app{display:flex;min-height:100vh}.sidebar{width:320px;flex-shrink:0;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;overflow-y:auto;padding:20px;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand .logo{width:46px;height:46px;border-radius:11px;object-fit:cover;display:block;box-shadow:0 1px 3px #0f172a1f}.brand-title{font-size:18px;font-weight:700;letter-spacing:.5px}.brand-sub{font-size:12px;color:var(--muted)}.section{display:flex;flex-direction:column;gap:10px}.section-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;display:flex;align-items:center;gap:8px}.section-title .hint{font-weight:500;text-transform:none;letter-spacing:0;color:#94a3b8}.section-title .links{margin-left:auto;display:flex;gap:6px}.link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0}.link:hover{color:var(--accent-dark)}.sem-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.chip{padding:9px 10px;font-size:13px;cursor:pointer;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);transition:all .12s}.chip:hover{border-color:#c7cdd6}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark);font-weight:600}.field-row{display:flex;gap:10px}.field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);flex:1}.field input{padding:8px 10px;font-size:14px;color:var(--text);border:1px solid var(--border);border-radius:8px;background:#fff}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.switch{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.switch input{width:16px;height:16px;accent-color:var(--accent)}.kp-list{border:1px solid var(--border);border-radius:8px;overflow-y:auto;max-height:260px;padding:6px;display:flex;flex-direction:column;gap:4px;background:#fbfcfe}.kp-empty{color:#94a3b8;font-size:13px;text-align:center;padding:20px}.kp-group-title{font-size:11px;font-weight:700;color:var(--accent);padding:6px 6px 2px}.kp-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;font-size:13px;cursor:pointer}.kp-item:hover{background:#eef2f7}.kp-item.on{background:#fff}.kp-item input{accent-color:var(--accent)}.kp-item .kp-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.license{flex-shrink:0;border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px}.lic-row{display:flex;gap:8px}.lic-input{flex:1;padding:8px 10px;font-size:13px;border:1px solid var(--border);border-radius:8px}.lic-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.lic-btn{padding:0 14px;font-size:13px;font-weight:600;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer}.lic-btn:hover{background:var(--accent-dark)}.lic-foot{display:flex;justify-content:space-between;align-items:center;font-size:12px}.lic-hint{color:#94a3b8}.lic-msg{color:var(--accent-dark)}.lic-ok{font-size:13px;font-weight:600;color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:8px 10px;text-align:center}.lic-buy{display:flex;gap:8px}.buy-btn{flex:1;padding:9px 0;font-size:13px;font-weight:600;border:none;border-radius:8px;color:#fff;cursor:pointer}.buy-btn.alipay{background:#1677ff}.buy-btn.alipay:hover{background:#0958d9}.buy-btn.wechat{background:#07c160}.buy-btn.wechat:hover{background:#06ad56}.buy-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:50}.buy-modal{position:relative;width:300px;background:#fff;border-radius:16px;padding:24px;text-align:center;box-shadow:0 20px 50px #00000040}.buy-close{position:absolute;top:10px;right:14px;border:none;background:none;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer}.buy-close:hover{color:#475569}.buy-title{margin:0 0 14px;font-size:16px;font-weight:700;color:#0f172a}.buy-tabs{display:flex;gap:8px;margin-bottom:14px}.buy-tab{flex:1;padding:8px 0;font-size:13px;font-weight:600;border:1px solid var(--border);border-radius:8px;background:#fff;color:#64748b;cursor:pointer}.buy-tab.on{color:#fff;border-color:transparent}.buy-tab.on:first-child{background:#1677ff}.buy-tab.on:last-child{background:#07c160}.buy-qr{width:220px;height:220px;margin:0 auto;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:12px;overflow:hidden}.buy-qr img{width:220px;height:220px}.buy-spin{color:#94a3b8;font-size:13px}.buy-amount{margin:14px 0 4px;font-size:18px;font-weight:700;color:#0f172a}.buy-msg{margin:0;font-size:13px;color:var(--accent-dark);min-height:18px}.actions{display:flex;gap:10px;flex-shrink:0;position:sticky;bottom:-20px;background:var(--card);border-top:1px solid var(--border);margin:0 -20px -20px;padding:14px 20px}.btn-primary,.btn-ghost{flex:1;padding:11px;font-size:15px;font-weight:600;border-radius:9px;cursor:pointer;border:1px solid transparent}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-primary:disabled{background:#c7cdd6;cursor:not-allowed}.btn-ghost{background:#fff;border-color:var(--border);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost:disabled{color:#c7cdd6;cursor:not-allowed}.main{flex:1;padding:32px;overflow:auto}.empty{display:grid;place-content:center;gap:12px;height:70vh;text-align:center;color:#94a3b8}.empty-icon{font-size:48px}.sheet{width:210mm;min-height:297mm;margin:0 auto 24px;background:var(--card);padding:16mm 18mm;border-radius:4px;box-shadow:0 1px 3px #0f172a0f,0 8px 28px #0f172a1a;display:flex;flex-direction:column}.sheet.trial{position:relative}.sheet.trial:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='185'%3E%3Ctext x='150' y='100' fill='rgba(100,116,139,0.14)' font-size='22' font-family='sans-serif' text-anchor='middle' transform='rotate(-28 150 100)'%3E无情出题机 · 试用版%3C/text%3E%3C/svg%3E")}.sheet-title{margin:0 0 8px;font-size:22px}.sheet-meta{display:flex;gap:8px;color:var(--muted);font-size:13px;flex-wrap:wrap}.namebar{margin:14px 0 0;color:#475569;font-size:14px;border-bottom:1px dashed var(--border);padding-bottom:14px}.grid{flex:1;display:grid;grid-template-columns:repeat(var(--cols, 3),minmax(0,1fr));column-gap:24px;align-content:space-evenly;padding:8mm 0}.item{font-size:var(--qfont, 16px);line-height:1.5;white-space:nowrap;overflow:hidden;display:flex;align-items:baseline;gap:6px}.item .no{color:#94a3b8;min-width:22px;text-align:right}.item .q{color:var(--text)}.item .ans{color:var(--accent);font-weight:600}.item .blank{flex:1;border-bottom:1px solid #cbd5e1;min-width:18px;transform:translateY(-3px)}@media print{body{background:#fff}.sidebar{display:none}.main{padding:0}.sheet{box-shadow:none;margin:0;max-width:none;border-radius:0;padding:0 8mm}.answers{page-break-before:always}}
