.ngx-diff-light-theme,.ngx-diff-dark-theme{--ngx-diff-border-color: #dfdfdf;--ngx-diff-font-size: .9rem;--ngx-diff-font-family: Consolas, Courier, monospace;--ngx-diff-font-color: #000;--ngx-diff-line-number-font-color: #aaaaaa;--ngx-diff-line-number-hover-font-color: #484848;--ngx-diff-selected-border-width: 0;--ngx-diff-selected-border-color: #000;--ngx-diff-selected-line-background-color: #d6f1ff;--ngx-diff-line-number-width: 2rem;--ngx-diff-border-width: 1px;--ngx-diff-line-left-padding: 1rem;--ngx-diff-bottom-spacer-height: 1rem;--ngx-diff-title-bar-padding: .5rem;--ngx-diff-title-font-weight: 600;--ngx-diff-insert-color: #d6ffd6;--ngx-diff-delete-color: #ffd6d6;--ngx-diff-equal-color: #ffffff;--ngx-diff-mix-color: #000;--ngx-diff-light-mix-percentage: 4%;--ngx-diff-heavy-mix-percentage: 10%;--ngx-diff-inserted-background-color: var(--ngx-diff-insert-color);--ngx-diff-deleted-background-color: var(--ngx-diff-delete-color);--ngx-diff-equal-background-color: var(--ngx-diff-equal-color);--ngx-diff-margin-background-color: color-mix( in srgb, var(--ngx-diff-equal-color), var(--ngx-diff-mix-color) var(--ngx-diff-light-mix-percentage) );--ngx-diff-insert-color-darker: color-mix( in srgb, var(--ngx-diff-insert-color), var(--ngx-diff-mix-color) var(--ngx-diff-light-mix-percentage) );--ngx-diff-insert-color-darkest: color-mix( in srgb, var(--ngx-diff-insert-color), var(--ngx-diff-mix-color) var(--ngx-diff-heavy-mix-percentage) );--ngx-diff-delete-color-darker: color-mix( in srgb, var(--ngx-diff-delete-color), var(--ngx-diff-mix-color) var(--ngx-diff-light-mix-percentage) );--ngx-diff-delete-color-darkest: color-mix( in srgb, var(--ngx-diff-delete-color), var(--ngx-diff-mix-color) var(--ngx-diff-heavy-mix-percentage) )}.ngx-diff-dark-theme{--ngx-diff-border-color: #474747;--ngx-diff-font-color: #ffffff;--ngx-diff-line-number-font-color: #636363;--ngx-diff-line-number-hover-font-color: #ffffff;--ngx-diff-selected-line-background-color: #354a54;--ngx-diff-insert-color: #355435;--ngx-diff-delete-color: #543535;--ngx-diff-equal-color: #292929;--ngx-diff-mix-color: #fff;--ngx-diff-light-mix-percentage: 4%;--ngx-diff-heavy-mix-percentage: 10%}:root{--color-blue-primary: #000091;--color-blue-primary-hover: #1212ff;--color-blue-primary-active: #0000ca;--color-blue-100: #f4f3fd;--color-blue-200: #e9e9fc;--color-blue-300: #d2d2f8;--color-blue-400: #8e8dec;--color-blue-500: #1f1dda;--color-blue-600: #1a18b6;--color-blue-700: #151391;--color-blue-800: #100f6d;--color-blue-900: #050524;--color-green-100: #e3f1e8;--color-green-300: #8fc6a4;--color-green-500: #1f8d49;--color-green-700: #19713a;--color-pink-100: #f6b0d3;--color-pink-200: #f289bd;--color-pink-300: #ed61a6;--color-pink-400: #e93a90;--color-pink-500: #e4127a;--color-pink-600: #be0f66;--color-pink-700: #980c51;--color-pink-800: #72093d;--color-pink-900: #4c0629;--color-orange-100: #ffe9d7;--color-orange-200: #ffaf89;--color-orange-500: #ed6a2c;--color-orange-700: #b34000;--color-red-100: #fce6e7;--color-red-300: #ef7f86;--color-red-500: #e1000f;--color-red-700: #b4000c;--color-neutral-0: #ffffff;--color-neutral-100: #f6f6f6;--color-neutral-200: #e5e5e5;--color-neutral-300: #a6a6a6;--color-neutral-400: #8c8c8c;--color-neutral-500: #737373;--color-neutral-600: #595959;--color-neutral-700: #404040;--color-neutral-800: #262626;--color-neutral-1000: #0d0d0d;--color-primary: #000091;--color-primary-hover: #1212ff;--color-primary-active: #0000ca;--color-primary-light: var(--color-blue-100);--color-primary-container: var(--color-blue-200);--color-surface: var(--color-neutral-0);--color-surface-subtle: var(--color-neutral-100);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-300);--color-text: var(--color-neutral-1000);--color-text-muted: var(--color-neutral-500);--color-text-on-primary: var(--color-neutral-0);--color-danger: var(--color-red-500);--color-danger-hover: var(--color-red-700);--color-danger-light: var(--color-red-100);--color-success: var(--color-green-500);--color-success-hover: var(--color-green-700);--color-success-light: var(--color-green-100);--color-warning: var(--color-orange-500);--color-warning-hover: var(--color-orange-700);--color-warning-light: var(--color-orange-100);--color-info: var(--color-blue-600);--color-info-light: var(--color-blue-100);--small-gap: 5px;--medium-gap: 15px;--big-gap: 25px;--space-xs: 4px;--space-s: 8px;--space-m: 16px;--space-l: 32px;--space-xl: 64px;--space-xxl: 96px;--font-family-primary: "Effra Trial", "Effra", system-ui, sans-serif;--font-family-mono: monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-size-display: 48px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-base: 1.5;--line-height-loose: 1.75;--radius-none: 0px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 17, .1);--shadow-md: 0 4px 8px rgba(0, 0, 17, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 17, .16);--transition-fast: 75ms ease-out;--transition-normal: .2s ease-in-out}@font-face{font-family:Effra Trial;src:url(/assets/fonts/Trial_effra/TrialVariableFonts/EffraVF_Trial_Wght.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Effra Trial;src:url(/assets/fonts/Trial_effra/TrialVariableFonts/EffraVF_Trial_WghtItal.ttf) format("truetype");font-weight:100 900;font-style:italic;font-display:swap}:root{--mdc-chip-outline-color: #bfcced}:root{--mdc-chip-focus-outline-color: #bfcced}.cdk-overlay-container .cdk-overlay-pane{background-color:var(--color-surface)}mat-form-field .mat-mdc-form-field-bottom-align{display:none}mat-form-field .mat-mdc-text-field-wrapper .mdc-line-ripple:before{border-bottom-color:#dfdfdf!important}mat-form-field .mdc-floating-label--float-above{padding-bottom:var(--space-s)}*{font-family:var(--font-family-primary);scroll-behavior:smooth}body{margin:0}body.openModal{overflow:hidden}ul{padding:0}h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin:0 0 var(--space-m)}h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin:0 0 var(--space-s)}h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);margin:0 0 var(--space-s)}p{font-size:var(--font-size-base);line-height:var(--line-height-base)}.md-container ul{padding:0 var(--space-l)}.md-container h1,.md-container h2,.md-container h3{margin:var(--space-m) 0}main:has(app-new-project),main:has(app-end-tunnel),main:has(app-exp){background-color:var(--color-surface)}app-tree{display:grid;row-gap:var(--space-m)}.wrapper{display:grid;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}@media (max-width: 768px){.wrapper{grid-template-columns:repeat(4,1fr);row-gap:var(--space-s);gap:var(--space-s);padding-left:var(--space-m);padding-right:var(--space-m)}}@media (min-width: 768px) and (max-width: 1024px){.wrapper{grid-template-columns:repeat(8,1fr);row-gap:var(--space-m);gap:var(--space-m);padding-left:var(--space-l);padding-right:var(--space-l)}}@media (min-width: 1024px){.wrapper{grid-template-columns:repeat(12,1fr);row-gap:var(--space-l);gap:var(--space-l);padding-left:var(--space-xl);padding-right:var(--space-xl)}}.subwrapper{display:grid;grid-template-columns:subgrid}.cards{display:grid;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}@media (max-width: 768px){.cards{grid-template-columns:repeat(1,1fr);gap:var(--space-s);padding-left:var(--space-m);padding-right:var(--space-m)}}@media (min-width: 768px) and (max-width: 1024px){.cards{grid-template-columns:repeat(2,1fr);gap:var(--space-m);padding-left:var(--space-l);padding-right:var(--space-l)}}@media (min-width: 1024px){.cards{grid-template-columns:repeat(4,1fr);gap:var(--space-l);padding-left:var(--space-xl);padding-right:var(--space-xl)}}.btn{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-s);width:fit-content;height:fit-content;padding:var(--space-s) var(--space-m);cursor:pointer;border-radius:var(--radius-md);border:solid 2px transparent;font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);text-decoration:none;transition:all var(--transition-fast)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-full{width:100%}.primary-btn{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.primary-btn:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.primary-btn:active{background-color:var(--color-primary-active);border-color:var(--color-primary-active)}.primary-btn.selected{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.secondary-btn{background-color:transparent;border-color:var(--color-primary);color:var(--color-primary)}.secondary-btn:hover{background-color:var(--color-primary-container)}.secondary-btn:active{background-color:var(--color-primary-light)}.secondary-btn.selected{background-color:var(--color-primary-light);color:var(--color-primary)}.tertiary-btn{background-color:transparent;border-color:transparent;color:var(--color-primary)}.tertiary-btn:hover{background-color:var(--color-primary-container);text-decoration:underline}.tertiary-btn:active{background-color:var(--color-primary-light)}.delete-btn{background-color:var(--color-danger);border-color:var(--color-danger);color:var(--color-neutral-0)}.delete-btn:hover{background-color:var(--color-danger-hover);border-color:var(--color-danger-hover)}.delete-btn.selected{background-color:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger)}.delete-btn-outline{background-color:transparent;border-color:var(--color-danger);color:var(--color-danger)}.delete-btn-outline:hover{background-color:var(--color-danger-light)}.success-btn{background-color:var(--color-success);border-color:var(--color-success);color:var(--color-neutral-0)}.success-btn:hover{background-color:var(--color-success-hover);border-color:var(--color-success-hover)}.nav-btn{background-color:transparent;border-color:transparent;color:var(--color-text);font-weight:var(--font-weight-regular);padding:var(--space-xs) var(--space-s);border-radius:var(--radius-sm)}.nav-btn:hover{background-color:var(--color-surface-subtle)}.nav-btn.active,.nav-btn[aria-current=page]{color:var(--color-primary);font-weight:var(--font-weight-medium);background-color:var(--color-primary-container)}.npt{display:flex;justify-content:center;align-items:center;gap:var(--space-s);width:100%;height:fit-content;padding:var(--space-s) var(--space-m);cursor:pointer;border:none;background-color:var(--color-blue-200);border-bottom:solid 1px var(--color-primary);color:var(--color-text);text-decoration:none;transition:all var(--transition-fast)}.npt:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.small-icon{transform:scale(.83333)}.card{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:var(--space-m);border-bottom:1px solid var(--color-border);font-weight:var(--font-weight-bold)}.card-body{flex:1;padding:var(--space-m)}.card-footer{padding:var(--space-m);border-top:1px solid var(--color-border)}.resource-card{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow var(--transition-fast)}.resource-card:hover{box-shadow:var(--shadow-md)}.resource-card .resource-card-band{height:6px;background-color:var(--color-primary)}.resource-card .resource-card-body{flex:1;padding:var(--space-m);display:flex;flex-direction:column;gap:var(--space-s)}.resource-card .resource-card-tag{align-self:flex-start}.resource-card .resource-card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);margin:0}.resource-card .resource-card-description{font-size:var(--font-size-sm);color:var(--color-text-muted);flex:1;margin:0}.resource-card .resource-card-footer{padding:var(--space-s) var(--space-m) var(--space-m)}.resource-card-band-blue{background-color:var(--color-primary)}.resource-card-band-green{background-color:var(--color-success)}.resource-card-band-red{background-color:var(--color-danger)}.resource-card-band-orange{background-color:var(--color-warning)}.alert{display:flex;align-items:flex-start;gap:var(--space-m);padding:var(--space-m);border-radius:var(--radius-md);border-left:4px solid;font-size:var(--font-size-base);line-height:var(--line-height-base)}.alert mat-icon,.alert .alert-icon{flex-shrink:0;margin-top:1px}.alert .alert-content{display:flex;flex-direction:column;gap:var(--space-xs)}.alert .alert-title{font-weight:var(--font-weight-bold);margin:0}.alert p{margin:0;font-size:var(--font-size-sm);color:inherit;opacity:.85}.alert-info{background-color:var(--color-info-light);border-color:var(--color-info);color:var(--color-blue-800)}.alert-info mat-icon,.alert-info .alert-icon{color:var(--color-info)}.alert-success{background-color:var(--color-success-light);border-color:var(--color-success);color:var(--color-green-700)}.alert-success mat-icon,.alert-success .alert-icon{color:var(--color-success)}.alert-warning{background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-orange-700)}.alert-warning mat-icon,.alert-warning .alert-icon{color:var(--color-warning)}.alert-error{background-color:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-red-700)}.alert-error mat-icon,.alert-error .alert-icon{color:var(--color-danger)}.tag{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-s);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);cursor:default;border:1px solid transparent}.tag-blue{background-color:var(--color-blue-200);color:var(--color-blue-800);border-color:var(--color-blue-300)}.tag-green{background-color:var(--color-green-100);color:var(--color-green-700);border-color:var(--color-green-300)}.tag-red{background-color:var(--color-red-100);color:var(--color-red-700);border-color:var(--color-red-300)}.tag-pink{background-color:var(--color-pink-100);color:var(--color-pink-700);border-color:var(--color-pink-200)}.tag-orange{background-color:var(--color-orange-100);color:var(--color-orange-700);border-color:var(--color-orange-200)}.tag-neutral{background-color:var(--color-neutral-100);color:var(--color-neutral-700);border-color:var(--color-neutral-200)}.tag-selectable{cursor:pointer;transition:all var(--transition-fast)}.tag-selectable:hover{filter:brightness(.95)}.tag-selectable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tag-selectable.selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--space-xs);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1}.badge-blue{background-color:var(--color-primary);color:var(--color-text-on-primary)}.badge-red{background-color:var(--color-danger);color:var(--color-neutral-0)}.badge-green{background-color:var(--color-success);color:var(--color-neutral-0)}.badge-neutral{background-color:var(--color-neutral-400);color:var(--color-neutral-0)}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a6e22e}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#e6db74}.token.keyword{color:#66d9ef}.token.regex,.token.important{color:#fd971f}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:#997a6614;background:linear-gradient(to right,#997a661a 70%,#997a6600);pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:#997a6666;color:#f5f2f0;font:700 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:before,.line-numbers .line-highlight:after{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:#80808033}
