*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#1e1e1e;color:#d4d4d4}#root{width:100vw;height:100vh;display:flex;flex-direction:column}.geomatic-page-wrapper{flex:1;display:flex;flex-direction:column;min-height:0}.geomatic-container{width:100%;height:100%;display:flex;flex-direction:column}#svg-container{width:100%;height:100%;position:relative;flex:1;min-height:0;background:#1e1e1e;display:flex;justify-content:center;align-items:center}#svg-container svg{display:block;background:#1a1a1d;width:100%;height:100%}.canvas-with-editor{display:flex;flex-direction:column;width:100%;height:100%;flex:1;min-height:0}.canvas-editor-slot .editor-container{position:relative;bottom:auto;left:auto;right:auto}.editor-container{position:fixed;bottom:0;left:0;right:0;overflow:visible;border-top:1px solid #3e3e42;padding:8px 12px;background:#1e1e1e;z-index:100}.editor-input{flex:1;height:100%;min-width:0}.cm-line:before{content:"❯ ";color:#858585;font-family:monospace;user-select:none;pointer-events:none}.cm-placeholder{color:#555!important;font-style:italic}.loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:16px;color:#858585}.interactive-page-wrapper{display:flex;width:100%;flex:1;flex-direction:row;min-height:0;overflow:hidden}.interactive-canvas-wrapper{flex:1;position:relative;min-width:0;overflow:hidden}.interactive-sidebar{width:35%;padding:2.5rem;background:#0f172a4d;backdrop-filter:blur(12px);border-left:1px solid var(--border-color);overflow-y:auto;display:flex;flex-direction:column;box-shadow:-10px 0 40px #0003}.interactive-sidebar h1{font-size:1.5rem!important;font-weight:600;letter-spacing:-.02em;margin-bottom:2rem;color:#fff}.interactive-sidebar::-webkit-scrollbar{width:5px}.interactive-sidebar::-webkit-scrollbar-track{background:transparent}.interactive-sidebar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.interactive-sidebar::-webkit-scrollbar-thumb:hover{background:#fff3}.interactive-text{line-height:1.75;font-size:.95rem;color:#cbd5e1;font-weight:400;text-align:left}.interactive-text p{margin-bottom:1.5rem}:root{--command-padding: .2rem .6rem;--command-bg: rgba(255, 176, 0, .06);--command-border: 1px solid rgba(255, 176, 0, .2);--command-border-radius: 6px;--command-color: #FFB000;--command-font-size: .85em;--command-font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--command-transition: all .2s cubic-bezier(.4, 0, .2, 1);--command-hover-bg: rgba(255, 176, 0, .12);--command-clicked-border: #FFB000}.interactive-text .cmd-link{display:inline-flex;align-items:center;gap:.4rem;padding:var(--command-padding);background:var(--command-bg);border:var(--command-border);border-radius:var(--command-border-radius);color:var(--command-color);cursor:pointer;font-size:var(--command-font-size);font-family:var(--command-font-family);transition:var(--command-transition);vertical-align:middle;margin:0 .1em;text-decoration:none;box-shadow:0 1px 2px #0000001a}.interactive-text .cmd-link:before{content:"➤";font-size:.85em;opacity:.85;transition:transform .2s ease}.interactive-text .cmd-link:hover{background:var(--command-hover-bg);border-color:#ffb00066;transform:translateY(-1px);box-shadow:0 4px 12px #ffb00026}.interactive-text .cmd-link:hover:before{transform:translate(2px);opacity:1}.interactive-text .cmd-link.clicked{border-color:var(--command-clicked-border);font-weight:600}.interactive-text .cmd-link.clicked:before{content:"✓";opacity:1}.macro-command-item{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;background:var(--command-bg);border:var(--command-border);border-radius:var(--command-border-radius);cursor:pointer;font-family:var(--command-font-family);font-size:.9rem;margin-bottom:.75rem;transition:var(--command-transition);color:var(--command-color);box-shadow:0 2px 4px #0000001a}.macro-command-item:before{content:"✦";opacity:.5;transition:all .2s ease}.macro-command-item:hover{background:var(--command-hover-bg);border-color:#ffb00066;transform:translate(4px);box-shadow:4px 4px 12px #ffb0001a}.macro-command-item:hover:before{opacity:1;color:#fff;text-shadow:0 0 8px #FFB000}.macro-command-item.clicked{border-color:var(--command-clicked-border);font-weight:600}.macro-command-item.clicked:before{content:"✓";opacity:1}.macro-command-item.clicked:hover{transform:none}.reset-links-button{align-self:flex-start;margin-top:2rem;padding:.5rem 1rem;background:#ffffff08;border:1px solid var(--border-color);border-radius:8px;color:#94a3b8;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;cursor:pointer;transition:all .2s ease}.reset-links-button:hover{background:#ffffff14;color:#fff;border-color:#fff3;transform:translateY(-1px)}@media(max-aspect-ratio:1/1){.interactive-page-wrapper{flex-direction:column}.interactive-canvas-wrapper{flex:0 0 60%;min-height:0}.interactive-sidebar{flex:1;width:100%;border-left:none;border-top:1px solid #3e3e42}}@keyframes slideUp{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.page-editor-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:500;color:#d4d4d4;display:flex;flex-direction:column;gap:.25rem}.form-hint{font-size:.8rem;font-weight:400;color:#858585}.form-input,.form-textarea{width:100%;padding:.75rem;background:#2a2a2e;border:1px solid #3e3e42;border-radius:.375rem;color:#d4d4d4;font-family:inherit;font-size:.9rem;transition:border-color .2s ease}.form-input:focus,.form-textarea:focus{outline:none;border-color:#60a5fa}.form-textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;resize:vertical;min-height:200px}.page-editor-tabs{display:flex;gap:.5rem;border-bottom:1px solid #3e3e42;margin-bottom:1.5rem}.tab-button{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;color:#858585;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.tab-button:hover{color:#d4d4d4}.tab-button.active{color:#60a5fa;border-bottom-color:#60a5fa}.tab-content{flex:1;overflow-y:auto}.preview-container h2{font-size:1rem;font-weight:500;color:#d4d4d4;margin-bottom:1rem}
