.app-shell{display:flex;height:100%;overflow:hidden;background:linear-gradient(180deg,#f8fafc,#e2e8f0)}.app-sidebar{width:320px;border-right:1px solid rgba(15,23,42,.08);background:#ffffffe6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-main{flex:1;min-width:0;min-height:0;padding:1.5rem;display:flex;align-items:stretch;justify-content:center}.sidebar{display:flex;flex-direction:column;gap:1.25rem;height:100%;padding:2rem 1.5rem;color:#0f172a}.sidebar-header{display:flex;flex-direction:column;gap:.5rem}.sidebar-title{font-size:1.5rem;margin:0}.sidebar-subtitle{margin:0;color:#475569;font-size:.95rem}.sidebar-control{display:flex;flex-direction:column;gap:.5rem}.sidebar-label{font-size:.85rem;font-weight:600;color:#475569}.sidebar select,.sidebar input{font:inherit;padding:.5rem .75rem;border-radius:.6rem;border:1px solid rgba(100,116,139,.3);background-color:#f8fafc;transition:border-color .2s ease,box-shadow .2s ease}.sidebar select:focus,.sidebar input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;outline:none}.sidebar select:disabled,.sidebar input:disabled{opacity:.6;cursor:not-allowed}.sidebar-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding-right:.25rem}.sidebar-item{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.8rem .9rem;border-radius:.9rem;border:1px solid rgba(148,163,184,.4);background:#f8fafccc;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .1s ease}.sidebar-item:hover{border-color:#2563eb66;background:#bfdbfe59}.sidebar-item--active{border-color:#2563ebcc;background:#bfdbfe99;box-shadow:0 8px 18px #2563eb26}.sidebar-item-name{font-weight:600;color:#0f172a}.sidebar-item-meta{font-size:.8rem;color:#475569}.sidebar-hint{font-size:.9rem;color:#64748b;margin:.5rem 0}.sidebar-error{font-size:.9rem;color:#dc2626;font-weight:600;margin:.5rem 0}.viewer-panel{flex:1;display:flex;flex-direction:column;gap:1rem;max-width:960px;width:100%;background:#fffffff2;border-radius:1.25rem;padding:2rem;box-shadow:0 20px 45px #0f172a14}.viewer-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.viewer-title{margin:0;font-size:1.75rem}.viewer-json-link{display:inline-flex;align-items:center;gap:.25rem;vertical-align:middle;font-weight:600;color:#2563eb;text-decoration:none;transition:color .2s ease}.viewer-json-link-text{text-decoration:underline;text-underline-offset:2px}.viewer-json-link:hover{color:#1d4ed8}.viewer-subtitle{margin:.25rem 0 0;color:#475569;font-size:.95rem}.viewer-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.viewer-controls-group{display:flex;gap:.5rem}.viewer-controls button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font:inherit;padding:.45rem .9rem;border-radius:.75rem;border:1px solid rgba(37,99,235,.4);background:#bfdbfe73;color:#1d4ed8;cursor:pointer;transition:transform .1s ease,box-shadow .2s ease,background .2s ease}.viewer-controls button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #2563eb33;background:#bfdbfeb3}.viewer-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:#1e293b}.viewer-canvas{position:relative;min-height:360px;border-radius:1.1rem;border:1px solid rgba(148,163,184,.4);overflow:hidden;background:#f8f9fa}.viewer-canvas-surface{width:100%;height:100%;display:flex;align-items:stretch;justify-content:stretch}.viewer-canvas canvas{width:100%;height:100%;cursor:grab}.viewer-canvas canvas:active{cursor:grabbing}.probe-overview{position:absolute;bottom:12px;right:12px;border-radius:8px;box-shadow:0 4px 12px #0f172a26;cursor:pointer;transition:box-shadow .2s ease}.probe-overview:hover{box-shadow:0 6px 16px #0f172a40}.viewer-download{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;padding:.5rem .75rem;border-radius:.75rem;border:1px solid rgba(37,99,235,.5);background:transparent;color:#2563eb;text-decoration:none;transition:all .2s ease;cursor:pointer}.viewer-header-actions{display:flex;gap:.5rem;align-items:center}.viewer-download:hover{background:#2563eb1a}.viewer-canvas-placeholder{height:360px;border-radius:1rem;background:repeating-linear-gradient(135deg,#e2e8f0b3,#e2e8f0b3 16px,#cbd5e1b3 16px 32px),#f8fafce6;display:flex;align-items:center;justify-content:center;color:#475569;text-align:center;padding:1rem}.viewer-issue-link{text-align:right;font-size:.85rem}.viewer-issue-link a{color:#6b7280;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}.viewer-issue-link a:hover{color:#2563eb;text-decoration:underline}.viewer-placeholder{flex:1;display:flex;align-items:center;justify-content:center;background:#ffffffd9;border-radius:1.25rem;color:#475569;box-shadow:inset 0 0 0 1px #94a3b833}.viewer-placeholder--error{color:#dc2626}@media(max-width:960px){.app-shell{flex-direction:column}.app-sidebar{width:100%;border-right:none;border-bottom:1px solid rgba(15,23,42,.08)}.app-main{padding:1rem}}:root{font-family:Inter,Segoe UI,Helvetica,Arial,sans-serif;line-height:1.4;font-weight:400;color:#0f172a;background-color:#f1f5f9;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;height:100vh;height:100dvh;overflow:hidden;background-color:inherit;color:inherit}a{color:inherit}#root{height:100%}
