@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap);.card{background-color:var(--color-white);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);margin:0 auto;max-width:var(--max-content-width);padding:var(--spacing-xl);width:100%}.card__title{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.card__separator{background-color:var(--color-border-light);height:var(--border-width-thin);margin-bottom:var(--spacing-lg);width:100%}.button{border:var(--border-width-thin) solid #0000;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-weight:500;padding:12px 24px;transition:all var(--transition-fast)}.button--primary{background-color:var(--color-accent);color:var(--color-white)}.button--primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.button--secondary{background-color:var(--color-off-white-dark);border-color:var(--color-border-medium);color:var(--color-text-primary)}.button--secondary:hover:not(:disabled){background-color:var(--color-border-light)}.button:disabled{cursor:not-allowed;opacity:.5}.button--full-width{width:100%}.button:active:not(:disabled){transform:translateY(1px)}.textarea{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.textarea__label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500}.textarea__required{color:var(--color-accent);margin-left:2px}.textarea__field{background-color:var(--color-white);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);min-height:120px;padding:12px 16px;resize:vertical;transition:border-color var(--transition-fast)}.textarea__field:focus{border-color:var(--color-accent);outline:none}.textarea__field::placeholder{color:var(--color-text-tertiary)}.textarea__field--error{border-color:var(--color-accent)}.textarea__footer{align-items:center;display:flex;justify-content:space-between}.textarea__error{color:var(--color-accent)}.textarea__counter,.textarea__error{font-family:var(--font-mono);font-size:var(--font-size-sm)}.textarea__counter{color:var(--color-text-tertiary);margin-left:auto}.market-form{padding:var(--spacing-2xl) var(--spacing-md)}.market-form__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.market-form__examples{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.market-form__examples-label{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.market-form__example{background-color:var(--color-off-white-dark);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);padding:6px 12px;transition:all var(--transition-fast)}.market-form__example:hover{background-color:var(--color-border-light);border-color:var(--color-border-medium)}.graph-building{display:flex;flex-direction:column;min-height:100vh}.graph-building__header{background-color:var(--color-white);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;justify-content:center;padding:var(--spacing-xl) var(--spacing-md)}.graph-building__header-content{align-items:center;display:flex;gap:var(--spacing-md)}.graph-building__logo{height:48px;object-fit:contain;width:48px}.graph-building__header-text{align-items:flex-start;display:flex;flex-direction:column}.graph-building__title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:600;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.graph-building__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;letter-spacing:1px;margin:0;text-transform:uppercase}.graph-building__main{flex:1 1;padding:var(--spacing-2xl) var(--spacing-md)}.graph-building__question{margin-bottom:var(--spacing-lg)}.graph-building__question-label{color:var(--color-text-tertiary);display:block;font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.graph-building__question-text{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:500}.graph-building__status{margin-bottom:var(--spacing-lg)}.graph-building__status-badge{border-radius:var(--radius-sm);display:inline-block;font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:500;padding:6px 12px}.graph-building__status-badge--created,.graph-building__status-badge--decomposing,.graph-building__status-badge--identifying_intermediates{background-color:var(--color-warning-bg);color:#92400e}.graph-building__status-badge--complete{background-color:var(--color-success-bg);color:#166534}.graph-building__status-badge--error{background-color:var(--color-error-bg);color:#991b1b}.graph-building__logs{background-color:var(--color-near-black);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);overflow:hidden}.graph-building__logs-header{background-color:var(--color-near-black-light);border-bottom:1px solid #2a2a2a;padding:var(--spacing-sm) var(--spacing-md)}.graph-building__logs-title{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-sm)}.graph-building__logs-content{max-height:300px;overflow-y:auto;padding:var(--spacing-md)}.graph-building__log-entry{color:#a0a0a0;display:flex;font-family:var(--font-mono);font-size:var(--font-size-sm);gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.graph-building__log-icon{color:var(--color-accent);text-align:center;width:12px}.graph-building__log-step{color:#6a6a6a;min-width:120px}.graph-building__log-message{color:silver}.graph-building__log-entry--active{margin-top:var(--spacing-sm)}.graph-building__log-cursor{animation:blink 1s step-end infinite;color:var(--color-accent)}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.graph-building__complete{margin-top:var(--spacing-lg)}.graph-building__complete-message{align-items:center;background-color:var(--color-success-bg);border-radius:var(--radius-sm);color:#166534;display:flex;font-weight:500;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.graph-building__complete-icon{font-family:var(--font-mono);font-size:var(--font-size-lg)}.graph-building__stats{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(3,1fr);margin-bottom:var(--spacing-lg)}.graph-building__stat{background-color:var(--color-off-white-dark);border-radius:var(--radius-sm);padding:var(--spacing-md);text-align:center}.graph-building__stat-value{color:var(--color-accent);display:block;font-family:var(--font-mono);font-size:var(--font-size-2xl);font-weight:600}.graph-building__stat-label{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.graph-building__error{background-color:var(--color-error-bg);border-radius:var(--radius-sm);padding:var(--spacing-lg);text-align:center}.graph-building__error p{color:#991b1b;margin-bottom:var(--spacing-md)}.graph-building__error-text{color:var(--color-error);margin-bottom:var(--spacing-lg)}.news-modal__overlay{align-items:center;animation:fadeIn .15s ease;background-color:#0f0f0fb3;bottom:0;display:flex;justify-content:center;left:0;padding:var(--spacing-md);position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.news-modal{animation:slideUp .2s ease;background-color:var(--color-white);border-radius:var(--radius-lg);max-height:90vh;max-width:600px;overflow-y:auto;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.news-modal__header{align-items:center;border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;justify-content:space-between;padding:var(--spacing-lg)}.news-modal__header h2{font-size:var(--font-size-xl);margin:0}.news-modal__close{align-items:center;background-color:var(--color-off-white-dark);border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;display:flex;font-size:var(--font-size-xl);height:32px;justify-content:center;line-height:1;transition:all var(--transition-fast);width:32px}.news-modal__close:hover{background-color:var(--color-border-light);color:var(--color-text-primary)}.news-modal__content{padding:var(--spacing-lg)}.news-modal__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.news-modal__market{background-color:var(--color-off-white-dark);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.news-modal__market-label{color:var(--color-text-tertiary);display:block;font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.news-modal__market-text{color:var(--color-text-primary);font-weight:500}.news-modal__hint{color:var(--color-text-tertiary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.news-modal__factors,.news-modal__hint{margin-bottom:var(--spacing-lg)}.news-modal__factors-label{color:var(--color-text-tertiary);display:block;font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.news-modal__factors-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.news-modal__factor-tag{background-color:#b55c4a1a;color:var(--color-accent);font-family:var(--font-mono)}.news-modal__factor-more,.news-modal__factor-tag{border-radius:var(--radius-sm);font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.news-modal__factor-more{background-color:var(--color-off-white-dark);color:var(--color-text-tertiary)}.news-modal__actions{border-top:var(--border-width-thin) solid var(--color-border-light);display:flex;gap:var(--spacing-md);justify-content:flex-end;padding-top:var(--spacing-md)}.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.graph-view{display:flex;flex-direction:column;min-height:100vh}.graph-view__header{align-items:center;background-color:var(--color-white);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl)}.graph-view__header-left{align-items:center;display:flex;gap:var(--spacing-md)}.graph-view__logo{height:40px;object-fit:contain;width:40px}.graph-view__header-text{display:flex;flex-direction:column}.graph-view__title{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:600;margin-bottom:0}.graph-view__subtitle{color:var(--color-text-tertiary);font-size:var(--font-size-sm);margin:0}.graph-view__main{flex:1 1;margin:0 auto;max-width:1200px;padding:var(--spacing-xl);width:100%}.graph-view__canvas{background-color:var(--color-white);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);height:600px;margin-bottom:var(--spacing-xl);position:relative}.graph-view__canvas .react-flow{border-radius:var(--radius-lg);height:100%;width:100%}.graph-view__canvas .react-flow__attribution{display:none}.graph-view__canvas .react-flow__controls{bottom:60px;left:10px}.graph-view__canvas .react-flow__controls-button{background-color:var(--color-white);border:1px solid var(--color-border-light);border-radius:var(--radius-sm)}.graph-node,.graph-view__canvas .react-flow__controls-button:hover{background-color:var(--color-off-white)}.graph-node{border:2px solid var(--color-border-medium);border-radius:var(--radius-md);max-width:200px;min-width:150px;padding:var(--spacing-sm) var(--spacing-md);position:relative;text-align:center;transition:all .3s ease}.graph-node__title{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500;line-height:1.3}.graph-node--intermediate{background-color:var(--color-white);border:2px solid var(--color-accent);box-shadow:0 2px 8px #b55c4a26;max-width:220px;min-width:180px;padding:var(--spacing-md) var(--spacing-lg)}.graph-node--intermediate .graph-node__title{color:var(--color-accent);font-size:var(--font-size-base);font-weight:600}.graph-node--atomic{max-width:180px;min-width:140px}.graph-node--atomic.graph-node--has-intermediate{background-color:#b55c4a0d;border-color:var(--color-accent)}.graph-node--market{background-color:var(--color-near-black);border-color:var(--color-near-black);box-shadow:0 4px 16px #0003;color:var(--color-white);max-width:400px;min-width:280px;padding:var(--spacing-md) var(--spacing-lg)}.graph-node--market .graph-node__title{color:var(--color-white);font-size:var(--font-size-sm)}.graph-node__indicator{align-items:center;border:2px solid var(--color-white);border-radius:50%;display:flex;font-family:var(--font-mono);font-size:11px;font-weight:700;height:18px;justify-content:center;position:absolute;right:-8px;top:-8px;width:18px}.graph-node__indicator--positive{background-color:var(--color-success);color:#fff}.graph-node__indicator--negative{background-color:var(--color-error);color:#fff}.graph-node__effect{bottom:-8px;font-size:var(--font-size-sm);font-weight:600;left:50%;position:absolute;transform:translateX(-50%)}.graph-node__effect--up{color:var(--color-success)}.graph-node__effect--down{color:var(--color-error)}.graph-node--activated{box-shadow:0 4px 12px #00000026;transform:scale(1.05)}.graph-node--up{background-color:var(--color-success-bg);border-color:var(--color-success)}.graph-node--down{background-color:var(--color-error-bg);border-color:var(--color-error)}.graph-node--bullish{background-color:var(--color-success);border-color:var(--color-success)}.graph-node--bearish{background-color:var(--color-error);border-color:var(--color-error)}.graph-node__market-effect{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:600;margin-top:var(--spacing-xs)}.graph-node__market-effect--bullish{color:#86efac}.graph-node__market-effect--bearish{color:#fca5a5}.graph-node__market-effect--neutral{color:var(--color-text-tertiary)}.graph-view__legend{background-color:#ffffffe6;border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:var(--border-width-thin) solid var(--color-border-light);bottom:0;display:flex;gap:var(--spacing-xl);justify-content:center;left:0;padding:var(--spacing-md);position:absolute;right:0}.graph-view__legend-item{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm)}.graph-view__legend-line{height:2px;width:24px}.graph-view__legend-line--positive{background-color:var(--color-success)}.graph-view__legend-line--negative{background:repeating-linear-gradient(to right,var(--color-error),var(--color-error) 4px,#0000 4px,#0000 8px)}.graph-view__result{background-color:var(--color-white);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg)}.graph-view__result-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.graph-view__result-header h3{font-size:var(--font-size-lg);margin:0}.graph-view__result-close{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:color var(--transition-fast)}.graph-view__result-close:hover{color:var(--color-text-primary)}.graph-view__result-news{background-color:var(--color-off-white-dark);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.graph-view__result-label{color:var(--color-text-tertiary);display:block;font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.graph-view__result-text{color:var(--color-text-primary);font-size:var(--font-size-base)}.graph-view__result-effect{margin-bottom:var(--spacing-md)}.graph-view__result-badge{border-radius:var(--radius-sm);display:inline-block;font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:600;padding:8px 16px}.graph-view__result-badge--bullish{background-color:var(--color-success-bg);color:#166534}.graph-view__result-badge--bearish{background-color:var(--color-error-bg);color:#991b1b}.graph-view__result-badge--neutral{background-color:var(--color-off-white-dark);color:var(--color-text-secondary)}.graph-view__result-reasoning{color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-md)}.graph-view__result-paths{background-color:var(--color-near-black);border-radius:var(--radius-sm);padding:var(--spacing-md)}.graph-view__result-paths .graph-view__result-label{color:var(--color-text-tertiary)}.graph-view__result-path{color:#a0a0a0;font-family:var(--font-mono);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0}.graph-view__details{background-color:var(--color-white);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.graph-view__details h3{margin-bottom:var(--spacing-lg)}.graph-view__factors{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.graph-view__factor{background-color:var(--color-off-white);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--spacing-md)}.graph-view__factor--intermediate{background-color:var(--color-white);border-color:var(--color-accent);border-width:2px}.graph-view__factor-header{align-items:center;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.graph-view__factor-type{background-color:var(--color-off-white-dark);border-radius:2px;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);padding:2px 6px}.graph-view__factor-type--intermediate{background-color:#b55c4a1a;color:var(--color-accent)}.graph-view__factor-name{color:var(--color-text-primary);font-weight:600}.graph-view__factor-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.graph-view__factor-components{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);margin-bottom:var(--spacing-xs)}.graph-view__factor-rationale{color:var(--color-accent);font-size:var(--font-size-sm);font-style:italic}.graph-view__loading{color:var(--color-text-secondary);font-size:var(--font-size-lg)}.graph-view__error,.graph-view__loading{align-items:center;display:flex;height:100vh;justify-content:center}.graph-view__error{flex-direction:column;padding:var(--spacing-xl);text-align:center}.graph-view__error h2{color:var(--color-error)}.graph-view__error p{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}:root{--font-body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono","Courier New",monospace;--color-accent:#b55c4a;--color-accent-hover:#9d4d3f;--color-near-black:#0f0f0f;--color-near-black-light:#141414;--color-off-white:#fafafa;--color-off-white-dark:#f5f5f5;--color-white:#fff;--color-text-primary:#0f0f0f;--color-text-secondary:#4a4a4a;--color-text-tertiary:#8a8a8a;--color-border-light:#e5e5e5;--color-border-medium:#d0d0d0;--color-border-dark:#b0b0b0;--color-success:#22c55e;--color-success-bg:#dcfce7;--color-warning:#eab308;--color-warning-bg:#fef9c3;--color-error:#ef4444;--color-error-bg:#fee2e2;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--radius-sm:4px;--radius-md:5px;--radius-lg:6px;--transition-fast:120ms cubic-bezier(0.4,0.0,0.2,1);--transition-normal:150ms cubic-bezier(0.4,0.0,0.2,1);--transition-slow:180ms cubic-bezier(0.4,0.0,0.2,1);--max-content-width:720px;--border-width-thin:1px;--border-width-medium:1.25px;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.6}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background-color:var(--color-off-white);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--line-height-tight);margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-md)}button{background:none;cursor:pointer}button,input,textarea{border:none;font-family:inherit}input,textarea{font-size:inherit;outline:none}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-off-white-dark)}::-webkit-scrollbar-thumb{background:var(--color-border-medium);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark)}.app{display:flex;flex-direction:column;min-height:100vh}.app__header{background-color:var(--color-white);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;justify-content:center;padding:var(--spacing-xl) var(--spacing-md)}.app__header-content{align-items:center;display:flex;gap:var(--spacing-md)}.app__logo{height:48px;object-fit:contain;width:48px}.app__header-text{align-items:flex-start;display:flex;flex-direction:column}.app__title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:600;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.app__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;letter-spacing:1px;margin:0;text-transform:uppercase}.app__main{display:flex;flex:1 1;flex-direction:column}.app__footer{background-color:var(--color-white);border-top:var(--border-width-thin) solid var(--color-border-light);padding:var(--spacing-lg) var(--spacing-md);text-align:center}.app__footer-text{color:var(--color-text-tertiary);font-size:var(--font-size-sm);margin:0}
/*# sourceMappingURL=main.122d4af3.css.map*/