*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{display:flex;flex-direction:column;height:100vh}.toolbar{display:flex;gap:16px;padding:12px;background:#f5f5f5;border-bottom:1px solid #ddd;align-items:center;flex-wrap:wrap}.toolbar h1{margin:0;font-size:18px;flex:1}.github-link{color:#555;text-decoration:none;font-size:14px}.github-link:hover{color:#0969da;text-decoration:underline}.toolbar-section{display:flex;gap:8px;align-items:center}.btn{padding:6px 12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn:hover{background:#0056b3}#file-input{display:none}.viewer-container{display:flex;flex:1;overflow:hidden}.sidebar{background:#f9f9f9;border-right:1px solid #ddd;overflow-y:auto}.sidebar.hidden{display:none}.pdf-viewer{flex:1;display:flex;flex-direction:column;overflow-y:auto;background:#525659;padding:20px}.pdf-viewer .pdflight-toolbar:not(.pdflight-toolbar-top){margin-top:auto}.controls-panel{display:grid;grid-template-areas:"doc    search  config  code" "serial rows    config  code";grid-template-columns:auto auto 1fr auto;gap:12px 24px;padding:12px;background:#f5f5f5;border-top:1px solid #ddd;max-height:40vh;overflow-y:auto}.control-section{display:flex;flex-direction:column;gap:8px}.control-section-doc{grid-area:doc}.control-section-search{grid-area:search}.control-section-config{grid-area:config}.control-section-code{grid-area:code}.control-section-serial{grid-area:serial}.control-section-rows{grid-area:rows}.control-section h3{margin:0;font-size:14px}.search-row{display:flex;gap:6px}.config-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center;font-size:13px}.config-grid>label:first-child,.config-grid>label:nth-child(odd){font-weight:500;color:#555}.config-checkboxes{display:flex;flex-wrap:wrap;gap:4px 12px}.config-checkboxes label{font-weight:400;color:#333;cursor:pointer}.code-snippet{margin:0;border-radius:6px;font-size:12px;max-width:420px;max-height:220px;overflow:auto}.code-snippet code{font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace}.page-stepper{display:flex;gap:8px;align-items:center}.page-stepper.hidden{display:none}.pdflight-page-container{background:#fff;margin:20px auto}.pdflight-tooltip{animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}#json-io{width:300px;height:60px;font-family:monospace;font-size:11px;resize:none}.controls-toggle{display:none}.controls-body{display:contents}@media(max-width:600px){.toolbar{font-size:14px;padding:8px}.toolbar h1{font-size:16px}.controls-panel{position:fixed;bottom:0;left:0;right:0;z-index:1000;display:flex;flex-direction:column;padding:0;background:#f5f5f5;border-top:1px solid #ddd;box-shadow:0 -2px 8px #00000026;max-height:70vh;transition:max-height .3s ease}.controls-panel.collapsed{max-height:44px;overflow:hidden}.controls-toggle{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;background:#e8e8e8;border:none;border-bottom:1px solid #ddd;font-size:14px;font-weight:600;color:#444;cursor:pointer;flex-shrink:0}.controls-toggle:active{background:#ddd}.controls-toggle-icon{transition:transform .3s ease;font-size:10px}.controls-panel.collapsed .controls-toggle-icon{transform:rotate(180deg)}.controls-body{display:flex;flex-direction:column;gap:12px;padding:12px;overflow-y:auto}.control-section-code{display:none}#json-io{width:100%}.config-grid{grid-template-columns:1fr}.viewer-container{padding-bottom:44px}}.row-output{font-family:monospace;font-size:12px;white-space:pre-wrap;max-height:150px;overflow-y:auto;background:#f5f5f5;padding:4px 8px;border-radius:4px;margin-top:4px}code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
