app-root{display:block;min-height:100vh;background:#f4f7f6;color:#18211f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-shell{width:97vw;margin:0 auto;padding:22px 0 32px}.app-topbar{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:52px;padding:0 max(1.5vw,14px);background:#050505;color:#fff;box-shadow:0 1px #ffffff14}.toolbar-left,.toolbar-actions{display:flex;align-items:center;gap:10px}.toolbar-left strong{font-size:.98rem;letter-spacing:.08em}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end}.toolbar-button,.filter-count-button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;border:1px solid #3a3a3a;border-radius:6px;padding:0 11px;background:#171717;color:#fff;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.toolbar-button:hover,.filter-count-button:hover{border-color:#767676;background:#242424}.toolbar-button:disabled{border-color:#272727;background:#101010;color:#717171;cursor:not-allowed}.toolbar-button input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.toolbar-popover-anchor{position:relative}.toolbar-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:12;display:grid;gap:8px;min-width:220px;border:1px solid #2e2e2e;border-radius:8px;background:#fff;color:#17221f;padding:10px;box-shadow:0 16px 34px #0000003d}.filter-menu button,.export-menu button{justify-content:flex-start;width:100%;border-color:transparent;background:#f4f7f6;color:#17221f}.filter-count-button{min-height:28px;border-color:#344842;background:#14312c;color:#d8fff4;font-size:.76rem}.filter-chain-popover{left:0;right:auto;min-width:280px}.graph-filter-dropdown{position:fixed;z-index:30;display:grid;gap:8px;width:min(270px,calc(100vw - 24px));border:1px solid #b9c7c3;border-radius:8px;background:#fff;color:#17221f;padding:12px;box-shadow:0 18px 38px #00000038}.graph-filter-dropdown span{color:#5c6c68;font-size:.74rem;font-weight:800;text-transform:uppercase}.graph-filter-dropdown strong{overflow-wrap:anywhere;font-size:.9rem}.graph-filter-dropdown button{min-height:34px;justify-content:flex-start;padding:0 10px;font-size:.82rem}.app-shell.has-document{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:10px;border:1px solid #1d4f49;border-radius:8px;padding:0 16px;background:#1d4f49;color:#fff;font:inherit;font-weight:700;cursor:pointer}.actions button span{display:inline-flex;min-width:38px;min-height:24px;align-items:center;justify-content:center;border-radius:6px;background:#ffffff29;font-size:.72rem;letter-spacing:0}button:disabled{border-color:#bdc9c6;background:#d7dfdd;color:#65736f;cursor:not-allowed}.upload-page{display:grid;min-height:calc(100vh - 110px);align-content:center;justify-items:center;gap:18px}app-topbar,app-upload-page,app-feature-sidebar,app-statistics-page,app-state-detection-page,app-causal-page,app-patterns-page,app-correlation-page,app-transition-kpis-page,app-lifecycle-page,app-time-perspective-page,app-graph-panels,app-state-detection-cell-modal,app-filter-modal,app-state-dialog,app-llm-config-modal{display:contents}.dropzone{display:grid;width:min(620px,100%);min-height:320px;align-content:center;justify-items:center;gap:14px;border:2px dashed #7a8f89;border-radius:8px;background:#fff;padding:28px;text-align:center;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.dropzone input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.dropzone.is-dragging{border-color:#1d4f49;background:#e9f5f1;transform:translateY(-1px)}.dropzone.is-loading{cursor:progress}.sample-imports{display:grid;width:min(860px,100%);gap:12px}.sample-imports header{display:grid;gap:4px;text-align:center}.sample-imports h1,.sample-imports p{margin:0}.sample-imports h1{font-size:1.05rem}.sample-imports p{color:#5c6c68;font-size:.92rem;font-weight:700}.sample-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sample-button{display:grid;min-height:76px;align-content:center;justify-items:start;gap:4px;border-color:#c8d3d0;background:#fff;color:#17221f;padding:12px;text-align:left}.sample-button:hover{border-color:#1d4f49;background:#eef8f5}.sample-button span{font-size:.9rem;font-weight:800}.sample-button small{color:#5c6c68;font-size:.78rem;font-weight:700}.drop-mark{width:64px;height:64px;border:2px solid #1d4f49;border-radius:8px;background:linear-gradient(#1d4f49,#1d4f49) center 19px / 22px 2px no-repeat,linear-gradient(#1d4f49,#1d4f49) center / 2px 26px no-repeat,#f1fbf8}.drop-title{font-size:1.15rem;font-weight:800}.drop-subtitle{max-width:100%;color:#5c6c68;overflow-wrap:anywhere}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.feature-sidebar{position:sticky;top:74px;grid-column:1;grid-row:1 / span 20;display:grid;gap:18px;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:14px}.feature-sidebar section{display:grid;gap:8px}.feature-sidebar h2{color:#6a7975;font-size:.74rem;text-transform:uppercase}.feature-button{justify-content:flex-start;width:100%;min-height:44px;border-color:transparent;background:transparent;color:#263632;padding:0 10px;text-align:left}.feature-button.is-selected{border-color:#1d4f49;background:#e8f3ef;color:#123c36}.feature-button:disabled{border-color:transparent;background:transparent;color:#a4afac}.feature-icon{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.feature-panel,.app-shell.has-document>.message{grid-column:2;min-width:0}.feature-panel{display:grid;gap:16px}.feature-header{display:grid;gap:4px}.feature-header h1{margin:0;font-size:1.45rem;line-height:1.2}.feature-header p{margin:0;color:#6a7975;font-weight:700;overflow-wrap:anywhere}.summary-card{display:grid;min-height:123px;align-content:space-between;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:18px}.summary-card span{color:#5c6c68;font-size:.88rem;font-weight:700;text-transform:uppercase}.summary-card strong{color:#13201d;font-size:2.7rem;line-height:1}.message{margin:18px 0 0;border-radius:8px;padding:14px 16px;font-weight:700}.error{border:1px solid #d9a48b;background:#fff4ed;color:#803a1b}.success{border:1px solid #96c3ad;background:#eef9f2;color:#1f5a3b}h2{margin:0;font-size:1.05rem;line-height:1.2}textarea{width:100%;min-height:168px;resize:vertical;border:1px solid #b9c7c3;border-radius:8px;padding:14px;background:#fbfdfc;color:#17221f;font:.92rem/1.55 SFMono-Regular,Consolas,Liberation Mono,monospace}textarea:focus{outline:2px solid #2f6f68;outline-offset:2px}.ghost-button{border-color:#b9c7c3;background:#fff;color:#1d4f49}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:#111f1c7a;padding:24px}.state-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(980px,100%);max-height:min(760px,calc(100vh - 48px));overflow:hidden;border:1px solid #cdd8d5;border-radius:8px;background:#fff;box-shadow:0 22px 60px #0d1a1738}.state-modal-header,.state-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px}.state-modal-header{border-bottom:1px solid #d7dfdd}.state-modal-title{display:flex;align-items:center;gap:10px;min-width:0}.state-modal-title h2{margin:0}.state-language-help{position:relative}.info-icon-button{display:inline-flex;width:30px;min-width:30px;min-height:30px;height:30px;align-items:center;justify-content:center;border:1px solid #aab9b5;border-radius:999px;background:#fff;color:#1d4f49;padding:0;font-size:.9rem;font-weight:900;font-style:italic}.info-icon-button:hover,.info-icon-button:focus-visible{border-color:#1d4f49;background:#e9f5f1}.state-language-popover{position:absolute;top:calc(100% + 10px);left:-44px;z-index:32;display:none;width:min(440px,calc(100vw - 72px));border:1px solid #b9c7c3;border-radius:8px;background:#fff;color:#17221f;padding:14px;box-shadow:0 18px 38px #0003}.state-language-help:hover .state-language-popover,.state-language-help:focus-within .state-language-popover{display:grid;gap:8px}.state-language-popover strong,.state-language-popover p,.state-language-popover ul{margin:0}.state-language-popover p,.state-language-popover li{color:#3f514c;font-size:.86rem;font-weight:650;line-height:1.45}.state-language-popover ul{display:grid;gap:5px;padding-left:18px}.state-language-popover code{border-radius:4px;background:#edf3f1;color:#123c36;padding:1px 4px;font-size:.82rem}.state-modal-footer{border-top:1px solid #d7dfdd;justify-content:flex-end}.state-modal-body{display:grid;grid-template-columns:minmax(190px,.34fr) minmax(360px,1fr);min-height:420px;overflow:hidden}.llm-config-modal{width:min(620px,100%)}.llm-config-body{display:grid;gap:14px;padding:18px}.llm-config-body label,.llm-state-panel label{display:grid;gap:6px}.llm-config-body span,.llm-state-panel span,.state-leading-control span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.llm-config-body select,.llm-config-body input{min-height:42px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 10px;font:inherit}.llm-status{margin:0;color:#1d4f49;font-weight:800}.preset-list{display:grid;align-content:start;gap:8px;overflow:auto;border-right:1px solid #d7dfdd;background:#f7faf9;padding:14px}.preset-option{justify-content:flex-start;width:100%;min-height:44px;border-color:transparent;background:transparent;color:#263632;text-align:left}.preset-option.is-selected{border-color:#1d4f49;background:#e6f3ef;color:#123c36}.state-editor{display:flex;min-height:0;flex-direction:column;overflow:hidden}.llm-state-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;border-bottom:1px solid #d7dfdd;background:#f7faf9;padding:12px}.state-leading-control{display:grid;gap:6px;padding:12px 12px 0}.state-leading-control select{min-height:38px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 10px;font:inherit}.state-modal textarea.llm-prompt-input{min-height:88px;height:88px;border:1px solid #b9c7c3;border-radius:8px;padding:10px}.state-modal textarea{flex:1 1 auto;height:100%;min-height:420px;border:0;border-radius:0;background:#fff}.filter-modal-body{display:grid;gap:12px;overflow:auto;padding:14px}.filter-options{display:grid;gap:8px}.filter-options label{display:flex;align-items:center;gap:8px}.filter-select{display:grid;gap:6px}.filter-select span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.filter-select select{min-height:42px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 10px;font:inherit}.time-filter-panel{display:grid;gap:14px}.time-filter-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:10px;align-items:end}.time-filter-inputs label{display:grid;gap:6px}.time-filter-inputs span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.time-filter-inputs input,.time-controls select,.performance-controls select{width:100%;min-height:42px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 10px;font:inherit}.time-filter-chart{display:block;width:100%;min-height:180px;border:1px solid #d7dfdd;border-radius:8px;background:#fbfdfc}.time-filter-area{fill:#4678a02e}.time-filter-line{fill:none;stroke:#4678a0;stroke-linecap:round;stroke-width:3}.details{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-top:18px;overflow:hidden;border:1px solid #d7dfdd;border-radius:8px;background:#d7dfdd}.details div{display:grid;gap:8px;min-height:82px;align-content:center;background:#fff;padding:16px}.details span{color:#5c6c68;font-size:.84rem;font-weight:700}.details strong{font-size:1.45rem}.state-detection-page{margin-top:18px}.state-detection-controls{display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(3,minmax(92px,.45fr)) minmax(190px,1fr) auto auto;gap:10px;align-items:end;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:14px}.state-detection-controls label{display:grid;gap:6px}.state-detection-controls span,.state-detection-summary span,.feature-table-preview header span,.som-panel header span,.som-transitions header span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.state-detection-controls select,.state-detection-controls input{width:100%;min-height:42px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 10px;font:inherit}.state-detection-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.state-detection-summary article,.feature-table-preview,.som-panel,.som-transitions{border:1px solid #d7dfdd;border-radius:8px;background:#fff}.state-detection-summary article{display:grid;gap:10px;min-height:88px;align-content:center;padding:16px}.state-detection-summary strong{font-size:1.9rem;line-height:1}.state-detection-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.9fr);gap:14px;align-items:start}.feature-table-preview,.som-panel,.som-transitions{display:grid;gap:12px;padding:14px}.feature-table-preview{grid-row:span 2}.feature-table-preview header,.som-panel header,.som-transitions header{display:flex;align-items:center;justify-content:space-between;gap:12px}.feature-table-preview header>div{display:grid;gap:4px}.table-scroll{max-width:100%;overflow:auto}.causal-table-preview .table-scroll{max-height:440px;overflow:auto;scrollbar-gutter:stable both-edges}.feature-table-preview table{width:100%;min-width:720px;border-collapse:collapse}.causal-table-preview table{width:max-content;min-width:100%}.feature-table-preview th,.feature-table-preview td{border-bottom:1px solid #e1e8e6;padding:8px 10px;color:#263632;font-size:.82rem;text-align:right;white-space:nowrap}.feature-table-preview th:first-child,.feature-table-preview td:first-child{position:sticky;left:0;background:#fff;text-align:left}.feature-table-preview thead th{color:#5c6c68;font-size:.74rem;text-transform:uppercase}.causal-page{display:grid;gap:14px;--causal-column-height: clamp(360px, calc(100vh - 260px) , 680px);--causal-section-scroll-height: clamp(320px, calc(100vh - 300px) , 640px)}.causal-header{align-items:end}.causal-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:end;justify-content:flex-end}.causal-controls label{display:grid;gap:6px}.causal-controls span,.causal-feature-palette header span,.causal-node-column header span,.causal-edge-panel header span,.causal-fit-panel header span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.causal-controls select,.causal-node-card input,.causal-node-card select,.causal-latent-add input{min-height:38px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 10px;font:inherit}.causal-message{margin:0;color:#1d4f49;font-weight:800}.causal-workbench{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.5fr);gap:14px;align-items:stretch;min-height:0}.causal-feature-palette,.causal-node-column,.causal-edge-panel,.causal-fit-panel{border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:14px}.causal-feature-palette{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:360px;height:var(--causal-column-height);gap:12px;overflow:hidden}.causal-feature-palette header,.causal-node-column header,.causal-edge-panel header,.causal-fit-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.causal-feature-list{display:grid;gap:8px;min-height:0;overflow-x:auto;overflow-y:auto;scrollbar-gutter:stable both-edges;padding-bottom:6px;padding-right:4px}.causal-feature-row{display:grid;gap:7px;min-width:max-content;border-bottom:1px solid #edf2f0;padding-bottom:8px}.causal-feature-row div,.causal-node-controls,.causal-latent-add{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.causal-feature-token{justify-content:flex-start;min-height:34px;border-color:#c7d3cf;background:#f7faf9;color:#17221f;padding:0 10px;white-space:nowrap;text-align:left}.mini-button{min-height:30px;padding:0 9px;font-size:.76rem}.causal-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-height:0}.causal-node-column{display:grid;grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:10px;min-height:360px;height:var(--causal-column-height);overflow:hidden}.causal-node-list{display:grid;align-content:start;gap:10px;min-height:0;overflow-x:hidden;overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}.causal-drop-zone{outline:2px dashed #d6e1de;outline-offset:-8px}.causal-node-card{display:grid;gap:8px;border:1px solid #d7dfdd;border-radius:8px;background:#f7faf9;padding:10px}.causal-node-card.is-latent{background:#fff8e9}.causal-node-card.is-outcome{background:#eef5ff}.causal-node-card>span{color:#5c6c68;font-size:.78rem;font-weight:800;overflow-wrap:anywhere}.causal-node-card input,.causal-latent-add input{width:100%}.causal-edge-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;overflow:hidden}.causal-edge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:var(--causal-section-scroll-height);min-height:0;overflow-x:hidden;overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}.causal-edge-grid fieldset{display:grid;gap:7px;min-width:0;border:1px solid #d7dfdd;border-radius:8px;padding:10px}.causal-edge-grid legend{color:#263632;font-size:.85rem;font-weight:900;overflow-wrap:anywhere}.causal-edge-grid label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center;color:#263632;font-size:.84rem;font-weight:700}.causal-edge-grid span{overflow-wrap:anywhere}.causal-table-preview{grid-row:auto}.causal-fit-panel{display:grid;gap:12px}.causal-fit-scroll{max-height:var(--causal-section-scroll-height);overflow:auto;border:1px solid #e1e8e6;border-radius:8px;background:#fbfdfc;scrollbar-gutter:stable both-edges}.causal-feature-list,.causal-node-list,.causal-edge-grid,.causal-table-preview .table-scroll,.causal-fit-scroll{scrollbar-color:#91a7a2 #edf2f0;scrollbar-width:thin}.causal-feature-list::-webkit-scrollbar,.causal-node-list::-webkit-scrollbar,.causal-edge-grid::-webkit-scrollbar,.causal-table-preview .table-scroll::-webkit-scrollbar,.causal-fit-scroll::-webkit-scrollbar{width:10px;height:10px}.causal-feature-list::-webkit-scrollbar-track,.causal-node-list::-webkit-scrollbar-track,.causal-edge-grid::-webkit-scrollbar-track,.causal-table-preview .table-scroll::-webkit-scrollbar-track,.causal-fit-scroll::-webkit-scrollbar-track{border-radius:8px;background:#edf2f0}.causal-feature-list::-webkit-scrollbar-thumb,.causal-node-list::-webkit-scrollbar-thumb,.causal-edge-grid::-webkit-scrollbar-thumb,.causal-table-preview .table-scroll::-webkit-scrollbar-thumb,.causal-fit-scroll::-webkit-scrollbar-thumb{border:2px solid #edf2f0;border-radius:8px;background:#91a7a2}.causal-fit-graph{display:block;min-width:100%}.causal-fit-edge{fill:none;stroke:#42635d;stroke-width:2}#causal-arrow path{fill:#42635d}.causal-fit-edge-label{fill:#263632;text-anchor:middle;font-size:12px;font-weight:900;paint-order:stroke;stroke:#fbfdfc;stroke-width:4px}.causal-fit-node rect{rx:8;fill:#f7faf9;stroke:#9cafaa}.causal-fit-node-latent rect{fill:#fff8e9;stroke:#b88925}.causal-fit-node-outcome rect{fill:#eef5ff;stroke:#426ca8}.causal-fit-node text{fill:#17221f;text-anchor:middle;font-size:12px;font-weight:900}.som-grid{display:grid;gap:7px}.som-cell{display:grid;min-height:82px;align-content:center;justify-items:center;gap:3px;border:1px solid rgba(18,60,54,.28);border-radius:8px;color:#0f2b27;padding:8px;text-align:center;cursor:pointer}.som-cell.is-empty{color:#7d8a86;background:#f6f8f7!important}.som-cell strong{font-size:.88rem}.som-cell span{font-size:1.35rem;font-weight:900;line-height:1}.som-cell em{max-width:100%;color:currentColor;font-size:.68rem;font-style:normal;font-weight:800;overflow-wrap:anywhere}.som-cell small{max-width:100%;color:currentColor;font-size:.7rem;font-weight:700;overflow-wrap:anywhere}.transition-list{display:grid;gap:8px}.transition-list p{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;margin:0;border:1px solid #e1e8e6;border-radius:8px;padding:10px}.transition-list p.is-nearby{border-color:#8fc5bc;background:#edf8f5}.transition-list span{overflow-wrap:anywhere}.transition-list strong{display:inline-flex;min-width:34px;min-height:28px;align-items:center;justify-content:center;border-radius:6px;background:#1d4f49;color:#fff}.transition-list small{color:#5c6c68;font-size:.76rem;font-weight:800;text-transform:uppercase}.state-detection-cell-modal{width:min(1380px,calc(100vw - 32px));max-height:calc(100vh - 32px)}.state-detection-cell-modal .state-modal-header p{margin:0;color:#5c6c68;font-weight:800}.state-detection-cell-tabs{border-bottom:1px solid #d7dfdd;padding:12px 16px}.state-detection-cell-body{min-height:0;overflow:auto;padding:14px}.patterns{display:grid;gap:16px;margin-top:18px}.correlation-page,.time-page,.transition-kpi-page,.lifecycle-page{display:grid;gap:14px;margin-top:18px}.correlation-header,.time-header{align-items:end}.time-controls{display:grid;grid-template-columns:minmax(180px,360px);gap:10px;align-items:end;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:14px}.time-controls label,.performance-controls label{display:grid;gap:6px}.time-controls span,.performance-controls span,.time-chart-panel header span,.performance-panel header span,.performance-summary span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.time-roundtrip-toggle{min-height:42px;align-content:center;grid-template-columns:auto minmax(0,1fr);border:1px solid #d7dfdd;border-radius:8px;background:#fbfdfc;padding:0 12px}.time-chart-panel,.performance-panel{display:grid;gap:12px;min-width:0;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:14px}.performance-controls{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr)) auto;gap:10px;align-items:end}.time-frequency-chart,.performance-chart{display:block;width:100%;min-height:260px;overflow:visible;border:1px solid #e1e8e6;border-radius:8px;background:#fbfdfc}.performance-chart{min-height:230px}.time-grid-line{stroke:#dfe8e5;stroke-width:1}.time-axis{stroke:#9cafaa;stroke-width:1.5}.time-axis-label{fill:#5c6c68;font-size:12px;font-weight:800}.time-axis-label-end{text-anchor:end}.time-frequency-area{opacity:.1}.time-frequency-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.time-legend{display:flex;flex-wrap:wrap;gap:8px}.time-legend span{display:inline-flex;align-items:center}.time-legend i{width:10px;height:10px;flex:0 0 auto;border-radius:999px}.performance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.performance-summary article{display:grid;gap:6px;min-width:0;background:#fbfdfc;padding:12px}.correlation-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.correlation-summary article,.correlation-table-panel{border:1px solid #d7dfdd;border-radius:8px;background:#fff}.correlation-summary article{display:grid;gap:8px;min-height:88px;align-content:center;padding:16px}.correlation-summary span,.correlation-table-panel header span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.correlation-summary strong{min-width:0;font-size:1.35rem;line-height:1.05;overflow-wrap:anywhere}.transition-summary strong{font-size:1.2rem}.transition-matrix-panel,.transition-table-panel,.lifecycle-search-panel,.lifecycle-detail-panel{display:grid;gap:12px;min-width:0;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:14px}.transition-matrix-panel header,.transition-table-panel header,.lifecycle-detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.transition-matrix-panel header>div,.transition-table-panel header>div,.lifecycle-detail-header>div{display:grid;gap:4px}.transition-matrix-panel h2,.transition-table-panel h2,.lifecycle-detail-header h2{margin:0;font-size:1rem}.transition-matrix-panel header span,.transition-table-panel header span,.lifecycle-search-panel span,.lifecycle-detail-header span{color:#5c6c68;font-size:.78rem;font-weight:800;text-transform:uppercase}.transition-matrix-scroll,.lifecycle-event-scroll{overflow:auto;scrollbar-color:#91a7a2 #edf2f0;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.transition-matrix-scroll{max-height:460px}.lifecycle-event-scroll{max-height:520px}.transition-matrix-panel table,.transition-table-panel table{width:max-content;min-width:100%;border-collapse:collapse}.transition-matrix-panel th,.transition-matrix-panel td,.transition-table-panel th,.transition-table-panel td{border-bottom:1px solid #e1e8e6;color:#263632;padding:9px 11px;font-size:.83rem;text-align:right;vertical-align:top;white-space:nowrap}.transition-matrix-panel thead th,.transition-table-panel thead th{position:sticky;top:0;z-index:1;background:#fff;color:#5c6c68;font-size:.74rem;text-transform:uppercase}.transition-matrix-panel th:first-child,.transition-table-panel th:first-child{position:sticky;left:0;z-index:2;max-width:280px;min-width:160px;background:#fff;overflow-wrap:anywhere;text-align:left;white-space:normal}.transition-matrix-panel td{min-width:96px;text-align:center}.transition-matrix-panel td strong,.transition-matrix-panel td span{display:block}.transition-matrix-panel td span{color:#5c6c68;font-size:.74rem;font-weight:800}.transition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.link-button{min-height:0;border:0;background:transparent;color:#1d4f49;padding:0;font-size:inherit;text-align:left;text-decoration:underline}.lifecycle-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:14px;align-items:start}.lifecycle-search-panel{position:sticky;top:74px}.lifecycle-search-panel label{display:grid;gap:6px}.lifecycle-result-list{display:grid;gap:6px;max-height:540px;overflow:auto;padding-right:2px}.lifecycle-result-list button{display:grid;min-height:48px;justify-items:start;border-color:#d7dfdd;background:#fbfdfc;color:#263632;padding:8px 10px;text-align:left}.lifecycle-result-list button.is-selected{border-color:#1d4f49;background:#e8f3ef}.lifecycle-result-list button span{color:#5c6c68;font-size:.75rem;font-weight:800}.lifecycle-timeline{display:block;width:100%;min-height:190px;overflow:visible;border:1px solid #e1e8e6;border-radius:8px;background:#fbfdfc}.lifecycle-state-band{fill:#d7ece7;stroke:#7aa59c;stroke-width:1}.lifecycle-band-label{fill:#17221f;font-size:12px;font-weight:900;pointer-events:none}.lifecycle-stock-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.lifecycle-stock-point{stroke:#fff;stroke-width:1.5}.correlation-table-panel{display:grid;gap:12px;min-width:0;padding:14px}.correlation-table-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.correlation-table-panel header>div{display:grid;gap:4px}.correlation-table-scroll{max-height:clamp(360px,calc(100vh - 330px),720px);min-height:320px;overflow:auto;scrollbar-color:#91a7a2 #edf2f0;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.correlation-table-scroll::-webkit-scrollbar{width:10px;height:10px}.correlation-table-scroll::-webkit-scrollbar-track{border-radius:8px;background:#edf2f0}.correlation-table-scroll::-webkit-scrollbar-thumb{border:2px solid #edf2f0;border-radius:8px;background:#91a7a2}.correlation-table-panel table{width:max-content;min-width:100%;border-collapse:collapse}.correlation-table-panel th,.correlation-table-panel td{border-bottom:1px solid #e1e8e6;color:#263632;padding:9px 11px;font-size:.83rem;text-align:right;white-space:nowrap}.correlation-table-panel thead th{position:sticky;top:0;z-index:1;background:#fff;color:#5c6c68;font-size:.74rem;text-transform:uppercase}.correlation-table-panel th:first-child{position:sticky;left:0;z-index:2;max-width:360px;min-width:240px;background:#fff;overflow-wrap:anywhere;text-align:left;white-space:normal}.correlation-table-panel thead th:first-child{z-index:3}.correlation-table-panel tbody td:nth-child(2){text-align:left}.correlation-value{min-width:84px;font-weight:900;text-align:center!important}.process-graph-section{margin-top:18px;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:12px}.pattern-section-header,.pattern-panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.pattern-section-header div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end}.pattern-section-header span{border:1px solid #c9d6d2;border-radius:999px;background:#fff;color:#36534d;padding:6px 10px;font-size:.78rem;font-weight:800}.pattern-explorer-toggle{min-height:32px;padding:0 12px}.pattern-explorer{min-width:0;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:12px}.pattern-explorer-scroll{max-height:clamp(420px,calc(100vh - 285px),760px);overflow:auto;scrollbar-color:#91a7a2 #edf2f0;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.pattern-explorer-scroll::-webkit-scrollbar,.pattern-table-graph-scroll::-webkit-scrollbar{width:10px;height:10px}.pattern-explorer-scroll::-webkit-scrollbar-track,.pattern-table-graph-scroll::-webkit-scrollbar-track{border-radius:8px;background:#edf2f0}.pattern-explorer-scroll::-webkit-scrollbar-thumb,.pattern-table-graph-scroll::-webkit-scrollbar-thumb{border:2px solid #edf2f0;border-radius:8px;background:#91a7a2}.pattern-explorer table{width:max-content;min-width:100%;border-collapse:collapse}.pattern-explorer th,.pattern-explorer td{border-bottom:1px solid #e1e8e6;vertical-align:top}.pattern-explorer thead th{position:sticky;top:0;z-index:1;background:#fff;color:#5c6c68;padding:10px 12px;font-size:.74rem;text-align:left;text-transform:uppercase}.pattern-explorer thead th:first-child{z-index:3}.pattern-explorer tbody th{position:sticky;left:0;z-index:2;display:grid;min-width:210px;max-width:260px;gap:7px;background:#fff;padding:14px 12px;text-align:left}.pattern-explorer tbody th strong{color:#13201d;font-size:1.35rem;line-height:1}.pattern-explorer tbody th span,.pattern-explorer tbody th em,.pattern-explorer tbody th small{min-width:0;overflow-wrap:anywhere}.pattern-explorer tbody th span{color:#1d4f49;font-size:.76rem;font-weight:900;text-transform:uppercase}.pattern-explorer tbody th em{color:#263632;font-style:normal;font-weight:800}.pattern-explorer tbody th small{color:#6a7975;font-size:.76rem;font-weight:800}.pattern-explorer td{min-width:720px;padding:10px 12px}.pattern-table-graph-scroll{max-width:min(940px,calc(97vw - 560px));min-width:560px;overflow:auto;border:1px solid #e1e8e6;border-radius:8px;background:#fbfdfc}.pattern-graph-compact{min-width:620px}.pattern-graph-compact .graph-edge-label{font-size:10px}.pattern-graph-compact .graph-node text{font-size:10px}.pattern-panel{display:grid;gap:14px;min-width:0;border:1px solid #d7dfdd;border-radius:8px;background:#fff;padding:16px}.view-toggle{display:inline-flex;overflow:hidden;border:1px solid #b9c7c3;border-radius:8px;background:#f4f8f6}.mode-button{min-height:34px;border:0;border-radius:0;background:transparent;color:#36534d;padding:0 12px;font-size:.88rem}.mode-button.is-selected{background:#1d4f49;color:#fff}.pattern-control{display:grid;gap:7px}.pattern-select{width:100%;min-height:42px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 12px;font:inherit}.pattern-select:focus{outline:2px solid #2f6f68;outline-offset:2px}.pattern-text-view{display:grid;gap:14px}.pattern-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #d7dfdd;border-radius:8px;background:#d7dfdd}.pattern-stats div{display:grid;gap:5px;min-width:0;background:#fbfdfc;padding:12px}.pattern-stats dd{min-width:0;margin:0;overflow-wrap:anywhere}.pattern-sequence{display:grid;gap:6px;max-height:220px;margin:0;overflow:auto;border:1px solid #d7dfdd;border-radius:8px;padding:10px 10px 10px 34px;background:#f9fbfa}.edge-columns{display:grid;gap:12px}.edge-list{display:grid;gap:7px;min-width:0;border-top:1px solid #d7dfdd;padding-top:12px}.edge-list p{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0;color:#263632;font-size:.86rem;overflow-wrap:anywhere}.edge-list small,.muted,.empty-patterns{color:#6a7975;font-weight:700}.empty-patterns{margin:0}.graph-scroll{overflow:auto;border:1px solid #d7dfdd;border-radius:8px;background:#fbfdfc}.graph-modal{width:100%;height:100%;max-height:none}.pattern-graph{display:block;min-width:100%}.graph-edge{stroke:#31544e;stroke-width:2}.graph-edge-eo{stroke:#4678a0;stroke-dasharray:7 5}.graph-edge-oo{stroke:#a36a25;stroke-dasharray:4 5}.graph-edge-label{fill:#263632;text-anchor:middle;font-size:11px;font-weight:800}.graph-node rect{stroke:#9cafaa;stroke-width:1;rx:8}.graph-node-control rect{fill:#e9f5f1}.graph-node-change rect{fill:#fff0da;stroke:#b45f1a;stroke-width:2}.graph-node-change text{fill:#7a3710}.graph-node-object rect{fill:#fff6e8}.graph-node text{fill:#17221f;text-anchor:middle;font-size:11px;font-weight:800}@media(max-width:780px){.app-shell{width:min(100vw - 24px,680px);padding:20px 0}.app-topbar{align-items:stretch;flex-direction:column;padding:10px 12px}.toolbar-left,.toolbar-actions{justify-content:space-between}.toolbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar-button,.toolbar-popover-anchor,.toolbar-popover-anchor>button{width:100%}.app-shell.has-document{grid-template-columns:1fr}.feature-sidebar,.feature-panel,.app-shell.has-document>.message,.details{grid-column:1}.feature-sidebar{position:static;grid-row:auto;grid-template-columns:1fr}button{flex:1 1 150px}.summary-grid,.sample-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.state-detection-controls,.state-detection-summary,.correlation-summary,.transition-summary,.time-controls,.performance-controls,.performance-summary,.transition-grid,.lifecycle-layout,.state-detection-grid{grid-template-columns:1fr}.lifecycle-search-panel{position:static}.time-filter-inputs{grid-template-columns:1fr}.causal-page{--causal-column-height: 460px;--causal-section-scroll-height: 460px}.causal-workbench,.causal-editor,.causal-edge-grid{grid-template-columns:1fr}.state-detection-controls{align-items:stretch}.som-panel,.som-transitions{min-width:0}.state-modal-body{grid-template-columns:1fr;overflow:auto}.preset-list{grid-auto-flow:column;grid-auto-columns:minmax(170px,1fr);border-right:0;border-bottom:1px solid #d7dfdd}.state-modal textarea{min-height:320px}.pattern-section-header,.pattern-panel-header{align-items:stretch;flex-direction:column}.pattern-section-header div,.view-toggle{justify-content:stretch}.pattern-section-header span,.pattern-explorer-toggle{flex:1 1 140px}.pattern-explorer tbody th{min-width:180px;max-width:220px}.pattern-explorer td{min-width:560px}.pattern-table-graph-scroll{max-width:calc(100vw - 270px);min-width:420px}.mode-button{flex:1 1 50%}}@media(max-width:430px){.summary-grid{grid-template-columns:1fr}.summary-card{min-height:96px}.sample-grid,.state-detection-summary,.performance-summary{grid-template-columns:1fr}.som-cell{min-height:74px}.transition-list p{grid-template-columns:1fr;justify-items:start}.pattern-stats{grid-template-columns:1fr}.pattern-explorer{padding:8px}.pattern-explorer tbody th{min-width:150px;max-width:170px;padding:12px 9px}.pattern-explorer td{min-width:460px;padding:8px}.pattern-table-graph-scroll{max-width:calc(100vw - 210px);min-width:320px}}*{box-sizing:border-box}html{min-height:100%;background:#f4f7f6}body{min-height:100%;margin:0}.stat-value{display:flex;min-width:0;align-items:baseline;flex-wrap:wrap;gap:.12em;overflow-wrap:anywhere}.stat-value.is-fraction{font-size:clamp(1.25rem,3vw,1.85rem);line-height:1.08}.details .stat-value.is-fraction{font-size:clamp(.95rem,1.6vw,1.2rem)}.stat-separator{color:#73827e;font-size:.75em}.filter-button-row,.filter-chips{display:flex;flex-wrap:wrap;gap:10px}.filter-actions{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{display:inline-flex;max-width:100%;align-items:center;gap:8px;border:1px solid #abc0bb;border-radius:999px;background:#eef7f4;color:#153d37;padding:5px 8px 5px 12px;font-size:.88rem;line-height:1.2}.filter-chip span{min-width:0;overflow-wrap:anywhere}.filter-chip .filter-chip-remove{min-height:24px;min-width:24px;border-radius:999px;padding:0;font-size:.82rem;line-height:1}.filter-modal{width:min(680px,100%)}.filter-modal-body{display:grid;align-content:start;gap:14px;min-height:320px;overflow:auto;padding:16px}.filter-options{display:grid;gap:6px;max-height:420px;overflow:auto}.filter-options label{display:flex;gap:8px;align-items:center}.pattern-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #d7dfdd}.pattern-tab-button{min-height:38px;border-color:transparent;border-radius:8px 8px 0 0;background:transparent;color:#36534d}.pattern-tab-button.is-selected{border-color:#b9c7c3;border-bottom-color:#fff;background:#fff;color:#123c36}.state-editor{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0}.state-leading-control{display:grid;gap:7px;border-bottom:1px solid #d7dfdd;padding:14px}.state-leading-control select{min-height:40px;border:1px solid #b9c7c3;border-radius:8px;background:#fbfdfc;color:#17221f;padding:0 12px;font:inherit}@media(max-width:780px){.pattern-tabs{justify-content:stretch}.pattern-tab-button{flex:1 1 50%}}
