@font-face {
    font-family: "UBUNTU";
    src: url(/fonts/Ubuntu-Regular.ttf) format("truetype");
}

@font-face {
    font-family: "Outfit";
    src: url(/fonts/Outfit-VariableFont_wght.ttf) format("truetype");
    
    font-style: bold;
    font-weight: bold;
    font-variant: bold;
}

@font-face {
    font-family: "Outfit";
    src: url(/fonts/Outfit-VariableFont_wght.ttf) format("truetype");
    
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
}

:root {
    --body-font: "Ubuntu", Arial, Helvetica, sans-serif;
    --title-font: "Outfit", Arial, Helvetica, sans-serif;
    --text-color: #333;
    --bg-white: #fafafa;
    --center-container-max-width: 1170px;
    --top-bar-background: #2c3645;
    --top-bar-color: #c8c8c8;
    --title-color: #404560;
}

*[hidden] {
    display: none !important;
}

s {
  text-decoration: none;
    position: relative;
}

s::before{
    content: '';
    width: 100%;
    position: absolute;
    right: 0;
    top: calc( 50% - 1.5px );
    border-bottom: 3px solid #970505;
}

fa_icon {
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome;
    font-size: 14px;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

fa_icon[fa_which]::before {
    content: attr(fa_which);
}

.color-green {
    color: #008000;
}

.margin-bottom-1em {
    margin-bottom: 1em;
}

.info_table {
    --colgap: .8em;
    --rowgap: .4em;
    --c1: max-content;
    align-items: center;
}

.info_table > *:nth-child(2n+1) {
    font-weight: bold;
    justify-self: end;
}

.info_table > *:nth-child(2n+2) {
    justify-self: start;
}

.info_table .displayer_credit_card {
    display: flex;
    align-items: center;
}

.info_table .displayer_credit_card .brand {
    font-size: 2rem;
    line-height: 0;
    color: var(--title-color);
}

.info_table .displayer_credit_card .dots {
    font-size: .6rem;
    color: var(--title-color);
    padding: 0 .4em;
}

textarea {
    font-size: 1rem;
    font-family: inherit;
}

h1, h2, h3, label, button {
    all: unset;
}

button {
    cursor: pointer;
}

button:focus, button::-moz-focus-inner {
    outline: 0;
    border: none;
}

h2 {
    font-family: var(--title-font);
    font-size: 2.8rem;
    font-weight: bold;
    display: inline-block;
    margin-bottom: .5em;
}

p {
    margin-top: 0;
}

dd_popup h3 {
    font-family: var(--title-font);
    font-size: 1.5rem;
    font-weight: bold;
    color: #222c42;
    display: block;
    margin-bottom: .3em;
    text-transform: unset;
}

dd_popup loading {
    text-align: center;
}

dd_popup loading p {
    margin: 0;
    margin-bottom: .8em;
}

dd_popup notification {
    text-align: center;
}

dd_spinner {
    --size: 50px;
}

button.style1 {
    text-transform: uppercase;
    font-size: .7rem;
    color: #5a5e66;
    background: #d8d8d8;
    font-weight: bold;
    padding: 0 .4em;
    border-radius: 4px;
    cursor: pointer;
}

button.style1:hover {
    background: #404560;
    color: #eeeeee;
}

top_bar_container {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    width: 100%;
    box-sizing: border-box;
    background: var(--top-bar-background);
    color: var(--top-bar-color);
    align-items: center;
    line-height: 1;
}

top_bar_container cell:nth-child(1) a {
    display: inline-block;
    padding: .2em .5em;
}

top_bar_container cell:nth-child(2) {
    justify-self: center;
    font-size: 1.4rem;
    font-weight: bold;
}

top_bar_container cell:nth-child(3) {
    justify-self: right;
    font-size: 1.2rem;
    position: relative;
    height: 100%;
}

top_bar_container menu_button {
    display: flex;
    padding: 0 .5em;
    cursor: pointer;
    height: 100%;
    align-items: center;
    border-radius: 5px 0 0 5px;
}

top_bar_container menu_button:hover {
    color: #fff;
    background: #525e6f;
}

top_bar_container menu_button username {
    margin-right: .4em;
}

top_bar_container menu_container {
    display: block;
    position: absolute;
    top: 100%;
    right: 0;
    background: var(--top-bar-background);
    white-space: nowrap;
    border-radius: 0 0 0 8px;
    border-left: 1px solid #bbb;
    border-bottom: 1px solid #bbb;
}

top_bar_container menu_container menu_option {
    display: block;
    cursor: pointer;
    padding: .2em .5em;
    font-size: 1.2rem;
    line-height: 1.3rem;
    border-radius: 8px;
}

top_bar_container menu_container menu_option:hover {
    color: white;
    background: #525e6f;
}

center_container {
    display: block;
    width: 100%;
    max-width: var(--center-container-max-width);
    margin: auto;
    text-align: center;
    padding: 1em .5em 3em .5em;
}

.summary_area .user_plan .footer {
    cursor: pointer;
}

.summary_area .user_plan .footer:hover {
    color: #2b2573;
    background: #bab7db;
}

.summary_area payment_info_area h3 {
    display: flex;
    justify-content: center;
    align-items: center;
}

.summary_area h3 icon {
    font-size: 1.5rem !important;
    margin-left: .5em;
    color: #8b909d;
    cursor: pointer;
}

.summary_area h3 icon:hover {
    color: #434d5c;
}

summary_grid {
    display: grid;
    grid-template-columns: repeat(3, max-content);
    justify-content: center;
    gap: 2em;
}

.manage_keys no_keys_placeholder {
    display: block;
    font-style: italic;
    color: #777;
    text-align: left;
}

.manage_keys inactive_keys_area {
    display: block;
    text-align: left;
}

.manage_keys h3 {
    display: inline-block;
    color: #666;
    font-size: 1.1rem;
    margin: 0;
    text-align: left;
}

.manage_keys h3 i {
    font-size: 1.5rem !important;
    padding-right: .5em;
}

.manage_keys inactive_keys_area dd_table {
    --default-col-width: max-content;
    --colgap: 1em;
    --rowgap: .1em;
    
    --header-weight: bold;
    margin-top: .8em;
}

.manage_keys inactive_keys_area dd_table cell:nth-child(3n+2) {
    text-align: center;
}

.manage_keys inactive_keys_area button.purchase_keys {
    font-weight: bold;
    background: #d1d1d1;
    color: #808080;
}

.manage_keys inactive_keys_area button.purchase_keys:hover {
    background: #434d5c;
    color: #e7eff9;
}

.manage_keys active_keys_area {
    display: block;
    margin-top: 4em;
}

.manage_keys active_keys_area h3 {
    color: #2f770e;
    white-space: nowrap;
}

.manage_keys active_keys_area .edit_description,
.manage_keys active_keys_area .deactivate_keys {
    display: flex;
    align-items: center;
    opacity: 1;
    visibility: visible;
    transition: opacity .2s ease, visibility .2s;
}

.manage_keys active_keys_area .edit_description.hidden,
.manage_keys active_keys_area .deactivate_keys.hidden {
    opacity: 0;
    visibility: hidden;
}

.manage_keys active_keys_area .edit_description fa_icon,
.manage_keys active_keys_area .deactivate_keys fa_icon {
    font-size: 1.2em;
    margin-right: .2em;
}

.manage_keys active_keys_area scroller_wrapper {
    display: block;
    padding-bottom: .8em;
}

.manage_keys active_keys_area dd_table {
    --default-col-width: max-content;
    --rowgap: 1px;
    --c5: 350px;
    
    --header-weight: bold;
    
    text-align: left;
    border-radius: .2em;
    overflow: hidden;
    
    -webkit-box-shadow: 0px 0px 15px 2px rgba(0,0,0,0.15); 
    box-shadow: 0px 0px 15px 2px rgba(0,0,0,0.15);
}

.manage_keys active_keys_area dd_table cell {
    padding: 0 .5em;
    background: #fbfbfb;
}

.manage_keys active_keys_area dd_table row.header cell {
    background: #cfd3d8;
    padding-top: .8em;
    padding-bottom: .8em;
}

.manage_keys active_keys_area dd_table .header sort_icon {
    padding-left: .5em;
    visibility: hidden;
    opacity: .7;
}

.manage_keys active_keys_area dd_table .header cell {
    cursor: pointer;
}

.manage_keys active_keys_area dd_table input[type="checkbox"] {
    accent-color: #000080;
}

#center_container {
    width: 90%;
    max-width: 1170px; 
    height: 100%;
    border-radius: 5px; 
    padding-bottom: 40px;
}

#top_bar_container {
    margin-top: 15px;
    margin-bottom: 10px;
    border-radius: 5px;
    color: black;
    font-size: 22px;
    background-color: #434d5c;
    color: white;
    padding: 4px;
    height: 44px;
}

#page_body {
    margin-top: 10px;
}

#page_footer {
    margin-top: 15px; 
    border-radius: 5px; 
    font-size: 1.1rem;
    font-weight: bold;
    margin-bottom: 10px; 
    background-color: #434d5c; 
    color: white; 
    padding-top: 4px; 
    padding-bottom: 4px;
}

#initial_area .side_menu {
    background: white;
    width: calc(22% - 15px);
    min-width: calc(22% - 15px);
    max-width: calc(22% - 15px);
    padding: 20px;
    border-radius: 5px;
    margin-right: 15px;
}

#initial_area .side_menu ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

#initial_area .side_menu ul li {
    margin-bottom: 8px;
    cursor: default;
    color: #555;
}

#initial_area .side_menu ul li:first-child {
    color: black;
    font-size: 1.4rem;
    font-weight: bold;
    cursor: default;
}

#initial_area .side_menu h5 {
    cursor: default;
}

#initial_area .side_menu ul li:hover:not([disabled]) {
    color: black;
    cursor: pointer;
}

#initial_area .side_menu ul li.selected {
    color: blue;
}

#initial_area .main_area {
    background: white;
    padding: 20px;
    border-radius: 5px;
    width: 78%;
}

.summary_area .unused_keys_area .key_entry {
    margin-bottom: 8px;
    text-align: center;
    padding: .2em;
    border-radius: 4px;
    background: #8cbcd9;
    cursor: pointer;
    line-height: 1;
    min-width: 120px;
}

.summary_area .unused_keys_area .key_entry:hover {
    box-shadow: 1px 0 .3rem #bbb, -1px 0 .3rem #bbb;
}

.summary_area .unused_keys_area .key_entry > span {
    font-size: 0.85rem;
}

#header h1 {
    display:block;
    float:left;
    line-height:70px;
    margin-left:17px;
    width:230px;
    color:#FFFFFF;
    text-align:left;
    font-size:23px;
    font-weight:bold;
    float:left;
}

#header ul {
    padding: 0px;
    list-style-type: none;
    height:21px;
    text-align:center;
    height:85px;
    overflow:hidden;
}

#header ul li , #header ul li a, #header ul li a:visited{
    display:block;
    float:left;
    margin: 0px;
    text-align:center;
    white-space: pre-wrap;
    line-height:72px;
    width:133px;
    color:#FFFFFF;

    font-size:16px;
    font-weight:bold;
    text-decoration:none;
}

#header ul li a:hover{
    color:#CCCCCC;
}

#main {
    margin-top:10px;
    margin-bottom:10px;
}

#main .main_top {
    height:85px;
    width:921px;
    background-image:url(/res/main_top.png);
    background-repeat:no-repeat;
    text-align: left;
    padding: 0;
    margin: 0;
    margin-bottom:-1px;
}

#main .main_body {
    padding-left:  30px;
    padding-right: 30px;
    height:auto;
    width:921px;
    background-image:url(/res/main_body.png);
    background-repeat:repeat-y;
    color:#000000;
    padding-bottom:20px;
}


#main .main_top div {
    font-size:32px;
    font-weight:bold;
    text-align: left;

    line-height:85px;
    color:#000000;
    background-position:right;
    background-repeat:no-repeat;
    margin: 0;
    width: 100%;
    position: absolute;
    text-align: center;
}

#main .main_body p {
    font-size: 18px;
    text-align: center;
    letter-spacing:1px;
    padding-bottom:15px;
    padding-left:20px;
    padding-right:20px;
}

#main .main_bottom {
    height:8px;
    width:921px;
    background-image:url(/res/main_bottom.png);
    background-repeat:no-repeat;
}


#page {
    font-family: "Helvetica Neue", Arial, sans-serif;
    margin: 0 auto 0 auto; 
    margin-top:25px;
    display: block; 
    height:auto;
    position: relative; 
    width: 921px;
}

#header {
    background-image:url(/res/header.png);
    background-repeat:no-repeat;
    width:921px;
    height:72px;
}

#footer {
    display:block;
    width: 921px;
    height:74px;
    background: url(/res/footer.png) no-repeat;
    text-align:center;
    font-size:16px;
    line-height:75px;
}

#footer p{
    padding-right:20px;
    text-align:center;
}

#footer, #footer a, #footer a:visited{
    color:#FFFFFF;
}

#footer a:hover{
    text-decoration:none;
    color:#CCCCCC;
}

.small_spinner {
    border: 7px solid #f3f3f3;
    border-top: 7px solid #555555;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin 2s linear infinite;
    margin: 0 auto;
}

.small_spinner2 {
    border: 7px solid #89c4c4;
    border-top: 7px solid #555555;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin 2s linear infinite;
    margin: 0 auto;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.shadow {
    box-shadow: 3px 0 .4em #aaa, -3px 0 .4em #aaa;
}

.centralizer {
    width: 100%;
}

.centralized {
    display: table;
    margin: 0 auto;
}

.vertical_centralizer {
    height: 100%; 
    display: flex;
    flex-direction: row;
    align-items: center;
}

.horizontal_centralizer {
    width: 100%; 
    display: flex;
    flex-direction: column;
    align-items: center; 
    justify-content: center;
}

.stacker_bottom_up {
    display: flex;
    flex-direction: column-reverse;
}

.stacker_right_left {
    display: flex;
    flex-direction: row-reverse;
}

.stacker_left_right {
    display: flex;
    flex-direction: row;
}

.change_sub_plan_area step_tabs {
    display: grid;
    grid-template-columns: repeat(3, max-content);
    gap: 1em;
    margin-bottom: 1.4em;
}

.change_sub_plan_area .key_selection_table {
    --default-col-width: max-content;
    --header-font-size: .9rem;
    --header-color: var(--title-color);
    --header-weight: bold;
    --header-text-transform: uppercase;
    --header-display: flex;
    --header-align-items: center;
    --header-text-align: center;
    --header-justify-content: center;
    --header-line-height: 1rem;
    --rowgap: .5em;
    --colgap: 1em;
    --c2: 120px;
    --c2-text-align: left;
    
    margin: 1em auto 0 auto;
    align-items: center;
    background: #f5f5f5;
    padding: .5em .5em 1.5em .5em;
    border: 1px solid #ccc;
}

.change_sub_plan_area .key_selection_table input.quantity_selection {
    width: 80px;
}

.change_sub_plan_area .key_selection_table .courtesy {
    font-size: .85em;
    color: var(--grey30);
    font-style: italic;
    cursor: pointer;
}

.change_sub_plan_area .key_selection_table .add_plan_button {
    text-transform: uppercase;
    font-weight: bold;
    font-size: .8rem;
    background: #9bdf9b;
    color: #588a65;
    border-radius: 4px;
    padding: 0 .3em;
    display: flex;
    width: max-content;
    align-items: center;
    margin: auto;
}

.change_sub_plan_area .key_selection_table .add_plan_button i {
    font-size: 1.1rem !important;
    margin-right: .3em;
}

.change_sub_plan_area .key_selection_table .add_plan_button:hover {
    color: hsl(var(--green1-hs), 20%);
}

.change_sub_plan_area .key_selection_table .remove_plan_button {
    font-size: 1.2rem;
    cursor: pointer;
}

.change_sub_plan_area .key_selection_table .remove_plan_button:hover {
    color: #990202;
}

personal_opt_server_area {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 1em;
}

personal_opt_server_area .info_table {
    margin-bottom: .75em;
}

#step_1_area .tools_lists_container {
    text-align: left;
    width: 100%;
}

#step_1_area .tools_lists_container button.show_included {
    font-size: .85rem;
    font-weight: bold;
    color: #555;
    text-wrap: nowrap;
    display: flex;
    align-items: center;
}

#step_1_area .tools_lists_container button.show_included i {
    font-size: 1.3rem !important;
    font-weight: bold !important;
    display: inline-block;
    margin-right: .3em;
}

#step_1_area .tool_options input {
    width: max-content;
}

#step_1_area .tool_options {
    list-style: none;
    margin: 0;
    padding-left: 0em;
    width: 100%;
    max-width: 100%;
}

#step_1_area .tool_options ul {
    width: 100%;
}

#step_1_area .tool_options li {
    padding-left: 0em;
    display: flex;
    justify-content: space-between;
    width: 100%;
    color: #444;
    cursor: pointer;
}

#step_1_area .tool_options li:hover {
    color: black;
}

#step_1_area .tool_options li input {
    pointer-events: none;
}

#step_1_area .tool_options li span {
    flex-grow: 1;
}

#step_1_area .tool_options li price {
    width: 100px;
    display: inline-block;
}

#step_1_area .tool_options li.selected {
    color: black;
}

#step_1_area .tool_options ul li {
    border-left: 2px solid #999;
    padding-left: .8em;
}

#step_1_area .tool_options.included {
    margin-bottom: .5em;
}

.change_sub_plan_area pay_info_area {
    display: block;
    margin-top: 1.8em;
}

step_tabs dd-tab {
    display: inline-block;
    line-height: 1.5;
    padding: 3px 15px;
    --button-font-size: .9rem;
    --button-width: 150px;
    --button-border-radius: 8px;
    --button-color: #666;
    --button-bg: #ddd;
    --button-cursor: default;
    --button-font-family: var(--title-font);
    --button-active-bg: #b0ddb0;
    --button-active-color: #365b10;
}

.plan_info {
    text-align: center;
    width: 150px;
    display: block;
    margin-right: 5px;
}

.billing_frequency_area {
    margin-bottom: 10px;
}

.billing_frequency_area .monthly, 
.billing_frequency_area .annual {
    border: 3px solid #555;
    border-radius: 20px;
    padding: 0.25rem;
    color: #222;
    margin: 0 5px 0 5px;
    cursor: pointer;
    font-size: 1rem;
    font-weight: bold;
}

.billing_frequency_area .monthly:active, 
.billing_frequency_area .annual:active {
    -moz-box-shadow:    inset 0 0 5px #aaa;
    -webkit-box-shadow: inset 0 0 5px #aaa;
    box-shadow:         inset 0 0 5px #aaa;
}

.billing_frequency_area .monthly.active, 
.billing_frequency_area .annual.active {
    border-color: green;
    background: green;
    color: white;
}

.plan_info_name {
    font-weight: bold;
    background: #ddd;
    border-radius: 5px;
    height: 50px;
}

.form_labels {
    padding-right: 10px;
}

.form_labels > div {
    height: 30px;
    font-weight: bold;
    margin-bottom: 5px;
}

.form_values > div {
    height: 30px;
    margin-bottom: 5px;
}

input.cc_expire_month, input.cc_expire_year {
    width: 45px;
}

input.cc_cvv {
    width: 60px;
}

#subscription_plans {
    overflow: auto;
    padding-bottom: 8px;
    display: flex;
    gap: 10px;
}

.subscription_plan_selector {
    cursor: pointer;
    min-width: 130px;
    display: flex;
    flex-direction: column;
}

.trial_note {
    font-weight: bold;
    font-size: .65rem;
    color: #2b2573;
    background: #d0cee4;
    border: 1px solid #999;
    border-radius: 4px;
    width: max-content;
    justify-self: center;
    align-self: center;
    padding: 0 .3em;
    margin-bottom: -.5rem;
    z-index: 1;
}

.subscription_plan_selector .name {
    text-align: center;
    border-radius: 4px;
    margin-bottom: 8px;
    font-weight: bold;
    background: #434d5c;
    color: white;
    height: 64px;
    font-size: 1.3rem;
    line-height: 1.05;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-family: var(--title-font);
    overflow: visible;
    transition: all 200ms ease;
}

.subscription_plan_selector .body {
    text-align: center;
    border-radius: 4px;
    background: #d0cee4;
    font-size: 0.9rem;
}

.subscription_plan_selector .body > span:not(.price) {
    display: block;
    height: 1.2rem;
}

.subscription_plan_selector .price {
    font-size: 1.2rem;
    color: #2b2573;
    font-family: var(--title-font);
    font-weight: bold;
    line-height: 1.5;
}
    
.subscription_plan_selector .footer {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    align-items: center; 
    justify-content: center;
    font-weight: bold;
    font-size: 0.85rem;
    border-radius: 4px;
    background: #d0cee4;
    color: #0255ae;
    height: 30px;
}

.subscription_plan_selector .footer > div {
    display: flex;
    flex-direction: row;
}

.subscription_plan_selector .footer i {
    font-size: 1.2rem;
    padding-left: 4px;
}

.subscription_plan_selector .footer a {
    text-align: center; 
    line-height: 1;
    color: #0255ae;
}

.subscription_plan_selector .arrow {
    color: transparent;
}

.subscription_plan_selector.active .name {
    background: #008000;
}

.subscription_plan_selector.active .body {
    background: #b0ddb0;
}

.subscription_plan_selector.active .price {
    color: #365b10;
}

.subscription_plan_selector.active .footer {
    background: #acd7a6;
    color: #003300;
}

.subscription_plan_selector.active .footer a {
    color: #003300;
}

.subscription_plan_selector.active .arrow {
    color: #df7426;
}

.subscription_plan_selector:hover:not(.active) .name {
    background: #080948;
}

.subscription_plan_selector:hover:not(.active) .price {
    color: black;
}

.plan_info_icon {
    font-size: 1.2rem;
    line-height: 1;
}

.plan_info_icon.times {
    color: #888 !important;
}

.plan_info_icon.checkmark {
    position: relative;
    color: #008000;
}

.plan_info_icon.checkmark .info {
    position: absolute;
    color: #8a8a8a;
    font-size: .9rem;
    padding-left: .3em;
    top: 50%;
    transform: translateY(-50%);
}

.plan_info_icon.checkmark:hover .info {
    color: #595959;
}

#subscription_plan_labels .name {
    text-align: center;
    border-radius: 4px;
    margin-bottom: 8px;
    font-weight: bold;
    background: #ddd;
    color: #333;
    padding-left: 4px;
    padding-right: 4px;
    height: 64px;
    font-size: 1.3rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

#subscription_plan_labels .body {
    text-align: center;
    border-radius: 4px;
    background: #ddd;
    color: #333;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
    font-size: 0.9rem;
}

#subscription_plan_labels .body > span:not(.price) {
    display: block;
    height: 1.2rem;
}

#subscription_plan_labels .price {
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.5;
}

.user_plan dd_table {
    --colgap: .5em;
}

.user_plan dd_table > *:nth-child(2n+1) {
    justify-self: left;
}

.user_plan dd_table > *:nth-child(2n+2) {
    color: #111;
}

.user_plan .name {
    text-align: center;
    border-radius: 4px;
    margin-bottom: 8px;
    font-weight: bold;
    font-family: var(--title-font);
    background: #434d5c;
    color: #eeeeee;
    padding-left: 4px;
    padding-right: 4px;
    height: 64px;
    font-size: 1.4rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.user_plan .body {
    text-align: center;
    border-radius: 4px;
    background: #d0cee4;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
    font-size: 0.9rem;
    line-height: 1.5;
}

.user_plan .body .price fa_icon {
    margin-right: .3em;
}

.user_plan .body .price fa_icon:hover {
    color: #000;
}

.user_plan .body label i,
#subscription_plan_labels .body > span i {
    margin-right: .4em;
    color: rgba(0,0,0, .4);
}

.user_plan .body label i:hover,
#subscription_plan_labels .body > span i:hover {
    color: rgba(0,0,0, .6);
}

.body label.projects i { --dd-tooltip-content: "How many projects you can have" }
.body label.collaborators i { --dd-tooltip-content: "How many collaborators can be online simultaneously in your projects" }
.body label.persistent_exec i { --dd-tooltip-content: "Processes started by you keep running while they are away" }
.body label.parallel_exec i { --dd-tooltip-content: "How many processes you can run in parallel in a project" }
.body label.terminal_lines i { --dd-tooltip-content: "How many lines a project terminal can display" }
.body label.files_per_project i { --dd-tooltip-content: "How many files you can have in a project" }
.body label.project_size i { --dd-tooltip-content: "How large can your projects be" }
.body label.jobs_per_month i { --dd-tooltip-content: "How many processes you can execute per month" }
.body label.open_browser_tabs i { --dd-tooltip-content: "How many browser tabs you can have open at the same time" }
.body label.neos_use i { --dd-tooltip-content: "User can use NEOS (neos terminal command)" }
.body label.glpsol_use i { --dd-tooltip-content: "User can use GLPSOL (glpsol terminal command)" }
.body label.opt_server_use i { --dd-tooltip-content: "User can use Opt-Servers" }
.body label.google_drive_use i { --dd-tooltip-content: "User can use Google Sheets directly from PIFOP" }
.body label.max_opt_servers i { --dd-tooltip-content: "How many Opt-Servers can you host" }
.body label.provisioned_opt_server i { --dd-tooltip-content: "User can have an Opt-Server provisioned by us" }
.body label.max_opt_server_simult_jobs i { --dd-tooltip-content: "How many processes can your Opt-Servers run in parallel" }
.body label.opt_server_job_timeout i { --dd-tooltip-content: "For how long can processes run in your Opt-Servers" }

.user_plan .price {
    font-size: 1.2rem;
    color: #2b2573;
    font-family: var(--title-font);
    font-weight: bold;
}

.user_plan .footer {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    align-items: center; 
    justify-content: center;
    font-weight: bold;
    font-size: 0.85rem;
    border-radius: 4px;
    background: #d0cee4;
    color: #434d5c;
}

.user_plan .footer i {
    font-size: 1.2rem;
}

.user_plan.placeholder {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    min-width: 200px;
}

.user_plan.placeholder .name {
    background: #999;
    color: #555;
}

.user_plan.placeholder .name::before {
    content: "Plan name";
}

.user_plan.placeholder .body {
    background: #ddd;
    color: #555;
    font-style: italic;
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.user_plan.placeholder .body::before {
    content: "Select a plan above";
}

#step_1_area .user_plan.new_plan:not(.placeholder) .name {
    color: #eee;
    background: #008000;
}

#step_1_area .user_plan.new_plan:not(.placeholder) .body {
    background: #b0ddb0;
}

#step_1_area .user_plan.new_plan:not(.placeholder) .price {
    color: #365b10;
}

#step_1_area .user_plan.new_plan:not(.placeholder) .footer {
    background: #b0ddb0;
    color: #365b10;
}

.opt_server_info_button {
    cursor: pointer;
}

#subscription_plan_switching_to .name {
    text-align: center;
    border-radius: 4px;
    margin-bottom: 8px;
    font-weight: bold;
    background: #df7426;
    color: white;
    padding-left: 4px;
    padding-right: 4px;
    display: flex;
    height: 64px;
    font-size: 1.3rem;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

#subscription_plan_switching_to .body {
    min-width: 234px;
    text-align: center;
    border-radius: 4px;
    background: #f9dbc0;
    color: black;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
    font-size: 0.9rem;
}

#subscription_plan_switching_to .price {
    font-size: 1.2rem;
    color: #82431d;
    text-shadow: 1px 1px 2px #aaa;
}

#subscription_plan_switching_to .footer {
    text-transform: uppercase;
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    align-items: center; 
    justify-content: center;
    font-weight: bold;
    font-size: 0.85rem;
    border-radius: 4px;
    background: #f9dbc0;
    color: #82431d;
}

#subscription_plan_switching_to .footer i {
    font-size: 1.2rem;
}

#subscription_plan_switching_to.placeholder .name {
    background: #999;
    color: #555;
}

#subscription_plan_switching_to.placeholder .body {
    background: #ddd;
    color: #555;
    font-style: italic;
}

.dd_select_button {
    border-radius: 20px;
    padding: 0.35rem 1rem 0.35rem 1rem;
    color: white;
    cursor: pointer;
    font-weight: bold;
    background: #434d5c;
    min-width: 180px;
}

.dd_select_button .dd_select_content {
    padding-right: .3em;
}

.dd_select_options {
    border: 1px solid #aaa;
    border-radius: 8px;
    padding: 2px;
    background: #d0cee4;
    cursor: default;
    text-align: left;
    font-size: .9rem;
}

.dd_select_option {
    padding-left: 0.4rem;
    border-radius: 8px;
}

.dd_select_option:hover {
    background: #abb3d2;
}

discount_info_area {
    display: block;
    font-size: .85rem;
}

discount_info_area > label {
    font-weight: bold;
    color: #444;
}

discount_info_area dd_table {
    justify-content: center;
    line-height: 1.2;
    --default-col-width: max-content;
    --header-weight: bold;
    --header-color: #404a93;
    --header-size: .8rem;
    --colgap: 1em;
}

#step_1_area comparison_grid {
    display: grid;
    grid-template-columns: max-content max-content;
    gap: 0 1em;
    justify-content: center;
}

#step_1_area .key_selection_row {
    margin-top: .4rem;
}

#step_1_area .key_selection_row.headers {
    font-weight: bold;
}

#step_1_area .key_selection_row > * {
    margin-left: .5rem;
}

#step_1_area .key_selection_row > *:nth-child(1) {
    width: 250px;
}

#step_1_area .key_selection_row > *:nth-child(2) {
    width: 100px;
    text-align: center;
}

#step_1_area .key_selection_row > *:nth-child(3) {
    width: 200px;
    text-align: center;
}

#step_1_area .key_selection_row > *:nth-child(4) {
    width: 200px;
    text-align: center;
}

#step_1_area .key_selection_row > *:nth-child(5) {
    width: 50px;
}

#step_1_area .key_selection_row .remove_plan_button:hover {
    background: #ccc;
}

#step_1_area .key_selection_row:last-child > *:nth-child(1) {
    font-style: italic;
    color: #044404;
    padding-left: .3rem;
    cursor: pointer;
}

#step_1_area .key_selection_row:last-child > *:nth-child(1):hover {
    color: green;
}

#step_1_area .key_selection_row:last-child > *:nth-child(4),
.plan_displayer_row:last-child > *:nth-child(4) {
    font-weight: bold;
    border-top: 1px solid black;
}

#home_button {
    cursor: context-menu;
    font-size: 22px;
    border-radius: 4px;
    margin-right: 15px;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
}

#home_button:hover {
    background: #5d6879;
}

#home_button .hamburger_menu_icon {
    display: none;
}

#lma_logo:hover {
    background: #5d6879;
}

#step_2_area dd_table.info_table .plan_label {
    align-self: start;
    line-height: 1rem;
}

#step_2_area .displayer_selected_plan {
    line-height: 1rem;
    align-self: start;
    text-align: left;
}

#step_2_area .displayer_selected_plan span {
    font-size: 0.85rem;
}

#step_2_area dd_table input:not([type]) {
    width: 100%;
}

#step_2_area .displayer_email {
    display: inline;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 100%;
}

#step_3_area dd_table.info_table .plan_label {
    align-self: start;
    line-height: 1rem;
}

#step_3_area .displayer_selected_plan {
    line-height: 1rem;
    align-self: start;
    text-align: left;
}

#step_3_area .displayer_selected_plan span {
    font-size: 0.85rem;
}

#step_3_area .displayer_email {
    display: inline;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 100%;
}

.change_pay_area main_container {
    display: flex;
    justify-content: space-evenly;
}

.change_pay_area dd_table.info_table {
    justify-content: center;
}

.change_pay_area new_pay_area dd_table input:not([type]) {
    max-width: 280px;
    width: 100%;
}

.change_pay_area new_pay_area footer_buttons {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.5em;
}

stripe_cc_input {
    display: block;
    border: 1px #cdc7c2 solid;
    background: #fff;
    border-radius: 4px;
    padding: 4px;
}

cc_input_area {
    display: block;
    text-align: left;
    max-width: 425px;
    margin: .5em auto 0 auto;
}

#inactive_keys_table {
    color: #4a4a4a;
}

#inactive_keys_table .table_row {
    display: flex;
    flex-direction: row;
}

#inactive_keys_table .table_row.headers {
    font-weight: bold;
}

#inactive_keys_table .table_row > *:nth-child(1) {
    width: 200px;
}

#inactive_keys_table .table_row > *:nth-child(2) {
    width: 100px;
    text-align: center;
}

.tabulator-row {
    min-height: 0;
}

#active_keys_table .tabulator-cell {
    padding-top: 7px;
    padding-bottom: 7px;
}

#activate_keys_modal .input_field {
    height: 200px;
    border: 1px solid #bbb;
    border-radius: 4px;
    overflow-y: auto;
    padding: 2px 4px 2px 4px;
}

#activate_keys_modal .input_field textarea {
    width: 100%;
    resize: none;
    min-height: 200px;
    outline: none;
    border: none;
}

#activate_keys_modal .input_field .input_entry {
    display: flex;
    flex-direction: row;
    height: 1.6rem;
    margin-top: 2px;
}

#activate_keys_modal .input_field .input_entry .user {
    padding: 0 4px 0 4px;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
    background: #9fcad7;
    height: 100%;
}

#activate_keys_modal .input_field .input_entry .remove_button {
    cursor: pointer;
    padding: 0 4px 0 4px;
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;
    background: #9fcad7;
    height: 100%;
    
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

#activate_keys_modal .input_field .input_entry .remove_button:hover {
    background: #668d99;
}

dd_popup > new_prov_opt_server,
dd_popup > current_prov_opt_server  {
    max-width: 500px;
    width: 100%;
}

dd_popup > new_prov_opt_server dd_table,
dd_popup > current_prov_opt_server dd_table {
    --colgap: 1.5em;
    --header-weight: bold;
    --c1: max-content;
}

dd_popup > vm_options {
    width: 100%;
    max-width: 425px;
}

dd_popup > vm_options dd_table {
    --default-col-width: max-content;
    --c1: auto;
    --header-weight: bold;
    --header-transform: uppercase;
    --header-size: .9rem;
    --header-color: var(--title-color);
    background: #f5f5f5;
    border: 1px solid #ccc;
}

dd_popup > vm_options dd_table row:not(.header):hover {
    cursor: pointer;
}

dd_popup > vm_options dd_table cell:nth-of-type(4n+2),
dd_popup > vm_options dd_table cell:nth-of-type(4n+3) {
    text-align: center;
}

dd_popup > vm_options dd_table cell {
    padding-inline: .5em;
}

dd_popup > vm_options dd_table row:not(.header):hover cell {
    background: #d3d8ec;
}

dd_popup confirmation content {
    display: block;
    margin-bottom: .8em;
    line-height: 1.5;
}

dd_popup string_input input {
    width: 100%;
}

dd_popup cancel_subscription input {
    min-width: unset;
    max-width: 100%;
    width: 250px;
}

dd_popup activate_keys {
    width: 500px;
    line-height: 1.5;
}

dd_popup activate_keys .TALS_TextAreaLineSplitter {
    background: #fff;
}

dd_popup activate_keys note {
    display: block;
    margin-top: .5em;
    font-size: .85rem;
    color: #444;
}

/* Tablet View */
@media(max-width: 1024px) {
  .top-menu1 > :nth-child(2) {
      display: none !important;
  }
  
  top_bar_container h1 {
      display: none;
  }
  
  summary_grid {
      grid-template-columns: max-content;
  }
  
  .change_pay_area main_container {
      flex-direction: column;
  }
  
  .change_pay_area new_pay_area {
      margin-top: 2em;
  }
  
  .change_pay_area new_pay_area footer_buttons {
      justify-content: center;
  }
  
  .change_sub_plan_area step_tabs {
      grid-template-columns: max-content;
  }
  
  .change_sub_plan_area step_tab:not(.tab_active) {
      display: none;
  }
  
  .manage_keys active_keys_area h3 {
      display: block;
      width: 100%;
  }
  
  .manage_keys active_keys_area scroller_wrapper {
      overflow-x: auto;
  }
}

/* Phone View */
@media(max-width: 500px) {
  top_bar_container menu_button username {
      display: none;
  }
  
  .body label i {
      --dd-tooltip-translate-x: var(--dd-tooltip-align-left-translate-x);
      --dd-tooltip-left: var(--dd-tooltip-align-left-left);
  }

  cc_input_area {
      grid-template-columns: 1fr 1fr;
      justify-content: unset;
  }
  
  cc_input_area cc_number_area {
      grid-column-end: span 2;
  }
  
  cc_input_area input.cc_number {
      flex-grow: 1;
      width: 0px;
      min-width: unset;
      max-width: unset;
  }
  
  #step_1_area comparison_grid {
      grid-template-columns: max-content;
  }
  
  #step_1_area comparison_grid > *:nth-child(2n+1) {
    display: none;
  }
}


