@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap";.home-fab{z-index:100;-webkit-backdrop-filter:blur(3px)saturate(210%)brightness(110%);backdrop-filter:blur(3px)saturate(210%)brightness(110%);color:#fff;isolation:isolate;background:linear-gradient(135deg,#ffffff2e 0%,#ffffff0a 40%,#ffffff03 100%);border:1px solid #ffffff52;border-radius:999px;align-items:center;gap:0;padding:.7rem 1.1rem;text-decoration:none;transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s,border-color .28s;display:inline-flex;position:fixed;top:2rem;right:1.5rem;overflow:hidden;box-shadow:0 12px 32px #02061466,inset 0 1px 1px #ffffff73,inset 0 -1px 1px #ffffff1f}.home-fab:before{content:"";pointer-events:none;z-index:-1;border-radius:inherit;background:linear-gradient(130deg,#ffffff4d 0%,#0000 42%),radial-gradient(circle at 5% 0,#ffffff73,#0000 32%);position:absolute;inset:0}.home-fab:hover{border-color:#ffffff73;transform:scale(1.02);box-shadow:0 16px 40px #02061480,0 0 15px #50d7ff4d,inset 0 1px 1px #fff9,inset 0 -1px 1px #fff3}.home-fab-icon{flex-shrink:0;justify-content:center;align-items:center;margin:0 .15rem;font-size:1.25rem;line-height:1;display:inline-flex}.home-fab-label{opacity:0;white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;max-width:0;font-size:.8rem;font-weight:800;transition:max-width .28s cubic-bezier(.16,1,.3,1),opacity .28s,margin .28s cubic-bezier(.16,1,.3,1);overflow:hidden}.home-fab:hover .home-fab-label{opacity:1;max-width:150px;margin-left:.4rem;margin-right:.25rem}@media (width<=760px){.home-fab{top:1rem;right:1rem}}@media (prefers-reduced-motion:reduce){.home-fab{transition:none!important}.home-fab:hover{transform:none!important}.home-fab-label{transition:none!important}}:root{--page-transition-ms:.32s;--bg-page:#020617;--bg-panel:#0f172a;--bg-panel-soft:#0f172abf;--bg-control:#1e293b;--bg-control-hover:#334155;--bg-danger:#7f1d1d59;--bg-danger-hover:#7f1d1d8c;--text-main:#e2e8f0;--text-muted:#94a3b8;--text-accent:#34d399;--text-danger:#fca5a5;--border-main:#334155;--border-muted:#475569;--shadow-strong:0 20px 45px #0006}@view-transition{navigation:auto}body{min-height:100vh;color:var(--text-main);background:radial-gradient(circle at 12% 18%, #10b98129, transparent 36%), radial-gradient(circle at 88% 28%, #0ea5e924, transparent 32%), var(--bg-page);opacity:0;transition:opacity var(--page-transition-ms) ease, transform var(--page-transition-ms) ease;margin:0;font-family:Inter,sans-serif;transform:translateY(8px)}.parser-page{padding:2rem;overflow:hidden}.app-shell{flex-direction:column;gap:1rem;width:min(95vw,1400px);min-height:calc(100vh - 4rem);margin:0 auto;display:flex}.page-header{text-align:center}.page-title{letter-spacing:.01em;background:linear-gradient(90deg,#34d399,#22d3ee);color:#0000;-webkit-background-clip:text;background-clip:text;justify-content:center;align-items:center;gap:.8rem;margin:0;font-size:clamp(1.85rem,2.8vw,2.9rem);font-weight:800;line-height:1.1;display:inline-flex}.app-version-tag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;vertical-align:middle;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:.2rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.62rem;font-weight:700}.page-subtitle{color:var(--text-muted);margin:.6rem 0 0;font-size:.98rem}.file-extension{border:1px solid var(--border-main);color:var(--text-accent);background:#1e293b;border-radius:.35rem;padding:.16rem .42rem;font-size:.88rem;font-weight:600;display:inline-block}.dropzone{border:2px dashed var(--border-muted);cursor:pointer;background:#1e293b5c;border-radius:.9rem;justify-content:center;align-items:center;width:min(100%,48rem);min-height:6rem;margin:0 auto;transition:border-color .18s,background .18s,transform .18s;display:flex;box-shadow:0 10px 24px #02061759}.dropzone:hover,.dropzone.is-dragover{border-color:var(--text-accent);background:#1e293bb8;transform:translateY(-1px)}.dropzone-content{pointer-events:none;align-items:center;gap:.8rem;display:flex}.dropzone-icon{color:#64748b;width:2rem;height:2rem}.dropzone-label{color:var(--text-muted);font-weight:600}.controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;width:100%;display:flex}.controls.is-hidden{display:none}.controls-group,.viewport-tools{align-items:center;gap:.5rem;display:flex}.viewport-tools{border:1px solid var(--border-main);background:var(--bg-panel-soft);border-radius:.7rem;padding:.35rem}.viewport-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 .5rem;font-size:.74rem;font-weight:800}.btn,.icon-btn{border:1px solid var(--border-main);background:var(--bg-control);color:var(--text-main);cursor:pointer;border-radius:.58rem;font-family:inherit;transition:background .14s,border-color .14s,color .14s,transform .14s}.btn{padding:.56rem .9rem;font-size:.86rem;font-weight:600}.btn:hover,.icon-btn:hover{background:var(--bg-control-hover);border-color:#64748b}.btn:active,.icon-btn:active{transform:translateY(1px)}.btn-compact{padding:.48rem .74rem}.btn-danger{background:var(--bg-danger);color:var(--text-danger);border-color:#991b1ba6}.btn-danger:hover{background:var(--bg-danger-hover);border-color:#dc2626b3}.btn.is-success{color:var(--text-accent);border-color:#10b981a6}.icon-btn{justify-content:center;align-items:center;width:2rem;height:2rem;font-weight:700;display:inline-flex}.graph-wrapper{border:1px solid var(--border-main);background:var(--bg-panel);min-height:max(22rem,56vh);box-shadow:var(--shadow-strong);cursor:grab;border-radius:1rem;flex:1;position:relative;overflow:hidden}.graph-wrapper.is-panning{cursor:grabbing}.graph-wrapper.is-fullscreen{z-index:220;background:#020b1d;border:0;border-radius:0;width:100vw;height:100vh;min-height:100vh;position:fixed;inset:0}.graph-close-btn{z-index:3;display:none;position:absolute;top:.8rem;right:.8rem}.graph-wrapper.is-fullscreen .graph-close-btn{display:inline-flex}.graph-container{transform-origin:50%;justify-content:center;align-items:center;width:100%;height:100%;transition:transform 75ms ease-out;display:flex}.status-text{color:#64748b;margin:2rem 0 0;font-style:italic}.status-message{text-align:center;margin:1rem;font-weight:700}.status-message--loading{color:var(--text-accent)}.status-message--error{color:#f87171}.modal-open{overflow:hidden}.graph-deselect-btn{z-index:4;display:none;position:absolute;top:.8rem;left:.8rem}.graph-wrapper.is-fullscreen .graph-deselect-btn{display:inline-flex}.summary-dock{z-index:4;-webkit-backdrop-filter:blur(12px)saturate(120%);backdrop-filter:blur(12px)saturate(120%);background:#0f172a57;border:1px solid #94a3b81f;border-radius:.85rem;width:min(26rem,40vw);max-height:calc(100% - 5.5rem);padding:.8rem .9rem;position:absolute;top:4.5rem;left:.8rem;overflow:auto;box-shadow:0 10px 24px #0206173d}.summary-dock-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.6rem;display:flex}.summary-dock-title{color:var(--text-main);margin:0;font-size:.93rem;line-height:1.32}.summary-dock-subtitle{color:var(--text-accent);margin:1rem 0 .5rem;font-size:.85rem;font-weight:600}.summary-list--indirect{opacity:.8}.summary-dock.is-hidden,.graph-wrapper:not(.is-fullscreen) .summary-dock{display:none}.summary-subject{color:var(--text-muted);margin:0 0 .8rem;font-size:.86rem}.summary-list{gap:.5rem;margin:0;padding-left:1.1rem;display:grid}.summary-item{color:var(--text-main);font-size:.9rem;line-height:1.35}.summary-item.is-empty{color:var(--text-muted);margin-left:-1.1rem;list-style:none}.preset-loaders{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.preset-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;font-size:.8rem;font-weight:600}.preset-buttons{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.btn-preset{color:var(--text-accent);background:#34d3990f;border-color:#34d39959;font-size:.82rem;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;position:relative;overflow:hidden}.btn-preset:before{content:"";opacity:0;background:linear-gradient(90deg,#34d39914,#22d3ee14);transition:opacity .16s;position:absolute;inset:0}.btn-preset:hover{background:#34d3991f;border-color:#34d399a6;transform:translateY(-1px);box-shadow:0 4px 16px #34d3992e}.btn-preset:hover:before{opacity:1}.btn-preset.is-loading{opacity:.6;cursor:wait}.node-selected rect,.node-selected polygon,.node-selected circle,.node-selected ellipse{stroke:#86efac!important;stroke-width:3px!important}body.page-ready{opacity:1;transform:translateY(0)}body.page-leaving{opacity:0;transform:translateY(10px)}@media (prefers-reduced-motion:reduce){body{opacity:1;transition:none;transform:none}}#graph-container svg{transform-origin:50%;max-width:none!important}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@media (width<=720px){.parser-page{padding:1rem}.page-header{margin-top:3.5rem}.app-shell{width:100%;min-height:calc(100vh - 2rem)}.controls{flex-direction:column;align-items:stretch}.controls-group,.viewport-tools{flex-wrap:wrap;justify-content:center;width:100%}.graph-deselect-btn{top:.65rem;left:.65rem}.summary-dock{width:min(92vw,25rem);max-height:calc(100% - 3.7rem);top:3rem;left:.65rem}.graph-wrapper{min-height:58vh}.tree-modal-panel{width:96vw;max-height:92vh}}.is-hidden{display:none!important}.credit-tooltip{z-index:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-main);color:var(--text-accent);pointer-events:none;opacity:0;visibility:hidden;white-space:nowrap;background:#0f172ae6;border-radius:.6rem;padding:.5rem .8rem;font-size:.78rem;font-weight:600;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;transform:translateY(4px)translate(-50%);box-shadow:0 8px 24px #0006}.credit-tooltip.visible{opacity:1;visibility:visible;transform:translateY(0)translate(-50%)}
