:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#12303a;background:radial-gradient(circle at top left,rgba(133,218,232,.3),transparent 24%),linear-gradient(135deg,#558d9c,#6aaab7 42%,#3f7283);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{min-height:100vh}body{margin:0;min-width:320px}button{font:inherit}.app-shell{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid #bfd4db;background:linear-gradient(180deg,#ffffff2e,#fff0),linear-gradient(180deg,#d4edf3,#bedfe7);padding:1.5rem 1rem;overflow-y:auto}.sidebar-header{margin-bottom:1.5rem;padding:0 .5rem}.sidebar-header h1{margin:0;font-size:1.4rem}.sidebar-header p{margin:.5rem 0 0;color:#55727d;font-size:.95rem}.sidebar-nav{display:grid;gap:.9rem}.sidebar-section{display:grid;gap:.4rem}.folder-row{display:flex;align-items:center;gap:.5rem;padding:0 .5rem;color:#244654;font-weight:600}.folder-button{width:100%;border:0;background:transparent;cursor:pointer;text-align:left;border-radius:.5rem}.folder-button:hover{background:#eef2f6}.folder-icon,.file-icon{width:1rem;text-align:center;color:#5a8a94;flex:0 0 auto}.file-list{display:grid;gap:.15rem}.file-row{display:flex;align-items:center;gap:.5rem;width:100%;border:0;background:transparent;color:#355662;text-align:left;padding:.45rem .5rem .45rem 1.5rem;border-radius:.5rem;cursor:pointer;transition:background-color .12s ease,color .12s ease,transform .12s ease}.file-row:hover{background:#6ebbc933;color:#153946}.file-row.active{background:linear-gradient(180deg,#2d8697,#236d80);color:#effcff;box-shadow:inset 0 0 0 1px #6dc4d1,0 10px 24px #236d8038}.top-level-file{padding-left:.5rem}.file-label{overflow-wrap:anywhere}.content-panel{position:relative;padding:2rem;overflow-x:auto;background:linear-gradient(180deg,#d9edf2,#d4e8ed)}.content-panel:before{content:"";position:fixed;top:0;right:0;bottom:0;left:320px;z-index:0;pointer-events:none;background:radial-gradient(circle at top left,rgba(145,225,236,.2),transparent 18%),radial-gradient(circle at 85% 20%,rgba(44,124,146,.22),transparent 26%),linear-gradient(135deg,#5a95a3,#74b5c2 38%,#467f90 72%,#325c69)}.content-panel>*{position:relative;z-index:1}.doc-page{max-width:880px;margin:0 auto;background:linear-gradient(180deg,#ffffff47,#ffffff14),linear-gradient(180deg,#e8f6f9,#d9edf2);border:1px solid #8fc2cd;border-radius:.75rem;padding:2rem;box-shadow:0 18px 40px #18303a1a,inset 0 1px #ffffffbf}.doc-page h2{margin-top:0;margin-bottom:.75rem;font-size:1.8rem}.doc-page p{margin:0;color:#4a6974}.operator-meta{display:grid;gap:1rem;margin:1.5rem 0 0}.operator-meta div{padding:.9rem 1rem;border:1px solid #abd0d9;border-radius:.65rem;background:linear-gradient(180deg,#eef9fb,#dcedf2)}.operator-meta dt{margin:0 0 .25rem;font-weight:600;color:#2b505d}.operator-meta dd{margin:0;color:#153946;overflow-wrap:anywhere}.transformer-layout{display:grid;gap:1rem;margin-top:1.5rem}.field{display:grid;gap:.5rem}.format-hint{color:#365d69;font-size:.95rem}.editor-shell{display:flex;align-items:stretch;border:1px solid #9cc9d3;border-radius:.5rem;background:#f8fdfed1;overflow:hidden}.input-editor-shell{min-height:12rem;height:12rem;resize:vertical}.line-number-column{flex:0 0 auto;overflow:hidden;border-right:1px solid rgba(140,186,196,.55);background:#ddf2f7d1}.line-numbers{margin:0;padding:.75rem .6rem .75rem .75rem;color:#6c8e99;line-height:1.5;text-align:right;-webkit-user-select:none;user-select:none;will-change:transform}.editor,.select,.transformer-actions button{font:inherit}.editor{display:block;flex:1 1 auto;width:100%;min-height:0;height:100%;padding:.75rem;border:0;border-radius:0;background:transparent;color:#18303a;font-family:JetBrains Mono,IBM Plex Mono,Fira Code,ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;line-height:1.5;overflow:auto;resize:none}.editor:focus{outline:none}.editor[readonly]{background:#ebf7fac7;color:#274750}.output-error{min-height:12rem;padding:.75rem;border:1px solid #d5a5aa;border-radius:.5rem;background:#ffeff1eb;color:#8a1f2d;font-family:JetBrains Mono,IBM Plex Mono,Fira Code,ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;white-space:pre-wrap;overflow:auto}.expanded-output-viewer{min-height:12rem;padding:.75rem;border:1px solid #9cc9d3;border-radius:.5rem;background:#ebf7fac7;color:#274750;font-family:JetBrains Mono,IBM Plex Mono,Fira Code,ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;white-space:pre-wrap;overflow:auto}.expanded-output-line{min-height:1.5em}.logic-programmer-sequence{display:grid;gap:1rem}.logic-programmer-shot{display:grid;gap:.5rem}.logic-programmer-meta{display:flex;align-items:baseline;gap:.75rem}.logic-programmer-step{font-size:.84rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#45656f}.logic-programmer-step-title{font-weight:600;color:#153946;overflow-wrap:anywhere}.logic-programmer-frame-shell{width:512px;height:480px;max-width:100%;overflow:auto}.logic-programmer-frame{position:relative;width:256px;height:240px;background:url(/WIP-Integrated-Dynamics-Project/gui/logic_programmer.png) top left / 256px 256px no-repeat;image-rendering:pixelated;box-shadow:0 14px 30px #18303a2e;overflow:hidden;transform:scale(2);transform-origin:top left}.logic-programmer-overlay{position:absolute;left:0;top:0;width:256px;height:240px;font-family:JetBrains Mono,IBM Plex Mono,Fira Code,ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;color:#2d2d2d}.fit-text{display:block;position:relative;width:100%;height:100%;overflow:hidden;line-height:inherit}.fit-text-inner{position:absolute;display:inline-block;white-space:nowrap;line-height:inherit}.logic-search-overlay,.logic-clear-button-overlay,.logic-operator-canvas,.logic-element-tab,.logic-item-placeholder-label,.logic-item-placeholder-arrow,.logic-operator-dropdown-field,.logic-operator-signature-line,.logic-label-ok-icon,.logic-slot-overlay,.logic-value-box,.logic-write-card,.logic-label-field,.logic-labeller-badge{position:absolute}.logic-search-overlay{left:7px;top:5px;width:69px;height:12px;display:flex;align-items:center;padding:0 4px;background:transparent;color:#2f2f2f;font-size:10px;line-height:12px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-shadow:1px 1px 0 rgba(244,244,244,.45)}.logic-element-tab{left:19px;width:56px;height:17px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:#bdcace2e;color:#303030;box-shadow:inset 0 1px #ffffff2e,inset 0 -1px #5454541f;font-weight:400;text-shadow:1px 1px 0 rgba(244,244,244,.45)}.logic-element-tab-active{background:#d5e3e757;color:#282828;box-shadow:inset 0 1px #ffffff3d,inset 0 -1px #5454542e}.logic-element-tab-operator{font-size:12px}.logic-element-tab-type{font-size:8px}.logic-element-tab-arrow{position:absolute;left:1px;top:1px;bottom:1px;display:flex;align-items:center;color:#303030;font-size:9px;line-height:1;text-shadow:1px 1px 0 rgba(244,244,244,.45)}.logic-element-tab-symbol{display:block;width:100%;height:100%;line-height:1;letter-spacing:0}.logic-clear-button-overlay{left:87px;top:5px;width:30px;height:12px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(to bottom,#8b8b8b 0,#8b8b8b 50%,#777 50%,#777);box-shadow:inset 1px 1px #ffffff47,inset -1px -1px #2d2d2d85,0 0 0 1px #1e1e1ea6;color:#e0e0e0;font-size:8px;font-weight:400;line-height:12px;text-shadow:1px 1px 0 rgba(63,63,63,.8)}.logic-operator-dropdown-field,.logic-operator-signature-line{color:#2f2f2f;text-shadow:1px 1px 0 rgba(244,244,244,.45)}.logic-operator-canvas{border:1px solid transparent;border-image-source:url(/WIP-Integrated-Dynamics-Project/gui/sub_gui_light.png);border-image-slice:1 fill;border-image-repeat:stretch;image-rendering:pixelated}.logic-operator-dropdown-field{height:12px;padding:1px 4px 0;background:#000;box-shadow:0 0 0 1px #a0a0a0;color:#e0e0e0;font-size:9px;line-height:12px;white-space:nowrap;overflow:hidden;text-shadow:1px 1px 0 rgba(0,0,0,.8)}.logic-operator-signature-line{font-size:9px;line-height:9px;white-space:pre}.logic-slot-overlay,.logic-write-card{position:absolute;display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:#cdcdcd6b;box-shadow:inset 0 0 0 1px #ffffff8c}.logic-value-box{font-size:9px;line-height:1.1;text-align:center;overflow-wrap:anywhere}.logic-value-box{height:8px;padding:0 4px;line-height:8px;background:#000;box-shadow:0 0 0 1px #a0a0a0;color:#e0e0e0;text-shadow:1px 1px 0 rgba(0,0,0,.8)}.logic-slot-card-composite,.logic-write-card-composite{width:16px;height:16px;image-rendering:pixelated;display:block;background-position:center,center;background-repeat:no-repeat,no-repeat;background-size:16px 16px,16px 16px}.logic-symbol-overlay{position:absolute;min-width:12px;font-size:13px;font-weight:700;color:#18303a;text-align:center;transform:translate(-50%)}.logic-symbol-overlay-text{min-width:18px;font-size:6px;font-weight:400;line-height:18px}.logic-item-placeholder-label{width:36px;height:12px;color:#2f2f2f;font-size:8px;line-height:12px;text-shadow:1px 1px 0 rgba(244,244,244,.45);white-space:nowrap}.logic-item-placeholder-arrow{width:12px;height:6px;background:linear-gradient(to right,#2f2f2feb,#2f2f2feb) 0 2px / 7px 1px no-repeat,linear-gradient(to right,#2f2f2feb,#2f2f2feb) 7px 1px / 3px 1px no-repeat,linear-gradient(to right,#2f2f2feb,#2f2f2feb) 7px 3px / 3px 1px no-repeat,linear-gradient(to right,#2f2f2feb,#2f2f2feb) 10px 2px / 2px 1px no-repeat;image-rendering:pixelated;transform:scale(1.1);transform-origin:top left}.logic-slot-overlay-has-tooltip{overflow:visible}.logic-slot-tooltip{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translate(-50%);display:none;padding:1px 4px;background:#141414f0;border:1px solid rgba(220,220,220,.5);color:#e8e8e8;font-size:8px;line-height:10px;white-space:nowrap;pointer-events:none;z-index:4}.logic-slot-overlay-has-tooltip:hover .logic-slot-tooltip{display:block}.logic-write-arrow{position:absolute;left:228px;top:106px;width:4px;height:4px;background:url(/WIP-Integrated-Dynamics-Project/gui/logic_programmer.png) -3px -240px / 256px 256px no-repeat;image-rendering:pixelated}.logic-write-card{left:232px;top:110px}.logic-write-card-composite{position:absolute;left:0;top:0}.logic-label-field{left:90px;top:110px;width:113px;height:11px;padding:0 4px;background:#000;box-shadow:0 0 0 1px #a0a0a0;color:#e0e0e0;font-size:9px;line-height:11px;overflow:hidden;white-space:nowrap;text-shadow:1px 1px 0 rgba(0,0,0,.8)}.logic-label-ok-icon{left:205px;top:110px;width:14px;height:12px;background:url(/WIP-Integrated-Dynamics-Project/gui/icons.png) -72px 0 / 256px 256px no-repeat;image-rendering:pixelated}.logic-labeller-badge{left:220px;top:111px;width:6px;height:10px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(to bottom,#8b8b8b 0,#8b8b8b 50%,#777 50%,#777);box-shadow:inset 1px 1px #ffffff47,inset -1px -1px #2d2d2d85,0 0 0 1px #1e1e1ea6;font-size:7px;font-weight:400;line-height:10px;text-align:center;color:#e0e0e0;text-shadow:1px 1px 0 rgba(63,63,63,.8)}@media (max-width: 800px){.logic-programmer-frame-shell{width:384px;height:360px}.logic-programmer-frame{transform:scale(1.5)}}.angle-group{display:inline}.angle-bracket-toggle{display:inline;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;line-height:inherit;vertical-align:baseline}.angle-bracket-toggle:hover{color:#14505f;text-decoration:underline}.angle-bracket,.angle-ellipsis,.angle-literal{color:#2f6b79}.select{width:100%;padding:.5rem .75rem;border:1px solid #9cc9d3;border-radius:.5rem;background:#f8fdfed1;color:#18303a}.transformer-actions{display:grid;gap:.75rem;align-content:start}.transformer-actions button{border:1px solid #8ebec8;border-radius:.5rem;padding:.6rem 1rem;background:linear-gradient(180deg,#ecf9fb,#cfe9ef);color:#1b404d;cursor:pointer;box-shadow:0 6px 18px #31697514}.transformer-actions button:hover:not(:disabled){border-color:#4baec0;background:linear-gradient(180deg,#f2fdff,#c4e5ed)}.transformer-actions button:disabled{cursor:default;opacity:.6}.status{margin-top:1rem;color:#4a6974}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #d7dde5;max-height:40vh}.content-panel{padding:1rem}.content-panel:before{top:0;right:0;bottom:0;left:0}.doc-page{padding:1.25rem}}
