li{list-style-type:disc;}.css-light-151tvvp ol>li{list-style-type:number;}.css-light-151tvvp ul>li,.css-light-151tvvp ol>li{font-size:1rem;margin:8px 0px;}.css-light-151tvvp .tablew{overflow-x:auto;scroll-behavior:smooth;webkit-overflow-scrolling:touch;}.css-light-151tvvp .table{font-size:0.875rem;letter-spacing:0.15px;border-collapse:collapse;}@media (max-width:823.95px){.css-light-151tvvp .table th{white-space:nowrap;}}.css-light-151tvvp .table tr>td,.css-light-151tvvp .table tr>th{line-height:1.25rem;padding:8px;vertical-align:top;border-top:1px solid #E8E8E8;}.css-light-151tvvp .table th{text-align:left;}.css-light-151tvvp .table>thead>tr>th{border-bottom:2px solid #E8E8E8;border-top:none;}.css-light-151tvvp .table>tbody>tr:nth-child(odd){background:#F6F6F6;}.css-light-151tvvp .panel{background-color:inherit;}.css-light-151tvvp .aside-container{padding:32px;border-radius:24px;border:1px solid #E8E8E8;}.css-light-151tvvp .aside-container .aside-heading{margin-bottom:12px;}.css-light-151tvvp .aside-container .aside-heading h4{margin-top:0;margin-bottom:0;}.css-light-151tvvp .aside-container .aside-body ul{padding-left:24px;}.css-light-151tvvp code:not(.code-highlight-prism),.css-light-151tvvp p>code{font-family:Roboto Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:0.875rem;line-height:1.25rem;letter-spacing:0.15px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;padding:0px 6px 2px;border-radius:3px;}.css-light-151tvvp code small,.css-light-151tvvp p>code small{font-family:Roboto Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:0.75rem;line-height:1.125rem;letter-spacing:0.25px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;}.css-light-151tvvp .code-picker .languages-bar .dropdown .dropdown-menu{background:#FFFFFF;list-style:none;padding-left:24px;}.css-light-151tvvp .code-picker .languages-bar>ul li{list-style-type:none;}.css-light-151tvvp .code-picker .languages-bar>ul>li.active>a{color:#263588;}.css-light-151tvvp .connections-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.css-light-151tvvp .connections-container:after{content:none;-webkit-flex:auto;-ms-flex:auto;flex:auto;}.css-light-151tvvp .connection{padding:24px 16px;border:1px solid #E8E8E8;-webkit-flex-basis:23%;-ms-flex-preferred-size:23%;flex-basis:23%;margin-bottom:16px;margin-right:2.6666666%;overflow:hidden;-webkit-transition:-webkit-transform 0.2s,border 0.2s;transition:transform 0.2s,border 0.2s;}.css-light-151tvvp .connection:nth-child(4n){margin-right:0;}.css-light-151tvvp .connection.connection-public:hover{border:1px solid #E8E8E8;box-shadow:0px 2px 4px rgb(0 0 0 / 12%);-webkit-transform:scale(1.02);-moz-transform:scale(1.02);-ms-transform:scale(1.02);transform:scale(1.02);-webkit-text-decoration:none;text-decoration:none;}.css-light-151tvvp .connection.connection-public:focus{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}@media (max-width:599.95px){.css-light-151tvvp .connection{-webkit-flex-basis:48%;-ms-flex-preferred-size:48%;flex-basis:48%;margin-right:4%;}.css-light-151tvvp .connection:nth-child(2n){margin-right:0;}}.css-light-151tvvp .connection-content{text-align:center;}.css-light-151tvvp .connection-title{font-size:1.125rem;line-height:1.25rem;margin-top:16px;margin-bottom:0;}.css-light-151tvvp .connection-image-wrap{display:inline-block;vertical-align:middle;}.css-light-151tvvp .connection-image-wrap img{max-height:60px;max-width:60px;}.css-light-151tvvp .title-portal-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:4px;-webkit-transform:translateX(-20px);-moz-transform:translateX(-20px);-ms-transform:translateX(-20px);transform:translateX(-20px);}.css-light-151tvvp .title-portal-container:hover{cursor:pointer;}.css-light-151tvvp .title-portal-container:hover .title-portal-icon{opacity:1;}.css-light-151tvvp .title-portal-container .title-portal-icon{color:#686868;opacity:0;}.css-light-151tvvp .title-portal-container .title-portal-text{margin-top:24px;scroll-margin-top:88px;}.css-light-151tvvp .title-portal-container h2.title-portal-text{margin-top:40px;margin-bottom:8px;}.css-light-151tvvp .tooltip-portal-underlined-word{font-style:normal;border-bottom:1px dotted #686868;}.css-light-151tvvp .alert-content>p{font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:400;font-size:0.875rem;line-height:1.57143;letter-spacing:0;}.css-light-151tvvp .alert-content bold,.css-light-151tvvp .alert-content strong{font-weight:500;}.css-light-151tvvp .alert-content>p>a{font-weight:500;color:#191919;}.css-light-151tvvp .alert-content>p>a:hover{-webkit-text-decoration:none;text-decoration:none;}.css-light-151tvvp code .alert-content{font-family:Roboto Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:0.875rem;line-height:1.25rem;letter-spacing:0.15px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;}.css-light-151tvvp .QuantumAlert-standardWarning,.css-light-151tvvp .alert-portal-severity-warning{background-color:#FEF2B3;}.css-light-151tvvp .QuantumAlert-standardWarning $icon,.css-light-151tvvp .alert-portal-severity-warning $icon{color:#786713;}.css-light-151tvvp .QuantumAlert-standardInfo,.css-light-151tvvp .alert-portal-severity-info{background-color:#EEF0FD;}.css-light-151tvvp .QuantumAlert-standardInfo $icon,.css-light-151tvvp .alert-portal-severity-info $icon{color:#3F59E4;}.css-light-151tvvp .alert-portal-content:last-child{margin-bottom:0;}.css-light-151tvvp .alert-portal-content p{font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:400;font-size:0.875rem;line-height:1.57143;letter-spacing:0;}.css-light-151tvvp .alert-portal-content p:last-child{margin-bottom:0;}.css-light-151tvvp .alert-portal-content code{font-family:Roboto Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:0.875rem;line-height:1.25rem;letter-spacing:0.15px;font-weight:400;-webkit-font-smoothing:subpixel-antialiased;padding-left:3px;padding-right:3px;}.css-light-151tvvp .alert-portal-content bold,.css-light-151tvvp .alert-portal-content strong,.css-light-151tvvp .alert-portal-content b{font-weight:500;font-size:0.875rem;}.css-light-151tvvp .MuiTabs-flexContainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.css-light-151tvvp .MuiTab-root{margin-left:0;margin-right:16px;font-family:Inter,fakt-web,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';padding:6px 12px;overflow:hidden;position:relative;font-size:0.875rem;max-width:264px;min-width:unset;box-sizing:border-box;min-height:48px;text-align:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:1.71429;white-space:normal;padding-left:0;padding-right:0;letter-spacing:0.01071em;text-transform:none;}.css-light-151tvvp .MuiTab-root .MuiTab-root:first-child{margin-left:0;}.css-light-151tvvp .MuiTabs-scroller{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;display:inline-block;position:relative;white-space:nowrap;border-bottom:1px solid #E8E8E8;width:100%;}.css-light-151tvvp .MuiTab-textColorPrimary.Mui-selected{border-bottom:1px solid #263588;}.css-light-151tvvp .MuiTab-wrapper{width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}.css-light-151tvvp .MuiTab-labelIcon{min-height:72px;padding-top:8px;}.css-light-151tvvp .MuiTab-labelIcon .MuiTab-wrapper>*:first-child{margin-bottom:8px;}.css-light-151tvvp .MuiTab-textColorInherit{color:inherit;opacity:0.7;}.css-light-151tvvp .MuiTab-textColorInherit.Mui-selected{opacity:1;}.css-light-151tvvp .MuiTab-textColorInherit.Mui-disabled{opacity:0.5;}.css-light-151tvvp .MuiTab-textColorPrimary{color:#65676e;font-weight:400;}.css-light-151tvvp .MuiTab-textColorPrimary.Mui-disabled{color:#65676e;}.css-light-151tvvp .MuiTab-fullWidth{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:none;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}.css-light-151tvvp .MuiTab-wrapped{font-size:0.75rem;line-height:1.5;}.css-light-151tvvp div[role=tabpanel] ol{list-style:inherit;padding-left:24px;}.css-light-151tvvp .MuiExpansionPanelSummary-content{margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-transition:margin 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:margin 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-151tvvp .MuiExpansionPanelSummary-content [data-cosmos-key="avatar-block"]{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.css-light-151tvvp .MuiExpansionPanel-root{margin:0;padding:32px;position:relative;-webkit-transition:margin 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:margin 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-151tvvp .MuiCollapse-hidden{visibility:hidden;}.css-light-151tvvp .MuiExpansionPanelSummary-expandIcon{width:25px;height:25px;-webkit-align-self:baseline;-ms-flex-item-align:baseline;align-self:baseline;}.css-light-151tvvp .MuiCollapse-root{height:0;transition-duration:268ms;min-height:0px;}.css-light-151tvvp .accordion-control-buttons{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 0 8px auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:5px;}.css-light-151tvvp .accordion-panels{box-shadow:none;display:grid;gap:16px;grid-template-columns:minmax(0px, 1fr);}.css-light-151tvvp .accordion-panel{border:1px solid #E8E8E8;padding:16px;border-radius:8px;box-shadow:none;}.css-light-151tvvp #accordion-summary{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0;min-hheight:unset;-webkit-transition:min-height 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:min-height 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-151tvvp .accordion-numbered-icon{width:2rem;height:2rem;font-size:0.875rem;color:#635dff;background-color:#e9e8ff;border-radius:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;position:relative;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-weight:500;text-transform:uppercase;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}.css-light-151tvvp .accordion-details{margin-top:16px;margin-left:0;margin-right:16px;}.css-light-151tvvp .accordion-numbered-details{margin-top:16px;margin-left:48px;margin-right:16px;}.css-light-qw3jjx{display:grid;grid-template-columns:minmax(0, 1fr);gap:24px;border:1px solid #E8E8E8;border-radius:4px;margin:32px 0px 40px;padding:40px;}.css-light-ve6lx2{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:24px;}@media (max-width:823.95px){.css-light-ve6lx2{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}.css-light-1890uci{margin:0;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:400;font-size:0.875rem;line-height:1.57143;letter-spacing:0em;color:#686868;}.css-light-cnjcq1{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0;}.css-light-146h36z{display:grid;gap:16px;grid-template-columns:none;grid-auto-columns:min-content;grid-auto-flow:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:0px){.css-light-146h36z{grid-template-columns:minmax(0,1fr);}}@media (min-width:600px){.css-light-146h36z{grid-template-columns:minmax(0,1fr);}}@media (min-width:960px){.css-light-146h36z{grid-template-columns:repeat(2, minmax(0,1fr));}}@media (min-width:0px){.css-light-146h36z{grid-template-columns:none;}}@media (min-width:600px){.css-light-146h36z{grid-template-columns:none;}}@media (min-width:960px){.css-light-146h36z{grid-template-columns:none;}}.css-light-up5kby{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:500;font-size:0.8125rem;line-height:1.57143;text-transform:capitalize;letter-spacing:0em;min-width:64px;padding:3px 9px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:1px solid rgba(104, 104, 104, 0.5);color:#686868;box-shadow:none;padding:6px 12px;color:#191919;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;white-space:nowrap;min-width:unset;font-size:0.875rem;padding:5px 11px;background-color:#FFFFFF;border-color:#D7D7D7;padding:3px 9px;color:#191919;padding:0px 8px;}.css-light-up5kby::-moz-focus-inner{border-style:none;}.css-light-up5kby.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-light-up5kby{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-light-up5kby:hover{-webkit-text-decoration:none;text-decoration:none;background-color:rgba(104, 104, 104, 0.04);border:1px solid #686868;}@media (hover: none){.css-light-up5kby:hover{background-color:transparent;}}.css-light-up5kby.Mui-disabled{color:rgba(0, 0, 0, 0.26);border:1px solid #F1F1F1;}.css-light-up5kby:hover{box-shadow:none;}.css-light-up5kby.Mui-focusVisible{box-shadow:none;}.css-light-up5kby:active{box-shadow:none;}.css-light-up5kby.Mui-disabled{box-shadow:none;}.css-light-up5kby.Mui-disabled,.css-light-up5kby:disabled{color:#8E8E8E;background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-up5kby:focus,.css-light-up5kby.Mui-focusVisible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-up5kby:hover,.css-light-up5kby.Mui-hover{background-color:#F1F1F1;border-color:#D7D7D7;}.css-light-up5kby:active,.css-light-up5kby.Mui-active{background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-up5kby:focus{box-shadow:none;}.css-light-10lfzun{display:inherit;margin-right:8px;margin-left:-2px;}.css-light-10lfzun>*:nth-of-type(1){font-size:18px;}.css-light-10lfzun>*:first-child{font-size:1rem;height:1em;width:1em;}.css-light-1v33see{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-column-gap:4px;column-gap:4px;color:#686868;}@media (max-width:823.95px){.css-light-1v33see{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}.css-light-15pcnwm{background-color:#FFFFFF;color:#191919;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 16px 16px rgba(0, 0, 0, 0.1);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#F6F6F6;color:rgba(0, 0, 0, 0.87);box-shadow:none;height:64px;z-index:20;background-image:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:0;top:0;background-color:#FFFFFF;color:#1E212A;padding:0px 24px;background-color:#FFFFFF;position:relative;}@media print{.css-light-15pcnwm{position:absolute;}}@media (max-width:1167.95px){.css-light-15pcnwm{padding:0;}}.css-light-99yi95{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;max-width:100%;padding:0px 16px;max-width:1440px;width:inherit;padding:0;overflow:hidden;border-bottom:1px solid #E8E8E8;}@media (max-width:1167.95px){.css-light-99yi95{max-width:100%;padding:0px 24px;}}.css-light-3cyd2n{margin-right:24px;}.css-light-zrm49i{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.css-light-zrm49i>:not(:last-child){margin-right:16px;}.css-light-1nsqnny.Mui-focused .MuiAutocomplete-clearIndicator{visibility:visible;}@media (pointer: fine){.css-light-1nsqnny:hover .MuiAutocomplete-clearIndicator{visibility:visible;}}.css-light-1nsqnny .MuiAutocomplete-tag{margin:3px;max-width:calc(100% - 6px);}.css-light-1nsqnny .MuiAutocomplete-inputRoot{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.MuiAutocomplete-hasPopupIcon.css-light-1nsqnny .MuiAutocomplete-inputRoot,.MuiAutocomplete-hasClearIcon.css-light-1nsqnny .MuiAutocomplete-inputRoot{padding-right:30px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-light-1nsqnny .MuiAutocomplete-inputRoot{padding-right:56px;}.css-light-1nsqnny .MuiAutocomplete-inputRoot .MuiAutocomplete-input{width:0;min-width:30px;}.css-light-1nsqnny .MuiInput-root{padding-bottom:1px;}.css-light-1nsqnny .MuiInput-root .MuiInput-input{padding:4px 4px 4px 0px;}.css-light-1nsqnny .MuiInput-root.MuiInputBase-sizeSmall .MuiInput-input{padding:2px 4px 3px 0;}.css-light-1nsqnny .MuiOutlinedInput-root{padding:9px;}.MuiAutocomplete-hasPopupIcon.css-light-1nsqnny .MuiOutlinedInput-root,.MuiAutocomplete-hasClearIcon.css-light-1nsqnny .MuiOutlinedInput-root{padding-right:39px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-light-1nsqnny .MuiOutlinedInput-root{padding-right:65px;}.css-light-1nsqnny .MuiOutlinedInput-root .MuiAutocomplete-input{padding:7.5px 4px 7.5px 6px;}.css-light-1nsqnny .MuiOutlinedInput-root .MuiAutocomplete-endAdornment{right:9px;}.css-light-1nsqnny .MuiOutlinedInput-root.MuiInputBase-sizeSmall{padding:6px;}.css-light-1nsqnny .MuiOutlinedInput-root.MuiInputBase-sizeSmall .MuiAutocomplete-input{padding:2.5px 4px 2.5px 6px;}.css-light-1nsqnny .MuiFilledInput-root{padding-top:19px;padding-left:8px;}.MuiAutocomplete-hasPopupIcon.css-light-1nsqnny .MuiFilledInput-root,.MuiAutocomplete-hasClearIcon.css-light-1nsqnny .MuiFilledInput-root{padding-right:39px;}.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon.css-light-1nsqnny .MuiFilledInput-root{padding-right:65px;}.css-light-1nsqnny .MuiFilledInput-root .MuiFilledInput-input{padding:7px 4px;}.css-light-1nsqnny .MuiFilledInput-root .MuiAutocomplete-endAdornment{right:9px;}.css-light-1nsqnny .MuiFilledInput-root.MuiInputBase-sizeSmall{padding-bottom:1px;}.css-light-1nsqnny .MuiFilledInput-root.MuiInputBase-sizeSmall .MuiFilledInput-input{padding:2.5px 4px;}.css-light-1nsqnny .MuiInputBase-hiddenLabel{padding-top:8px;}.css-light-1nsqnny .MuiAutocomplete-input{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;text-overflow:ellipsis;opacity:1;}.css-light-1nsqnny .MuiAutocomplete-tag{margin:1px;}.css-light-1nsqnny .MuiAutocomplete-inputRoot{min-height:40px;}.css-light-1nsqnny .MuiAutocomplete-inputRoot[class*="MuiOutlinedInput-root"]{padding:2px 8px 2px 4px;}.css-light-1nsqnny .MuiAutocomplete-inputRoot[class*="MuiOutlinedInput-root"] .MuiAutocomplete-input{padding:4px 8px;}.css-light-1nsqnny .MuiAutocomplete-inputRoot[class*="MuiOutlinedInput-root"] .MuiAutocomplete-input:first-child{padding-left:14px;}.css-light-1nsqnny .MuiAutocomplete-inputRoot[class*="MuiOutlinedInput-root"] .MuiAutocomplete-endAdornment{right:6px;}.css-light-1lntznf{display:grid;grid-template-columns:minmax(0, 1fr);gap:24px;max-width:1216px;width:auto;margin:0 auto;width:260px;max-width:auto;margin:0;}@media (max-width:1167.95px){.css-light-1lntznf{max-width:100%;margin:0px 24px;}}@media (max-width:1207.95px){.css-light-1lntznf{display:none;}}.css-light-s3wuk0{font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:400;font-size:1rem;line-height:1.4375em;letter-spacing:0em;color:#191919;box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-size:0.875rem;line-height:1.57143;letter-spacing:0em;font-weight:400;margin:0;position:relative;border-radius:4px;padding-left:14px;background-color:#FFFFFF;width:auto;height:34px;}.css-light-s3wuk0.Mui-disabled{color:#686868;cursor:default;}.css-light-s3wuk0.Mui-disabled{background-color:#F1F1F1;color:#8E8E8E;}.css-light-s3wuk0:hover .MuiOutlinedInput-notchedOutline{border-color:#191919;}@media (hover: none){.css-light-s3wuk0:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-light-s3wuk0.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#3F59E4;border-width:2px;}.css-light-s3wuk0.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#C32F26;}.css-light-s3wuk0.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}.css-light-s3wuk0 .MuiOutlinedInput-notchedOutline{border-color:#8E8E8E;}.css-light-s3wuk0.Mui-disabled .MuiOutlinedInput-notchedOutline,.css-light-s3wuk0.Mui-disabled:hover .MuiOutlinedInput-notchedOutline{border-color:#D7D7D7;}.css-light-s3wuk0.Mui-disabled.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#C32F26;}.css-light-s3wuk0:hover .MuiOutlinedInput-notchedOutline{border-color:#686868;}.css-light-s3wuk0.Mui-focused .MuiOutlinedInput-notchedOutline{border-width:2px;border-color:#3F59E4;box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-s3wuk0.Mui-focused:hover .MuiOutlinedInput-notchedOutline{border-color:#3F59E4;box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-s3wuk0.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#C32F26;border-width:2px;}.css-light-s3wuk0.Mui-error.css-light-s3wuk0.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#C32F26;box-shadow:rgba(195, 47, 38, 0.25) 0px 0px 0px 0.25em;}.css-light-1b17vdj{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;padding-top:1px;height:unset;padding:9px 16px;padding-top:5px;padding-bottom:5px;padding:8.5px 14px;padding-left:0;padding:9px 16px;padding-top:6px;padding-bottom:6px;padding-left:12px;padding-right:12px;padding-left:0;}.css-light-1b17vdj::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1b17vdj::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1b17vdj:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1b17vdj::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1b17vdj:focus{outline:0;}.css-light-1b17vdj:invalid{box-shadow:none;}.css-light-1b17vdj::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1b17vdj:focus::-ms-input-placeholder{opacity:0.42;}.css-light-1b17vdj.Mui-disabled{opacity:1;-webkit-text-fill-color:#686868;}.css-light-1b17vdj:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-light-1b17vdj:-webkit-autofill{border-radius:inherit;}.css-light-1b17vdj[type='number']{padding-right:4px;}.css-light-3p6qou{text-align:left;position:absolute;bottom:0;right:0;top:-5px;left:0;margin:0;padding:0 8px;pointer-events:none;border-radius:inherit;border-style:solid;border-width:1px;overflow:hidden;min-width:0%;border-color:rgba(0, 0, 0, 0.23);top:0;-webkit-transition:box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-width 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-width 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-3p6qou legend{display:none;}.css-light-hdw1oc{float:unset;overflow:hidden;padding:0;line-height:11px;-webkit-transition:width 150ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:width 150ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;}.css-light-1ijv1n9{display:grid;gap:40px;margin-right:24px;grid-auto-columns:min-content;grid-auto-flow:column;grid-template-columns:none;}@media (min-width:0px){.css-light-1ijv1n9{grid-template-columns:minmax(0,1fr);}}@media (min-width:600px){.css-light-1ijv1n9{grid-template-columns:minmax(0,1fr);}}@media (min-width:960px){.css-light-1ijv1n9{grid-template-columns:repeat(2, minmax(0,1fr));}}@media (min-width:960px){.css-light-1ijv1n9{grid-template-columns:none;}}@media (max-width:1079.95px){.css-light-1ijv1n9{gap:16px;}}@media (max-width:959.95px){.css-light-1ijv1n9{display:none;}}.css-light-1rdp59y{margin:0;display:inline;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;border-radius:2px;outline:none;color:#191919;font-weight:500;white-space:nowrap;}.css-light-1rdp59y:focus-visible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-1rdp59y:hover{-webkit-text-decoration:none;text-decoration:none;color:#191919;}.css-light-1rdp59y:active{color:#191919;}.css-light-1rdp59y>.QuantumLink-icon{line-height:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.css-light-1rdp59y>svg{width:1em;height:1em;}.css-light-1rdp59y>svg:first-child{-webkit-margin-end:8px;margin-inline-end:8px;}.css-light-8og4x3{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:4px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0px 4px 0px 12px;}@media (max-width:959.95px){.css-light-8og4x3{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}}.css-light-1c8nkz9{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:#E8E8E8;border-bottom-width:0;margin-top:8px;margin-bottom:8px;height:auto;border-right-width:thin;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;border-color:#E8E8E8;}.css-light-1osspdq{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1rem;height:2.125rem;width:2.125rem;background-color:transparent;color:#191919;padding:0;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1osspdq::-moz-focus-inner{border-style:none;}.css-light-1osspdq.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-light-1osspdq{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-light-1osspdq:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-light-1osspdq:hover{background-color:transparent;}}.css-light-1osspdq.Mui-disabled{background-color:transparent;color:rgba(0, 0, 0, 0.26);}.css-light-1osspdq.Mui-disabled,.css-light-1osspdq:disabled{color:#8E8E8E;background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-1osspdq:hover,.css-light-1osspdq.Mui-hover{background-color:#F1F1F1;}.css-light-1osspdq:active,.css-light-1osspdq.Mui-active{background-color:#E8E8E8;}.css-light-1osspdq:focus,.css-light-1osspdq.Mui-focusVisible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-1osspdq.Mui-disabled{background-color:#F1F1F1;color:#686868;}.css-light-1osspdq>svg:first-child{height:1em;width:1em;}.css-light-yl2thz{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1rem;height:2.125rem;width:2.125rem;background-color:transparent;color:#191919;padding:0;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;display:inherit;}.css-light-yl2thz::-moz-focus-inner{border-style:none;}.css-light-yl2thz.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-light-yl2thz{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-light-yl2thz:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-light-yl2thz:hover{background-color:transparent;}}.css-light-yl2thz.Mui-disabled{background-color:transparent;color:rgba(0, 0, 0, 0.26);}.css-light-yl2thz.Mui-disabled,.css-light-yl2thz:disabled{color:#8E8E8E;background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-yl2thz:hover,.css-light-yl2thz.Mui-hover{background-color:#F1F1F1;}.css-light-yl2thz:active,.css-light-yl2thz.Mui-active{background-color:#E8E8E8;}.css-light-yl2thz:focus,.css-light-yl2thz.Mui-focusVisible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-yl2thz.Mui-disabled{background-color:#F1F1F1;color:#686868;}.css-light-yl2thz>svg:first-child{height:1em;width:1em;}@media (min-width:960px){.css-light-yl2thz{display:none;}}.css-light-yl2thz svg:first-child{width:1.5em;height:1.5em;}.css-light-1a66avx{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;z-index:0;}.css-light-1a66avx .MuiDrawer-paperAnchorTop{z-index:19;top:64px;padding:24px;bottom:0;}@media (min-width:960px){.css-light-1a66avx{display:none;}}.css-light-1etdfq6{background-color:#FFFFFF;color:#191919;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 6px 8px rgba(0, 0, 0, 0.1);overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:auto;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;z-index:1200;-webkit-overflow-scrolling:touch;position:fixed;top:0;outline:0;left:0;right:0;max-height:100%;border-bottom:1px solid #E8E8E8;}.css-light-absfm6{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-light-105k4h6{font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:400;font-size:1rem;line-height:1.4375em;letter-spacing:0em;color:#191919;box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-size:0.875rem;line-height:1.57143;letter-spacing:0em;font-weight:400;position:relative;border-radius:4px;padding-left:14px;background-color:#FFFFFF;width:auto;height:34px;}.css-light-105k4h6.Mui-disabled{color:#686868;cursor:default;}.css-light-105k4h6.Mui-disabled{background-color:#F1F1F1;color:#8E8E8E;}.css-light-105k4h6:hover .MuiOutlinedInput-notchedOutline{border-color:#191919;}@media (hover: none){.css-light-105k4h6:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-light-105k4h6.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#3F59E4;border-width:2px;}.css-light-105k4h6.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#C32F26;}.css-light-105k4h6.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}.css-light-105k4h6 .MuiOutlinedInput-notchedOutline{border-color:#8E8E8E;}.css-light-105k4h6.Mui-disabled .MuiOutlinedInput-notchedOutline,.css-light-105k4h6.Mui-disabled:hover .MuiOutlinedInput-notchedOutline{border-color:#D7D7D7;}.css-light-105k4h6.Mui-disabled.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#C32F26;}.css-light-105k4h6:hover .MuiOutlinedInput-notchedOutline{border-color:#686868;}.css-light-105k4h6.Mui-focused .MuiOutlinedInput-notchedOutline{border-width:2px;border-color:#3F59E4;box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-105k4h6.Mui-focused:hover .MuiOutlinedInput-notchedOutline{border-color:#3F59E4;box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-105k4h6.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#C32F26;border-width:2px;}.css-light-105k4h6.Mui-error.css-light-105k4h6.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#C32F26;box-shadow:rgba(195, 47, 38, 0.25) 0px 0px 0px 0.25em;}.css-light-1mamkk4{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;height:unset;padding:9px 16px;padding:16.5px 14px;padding-left:0;padding:9px 16px;padding-left:0;}.css-light-1mamkk4::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1mamkk4::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1mamkk4:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1mamkk4::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-light-1mamkk4:focus{outline:0;}.css-light-1mamkk4:invalid{box-shadow:none;}.css-light-1mamkk4::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-light-1mamkk4:focus::-ms-input-placeholder{opacity:0.42;}.css-light-1mamkk4.Mui-disabled{opacity:1;-webkit-text-fill-color:#686868;}.css-light-1mamkk4:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-light-1mamkk4:-webkit-autofill{border-radius:inherit;}.css-light-ezihch{display:grid;grid-template-columns:minmax(0, 1fr);gap:0px;overflow-y:auto;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-align-content:flex-start;-ms-flex-line-pack:flex-start;align-content:flex-start;margin:16px -24px 0px;}.css-light-1c09ki7{margin:0;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:500;font-size:1rem;line-height:1.5;letter-spacing:0em;display:inline;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;border-radius:2px;outline:none;color:#191919;border-bottom:1px solid #E8E8E8;height:72px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;white-space:nowrap;padding:0px 24px;}.css-light-1c09ki7:focus-visible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-1c09ki7:hover{-webkit-text-decoration:none;text-decoration:none;color:#191919;}.css-light-1c09ki7:active{color:#191919;}.css-light-1c09ki7>.QuantumLink-icon{line-height:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.css-light-1c09ki7>svg{width:1em;height:1em;}.css-light-1c09ki7>svg:first-child{-webkit-margin-end:8px;margin-inline-end:8px;}.css-light-po40j3{display:grid;gap:16px;grid-auto-columns:initial;grid-auto-flow:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-top:1px solid #E8E8E8;padding:16px 24px 0px;}@media (min-width:0px){.css-light-po40j3{grid-template-columns:1fr 1fr;}}@media (min-width:600px){.css-light-po40j3{grid-template-columns:1fr 1fr;}}@media (min-width:960px){.css-light-po40j3{grid-template-columns:1fr 1fr;}}@media (max-width:959.95px){.css-light-po40j3{display:grid;margin:0px -24px;}}@media (min-width:0px){.css-light-po40j3{grid-template-columns:1fr 1fr;}}@media (min-width:600px){.css-light-po40j3{grid-template-columns:1fr 1fr;}}@media (min-width:960px){.css-light-po40j3{grid-template-columns:1fr 1fr;}}.css-light-1wlfc9m{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:500;font-size:0.9375rem;line-height:1.57143;text-transform:capitalize;letter-spacing:0em;min-width:64px;padding:7px 21px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:1px solid rgba(104, 104, 104, 0.5);color:#686868;width:100%;box-shadow:none;padding:6px 12px;color:#191919;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;white-space:nowrap;width:100%;font-size:0.875rem;padding:5px 11px;background-color:#FFFFFF;border-color:#D7D7D7;padding:8px 15px;color:#191919;text-transform:none;-webkit-order:2;-ms-flex-order:2;order:2;grid-column:1/3;}.css-light-1wlfc9m::-moz-focus-inner{border-style:none;}.css-light-1wlfc9m.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-light-1wlfc9m{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-light-1wlfc9m:hover{-webkit-text-decoration:none;text-decoration:none;background-color:rgba(104, 104, 104, 0.04);border:1px solid #686868;}@media (hover: none){.css-light-1wlfc9m:hover{background-color:transparent;}}.css-light-1wlfc9m.Mui-disabled{color:rgba(0, 0, 0, 0.26);border:1px solid #F1F1F1;}.css-light-1wlfc9m:hover{box-shadow:none;}.css-light-1wlfc9m.Mui-focusVisible{box-shadow:none;}.css-light-1wlfc9m:active{box-shadow:none;}.css-light-1wlfc9m.Mui-disabled{box-shadow:none;}.css-light-1wlfc9m.Mui-disabled,.css-light-1wlfc9m:disabled{color:#8E8E8E;background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-1wlfc9m:focus,.css-light-1wlfc9m.Mui-focusVisible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-1wlfc9m:hover,.css-light-1wlfc9m.Mui-hover{background-color:#F1F1F1;border-color:#D7D7D7;}.css-light-1wlfc9m:active,.css-light-1wlfc9m.Mui-active{background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-1y9rv62{display:inherit;margin-right:-4px;margin-left:8px;}.css-light-1y9rv62>*:nth-of-type(1){font-size:22px;}.css-light-1y9rv62>*:first-child{font-size:1rem;height:1em;width:1em;}.css-light-1d1pobz{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:500;font-size:0.9375rem;line-height:1.57143;text-transform:capitalize;letter-spacing:0em;min-width:64px;padding:7px 21px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:1px solid currentColor;color:inherit;border-color:currentColor;width:100%;box-shadow:none;padding:6px 12px;color:#191919;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;white-space:nowrap;width:100%;font-size:0.875rem;padding:5px 11px;background-color:#FFFFFF;border-color:#D7D7D7;padding:8px 15px;text-transform:none;-webkit-order:1;-ms-flex-order:1;order:1;}.css-light-1d1pobz::-moz-focus-inner{border-style:none;}.css-light-1d1pobz.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-light-1d1pobz{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-light-1d1pobz:hover{-webkit-text-decoration:none;text-decoration:none;background-color:rgba(25, 25, 25, 0.04);}@media (hover: none){.css-light-1d1pobz:hover{background-color:transparent;}}.css-light-1d1pobz.Mui-disabled{color:rgba(0, 0, 0, 0.26);border:1px solid #F1F1F1;}.css-light-1d1pobz:hover{box-shadow:none;}.css-light-1d1pobz.Mui-focusVisible{box-shadow:none;}.css-light-1d1pobz:active{box-shadow:none;}.css-light-1d1pobz.Mui-disabled{box-shadow:none;}.css-light-1d1pobz.Mui-disabled,.css-light-1d1pobz:disabled{color:#8E8E8E;background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-1d1pobz:focus,.css-light-1d1pobz.Mui-focusVisible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-1f4mg9y{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:500;font-size:0.9375rem;line-height:1.57143;text-transform:capitalize;letter-spacing:0em;min-width:64px;padding:8px 22px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#3F59E4;box-shadow:0px 6px 8px rgba(0, 0, 0, 0.1);width:100%;box-shadow:none;padding:6px 12px;color:#191919;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;white-space:nowrap;width:100%;font-size:0.875rem;padding:9px 16px;background-color:#3F59E4;color:#FFFFFF;text-transform:none;}.css-light-1f4mg9y::-moz-focus-inner{border-style:none;}.css-light-1f4mg9y.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-light-1f4mg9y{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-light-1f4mg9y:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#263588;box-shadow:0px 16px 16px rgba(0, 0, 0, 0.1);}@media (hover: none){.css-light-1f4mg9y:hover{background-color:#3F59E4;}}.css-light-1f4mg9y:active{box-shadow:0px 16px 16px rgba(0, 0, 0, 0.1);}.css-light-1f4mg9y.Mui-focusVisible{box-shadow:0px 16px 16px rgba(0, 0, 0, 0.1);}.css-light-1f4mg9y.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:#F1F1F1;}.css-light-1f4mg9y:hover{box-shadow:none;}.css-light-1f4mg9y.Mui-focusVisible{box-shadow:none;}.css-light-1f4mg9y:active{box-shadow:none;}.css-light-1f4mg9y.Mui-disabled{box-shadow:none;}.css-light-1f4mg9y.Mui-disabled,.css-light-1f4mg9y:disabled{color:#8E8E8E;background-color:#E8E8E8;border-color:#D7D7D7;}.css-light-1f4mg9y:focus,.css-light-1f4mg9y.Mui-focusVisible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-1f4mg9y:hover,.css-light-1f4mg9y.Mui-hover{background-color:#3449BA;}.css-light-1f4mg9y:active,.css-light-1f4mg9y.Mui-active{background-color:#263588;}.css-light-lj7bu0{margin:0;display:inline;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;border-radius:2px;outline:none;color:#3F59E4;font-weight:500;white-space:nowrap;}.css-light-lj7bu0:focus-visible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-lj7bu0:hover{-webkit-text-decoration:none;text-decoration:none;color:#3449BA;}.css-light-lj7bu0:active{color:#263588;}.css-light-lj7bu0>.QuantumLink-icon{line-height:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.css-light-lj7bu0>svg{width:1em;height:1em;}.css-light-lj7bu0>svg:first-child{-webkit-margin-end:8px;margin-inline-end:8px;}.css-light-gjlwnj{margin:0;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-weight:500;font-size:1rem;line-height:1.5;letter-spacing:0em;display:inline;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;border-radius:2px;outline:none;color:#3F59E4;border-bottom:1px solid #E8E8E8;height:72px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;white-space:nowrap;padding:0px 24px;}.css-light-gjlwnj:focus-visible{box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}.css-light-gjlwnj:hover{-webkit-text-decoration:none;text-decoration:none;color:#3449BA;}.css-light-gjlwnj:active{color:#263588;}.css-light-gjlwnj>.QuantumLink-icon{line-height:1;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.css-light-gjlwnj>svg{width:1em;height:1em;}.css-light-gjlwnj>svg:first-child{-webkit-margin-end:8px;margin-inline-end:8px;}.css-light-rk293q{padding-left:0;margin-left:8px;max-width:292px;font-weight:400;padding:8px;font-family:Inter Var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica,Arial,sans-serif;font-size:0.75rem;line-height:1.4rem;letter-spacing:0em;color:#686868;padding-top:4px;padding-bottom:4px;border-radius:4px;-webkit-text-decoration:none;text-decoration:none;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;background:transparent;border:none;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;--identicons-color-light:#D7D7D7;--identicons-color-base:#B9B9B9;--identicons-color-dark:#686868;}.css-light-rk293q .QuantumSidebarLink-title{color:#3F59E4;}.css-light-rk293q:focus{box-shadow:none;}.css-light-rk293q .QuantumSidebarLink-startIcon{font-size:1rem;}.css-light-rk293q:hover{color:#3F59E4;-webkit-text-decoration:none;text-decoration:none;--identicons-color-light:#CFD6F8;--identicons-color-base:#AAB6F3;--identicons-color-dark:#3F59E4;}.css-light-rk293q:focus-visible{outline:none;box-shadow:rgba(63, 89, 228, 0.25) 0px 0px 0px 0.25em;}
Skip to main content Manage Users
Manage Access
Docs Manage Users Cookies Authenticate Single-Page Apps With Cookies
Authenticate Single-Page Apps With Cookies Securing a single-page app (SPA) can be a challenge. However, if your SPA meets the following criteria, then you can simplify your implementation by using cookies to authenticate.
Served to the client using your own backend.
Has the same domain as your backend.
Makes API calls that require authentication to your backend.
Here is a description of this approach as well as a sample implementation using Node.js .
The steps below show how tokens are retrieved and used. In this approach, the Implicit Flow with Form Post is used instead of a traditional Authorization Code Flow with Proof Key for Code Exchange . This is because Form Post Response Mode is a simpler way to implement login when it’s your own resource you are requesting to access.
The user accesses a protected route using the browser, or performs some action that requires an authentication step to be initiated (such as clicking on a Login button)
The browser client redirects to a /login
route on the backend, or to the protected route depending on what the user did
The backend constructs a request to the authorization server’s /authorize
endpoint and redirects the browser client there
The user is prompted to authenticate themselves using whatever method the authorization server presents
The authorization server POSTs the tokens to the redirect URI as a URL-encoded form post. The backend is able to retrieve those tokens by parsing the body data.
At this point, the user is authenticated and the backend has the required tokens. A cookie can now be created to represent this state on the client. The client browser is then redirected to a route that serves the SPA and also receives the authentication cookie.
From now on, this cookie is traded between the client and backend when API calls are made using an AJAX call. On each request, the backend verifies if the cookie is still valid and if so, allows the request to continue.
Invalid or missing cookies When implementing this approach you'll need to handle cases where the authentication cookie is invalid or missing. The API call to the backend from the client happens in the background, so the client has to deal with any response from the server indicating the user should reauthenticate.
In the following sample application, this case is handled in a naive way by prompting the user to re-authenticate if the API call results in a 302 Redirect result. The 302 occurs because, upon unsuccessful validation of the cookie, the server tries to redirect to the Authorization endpoint of the authorization server and sends this response to the client.
The example application uses Node.js and Express to demonstrate the concepts covered above.
To follow along, make sure you have the latest version of Node installed.
Once Node is installed, download or clone the source code and open the project folder inside a terminal window.
// Clone the tutorial respository using SSH
git clone [email protected] :auth0-blog/spa-cookie-demo
// ... or if you use HTTPS:
git clone https://github.com/auth0-blog/spa-cookie-demo.git
// Move into the project directory
cd spa-cookie-demo
The master
branch represents the state of the application before any authentication is added. If you would like to refer to the final version of the application, check out the with-oidc
branch:
git checkout with-oidc
Initialize the Node.js app Install the application dependencies by running npm install
from your terminal window. To run the application, use npm run dev
. This starts the Express server. Go to http://localhost:3000 in your browser to view the application.
The development servers uses nodemon
, which automatically restarts whenever it detects any file changes.
With the application open at http://localhost:3000 , click the Call API button. You should see a message displayed on the screen.
Note that you were able to make the API call without being logged in. Let's fix that by adding some middleware that requires the user to authenticate before the API call can be made.
For the application to work with authentication, express-openid-connect
requires some environment variables to be present. For this application, these variables can be specified in a .env
file. Create a .env
file in the root of the project directory and populate it with the following:
ISSUER_BASE_URL=<YOUR OIDC URL>
CLIENT_ID=<YOUR OIDC CLIENT ID>
BASE_URL=http://localhost:3000
APP_SESSION_SECRET=<YOUR SECRET VALUE>
Go to Dashboard > Applications > Applications and click Create Application .
Name your new application, select Regular Web Applications , and click Create
In the Settings for your new app, add http:/localhost:3000/callback
to Allowed Callback URLs .
Add http:/localhost:3000
to Allowed Logout URLs .
Click Save Changes .
Go to Dashboard > Authentication > Social and set up some social connections. Enable them for your app in the Application options in the Connections tab. The example uses username/password database, Facebook, Google, and X.
On the Settings screen, note the domain and client ID settings at the top.
There are two values that need to be configured as part of the application. Reopen the .env
file and set these values:
ISSUER_BASE_URL={yourDomain}
CLIENT_ID={yourClientId}
BASE_URL=http://localhost:3000
APP_SESSION_SECRET=<YOUR SECRET VALUE>
With the server and environment configuration done, find your browser window that has the application open. If you've closed the browser and stopped the server, run the following from the terminal to restart the application:
npm run dev
Open http://localhost:3000 in the browser. From a user interface perspective, the app should look the same, however this time when the Call API button is clicked, you should receive a warning that the user is not logged in. Also note that you do not see the "Hello, World" message as before since the call to the API has been rejected.
Click Log in now to log in. Once you have been authenticated, you'll return to the app and see an updated UI that reflects your new logged-in state. You should be able to press the Call API button once more to invoke an API call to the server, and it now works.
Click the Profile link at the top of the page to show user information retrieved from the ID token.
Was this article helpful?