:root{--bg: #f8fafc;--card: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #4f46e5;--ok: #059669;--warn: #b45309;--error: #dc2626}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--border)}.topbar h1{font-size:16px;margin:0}.wrap{max-width:900px;margin:0 auto;padding:24px 16px 48px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:4px}input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;margin-bottom:14px}button{padding:10px 18px;border:0;border-radius:8px;background:var(--primary);color:#fff;font:inherit;font-weight:600;cursor:pointer}button.link{background:none;color:var(--muted);padding:6px 10px}button:disabled{opacity:.6;cursor:default}.course{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.course:last-child{border-bottom:0}.course strong{display:block}.course span{font-size:13px;color:var(--muted)}#status{font-size:14px;font-weight:600;color:var(--ok)}#status[data-tone=warn]{color:var(--warn)}#status[data-tone=error]{color:var(--error)}#frame{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);min-height:480px}#frame iframe{display:block;width:100%;height:82vh;min-height:480px;border:0}#log{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px;color:var(--muted);max-height:160px;overflow-y:auto}details{margin-top:16px}summary{cursor:pointer;font-size:13px;color:var(--muted)}.error{color:var(--error);font-size:14px;min-height:20px}.topbar-actions{display:flex;align-items:center;gap:12px;font-size:14px}.topbar-actions a{color:var(--primary)}select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;margin-bottom:14px;background:var(--card)}input[type=file]{padding:8px;background:var(--bg)}.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.row-actions button{padding:6px 12px;font-size:13px;background:var(--bg);color:var(--text);border:1px solid var(--border)}.row-actions button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.edit-fields{display:flex;flex:1;gap:8px;margin-right:12px}.edit-fields input{margin-bottom:0}#previewSummary,#previewWarnings{font-size:14px;margin-bottom:12px}#previewSummary div{color:var(--muted);padding:2px 0}.warn{color:var(--warn);padding:2px 0}.muted{color:var(--muted);font-size:13px}#result{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}#result h3{color:var(--ok);margin:0 0 8px}.key-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.key-box code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;font-weight:600;flex:1;word-break:break-all}.key-box button{padding:6px 12px;font-size:13px;background:var(--card);color:var(--text);border:1px solid var(--border)}
