diff --git a/web/static/images/coupling-icons/basic-tet.svg b/web/static/images/coupling-icons/basic-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1491e6de4ea88785844c3c930e1ac60a78ce9a1b
--- /dev/null
+++ b/web/static/images/coupling-icons/basic-tet.svg
@@ -0,0 +1,165 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='77.836812pt' height='69.747846pt' viewBox='-72.000004 -72.000005 77.836812 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page1'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<g fill-opacity='0'>
+<g stroke-opacity='0'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<g fill-opacity='0'>
+<g stroke-opacity='0'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<g fill-opacity='0'>
+<g stroke-opacity='0'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 25.26227 -22.76227 C 25.26227 -21.38155 24.14299 -20.26227 22.76227 -20.26227 C 21.38155 -20.26227 20.26227 -21.38155 20.26227 -22.76227 C 20.26227 -24.14299 21.38155 -25.26227 22.76227 -25.26227 C 24.14299 -25.26227 25.26227 -24.14299 25.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(28.99524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<g fill-opacity='0'>
+<g stroke-opacity='0'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.85309 -20.85309' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.68817 -24.49066' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 20.08316 -23.09712' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/basic-tet_BACKUP_73033.png b/web/static/images/coupling-icons/basic-tet_BACKUP_73033.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b8f34cb0c4a2b2b32f85c1f324cb1503f29d5e0
Binary files /dev/null and b/web/static/images/coupling-icons/basic-tet_BACKUP_73033.png differ
diff --git a/web/static/images/coupling-icons/basic-tet_BASE_73033.png b/web/static/images/coupling-icons/basic-tet_BASE_73033.png
new file mode 100644
index 0000000000000000000000000000000000000000..f92a874948ac47483877b35242dd0f8b8cc374e1
Binary files /dev/null and b/web/static/images/coupling-icons/basic-tet_BASE_73033.png differ
diff --git a/web/static/images/coupling-icons/basic-tet_LOCAL_73033.png b/web/static/images/coupling-icons/basic-tet_LOCAL_73033.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b8f34cb0c4a2b2b32f85c1f324cb1503f29d5e0
Binary files /dev/null and b/web/static/images/coupling-icons/basic-tet_LOCAL_73033.png differ
diff --git a/web/static/images/coupling-icons/basic-tet_REMOTE_73033.png b/web/static/images/coupling-icons/basic-tet_REMOTE_73033.png
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/web/static/images/coupling-icons/c-tet.svg b/web/static/images/coupling-icons/c-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fea33fc2f7735b3568e706e22ca37ed9c6bbfcf0
--- /dev/null
+++ b/web/static/images/coupling-icons/c-tet.svg
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.334944pt' height='69.747846pt' viewBox='-72.000004 -72.000005 78.334944 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page2'>
+<g stroke-miterlimit='10' transform='translate(-32.929417,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -19.76227 -28.45274 C -19.76227 -26.79587 -21.1054 -25.45274 -22.76227 -25.45274 C -24.41914 -25.45274 -25.76227 -26.79587 -25.76227 -28.45274 C -25.76227 -30.10962 -24.41914 -31.45274 -22.76227 -31.45274 C -21.1054 -31.45274 -19.76227 -30.10962 -19.76227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.88412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 25.26227 -22.76227 C 25.26227 -21.38155 24.14299 -20.26227 22.76227 -20.26227 C 21.38155 -20.26227 20.26227 -21.38155 20.26227 -22.76227 C 20.26227 -24.14299 21.38155 -25.26227 22.76227 -25.26227 C 24.14299 -25.26227 25.26227 -24.14299 25.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(28.99524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -20.76335 -25.95412' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.85309 -20.85309' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -19.69739 -29.37222 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.68817 -24.49066' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -19.58704 -28.05588 L 20.08316 -23.09712' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/cnh-tet.svg b/web/static/images/coupling-icons/cnh-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1b1ced051cfd4e7f5c999cd101d58d4dd4ec4fa7
--- /dev/null
+++ b/web/static/images/coupling-icons/cnh-tet.svg
@@ -0,0 +1,176 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.833076pt' height='69.747846pt' viewBox='-72.000004 -72.000005 78.833076 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page3'>
+<g stroke-miterlimit='10' transform='translate(-32.929417,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -19.76227 -28.45274 C -19.76227 -26.79587 -21.1054 -25.45274 -22.76227 -25.45274 C -24.41914 -25.45274 -25.76227 -26.79587 -25.76227 -28.45274 C -25.76227 -30.10962 -24.41914 -31.45274 -22.76227 -31.45274 C -21.1054 -31.45274 -19.76227 -30.10962 -19.76227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.88412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -19.76227 -34.71237 C -19.76227 -33.0555 -21.1054 -31.71237 -22.76227 -31.71237 C -24.41914 -31.71237 -25.76227 -33.0555 -25.76227 -34.71237 C -25.76227 -36.36925 -24.41914 -37.71237 -22.76227 -37.71237 C -21.1054 -37.71237 -19.76227 -36.36925 -19.76227 -34.71237 Z M -22.76227 -34.71237' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-34.71237)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -19.76227 -22.1931 C -19.76227 -20.53622 -21.1054 -19.1931 -22.76227 -19.1931 C -24.41914 -19.1931 -25.76227 -20.53622 -25.76227 -22.1931 C -25.76227 -23.84998 -24.41914 -25.1931 -22.76227 -25.1931 C -21.1054 -25.1931 -19.76227 -23.84998 -19.76227 -22.1931 Z M -22.76227 -22.1931' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-22.1931)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -20.76335 -25.95412' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#9bbb59'>
+<path d='M 19.58708 -23.15918 L -19.58704 -28.05588' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M -19.58708 -28.05583 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -19.69739 -29.37222 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/h-tet.svg b/web/static/images/coupling-icons/h-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4bd40376979475ef70bebf7f85c64d66d084b1d7
--- /dev/null
+++ b/web/static/images/coupling-icons/h-tet.svg
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.334944pt' height='69.747846pt' viewBox='-72.000004 -72.000005 78.334944 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page4'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.0832 -28.11784 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/h2-tet.svg b/web/static/images/coupling-icons/h2-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7cc18041cd5c23d06505dc792d434cce625ed1bb
--- /dev/null
+++ b/web/static/images/coupling-icons/h2-tet.svg
@@ -0,0 +1,191 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='79.752349pt' height='69.747846pt' viewBox='-72.000004 -72.000005 79.752349 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page5'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 23.26227 -22.76227 C 23.26227 -22.48613 23.0384 -22.26227 22.76227 -22.26227 C 22.48613 -22.26227 22.26227 -22.48613 22.26227 -22.76227 C 22.26227 -23.0384 22.48613 -23.26227 22.76227 -23.26227 C 23.0384 -23.26227 23.26227 -23.0384 23.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -16.50264 C 27.185 -14.84576 25.84187 -13.50264 24.185 -13.50264 C 22.52812 -13.50264 21.185 -14.84576 21.185 -16.50264 C 21.185 -18.15952 22.52812 -19.50264 24.185 -19.50264 C 25.84187 -19.50264 27.185 -18.15952 27.185 -16.50264 Z M 24.185 -16.50264' stroke='none'/>
+</g>
+<g transform='translate(24.185,-16.50264)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-19.97485)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -29.02191 C 27.185 -27.36504 25.84187 -26.02191 24.185 -26.02191 C 22.52812 -26.02191 21.185 -27.36504 21.185 -29.02191 C 21.185 -30.67879 22.52812 -32.02191 24.185 -32.02191 C 25.84187 -32.02191 27.185 -30.67879 27.185 -29.02191 Z M 24.185 -29.02191' stroke='none'/>
+</g>
+<g transform='translate(24.185,-29.02191)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-32.49413)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 22.2673 -22.2673' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 22.22455 -23.21036' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 22.06769 -22.84908' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#4f81bd' stroke='#4f81bd'>
+<g stroke-width='2.84526'>
+<path d='M 24.185 -19.70264 L 24.185 -25.82191' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/h2m-tet.svg b/web/static/images/coupling-icons/h2m-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d368af56ad5d8ffe159e0188be648b7329ff07a6
--- /dev/null
+++ b/web/static/images/coupling-icons/h2m-tet.svg
@@ -0,0 +1,201 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='79.752349pt' height='70.74411pt' viewBox='-72.000004 -72.996269 79.752349 70.74411'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page6'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-56.049443)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.69046 -36.98865 C 8.69046 -35.33177 7.34734 -33.98865 5.69046 -33.98865 C 4.03358 -33.98865 2.69046 -35.33177 2.69046 -36.98865 C 2.69046 -38.64552 4.03358 -39.98865 5.69046 -39.98865 C 7.34734 -39.98865 8.69046 -38.64552 8.69046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.66605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 23.26227 -22.76227 C 23.26227 -22.48613 23.0384 -22.26227 22.76227 -22.26227 C 22.48613 -22.26227 22.26227 -22.48613 22.26227 -22.76227 C 22.26227 -23.0384 22.48613 -23.26227 22.76227 -23.26227 C 23.0384 -23.26227 23.26227 -23.0384 23.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -16.50264 C 27.185 -14.84576 25.84187 -13.50264 24.185 -13.50264 C 22.52812 -13.50264 21.185 -14.84576 21.185 -16.50264 C 21.185 -18.15952 22.52812 -19.50264 24.185 -19.50264 C 25.84187 -19.50264 27.185 -18.15952 27.185 -16.50264 Z M 24.185 -16.50264' stroke='none'/>
+</g>
+<g transform='translate(24.185,-16.50264)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-19.97485)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -29.02191 C 27.185 -27.36504 25.84187 -26.02191 24.185 -26.02191 C 22.52812 -26.02191 21.185 -27.36504 21.185 -29.02191 C 21.185 -30.67879 22.52812 -32.02191 24.185 -32.02191 C 25.84187 -32.02191 27.185 -30.67879 27.185 -29.02191 Z M 24.185 -29.02191' stroke='none'/>
+</g>
+<g transform='translate(24.185,-29.02191)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-32.49413)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48647 -3.16264 L 5.204 -33.826' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 2.26274 -2.26274 L 22.2673 -22.2673' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 2.62558 -36.06917' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 8.14865 -34.94017 L 22.22455 -23.21036' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 22.06769 -22.84908' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#4f81bd' stroke='#4f81bd'>
+<g stroke-width='2.84526'>
+<path d='M 24.185 -19.70264 L 24.185 -25.82191' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#f79646'>
+<path d='M 22.22455 -23.21036 L 8.14865 -34.94017' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M 8.14865 -34.94017 L 22.22455 -23.21036' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/h2t-tet.svg b/web/static/images/coupling-icons/h2t-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e3ce90cd1928bb32353d8826411b98fbe1655458
--- /dev/null
+++ b/web/static/images/coupling-icons/h2t-tet.svg
@@ -0,0 +1,194 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='79.752349pt' height='70.245978pt' viewBox='-72.000004 -72.498137 79.752349 70.245978'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page7'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 23.26227 -22.76227 C 23.26227 -22.48613 23.0384 -22.26227 22.76227 -22.26227 C 22.48613 -22.26227 22.26227 -22.48613 22.26227 -22.76227 C 22.26227 -23.0384 22.48613 -23.26227 22.76227 -23.26227 C 23.0384 -23.26227 23.26227 -23.0384 23.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -16.50264 C 27.185 -14.84576 25.84187 -13.50264 24.185 -13.50264 C 22.52812 -13.50264 21.185 -14.84576 21.185 -16.50264 C 21.185 -18.15952 22.52812 -19.50264 24.185 -19.50264 C 25.84187 -19.50264 27.185 -18.15952 27.185 -16.50264 Z M 24.185 -16.50264' stroke='none'/>
+</g>
+<g transform='translate(24.185,-16.50264)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-19.97485)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -29.02191 C 27.185 -27.36504 25.84187 -26.02191 24.185 -26.02191 C 22.52812 -26.02191 21.185 -27.36504 21.185 -29.02191 C 21.185 -30.67879 22.52812 -32.02191 24.185 -32.02191 C 25.84187 -32.02191 27.185 -30.67879 27.185 -29.02191 Z M 24.185 -29.02191' stroke='none'/>
+</g>
+<g transform='translate(24.185,-29.02191)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-32.49413)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48651 -3.16264 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M 22.2673 -22.2673 L 2.26274 -2.26274' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#c0504d'>
+<path d='M 2.26274 -2.26274 L 22.2673 -22.2673' fill='none'/>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 22.22455 -23.21036' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 22.06769 -22.84908' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#4f81bd' stroke='#4f81bd'>
+<g stroke-width='2.84526'>
+<path d='M 24.185 -19.70264 L 24.185 -25.82191' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/hc-tet.svg b/web/static/images/coupling-icons/hc-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b80d770853126a39053be22a503b169911c6eeac
--- /dev/null
+++ b/web/static/images/coupling-icons/hc-tet.svg
@@ -0,0 +1,152 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.833076pt' height='69.747846pt' viewBox='-72.000004 -72.000005 78.833076 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page8'>
+<g stroke-miterlimit='10' transform='translate(-32.929417,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -19.76227 -28.45274 C -19.76227 -26.79587 -21.1054 -25.45274 -22.76227 -25.45274 C -24.41914 -25.45274 -25.76227 -26.79587 -25.76227 -28.45274 C -25.76227 -30.10962 -24.41914 -31.45274 -22.76227 -31.45274 C -21.1054 -31.45274 -19.76227 -30.10962 -19.76227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.88412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -20.76335 -25.95412' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#9bbb59'>
+<path d='M 19.58708 -23.15918 L -19.58704 -28.05588' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M -19.58708 -28.05583 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -19.69739 -29.37222 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/hh-tet.svg b/web/static/images/coupling-icons/hh-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6ad3cd149a486c751a16cc6beb0ef6314ecba3a7
--- /dev/null
+++ b/web/static/images/coupling-icons/hh-tet.svg
@@ -0,0 +1,170 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='96.730262pt' height='69.747846pt' viewBox='-72.000004 -72.000005 96.730262 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page9'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 37.1432 -22.76227 C 37.1432 -21.1054 35.80008 -19.76227 34.1432 -19.76227 C 32.48633 -19.76227 31.1432 -21.1054 31.1432 -22.76227 C 31.1432 -24.41914 32.48633 -25.76227 34.1432 -25.76227 C 35.80008 -25.76227 37.1432 -24.41914 37.1432 -22.76227 Z M 34.1432 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(34.1432,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(40.87617,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>HH</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.0832 -28.11784 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#4f81bd' stroke='#4f81bd'>
+<g stroke-width='2.84526'>
+<path d='M 25.96227 -22.76227 L 30.9432 -22.76227' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/hht-tet.svg b/web/static/images/coupling-icons/hht-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..9dd726caf259c4db61afae4e8be06438eae2ca06
--- /dev/null
+++ b/web/static/images/coupling-icons/hht-tet.svg
@@ -0,0 +1,173 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='96.730262pt' height='70.245978pt' viewBox='-72.000004 -72.498137 96.730262 70.245978'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page10'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 37.1432 -22.76227 C 37.1432 -21.1054 35.80008 -19.76227 34.1432 -19.76227 C 32.48633 -19.76227 31.1432 -21.1054 31.1432 -22.76227 C 31.1432 -24.41914 32.48633 -25.76227 34.1432 -25.76227 C 35.80008 -25.76227 37.1432 -24.41914 37.1432 -22.76227 Z M 34.1432 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(34.1432,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(40.87617,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>HH</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48651 -3.16264 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M 20.49953 -20.49953 L 2.26274 -2.26274' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#c0504d'>
+<path d='M 2.26274 -2.26274 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.0832 -28.11784 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#4f81bd' stroke='#4f81bd'>
+<g stroke-width='2.84526'>
+<path d='M 25.96227 -22.76227 L 30.9432 -22.76227' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/hm-tet.svg b/web/static/images/coupling-icons/hm-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b11a6a09de9a7fd7664dbedb192f7e64471b64fd
--- /dev/null
+++ b/web/static/images/coupling-icons/hm-tet.svg
@@ -0,0 +1,152 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.334944pt' height='70.245978pt' viewBox='-72.000004 -72.498137 78.334944 70.245978'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page11'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-56.049443)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.69046 -36.98865 C 8.69046 -35.33177 7.34734 -33.98865 5.69046 -33.98865 C 4.03358 -33.98865 2.69046 -35.33177 2.69046 -36.98865 C 2.69046 -38.64552 4.03358 -39.98865 5.69046 -39.98865 C 7.34734 -39.98865 8.69046 -38.64552 8.69046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.66605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41046 -2.66847 L 5.204 -33.826' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.0832 -28.11784 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 2.62558 -36.06917' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#f79646'>
+<path d='M 20.30408 -24.81075 L 8.14865 -34.94017' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M 8.14865 -34.94017 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/m-tet.svg b/web/static/images/coupling-icons/m-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5a951ebd10e403a2f0dc0635b7f7010f890bcb54
--- /dev/null
+++ b/web/static/images/coupling-icons/m-tet.svg
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='77.836812pt' height='70.245978pt' viewBox='-72.000004 -72.498137 77.836812 70.245978'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page12'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-56.049443)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.69046 -36.98865 C 8.69046 -35.33177 7.34734 -33.98865 5.69046 -33.98865 C 4.03358 -33.98865 2.69046 -35.33177 2.69046 -36.98865 C 2.69046 -38.64552 4.03358 -39.98865 5.69046 -39.98865 C 7.34734 -39.98865 8.69046 -38.64552 8.69046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.66605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 25.26227 -22.76227 C 25.26227 -21.38155 24.14299 -20.26227 22.76227 -20.26227 C 21.38155 -20.26227 20.26227 -21.38155 20.26227 -22.76227 C 20.26227 -24.14299 21.38155 -25.26227 22.76227 -25.26227 C 24.14299 -25.26227 25.26227 -24.14299 25.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(28.99524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41046 -2.66847 L 5.204 -33.826' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.85309 -20.85309' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 2.62558 -36.06917' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 8.14865 -34.94017 L 20.68817 -24.49066' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 20.08316 -23.09712' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/t-h-m-c-tet.svg b/web/static/images/coupling-icons/t-h-m-c-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a7a72310e78ada6c83ba158ed026006da9d4822c
--- /dev/null
+++ b/web/static/images/coupling-icons/t-h-m-c-tet.svg
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='77.836812pt' height='69.747846pt' viewBox='-72.000004 -72.000005 77.836812 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page13'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.26227 -22.76227 C 25.26227 -21.38155 24.14299 -20.26227 22.76227 -20.26227 C 21.38155 -20.26227 20.26227 -21.38155 20.26227 -22.76227 C 20.26227 -24.14299 21.38155 -25.26227 22.76227 -25.26227 C 24.14299 -25.26227 25.26227 -24.14299 25.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(28.99524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.85309 -20.85309' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.68817 -24.49066' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 20.08316 -23.09712' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/t-tet.svg b/web/static/images/coupling-icons/t-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e316b91646e0b58a1e5fa39e4d83364ed541d84d
--- /dev/null
+++ b/web/static/images/coupling-icons/t-tet.svg
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='77.836812pt' height='70.245978pt' viewBox='-72.000004 -72.498137 77.836812 70.245978'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page14'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 25.26227 -22.76227 C 25.26227 -21.38155 24.14299 -20.26227 22.76227 -20.26227 C 21.38155 -20.26227 20.26227 -21.38155 20.26227 -22.76227 C 20.26227 -24.14299 21.38155 -25.26227 22.76227 -25.26227 C 24.14299 -25.26227 25.26227 -24.14299 25.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(28.99524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48651 -3.16264 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 2.26274 -2.26274 L 20.85309 -20.85309' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.68817 -24.49066' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 20.08316 -23.09712' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/th-tet.svg b/web/static/images/coupling-icons/th-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c10eedc4ae3779fdaeca607f76e2f06b95030acb
--- /dev/null
+++ b/web/static/images/coupling-icons/th-tet.svg
@@ -0,0 +1,152 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.334944pt' height='70.245978pt' viewBox='-72.000004 -72.498137 78.334944 70.245978'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page15'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48651 -3.16264 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M 20.49953 -20.49953 L 2.26274 -2.26274' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#c0504d'>
+<path d='M 2.26274 -2.26274 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.0832 -28.11784 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/th2m-tet.svg b/web/static/images/coupling-icons/th2m-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..148fb0a2ade8fdd3790fc2ab0660bae4c2030eac
--- /dev/null
+++ b/web/static/images/coupling-icons/th2m-tet.svg
@@ -0,0 +1,198 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='79.752349pt' height='70.74411pt' viewBox='-72.000004 -72.996269 79.752349 70.74411'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page16'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-56.049443)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.69046 -36.98865 C 8.69046 -35.33177 7.34734 -33.98865 5.69046 -33.98865 C 4.03358 -33.98865 2.69046 -35.33177 2.69046 -36.98865 C 2.69046 -38.64552 4.03358 -39.98865 5.69046 -39.98865 C 7.34734 -39.98865 8.69046 -38.64552 8.69046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.66605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 23.26227 -22.76227 C 23.26227 -22.48613 23.0384 -22.26227 22.76227 -22.26227 C 22.48613 -22.26227 22.26227 -22.48613 22.26227 -22.76227 C 22.26227 -23.0384 22.48613 -23.26227 22.76227 -23.26227 C 23.0384 -23.26227 23.26227 -23.0384 23.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -16.50264 C 27.185 -14.84576 25.84187 -13.50264 24.185 -13.50264 C 22.52812 -13.50264 21.185 -14.84576 21.185 -16.50264 C 21.185 -18.15952 22.52812 -19.50264 24.185 -19.50264 C 25.84187 -19.50264 27.185 -18.15952 27.185 -16.50264 Z M 24.185 -16.50264' stroke='none'/>
+</g>
+<g transform='translate(24.185,-16.50264)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-19.97485)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 27.185 -29.02191 C 27.185 -27.36504 25.84187 -26.02191 24.185 -26.02191 C 22.52812 -26.02191 21.185 -27.36504 21.185 -29.02191 C 21.185 -30.67879 22.52812 -32.02191 24.185 -32.02191 C 25.84187 -32.02191 27.185 -30.67879 27.185 -29.02191 Z M 24.185 -29.02191' stroke='none'/>
+</g>
+<g transform='translate(24.185,-29.02191)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(30.91797,-32.49413)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48647 -3.16264 L 5.204 -33.826' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 2.26274 -2.26274 L 22.2673 -22.2673' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 2.62558 -36.06917' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 8.14865 -34.94017 L 22.22455 -23.21036' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 22.06769 -22.84908' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#4f81bd' stroke='#4f81bd'>
+<g stroke-width='2.84526'>
+<path d='M 24.185 -19.70264 L 24.185 -25.82191' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+<g stroke-opacity='0.5'>
+<g fill-opacity='0.5'>
+<g fill='#a0a0a0'>
+<path d='M 0.0 0.0 L 5.69046 -36.98865 L 22.76227 -22.76227 L 0.0 0.0'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/thc-tet.svg b/web/static/images/coupling-icons/thc-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..70afe3fb42cfcb2a1cf11c2ecb8a8a2768957451
--- /dev/null
+++ b/web/static/images/coupling-icons/thc-tet.svg
@@ -0,0 +1,156 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.833076pt' height='70.245978pt' viewBox='-72.000004 -72.498137 78.833076 70.245978'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page17'>
+<g stroke-miterlimit='10' transform='translate(-32.929417,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -19.76227 -28.45274 C -19.76227 -26.79587 -21.1054 -25.45274 -22.76227 -25.45274 C -24.41914 -25.45274 -25.76227 -26.79587 -25.76227 -28.45274 C -25.76227 -30.10962 -24.41914 -31.45274 -22.76227 -31.45274 C -21.1054 -31.45274 -19.76227 -30.10962 -19.76227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.88412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-32.929417,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-32.929417' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -20.76335 -25.95412' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48651 -3.16264 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 2.26274 -2.26274 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -19.69739 -29.37222 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -19.58708 -28.05583 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-opacity='0.5'>
+<g fill-opacity='0.5'>
+<g fill='#a0a0a0'>
+<path d='M 0.0 0.0 L -22.76227 -28.45274 L 22.76227 -22.76227 L 0.0 0.0'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/thm-tet.svg b/web/static/images/coupling-icons/thm-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e766b617b27cffea799c95a577c819cd5c8bd381
--- /dev/null
+++ b/web/static/images/coupling-icons/thm-tet.svg
@@ -0,0 +1,156 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.334944pt' height='70.74411pt' viewBox='-72.000004 -72.996269 78.334944 70.74411'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page18'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-56.049443)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.69046 -36.98865 C 8.69046 -35.33177 7.34734 -33.98865 5.69046 -33.98865 C 4.03358 -33.98865 2.69046 -35.33177 2.69046 -36.98865 C 2.69046 -38.64552 4.03358 -39.98865 5.69046 -39.98865 C 7.34734 -39.98865 8.69046 -38.64552 8.69046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.66605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.48647 -3.16264 L 5.204 -33.826' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 2.26274 -2.26274 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 2.62558 -36.06917' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 8.14865 -34.94017 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.0832 -28.11784 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-opacity='0.5'>
+<g fill-opacity='0.5'>
+<g fill='#a0a0a0'>
+<path d='M 0.0 0.0 L 5.69046 -36.98865 L 22.76227 -22.76227 L 0.0 0.0'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/thmc-tet.svg b/web/static/images/coupling-icons/thmc-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..eb1c217ee227d8914c89f9e887bce0e9dd458526
--- /dev/null
+++ b/web/static/images/coupling-icons/thmc-tet.svg
@@ -0,0 +1,165 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='77.836812pt' height='69.747846pt' viewBox='-72.000004 -72.000005 77.836812 69.747846'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page19'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 2.5 0.0 C 2.5 1.38072 1.38072 2.5 0.0 2.5 C -1.38072 2.5 -2.5 1.38072 -2.5 0.0 C -2.5 -1.38072 -1.38072 -2.5 0.0 -2.5 C 1.38072 -2.5 2.5 -1.38072 2.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.23297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#9bbb59'>
+<g fill='#9bbb59'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.26227 -22.76227 C 25.26227 -21.38155 24.14299 -20.26227 22.76227 -20.26227 C 21.38155 -20.26227 20.26227 -21.38155 20.26227 -22.76227 C 20.26227 -24.14299 21.38155 -25.26227 22.76227 -25.26227 C 24.14299 -25.26227 25.26227 -24.14299 25.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(28.99524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.68658 -2.10822 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.41049 -2.66847 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 1.90918 -1.90918 L 20.85309 -20.85309' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.68817 -24.49066' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-dasharray='0.8,1.0' stroke-dashoffset='0.0'>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 20.08316 -23.09712' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+<g stroke-opacity='0.5'>
+<g fill-opacity='0.5'>
+<g fill='#a0a0a0'>
+<path d='M 0.0 0.0 L -22.76227 -28.45274 L 5.69046 -36.98865 L 0.0 0.0'/>
+</g>
+</g>
+</g>
+<g stroke-opacity='0.5'>
+<g fill-opacity='0.5'>
+<g fill='#a0a0a0'>
+<path d='M 0.0 0.0 L 5.69046 -36.98865 L 22.76227 -22.76227 L 0.0 0.0'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/tm-tet.svg b/web/static/images/coupling-icons/tm-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ae563583c2a98432ff50685624a47e46cedf2c87
--- /dev/null
+++ b/web/static/images/coupling-icons/tm-tet.svg
@@ -0,0 +1,152 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='77.836812pt' height='70.74411pt' viewBox='-72.000004 -72.996269 77.836812 70.74411'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page20'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-56.049443)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 3.0 0.0 C 3.0 1.65688 1.65688 3.0 0.0 3.0 C -1.65688 3.0 -3.0 1.65688 -3.0 0.0 C -3.0 -1.65688 -1.65688 -3.0 0.0 -3.0 C 1.65688 -3.0 3.0 -1.65688 3.0 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g transform='translate(-3.40279,6.73297)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#f79646'>
+<g fill='#f79646'>
+<path d='M 8.69046 -36.98865 C 8.69046 -35.33177 7.34734 -33.98865 5.69046 -33.98865 C 4.03358 -33.98865 2.69046 -35.33177 2.69046 -36.98865 C 2.69046 -38.64552 4.03358 -39.98865 5.69046 -39.98865 C 7.34734 -39.98865 8.69046 -38.64552 8.69046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.66605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 25.26227 -22.76227 C 25.26227 -21.38155 24.14299 -20.26227 22.76227 -20.26227 C 21.38155 -20.26227 20.26227 -21.38155 20.26227 -22.76227 C 20.26227 -24.14299 21.38155 -25.26227 22.76227 -25.26227 C 24.14299 -25.26227 25.26227 -24.14299 25.26227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(28.99524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-56.049443)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-56.049443'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -1.99892 -2.49863 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 2.26274 -2.26274 L 20.85309 -20.85309' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 2.62558 -36.06917' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 8.14865 -34.94017 L 20.68817 -24.49066' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.08316 -28.11789 L 20.08316 -23.09712' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#f79646'>
+<path d='M 5.204 -33.826 L 0.48647 -3.16264' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#c0504d'>
+<path d='M 0.48647 -3.16264 L 5.204 -33.826' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file
diff --git a/web/static/images/coupling-icons/tth-tet.svg b/web/static/images/coupling-icons/tth-tet.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c8ee8890b9e5344744bc37a9017ae1bc6f7dc8b5
--- /dev/null
+++ b/web/static/images/coupling-icons/tth-tet.svg
@@ -0,0 +1,194 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.13.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='78.334944pt' height='71.663372pt' viewBox='-72.000004 -73.915532 78.334944 71.663372'>
+<defs>
+<font id='cmss10' horiz-adv-x='0'>
+<font-face font-family='cmss10' units-per-em='1000' ascent='759' descent='250'/>
+<glyph unicode='C' horiz-adv-x='639' vert-adv-y='639' glyph-name='C' d='M582 114C523 75 489 54 390 54C246 54 156 204 156 348C156 484 239 641 392 641C463 641 508 624 563 589L577 671C534 692 457 705 393 705C208 705 66 549 66 339C66 181 185-11 393-11C485-11 523 5 588 45L582 114Z'/>
+<glyph unicode='H' horiz-adv-x='708' vert-adv-y='708' glyph-name='H' d='M613 694H524V391H183V694H94V0H183V330H524V0H613V694Z'/>
+<glyph unicode='M' horiz-adv-x='875' vert-adv-y='875' glyph-name='M' d='M530 355C495 264 448 140 437 93H436C431 114 419 151 404 193L247 607L213 694H100V0H178V620H179C185 588 225 479 251 411L399 22H472L605 370C637 452 646 477 653 497C663 526 690 598 695 621L696 620V0H774V694H660L530 355Z'/>
+<glyph unicode='T' horiz-adv-x='680' vert-adv-y='680' glyph-name='T' d='M385 624H474C486 624 498 623 510 623H644V688H36V623H170C182 623 194 624 206 624H296V0H385V624Z'/>
+</font>
+</defs>
+<style type='text/css'>
+<![CDATA[text.f0 {font-family:cmss10;font-size:9.96264px}
+]]>
+</style>
+<g id='page21'>
+<g stroke-miterlimit='10' transform='translate(-33.427549,-55.551311)scale(0.996264,-0.996264)'>
+<g fill='#000' stroke='#000'>
+<g stroke-width='0.4'>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 0.5 0.0 C 0.5 0.27614 0.27614 0.5 0.0 0.5 C -0.27614 0.5 -0.5 0.27614 -0.5 0.0 C -0.5 -0.27614 -0.27614 -0.5 0.0 -0.5 C 0.27614 -0.5 0.5 -0.27614 0.5 0.0 Z M 0.0 0.0' stroke='none'/>
+</g>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M -20.26227 -28.45274 C -20.26227 -27.07202 -21.38155 -25.95274 -22.76227 -25.95274 C -24.14299 -25.95274 -25.26227 -27.07202 -25.26227 -28.45274 C -25.26227 -29.83347 -24.14299 -30.95274 -22.76227 -30.95274 C -21.38155 -30.95274 -20.26227 -29.83347 -20.26227 -28.45274 Z M -22.76227 -28.45274' stroke='none'/>
+</g>
+<g transform='translate(-22.76227,-28.45274)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-35.38412,-31.92496)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>C</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#000'>
+<g fill='#000'>
+<path d='M 8.19046 -36.98865 C 8.19046 -35.60793 7.07118 -34.48865 5.69046 -34.48865 C 4.30974 -34.48865 3.19046 -35.60793 3.19046 -36.98865 C 3.19046 -38.36937 4.30974 -39.48865 5.69046 -39.48865 C 7.07118 -39.48865 8.19046 -38.36937 8.19046 -36.98865 Z M 5.69046 -36.98865' stroke='none'/>
+</g>
+<g transform='translate(5.69046,-36.98865)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(1.31544,-50.16605)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>M</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#4f81bd'>
+<g fill='#4f81bd'>
+<path d='M 25.76227 -22.76227 C 25.76227 -21.1054 24.41914 -19.76227 22.76227 -19.76227 C 21.1054 -19.76227 19.76227 -21.1054 19.76227 -22.76227 C 19.76227 -24.41914 21.1054 -25.76227 22.76227 -25.76227 C 24.41914 -25.76227 25.76227 -24.41914 25.76227 -22.76227 Z M 22.76227 -22.76227' stroke='none'/>
+</g>
+<g transform='translate(22.76227,-22.76227)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(29.49524,-26.23448)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>H</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M 9.25963 1.42271 C 9.25963 3.07959 7.9165 4.42271 6.25963 4.42271 C 4.60275 4.42271 3.25963 3.07959 3.25963 1.42271 C 3.25963 -0.23416 4.60275 -1.57729 6.25963 -1.57729 C 7.9165 -1.57729 9.25963 -0.23416 9.25963 1.42271 Z M 6.25963 1.42271' stroke='none'/>
+</g>
+<g transform='translate(6.25963,1.42271)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(2.85684,8.15569)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g fill='#c0504d'>
+<g fill='#c0504d'>
+<path d='M -3.25963 1.42271 C -3.25963 3.07959 -4.60275 4.42271 -6.25963 4.42271 C -7.9165 4.42271 -9.25963 3.07959 -9.25963 1.42271 C -9.25963 -0.23416 -7.9165 -1.57729 -6.25963 -1.57729 C -4.60275 -1.57729 -3.25963 -0.23416 -3.25963 1.42271 Z M -6.25963 1.42271' stroke='none'/>
+</g>
+<g transform='translate(-6.25963,1.42271)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'/>
+</g>
+</g>
+</g>
+</g>
+<g transform='translate(-9.66241,8.15569)'>
+<g stroke='none' transform='scale(-1.00375,1.00375)translate(-33.427549,-55.551311)scale(-1,-1)'>
+<g fill='#000'>
+<g stroke='none'>
+<text class='f0' x='-33.427549' y='-55.551311'>T</text>
+</g>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -0.43726 -0.54657 L -21.07568 -26.34453' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 0.10641 -0.69182 L 5.28 -34.32018' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#4f81bd'>
+<path d='M 20.49953 -20.49953 L 0.49496 -0.49496' fill='none'/>
+</g>
+</g>
+<g stroke-width='2.84526'>
+<g stroke='#c0504d'>
+<path d='M 0.49496 -0.49496 L 20.49953 -20.49953' fill='none'/>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.17627 -29.22855 L 3.10446 -36.21284' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M 7.76456 -35.26025 L 20.30408 -24.81075' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#000' stroke='#000'>
+<path d='M -20.0832 -28.11784 L 19.58704 -23.15913' fill='none'/>
+</g>
+</g>
+</g>
+<g stroke-width='0.8'>
+<g fill='#000' stroke='#000'>
+<g fill='#c0504d' stroke='#c0504d'>
+<g stroke-width='2.84526'>
+<path d='M 3.05963 1.42271 L -3.05963 1.42271' fill='none'/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
\ No newline at end of file